refactor(): 增加重点作业处罚人员数据判空逻辑

dev
lishiwei 2026-06-23 17:02:27 +08:00
parent f6b3ed5102
commit 38268261b4
2 changed files with 45 additions and 17 deletions

View File

@ -2,6 +2,7 @@ package com.zcloud.key.project.command.project;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.key.project.command.convertor.project.KeyProjectCameraCoConvertor; import com.zcloud.key.project.command.convertor.project.KeyProjectCameraCoConvertor;
@ -30,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
@ -52,6 +54,15 @@ public class KeyProjectAddExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public KeyProjectCO execute(KeyProjectAddCmd cmd) { public KeyProjectCO execute(KeyProjectAddCmd cmd) {
List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList = null;
if (cmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) {
penaltyPersonnelAddCmdList = cmd.getKeyProjectPenaltyPersonnelAddCmdList().stream()
.filter(item -> item != null && (item.getUserId() != null
|| item.getDepartmentId() != null
|| StringUtils.isNotBlank(item.getUserName())
|| StringUtils.isNotBlank(item.getDepartmentName())))
.collect(Collectors.toList());
}
// if (StringUtils.isNotBlank(cmd.getProjectId()) && StringUtils.isNotBlank(cmd.getProjectName())) { // if (StringUtils.isNotBlank(cmd.getProjectId()) && StringUtils.isNotBlank(cmd.getProjectName())) {
// QueryWrapper<KeyProjectDO> queryWrapper = new QueryWrapper<>(); // QueryWrapper<KeyProjectDO> queryWrapper = new QueryWrapper<>();
@ -65,7 +76,7 @@ public class KeyProjectAddExe {
// } // }
// 流程一(手动创建):处罚人员必填 // 流程一(手动创建):处罚人员必填
if (CreateSourceEnum.MANUAL.getCode().equals(cmd.getCreateSource()) && CollUtil.isEmpty(cmd.getKeyProjectPenaltyPersonnelAddCmdList())) { if (CreateSourceEnum.MANUAL.getCode().equals(cmd.getCreateSource()) && CollUtil.isEmpty(penaltyPersonnelAddCmdList)) {
throw new BizException("处罚人员为必填项"); throw new BizException("处罚人员为必填项");
} }
@ -96,8 +107,7 @@ public class KeyProjectAddExe {
}); });
keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); keyProjectCameraRepository.saveBatch(keyProjectCameraDOList);
} }
if (cmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) { if (!CollectionUtils.isEmpty(penaltyPersonnelAddCmdList)) {
List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList = cmd.getKeyProjectPenaltyPersonnelAddCmdList();
List<KeyProjectPenaltyPersonnelDO> penaltyPersonnelDOList = keyProjectPenaltyPersonnelCoConvertor.converCmdsToDOs(penaltyPersonnelAddCmdList); List<KeyProjectPenaltyPersonnelDO> penaltyPersonnelDOList = keyProjectPenaltyPersonnelCoConvertor.converCmdsToDOs(penaltyPersonnelAddCmdList);
penaltyPersonnelDOList.forEach(item -> { penaltyPersonnelDOList.forEach(item -> {
item.setKeyProjectId(keyProjectE.getKeyProjectId()); item.setKeyProjectId(keyProjectE.getKeyProjectId());

View File

@ -2,6 +2,7 @@ package com.zcloud.key.project.command.project;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.key.project.command.convertor.project.KeyProjectCameraCoConvertor; import com.zcloud.key.project.command.convertor.project.KeyProjectCameraCoConvertor;
@ -32,6 +33,7 @@ import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
@ -54,6 +56,7 @@ public class KeyProjectUpdateExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void execute(KeyProjectUpdateCmd keyProjectUpdateCmd) { public void execute(KeyProjectUpdateCmd keyProjectUpdateCmd) {
List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList = filterPenaltyPersonnelAddCmdList(keyProjectUpdateCmd.getKeyProjectPenaltyPersonnelAddCmdList());
KeyProjectDO byId = keyProjectRepository.getById(keyProjectUpdateCmd.getId()); KeyProjectDO byId = keyProjectRepository.getById(keyProjectUpdateCmd.getId());
if (byId == null) { if (byId == null) {
throw new BizException("数据不存在"); throw new BizException("数据不存在");
@ -99,13 +102,14 @@ public class KeyProjectUpdateExe {
} }
if (keyProjectUpdateCmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) { if (keyProjectUpdateCmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) {
keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId()); keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId());
List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList = keyProjectUpdateCmd.getKeyProjectPenaltyPersonnelAddCmdList(); if (!CollectionUtils.isEmpty(penaltyPersonnelAddCmdList)) {
List<KeyProjectPenaltyPersonnelDO> penaltyPersonnelDOList = keyProjectPenaltyPersonnelCoConvertor.converCmdsToDOs(penaltyPersonnelAddCmdList); List<KeyProjectPenaltyPersonnelDO> penaltyPersonnelDOList = keyProjectPenaltyPersonnelCoConvertor.converCmdsToDOs(penaltyPersonnelAddCmdList);
penaltyPersonnelDOList.forEach(item -> { penaltyPersonnelDOList.forEach(item -> {
item.setKeyProjectId(keyProjectE.getKeyProjectId()); item.setKeyProjectId(keyProjectE.getKeyProjectId());
item.setKeyProjectPenaltyPersonnelId(Tools.get32UUID()); item.setKeyProjectPenaltyPersonnelId(Tools.get32UUID());
}); });
keyProjectPenaltyPersonnelRepository.saveBatch(penaltyPersonnelDOList); keyProjectPenaltyPersonnelRepository.saveBatch(penaltyPersonnelDOList);
}
} }
@ -123,6 +127,7 @@ public class KeyProjectUpdateExe {
} }
public void editStatus(KeyProjectUpdateStatusCmd keyProjectUpdateStatusCmd) { public void editStatus(KeyProjectUpdateStatusCmd keyProjectUpdateStatusCmd) {
List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList = filterPenaltyPersonnelAddCmdList(keyProjectUpdateStatusCmd.getKeyProjectPenaltyPersonnelAddCmdList());
KeyProjectDO byId = keyProjectRepository.getById(keyProjectUpdateStatusCmd.getId()); KeyProjectDO byId = keyProjectRepository.getById(keyProjectUpdateStatusCmd.getId());
if (byId == null) { if (byId == null) {
throw new BizException("数据不存在"); throw new BizException("数据不存在");
@ -187,13 +192,14 @@ public class KeyProjectUpdateExe {
} }
if (keyProjectUpdateStatusCmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) { if (keyProjectUpdateStatusCmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) {
keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(byId.getKeyProjectId()); keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(byId.getKeyProjectId());
List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList = keyProjectUpdateStatusCmd.getKeyProjectPenaltyPersonnelAddCmdList(); if (!CollectionUtils.isEmpty(penaltyPersonnelAddCmdList)) {
List<KeyProjectPenaltyPersonnelDO> penaltyPersonnelDOList = keyProjectPenaltyPersonnelCoConvertor.converCmdsToDOs(penaltyPersonnelAddCmdList); List<KeyProjectPenaltyPersonnelDO> penaltyPersonnelDOList = keyProjectPenaltyPersonnelCoConvertor.converCmdsToDOs(penaltyPersonnelAddCmdList);
penaltyPersonnelDOList.forEach(item -> { penaltyPersonnelDOList.forEach(item -> {
item.setKeyProjectId(byId.getKeyProjectId()); item.setKeyProjectId(byId.getKeyProjectId());
item.setKeyProjectPenaltyPersonnelId(Tools.get32UUID()); item.setKeyProjectPenaltyPersonnelId(Tools.get32UUID());
}); });
keyProjectPenaltyPersonnelRepository.saveBatch(penaltyPersonnelDOList); keyProjectPenaltyPersonnelRepository.saveBatch(penaltyPersonnelDOList);
}
} }
} }
} }
@ -211,5 +217,17 @@ public class KeyProjectUpdateExe {
}); });
} }
private List<KeyProjectPenaltyPersonnelAddCmd> filterPenaltyPersonnelAddCmdList(List<KeyProjectPenaltyPersonnelAddCmd> penaltyPersonnelAddCmdList) {
if (penaltyPersonnelAddCmdList == null) {
return null;
}
return penaltyPersonnelAddCmdList.stream()
.filter(item -> item != null && (item.getUserId() != null
|| item.getDepartmentId() != null
|| StringUtils.isNotBlank(item.getUserName())
|| StringUtils.isNotBlank(item.getDepartmentName())))
.collect(Collectors.toList());
}
} }