|
|
@@ -6,12 +6,15 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
+import com.xunmei.common.core.domain.DateRange;
|
|
|
import com.xunmei.common.core.utils.DateHelper;
|
|
|
import com.xunmei.common.core.utils.DateUtils;
|
|
|
import com.xunmei.common.security.utils.SecurityUtils;
|
|
|
import com.xunmei.core.resumption.domain.AppPlan;
|
|
|
import com.xunmei.core.resumption.domain.AppPlanToPoint;
|
|
|
import com.xunmei.core.resumption.domain.AppPlanToRole;
|
|
|
+import com.xunmei.core.resumption.domain.Resumption;
|
|
|
import com.xunmei.core.resumption.dto.DistributeDto;
|
|
|
import com.xunmei.core.resumption.dto.DistributeStatusDto;
|
|
|
import com.xunmei.core.resumption.vo.appPlan.ResumptionPlanPageVo;
|
|
|
@@ -55,6 +58,8 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
private CoreSafecheckPlanToPointMapper coreSafecheckPlanToPointMapper;
|
|
|
@Autowired
|
|
|
private SafetyCheckJobBusiness safetyCheckJobBusiness;
|
|
|
+ @Autowired
|
|
|
+ private CoreSafetyTaskMapper coreSafetyTaskMapper;
|
|
|
|
|
|
@Override
|
|
|
public TableDataInfo<CoreSafecheckPlan> selectPage(CoreSafecheckPlan coreSafecheckPlan) {
|
|
|
@@ -103,13 +108,23 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
public void distributeToOrg(DistributeDto dto) {
|
|
|
for (DistributeStatusDto d :
|
|
|
dto.getOrgAndStatus()) {
|
|
|
+ CoreSafecheckPlan plan = baseMapper.selectOne(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getPlanOfOrgId, d.getOrgId()).eq(CoreSafecheckPlan::getParentId, dto.getId()));
|
|
|
+ //如果子计划计划已存在
|
|
|
+ if (plan != null) {
|
|
|
+ plan.setPlanStatus((long) (d.getStatus() > 0 ? 1 : 2));
|
|
|
+ plan.setDistributePlanStatus(d.getStatus().toString());
|
|
|
+ plan.setDistributeStatus("1");
|
|
|
+ baseMapper.updateById(plan);
|
|
|
+ }else{
|
|
|
|
|
|
CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(dto.getId());
|
|
|
coreSafecheckPlan.setDistributeStatus("1");
|
|
|
coreSafecheckPlan.setPlanOfOrgId(d.getOrgId());
|
|
|
- coreSafecheckPlan.setPlanStatus((long) (d.getStatus() == 0 ? 2 : 1));
|
|
|
+ coreSafecheckPlan.setPlanStatus((long) (d.getStatus() > 0 ? 1 : 2));
|
|
|
coreSafecheckPlan.setDistributePlanStatus(d.getStatus().toString());
|
|
|
coreSafecheckPlan.setCreateTime(new Date());
|
|
|
+ //下发所属机构类型
|
|
|
+ coreSafecheckPlan.setPlanOfOrgType(orgService.selectSysOrgById(coreSafecheckPlan.getPlanOfOrgId(), SecurityConstants.INNER).getType());
|
|
|
coreSafecheckPlan.setId(null);
|
|
|
// if (coreSafecheckPlan.getPlanCycle()==6){
|
|
|
// coreSafecheckPlan.setStartDate();
|
|
|
@@ -160,11 +175,13 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
//更改下发状态
|
|
|
CoreSafecheckPlan coreSafecheckPlan = new CoreSafecheckPlan();
|
|
|
coreSafecheckPlan.setId(dto.getId());
|
|
|
coreSafecheckPlan.setDistribute("1");
|
|
|
coreSafecheckPlan.setPlanStatus(1L);
|
|
|
+ coreSafecheckPlan.setBuildTaskNow(coreSafecheckPlanMapper.selectById(dto.getId()).isBuildTaskNow());
|
|
|
coreSafecheckPlanMapper.updateById(coreSafecheckPlan);
|
|
|
}
|
|
|
|
|
|
@@ -178,11 +195,20 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
//修改计划状态为停用
|
|
|
ap.setPlanStatus(2L);
|
|
|
baseMapper.updateById(ap);
|
|
|
+
|
|
|
+ //撤回需要删除本周期所有任务
|
|
|
+ DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
|
|
|
+ coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
+
|
|
|
}
|
|
|
//设置下发状态为未下发
|
|
|
plan.setDistribute("0");
|
|
|
- plan.setPlanStatus(0L);
|
|
|
+ plan.setPlanStatus(2L);
|
|
|
baseMapper.updateById(plan);
|
|
|
+ //撤回需要删除本周期所有任务
|
|
|
+ DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
|
|
|
+ coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -191,7 +217,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
//修改所有子计划
|
|
|
List<CoreSafecheckPlan> appPlans = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
|
|
|
//如果不存在子计划直接返回
|
|
|
- if(appPlans==null||appPlans.size()==0){
|
|
|
+ if (appPlans == null || appPlans.size() == 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
for (CoreSafecheckPlan ap :
|
|
|
@@ -238,7 +264,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
*/
|
|
|
@Override
|
|
|
public void insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan) {
|
|
|
- if(coreSafecheckPlan.getRulePointList().size()==0){
|
|
|
+ if (coreSafecheckPlan.getRulePointList().size() == 0) {
|
|
|
throw new RuntimeException("未选择检查项!");
|
|
|
}
|
|
|
|
|
|
@@ -250,6 +276,8 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
coreSafecheckPlan.setCreateTime(DateUtils.getNowDate());
|
|
|
coreSafecheckPlan.setModifiedBy(SecurityUtils.getUserId());
|
|
|
coreSafecheckPlan.setDistribute("0");
|
|
|
+ //计划所属机构类型
|
|
|
+ coreSafecheckPlan.setPlanOfOrgType(orgService.selectSysOrgById(coreSafecheckPlan.getPlanOfOrgId(), SecurityConstants.INNER).getType());
|
|
|
coreSafecheckPlanMapper.insert(coreSafecheckPlan);
|
|
|
|
|
|
} else {
|
|
|
@@ -297,21 +325,21 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //如果是新增计划并且勾选立即执行
|
|
|
- if (pid==null&&coreSafecheckPlan.isBuildTaskNow()) {
|
|
|
+ //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划
|
|
|
+ if (pid == null && coreSafecheckPlan.isBuildTaskNow() && (coreSafecheckPlan.getPlanOfOrgType() == 3 || coreSafecheckPlan.getPlanCycle() == 6)) {
|
|
|
DateTime datetime = new DateTime();
|
|
|
datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
|
|
DateHelper dateHelper = new DateHelper(datetime);
|
|
|
int cycle = Math.toIntExact(coreSafecheckPlan.getPlanCycle());
|
|
|
// SCHEDULEDTASKSLOG.info("开始生成每周常规安全检查任务!");
|
|
|
try {
|
|
|
- Map<String, Date> map=null;
|
|
|
+ Map<String, Date> map = null;
|
|
|
//如果无周期
|
|
|
- if(cycle==6){
|
|
|
+ if (cycle == 6) {
|
|
|
map = DateHelper.getStartAndEnd(dateHelper, null);
|
|
|
map.put("start", coreSafecheckPlan.getStartDate());
|
|
|
map.put("end", coreSafecheckPlan.getEndDate());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
map = DateHelper.getStartAndEnd(dateHelper, cycle);
|
|
|
}
|
|
|
|
|
|
@@ -320,72 +348,72 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
|
|
|
throw new RuntimeException("生成常规安全检查任务失败!");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- //处理子计划
|
|
|
- //拿到所有子计划
|
|
|
- List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, coreSafecheckPlan.getId()));
|
|
|
- coreSafecheckPlan = baseMapper.selectById(coreSafecheckPlan.getId());
|
|
|
- for (CoreSafecheckPlan p :
|
|
|
- children) {
|
|
|
- p.setPlanName(coreSafecheckPlan.getPlanName());
|
|
|
- p.setBuildTaskNow(coreSafecheckPlan.isBuildTaskNow());
|
|
|
- p.setCheckOrgType(coreSafecheckPlan.getCheckOrgType());
|
|
|
- p.setCheckType(coreSafecheckPlan.getCheckType());
|
|
|
- p.setCount(coreSafecheckPlan.getCount());
|
|
|
- p.setDescription(coreSafecheckPlan.getDescription());
|
|
|
- p.setExecOrgType(coreSafecheckPlan.getExecOrgType());
|
|
|
- p.setPlanCycle(coreSafecheckPlan.getPlanCycle());
|
|
|
- p.setPlanStatus(coreSafecheckPlan.getPlanStatus());
|
|
|
- p.setSourceType(coreSafecheckPlan.getSourceType());
|
|
|
- baseMapper.updateById(p);
|
|
|
-
|
|
|
-
|
|
|
- //拿到父计划的所有角色映射
|
|
|
- List<CoreSafecheckPlanToRole> roleList = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>().eq(CoreSafecheckPlanToRole::getPlanId, coreSafecheckPlan.getId()));
|
|
|
- //再处理角色关系
|
|
|
- if (roleList != null) {
|
|
|
- //删除子计划原角色映射
|
|
|
- coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(p.getId());
|
|
|
- for (CoreSafecheckPlanToRole r :
|
|
|
- roleList) {
|
|
|
- //添加来自父计划的角色映射
|
|
|
- coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(p.getId(), r.getRoleId()));
|
|
|
-
|
|
|
+//如果编辑需要处理子计划
|
|
|
+ if (pid == null) {
|
|
|
+ //处理子计划
|
|
|
+ //拿到所有子计划
|
|
|
+ List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, coreSafecheckPlan.getId()));
|
|
|
+ coreSafecheckPlan = baseMapper.selectById(coreSafecheckPlan.getId());
|
|
|
+ for (CoreSafecheckPlan p :
|
|
|
+ children) {
|
|
|
+ p.setPlanName(coreSafecheckPlan.getPlanName());
|
|
|
+ p.setBuildTaskNow(coreSafecheckPlan.isBuildTaskNow());
|
|
|
+ p.setCheckOrgType(coreSafecheckPlan.getCheckOrgType());
|
|
|
+ p.setCheckType(coreSafecheckPlan.getCheckType());
|
|
|
+ p.setCount(coreSafecheckPlan.getCount());
|
|
|
+ p.setDescription(coreSafecheckPlan.getDescription());
|
|
|
+ p.setExecOrgType(coreSafecheckPlan.getExecOrgType());
|
|
|
+ p.setPlanCycle(coreSafecheckPlan.getPlanCycle());
|
|
|
+ p.setPlanStatus(coreSafecheckPlan.getPlanStatus());
|
|
|
+ p.setSourceType(coreSafecheckPlan.getSourceType());
|
|
|
+ baseMapper.updateById(p);
|
|
|
+
|
|
|
+
|
|
|
+ //拿到父计划的所有角色映射
|
|
|
+ List<CoreSafecheckPlanToRole> roleList = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>().eq(CoreSafecheckPlanToRole::getPlanId, coreSafecheckPlan.getId()));
|
|
|
+ //再处理角色关系
|
|
|
+ if (roleList != null) {
|
|
|
+ //删除子计划原角色映射
|
|
|
+ coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(p.getId());
|
|
|
+ for (CoreSafecheckPlanToRole r :
|
|
|
+ roleList) {
|
|
|
+ //添加来自父计划的角色映射
|
|
|
+ coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(p.getId(), r.getRoleId()));
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- //再处理检查机构关系
|
|
|
- List<CoreSafecheckPlanToExecOrg> execOrgList = coreSafecheckPlanToExecOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToExecOrg>().eq(CoreSafecheckPlanToExecOrg::getPlanId, coreSafecheckPlan.getId()));
|
|
|
- if (execOrgList != null) {
|
|
|
- coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(p.getId());
|
|
|
- for (CoreSafecheckPlanToExecOrg org :
|
|
|
- execOrgList) {
|
|
|
- coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(p.getId(), org.getOrgId()));
|
|
|
-
|
|
|
+ //再处理检查机构关系
|
|
|
+ List<CoreSafecheckPlanToExecOrg> execOrgList = coreSafecheckPlanToExecOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToExecOrg>().eq(CoreSafecheckPlanToExecOrg::getPlanId, coreSafecheckPlan.getId()));
|
|
|
+ if (execOrgList != null) {
|
|
|
+ coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(p.getId());
|
|
|
+ for (CoreSafecheckPlanToExecOrg org :
|
|
|
+ execOrgList) {
|
|
|
+ coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(p.getId(), org.getOrgId()));
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- //再处理受检机构关系
|
|
|
- List<CoreSafecheckPlanToCheckOrg> checkOrgList = coreSafecheckPlanToCheckOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrg>().eq(CoreSafecheckPlanToCheckOrg::getPlanId, coreSafecheckPlan.getId()));
|
|
|
- if (checkOrgList != null) {
|
|
|
- coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(p.getId());
|
|
|
- for (CoreSafecheckPlanToCheckOrg org :
|
|
|
- checkOrgList) {
|
|
|
- coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(p.getId(), org.getOrgId()));
|
|
|
-
|
|
|
+ //再处理受检机构关系
|
|
|
+ List<CoreSafecheckPlanToCheckOrg> checkOrgList = coreSafecheckPlanToCheckOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrg>().eq(CoreSafecheckPlanToCheckOrg::getPlanId, coreSafecheckPlan.getId()));
|
|
|
+ if (checkOrgList != null) {
|
|
|
+ coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(p.getId());
|
|
|
+ for (CoreSafecheckPlanToCheckOrg org :
|
|
|
+ checkOrgList) {
|
|
|
+ coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(p.getId(), org.getOrgId()));
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- //再处理检查要点关系
|
|
|
- List<CoreSafecheckPlanToPoint> rpList = coreSafecheckPlanToPointMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, coreSafecheckPlan.getId()));
|
|
|
- if (rpList != null) {
|
|
|
- coreSafecheckPlanToPointMapper.deleteCoreSafecheckPlanToPointByPlanId(p.getId());
|
|
|
- for (CoreSafecheckPlanToPoint s :
|
|
|
- rpList) {
|
|
|
- coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(p.getId(), s.getPointId(), s.isPointScan(), s.isRequired()));
|
|
|
-
|
|
|
+ //再处理检查要点关系
|
|
|
+ List<CoreSafecheckPlanToPoint> rpList = coreSafecheckPlanToPointMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, coreSafecheckPlan.getId()));
|
|
|
+ if (rpList != null) {
|
|
|
+ coreSafecheckPlanToPointMapper.deleteCoreSafecheckPlanToPointByPlanId(p.getId());
|
|
|
+ for (CoreSafecheckPlanToPoint s :
|
|
|
+ rpList) {
|
|
|
+ coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(p.getId(), s.getPointId(), s.isPointScan(), s.isRequired()));
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|