From 0414ddb0b2b3a7199ae6181a770f97ac140dbd73 Mon Sep 17 00:00:00 2001
From: zhangf <1603559716@qq.com>
Date: 星期三, 08 五月 2024 16:46:22 +0800
Subject: [PATCH] spi统计

---
 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyTeamServiceImpl.java |  219 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 199 insertions(+), 20 deletions(-)

diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyTeamServiceImpl.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyTeamServiceImpl.java
index 5c5c0ef..b19852a 100644
--- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyTeamServiceImpl.java
+++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/service/impl/EmergencyTeamServiceImpl.java
@@ -8,8 +8,10 @@
 import com.gkhy.safePlatform.commons.vo.ResultVO;
 import com.gkhy.safePlatform.commons.vo.SearchResultVO;
 import com.gkhy.safePlatform.emergency.entity.*;
+import com.gkhy.safePlatform.emergency.enums.TeamLevelEnum;
 import com.gkhy.safePlatform.emergency.excepiton.EmergencyException;
 import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes;
+import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyTeamFileReqDTO;
 import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyTeamMemberReqDTO;
 import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyTeamReqDTO;
 import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyTeamDetailRespDTO;
@@ -30,6 +32,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service("emergencyTeamService")
 public class EmergencyTeamServiceImpl implements EmergencyTeamService {
@@ -72,7 +75,7 @@
         return new SearchResultVO<>(
                 true,
                 pageIndex,
-                pageSize,
+                pageSize,page.getPages(),
                 page.getTotal(),
                 respList,
                 ResultCodes.OK
@@ -80,10 +83,11 @@
     }
 
     @Override
-    public ResultVO addEmergencyTeam(Long uid, EmergencyTeamReqDTO emergencyTeamReqDTO) {
-
+    public ResultVO<EmergencyTeamDetailRespDTO> addEmergencyTeam(Long uid, EmergencyTeamReqDTO emergencyTeamReqDTO) {
         //必填项验证
         checkRequired(emergencyTeamReqDTO);
+        // 验证枚举
+        checkEnum(emergencyTeamReqDTO);
 
         Date nowDate = new Date();
         //1.新增应急队伍
@@ -94,30 +98,48 @@
         emergencyTeamInfo.setGmtCreate(nowDate);
         emergencyTeamInfoService.addEmergencyTeam(emergencyTeamInfo);
         //2.新增应急队伍附件
-        List<EmergencyTeamFileInfo> fileInfoList = BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getFileList(), EmergencyTeamFileInfo.class);
+        if (!CollectionUtils.isEmpty(emergencyTeamReqDTO.getFileList())){
+            addEmergencyTeamFile(emergencyTeamInfo.getId(),uid,nowDate,emergencyTeamReqDTO.getFileList());
+        }
+        //3.新增应急队伍人员
+        if (!CollectionUtils.isEmpty(emergencyTeamReqDTO.getMemberList())){
+            addEmergencyTeamMember(emergencyTeamInfo.getId(),uid,nowDate,emergencyTeamReqDTO.getMemberList());
+        }
+        EmergencyTeamDetailRespDTO emergencyTeamDetailRespDTO = new EmergencyTeamDetailRespDTO();
+        BeanUtils.copyProperties(emergencyTeamInfo,emergencyTeamDetailRespDTO);
+        return new ResultVO<>(ResultCodes.OK,emergencyTeamDetailRespDTO);
+    }
+
+    private void  addEmergencyTeamFile(Long teamId ,Long uid , Date nowDate , List<EmergencyTeamFileReqDTO> emergencyTeamFileReqDTOList){
+        List<EmergencyTeamFileInfo> fileInfoList = BeanCopyUtils.copyBeanList(emergencyTeamFileReqDTOList, EmergencyTeamFileInfo.class);
         fileInfoList.forEach(EmergencyTeamFileInfo -> {
-            EmergencyTeamFileInfo.setTeamId(emergencyTeamInfo.getId());
+            EmergencyTeamFileInfo.setTeamId(teamId);
             EmergencyTeamFileInfo.setDelFlag(false);
             EmergencyTeamFileInfo.setCreateUid(uid);
             EmergencyTeamFileInfo.setGmtCreate(nowDate);
         });
-        emergencyTeamFileInfoService.addEmergencyTeamFile(fileInfoList);
-        //3.新增应急队伍人员
-        List<EmergencyTeamMemberInfo> memberInfoList = BeanCopyUtils.copyBeanList(emergencyTeamReqDTO.getMemberList(), EmergencyTeamMemberInfo.class);
-        memberInfoList.forEach(EmergencyTeamMemberInfo -> {
-            EmergencyTeamMemberInfo.setTeamId(emergencyTeamInfo.getId());
-            EmergencyTeamMemberInfo.setDelFlag(false);
-            EmergencyTeamMemberInfo.setCreateUid(uid);
-            EmergencyTeamMemberInfo.setGmtCreate(nowDate);
-        });
-        emergencyTeamMemberInfoService.addEmergencyTeamMember(memberInfoList);
+        for (EmergencyTeamFileInfo emergencyTeamFileInfo :fileInfoList){
+            emergencyTeamFileInfoService.addEmergencyTeamFile(emergencyTeamFileInfo);
+        }
+    }
 
-        return new ResultVO(ResultCodes.OK);
+    private void  addEmergencyTeamMember(Long teamId ,Long uid , Date nowDate , List<EmergencyTeamMemberReqDTO> emergencyTeamMemberReqDTOList){
+        List<EmergencyTeamMemberInfo> memberInfoList = BeanCopyUtils.copyBeanList(emergencyTeamMemberReqDTOList, EmergencyTeamMemberInfo.class);
+        memberInfoList.forEach(EmergencyTeamFileInfo -> {
+            EmergencyTeamFileInfo.setTeamId(teamId);
+            EmergencyTeamFileInfo.setDelFlag(false);
+            EmergencyTeamFileInfo.setCreateUid(uid);
+            EmergencyTeamFileInfo.setGmtCreate(nowDate);
+        });
+        for (EmergencyTeamMemberInfo emergencyTeamMemberInfo : memberInfoList){
+            emergencyTeamMemberInfoService.addEmergencyTeamMember(emergencyTeamMemberInfo);
+        }
     }
 
     @Override
     public ResultVO<EmergencyTeamDetailRespDTO> getEmergencyTeamById(Long id) {
         EmergencyTeamDetailRespDTO emergencyTeamDetailRespDTO = new EmergencyTeamDetailRespDTO();
+        //查询是否存在
         EmergencyTeamInfoDetailDO emergencyTeamInfoDetailDO = emergencyTeamInfoService.selectEmergencyTeamById(id);
         if (emergencyTeamInfoDetailDO==null){
             throw new EmergencyException(EmergencyResultCodes.TEAM_NOT_EXIST);
@@ -136,13 +158,162 @@
                 List<EmergencyTeamMemberRespDTO> emergencyTeamMemberRespDTOList = BeanCopyUtils.copyBeanList(emergencyTeamMemberInfoDOList , EmergencyTeamMemberRespDTO.class);
                 emergencyTeamDetailRespDTO.setMemberList(emergencyTeamMemberRespDTOList);
             }
+            return new ResultVO<>(ResultCodes.OK ,emergencyTeamDetailRespDTO);
         }
-        return new ResultVO<>(ResultCodes.OK ,emergencyTeamDetailRespDTO);
     }
