| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package com.java110.job.task.purchase;
- import com.java110.dto.community.CommunityDto;
- import com.java110.dto.inspection.InspectionTaskDetailDto;
- import com.java110.dto.inspection.InspectionTaskDto;
- import com.java110.dto.task.TaskDto;
- import com.java110.intf.community.IInspectionTaskDetailInnerServiceSMO;
- import com.java110.intf.community.IInspectionTaskInnerServiceSMO;
- import com.java110.job.quartz.TaskSystemQuartz;
- import com.java110.utils.util.ListUtil;
- import com.java110.utils.util.StringUtil;
- import org.slf4j.Logger;
- import com.java110.core.log.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * 巡检签到状态修改定时任务
- *
- * @author fqz
- * @date 2021-06-11 9:12
- */
- @Component
- public class InspectionTaskDetailTemplate extends TaskSystemQuartz {
- private static Logger logger = LoggerFactory.getLogger(InspectionTaskDetailTemplate.class);
- @Autowired
- private IInspectionTaskDetailInnerServiceSMO iInspectionTaskDetailInnerServiceSMOImpl;
- @Autowired
- private IInspectionTaskInnerServiceSMO iInspectionTaskInnerServiceSMOImpl;
- @Override
- protected void process(TaskDto taskDto) {
- logger.debug("开始执行微信模板信息推送" + taskDto.toString());
- // 获取小区
- List<CommunityDto> communityDtos = getAllCommunity();
- for (CommunityDto communityDto : communityDtos) {
- try {
- //签到状态修改
- generatorTask(taskDto, communityDto);
- //当天巡检任务状态修改
- changeToadyTask(taskDto, communityDto);
- } catch (Exception e) {
- logger.error("推送消息失败", e);
- }
- }
- }
- //签到状态修改
- private void generatorTask(TaskDto taskDto, CommunityDto communityDto) {
- //取出今天的日期
- Calendar cal = Calendar.getInstance(Locale.CHINA);
- cal.add(Calendar.DAY_OF_MONTH,-3);
- String today = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
- String nowTime = today + " 00:00:00";
- InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
- inspectionTaskDetailDto.setCommunityId(communityDto.getCommunityId());
- inspectionTaskDetailDto.setNowTime(nowTime);
- inspectionTaskDetailDto.setInspectionTimeFlag("1");
- List<InspectionTaskDetailDto> inspectionTaskDetailDtos = iInspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetails(inspectionTaskDetailDto);
- if (ListUtil.isNull(inspectionTaskDetailDtos)) {
- return;
- }
- String taskId = "";
- List<InspectionTaskDetailDto> taskDetailDtos = new ArrayList<>();
- for (InspectionTaskDetailDto inspectionTaskDetail : inspectionTaskDetailDtos) {
- //巡检任务明细表签到状态改为未到
- inspectionTaskDetail.setInspectionState("70000");
- if (!taskId.equals(inspectionTaskDetail.getTaskId())) {
- //获取巡检任务id
- taskId = inspectionTaskDetail.getTaskId();
- InspectionTaskDetailDto taskDetail = new InspectionTaskDetailDto();
- taskDetail.setTaskId(taskId);
- taskDetail.setInspectionTimeFlag("2");
- taskDetailDtos = iInspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetails(taskDetail);
- }
- iInspectionTaskDetailInnerServiceSMOImpl.updateInspectionTaskDetail(inspectionTaskDetail);
- if (!ListUtil.isNull(taskDetailDtos)) { //如果查询结果不为空且有数据,说明该任务id下的巡检计划有过打卡的数据,该条巡检任务状态就变为缺勤
- InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
- inspectionTaskDto.setTaskId(taskId);
- //巡检任务表巡检状态变为缺勤
- inspectionTaskDto.setState("20200409");
- iInspectionTaskInnerServiceSMOImpl.updateInspectionTask(inspectionTaskDto);
- } else { //如果查询数据为空,说明该任务id下的巡检计划没有打卡的数据,该条巡检任务状态就变为已超时
- InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
- inspectionTaskDto.setTaskId(taskId);
- //巡检任务表巡检状态变为已超时
- inspectionTaskDto.setState("20200408");
- iInspectionTaskInnerServiceSMOImpl.updateInspectionTask(inspectionTaskDto);
- }
- }
- }
- private void changeToadyTask(TaskDto taskDto, CommunityDto communityDto) throws ParseException {
- //取出今天的日期
- Calendar cal = Calendar.getInstance(Locale.CHINA);
- String today = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
- String toadyStartTime = today + " 00:00:00";
- String todayEndTime = today + " 23:59:59";
- InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
- inspectionTaskDetailDto.setCommunityId(communityDto.getCommunityId());
- inspectionTaskDetailDto.setQrCodeTime(toadyStartTime);
- inspectionTaskDetailDto.setNowTime(todayEndTime);
- inspectionTaskDetailDto.setInspectionTimeFlag("1");
- List<InspectionTaskDetailDto> inspectionTaskDetailDtos = iInspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetails(inspectionTaskDetailDto);
- if (inspectionTaskDetailDtos != null && inspectionTaskDetailDtos.size() > 0) {
- String taskId = "";
- for (InspectionTaskDetailDto inspectionTaskDetail : inspectionTaskDetailDtos) {
- InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
- if (!StringUtil.isEmpty(inspectionTaskDetail.getState()) && !inspectionTaskDetail.getState().equals("20200407")) { //不是巡检完成状态
- //获取当前时间
- Date date = new Date();
- if (!StringUtil.isEmpty(inspectionTaskDetail.getPlanInsTime()) && !StringUtil.isEmpty(inspectionTaskDetail.getPlanEndTime())) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- //获取巡检计划开始时间
- Date planInsTime = sdf.parse(inspectionTaskDetail.getPlanInsTime());
- //获取巡检计划结束时间
- Date planEndTime = sdf.parse(inspectionTaskDetail.getPlanEndTime());
- if (date.before(planInsTime)) { //如果当前时间在计划开始时间之前,任务状态就为未开始
- inspectionTaskDetail.setState("20200405"); // 20200405 未开始 20200406 巡检中 20200407 巡检完成 20200408 巡检未完成
- inspectionTaskDto.setState("20200405"); //20200405 未开始 20200406 巡检中 20200407 巡检完成 20200408 已超时 20200409 缺勤
- } else if (date.after(planEndTime)) { //如果当前时间在计划结束时间之后,任务状态为巡检未完成
- inspectionTaskDetail.setState("20200408");
- inspectionTaskDto.setState("20200408");
- } else {
- inspectionTaskDetail.setState("20200406");
- inspectionTaskDto.setState("20200406");
- }
- } else {
- inspectionTaskDetail.setState("20200405");
- inspectionTaskDto.setState("20200405");
- }
- iInspectionTaskDetailInnerServiceSMOImpl.updateInspectionTaskDetail(inspectionTaskDetail);
- }
- if (!taskId.equals(inspectionTaskDetail.getTaskId())) {
- //获取巡检任务id
- taskId = inspectionTaskDetail.getTaskId();
- inspectionTaskDto.setTaskId(taskId);
- iInspectionTaskInnerServiceSMOImpl.updateInspectionTask(inspectionTaskDto);
- }
- }
- }
- }
- }
|