a67aaa7fa8e48f2024d8c07d7383f763eb182edf.svn-base 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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.OlBisInspOrgService;
  13. import cn.com.goldenwater.dcproj.service.TaskItemDayService;
  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 DayTypeItemRegJiChaService implements Job {
  30. /**
  31. * 要执行的 BisInspTaskOrgPtype
  32. */
  33. private final static String IS_STAT = "1";
  34. private Logger log = LoggerFactory.getLogger(getClass());
  35. @Autowired
  36. private BisInspTaskOrgPtypeService bisInspTaskOrgPtypeService;
  37. @Autowired
  38. private TaskItemDayService taskItemDayService;
  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("执行定时任务日行政区督查任务整编:DayTypeItemRegService.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 stTm 开始时间
  88. * @param enTm 结束时间
  89. */
  90. public void regCounty(String orgId, Date stTm, Date enTm) {
  91. if (null == stTm || null == enTm) {
  92. stTm = getYesterday();
  93. enTm = getToday();
  94. }
  95. AttAdBaseParam attAdBaseParam = new AttAdBaseParam();
  96. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(orgId));
  97. attAdBaseParam.setAdCode(AdLevelUtil.getAddvcd(province));
  98. List<AttAdBase> attAdBases = attAdBaseService.findList(attAdBaseParam);
  99. while (stTm.getTime() < enTm.getTime()) {
  100. Date tempTm = getAddDay(stTm, 1);
  101. log.info("objType: {}, stTm: {}", "008", stTm);
  102. //提取行政区代码下所有县,循环提取县下的督查对象添加情况和问题录入情况;
  103. for (AttAdBase attAdBase : attAdBases) {
  104. TaskItemDay taskItemDay = new TaskItemDay();
  105. taskItemDay.setOrgId(orgId);
  106. taskItemDay.setObjType("008");
  107. taskItemDay.setObjName("稽察工作");
  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. List<BisInspTaskTypeItemTotal> bisInspTaskTypeItemTotalList = taskDthDayCountDao.getPblmListTypeJiChaByTm(attAdBase.getAdCode().substring(0, 6),
  116. DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
  117. if (null != bisInspTaskTypeItemTotalList && bisInspTaskTypeItemTotalList.size() > 0) {
  118. for (BisInspTaskTypeItemTotal taskTypeItem : bisInspTaskTypeItemTotalList) {
  119. // itemName
  120. taskItemDay.setItemName(taskTypeItem.getItemName());
  121. // pblmSize
  122. taskItemDay.setPblmSize(taskTypeItem.getPblmSize());
  123. // mendSize
  124. taskItemDay.setMendSize(taskTypeItem.getMendSize());
  125. // pblmLogSize
  126. taskItemDay.setPblmLogSize(taskTypeItem.getPblmLogSize());
  127. // infoPlbm
  128. taskItemDay.setInfoPlbm(taskTypeItem.getInfoPlbm());
  129. // warmPlbm
  130. taskItemDay.setWarmPlbm(taskTypeItem.getWarmPlbm());
  131. // errorPlbm
  132. taskItemDay.setErrorPlbm(taskTypeItem.getErrorPlbm());
  133. taskItemDayService.insert(taskItemDay);
  134. }
  135. }
  136. }
  137. stTm = tempTm;
  138. }
  139. }
  140. public Date getAddDay(Date stTm, int size) {
  141. Calendar c = Calendar.getInstance();
  142. c.setTime(stTm);
  143. c.add(Calendar.DAY_OF_MONTH, size);
  144. return c.getTime();
  145. }
  146. public Date getYesterday() {
  147. // 日历对象
  148. Calendar calendar = Calendar.getInstance();
  149. calendar.add(Calendar.DAY_OF_MONTH, -1);
  150. // 时
  151. calendar.set(Calendar.HOUR_OF_DAY, 0);
  152. // 分
  153. calendar.set(Calendar.MINUTE, 0);
  154. // 秒
  155. calendar.set(Calendar.SECOND, 0);
  156. // 毫秒
  157. calendar.set(Calendar.MILLISECOND, 0);
  158. return calendar.getTime();
  159. }
  160. public static Date getToday() {
  161. //日历对象
  162. Calendar calendar = Calendar.getInstance();
  163. // 时
  164. calendar.set(Calendar.HOUR_OF_DAY, 0);
  165. // 分
  166. calendar.set(Calendar.MINUTE, 0);
  167. // 秒
  168. calendar.set(Calendar.SECOND, 0);
  169. // 毫秒
  170. calendar.set(Calendar.MILLISECOND, 0);
  171. return calendar.getTime();
  172. }
  173. }