|  | @@ -9,9 +9,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.constant.SecurityConstants;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.DateRange;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.enums.CycleCommonEnum;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.utils.DateHelper;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.utils.DateUtils;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.utils.IDHelper;
 | 
	
		
			
				|  |  |  import com.xunmei.core.TaskCreatingServiceImplBase;
 | 
	
		
			
				|  |  |  import com.xunmei.core.resumption.domain.Resumption;
 | 
	
	
		
			
				|  | @@ -69,12 +71,14 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          CoreSafecheckPlan checkPlan = planMapper.selectById(planId);
 | 
	
		
			
				|  |  |          Integer planCycle = Math.toIntExact(checkPlan.getPlanCycle());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        CycleCommonEnum code = CycleCommonEnum.getEnum(0);
 | 
	
		
			
				|  |  | +        if(checkPlan.getPlanCycle()!=6L){
 | 
	
		
			
				|  |  | +            code=CycleCommonEnum.getEnum( Math.toIntExact(checkPlan.getPlanCycle())+2);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (!planCycle.equals(6)) {
 | 
	
		
			
				|  |  | -            DateHelper dateHelper = new DateHelper(datetime);
 | 
	
		
			
				|  |  | -            Map<String, Date> map = DateHelper.getStartAndEnd(dateHelper, planCycle);
 | 
	
		
			
				|  |  | -            start = map.get("start");
 | 
	
		
			
				|  |  | -            end = map.get("end");
 | 
	
		
			
				|  |  | +            DateRange map = DateUtils.getStartAndEnd(new Date(), code);
 | 
	
		
			
				|  |  | +            start = map.getStartTime();
 | 
	
		
			
				|  |  | +            end = map.getEndTime();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          createTaskForCycle(datetime, start, end, checkPlan, isNeedSendTodo, sourceType);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -168,19 +172,13 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
	
		
			
				|  |  |      @Async
 | 
	
		
			
				|  |  |      public void createTaskByPlans(List<CoreSafecheckPlan> plans) throws Exception {
 | 
	
		
			
				|  |  |          if (plans != null && plans.size() > 0) {
 | 
	
		
			
				|  |  | -            int cycle = Math.toIntExact(plans.get(0).getPlanCycle());
 | 
	
		
			
				|  |  |              DateTime datetime = new DateTime();
 | 
	
		
			
				|  |  |              datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
 | 
	
		
			
				|  |  | -            DateHelper dateHelper = new DateHelper(datetime);
 | 
	
		
			
				|  |  | -            Map<String, Date> map = null;
 | 
	
		
			
				|  |  | -            //如果无周期
 | 
	
		
			
				|  |  | -            if (cycle == 6) {
 | 
	
		
			
				|  |  | -                map = DateHelper.getStartAndEnd(dateHelper, null);
 | 
	
		
			
				|  |  | -                map.put("start", plans.get(0).getStartDate());
 | 
	
		
			
				|  |  | -                map.put("end", plans.get(0).getEndDate());
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                map = DateHelper.getStartAndEnd(dateHelper, cycle);
 | 
	
		
			
				|  |  | +            CycleCommonEnum code = CycleCommonEnum.getEnum(0);
 | 
	
		
			
				|  |  | +            if(plans.get(0).getPlanCycle()!=6L){
 | 
	
		
			
				|  |  | +                code=CycleCommonEnum.getEnum( Math.toIntExact(plans.get(0).getPlanCycle())+2);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), code);
 | 
	
		
			
				|  |  |              List<PlanTaskBuildVo> tasks = new ArrayList<>();
 | 
	
		
			
				|  |  |              for (CoreSafecheckPlan plan : plans) {
 | 
	
		
			
				|  |  |                  List<PlanTaskBuildVo> planTask = createPlanTask(plan);
 | 
	
	
		
			
				|  | @@ -188,7 +186,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              //生成具体任务
 | 
	
		
			
				|  |  | -            buildTask(datetime, tasks, map.get("start"), map.get("end"), true, 0);
 | 
	
		
			
				|  |  | +            buildTask(datetime, tasks, dateRange.getStartTime(), dateRange.getEndTime(), true, 0);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -381,23 +379,19 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
	
		
			
				|  |  |              //生成当前周期的起止时间
 | 
	
		
			
				|  |  |              DateTime datetime = new DateTime();
 | 
	
		
			
				|  |  |              datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
 | 
	
		
			
				|  |  | -            DateHelper dateHelper = new DateHelper(datetime);
 | 
	
		
			
				|  |  | -            int cy = Math.toIntExact(plan.getPlanCycle());
 | 
	
		
			
				|  |  | -            Map<String, Date> map = new HashMap<>();
 | 
	
		
			
				|  |  | -            if (cy == 6) {
 | 
	
		
			
				|  |  | -                map.put("start", plan.getStartDate());
 | 
	
		
			
				|  |  | -                map.put("end", plan.getEndDate());
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                map = DateHelper.getStartAndEnd(dateHelper, cy);
 | 
	
		
			
				|  |  | +            CycleCommonEnum code = CycleCommonEnum.getEnum(0);
 | 
	
		
			
				|  |  | +            if(plan.getPlanCycle()!=6L){
 | 
	
		
			
				|  |  | +                code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), code);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              //获取当前受检机构当前周期营业中的作息
 | 
	
		
			
				|  |  | -            List<SysWorkTime> workTimes = getWorkTime(map.get("start"), map.get("end"), org.getId());
 | 
	
		
			
				|  |  | +            List<SysWorkTime> workTimes = getWorkTime(dateRange.getStartTime(), dateRange.getEndTime(), org.getId());
 | 
	
		
			
				|  |  |              //配合履职次数为short类型
 | 
	
		
			
				|  |  |              short coun = Short.parseShort(plan.getCount().toString());
 | 
	
		
			
				|  |  |              //划分时间
 | 
	
		
			
				|  |  |              Map<Short, StartEndTime> rangeMap = splitTaskTime(coun, CycleCommonEnum.getEnum(cycleCode),
 | 
	
		
			
				|  |  | -                    map.get("start"), map.get("end"), workTimes);
 | 
	
		
			
				|  |  | +                    dateRange.getStartTime(),  dateRange.getEndTime(), workTimes);
 | 
	
		
			
				|  |  |              for (short i = 1; i <= coun; i++) {
 | 
	
		
			
				|  |  |                  //如果不存在当前次数的时间划分结果
 | 
	
		
			
				|  |  |                  if (!rangeMap.containsKey(i)) {
 | 
	
	
		
			
				|  | @@ -515,8 +509,8 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
	
		
			
				|  |  |                  hashMap.put(checkTask.getCheckOrgId(), batchId);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              checkTask.setBatchId(batchId);
 | 
	
		
			
				|  |  | -            //变更,如果当前机构当前YmdDate已存在已完成或者已逾期的任务则跳过,否则删除
 | 
	
		
			
				|  |  | -            List<CoreSafetyTask> coreSafetyTasks = checkTaskService.list(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).in(CoreSafetyTask::getStatus, 3, 4));
 | 
	
		
			
				|  |  | +            //变更,如果当前计划当前机构当前YmdDate已存在已完成或者已逾期的任务则跳过,否则删除
 | 
	
		
			
				|  |  | +            List<CoreSafetyTask> coreSafetyTasks = checkTaskService.list(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).eq(CoreSafetyTask::getPlanId,checkTask.getPlanId()).in(CoreSafetyTask::getStatus, 3, 4));
 | 
	
		
			
				|  |  |              if (coreSafetyTasks.size() > 0) {
 | 
	
		
			
				|  |  |                  //如果存在同批次的已完成或者已逾期的任务需要同步批次id
 | 
	
		
			
				|  |  |                  checkTask.setBatchId(coreSafetyTasks.get(0).getBatchId());
 | 
	
	
		
			
				|  | @@ -558,7 +552,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
	
		
			
				|  |  |              plans = new ArrayList<>();
 | 
	
		
			
				|  |  |              CoreSafecheckPlan coreSafecheckPlan = planMapper.selectById(safetyTaskBuildDto.getPlanId());
 | 
	
		
			
				|  |  |              plans.add(coreSafecheckPlan);
 | 
	
		
			
				|  |  | -            map = DateHelper.getStartAndEnd(safetyTaskBuildDto.getDate(), Math.toIntExact(coreSafecheckPlan.getPlanCycle()));
 | 
	
		
			
				|  |  | +            map = DateHelper.getStartAndEnd(safetyTaskBuildDto.getDate(), Math.toIntExact(coreSafecheckPlan.getPlanCycle())+2);
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              LambdaUpdateWrapper<CoreSafecheckPlan> qw = new LambdaUpdateWrapper<>();
 | 
	
		
			
				|  |  |              qw.eq(CoreSafecheckPlan::getPlanCycle, safetyTaskBuildDto.getPlanCycle());
 |