From 686bd303ddc68db338fe352c38392194217168a5 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期二, 11 三月 2025 15:27:59 +0800
Subject: [PATCH] 修改业务逻辑增加项目编码

---
 expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml                             |    3 +
 expert-common/src/main/java/com/gkhy/common/utils/uuid/RandomStringGenerator.java                  |   29 ++++++++++++++
 expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java                          |   11 +++++
 expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml                         |    9 +++-
 expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java                   |    2 
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java |    3 +
 expert-common/src/main/java/com/gkhy/common/utils/SecurityUtils.java                               |   15 ++++---
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportInfoRes.java     |    3 +
 expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java         |    4 +
 9 files changed, 67 insertions(+), 12 deletions(-)

diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java
index f567dce..44a0ff3 100644
--- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java
+++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java
@@ -38,7 +38,7 @@
     /**
      * 获取部门列表
      */
-    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+//    @PreAuthorize("@ss.hasPermi('system:dept:list')")
     @GetMapping("/list")
     @ApiOperation(value = "获取部门列表")
     public R<List<SysDept>> list(SysDept dept)
diff --git a/expert-common/src/main/java/com/gkhy/common/utils/SecurityUtils.java b/expert-common/src/main/java/com/gkhy/common/utils/SecurityUtils.java
index 7435b1a..9ce7cb2 100644
--- a/expert-common/src/main/java/com/gkhy/common/utils/SecurityUtils.java
+++ b/expert-common/src/main/java/com/gkhy/common/utils/SecurityUtils.java
@@ -1,17 +1,18 @@
 package com.gkhy.common.utils;
 
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.util.PatternMatchUtils;
 import com.gkhy.common.constant.Constants;
 import com.gkhy.common.constant.HttpStatus;
 import com.gkhy.common.core.domain.entity.SysRole;
 import com.gkhy.common.core.domain.model.LoginUser;
 import com.gkhy.common.exception.ServiceException;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.util.PatternMatchUtils;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 安全服务工具类
diff --git a/expert-common/src/main/java/com/gkhy/common/utils/uuid/RandomStringGenerator.java b/expert-common/src/main/java/com/gkhy/common/utils/uuid/RandomStringGenerator.java
new file mode 100644
index 0000000..e0fb62c
--- /dev/null
+++ b/expert-common/src/main/java/com/gkhy/common/utils/uuid/RandomStringGenerator.java
@@ -0,0 +1,29 @@
+package com.gkhy.common.utils.uuid;
+
+import java.util.Random;
+
+public class RandomStringGenerator {
+
+    private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+    private static final int LENGTH = 10;
+
+    public static String generateRandomString(int length) {
+        Random random = new Random();
+        StringBuilder stringBuilder = new StringBuilder(length);
+
+        for (int i = 0; i < length; i++) {
+            int index = random.nextInt(CHARACTERS.length());
+            stringBuilder.append(CHARACTERS.charAt(index));
+        }
+
+        return stringBuilder.toString();
+    }
+
+    public static void main(String[] args) {
+        for (int i = 0; i < 75; i++) {
+            String randomString = generateRandomString(10);
+            System.out.println(randomString);
+        }
+
+    }
+}
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java b/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java
index f2ffdc2..3ce2309 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java
@@ -127,6 +127,9 @@
     @ApiModelProperty(value = "评估状态0未评估1已评估")
     private Long evaluationState;
 
+    @ApiModelProperty(value = "项目编码")
+    private String projectCode;
+
     /**
      * 专家人数
      */
@@ -353,4 +356,12 @@
     public void setDeptPostName(ProjectDeptPostDTO deptPostName) {
         this.deptPostName = deptPostName;
     }
+
+    public String getProjectCode() {
+        return projectCode;
+    }
+
+    public void setProjectCode(String projectCode) {
+        this.projectCode = projectCode;
+    }
 }
\ No newline at end of file
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportInfoRes.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportInfoRes.java
index 9905b40..e55e1d1 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportInfoRes.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportInfoRes.java
@@ -26,6 +26,9 @@
     @ApiModelProperty(name = "出差事由")
     private String projectName;
 
+    @ApiModelProperty(name = "项目编码")
+    private String projectCode;
+
 
     /**
      * 部门名称
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 827c487..b161de3 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
@@ -33,6 +33,9 @@
     @ApiModelProperty(name = "项目名称")
     private String projectName;
 
+    @ApiModelProperty(name = "项目编码")
+    private String projectCode;
+
 
     /**
      * 部门名称
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 f404659..0cc440c 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
@@ -8,6 +8,7 @@
 import com.gkhy.common.utils.DateUtils;
 import com.gkhy.common.utils.SecurityUtils;
 import com.gkhy.common.utils.StringUtils;
+import com.gkhy.common.utils.uuid.RandomStringGenerator;
 import com.gkhy.system.domain.*;
 import com.gkhy.system.domain.vo.request.*;
 import com.gkhy.system.domain.vo.response.*;
@@ -65,7 +66,7 @@
      */
     @Override
     public List<ProjectManagement> selectProjectManagementList(ProjectManagement projectManagement) {
-        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) && SecurityUtils.getUserId() != 130L){
            projectManagement.setDeptId(SecurityUtils.getDeptId());
         }
         return projectManagementMapper.selectProjectManagementList(projectManagement);
