From 91921823fb85dbd1ee236020c7b81f6bdf6d7edb Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期一, 24 三月 2025 13:51:16 +0800
Subject: [PATCH] 调整业务逻辑

---
 expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java           |    3 +++
 expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml                             |    4 ++++
 expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java                        |    3 +++
 expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml                         |    7 ++++---
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java |    6 ++++++
 expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java         |   17 +++++++++++------
 expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml                             |    4 ++++
 7 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java
index 433e608..809cb06 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java
@@ -25,4 +25,7 @@
 
     @ApiModelProperty("处室")
     private Long deptId;
+
+    @ApiModelProperty("已选中的组长id")
+    private Long selectedUserId;
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java
index b161de3..7cfeddf 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java
@@ -66,6 +66,12 @@
     private Long step;
 
     /**
+     * 专家人数
+     */
+    @ApiModelProperty(value = "专家人数")
+    private Long expertNum;
+
+    /**
      * 项目预计开始日期
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java
index bb3edcc..29e40af 100644
--- a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java
+++ b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java
@@ -60,6 +60,9 @@
      */
     public int deleteProjectExpertById(Long id);
 
+
+    int deleteProjectExpertByProjectId(Long id);
+
     /**
      * 批量删除项目专家关联
      *
diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
index 0cc440c..7ec8f93 100644
--- a/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
+++ b/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
@@ -140,13 +140,9 @@
 //            throw new ServiceException("固定专家不能为空!");
 //        }
 
-        if ((projectManagement1.getStep() == 1 || projectManagement1.getStep() == 2) && (projectManagement.getStep() == 2 ) ){
+        if ((projectManagement1.getStep() == 1 || projectManagement1.getStep() == 2) && (projectManagement.getStep() == 2  ) ){
             projectManagementSave.setStep(2L);
             projectManagementSave.setState(1L);
-        }else if (projectManagement1.getStep() == 2 && projectManagement.getStep() == 3){
-            projectManagementSave.setStep(2L);
-            projectManagementSave.setState(2L);
-            projectManagementSave.setProjectCheckTime(new Date());
             List<ProjectExpertSaveReqDto> collect = saveData.stream()
                     .filter(dto -> "1".equals(dto.getTeamLeader().toString()))
                     .collect(Collectors.toList());
@@ -159,6 +155,11 @@
             }
             projectManagementSave.setExpertName(collect.get(0).getExpertName());
             projectManagementSave.setExpertId(collect.get(0).getExpertId());
+        }else if (projectManagement1.getStep() == 2 && projectManagement.getStep() == 3){
+            projectManagementSave.setStep(2L);
+            projectManagementSave.setState(2L);
+            projectManagementSave.setProjectCheckTime(new Date());
+
         }
 
         List<ProjectExpertSaveReqDto> saveList = saveData.stream()
@@ -286,12 +287,16 @@
         if (req.getState() == 3){
             projectManagementUp.setStep(3L);
         }else if (req.getState() == 1){
-            projectManagementUp.setStep(2L);
+            projectManagementUp.setExpertName("");
+            projectManagementUp.setExpertId(0l);
+            projectManagementUp.setExpertNum(0L);
+            projectManagementUp.setStep(1L);
         }
         int i = projectManagementMapper.updateProjectManagement(projectManagementUp);
         //驳回删
         if (req.getState() == 1){
             projectFileMapper.deleteProjectFileByIdAndType(req.getId(), "1");
+            projectExpertMapper.deleteProjectExpertByProjectId(req.getId());
         }
         if (i > 0 && StringUtils.isNotEmpty(projectFile) && req.getState() == 3){
             //删除之前的该类型
diff --git a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
index 8d44d68..2ff51f7 100644
--- a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
@@ -232,6 +232,10 @@
         update project_expert set del_flag= 1 where id = #{id}
     </update>
 
+    <update id="deleteProjectExpertByProjectId" parameterType="Long">
+        update project_expert set del_flag= 1 where project_id = #{id}
+    </update>
+
     <update id="deleteProjectExpertByIds" parameterType="String">
         update project_expert set del_flag= 1 where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
diff --git a/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml
index 395a7ac..8b98a56 100644
--- a/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml
@@ -45,6 +45,7 @@
         <result property="step"    column="step"    />
         <result property="jobCategory"    column="job_category"    />
         <result property="projectAddress"    column="project_address"    />
+        <result property="expertNum"    column="expert_num"    />
 <!--        <result property="deptUserName"    column="dept_user_name"    />-->
         <result property="projectDateStart"    column="project_date_start"    />
         <result property="projectDateEnd"    column="project_date_end"    />
@@ -176,7 +177,7 @@
             <if test="evaluationState != null">evaluation_state = #{evaluationState},</if>
             <if test="expertNum != null">expert_num = #{expertNum},</if>
             <if test="expertId != null">expert_id = #{expertId},</if>
-            <if test="expertName != null and expertName != ''">expert_name = #{expertName},</if>
+            <if test="expertName != null">expert_name = #{expertName},</if>
             <if test="projectEndTime != null">project_end_time = #{projectEndTime},</if>
             <if test="desc != null and desc != ''">`desc` = #{desc},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
@@ -202,12 +203,12 @@
     <select id="projectExpertCheckInfo" parameterType="Long" resultMap="ProjectManagementInfoResult">
         select a.id,a.step, a.project_name, a.dept_name, a.job_category, a.project_address, a.project_date_start, a.project_date_end, a.remark,a.project_check_time,a.state,
             b.id project_expert_id,b.expert_id expert_id_info,c.name,c.sex,c.id_card,c.domain,c.rating_level,b.selection_mode,b.team_leader,
-            c.company_name,c.phone,a.create_time selection_time,c.remark expert_remark,a.project_code
+            c.company_name,c.phone,a.create_time selection_time,c.remark expert_remark,a.project_code,a.expert_num
         from project_management a
         left join project_expert b on a.id = b.project_id and b.del_flag = 0
         left join sys_expert_info c on b.expert_id = c.id
          where a.id = #{id}
-        order by b.team_leader asc , b.create_time desc
+        order by b.team_leader desc , b.create_time desc
     </select>
     <select id="getProjectExpertSate" parameterType="com.gkhy.system.domain.vo.request.ProjectExpertStateReq" resultType="com.gkhy.system.domain.vo.response.ProjectExpertStateResp">
         select a.id, a.project_name, a.evaluation_state, a.project_check_time, a.project_end_time, a.dept_name, a.expert_num
diff --git a/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml b/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
index 00a1709..b0131ec 100644
--- a/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
@@ -164,6 +164,10 @@
             #{item}
         </foreach>
         </if>
+        <!--去除掉组长-->
+        <if test="selectedUserId != null">
+            and id != #{selectedUserId}
+        </if>
         ORDER BY RAND()
             LIMIT #{num}
     </select>

--
Gitblit v1.9.2