|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|