@@ -93,6 +94,7 @@
            // projectManagementMapper.updateProjectManagement(projectManagementSave);
             updateById(projectManagementSave);
         }else {
+            projectManagementSave.setProjectCode(RandomStringGenerator.generateRandomString(10));
             projectManagementSave.setStep(1L);
             projectManagementSave.setCreateBy(SecurityUtils.getUsername());
             projectManagementSave.setCreateTime(DateUtils.getNowDate());
diff --git a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
index 17a7e23..8d44d68 100644
--- a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
@@ -41,6 +41,7 @@
     <resultMap type="com.gkhy.system.domain.vo.response.ProjectExpertExportInfoRes" id="ProjectExpertExportInfoResult">
         <result property="projectName"    column="project_name"    />
         <result property="deptName"    column="dept_name"    />
+        <result property="projectCode"    column="project_code"    />
         <collection  property="projectExpertExportResps"   javaType="java.util.List"  resultMap="ExpertExport" />
     </resultMap>
     <resultMap id="ExpertExport" type="com.gkhy.system.domain.vo.response.ProjectExpertExportResp">
@@ -284,7 +285,7 @@
 
 
     <select id="projectExpertExportList" parameterType="Long" resultMap="ProjectExpertExportInfoResult">
-        select  a.project_name ,a.dept_name
+        select  a.project_name ,a.dept_name,a.project_code
        ,c.name,c.id_card,c.name,c.job,c.title,c.company_name,b.freight_basis,b.billing_instructions,
         b.billing_duration, b.after_tax_amount, b.open_bank, b.bank_card,b.taxable_income,b.income_tax_payable,b.tax_expert_fee
         from project_management a
diff --git a/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml
index 3b8cf54..395a7ac 100644
--- a/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml
@@ -7,6 +7,7 @@
     <resultMap type="ProjectManagement" id="ProjectManagementResult">
         <result property="id"    column="id"    />
         <result property="projectName"    column="project_name"    />
+        <result property="projectCode"    column="project_code"    />
         <result property="deptId"    column="dept_id"    />
         <result property="deptName"    column="dept_name"    />
         <result property="jobCategory"    column="job_category"    />
@@ -37,6 +38,7 @@
     <resultMap type="com.gkhy.system.domain.vo.response.ProjectExpertManagementInfoRes" id="ProjectManagementInfoResult">
         <result property="id"    column="id"    />
         <result property="projectName"    column="project_name"    />
+        <result property="projectCode"    column="project_code"    />
         <result property="deptName"    column="dept_name"    />
         <result property="remark"    column="remark"    />
         <result property="state"    column="state"    />
@@ -69,7 +71,7 @@
         select id, project_name, dept_id, dept_name, job_category, project_address,dept_post_name,
                version, state, remark, project_date_start, project_date_end, expert_certificate,
                evaluation_state, expert_num, del_flag, create_by, create_time, update_by, update_time,project_check_time,expert_id,
-               expert_name,project_end_time,`desc`,step
+               expert_name,project_end_time,`desc`,step,project_code
         from project_management
     </sql>
 
@@ -78,6 +80,7 @@
         <where>
             and del_flag = 0
             <if test="projectName != null  and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
+            <if test="projectCode != null  and projectCode != ''"> and project_code like concat('%', #{projectCode}, '%')</if>
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="deptName != null  and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
             <if test="jobCategory != null  and jobCategory != ''"> and job_category like concat('%', #{jobCategory}, '%')</if>
@@ -104,6 +107,7 @@
         insert into project_management
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="projectName != null and projectName != ''">project_name,</if>
+            <if test="projectCode != null and projectCode != ''">project_code,</if>
             <if test="deptId != null">dept_id,</if>
             <if test="deptName != null and deptName != ''">dept_name,</if>
             <if test="jobCategory != null and jobCategory != ''">job_category,</if>
@@ -127,6 +131,7 @@
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="projectName != null and projectName != ''">#{projectName},</if>
+            <if test="projectCode != null and projectCode != ''">#{projectCode},</if>
             <if test="deptId != null">#{deptId},</if>
             <if test="deptName != null and deptName != ''">#{deptName},</if>
             <if test="jobCategory != null and jobCategory != ''">#{jobCategory},</if>
@@ -197,7 +202,7 @@
     <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
+            c.company_name,c.phone,a.create_time selection_time,c.remark expert_remark,a.project_code
         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

--
Gitblit v1.9.2