修改查询问题

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;
}