c3b9ca8b9c8b4f67713324a3e0062609feb3173e.svn-base 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package cn.com.goldenwater.dcproj.task;
  2. import cn.com.goldenwater.dcproj.dao.BisInspPblmPlistDao;
  3. import cn.com.goldenwater.dcproj.dao.GwComFileDao;
  4. import cn.com.goldenwater.dcproj.model.*;
  5. import cn.com.goldenwater.dcproj.service.GwPblmShrService;
  6. import cn.com.goldenwater.dcproj.utils.StringUtils;
  7. import cn.com.goldenwater.id.util.UuidUtil;
  8. import org.quartz.DisallowConcurrentExecution;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.scheduling.annotation.EnableScheduling;
  13. import org.springframework.scheduling.annotation.Scheduled;
  14. import org.springframework.stereotype.Component;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  17. import javax.annotation.Resource;
  18. import java.util.Date;
  19. import java.util.List;
  20. /*
  21. * 督查问题共享,整改台账-----定时任务
  22. * */
  23. @Component
  24. @EnableScheduling
  25. @DisallowConcurrentExecution
  26. public class GwPblmShrTask {
  27. private Logger logger = LoggerFactory.getLogger(getClass());
  28. private static final String CODE_35 = "350000000000";
  29. @Value("${fj.gwPblmShrTask.isSign:false}")
  30. private boolean taskSign;// 定时任务默认关闭
  31. @Resource
  32. private GwPblmShrService gwPblmShrService;
  33. @Resource
  34. private BisInspPblmPlistDao bisInspPblmPlistDao;
  35. @Resource
  36. GwComFileDao gwComFileDao;
  37. // 每一个小时执行一次(错开整点,往后推迟20分钟执行)
  38. @Transactional
  39. @Scheduled(cron = "0 20 */1 * * ?")
  40. public void doGwPblmShrTask() {
  41. try {
  42. if(!taskSign){// 定时任务没有开启
  43. return;
  44. }
  45. // 获取待同步的数据(督察问题中类型为:大中小型水库,的数据)
  46. BisInspPblm bip = new BisInspPblm();
  47. bip.setBelongAdCode(CODE_35);// 福建省份编码
  48. List<BisInspPblm> list = gwPblmShrService.getSomeBisInspPblmDataByCondition(bip);
  49. if(null==list || list.size()==0){// 查询结果为空,直接返回
  50. return;
  51. }
  52. logger.info("-----执行督察共享问题定时任务-----开始-----");
  53. GwPblmShr gwPblmShr = null;
  54. BisInspPblmPlist bisInspPblmPlist = null;
  55. for(int i=0;i<list.size();i++){
  56. bip = list.get(i);
  57. // 1.同步到---共享整改问题表(GW_PBLM_SHR)
  58. gwPblmShr = new GwPblmShr();
  59. gwPblmShr.setId(bip.getPblmId());// 问题ID
  60. gwPblmShr.setCode(bip.getDamRegCode());// 对象代码(水库大坝注册号)
  61. gwPblmShr.setName(bip.getObjName());// 对象名称
  62. // 对象所属行政区代码
  63. if(StringUtils.isNotBlank(bip.getObjAdCode())){
  64. gwPblmShr.setAdCode(bip.getObjAdCode());
  65. } else {
  66. if(StringUtils.isNotBlank(bip.getObjCode())){
  67. gwPblmShr.setAdCode(bip.getObjCode().substring(0,6)+"000000");
  68. } else {
  69. gwPblmShr.setAdCode(CODE_35);
  70. }
  71. }
  72. gwPblmShr.setPblmNameBz(bip.getPblmNameBz());// 问题类别
  73. gwPblmShr.setCheckPointBz(bip.getCheckPointBz());// 检查项目
  74. gwPblmShr.setPblmDescBz(bip.getPblmDescBz());// 问题描述
  75. gwPblmShr.setInspPblmDesc(bip.getInspPblmDesc());// 详细描述
  76. gwPblmShr.setNote(bip.getNote());// 备注
  77. gwPblmShr.setPblmTm(bip.getCollTime());// 发现时间
  78. gwPblmShr.setIntm(new Date());// 插入时间
  79. gwPblmShrService.insertGwPblmShr(gwPblmShr);
  80. // 2.同步问题附件 GW_PBLM_SHR_FILE
  81. List<GwComFile> listFiles = gwComFileDao.findFileByBiz(bip.getPblmId());
  82. for(int index=0;index<listFiles.size();index++){
  83. GwPblmShrFile file = new GwPblmShrFile();
  84. file.setId(UuidUtil.uuid());// ID
  85. file.setPblmId(listFiles.get(index).getBizId());// 问题ID
  86. file.setFileExt(listFiles.get(index).getFileExt());// 后缀名
  87. file.setFileSize(listFiles.get(index).getFileSize());// 大小
  88. file.setFilePath(listFiles.get(index).getFilePath());// 路径(全路径)
  89. file.setFileName(listFiles.get(index).getFileName());// 名称
  90. file.setCreateDate(listFiles.get(index).getCreateDate());// 插入时间
  91. gwPblmShrService.insertGwPblmShrFile(file);
  92. }
  93. // 3.同步到---整改台账表(BIS_INSP_PBLM_PLIST)
  94. bisInspPblmPlist = new BisInspPblmPlist();
  95. bisInspPblmPlist.setPblmId(bip.getPblmId());// 问题ID
  96. bisInspPblmPlist.setId(UuidUtil.uuid());// ID
  97. bisInspPblmPlist.setDutyName(bip.getInspPblmOrgName());// 责任处室
  98. // 问题归类
  99. if("1".equals(bip.getObjType())){
  100. bisInspPblmPlist.setPblmClassify("小型水库");
  101. } else if("80".equals(bip.getObjType())){
  102. bisInspPblmPlist.setPblmClassify("中型水库检查");
  103. }
  104. bisInspPblmPlist.setPblmNo(bip.getInspPblmCode());// 问题编号
  105. bisInspPblmPlist.setObjType(bip.getObjType());// 督查类型
  106. bisInspPblmPlist.setPblmNameBz(bip.getPblmNameBz());// 问题类别
  107. bisInspPblmPlist.setCheckPointBz(bip.getCheckPointBz());// 问题标准检查项
  108. bisInspPblmPlist.setPblmDescBz(bip.getPblmDescBz());// 问题标准描述
  109. bisInspPblmPlist.setInspPblmCate(bip.getInspPblmCate());// 问题严重程度
  110. bisInspPblmPlist.setInspPblmDesc(bip.getInspPblmDesc());// 督查问题描述
  111. bisInspPblmPlist.setObjName(bip.getObjName());// 问题来源对象名称
  112. bisInspPblmPlist.setObjCode(bip.getObjCode());// 问题对象代码
  113. // 问题对象所属行政区代码
  114. if(StringUtils.isNotBlank(bip.getObjAdCode())){
  115. bisInspPblmPlist.setObjAdCode(bip.getObjAdCode());
  116. } else {
  117. if(StringUtils.isNotBlank(bip.getObjCode())){
  118. bisInspPblmPlist.setObjAdCode(bip.getObjCode().substring(0,6)+"000000");
  119. } else {
  120. bisInspPblmPlist.setObjAdCode(CODE_35);
  121. }
  122. }
  123. bisInspPblmPlist.setPblmAdName("福建省");// 问题对象所属行政区名称
  124. bisInspPblmPlist.setPblmTm(bip.getCollTime());// 问题上报时间
  125. bisInspPblmPlist.setIsRect("0");// 是否反馈 0 否 1 是
  126. bisInspPblmPlist.setCrtState("0");// 问题整改状态 0 未整改 1 整改中 2整改完成 3 不具备整改条件
  127. bisInspPblmPlist.setCrtInfo(bip.getInspPblmName());// 问题整改信息说明
  128. bisInspPblmPlist.setCrtNote(bip.getNote());// 问题整改备注
  129. bisInspPblmPlist.setPblmState(bip.getPblmStat());// 问题状态
  130. bisInspPblmPlist.setPblmOut("0");// 是否销号
  131. bisInspPblmPlist.setSendOrgId(bip.getInspGroupId());// 发送单位ID
  132. bisInspPblmPlist.setRecvOrgName(bip.getInspPblmOrgName());// 接收单位名称
  133. bisInspPblmPlist.setPersId("系统定时");// 创建人
  134. bisInspPblmPlist.setPersName("系统定时");// 创建人姓名
  135. bisInspPblmPlist.setIntm(new Date());// 创建时间
  136. bisInspPblmPlist.setUptm(new Date());// 修改时间
  137. bisInspPblmPlist.setDataStat("0");// 数据状态(0:正常;9:删除)
  138. bisInspPblmPlist.setPblmReason(bip.getPblmDescBz());// 整改建议
  139. bisInspPblmPlist.setIsStart("1");// 是否启动整改(新增)0未启动 1 启动
  140. bisInspPblmPlist.setImpSource("系统定时");// 导入来源
  141. bisInspPblmPlist.setBelongOrgId(bip.getBelongOrgId());
  142. bisInspPblmPlist.setBelongAdCode(bip.getBelongAdCode());
  143. bisInspPblmPlistDao.insert(bisInspPblmPlist);
  144. // 4.每执行成功一条,修改问题表中数据:是否共享为:1 已共享
  145. gwPblmShrService.updateBisInspPblmById(bip.getPblmId());
  146. }
  147. logger.info("-----同步督察共享问题-----本次共同步"+list.size()+"条-----");
  148. logger.info("-----同步整改台账-----本次共同步"+list.size()+"条-----");
  149. logger.info("-----执行定时任务(督察共享问题,整改台账)-----结束-----");
  150. } catch (Exception e){
  151. // 手动回滚
  152. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  153. logger.info("-----同步督察共享问题,整改台账异常-----");
  154. logger.info(e.getMessage());
  155. }
  156. }
  157. }