6f94d03e4957d2c5da1a1cd7e89cdc6cbb5dae25.svn-base 7.8 KB

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