fix(examine): 修复系统核算分数问题
- 增加考核人员存在性校验 - 通过任务ID获取年份,替代硬编码的年份值- 添加 ExamineTaskMapper 的 queryById 方法并实现 - 优化系统核算分数的计算逻辑dev_1.1.0
parent
7702c20b66
commit
76b99571a4
|
@ -71,6 +71,7 @@ public class ExamineDetailController extends BaseController {
|
|||
if (dto.getExamineId() == null) {
|
||||
Assert.notNull(dto.getUserId(), "用户ID不能为空");
|
||||
ExamineUser examineUser = examineUserService.queryByTaskIdAndUserId(dto.getExamineTaskId(), dto.getUserId());
|
||||
Assert.notNull(examineUser, "考核人员不存在");
|
||||
dto.setExamineId(examineUser.getId());
|
||||
}
|
||||
Assert.notNull(dto.getExamineId(), "考核ID不能为空");
|
||||
|
|
|
@ -13,8 +13,9 @@ import tech.unissense.pms.business.examine.detail.mapper.ExamineDetailMapper;
|
|||
import tech.unissense.pms.business.examine.detail.service.ExamineDetailService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import tech.unissense.pms.business.examine.detail.vo.ExamineConfigDetailVo;
|
||||
import tech.unissense.pms.business.examine.task.domain.ExamineTask;
|
||||
import tech.unissense.pms.business.examine.task.mapper.ExamineTaskMapper;
|
||||
import tech.unissense.pms.business.examine.user.mapper.ExamineUserMapper;
|
||||
import tech.unissense.pms.business.examine.user.service.impl.ExamineUserServiceImpl;
|
||||
import tech.unissense.pms.business.work.logger.service.IWorkLoggerService;
|
||||
import tech.unissense.pms.common.utils.bean.BeanUtils;
|
||||
import tech.unissense.pms.system.service.ISysDictDataService;
|
||||
|
@ -45,6 +46,8 @@ public class ExamineDetailServiceImpl implements ExamineDetailService {
|
|||
private IWorkLoggerService workLoggerService;
|
||||
@Autowired
|
||||
private ISysDictDataService sysDictDataService;
|
||||
@Autowired
|
||||
private ExamineTaskMapper examineTaskMapper;
|
||||
|
||||
/**
|
||||
* 通过ID查询单条数据
|
||||
|
@ -144,8 +147,9 @@ public class ExamineDetailServiceImpl implements ExamineDetailService {
|
|||
examineConfigQueryDto.setReviewType(typeEnum.getType());
|
||||
}
|
||||
List<ExamineConfig> configList = configMapper.list(examineConfigQueryDto);
|
||||
ExamineTask examineTask = examineTaskMapper.queryById(taskId);
|
||||
//系统核算单独处理
|
||||
dealSystemBusinessAccount(examineList, configList);
|
||||
dealSystemBusinessAccount(examineList, configList,examineTask);
|
||||
Map<Integer, ExamineConfig> configMap = configList.stream().collect(Collectors.toMap(ExamineConfig::getId, Function.identity()));
|
||||
Map<Integer, BigDecimal> scoreMap = new HashMap<>();
|
||||
for (ExamineDetail detail : examineList) {
|
||||
|
@ -168,12 +172,12 @@ public class ExamineDetailServiceImpl implements ExamineDetailService {
|
|||
return scoreMap;
|
||||
}
|
||||
|
||||
private void dealSystemBusinessAccount(List<ExamineDetail> examineList, List<ExamineConfig> configList) {
|
||||
private void dealSystemBusinessAccount(List<ExamineDetail> examineList, List<ExamineConfig> configList, ExamineTask examineTask) {
|
||||
Map<Integer, ExamineConfig> systemExamineConfigMap = configList.stream().filter(item ->
|
||||
ReviewTypeEnum.SYSTEM.getType().equals(item.getReviewType())).collect(Collectors.toMap(ExamineConfig::getId, Function.identity()));
|
||||
//如有系统核算才处理
|
||||
if (CollUtil.isNotEmpty(systemExamineConfigMap)) {
|
||||
String workDay = sysDictDataService.selectDictLabel("pms_work_day", "2024");
|
||||
String workDay = sysDictDataService.selectDictLabel("pms_work_day", examineTask.getYear().toString());
|
||||
workDay = StrUtil.isNotEmpty(workDay) ? workDay : "251";
|
||||
BigDecimal configWorkDay = new BigDecimal(workDay);
|
||||
List<ExamineDetail> collect = examineList.stream().filter(item -> systemExamineConfigMap.containsKey(item.getConfigId())).collect(Collectors.toList());
|
||||
|
|
|
@ -26,5 +26,7 @@ public interface ExamineTaskMapper {
|
|||
void deleteTask(Integer id);
|
||||
|
||||
List<ExamineTask> listTask(TaskQueryDto queryDto);
|
||||
|
||||
ExamineTask queryById(Integer taskId);
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="listTask" resultType="ExamineTask">
|
||||
<select id="listTask" resultMap="ExamineTaskMap">
|
||||
select distinct t1.id,t1.task_name, t1.people_number, t1.people_number_detail, t1.task_status, t1.create_time, t1.end_time
|
||||
from pms_examine_task t1
|
||||
left join pms_examine_user t2 on t1.id = t2.task_id
|
||||
|
@ -41,11 +41,18 @@
|
|||
<if test="taskStatus != null">
|
||||
AND task_status = #{taskStatus}
|
||||
</if>
|
||||
<if test="year != null">
|
||||
AND year = #{year}
|
||||
</if>
|
||||
<!-- 数据范围过滤 -->
|
||||
${params.dataScope}
|
||||
</where>
|
||||
|
||||
</select>
|
||||
<select id="queryById" resultMap="ExamineTaskMap">
|
||||
SELECT * FROM pms_examine_task
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<update id="updateTask">
|
||||
UPDATE pms_examine_task
|
||||
|
|
Loading…
Reference in New Issue