diff --git a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java index d748fa4..df51298 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectAddExe.java @@ -28,7 +28,9 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -102,15 +104,8 @@ public class KeyProjectAddExe { if (!res) { throw new BizException("保存失败"); } - if(cmd.getKeyProjectCameraAddCmdList()!=null) { - List keyProjectCameraAddCmdList = cmd.getKeyProjectCameraAddCmdList(); - - List keyProjectCameraDOList = keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList); - keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> { - keyProjectCameraAddCmd.setKeyProjectId(keyProjectE.getKeyProjectId()); - keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID()); - }); - keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + if (cmd.getKeyProjectCameraAddCmdList() != null) { + saveKeyProjectCameras(keyProjectE.getKeyProjectId(), cmd.getKeyProjectCameraAddCmdList()); } if (!CollectionUtils.isEmpty(penaltyPersonnelAddCmdList)) { keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId()); @@ -134,5 +129,34 @@ public class KeyProjectAddExe { } return keyProjectCO; } + + private void saveKeyProjectCameras(String keyProjectId, List keyProjectCameraAddCmdList) { + keyProjectCameraRepository.deleteByKeyProjectId(keyProjectId); + List filteredCameraAddCmdList = filterCameraAddCmdList(keyProjectCameraAddCmdList); + if (CollectionUtils.isEmpty(filteredCameraAddCmdList)) { + return; + } + List keyProjectCameraDOList = keyProjectCameraCoConvertor.converCmdsToDOs(filteredCameraAddCmdList); + keyProjectCameraDOList.forEach(item -> { + item.setKeyProjectId(keyProjectId); + item.setKeyProjectCameraId(Tools.get32UUID()); + }); + keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + } + + private List filterCameraAddCmdList(List keyProjectCameraAddCmdList) { + if (keyProjectCameraAddCmdList == null) { + return null; + } + return new ArrayList<>(keyProjectCameraAddCmdList.stream() + .filter(item -> item != null + && StringUtils.isNotBlank(item.getCameraId()) + && item.getCameraType() != null) + .collect(Collectors.toMap(item -> item.getCameraId() + "_" + item.getCameraType(), + item -> item, + (exist, ignore) -> exist, + LinkedHashMap::new)) + .values()); + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java index 8686a86..98551a5 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/project/KeyProjectUpdateExe.java @@ -28,9 +28,11 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.time.LocalDateTime; import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -90,15 +92,8 @@ public class KeyProjectUpdateExe { if (!res) { throw new BizException("修改失败"); } - if(keyProjectUpdateCmd.getKeyProjectCameraAddCmdList()!=null){ - keyProjectCameraRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId()); - List keyProjectCameraAddCmdList = keyProjectUpdateCmd.getKeyProjectCameraAddCmdList(); - List keyProjectCameraDOList =keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList); - keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> { - keyProjectCameraAddCmd.setKeyProjectId(keyProjectE.getKeyProjectId()); - keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID()); - }); - keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + if (keyProjectUpdateCmd.getKeyProjectCameraAddCmdList() != null) { + saveKeyProjectCameras(keyProjectE.getKeyProjectId(), keyProjectUpdateCmd.getKeyProjectCameraAddCmdList()); } if (keyProjectUpdateCmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) { keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId()); @@ -181,14 +176,7 @@ public class KeyProjectUpdateExe { // 流程二(自动创建):开工确认时可添加摄像头和处罚人员 if (CreateSourceEnum.AUTO.getCode().equals(byId.getCreateSource())) { if (keyProjectUpdateStatusCmd.getKeyProjectCameraAddCmdList() != null) { - keyProjectCameraRepository.deleteByKeyProjectId(byId.getKeyProjectId()); - List keyProjectCameraAddCmdList = keyProjectUpdateStatusCmd.getKeyProjectCameraAddCmdList(); - List keyProjectCameraDOList = keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList); - keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> { - keyProjectCameraAddCmd.setKeyProjectId(byId.getKeyProjectId()); - keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID()); - }); - keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + saveKeyProjectCameras(byId.getKeyProjectId(), keyProjectUpdateStatusCmd.getKeyProjectCameraAddCmdList()); } if (keyProjectUpdateStatusCmd.getKeyProjectPenaltyPersonnelAddCmdList() != null) { keyProjectPenaltyPersonnelRepository.deleteByKeyProjectId(byId.getKeyProjectId()); @@ -229,5 +217,34 @@ public class KeyProjectUpdateExe { || StringUtils.isNotBlank(item.getDepartmentName()))) .collect(Collectors.toList()); } + + private void saveKeyProjectCameras(String keyProjectId, List keyProjectCameraAddCmdList) { + keyProjectCameraRepository.deleteByKeyProjectId(keyProjectId); + List filteredCameraAddCmdList = filterCameraAddCmdList(keyProjectCameraAddCmdList); + if (CollectionUtils.isEmpty(filteredCameraAddCmdList)) { + return; + } + List keyProjectCameraDOList = keyProjectCameraCoConvertor.converCmdsToDOs(filteredCameraAddCmdList); + keyProjectCameraDOList.forEach(item -> { + item.setKeyProjectId(keyProjectId); + item.setKeyProjectCameraId(Tools.get32UUID()); + }); + keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + } + + private List filterCameraAddCmdList(List keyProjectCameraAddCmdList) { + if (keyProjectCameraAddCmdList == null) { + return null; + } + return new ArrayList<>(keyProjectCameraAddCmdList.stream() + .filter(item -> item != null + && StringUtils.isNotBlank(item.getCameraId()) + && item.getCameraType() != null) + .collect(Collectors.toMap(item -> item.getCameraId() + "_" + item.getCameraType(), + item -> item, + (exist, ignore) -> exist, + LinkedHashMap::new)) + .values()); + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/query/inspection/SafetyEnvironmentalInspectionQueryExe.java b/web-app/src/main/java/com/zcloud/key/project/command/query/inspection/SafetyEnvironmentalInspectionQueryExe.java index 288076f..8c98050 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/query/inspection/SafetyEnvironmentalInspectionQueryExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/query/inspection/SafetyEnvironmentalInspectionQueryExe.java @@ -1,5 +1,6 @@ package com.zcloud.key.project.command.query.inspection; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.exception.BizException; import com.jjb.saas.framework.auth.model.SSOUser; @@ -33,7 +34,6 @@ import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmen import com.zcloud.key.project.persistence.repository.inspection.SafetyEnvironmentalInspectionUserRepository; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; -import org.springframework.util.ObjectUtils; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -70,14 +70,12 @@ public class SafetyEnvironmentalInspectionQueryExe { public SafetyEnvironmentalInspectionCO queryById(String uuid) { // 安全环保检查信息 SafetyEnvironmentalInspectionDO inspectionDO = safetyEnvironmentalInspectionRepository.getByInspectionId(uuid); - Integer verifyType = 2; - Integer affirmType = 3; - if (!ObjectUtils.isEmpty(inspectionDO.getDefendFlag()) && inspectionDO.getDefendFlag() == 1 && inspectionDO.getStatus() != 7){ - verifyType = 5; - affirmType = 6; - } + Integer verifyType; + Integer affirmType; // 操作流程 List inspectionUserDOs = safetyEnvironmentalInspectionUserRepository.listAllByInspectionId(inspectionDO.getInspectionId()); + verifyType = resolveInspectionStageType(inspectionUserDOs, 5, 2); + affirmType = resolveInspectionStageType(inspectionUserDOs, 6, 3); // 核实人列表 List verifyUserDOs = new ArrayList<>(); // 确认人列表 @@ -137,6 +135,17 @@ public class SafetyEnvironmentalInspectionQueryExe { return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + private Integer resolveInspectionStageType(List inspectionUserDOs, + Integer preferredType, + Integer fallbackType) { + if (CollUtil.isEmpty(inspectionUserDOs)) { + return fallbackType; + } + boolean hasPreferredType = inspectionUserDOs.stream() + .anyMatch(item -> item != null && preferredType.equals(item.getType())); + return hasPreferredType ? preferredType : fallbackType; + } + private void fillPendingUserParams(Map params, SafetyEnvironmentalInspectionPageQry qry) { List currentPendingTypeList = resolveCurrentPendingTypeList(qry); if (currentPendingTypeList == null || currentPendingTypeList.isEmpty()) {