|
@@ -26,9 +26,8 @@ import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @title: 评价结果
|
|
@@ -89,14 +88,86 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
|
|
|
.eq(EvaluateObject::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
.disableSubLogicDel();
|
|
|
IPage<ResultViewingPageVo> resultViewingPageVoIPage = evaluateObjectMapper.selectJoinPage(ConventPage.getPage(dto), ResultViewingPageVo.class, evaluateObjectMPJLambdaWrapper);
|
|
|
+ //被评对象的id集合
|
|
|
+ List<Long> evaluateObjectIdList = new ArrayList<>();
|
|
|
+ for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
|
|
|
+ evaluateObjectIdList.add(resultViewingPageVo.getObjectId());
|
|
|
+ }
|
|
|
|
|
|
//获取该评价管理下的所有题目-多个
|
|
|
MPJLambdaWrapper<EvaluateManageItem> evaluateManageItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
evaluateManageItemMPJLambdaWrapper
|
|
|
.eq(EvaluateManageItem::getEvaluateManageId, dto.getEvaluateManageId());
|
|
|
List<EvaluateManageItem> evaluateManageItemList = evaluateManageItemMapper.selectList(evaluateManageItemMPJLambdaWrapper);
|
|
|
+ //题目的id集合
|
|
|
+ //将题目处理成Map
|
|
|
+ List<Long> evaluateManageItemIdList = new ArrayList<>();
|
|
|
+ Map<Long, EvaluateManageItem> evaluateManageItemMap = new HashMap<>();
|
|
|
+ for (EvaluateManageItem evaluateManageItem : evaluateManageItemList) {
|
|
|
+ evaluateManageItemIdList.add(evaluateManageItem.getId());
|
|
|
+ evaluateManageItemMap.put(evaluateManageItem.getId(), evaluateManageItem);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取该评价管理下的被评对象的应打分人数,实际打分人数
|
|
|
+ MPJLambdaWrapper<EvaluateExecuter> evaluateExecuterMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ evaluateExecuterMPJLambdaWrapper
|
|
|
+ .select("count(t.id) as planExecuterNum")
|
|
|
+ .selectAs(EvaluateObject::getObjectId, ResultViewingPageVo::getObjectId)
|
|
|
+ .selectSum(EvaluateExecuter::getStatus, ResultViewingPageVo::getActualExecuterNum)//这里值得推敲
|
|
|
+ .leftJoin(EvaluateObject.class, EvaluateObject::getId, EvaluateExecuter::getEvaluateObjectId)
|
|
|
+ .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
+ .in(EvaluateObject::getObjectId, evaluateObjectIdList)
|
|
|
+ .groupBy(EvaluateObject::getObjectId)
|
|
|
+ .disableSubLogicDel();
|
|
|
+ List<ResultViewingPageVo> planAndActualExecuterNum = evaluateExecuterMapper.selectJoinList(ResultViewingPageVo.class, evaluateExecuterMPJLambdaWrapper);
|
|
|
+ //将应打分人数,实际打分人数处理成Map
|
|
|
+ Map<Long, ResultViewingPageVo> planAndActualExecuterNumMap = new HashMap<>();
|
|
|
+ for (ResultViewingPageVo resultViewingPageVo : planAndActualExecuterNum) {
|
|
|
+ planAndActualExecuterNumMap.put(resultViewingPageVo.getObjectId(), resultViewingPageVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Long, List<ResultViewingPageVo>> groupedByObjectIdList = new HashMap<>();
|
|
|
+ //获取该评价管理下的所有被评对象的所有题的总得分
|
|
|
+ if (evaluateManageItemIdList.size() > 0 && evaluateObjectIdList.size() > 0) {
|
|
|
+ List<ResultViewingPageVo> listByObjectIdAndEvaluateItemId = evaluateResultMapper.listByObjectIdAndEvaluateItemId(evaluateObjectIdList, evaluateManageItemIdList);
|
|
|
+ //将所有被评对象的所有题的总得分处理成Map
|
|
|
+ groupedByObjectIdList = listByObjectIdAndEvaluateItemId.stream()
|
|
|
+ .collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId));
|
|
|
|
|
|
+ /*MPJLambdaWrapper<EvaluateResult> evaluateResultMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ evaluateResultMPJLambdaWrapper
|
|
|
+ .selectSum(EvaluateResult::getScore, ResultViewingPageVo::getSumScore)
|
|
|
+ .selectAs(EvaluateObject::getObjectId, ResultViewingPageVo::getObjectId)
|
|
|
+ .selectAs(EvaluateResult::getEvaluateItemId, ResultViewingPageVo::getEvaluateManageItemId)
|
|
|
+ .leftJoin(EvaluateObject.class, EvaluateObject::getId, EvaluateResult::getEvaluatedObjectId)
|
|
|
+ .in(EvaluateObject::getObjectId, evaluateObjectIdList)
|
|
|
+ .in(EvaluateResult::getEvaluateItemId, evaluateManageItemIdList)
|
|
|
+ .groupBy(EvaluateResult::getEvaluateItemId, EvaluateObject::getEvaluateManageId)
|
|
|
+ .disableSubLogicDel();
|
|
|
+ ResultViewingPageVo sumScore = evaluateResultMapper.selectJoinOne(ResultViewingPageVo.class, evaluateResultMPJLambdaWrapper);*/
|
|
|
+ }
|
|
|
+ //遍历分页记录
|
|
|
for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
|
|
|
+ List<ResultViewingPageVo> resultViewingPageVoList = groupedByObjectIdList.get(resultViewingPageVo.getObjectId());
|
|
|
+ if(resultViewingPageVoList != null && resultViewingPageVoList.size() > 0){
|
|
|
+ for (ResultViewingPageVo r : resultViewingPageVoList) {
|
|
|
+ resultData.add(new ResultViewingPageVo(){{
|
|
|
+ setObjectId(resultViewingPageVo.getObjectId());
|
|
|
+ setObjectIdCN(resultViewingPageVo.getObjectIdCN());
|
|
|
+ setEvaluateManageItemId(r.getEvaluateManageItemId());
|
|
|
+ setProblem(evaluateManageItemMap.get(r.getEvaluateManageItemId()).getProblem());
|
|
|
+ setTopic(evaluateManageItemMap.get(r.getEvaluateManageItemId()).getTopic());
|
|
|
+ setPlanExecuterNum(planAndActualExecuterNumMap.get(resultViewingPageVo.getObjectId()).getPlanExecuterNum());
|
|
|
+ int actualExecuterNum = planAndActualExecuterNumMap.get(resultViewingPageVo.getObjectId()).getActualExecuterNum();
|
|
|
+ setActualExecuterNum(actualExecuterNum);
|
|
|
+ setSumScore(r.getSumScore()/actualExecuterNum);
|
|
|
+ }});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resultViewingPageVoIPage.setRecords(resultData);
|
|
|
+
|
|
|
+ /*for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
|
|
|
//获取该评价管理下的单个被评对象的应打分人数,实际打分人数
|
|
|
MPJLambdaWrapper<EvaluateExecuter> evaluateExecuterMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
evaluateExecuterMPJLambdaWrapper
|
|
@@ -108,30 +179,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
|
|
|
.disableSubLogicDel();
|
|
|
ResultViewingPageVo planAndActualExecuterNum = evaluateExecuterMapper.selectJoinOne(ResultViewingPageVo.class, evaluateExecuterMPJLambdaWrapper);
|
|
|
|
|
|
- //获取该评价管理下的单个被评对象的所有题的总得分
|
|
|
-// MPJLambdaWrapper<EvaluateResult> evaluateResultMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
-// evaluateResultMPJLambdaWrapper
|
|
|
-// .selectSum(EvaluateResult::getScore, ResultViewingPageVo::getSumScore)
|
|
|
-// .leftJoin(EvaluateObject.class, EvaluateObject::getId, EvaluateResult::getEvaluatedObjectId)
|
|
|
-// .eq(EvaluateResult::getEvaluateItemId, evaluateManageItem.getId())
|
|
|
-// .eq(EvaluateObject::getObjectId, resultViewingPageVo.getObjectId())
|
|
|
-// .disableSubLogicDel();
|
|
|
-// ResultViewingPageVo sumScore = evaluateResultMapper.selectJoinOne(ResultViewingPageVo.class, evaluateResultMPJLambdaWrapper);
|
|
|
-// resultData.add(new ResultViewingPageVo() {{
|
|
|
-// setObjectId(resultViewingPageVo.getObjectId());
|
|
|
-// setObjectIdCN(resultViewingPageVo.getObjectIdCN());
|
|
|
-// setEvaluateManageItemId(evaluateManageItem.getId());
|
|
|
-// setProblem(evaluateManageItem.getProblem());
|
|
|
-// setTopic(evaluateManageItem.getTopic());
|
|
|
-// if (planAndActualExecuterNum != null) {
|
|
|
-// setPlanExecuterNum(planAndActualExecuterNum.getPlanExecuterNum());
|
|
|
-// setActualExecuterNum(planAndActualExecuterNum.getActualExecuterNum());
|
|
|
-// }
|
|
|
-// if (sumScore != null) {
|
|
|
-// setSumScore(sumScore.getSumScore());
|
|
|
-// }
|
|
|
-
|
|
|
- /*for (EvaluateManageItem evaluateManageItem : evaluateManageItemList) {
|
|
|
+ for (EvaluateManageItem evaluateManageItem : evaluateManageItemList) {
|
|
|
//获取该评价管理下的单个被评对象的每一道题的总得分
|
|
|
MPJLambdaWrapper<EvaluateResult> evaluateResultMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
evaluateResultMPJLambdaWrapper
|
|
@@ -156,55 +204,52 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
|
|
|
setSumScore(sumScore.getSumScore());
|
|
|
}
|
|
|
}});
|
|
|
- }*/
|
|
|
- }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
|
|
|
- resultViewingPageVoIPage.setRecords(resultData);
|
|
|
+ /*for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
|
|
|
+ //添加应打分人数,实际打分人数,综合评分
|
|
|
+ MPJLambdaWrapper<EvaluateExecuter> evaluateExecuterPlanExecuterNum = new MPJLambdaWrapper<>();
|
|
|
+ evaluateExecuterPlanExecuterNum
|
|
|
+ .selectSum(EvaluateExecuter::getStatus, ResultViewingPageVo::getActualExecuterNum)
|
|
|
+ .selectSum(EvaluateResult::getScore, ResultViewingPageVo::getActualExecuterNum)
|
|
|
+ .leftJoin(EvaluateResult.class, EvaluateResult::getEvaluatedObjectId, EvaluateExecuter::getEvaluateObjectId)
|
|
|
+ .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
+ .eq(EvaluateExecuter::getEvaluateObjectId, resultViewingPageVo.getEvaluateObjectId());
|
|
|
+
|
|
|
+ List<ResultViewingPageVo> resultViewingPageVoList = evaluateExecuterMapper.selectJoinList(ResultViewingPageVo.class, evaluateExecuterPlanExecuterNum);
|
|
|
+ resultViewingPageVo.setPlanExecuterNum(resultViewingPageVoList.size());
|
|
|
|
|
|
-// //遍历分页记录
|
|
|
-// for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
|
|
|
-// //添加应打分人数,实际打分人数,综合评分
|
|
|
-// MPJLambdaWrapper<EvaluateExecuter> evaluateExecuterPlanExecuterNum = new MPJLambdaWrapper<>();
|
|
|
-// evaluateExecuterPlanExecuterNum
|
|
|
-// .selectSum(EvaluateExecuter::getStatus, ResultViewingPageVo::getActualExecuterNum)
|
|
|
-// .selectSum(EvaluateResult::getScore, ResultViewingPageVo::getActualExecuterNum)
|
|
|
-// .leftJoin(EvaluateResult.class, EvaluateResult::getEvaluatedObjectId, EvaluateExecuter::getEvaluateObjectId)
|
|
|
-// .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
-// .eq(EvaluateExecuter::getEvaluateObjectId, resultViewingPageVo.getEvaluateObjectId());
|
|
|
-//
|
|
|
-// List<ResultViewingPageVo> resultViewingPageVoList = evaluateExecuterMapper.selectJoinList(ResultViewingPageVo.class, evaluateExecuterPlanExecuterNum);
|
|
|
-// resultViewingPageVo.setPlanExecuterNum(resultViewingPageVoList.size());
|
|
|
-//
|
|
|
-// //查出所有的题目项目
|
|
|
-// MPJLambdaWrapper<EvaluateManageItem> evaluateManageItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
-// evaluateManageItemMPJLambdaWrapper
|
|
|
-// .selectSum(EvaluateResult::getScore, AllEvaluateManageItemVo::getAllActualScore)
|
|
|
-// .selectAs(EvaluateManageItem::getProblem, AllEvaluateManageItemVo::getProblem)
|
|
|
-// .selectAs(EvaluateManageItem::getTopic, AllEvaluateManageItemVo::getTopic)
|
|
|
-// .leftJoin(EvaluateResult.class, EvaluateResult::getEvaluateItemId, EvaluateManageItem::getId)
|
|
|
-// .eq(EvaluateManageItem::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
-// .eq(EvaluateResult::getEvaluatedObjectId, resultViewingPageVo.getEvaluateObjectId())
|
|
|
-// .groupBy(EvaluateManageItem::getProblem, EvaluateManageItem::getTopic);
|
|
|
-//
|
|
|
-// List<AllEvaluateManageItemVo> allEvaluateManageItemVoList = evaluateManageItemMapper.selectJoinList(AllEvaluateManageItemVo.class, evaluateManageItemMPJLambdaWrapper);
|
|
|
-//
|
|
|
-// Map<String, List<AllEvaluateManageItemVo>> groupedAllEvaluateManageItemVo = allEvaluateManageItemVoList.stream()
|
|
|
-// .collect(Collectors.groupingBy(AllEvaluateManageItemVo::getTopic));
|
|
|
-//
|
|
|
-// List<AllEvaluateManageItemByTopicVo> allEvaluateManageItemByTopicVoList = new ArrayList<>();
|
|
|
-// groupedAllEvaluateManageItemVo.forEach((topic, group) -> {
|
|
|
-// allEvaluateManageItemByTopicVoList.add(new AllEvaluateManageItemByTopicVo(){{
|
|
|
-// setTopic(topic);
|
|
|
-// setAllEvaluateManageItemVoList(group);
|
|
|
-// int allTopicScore = 0;
|
|
|
-// for (AllEvaluateManageItemVo allEvaluateManageItemVo : group) {
|
|
|
-// allTopicScore += allEvaluateManageItemVo.getAllActualScore();
|
|
|
-// }
|
|
|
-// setAllTopicScore(allTopicScore);
|
|
|
-// }});
|
|
|
-// });
|
|
|
-// resultViewingPageVo.setAllEvaluateManageItemByTopicVoList(allEvaluateManageItemByTopicVoList);
|
|
|
-// }
|
|
|
+ //查出所有的题目项目
|
|
|
+ MPJLambdaWrapper<EvaluateManageItem> evaluateManageItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ evaluateManageItemMPJLambdaWrapper
|
|
|
+ .selectSum(EvaluateResult::getScore, AllEvaluateManageItemVo::getAllActualScore)
|
|
|
+ .selectAs(EvaluateManageItem::getProblem, AllEvaluateManageItemVo::getProblem)
|
|
|
+ .selectAs(EvaluateManageItem::getTopic, AllEvaluateManageItemVo::getTopic)
|
|
|
+ .leftJoin(EvaluateResult.class, EvaluateResult::getEvaluateItemId, EvaluateManageItem::getId)
|
|
|
+ .eq(EvaluateManageItem::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
+ .eq(EvaluateResult::getEvaluatedObjectId, resultViewingPageVo.getEvaluateObjectId())
|
|
|
+ .groupBy(EvaluateManageItem::getProblem, EvaluateManageItem::getTopic);
|
|
|
+
|
|
|
+ List<AllEvaluateManageItemVo> allEvaluateManageItemVoList = evaluateManageItemMapper.selectJoinList(AllEvaluateManageItemVo.class, evaluateManageItemMPJLambdaWrapper);
|
|
|
+
|
|
|
+ Map<String, List<AllEvaluateManageItemVo>> groupedAllEvaluateManageItemVo = allEvaluateManageItemVoList.stream()
|
|
|
+ .collect(Collectors.groupingBy(AllEvaluateManageItemVo::getTopic));
|
|
|
+
|
|
|
+ List<AllEvaluateManageItemByTopicVo> allEvaluateManageItemByTopicVoList = new ArrayList<>();
|
|
|
+ groupedAllEvaluateManageItemVo.forEach((topic, group) -> {
|
|
|
+ allEvaluateManageItemByTopicVoList.add(new AllEvaluateManageItemByTopicVo(){{
|
|
|
+ setTopic(topic);
|
|
|
+ setAllEvaluateManageItemVoList(group);
|
|
|
+ int allTopicScore = 0;
|
|
|
+ for (AllEvaluateManageItemVo allEvaluateManageItemVo : group) {
|
|
|
+ allTopicScore += allEvaluateManageItemVo.getAllActualScore();
|
|
|
+ }
|
|
|
+ setAllTopicScore(allTopicScore);
|
|
|
+ }});
|
|
|
+ });
|
|
|
+ resultViewingPageVo.setAllEvaluateManageItemByTopicVoList(allEvaluateManageItemByTopicVoList);
|
|
|
+ }*/
|
|
|
return resultViewingPageVoIPage;
|
|
|
}
|
|
|
|