修改查询问题

This commit is contained in:
YY
2025-07-03 15:49:03 +08:00
parent 55147bfbd8
commit 99a830441c
8 changed files with 108 additions and 30 deletions

View File

@ -89,4 +89,11 @@ public interface CoscoEvaluateScoringMapper {
* @param taskId
*/
void deleteByTaskId(String taskId);
/**
* 根据任务id集合查询
* @param taskIds
* @return
*/
List<CalculateAndObtainScoresVo> selectByTaskIds(List<String> taskIds);
}

View File

@ -66,4 +66,11 @@ public interface CoscoEvaluateTaskDeptWeightMapper {
void batchCoscoEvaluateTaskDeptWeight(List<CoscoEvaluateTaskDeptWeight> list);
void deleteByTaskId(String id);
/**
* 根据id集合获取详细信息
* @param taskIds
* @return
*/
List<CoscoEvaluateTaskDeptWeight> selectByTaskId(List<String> taskIds);
}

View File

@ -108,4 +108,11 @@ public interface CoscoEvaluateTaskSupplierMapper {
List<CoscoEvaluateTaskSupplier> exportList(CoscoEvaluateTaskSupplier taskListVo);
List<SupplierEvaluateStatisticsVo> getSupplierEvaluateStatisticsList(SupplierEvaluateStatisticsVo vo);
/**
* 根据taskIds查询信息
* @param taskIds
* @return
*/
List<CoscoEvaluateTaskSupplier> selectByTaskIds(List<String> taskIds);
}

View File

@ -74,37 +74,52 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
//获取当前时间指标信息
List<CoscoEvaluateTask> coscoEvaluateTasks = coscoEvaluateTaskMapper.selectCloseTask();
List<CoscoEvaluateLevel> coscoEvaluateLevels = coscoEvaluateLevelMapper.selectCoscoEvaluateLevelList(new CoscoEvaluateLevel());
for (CoscoEvaluateTask coscoEvaluateTask : coscoEvaluateTasks) {
//查询当前任务的添加的供应商
CoscoEvaluateTaskSupplier suppliers = new CoscoEvaluateTaskSupplier();
suppliers.setEvaluateTaskId(coscoEvaluateTask.getId());
CoscoEvaluateTaskDeptWeight coscoEvaluateTaskDeptWeights = new CoscoEvaluateTaskDeptWeight();
coscoEvaluateTaskDeptWeights.setEvaluateTaskId(coscoEvaluateTask.getId());
List<CoscoEvaluateTaskDeptWeight> coscoEvaluateTaskDeptWeightes = coscoEvaluateTaskDeptWeightMapper.selectCoscoEvaluateTaskDeptWeightList(coscoEvaluateTaskDeptWeights);
List<CoscoEvaluateTaskSupplier> coscoEvaluateTaskSuppliers = coscoEvaluateTaskSupplierMapper.selectCoscoEvaluateTaskSupplierList(suppliers);
//查询当前任务的人员信息及人员评价情况
List<CalculateAndObtainScoresVo> calculateAndObtainScoresVos = coscoEvaluateScoringMapper.selectCalculateAndObtainScores(coscoEvaluateTask.getId());
//获取人员信息
List<UserVo> user = userService.getUser(new SelectUserVo());
//给人员添加部门信息
Map<String, String> userMap = user.stream().collect(Collectors.toMap(UserVo::getUserId, UserVo::getUserDeptId));
calculateAndObtainScoresVos.forEach(vos -> {
vos.setDeptId(userMap.get(vos.getUserId()));
});
//返回集合
List<CoscoEvaluateScoringResult> coscoEvaluateScoringResults = new ArrayList<>();
coscoEvaluateTaskSuppliers.forEach(coscoEvaluateTaskSupplier -> {
//计算总分数
int totalScore = getCalculateScore(calculateAndObtainScoresVos, coscoEvaluateTaskSupplier, coscoEvaluateScoringResults, coscoEvaluateTaskDeptWeightes);
coscoEvaluateTaskSupplier.setReviewScore(BigDecimal.valueOf(totalScore));
//根据总分数获取供应商评价结果
getReviewResult(totalScore, coscoEvaluateLevels, coscoEvaluateTaskSupplier);
coscoEvaluateTaskSupplierMapper.updateCoscoEvaluateTaskSupplier(coscoEvaluateTaskSupplier);
});
coscoEvaluateTask.setStatus(EvaluateTaskConstant.EVALUATE_TASK_STATUS_END);
coscoEvaluateTaskMapper.updateCoscoEvaluateTask(coscoEvaluateTask);
coscoEvaluateScoringResultMapper.batchCoscoEvaluateScoringResult(coscoEvaluateScoringResults);
if(!coscoEvaluateTasks.isEmpty()){
//获取任务id集合
List<String> taskIds= coscoEvaluateTasks.stream().map(CoscoEvaluateTask::getId).collect(Collectors.toList());
//获取任务权重信息
List<CoscoEvaluateTaskDeptWeight> allCoscoEvaluateTaskDeptWeightes = coscoEvaluateTaskDeptWeightMapper.selectByTaskId(taskIds);
//获取任务供应商信息
List<CoscoEvaluateTaskSupplier> allCoscoEvaluateTaskSuppliers = coscoEvaluateTaskSupplierMapper.selectByTaskIds(taskIds);
//获取任务供应商评价信息
List<CalculateAndObtainScoresVo> allCalculateAndObtainScoresVos = coscoEvaluateScoringMapper.selectByTaskIds(taskIds);
for (CoscoEvaluateTask coscoEvaluateTask : coscoEvaluateTasks) {
//查询当前任务的添加的供应商
CoscoEvaluateTaskDeptWeight coscoEvaluateTaskDeptWeights = new CoscoEvaluateTaskDeptWeight();
coscoEvaluateTaskDeptWeights.setEvaluateTaskId(coscoEvaluateTask.getId());
//根据任务id获取当前任务权重信息
List<CoscoEvaluateTaskDeptWeight> coscoEvaluateTaskDeptWeightes = allCoscoEvaluateTaskDeptWeightes.stream()
.filter(coscoEvaluateTaskDeptWeight -> coscoEvaluateTaskDeptWeight.getEvaluateTaskId().equals(coscoEvaluateTask.getId())).collect(Collectors.toList());
//根据任务id获取当前任务供应商信息
List<CoscoEvaluateTaskSupplier> coscoEvaluateTaskSuppliers = allCoscoEvaluateTaskSuppliers.stream()
.filter(coscoEvaluateTaskSupplier -> coscoEvaluateTaskSupplier.getEvaluateTaskId().equals(coscoEvaluateTask.getId())).collect(Collectors.toList());
//根据任务id获取当前任务的人员信息及人员评价情况
List<CalculateAndObtainScoresVo> calculateAndObtainScoresVos = allCalculateAndObtainScoresVos.stream()
.filter(calculateAndObtainScoresVo -> calculateAndObtainScoresVo.getEvaluateTaskId().equals(coscoEvaluateTask.getId())).collect(Collectors.toList());
//获取人员信息
List<UserVo> user = userService.getUser(new SelectUserVo());
//给人员添加部门信息
Map<String, String> userMap = user.stream().collect(Collectors.toMap(UserVo::getUserId, UserVo::getUserDeptId));
calculateAndObtainScoresVos.forEach(vos -> {
vos.setDeptId(userMap.get(vos.getUserId()));
});
//返回集合
List<CoscoEvaluateScoringResult> coscoEvaluateScoringResults = new ArrayList<>();
coscoEvaluateTaskSuppliers.forEach(coscoEvaluateTaskSupplier -> {
//计算总分数
int totalScore = getCalculateScore(calculateAndObtainScoresVos, coscoEvaluateTaskSupplier, coscoEvaluateScoringResults, coscoEvaluateTaskDeptWeightes);
coscoEvaluateTaskSupplier.setReviewScore(BigDecimal.valueOf(totalScore));
//根据总分数获取供应商评价结果
getReviewResult(totalScore, coscoEvaluateLevels, coscoEvaluateTaskSupplier);
coscoEvaluateTaskSupplierMapper.updateCoscoEvaluateTaskSupplier(coscoEvaluateTaskSupplier);
});
coscoEvaluateTask.setStatus(EvaluateTaskConstant.EVALUATE_TASK_STATUS_END);
coscoEvaluateTaskMapper.updateCoscoEvaluateTask(coscoEvaluateTask);
coscoEvaluateScoringResultMapper.batchCoscoEvaluateScoringResult(coscoEvaluateScoringResults);
}
}
}
/**

View File

@ -27,6 +27,10 @@ public class CalculateAndObtainScoresVo implements Serializable {
* 供应商id
*/
private String supplierId;
/**
* 任务id
*/
private String evaluateTaskId;
}

View File

@ -190,4 +190,21 @@
and cetsu.evaluate_task_id = #{taskId}
</select>
<select id="selectByTaskIds" parameterType="list"
resultType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.vo.CalculateAndObtainScoresVo">
select cetsu.user_id as userId, ces.score, ces.indicator_nd_id as indicatorNdId, '1' as dept_id as deptId,
cets.supplier_id as supplierId,cetsu.evaluate_task_id as evaluateTaskId
from cosco_evaluate_scoring ces
join cosco_evaluate_task_supplier_user cetsu
on cetsu.id = ces.evaluate_task_supplier_user_id and cetsu.del_flag = 'normal'
join cosco_evaluate_task_supplier cets
on cets.evaluate_task_id = cetsu.evaluate_task_id and cets.supplier_id = cetsu.supplier_id
where ces.score is not null
and cetsu.evaluate_task_id in
<foreach item="id" collection="list" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>

View File

@ -18,6 +18,16 @@
from cosco_evaluate_task_dept_weight
</sql>
<select id="selectByTaskId"
parameterType="list"
resultMap="CoscoEvaluateTaskDeptWeightResult">
<include refid="selectCoscoEvaluateTaskDeptWeightVo"/>
where evaluate_task_id in
<foreach item="id" collection="taskIds" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="selectCoscoEvaluateTaskDeptWeightList"
parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTaskDeptWeight"
resultMap="CoscoEvaluateTaskDeptWeightResult">

View File

@ -133,6 +133,17 @@
order by cets.create_time desc
</select>
<select id="selectByTaskIds"
parameterType="list"
resultMap="CoscoEvaluateTaskSupplierResult">
<include refid="selectCoscoEvaluateTaskSupplierVo"/>
where evaluate_task_id in
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{item}
</foreach>
</select>
<select id="selectCoscoEvaluateTaskSupplierList"
parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscoEvaluate.entity.CoscoEvaluateTaskSupplier"
resultMap="CoscoEvaluateTaskSupplierResult">