|
|
@@ -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());
|