| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Locale; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 巡检签到状态修改定时任务 |
| | |
| | | List<CommunityDto> communityDtos = getAllCommunity(); |
| | | for (CommunityDto communityDto : communityDtos) { |
| | | try { |
| | | //签到状态修改 |
| | | generatorTask(taskDto, communityDto); |
| | | //当天巡检任务状态修改 |
| | | changeToadyTask(taskDto, communityDto); |
| | | } catch (Exception e) { |
| | | logger.error("推送消息失败", e); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |