From 473a007e3f8dc9f54d73f691578624251bdc7185 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: 星期一, 09 十二月 2024 13:27:08 +0800
Subject: [PATCH] 考评增加劳务字段

---
 expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java             |   24 +++++
 expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java          |    2 
 expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java                     |    2 
 expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml                          |   29 ++++++
 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java    |   20 ++++-
 expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java                           |    4 +
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java |    3 
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportResp.java     |   10 ++
 expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java                           |   14 +++
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectDetailResp.java           |    3 
 expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java          |   10 ++
 expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java      |    8 +
 expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml                          |   62 +++++++++++++++
 13 files changed, 180 insertions(+), 11 deletions(-)

diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java
index b7fd121..ea900b2 100644
--- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java
+++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java
@@ -1,5 +1,9 @@
 package com.gkhy.web.controller.system;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -30,6 +34,7 @@
  */
 @RestController
 @RequestMapping("/system/user/profile")
+@Api(tags = "基础信息修改")
 public class SysProfileController extends BaseController
 {
     @Autowired
@@ -87,7 +92,12 @@
      */
     @Log(title = "个人信息", businessType = BusinessType.UPDATE)
     @PutMapping("/updatePwd")
-    public AjaxResult updatePwd(String oldPassword, String newPassword)
+    @ApiOperation(value = "修改密码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "oldPassword", dataType = "String", required = true, value = "原密码"),
+            @ApiImplicitParam(paramType = "query", name = "newPassword", dataType = "String", required = true, value = "新密码")
+    })
+    public AjaxResult updatePwd(@RequestParam("oldPassword") String oldPassword, @RequestParam("newPassword")String newPassword)
     {
         LoginUser loginUser = getLoginUser();
         String userName = loginUser.getUsername();
@@ -100,6 +110,11 @@
         {
             return error("新密码不能与旧密码相同");
         }
+        // 检查新密码复杂性
+        if (!isValidPassword(newPassword)) {
+            return error("新密码必须包含数字和字母,并且可以包含特殊符号,长度至少为8个字符");
+        }
+
         newPassword = SecurityUtils.encryptPassword(newPassword);
         if (userService.resetUserPwd(userName, newPassword) > 0)
         {
@@ -111,6 +126,13 @@
         return error("修改密码异常,请联系管理员");
     }
 
+    // 添加密码复杂性检查方法
+    private static boolean isValidPassword(String password) {
+        // 正则表达式检查密码是否包含数字和字母,并且长度至少为8个字符
+        //String passwordPattern = "^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$";
+        String passwordPattern = "^(?=.*[0-9])(?=.*[a-zA-Z])[a-zA-Z0-9@#$%^&+=]{8,}$";
+        return password.matches(passwordPattern);
+    }
     /**
      * 头像上传
      */
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java b/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java
index f986dd8..6fb0e71 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java
@@ -121,6 +121,9 @@
     @ApiModelProperty(value = "计费标准")
     private String freightBasis;
 
+    @ApiModelProperty(value = "计费标准说明")
+    private String billingInstructions;
+
     /** 计费时长 */
     @ApiModelProperty(value = "计费时长")
     private BigDecimal billingDuration;
@@ -137,5 +140,16 @@
     @ApiModelProperty(value = "卡号")
     private String bankCard;
 
+    @ApiModelProperty(value = "应纳税所得额")
+    private BigDecimal taxableIncome;
+
+    @ApiModelProperty(value = "应缴个税")
+    private BigDecimal incomeTaxPayable;
+
+    @ApiModelProperty(value = "专家费(税前)")
+    private BigDecimal taxExpertFee;
+
+
+
 
 }
\ No newline at end of file
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java
index ea5686e..770f4d1 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java
@@ -56,6 +56,10 @@
     @TableField("big_classify")
     private Long bigClassify;
 
+    @ApiModelProperty("大类别名称")
+    @TableField(exist = false)
+    private String bigClassifyName;
+
     @NotNull(message ="小类别不能为空" )
     @ApiModelProperty("小类别id")
     @TableField("small_classify")
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java
index 10e1a98..af3dc62 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java
@@ -80,15 +80,14 @@
     @NotBlank(message = "计费标准不能为空")
     private String freightBasis;
 
+    @ApiModelProperty(value = "计费标准说明")
+    private String billingInstructions;
+
     /** 计费时长 */
     @ApiModelProperty(value = "计费时长")
     @NotNull(message = "计费时长不能为空")
     private BigDecimal billingDuration;
 
