82f62efe4d5ffdd9ea7a66eeb06652e85fc08251.svn-base 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package cn.com.goldenwater.dcproj.task;
  2. import cn.com.goldenwater.dcproj.dao.TaskDthDayCountDao;
  3. import cn.com.goldenwater.dcproj.dto.BisInspTaskTotal;
  4. import cn.com.goldenwater.dcproj.model.AttAdBase;
  5. import cn.com.goldenwater.dcproj.model.BisInspTaskDthDay;
  6. import cn.com.goldenwater.dcproj.model.BisInspTaskOrgPtype;
  7. import cn.com.goldenwater.dcproj.param.AttAdBaseParam;
  8. import cn.com.goldenwater.dcproj.param.BisInspTaskDthDayParam;
  9. import cn.com.goldenwater.dcproj.param.BisInspTaskOrgPtypeParam;
  10. import cn.com.goldenwater.dcproj.service.AttAdBaseService;
  11. import cn.com.goldenwater.dcproj.service.BisInspTaskDthDayService;
  12. import cn.com.goldenwater.dcproj.service.BisInspTaskOrgPtypeService;
  13. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  14. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  15. import cn.com.goldenwater.dcproj.utils.DateUtils;
  16. import com.alibaba.fastjson.JSON;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.quartz.DisallowConcurrentExecution;
  19. import org.quartz.Job;
  20. import org.quartz.JobDataMap;
  21. import org.quartz.JobExecutionContext;
  22. import org.slf4j.Logger;
  23. import org.slf4j.LoggerFactory;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import java.text.ParseException;
  26. import java.text.SimpleDateFormat;
  27. import java.util.*;
  28. @DisallowConcurrentExecution
  29. public class DayTypeRegJiChaService implements Job {
  30. private Logger log = LoggerFactory.getLogger(getClass());
  31. /**
  32. * 要执行的 BisInspTaskOrgPtype
  33. */
  34. private final static String IS_STAT = "1";
  35. @Autowired
  36. private BisInspTaskOrgPtypeService bisInspTaskOrgPtypeService;
  37. @Autowired
  38. private BisInspTaskDthDayService bisInspTaskDthDayService;
  39. @Autowired
  40. private AttAdBaseService attAdBaseService;
  41. @Autowired
  42. private TaskDthDayCountDao taskDthDayCountDao;
  43. @Autowired
  44. private OlBisInspOrgService olBisInspOrgService;
  45. @Override
  46. public void execute(JobExecutionContext arg0) {
  47. log.info("执行定时任务日行政区督查任务整编:DayTypeRegService.execute()...");
  48. JobDataMap dataMap = arg0.getJobDetail().getJobDataMap();
  49. String param = dataMap.getString("param");
  50. log.info("param:{}", param);
  51. // 设置整编时间
  52. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  53. Date stTm = null;
  54. Date enTm = null;
  55. if (StringUtils.isNotBlank(param)) {
  56. Map<String, String> dateMap = JSON.parseObject(param, Map.class);
  57. try {
  58. if (StringUtils.isNotBlank(dateMap.get("sttm"))) {
  59. stTm = sdf.parse(dateMap.get("sttm"));
  60. }
  61. if (StringUtils.isNotBlank(dateMap.get("entm"))) {
  62. enTm = sdf.parse(dateMap.get("entm"));
  63. }
  64. } catch (ParseException e) {
  65. e.printStackTrace();
  66. }
  67. }
  68. // 提取需要处理的行政区类型及代码循环处理统计数据
  69. BisInspTaskOrgPtypeParam bisInspTaskOrgPtypeParam = new BisInspTaskOrgPtypeParam();
  70. bisInspTaskOrgPtypeParam.setIsStat(IS_STAT);
  71. List<BisInspTaskOrgPtype> bisInspTaskOrgPtypes = bisInspTaskOrgPtypeService.findList(bisInspTaskOrgPtypeParam);
  72. Set<String> orgIdSets = new HashSet<>();
  73. if (bisInspTaskOrgPtypes != null && bisInspTaskOrgPtypes.size() > 0) {
  74. for (BisInspTaskOrgPtype bisInspTaskOrgPtype : bisInspTaskOrgPtypes) {
  75. orgIdSets.add(bisInspTaskOrgPtype.getOrgId());
  76. }
  77. for (String orgId : orgIdSets) {
  78. regCounty(orgId, stTm, enTm);
  79. }
  80. }
  81. //整编按照填统计 昨天新增对象数据及问题数据 暂时按照 数据库插入时间来处理
  82. //插入县数据到统计列表
  83. }
  84. /**
  85. * 根据配置整编某个省下的数据
  86. *
  87. * @param orgId
  88. * @param stTm 开始时间
  89. * @param enTm 结束时间
  90. */
  91. public void regCounty(String orgId, Date stTm, Date enTm) {
  92. if (null == stTm || null == enTm) {
  93. stTm = getYesterday();
  94. enTm = getToday();
  95. }
  96. AttAdBaseParam attAdBaseParam = new AttAdBaseParam();
  97. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(orgId));
  98. attAdBaseParam.setAdCode(AdLevelUtil.getAddvcd(province));
  99. List<AttAdBase> attAdBases = attAdBaseService.findList(attAdBaseParam);
  100. while (stTm.getTime() < enTm.getTime()) {
  101. Date tempTm = getAddDay(stTm, 1);
  102. //提取行政区代码下所有县,循环提取县下的督查对象添加情况和问题录入情况;
  103. for (AttAdBase attAdBase : attAdBases) {
  104. BisInspTaskDthDay bisInspTaskDthDay = new BisInspTaskDthDay();
  105. bisInspTaskDthDay.setOrgId(orgId);
  106. bisInspTaskDthDay.setObjType("008");
  107. bisInspTaskDthDay.setObjName("稽察工作");
  108. bisInspTaskDthDay.setTm(stTm);
  109. bisInspTaskDthDay.setAdCode(attAdBase.getAdCode());
  110. bisInspTaskDthDay.setAdName(attAdBase.getAdName());
  111. bisInspTaskDthDay.setAdFullName(attAdBase.getAdFullName());
  112. bisInspTaskDthDay.setAdGrad(attAdBase.getAdGrad());
  113. //获取对象数 taskDthDayCountDao
  114. BisInspTaskTotal bisInspTaskTotal = taskDthDayCountDao.getListJichaByTm(attAdBase.getAdCode().substring(0,6),
  115. DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
  116. bisInspTaskDthDay.setObjSize(bisInspTaskTotal == null ? 0 : bisInspTaskTotal.getObjSize());
  117. //获取问题数据
  118. BisInspTaskTotal bisInspTaskTotalPblm = taskDthDayCountDao.getPblmListJichaByTm(attAdBase.getAdCode().substring(0,6),
  119. DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
  120. // 问题数
  121. bisInspTaskDthDay.setPblmSize(Optional.ofNullable(bisInspTaskTotalPblm).map(BisInspTaskTotal::getPblmSize).orElse(0));
  122. // 一般问题数
  123. bisInspTaskDthDay.setInfoPlbm(Optional.ofNullable(bisInspTaskTotalPblm).map(BisInspTaskTotal::getInfoPlbm).orElse(0));
  124. // 较重问题数
  125. bisInspTaskDthDay.setWarmPlbm(Optional.ofNullable(bisInspTaskTotalPblm).map(BisInspTaskTotal::getWarmPlbm).orElse(0));
  126. // 严重问题数
  127. bisInspTaskDthDay.setErrorPlbm(Optional.ofNullable(bisInspTaskTotalPblm).map(BisInspTaskTotal::getErrorPlbm).orElse(0));
  128. // 整改数
  129. bisInspTaskDthDay.setMendSize(0);
  130. // 销号数
  131. bisInspTaskDthDay.setPblmLogSize(0);
  132. bisInspTaskDthDayService.insert(bisInspTaskDthDay);
  133. }
  134. stTm = tempTm;
  135. }
  136. }
  137. public Date getAddDay(Date stTm, int size) {
  138. Calendar c = Calendar.getInstance();
  139. c.setTime(stTm);
  140. c.add(Calendar.DAY_OF_MONTH, size);
  141. return c.getTime();
  142. }
  143. public Date getYesterday() {
  144. // 日历对象
  145. Calendar calendar = Calendar.getInstance();
  146. calendar.add(Calendar.DAY_OF_MONTH, -1);
  147. // 时
  148. calendar.set(Calendar.HOUR_OF_DAY, 0);
  149. // 分
  150. calendar.set(Calendar.MINUTE, 0);
  151. // 秒
  152. calendar.set(Calendar.SECOND, 0);
  153. // 毫秒
  154. calendar.set(Calendar.MILLISECOND, 0);
  155. return calendar.getTime();
  156. }
  157. public static Date getToday() {
  158. //日历对象
  159. Calendar calendar = Calendar.getInstance();
  160. // 时
  161. calendar.set(Calendar.HOUR_OF_DAY, 0);
  162. // 分
  163. calendar.set(Calendar.MINUTE, 0);
  164. // 秒
  165. calendar.set(Calendar.SECOND, 0);
  166. // 毫秒
  167. calendar.set(Calendar.MILLISECOND, 0);
  168. return calendar.getTime();
  169. }
  170. }