From 8a8f797e46858a99da659549a7d9a25b610531e3 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Tue, 14 Apr 2026 15:59:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(evaluation):=20=E6=B7=BB=E5=8A=A0=E8=AF=84?= =?UTF-8?q?=E5=AE=A1=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在EvaluationConfigUpdateExe中注入HiddenEvaluationRecordRepository依赖 - 实现企业进行中评审检查逻辑,防止在有进行中评审时修改配置 - 添加evaluationResult字段到HiddenEvalCO和HiddenEvalDO数据对象 - 优化HiddenEvaluationRecordMapper.xml中的SQL查询逻辑 - 更新企业统计和用户统计数据查询的关联条件 - 实现checkDoingRecord方法检查企业是否存在进行中的评审记录 --- .../command/EvaluationConfigUpdateExe.java | 7 ++++++ .../dto/clientobject/HiddenEvalCO.java | 3 ++- .../persistence/dataobject/HiddenEvalDO.java | 2 ++ .../HiddenEvaluationRecordRepository.java | 3 +++ .../HiddenEvaluationRecordRepositoryImpl.java | 9 ++++++++ .../mapper/HiddenEvaluationRecordMapper.xml | 23 ++++++++----------- 6 files changed, 33 insertions(+), 14 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/hidden/evaluation/command/EvaluationConfigUpdateExe.java b/web-app/src/main/java/com/zcloud/hidden/evaluation/command/EvaluationConfigUpdateExe.java index 43770fd..1c5a39d 100644 --- a/web-app/src/main/java/com/zcloud/hidden/evaluation/command/EvaluationConfigUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/hidden/evaluation/command/EvaluationConfigUpdateExe.java @@ -14,6 +14,7 @@ import com.zcloud.hidden.evaluation.persistence.dataobject.EvaluationCorpDO; import com.zcloud.hidden.evaluation.persistence.repository.EvaluationConfigLogRepository; import com.zcloud.hidden.evaluation.persistence.repository.EvaluationConfigRepository; import com.zcloud.hidden.evaluation.persistence.repository.EvaluationCorpRepository; +import com.zcloud.hidden.evaluation.persistence.repository.HiddenEvaluationRecordRepository; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; @@ -39,6 +40,7 @@ public class EvaluationConfigUpdateExe { private final EvaluationConfigLogRepository evaluationConfigLogRepository; private final EvaluationConfigLogGateway evaluationConfigLogGateway; private final EvaluationCorpRepository evaluationCorpRepository; + private final HiddenEvaluationRecordRepository hiddenEvaluationRecordRepository; @Transactional(rollbackFor = Exception.class) public void execute(EvaluationConfigUpdateCmd evaluationConfigUpdateCmd) { @@ -63,6 +65,11 @@ public class EvaluationConfigUpdateExe { if (CollUtil.isEmpty(updateCmdList)) { throw new BizException("更新列表不能为空"); } + //企业中存在进行中的评审,不允许进行修改 + Boolean b = hiddenEvaluationRecordRepository.checkDoingRecord(evaluationConfigBathUpdateCmd.getCorpinfoId()); + if( b){ + throw new BizException("企业中存在进行中的评审,不允许进行修改"); + } for (EvaluationConfigUpdateCmd updateCmd : updateCmdList) { updateCmd.setCorpinfoId(evaluationConfigBathUpdateCmd.getCorpinfoId()); diff --git a/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/HiddenEvalCO.java b/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/HiddenEvalCO.java index a91f001..88d5b2f 100644 --- a/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/HiddenEvalCO.java +++ b/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/HiddenEvalCO.java @@ -41,6 +41,7 @@ public class HiddenEvalCO implements Serializable { @ApiModelProperty(value = "是否兑换:0-否,1-是") private String exchangeFlag; - + @ApiModelProperty(value = "考评结果.1:考核未完成,2:考评合格,3:考核不合格") + private String evaluationResult; } diff --git a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/HiddenEvalDO.java b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/HiddenEvalDO.java index b2e1b91..46ba69f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/HiddenEvalDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/HiddenEvalDO.java @@ -41,6 +41,8 @@ public class HiddenEvalDO implements Serializable { @ApiModelProperty(value = "是否兑换:0-否,1-是") private String exchangeFlag; + @ApiModelProperty(value = "考评结果.1:考核未完成,2:考评合格,3:考核不合格") + private String evaluationResult; } diff --git a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/HiddenEvaluationRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/HiddenEvaluationRecordRepository.java index 2b16d34..5897108 100644 --- a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/HiddenEvaluationRecordRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/HiddenEvaluationRecordRepository.java @@ -5,6 +5,7 @@ import com.jjb.saas.framework.repository.repo.BaseRepository; import com.zcloud.hidden.evaluation.domain.model.HiddenEvaluationRecordE; import com.zcloud.hidden.evaluation.persistence.dataobject.*; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Map; @@ -32,5 +33,7 @@ public interface HiddenEvaluationRecordRepository extends BaseRepository findRecordsToExchange(Long userId); PageResponse corpEvalPage(Map params); + + Boolean checkDoingRecord(@NotNull(message = "企业id不能为空") Long corpinfoId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java index 2526b56..4a6c6d8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java @@ -7,6 +7,7 @@ import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Query; +import com.zcloud.hidden.evaluation.domain.enums.EvaluationResultEnum; import com.zcloud.hidden.evaluation.domain.enums.MenuEnum; import com.zcloud.hidden.evaluation.domain.model.HiddenEvaluationRecordE; import com.zcloud.hidden.evaluation.persistence.dataobject.*; @@ -113,5 +114,13 @@ public class HiddenEvaluationRecordRepositoryImpl extends BaseRepositoryImpl result = hiddenEvaluationRecordMapper.corpEvalPage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public Boolean checkDoingRecord(Long corpinfoId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("corpinfo_id",corpinfoId); + queryWrapper.eq("evaluation_result", EvaluationResultEnum.NOT_EVALUATED.getCode()); + return count(queryWrapper) > 0; + } } diff --git a/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml index 1010b39..555f4fc 100644 --- a/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml @@ -252,9 +252,8 @@ COUNT(DISTINCT CASE WHEN hu.corpinfo_id = ci.id THEN h.creator_id END) AS involveRewardPersonNum, COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 AND hu.corpinfo_id = ci.id THEN h.id END) AS exchangedHiddenNum, COUNT(DISTINCT CASE - WHEN her.evaluation_result = 2 AND - hu.corpinfo_id = ci.id - THEN h.id END) AS totalExchangeHiddenNum, + WHEN her.evaluation_result = 2 + THEN h.id END) AS totalExchangeHiddenNum, (SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name)) FROM evaluation_config ec LEFT JOIN department dep ON ec.department_id = dep.id @@ -266,12 +265,9 @@ LEFT JOIN user usr ON ec.user_id = usr.id WHERE ec.corpinfo_id = ci.id AND ec.delete_enum = 'FALSE' AND ec.evaluation_type = 2) AS envEvaluationMember FROM corp_info ci - LEFT JOIN hidden h - ON ci.id = h.corp_id - AND h.delete_enum = 'FALSE' - AND h.state = 301 - AND ((h.source IN (4,5) AND h.final_check = 1) OR h.source NOT IN (4,5)) - LEFT JOIN user hu ON h.creator_id = hu.id + LEFT JOIN user hu ON hu.corpinfo_id = ci.id + LEFT JOIN hidden h ON hu.id = h.creator_id AND h.delete_enum = 'FALSE' AND h.state = 301 AND + ((h.source IN (4, 5) AND h.final_check = 1) OR h.source NOT IN (4, 5)) LEFT JOIN hidden_evaluation_record her ON h.hidden_id = her.hidden_id AND her.delete_enum = 'FALSE' LEFT JOIN evaluation_config ecConfig @@ -305,11 +301,11 @@ u.department_id as departmentId, d.name AS departmentName, p.post_name AS postName, - COUNT(DISTINCT CASE WHEN her.evaluation_result = 2 THEN h.id END) AS totalScore, + COUNT(DISTINCT CASE WHEN her.evaluation_result =2 THEN h.id END) AS totalScore, COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 THEN h.id END) AS exchangedScore, COUNT(DISTINCT CASE WHEN her.exchange_flag = 0 and her.evaluation_result=2 THEN h.id END) AS notExchangedScore FROM hidden h left join evaluation_corp ecorp on ecorp.corpinfo_id = h.corp_id - inner JOIN user u ON h.creator_id = u.id and u.corpinfo_id= #{params.corpinfoId} + inner JOIN user u ON h.creator_id = u.id LEFT JOIN department d ON u.department_id = d.id left join post p ON u.post_id = p.id left join corp_info ci ON h.corp_id = ci.id AND ci.delete_enum = 'FALSE' @@ -321,7 +317,7 @@ OR h.source NOT IN (4,5) ) - AND h.corp_id = #{params.corpinfoId} + AND u.corpinfo_id= #{params.corpinfoId} AND d.id = #{params.departmentId} @@ -351,7 +347,8 @@ h.state as state, GROUP_CONCAT(DISTINCT hiddenUser.name) AS checkUserName, COALESCE(GROUP_CONCAT(DISTINCT CONCAT(d.name, '-', u.name)), '') AS evaluationMembers, - her.exchange_flag + her.exchange_flag, + her.evaluation_result from hidden_evaluation_record her left join hidden h on her.hidden_id = h.hidden_id and h.delete_enum = 'FALSE' left join hidden_evaluation_detail hd on her.hidden_evaluation_record_id = hd.hidden_evaluation_record_id