| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- package cn.com.goldenwater.dcproj.task;
- import cn.com.goldenwater.dcproj.dao.TaskDthDayCountDao;
- import cn.com.goldenwater.dcproj.dto.BisInspTaskTotal;
- import cn.com.goldenwater.dcproj.model.AttAdBase;
- import cn.com.goldenwater.dcproj.model.BisInspTaskDthDay;
- import cn.com.goldenwater.dcproj.model.BisInspTaskOrgPtype;
- import cn.com.goldenwater.dcproj.param.AttAdBaseParam;
- import cn.com.goldenwater.dcproj.param.BisInspTaskOrgPtypeParam;
- import cn.com.goldenwater.dcproj.service.AttAdBaseService;
- import cn.com.goldenwater.dcproj.service.BisInspTaskDthDayService;
- import cn.com.goldenwater.dcproj.service.BisInspTaskOrgPtypeService;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import cn.com.goldenwater.dcproj.utils.DateUtils;
- import com.alibaba.fastjson.JSON;
- import org.apache.commons.lang3.StringUtils;
- import org.quartz.DisallowConcurrentExecution;
- import org.quartz.Job;
- import org.quartz.JobDataMap;
- import org.quartz.JobExecutionContext;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * @author lhc
- * @date 2020/10/12 11:00
- */
- @DisallowConcurrentExecution
- public class DayTypeRegService implements Job {
- private Logger log = LoggerFactory.getLogger(getClass());
- /**
- * 要执行的 BisInspTaskOrgPtype
- */
- private final static String IS_STAT = "1";
- @Autowired
- private BisInspTaskOrgPtypeService bisInspTaskOrgPtypeService;
- @Autowired
- private BisInspTaskDthDayService bisInspTaskDthDayService;
- @Autowired
- private AttAdBaseService attAdBaseService;
- @Autowired
- private TaskDthDayCountDao taskDthDayCountDao;
- @Override
- public void execute(JobExecutionContext arg0) {
- log.info("执行定时任务日行政区督查任务整编:DayTypeRegService.execute()...");
- JobDataMap dataMap = arg0.getJobDetail().getJobDataMap();
- String param = dataMap.getString("param");
- log.info("param:{}", param);
- // 设置整编时间
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date stTm = null;
- Date enTm = null;
- if (StringUtils.isNotBlank(param)) {
- Map<String, String> dateMap = JSON.parseObject(param, Map.class);
- try {
- if (StringUtils.isNotBlank(dateMap.get("sttm"))) {
- stTm = sdf.parse(dateMap.get("sttm"));
- }
- if (StringUtils.isNotBlank(dateMap.get("entm"))) {
- enTm = sdf.parse(dateMap.get("entm"));
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
- // 提取需要处理的行政区类型及代码循环处理统计数据
- BisInspTaskOrgPtypeParam bisInspTaskOrgPtypeParam = new BisInspTaskOrgPtypeParam();
- bisInspTaskOrgPtypeParam.setIsStat(IS_STAT);
- List<BisInspTaskOrgPtype> bisInspTaskOrgPtypes = bisInspTaskOrgPtypeService.findList(bisInspTaskOrgPtypeParam);
- if (bisInspTaskOrgPtypes != null && bisInspTaskOrgPtypes.size() > 0) {
- for (BisInspTaskOrgPtype bisInspTaskOrgPtype : bisInspTaskOrgPtypes) {
- regCounty(bisInspTaskOrgPtype, stTm, enTm);
- }
- }
- }
- /**
- * 根据配置整编某个省下的数据
- *
- * @param bisInspTaskOrgPtype
- * @param stTm 开始时间
- * @param enTm 结束时间
- */
- public void regCounty(BisInspTaskOrgPtype bisInspTaskOrgPtype, Date stTm, Date enTm) {
- if (null == stTm || null == enTm) {
- stTm = getYesterday();
- enTm = getToday();
- }
- AttAdBaseParam attAdBaseParam = new AttAdBaseParam();
- attAdBaseParam.setAdCode(AdLevelUtil.getAddvcd(bisInspTaskOrgPtype.getAdCode()));
- // attAdBaseParam.setAdGrad("4");
- List<AttAdBase> attAdBases = attAdBaseService.findList(attAdBaseParam);
- String pType = String.valueOf(Integer.parseInt(bisInspTaskOrgPtype.getObjType()));
- while (stTm.getTime() < enTm.getTime()) {
- Date tempTm = getAddDay(stTm, 1);
- //提取行政区代码下所有市或县,循环提取县下的督查对象添加情况和问题录入情况;
- for (AttAdBase attAdBase : attAdBases) {
- BisInspTaskDthDay bisInspTaskDthDay = new BisInspTaskDthDay();
- bisInspTaskDthDay.setOrgId(bisInspTaskOrgPtype.getOrgId());
- bisInspTaskDthDay.setObjType(bisInspTaskOrgPtype.getObjType());
- bisInspTaskDthDay.setObjName(bisInspTaskOrgPtype.getObjName());
- bisInspTaskDthDay.setTm(stTm);
- bisInspTaskDthDay.setAdCode(attAdBase.getAdCode());
- bisInspTaskDthDay.setAdName(attAdBase.getAdName());
- bisInspTaskDthDay.setAdFullName(attAdBase.getAdFullName());
- bisInspTaskDthDay.setAdGrad(attAdBase.getAdGrad());
- // 获取对象数 taskDthDayCountDao
- BisInspTaskTotal bisInspTaskTotal = taskDthDayCountDao.getListByTm(attAdBase.getAdCode().substring(0, 6), pType,
- DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
- bisInspTaskDthDay.setObjSize(bisInspTaskTotal == null ? 0 : bisInspTaskTotal.getObjSize());
- if (bisInspTaskTotal != null && bisInspTaskTotal.getObjSize() != 0){
- log.info("时间:{}", DateUtils.Date2Str(stTm, "yyyy-MM-dd"));
- log.info(bisInspTaskTotal.toString());
- log.info(String.valueOf(bisInspTaskDthDay.getObjSize()));
- }
- // 获取问题数据
- BisInspTaskTotal bisInspTaskTotalPblm = taskDthDayCountDao.getPblmListByTm(attAdBase.getAdCode().substring(0, 6), pType,
- DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
- bisInspTaskDthDay.setPblmSize(bisInspTaskTotalPblm == null ? 0 : bisInspTaskTotalPblm.getPblmSize());
- bisInspTaskDthDay.setInfoPlbm(bisInspTaskTotalPblm == null ? 0 : bisInspTaskTotalPblm.getInfoPlbm());
- bisInspTaskDthDay.setWarmPlbm(bisInspTaskTotalPblm == null ? 0 : bisInspTaskTotalPblm.getWarmPlbm());
- bisInspTaskDthDay.setErrorPlbm(bisInspTaskTotalPblm == null ? 0 : bisInspTaskTotalPblm.getErrorPlbm());
- if (bisInspTaskTotalPblm != null && bisInspTaskTotalPblm.getPblmSize() != 0){
- log.info("时间:{}", DateUtils.Date2Str(stTm, "yyyy-MM-dd"));
- log.info(bisInspTaskTotalPblm.toString());
- log.info("问题个数:{}", String.valueOf(bisInspTaskDthDay.getPblmSize()));
- }
- // BisInspTaskTotal bisInspTaskTotalDelPblm = taskDthDayCountDao.getDelPblmListByTm(attAdBase.getAdCode().substring(0, 6), String.valueOf(Integer.parseInt(bisInspTaskOrgPtype.getObjType())),
- // DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
- // bisInspTaskDthDay.setPblmLogSize(bisInspTaskTotalDelPblm == null ? 0 : bisInspTaskTotalDelPblm.getPblmLogSize());
- // TODO 整改数
- bisInspTaskDthDay.setMendSize(0);
- // TODO 销号数
- bisInspTaskDthDay.setPblmLogSize(0);
- bisInspTaskDthDayService.insert(bisInspTaskDthDay);
- }
- stTm = tempTm;
- }
- }
- public Date getAddDay(Date stTm, int size) {
- Calendar c = Calendar.getInstance();
- c.setTime(stTm);
- c.add(Calendar.DAY_OF_MONTH, size);
- return c.getTime();
- }
- public Date getYesterday() {
- // 日历对象
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.DAY_OF_MONTH, -1);
- // 时
- calendar.set(Calendar.HOUR_OF_DAY, 0);
- // 分
- calendar.set(Calendar.MINUTE, 0);
- // 秒
- calendar.set(Calendar.SECOND, 0);
- // 毫秒
- calendar.set(Calendar.MILLISECOND, 0);
- return calendar.getTime();
- }
- public static Date getToday() {
- //日历对象
- Calendar calendar = Calendar.getInstance();
- // 时
- calendar.set(Calendar.HOUR_OF_DAY, 0);
- // 分
- calendar.set(Calendar.MINUTE, 0);
- // 秒
- calendar.set(Calendar.SECOND, 0);
- // 毫秒
- calendar.set(Calendar.MILLISECOND, 0);
- return calendar.getTime();
- }
- }
|