Проблема с загрузкой электронных таблиц Excel во время выполнения - PullRequest
0 голосов
/ 01 июля 2019

Я новичок в весенних сапогах и слюнях. Я написал (скопировал) некоторый код, чтобы выставить drools (таблицу решений) как веб-сервис. Все работает нормально, но у меня есть проблема.

Я хочу внести изменения в электронную таблицу Excel во время работы приложения.

Когда я делаю изменения и собираю приложение, изменения вносятся, но я хочу, чтобы оно работало во время работы приложения.

Извините за грамматику и форматирование кода, это мой первый вопрос .. Заранее спасибо

@RestController
public class FCCRObjectScoreController {

private final DroolsService service;

@Autowired
public FCCRObjectScoreController(DroolsService service) {
    this.service = service;
}




@RequestMapping(value = "/fraud", 
        method = /*RequestMethod.GET*/  RequestMethod.POST, produces = "application/json")
public Client getQuestions(

        @RequestParam(required = true) boolean resident,
        @RequestParam(required = true) String name,
        @RequestParam(required = true) int age,
        @RequestParam(required = true) String type,
        @RequestParam(required = true) String fraud,
        @RequestParam(required = true) String emp) throws JsonParseException, JsonMappingException, IOException {
    ObjectMapper mapper = new ObjectMapper();
    Employer employer = mapper.readValue(emp, Employer.class);
    Client client = new Client(name, resident, age, type, fraud,employer);

    return service.getOutput(client);

}

}

@Service
public class DroolsService {
    private KieSession kieSession = new DroolsConfiguration().getKieSession();;

    public Client getOutput(Client cli){

        kieSession.insert(cli);
        kieSession.fireAllRules();

        return  cli;

    }
}

public class DroolsConfiguration {
private static final String RULES_PATH = "/drools-demo-springboot/src/main/resources/drools/";
private KieServices kieServices;


private  KieFileSystem getKieFileSystem() throws IOException{
    KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
    System.out.println("ovde");
    List<String> rules=Arrays.asList("rules.xlsx");
    System.out.println("ovde");

    for(String rule:rules){
        kieFileSystem.write(ResourceFactory.newClassPathResource(rule));
    }
    return kieFileSystem;

}

public KieContainer getKieContainer() throws IOException {
    getKieRepository();

    KieBuilder kb = kieServices.newKieBuilder(getKieFileSystem());
    kb.buildAll();

    KieModule kieModule = kb.getKieModule();
    KieContainer kContainer = kieServices.newKieContainer(kieModule.getReleaseId());

    return kContainer;

}

private void getKieRepository() {
    this.kieServices=KieServices.Factory.get();
    final KieRepository kieRepository = kieServices.getRepository();
    kieRepository.addKieModule(new KieModule() {
                    public ReleaseId getReleaseId() {
            return kieRepository.getDefaultReleaseId();
        }
    });
}

public KieSession getKieSession(){
    getKieRepository();
    KieFileSystem kieFileSystem = kieServices.newKieFileSystem();

    kieFileSystem.write(ResourceFactory.newClassPathResource("drools/rules.xlsx"));



    KieBuilder kb = kieServices.newKieBuilder(kieFileSystem);
    kb.buildAll();
    KieModule kieModule = kb.getKieModule();

    KieContainer kContainer = kieServices.newKieContainer(kieModule.getReleaseId());

    return kContainer.newKieSession();

}
}
...