|  | @@ -6,6 +6,7 @@ import javax.annotation.Resource;
 | 
	
		
			
				|  |  |  import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import cn.hutool.core.date.DateTime;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  import com.xunmei.common.core.utils.DateHelper;
 | 
	
		
			
				|  |  |  import com.xunmei.core.resumption.dto.DistributeDto;
 | 
	
		
			
				|  |  |  import com.xunmei.core.safetyCheck.domain.CoreSafecheckPlan;
 | 
	
	
		
			
				|  | @@ -52,35 +53,25 @@ public class CoreSafecheckPlanController extends BaseController {
 | 
	
		
			
				|  |  |          coreSafecheckPlanService.cheHui(id);
 | 
	
		
			
				|  |  |          return AjaxResult.success();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @ApiOperation(value = "撤回后下发")
 | 
	
		
			
				|  |  |      @GetMapping(value = "/distributeCheHui/{id}")
 | 
	
		
			
				|  |  |  //    @RequiresPermissions("core:plan:findById")
 | 
	
		
			
				|  |  | -    public AjaxResult distributeCheHui(@PathVariable Long id) {
 | 
	
		
			
				|  |  | +    public AjaxResult distributeCheHui(@PathVariable Long id) throws Exception {
 | 
	
		
			
				|  |  |          int i = coreSafecheckPlanService.distributeCheHui(id);
 | 
	
		
			
				|  |  |          CoreSafecheckPlan plan = coreSafecheckPlanService.getById(id);
 | 
	
		
			
				|  |  |          //撤回后的下发如果是无周期或者勾选立即执行也需要生成任务
 | 
	
		
			
				|  |  | -        if(plan.isBuildTaskNow()||plan.getPlanCycle()==6){
 | 
	
		
			
				|  |  | -            int cycle = Math.toIntExact(plan.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", plan.getStartDate());
 | 
	
		
			
				|  |  | -                map.put("end", plan.getEndDate());
 | 
	
		
			
				|  |  | -            }else{
 | 
	
		
			
				|  |  | -                map = DateHelper.getStartAndEnd(dateHelper, cycle);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                jobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
 | 
	
		
			
				|  |  | -            } catch (Exception e) {
 | 
	
		
			
				|  |  | -                e.printStackTrace();
 | 
	
		
			
				|  |  | +        if (plan.isBuildTaskNow() || plan.getPlanCycle() == 6) {
 | 
	
		
			
				|  |  | +//获取父计划下面所有父id相等并且未删除并且已启用的计划
 | 
	
		
			
				|  |  | +            List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
 | 
	
		
			
				|  |  | +            if(plan.getPlanOfOrgType()==3) {
 | 
	
		
			
				|  |  | +                plans.add(plan);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            jobBusiness.createTaskByPlans(plans);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return AjaxResult.success(i);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 查询常规安全检查计划列表
 | 
	
		
			
				|  |  |       */
 | 
	
	
		
			
				|  | @@ -114,15 +105,35 @@ public class CoreSafecheckPlanController extends BaseController {
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @ApiOperation(value = "新增CoreSafecheckPlan")
 | 
	
		
			
				|  |  |      @RequiresPermissions("core:checkplan:add")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Log(title = "常规安全检查计划", businessType = BusinessType.INSERT)
 | 
	
		
			
				|  |  |      @PostMapping
 | 
	
		
			
				|  |  | -    public AjaxResult add(@RequestBody CoreSafecheckPlan coreSafecheckPlan) {
 | 
	
		
			
				|  |  | -        coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
 | 
	
		
			
				|  |  | +    public AjaxResult add(@RequestBody CoreSafecheckPlan coreSafecheckPlan) throws Exception {
 | 
	
		
			
				|  |  | +        Long returnId = coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
 | 
	
		
			
				|  |  | +        //判断是否是编辑并且计划所属任务不存在已完成或者逾期,需要删除所有任务重新生成
 | 
	
		
			
				|  |  | +        boolean isEditAll = coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.getId() != null;
 | 
	
		
			
				|  |  | +        //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划
 | 
	
		
			
				|  |  | +        if (coreSafecheckPlan.getId() == null && coreSafecheckPlan.isBuildTaskNow() && (coreSafecheckPlan.getPlanOfOrgType() == 3 || coreSafecheckPlan.getPlanCycle() == 6)) {
 | 
	
		
			
				|  |  | +            CoreSafecheckPlan plan = coreSafecheckPlanService.getById(returnId);
 | 
	
		
			
				|  |  | +            //获取父计划下面所有父id相等并且未删除并且已启用的计划
 | 
	
		
			
				|  |  | +            List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getDistribute, 1));
 | 
	
		
			
				|  |  | +            plans.add(plan);
 | 
	
		
			
				|  |  | +            jobBusiness.createTaskByPlans(plans);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (isEditAll) {
 | 
	
		
			
				|  |  | +            CoreSafecheckPlan plan = coreSafecheckPlanService.getById(returnId);
 | 
	
		
			
				|  |  | +//获取父计划下面所有父id相等并且未删除并且已启用的计划
 | 
	
		
			
				|  |  | +            List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
 | 
	
		
			
				|  |  | +            if(plan.getPlanOfOrgType()==3) {
 | 
	
		
			
				|  |  | +                plans.add(plan);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            jobBusiness.createTaskByPlans(plans);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          return success();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | -     * 修改常规安全检查计划
 | 
	
		
			
				|  |  | +     * 修改常规安全检查计划(废弃)
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @ApiOperation(value = "修改CoreSafecheckPlan")
 | 
	
		
			
				|  |  |      @RequiresPermissions("core:checkplan:edit")
 | 
	
	
		
			
				|  | @@ -140,21 +151,13 @@ public class CoreSafecheckPlanController extends BaseController {
 | 
	
		
			
				|  |  |              //下发完成生成任务
 | 
	
		
			
				|  |  |              CoreSafecheckPlan plan = coreSafecheckPlanService.getById(dto.getId());
 | 
	
		
			
				|  |  |              //如果选择了立即生效或者无周期
 | 
	
		
			
				|  |  | -            if(plan.isBuildTaskNow()||plan.getPlanCycle()==6){
 | 
	
		
			
				|  |  | -                int cycle = Math.toIntExact(plan.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", plan.getStartDate());
 | 
	
		
			
				|  |  | -                    map.put("end", plan.getEndDate());
 | 
	
		
			
				|  |  | -                }else{
 | 
	
		
			
				|  |  | -                    map = DateHelper.getStartAndEnd(dateHelper, cycle);
 | 
	
		
			
				|  |  | +            if (plan.isBuildTaskNow() || plan.getPlanCycle() == 6) {
 | 
	
		
			
				|  |  | +//获取父计划下面所有父id相等并且未删除并且已启用的计划
 | 
	
		
			
				|  |  | +                List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
 | 
	
		
			
				|  |  | +                if(plan.getPlanOfOrgType()==3) {
 | 
	
		
			
				|  |  | +                    plans.add(plan);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                jobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
 | 
	
		
			
				|  |  | +                jobBusiness.createTaskByPlans(plans);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              return AjaxResult.success();
 |