-    /** 税后金额 */
-    @ApiModelProperty(value = "税后金额")
-    @NotNull(message = "税后金额不能为空")
-    private BigDecimal afterTaxAmount;
 
     /** 开户行 */
     @ApiModelProperty(value = "开户行")
@@ -100,6 +99,19 @@
     @NotBlank(message = "卡号不能为空")
     private String bankCard;
 
+    @ApiModelProperty(value = "税后金额")
+    private BigDecimal afterTaxAmount;
+
+    @ApiModelProperty(value = "应纳税所得额")
+    private BigDecimal taxableIncome;
+
+    @ApiModelProperty(value = "应缴个税")
+    private BigDecimal incomeTaxPayable;
+
+    @ApiModelProperty(value = "专家费(税前)")
+    @NotNull(message = "专家费不能为空")
+    private BigDecimal taxExpertFee;
+
 
 
     @Data
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectDetailResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectDetailResp.java
index 6203d2a..4f9b89e 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectDetailResp.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectDetailResp.java
@@ -51,4 +51,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "项目预计结束日期")
     private Date projectDateEnd;
+
+    @ApiModelProperty(value = "工作类别")
+    private String jobCategory;
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java
index 338b7e2..44d618e 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java
@@ -22,4 +22,7 @@
      */
     @ApiModelProperty(value = "评估状态0未评估1已评估")
     private Long evaluationState;
+
+    @ApiModelProperty(value = "一级分类名称")
+    private String bigClassifyName;
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportResp.java
index 8a11937..db7a5b6 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportResp.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertExportResp.java
@@ -31,6 +31,9 @@
     @ApiModelProperty(value = "计费标准")
     private String freightBasis;
 
+    @ApiModelProperty(value = "计费标准说明")
+    private String billingInstructions;
+
     /** 计费时长 */
     @ApiModelProperty(value = "计费时长")
     private BigDecimal billingDuration;
@@ -47,6 +50,13 @@
     @ApiModelProperty(value = "卡号")
     private String bankCard;
 
+    @ApiModelProperty(value = "应纳税所得额")
+    private BigDecimal taxableIncome;
 
+    @ApiModelProperty(value = "应缴个税")
+    private BigDecimal incomeTaxPayable;
+
+    @ApiModelProperty(value = "专家费(税前)")
+    private BigDecimal taxExpertFee;
 
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java
index a22aea5..80f60f8 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java
@@ -34,4 +34,14 @@
 
     @ApiModelProperty("审批状态(0申请提交,1待审核,2审批通过,3审批不通过)")
     private Integer state;
+
+    @ApiModelProperty("大类别名称")
+    private String bigClassifyName;
+
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty("专家领域")
+    private String domain;
+
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java
index 75b457a..6e748e0 100644
--- a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java
+++ b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java
@@ -27,6 +27,8 @@
      */
     List<SysExpertInfo> expertInfoList(SysExpertInfo expertInfo);
 