+
+    @Override
+    public ResultVO updateEmergencyTeam(Long uid, EmergencyTeamReqDTO emergencyTeamReqDTO) {
+        // 验证枚举
+        checkEnum(emergencyTeamReqDTO);
+        Date nowDate = new Date();
+        //查询是否存在
+        EmergencyTeamInfoDetailDO emergencyTeamInfoDetailDO = emergencyTeamInfoService.selectEmergencyTeamById(emergencyTeamReqDTO.getId());
+        if (emergencyTeamInfoDetailDO==null){
+            throw new EmergencyException(EmergencyResultCodes.TEAM_NOT_EXIST);
+        }else{
+            EmergencyTeamInfo emergencyTeamInfo = new EmergencyTeamInfo();
+            BeanUtils.copyProperties(emergencyTeamReqDTO,emergencyTeamInfo);
+            emergencyTeamInfo.setUpdateUid(uid);
+            emergencyTeamInfo.setGmtModitify(nowDate);
+            emergencyTeamInfoService.updateEmergencyTeam(emergencyTeamInfo);
+            //修改应急队伍附件
+            updateEmergencyTeamFile(uid,emergencyTeamReqDTO.getId(),nowDate,emergencyTeamReqDTO.getFileList());
+            return new ResultVO(ResultCodes.OK);
+        }
+    }
+
+    private void updateEmergencyTeamFile(Long uid ,Long teamId ,Date nowDate,List<EmergencyTeamFileReqDTO> emergencyTeamFileReqDTOList){
+
+        List<EmergencyTeamFileInfoDO> emergencyTeamFileInfoDOList = emergencyTeamFileInfoService.selectByEmergencyTeamId(teamId);
+        List<Long> oldIdsList = emergencyTeamFileInfoDOList.stream().map(EmergencyTeamFileInfoDO::getId).collect(Collectors.toList());
+        List<Long> newIdsList = new ArrayList<>();
+
+        //新增的附件集合
+        List<EmergencyTeamFileInfo> addList = new ArrayList<>();
+        //删除的附件集合(id)
+        List<Long> deleteList = new ArrayList<>();
+        for (EmergencyTeamFileReqDTO emergencyTeamFileReqDTO : emergencyTeamFileReqDTOList){
+            //如果不存在id则表示页面新增的附件
+            if (emergencyTeamFileReqDTO.getId() == null){
+                EmergencyTeamFileInfo emergencyTeamFileInfo = new EmergencyTeamFileInfo();
+                BeanUtils.copyProperties(emergencyTeamFileReqDTO,emergencyTeamFileInfo);
+                emergencyTeamFileInfo.setDelFlag(false);
+                emergencyTeamFileInfo.setGmtCreate(nowDate);
+                emergencyTeamFileInfo.setCreateUid(uid);
+                emergencyTeamFileInfo.setTeamId(teamId);
+                addList.add(emergencyTeamFileInfo);
+            }
+            //如果存在id则判断页面是否删除
+            else{
+                newIdsList.add(emergencyTeamFileReqDTO.getId());
+            }
+        }
+        for (Long oldId : oldIdsList){
+            if (!newIdsList.contains(oldId)){
+                deleteList.add(oldId);
+            }
+        }
+        if (!CollectionUtils.isEmpty(addList)){
+            for (EmergencyTeamFileInfo emergencyTeamFileInfo : addList){
+                emergencyTeamFileInfoService.addEmergencyTeamFile(emergencyTeamFileInfo);
+            }
+        }
+        if (!CollectionUtils.isEmpty(deleteList)){
+            emergencyTeamFileInfoService.deleteEmergencyTeamFileByIds(deleteList);
+        }
+    }
+
+    @Override
+    public ResultVO addEmergencyTeamMember(Long uid, EmergencyTeamMemberReqDTO emergencyTeamMemberReqDTO) {
+        EmergencyTeamMemberInfo emergencyTeamMemberInfo = new EmergencyTeamMemberInfo();
+        BeanUtils.copyProperties(emergencyTeamMemberReqDTO,emergencyTeamMemberInfo);
+        emergencyTeamMemberInfo.setCreateUid(uid);
+        emergencyTeamMemberInfo.setGmtCreate(new Date());
+        emergencyTeamMemberInfo.setDelFlag(false);
+        emergencyTeamMemberInfoService.addEmergencyTeamMember(emergencyTeamMemberInfo);
+        return new ResultVO(ResultCodes.OK);
+    }
+
+    @Override
+    public ResultVO updateEmergencyTeamMember(Long uid, EmergencyTeamMemberReqDTO emergencyTeamMemberReqDTO) {
+        //查询是否存在
+        EmergencyTeamMemberInfoDO emergencyTeamMemberInfoDO = emergencyTeamMemberInfoService.selectEmergencyTeamMemberById(emergencyTeamMemberReqDTO.getId());
+        if (emergencyTeamMemberInfoDO==null){
+            throw new EmergencyException(EmergencyResultCodes.TEAM_USER_NOT_EXIST);
+        }else{
+            EmergencyTeamMemberInfo emergencyTeamMemberInfo = new EmergencyTeamMemberInfo();
+            BeanUtils.copyProperties(emergencyTeamMemberReqDTO,emergencyTeamMemberInfo);
+            emergencyTeamMemberInfo.setUpdateUid(uid);
+            emergencyTeamMemberInfo.setGmtModitify(new Date());
+            emergencyTeamMemberInfoService.updateEmergencyTeamMember(emergencyTeamMemberInfo);
+            return new ResultVO(ResultCodes.OK);
+        }
+    }
+
+    @Override
+    public ResultVO batchDeleteEmergencyTeam(Long[] ids) {
+        if (ids == null ||  ids.length==0){
+            throw new EmergencyException(EmergencyResultCodes.TEAM_NULL);
+        }else{
+            for (Long id : ids){
+                deleteEmergencyTeam(id);
+            }
+            return new ResultVO(ResultCodes.OK);
+        }
+    }
+
+    @Override
+    public ResultVO getEmergencyTeamMemberByTeamId(Long teamId) {
+        List<EmergencyTeamMemberInfoDO> emergencyTeamMemberInfoDOList = emergencyTeamMemberInfoService.selectByEmergencyTeamId(teamId);
+        List<EmergencyTeamMemberRespDTO> emergencyTeamMemberRespDTOList = BeanCopyUtils.copyBeanList(emergencyTeamMemberInfoDOList , EmergencyTeamMemberRespDTO.class);
+        return new ResultVO<>(ResultCodes.OK,emergencyTeamMemberRespDTOList);
+    }
+
+    private void deleteEmergencyTeam(Long id) {
+        //查询是否存在
+        EmergencyTeamInfoDetailDO emergencyTeamInfoDetailDO = emergencyTeamInfoService.selectEmergencyTeamById(id);
+        if (emergencyTeamInfoDetailDO==null){
+            throw new EmergencyException(EmergencyResultCodes.TEAM_NOT_EXIST);
+        }else{
+            Long teamId = emergencyTeamInfoDetailDO.getId();
+            //删除人员
+            emergencyTeamMemberInfoService.deleteEmergencyTeamMemberByTeamId(teamId);
+            //删除附件
+            emergencyTeamFileInfoService.deleteEmergencyTeamFileByTeamId(teamId);
+            //删除应急队伍
+            emergencyTeamInfoService.deleteEmergencyTeamById(teamId);
+        }
+    }
+
+    @Override
+    public ResultVO deleteEmergencyTeamMember(Long id) {
+        //查询是否存在
+        EmergencyTeamMemberInfoDO emergencyTeamMemberInfoDO = emergencyTeamMemberInfoService.selectEmergencyTeamMemberById(id);
+        if (emergencyTeamMemberInfoDO==null){
+            throw new EmergencyException(EmergencyResultCodes.TEAM_USER_NOT_EXIST);
+        }else{
+            emergencyTeamMemberInfoService.deleteEmergencyTeamMemberById(id);
+            return new ResultVO(ResultCodes.OK);
+        }
+    }
+
+    @Override
+    public ResultVO<EmergencyTeamMemberRespDTO> getEmergencyTeamMemberById(Long id) {
+        //查询是否存在
+        EmergencyTeamMemberInfoDO emergencyTeamMemberInfoDO = emergencyTeamMemberInfoService.selectEmergencyTeamMemberById(id);
+        if (emergencyTeamMemberInfoDO==null){
+            throw new EmergencyException(EmergencyResultCodes.TEAM_USER_NOT_EXIST);
+        }else{
+            EmergencyTeamMemberRespDTO emergencyTeamMemberRespDTO = new EmergencyTeamMemberRespDTO();
+            BeanUtils.copyProperties(emergencyTeamMemberInfoDO,emergencyTeamMemberRespDTO);
+            return new ResultVO<>(ResultCodes.OK ,emergencyTeamMemberRespDTO);
+        }
+    }
+
 
     /**
      * 验证必填项
-     *
      * @return
      */
     private void checkRequired(EmergencyTeamReqDTO emergencyTeamReqDTO) {
@@ -151,7 +322,7 @@
             throw new EmergencyException(EmergencyResultCodes.TEAM_NAME_NULL);
         }
         //级别
-        if (StringUtils.isBlank(emergencyTeamReqDTO.getTeamLevel())) {
+        if (emergencyTeamReqDTO.getTeamLevel() == null) {
             throw new EmergencyException(EmergencyResultCodes.TEAM_LEVEL_NULL);
         }
         //负责人
@@ -159,7 +330,6 @@
             throw new EmergencyException(EmergencyResultCodes.TEAM_PRINCIPAL_NULL);
         }
         //负责人部门
-
         if (emergencyTeamReqDTO.getPrincipalDepartmentId() == null || emergencyTeamReqDTO.getPrincipalDepartmentId() == 0) {
             throw new EmergencyException(EmergencyResultCodes.TEAM_PRINCIPAL_DEPARTMENT_NULL);
         }
@@ -198,4 +368,13 @@
         }
     }
 
+    /**
+     * 枚举验证
+     */
+    private void checkEnum(EmergencyTeamReqDTO emergencyTeamReqDTO) {
+        if (TeamLevelEnum.getByCode(emergencyTeamReqDTO.getTeamLevel()) == null) {
+            throw new EmergencyException(EmergencyResultCodes.TEAM_ENUM_LEVEL_NOT_EXIST);
+        }
+    }
+
 }

--
Gitblit v1.9.2