| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- package cn.com.goldenwater.dcproj.task;
- import cn.com.goldenwater.dcproj.dao.TaskDthDayCountDao;
- import cn.com.goldenwater.dcproj.model.AttAdBase;
- import cn.com.goldenwater.dcproj.model.BisInspTaskOrgPtype;
- import cn.com.goldenwater.dcproj.model.BisInspTaskTypeItemTotal;
- import cn.com.goldenwater.dcproj.model.TaskItemDay;
- import cn.com.goldenwater.dcproj.param.AttAdBaseParam;
- import cn.com.goldenwater.dcproj.param.BisInspTaskOrgPtypeParam;
- import cn.com.goldenwater.dcproj.param.TaskItemDayParam;
- import cn.com.goldenwater.dcproj.service.AttAdBaseService;
- import cn.com.goldenwater.dcproj.service.BisInspTaskOrgPtypeService;
- import cn.com.goldenwater.dcproj.service.TaskItemDayService;
- 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.Calendar;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * @author lhc
- * @date 2020/10/12 11:17
- */
- @DisallowConcurrentExecution
- public class DayTypeItemRegService implements Job {
- /**
- * 要执行的 BisInspTaskOrgPtype
- */
- private final static String IS_STAT = "1";
- private Logger log = LoggerFactory.getLogger(getClass());
- @Autowired
- private BisInspTaskOrgPtypeService bisInspTaskOrgPtypeService;
- @Autowired
- private TaskItemDayService taskItemDayService;
- @Autowired
- private AttAdBaseService attAdBaseService;
- @Autowired
- private TaskDthDayCountDao taskDthDayCountDao;
- @Override
- public void execute(JobExecutionContext arg0) {
- log.info("执行定时任务日行政区督查任务整编:DayTypeItemRegService.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()));
- List<AttAdBase> attAdBases = attAdBaseService.findList(attAdBaseParam);
- while (stTm.getTime() < enTm.getTime()) {
- Date tempTm = getAddDay(stTm, 1);
- log.info("orgId: {}, objType: {}, stTm: {}", bisInspTaskOrgPtype.getOrgId(), bisInspTaskOrgPtype.getObjType(), stTm);
- //提取行政区代码下所有县,循环提取县下的督查对象添加情况和问题录入情况;
- for (AttAdBase attAdBase : attAdBases) {
- TaskItemDay taskItemDay = new TaskItemDay();
- taskItemDay.setOrgId(bisInspTaskOrgPtype.getOrgId());
- taskItemDay.setObjType(bisInspTaskOrgPtype.getObjType());
- taskItemDay.setObjName(bisInspTaskOrgPtype.getObjName());
- taskItemDay.setTm(stTm);
- taskItemDay.setAdCode(attAdBase.getAdCode());
- taskItemDay.setAdName(attAdBase.getAdName());
- taskItemDay.setAdFullName(attAdBase.getAdFullName());
- taskItemDay.setAdGrad(attAdBase.getAdGrad());
- //获取对象数 taskDthDayCountDao
- //获取问题数据
- if ("350821".equals(attAdBase.getAdCode().substring(0,6))){
- System.out.println("zhuyizhuyi");
- }
- List<BisInspTaskTypeItemTotal> bisInspTaskTypeItemTotalList = taskDthDayCountDao.getPblmListTypeByTm(attAdBase.getAdCode().substring(0,6), String.valueOf(Integer.parseInt(bisInspTaskOrgPtype.getObjType())),
- DateUtils.Date2Str(stTm, "yyyy-MM-dd"), DateUtils.Date2Str(tempTm, "yyyy-MM-dd"));
- if (null != bisInspTaskTypeItemTotalList && bisInspTaskTypeItemTotalList.size() > 0) {
- for (BisInspTaskTypeItemTotal taskTypeItem : bisInspTaskTypeItemTotalList) {
- // itemName
- taskItemDay.setItemName(taskTypeItem.getItemName());
- // pblmSize
- taskItemDay.setPblmSize(taskTypeItem.getPblmSize());
- // mendSize
- taskItemDay.setMendSize(taskTypeItem.getMendSize());
- // pblmLogSize
- taskItemDay.setPblmLogSize(taskTypeItem.getPblmLogSize());
- // infoPlbm
- taskItemDay.setInfoPlbm(taskTypeItem.getInfoPlbm());
- // warmPlbm
- taskItemDay.setWarmPlbm(taskTypeItem.getWarmPlbm());
- // errorPlbm
- taskItemDay.setErrorPlbm(taskTypeItem.getErrorPlbm());
- taskItemDayService.insert(taskItemDay);
- }
- }
- }
- 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();
- }
- }
|