+    List<SysExpertInfo> expertInfoListV2 (SysExpertInfo expertInfo);
+
     /**
      * 根据id card获取专家信息
      * @param idCard
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 f677602..63b845f 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
@@ -490,12 +490,15 @@
             projectDetailResp.setProjectName(projectManagement.getProjectName());
             projectDetailResp.setProjectDateStart(projectManagement.getProjectDateStart());
             projectDetailResp.setProjectDateEnd(projectManagement.getProjectDateEnd());
+            if (StringUtils.isNotEmpty(projectManagement.getJobCategory())){
+                projectDetailResp.setJobCategory(projectManagement.getJobCategory());
+            }
             SysExpertInfo sysExpertInfo = sysExpertInfoMapper.selectById(projectDetailResp.getExpertId());
             if (sysExpertInfo != null){
                 projectDetailResp.setTitle(sysExpertInfo.getTitle());
                 projectDetailResp.setJob(sysExpertInfo.getJob());
-
             }
+
         }
         return projectDetailResp;
     }
@@ -559,4 +562,7 @@
         return projectManagement;
     }
 
+
+
+
 }
\ No newline at end of file
diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java
index c9c1f28..5c602d5 100644
--- a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java
+++ b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java
@@ -35,7 +35,7 @@
     public List<SysExpertInfo> exportInfoList(SysExpertInfo expertInfo) {
         //
 
-        return baseMapper.expertInfoList(expertInfo);
+        return baseMapper.expertInfoListV2(expertInfo);
     }
 
     @Override
diff --git a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
index f07accb..17a7e23 100644
--- a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml
@@ -32,6 +32,10 @@
         <result property="afterTaxAmount"    column="after_tax_amount"    />
         <result property="openBank"    column="open_bank"    />
         <result property="bankCard"    column="bank_card"    />
+        <result property="taxableIncome"    column="taxable_income"    />
+        <result property="incomeTaxPayable"    column="income_tax_payable"    />
+        <result property="taxExpertFee"    column="tax_expert_fee"    />
+        <result property="billingInstructions"    column="billing_instructions"    />
     </resultMap>
 
     <resultMap type="com.gkhy.system.domain.vo.response.ProjectExpertExportInfoRes" id="ProjectExpertExportInfoResult">
@@ -50,13 +54,18 @@
         <result property="afterTaxAmount"    column="after_tax_amount"    />
         <result property="openBank"    column="open_bank"    />
         <result property="bankCard"    column="bank_card"    />
+        <result property="taxableIncome"    column="taxable_income"    />
+        <result property="incomeTaxPayable"    column="income_tax_payable"    />
+        <result property="taxExpertFee"    column="tax_expert_fee"    />
+        <result property="billingInstructions"    column="billing_instructions"    />
+
     </resultMap>
 
 
 
     <sql id="selectProjectExpertVo">
         select id, project_id, expert_id, score, evaluation_state, selection_mode, team_leader, del_flag, create_by, create_time, update_by, update_time, professional_ethics, impartial_honest, comprehensive_coordination, professional_ability, expressing_opinions, others, comprehensive_evaluation, major_dangers, general_hazards, content,
-               freight_basis, billing_duration, after_tax_amount, open_bank, bank_card from project_expert
+               freight_basis, billing_duration, after_tax_amount, open_bank, bank_card,taxable_income,income_tax_payable,tax_expert_fee,billing_instructions from project_expert
     </sql>
     <select id="selectProjectExpertList" parameterType="ProjectExpert" resultMap="ProjectExpertResult">
         <include refid="selectProjectExpertVo"/>
@@ -120,6 +129,9 @@
             <if test="afterTaxAmount != null">after_tax_amount,</if>
             <if test="openBank != null">open_bank,</if>
             <if test="bankCard != null">bank_card,</if>
+            <if test="taxableIncome != null">taxable_income,</if>
+            <if test="incomeTaxPayable != null">income_tax_payable,</if>
+            <if test="taxExpertFee != null">tax_expert_fee,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="projectId != null">#{projectId},</if>
@@ -148,6 +160,9 @@
             <if test="afterTaxAmount != null">#{afterTaxAmount},</if>
             <if test="openBank != null">#{openBank},</if>
             <if test="bankCard != null">#{bankCard},</if>
+            <if test="taxableIncome != null"> #{taxableIncome},</if>
+            <if test="incomeTaxPayable != null">#{incomeTaxPayable},</if>
+            <if test="taxExpertFee != null">#{taxExpertFee},</if>
         </trim>
     </insert>
 
@@ -187,6 +202,11 @@
             <if test="afterTaxAmount != null">after_tax_amount = #{afterTaxAmount},</if>
             <if test="openBank != null">open_bank = #{openBank},</if>
             <if test="bankCard != null">bank_card = #{bankCard},</if>
+            <if test="taxableIncome != null">taxable_income = #{taxableIncome},</if>
+            <if test="incomeTaxPayable != null">income_tax_payable = #{incomeTaxPayable},</if>
+            <if test="taxExpertFee != null">tax_expert_fee = #{taxExpertFee},</if>
+            <if test="billingInstructions  != null" > billing_instructions = #{billingInstructions},</if>
+
         </trim>
         where id = #{id}
     </update>
@@ -224,9 +244,11 @@
 
     <select id="projectExpertEvaluationList" parameterType="Long" resultType="com.gkhy.system.domain.vo.response.ProjectExpertEvaluationResp">
         select b.id ,b.expert_id expertId ,c.name,c.sex,c.id_card idCard,c.domain,c.rating_level ratingLevel,
-               b.selection_mode selectionMode,b.team_leader teamLeader,b.score,b.evaluation_state evaluationState
+               b.selection_mode selectionMode,b.team_leader teamLeader,b.score,b.evaluation_state evaluationState,
+               d.classify_name bigClassifyName
         from  project_expert b
                  left join sys_expert_info c on b.expert_id = c.id
+        left join sys_expert_classify d on c.big_classify = d.id
         where b.del_flag = 0 and  b.project_id = #{projectId}
         order by b.team_leader asc , b.selection_mode asc, b.create_time desc
     </select>
@@ -263,7 +285,8 @@
 
     <select id="projectExpertExportList" parameterType="Long" resultMap="ProjectExpertExportInfoResult">
         select  a.project_name ,a.dept_name
-       ,c.name,c.id_card,c.name,c.job,c.title,c.company_name,b.freight_basis,b.billing_duration, b.after_tax_amount, b.open_bank, b.bank_card
+       ,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
         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
diff --git a/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml b/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
index 3ed17c5..fa96982 100644
--- a/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
@@ -68,6 +68,62 @@
         </where>
         order by create_time desc
     </select>
+
+
+    <select id="expertInfoListV2" resultType="com.gkhy.system.domain.SysExpertInfo">
+        select a.id,a.name,a.sex,a.birthday,a.phone,a.title,a.degree,a.state,a.speciality,a.big_classify bigClassify,a.small_classify smallClassify,a.id_card idCard,a.company_name companyName,a.evidence,
+        a.domain,a.level,a.current_profession currentProfession,a.duty_status dutyStatus,a.support_direction_safety supportDirectionSafety,
+        a.support_direction_prevention supportDirectionPrevention,a.support_direction_emergency supportDirectionEmergency,a.create_time createTime,
+        a.rating_level ratingLevel,a.employment_date_start employmentDateStart,a.employment_date_end employmentDateEnd,a.expert_certificate expertCertificate,a.update_time updateTime ,b.classify_name as bigClassifyName from sys_expert_info a
+         left join  sys_expert_classify b on a.big_classify = b.id
+        <where>
+            and a.del_flag = 0
+            <if test="name != null and name != ''">
+                and a.name like concat('%', #{name}, '%')
+            </if>
+            <if test="phone != null and phone != ''">
+                and a.phone like concat('%', #{phone}, '%')
+            </if>
+            <if test="idCard != null and idCard != ''">
+                and a.id_card like concat('%', #{idCard}, '%')
+            </if>
+            <if test="domain != null and domain != ''">
+                and a.domain  = #{domain}
+            </if>
+            <if test="level != null and level != ''">
+                and a.level  = #{level}
+            </if>
+            <if test="bigClassify != null">
+                and a.big_classify = #{bigClassify}
+            </if>
+            <if test="ratingLevel != null and ratingLevel != ''">
+                and a.rating_level = #{ratingLevel}
+            </if>
+            <if test="smallClassify != null">
+                and a.small_classify = #{smallClassify}
+            </if>
+            <if test="dutyStatus != null">
+                and a.duty_status = #{dutyStatus}
+            </if>
+            <if test="state != null">
+                and a.state = #{state}
+            </if>
+            <if test="deptId != null">
+                and a.dept_id = #{deptId}
+            </if>
+            <if test="params.startTime != null "><!-- 开始时间检索 -->
+                and a.date_format(create_time,'%y%m%d') &gt;= date_format(#{params.startTime},'%y%m%d')
+            </if>
+            <if test="params.endTime != null "><!-- 结束时间检索 -->
+                and a.date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+            </if>
+
+        </where>
+        order by a.create_time desc
+    </select>
+
+
+
     <select id="checkIdcardUnique" resultType="com.gkhy.system.domain.SysExpertInfo">
         select id,name from sys_expert_info where id_card=#{idCard} and dept_id = #{deptId} and del_flag=0 limit 1
     </select>
@@ -79,7 +135,11 @@
 
 
     <select id="queryApprove" parameterType="com.gkhy.system.domain.vo.request.SysExpertSearchReqDto" resultType="com.gkhy.system.domain.vo.response.SysExpertSearchRep">
-        select name,employment_date_start,employment_date_end,update_time,state from sys_expert_info where id_card=#{idCard} and dept_id = #{deptId} and phone = #{phone} and del_flag=0 limit 1
+        select a.name,a.employment_date_start employmentDateStart,a.employment_date_end employmentDateEnd,
+               a.update_time updateTime,a.state,b.classify_name bigClassifyName,a.id,a.domain
+        from sys_expert_info a
+        left join sys_expert_classify b on a.big_classify = b.id
+        where a.id_card=#{idCard} and a.dept_id = #{deptId} and a.phone = #{phone} and a.del_flag=0 limit 1
     </select>
 
     <select id="getExpertRound" parameterType="com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq"

--
Gitblit v1.9.2