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') >= date_format(#{params.startTime},'%y%m%d') + </if> + <if test="params.endTime != null "><!-- 结束时间检索 --> + and a.date_format(create_time,'%y%m%d') <= 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