|
@@ -17,8 +17,6 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
-import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -49,6 +47,7 @@ public class FzxzSchedule {
|
|
|
private FzxzTbMapper fzxzTbMapper;
|
|
|
@Resource
|
|
|
private FzxzJgyzMapper fzxzJgyzMapper;
|
|
|
+
|
|
|
//辅助选址python方法名标识
|
|
|
@Value("${Fzxz.functionId}")
|
|
|
private String functionId;
|
|
@@ -58,90 +57,90 @@ public class FzxzSchedule {
|
|
|
private String fzxzShp;
|
|
|
@Value("${Hgxfx.temp}")
|
|
|
private String temp;
|
|
|
- /**
|
|
|
- * Scheduled 定时器参数
|
|
|
- * cron表达式:指定任务在特定时间执行
|
|
|
- * fixedDelay:表示上一次任务执行完成后多久再执行,参数类型long,单位:ms
|
|
|
- * fixedDelayString:与fixedDelay一样,只是参数类型是String
|
|
|
- * fixedRate:表示按一定的频率执行任务,参数类型long,单位:ms 如: fixedRate(5000),表示这个定时器任务每5秒执行一次
|
|
|
- * fixedRateString:与fixedRate一样,只是参数类型变为String
|
|
|
- * initialDelay:表示延迟多久再第一次执行任务,参数类型为long ,单位:ms
|
|
|
- * initialDelayString:与initialDelay一样,只是参数类型String
|
|
|
- */
|
|
|
- /**
|
|
|
- * @Async("name") 开启多线程
|
|
|
- */
|
|
|
- /**
|
|
|
- * 辅助选址执行入口
|
|
|
- */
|
|
|
- @Async("taskExecutor")
|
|
|
- @Scheduled(fixedDelay = TIME_INTERVAL)
|
|
|
- public void FzxzStatus() {
|
|
|
- try {
|
|
|
- QueryWrapper<FzxzDTO> wrapper = new QueryWrapper<FzxzDTO>();
|
|
|
- wrapper.eq("rwzt", Rwzt.getCreate());
|
|
|
- //以创建时间正序排列
|
|
|
- wrapper.orderByAsc("cjsj");
|
|
|
- //每次只操作一条记录
|
|
|
- List<FzxzDTO> ress = fzxzMapper.selectList(wrapper);
|
|
|
- if (ress.size() > 0) {
|
|
|
- FzxzDTO res = ress.get(0);
|
|
|
- //插入执行状态
|
|
|
- res.setRwzt(Rwzt.getRun());
|
|
|
- res.setRwkssj(new Date());
|
|
|
- QueryWrapper<FzxzDTO> query = new QueryWrapper<FzxzDTO>();
|
|
|
- query.eq("bsm", res.getBsm());
|
|
|
- fzxzMapper.update(res, query);
|
|
|
- //插入任务日志
|
|
|
- FxrwrzDTO rzDto = new FxrwrzDTO();
|
|
|
- rzDto.setRwbsm(res.getBsm());
|
|
|
- rzDto.setRwlx("辅助选址");
|
|
|
- rzDto.setRzlr("开始分析");
|
|
|
- rzDto.setRzlx("info");
|
|
|
- rzDto.setRzsj(new Date());
|
|
|
- fxrwrzMapper.insert(rzDto);
|
|
|
- //执行python
|
|
|
- Map<String, String> params = new HashMap<>();
|
|
|
- params.put("bsm", res.getBsm());
|
|
|
- String result = PythonExecute.Run(functionId, params);
|
|
|
- if (!StringUtils.isEmpty(result) && result.contains("OK")) {//成功
|
|
|
- res.setRwjssj(new Date());
|
|
|
- res.setRwzt(Rwzt.getComplete());
|
|
|
- //TODO 生成辅助选址结果报告 返回 FxReport实体
|
|
|
- FzxzReport report = createReport(res.getBsm(), null);
|
|
|
- if (report != null) {
|
|
|
- res.setFxbg(report.getReportfile().replace(".docx", ".pdf"));
|
|
|
- res.setZip(report.getZipfile());
|
|
|
- }
|
|
|
- fzxzMapper.update(res, query);
|
|
|
- //插入成功日志
|
|
|
- FxrwrzDTO successDto = new FxrwrzDTO();
|
|
|
- successDto.setRwbsm(res.getBsm());
|
|
|
- successDto.setRwlx("辅助选址");
|
|
|
- successDto.setRzlr("计算完成");
|
|
|
- successDto.setRzlx("info");
|
|
|
- successDto.setRzsj(new Date());
|
|
|
- fxrwrzMapper.insert(successDto);
|
|
|
- } else {//失败
|
|
|
- res.setRwjssj(new Date());
|
|
|
- res.setRwzt(Rwzt.getError());
|
|
|
- fzxzMapper.update(res, query);
|
|
|
- //插入任务日志
|
|
|
- FxrwrzDTO errorDto = new FxrwrzDTO();
|
|
|
- errorDto.setRwbsm(res.getBsm());
|
|
|
- errorDto.setRwlx("辅助选址");
|
|
|
- errorDto.setRzlr("计算错误");
|
|
|
- errorDto.setRzsj(new Date());
|
|
|
- errorDto.setRzlx("error");
|
|
|
- errorDto.setFxjg(result);
|
|
|
- fxrwrzMapper.insert(errorDto);
|
|
|
- }
|
|
|
- System.out.println("辅助选址模块:" + res.getBsm() + "完成!!!!!!!! " + new Date().toString());
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
+ ///**
|
|
|
+ // * Scheduled 定时器参数
|
|
|
+ // * cron表达式:指定任务在特定时间执行
|
|
|
+ // * fixedDelay:表示上一次任务执行完成后多久再执行,参数类型long,单位:ms
|
|
|
+ // * fixedDelayString:与fixedDelay一样,只是参数类型是String
|
|
|
+ // * fixedRate:表示按一定的频率执行任务,参数类型long,单位:ms 如: fixedRate(5000),表示这个定时器任务每5秒执行一次
|
|
|
+ // * fixedRateString:与fixedRate一样,只是参数类型变为String
|
|
|
+ // * initialDelay:表示延迟多久再第一次执行任务,参数类型为long ,单位:ms
|
|
|
+ // * initialDelayString:与initialDelay一样,只是参数类型String
|
|
|
+ // */
|
|
|
+ ///**
|
|
|
+ // * @Async("name") 开启多线程
|
|
|
+ // */
|
|
|
+ ///**
|
|
|
+ // * 辅助选址执行入口
|
|
|
+ // */
|
|
|
+ //@Async("taskExecutor")
|
|
|
+ //@Scheduled(fixedDelay = TIME_INTERVAL)
|
|
|
+ //public void FzxzStatus() {
|
|
|
+ // try {
|
|
|
+ // QueryWrapper<FzxzDTO> wrapper = new QueryWrapper<FzxzDTO>();
|
|
|
+ // wrapper.eq("rwzt", Rwzt.getCreate());
|
|
|
+ // //以创建时间正序排列
|
|
|
+ // wrapper.orderByAsc("cjsj");
|
|
|
+ // //每次只操作一条记录
|
|
|
+ // List<FzxzDTO> ress = fzxzMapper.selectList(wrapper);
|
|
|
+ // if (ress.size() > 0) {
|
|
|
+ // FzxzDTO res = ress.get(0);
|
|
|
+ // //插入执行状态
|
|
|
+ // res.setRwzt(Rwzt.getRun());
|
|
|
+ // res.setRwkssj(new Date());
|
|
|
+ // QueryWrapper<FzxzDTO> query = new QueryWrapper<FzxzDTO>();
|
|
|
+ // query.eq("bsm", res.getBsm());
|
|
|
+ // fzxzMapper.update(res, query);
|
|
|
+ // //插入任务日志
|
|
|
+ // FxrwrzDTO rzDto = new FxrwrzDTO();
|
|
|
+ // rzDto.setRwbsm(res.getBsm());
|
|
|
+ // rzDto.setRwlx("辅助选址");
|
|
|
+ // rzDto.setRzlr("开始分析");
|
|
|
+ // rzDto.setRzlx("info");
|
|
|
+ // rzDto.setRzsj(new Date());
|
|
|
+ // fxrwrzMapper.insert(rzDto);
|
|
|
+ // //执行python
|
|
|
+ // Map<String, String> params = new HashMap<>();
|
|
|
+ // params.put("bsm", res.getBsm());
|
|
|
+ // String result = PythonExecute.Run(functionId, params);
|
|
|
+ // if (!StringUtils.isEmpty(result) && result.contains("OK")) {//成功
|
|
|
+ // res.setRwjssj(new Date());
|
|
|
+ // res.setRwzt(Rwzt.getComplete());
|
|
|
+ // //TODO 生成辅助选址结果报告 返回 FxReport实体
|
|
|
+ // FzxzReport report = createReport(res.getBsm(), null);
|
|
|
+ // if (report != null) {
|
|
|
+ // res.setFxbg(report.getReportfile().replace(".docx", ".pdf"));
|
|
|
+ // res.setZip(report.getZipfile());
|
|
|
+ // }
|
|
|
+ // fzxzMapper.update(res, query);
|
|
|
+ // //插入成功日志
|
|
|
+ // FxrwrzDTO successDto = new FxrwrzDTO();
|
|
|
+ // successDto.setRwbsm(res.getBsm());
|
|
|
+ // successDto.setRwlx("辅助选址");
|
|
|
+ // successDto.setRzlr("计算完成");
|
|
|
+ // successDto.setRzlx("info");
|
|
|
+ // successDto.setRzsj(new Date());
|
|
|
+ // fxrwrzMapper.insert(successDto);
|
|
|
+ // } else {//失败
|
|
|
+ // res.setRwjssj(new Date());
|
|
|
+ // res.setRwzt(Rwzt.getError());
|
|
|
+ // fzxzMapper.update(res, query);
|
|
|
+ // //插入任务日志
|
|
|
+ // FxrwrzDTO errorDto = new FxrwrzDTO();
|
|
|
+ // errorDto.setRwbsm(res.getBsm());
|
|
|
+ // errorDto.setRwlx("辅助选址");
|
|
|
+ // errorDto.setRzlr("计算错误");
|
|
|
+ // errorDto.setRzsj(new Date());
|
|
|
+ // errorDto.setRzlx("error");
|
|
|
+ // errorDto.setFxjg(result);
|
|
|
+ // fxrwrzMapper.insert(errorDto);
|
|
|
+ // }
|
|
|
+ // System.out.println("辅助选址模块:" + res.getBsm() + "完成!!!!!!!! " + new Date().toString());
|
|
|
+ // }
|
|
|
+ // } catch (Exception e) {
|
|
|
+ // e.printStackTrace();
|
|
|
+ // }
|
|
|
+ //}
|
|
|
|
|
|
//根据选址任务生成报告
|
|
|
public FzxzReport createReport(String bsm, List<String> xzbsmList) {
|
|
@@ -204,7 +203,6 @@ public class FzxzSchedule {
|
|
|
/**
|
|
|
* 选址报告
|
|
|
*/
|
|
|
-
|
|
|
private void createReport(FzxzEntityDTO res, String reportPath, List<String> xzbsmList) {
|
|
|
List<String> imgList = ReportImg(res, xzbsmList);
|
|
|
//创建document文档对象对象实例
|
|
@@ -557,7 +555,6 @@ public class FzxzSchedule {
|
|
|
/**
|
|
|
* 选址简报
|
|
|
*/
|
|
|
-
|
|
|
private void createSimpleReport(FzxzEntityDTO res, String reportPath, List<String> xzbsmList) {
|
|
|
//创建document文档对象对象实例
|
|
|
XWPFDocument document = null;
|