feat(evaluation): 添加评审配置修改检查功能

- 在EvaluationConfigUpdateExe中注入HiddenEvaluationRecordRepository依赖
- 实现企业进行中评审检查逻辑,防止在有进行中评审时修改配置
- 添加evaluationResult字段到HiddenEvalCO和HiddenEvalDO数据对象
- 优化HiddenEvaluationRecordMapper.xml中的SQL查询逻辑
- 更新企业统计和用户统计数据查询的关联条件
- 实现checkDoingRecord方法检查企业是否存在进行中的评审记录
main
zhaokai 2026-04-14 15:59:26 +08:00
parent 0a1c34f28d
commit 8a8f797e46
6 changed files with 33 additions and 14 deletions

View File

@ -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());

View File

@ -41,6 +41,7 @@ public class HiddenEvalCO implements Serializable {
@ApiModelProperty(value = "是否兑换:0-否,1-是")
private String exchangeFlag;
@ApiModelProperty(value = "考评结果.1:考核未完成,2:考评合格,3:考核不合格")
private String evaluationResult;
}

View File

@ -41,6 +41,8 @@ public class HiddenEvalDO implements Serializable {
@ApiModelProperty(value = "是否兑换:0-否,1-是")
private String exchangeFlag;
@ApiModelProperty(value = "考评结果.1:考核未完成,2:考评合格,3:考核不合格")
private String evaluationResult;
}

View File

@ -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<HiddenE
List<HiddenEvaluationRecordDO> findRecordsToExchange(Long userId);
PageResponse<CorpEvalDO> corpEvalPage(Map<String, Object> params);
Boolean checkDoingRecord(@NotNull(message = "企业id不能为空") Long corpinfoId);
}

View File

@ -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<Hid
IPage<CorpEvalDO> result = hiddenEvaluationRecordMapper.corpEvalPage(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public Boolean checkDoingRecord(Long corpinfoId) {
QueryWrapper<HiddenEvaluationRecordDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("corpinfo_id",corpinfoId);
queryWrapper.eq("evaluation_result", EvaluationResultEnum.NOT_EVALUATED.getCode());
return count(queryWrapper) > 0;
}
}

View File

@ -252,8 +252,7 @@
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
WHEN her.evaluation_result = 2
THEN h.id END) AS totalExchangeHiddenNum,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name))
FROM evaluation_config ec
@ -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)
)
<if test="params.corpinfoId != null">
AND h.corp_id = #{params.corpinfoId}
AND u.corpinfo_id= #{params.corpinfoId}
</if>
<if test="params.departmentId != null ">
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