| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package com.onemap.analyse.task;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.fasterxml.jackson.core.type.TypeReference;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.onemap.analyse.domain.*;
- import com.onemap.analyse.mapper.*;
- import com.onemap.analyse.utils.DozerUtils;
- import com.onemap.analyse.utils.NpoiHelper;
- import com.onemap.common.core.utils.StringUtils;
- import com.onemap.common.core.web.domain.RequestResult;
- import com.onemap.common.security.utils.SecurityUtils;
- import org.apache.commons.io.FileUtils;
- import org.apache.poi.xwpf.usermodel.*;
- 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.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- 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;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.OutputStream;
- import java.math.BigInteger;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import static com.onemap.analyse.utils.Fxfw2SdeUtils.fzxzvector2Sde;
- /**
- * 策划生成模块定时刷新任务
- */
- @Component
- public class ChscSchedule {
- //间隔时间 单位ms
- public static final long TIME_INTERVAL = 1 * 15000;
- //任务状态标识码
- private RwztDTO Rwzt = new RwztDTO();
- private XzlbDTO xzlbDTO = new XzlbDTO();
- private FxfwDictDTO fxfwDictDTO = new FxfwDictDTO();
- @Autowired
- private FzxzMapper fzxzMapper;
- @Autowired
- private FzxzXzyzMapper fzxzXzyzMapper;
- @Resource
- private HgxfxMapper hgxfxMapper;
- @Resource
- HgxfxHgscxMapper hgxfxHgscxMapper;
- @Resource
- HgxfxScxMapper hgxfxScxMapper;
- @Resource
- private FxrwrzMapper fxrwrzMapper;
- @Resource
- private FzssChscMapper fzssChscMapper;
- @Resource
- private FzssChscFileMapper fzssChscFileMapper;
- @Resource
- private HgxfxTemplateMapper hgxfxTemplateMapper;
- //合规性分析python方法名标识
- @Value("${Hgxfx.functionId}")
- private String functionId;
- @Value("${Hgxfx.temp}")
- private String temp;
- private static final Logger log = LoggerFactory.getLogger(ChscSchedule.class);
- @Async("taskExecutor")
- @Scheduled(fixedDelay = TIME_INTERVAL)
- public void ChscStatus() {
- try {
- QueryWrapper<FzxzChscDTO> wrapper = new QueryWrapper<FzxzChscDTO>();
- wrapper.eq("rwzt", Rwzt.getNoJX());
- //以创建时间正序排列
- wrapper.orderByAsc("cjsj");
- //每次只操作一条记录
- List<FzxzChscDTO> ress = fzssChscMapper.selectList(wrapper);
- if (ress.size() > 0) {
- FzxzChscDTO zhxzChsc = ress.get(0);
- //更新策划生成任务状态
- QueryWrapper<FzxzChscDTO> chscwrapper = new QueryWrapper<FzxzChscDTO>();
- chscwrapper.eq("bsm", zhxzChsc.getBsm());
- zhxzChsc.setRwjd(1);
- zhxzChsc.setRwzt(Rwzt.getCreate());
- fzssChscMapper.update(zhxzChsc, chscwrapper);
- //获取分析范围
- String curfxfw = "";
- if (zhxzChsc.getFwlx() == fxfwDictDTO.getShp()) {
- FzssChscFileDTO fileDto = fzssChscFileMapper.selectOne(new QueryWrapper<FzssChscFileDTO>().eq("bsm", zhxzChsc.getXzfw()));
- curfxfw = fileDto.getWj();
- }
- //插入任务日志
- FxrwrzDTO rzDto = new FxrwrzDTO();
- rzDto.setRwbsm(zhxzChsc.getBsm());
- rzDto.setRwlx("策划生成");
- rzDto.setRzlr("项目策划生成解析");
- rzDto.setRzlx("info");
- rzDto.setRzsj(new Date());
- fxrwrzMapper.insert(rzDto);
- //根据选址类别区分进行任务分配执行
- String rwlx = "";
- if (zhxzChsc.getXzlb() == xzlbDTO.getXmxz()) {//项目选址
- //TODO wanger 对接智慧选址
- rwlx = "辅助选址";
- FzxzDTO fzxzDTO = new FzxzDTO();
- fzxzDTO.setBsm(zhxzChsc.getBsm());
- fzxzDTO.setFwlx(zhxzChsc.getFwlx());
- fzxzDTO.setJsdw(zhxzChsc.getSbdw());
- fzxzDTO.setXmmc(zhxzChsc.getXmmc());
- fzxzDTO.setXzfw(zhxzChsc.getXzfw());
- fzxzDTO.setXzmj(zhxzChsc.getNydmj());
- fzxzDTO.setYdmjbegin(zhxzChsc.getYdmjks());
- fzxzDTO.setYdmjend(zhxzChsc.getYdmjjs());
- fzxzDTO.setCjyh(zhxzChsc.getCjyh());
- fzxzDTO.setSjy(zhxzChsc.getSjy());
- fzxzDTO.setYdxz_bsm(zhxzChsc.getYdlx());
- fzxzDTO.setRwzt(Rwzt.getCreate());
- fzxzDTO.setRwly("OpenAPI");
- fzxzMapper.insert(fzxzDTO);
- if (StringUtils.isNotEmpty(zhxzChsc.getYxyz())) {
- String yxyz = zhxzChsc.getYxyz();
- List<Map<String, Object>> list = null;
- try {
- ObjectMapper mapper = new ObjectMapper();
- list = mapper.readValue(yxyz, new TypeReference<List<Map<String, Object>>>() {
- });
- } catch (Exception e) {
- e.printStackTrace();
- }
- for (int i = 0; i < list.size(); i++) {
- FzxzXzyzDTO dto = DozerUtils.map(list.get(i), FzxzXzyzDTO.class);
- dto.setBsm(StringUtils.getUUID());
- dto.setRwbsm(fzxzDTO.getBsm());
- fzxzXzyzMapper.insert(dto);
- }
- }
- //TODO 入储备库
- // FzssZhxzCbk cbk = zhxzChsc.MapTo<FzssZhxzCbk>();
- // cbk.BSM = zhxzChsc.BSM;
- // var listFields = EsriClassField.ToFields<FzssZhxzCbk>(cbk);
- // PyUtils.Shp2Sde(shpfile, "KJGH.T_FZSS_ZHXZ_CBK", listFields);
- System.out.println("XZLB暂不支持" + zhxzChsc.getXzlb());
- } else if (zhxzChsc.getXzlb() == xzlbDTO.getHgxfx()) {
- rwlx = "合规性分析";
- //插入合规性分析主表
- HgxfxDTO fzssHgxfx = DozerUtils.map(zhxzChsc, HgxfxDTO.class);
- fzssHgxfx.setCjyh(SecurityUtils.getUsername());
- fzssHgxfx.setFxmj(zhxzChsc.getNydmj());
- fzssHgxfx.setJsdw(zhxzChsc.getSbdw());
- fzssHgxfx.setRwly("OpenAPI");
- fzssHgxfx.setBsm(zhxzChsc.getBsm());
- fzssHgxfx.setRwzt(Rwzt.getCreate());
- //TODO 确认下是否需要任务进度字段
- //fzssHgxfx.setRwjd(0);
- hgxfxMapper.insert(fzssHgxfx);
- //插入合规性分析分析因子表
- //默认把基础分析写入到分析因子里面
- QueryWrapper<HgxfxScxDTO> basefxyzwrapper = new QueryWrapper<HgxfxScxDTO>();
- basefxyzwrapper.eq("kzxjb", 0);
- List<HgxfxScxDTO> basefxyz = hgxfxScxMapper.selectList(basefxyzwrapper);
- //查询看是否已配置分析因子模板,如果没有全部查询插入分析因子表
- HgxfxTemplateDTO template = hgxfxTemplateMapper.selectOne(new QueryWrapper<HgxfxTemplateDTO>().eq("mbmc", zhxzChsc.getYwlx()));
- if (template != null) {
- QueryWrapper<HgxfxScxDTO> fxyzwrapper = new QueryWrapper<HgxfxScxDTO>();
- fxyzwrapper.in("bsm", template.getFxyz().split(",")).orderByAsc("xssx");
- List<HgxfxScxDTO> res = hgxfxScxMapper.selectList(fxyzwrapper);
- if (res.size() > 0) {
- basefxyz.addAll(res);
- }
- } else if (StringUtils.isNotEmpty(zhxzChsc.getYxyz())) {
- //查询审查项 默认把控制线级别等于0的也添加进去
- QueryWrapper<HgxfxScxDTO> fxyzwrapper = new QueryWrapper<HgxfxScxDTO>();
- fxyzwrapper.gt("kzxjb", 0).eq("status", 1);
- // fxyzwrapper.in("bsm", zhxzChsc.getYxyz().split(",")).orderByAsc("xssx");
- List<HgxfxScxDTO> res = hgxfxScxMapper.selectList(fxyzwrapper);
- if (res.size() > 0) {
- basefxyz.addAll(res);
- }
- }
- for (HgxfxScxDTO cur : basefxyz) {
- HgxfxHgscxDTO scx = new HgxfxHgscxDTO();
- scx.setBsm(StringUtils.getUUID());
- scx.setRwbsm(zhxzChsc.getBsm());
- scx.setScxbsm(cur.getBsm());
- scx.setYsmc(cur.getYsmc());
- hgxfxHgscxMapper.insert(scx);
- }
- //TODO 入储备库
- // FzssZhxzCbk cbk = zhxzChsc.MapTo<FzssZhxzCbk>();
- // cbk.BSM = zhxzChsc.BSM;
- // var listFields = EsriClassField.ToFields<FzssZhxzCbk>(cbk);
- // PyUtils.Shp2Sde(shpfile, "KJGH.T_FZSS_ZHXZ_CBK", listFields);
- }
- FzxzDTO fzxzDTO = new FzxzDTO();
- fzxzDTO.setBsm(zhxzChsc.getBsm());
- fzxzDTO.setFwlx(zhxzChsc.getFwlx());
- fzxzDTO.setXzfw(curfxfw);
- RequestResult info = fzxzvector2Sde(fzxzDTO, rwlx);
- if (info != null) {
- System.out.println("策划生成分析范围数据入库失败");
- } else {
- System.out.println("策划生成分析模块:" + zhxzChsc.getBsm() + "完成!!!!!!!! " + new Date().toString());
- }
- //进度更新
- zhxzChsc.setRwzt(Rwzt.getCreate());
- zhxzChsc.setRwjd(3);
- fzssChscMapper.update(zhxzChsc, chscwrapper);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|