|
|
@@ -5,20 +5,30 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
+import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
import com.xjrsoft.module.base.entity.BaseSemester;
|
|
|
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
|
|
|
+import com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDetailDto;
|
|
|
+import com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDto;
|
|
|
import com.xjrsoft.module.evaluate.dto.EvaluateResultIndexPageDto;
|
|
|
-import com.xjrsoft.module.evaluate.entity.EvaluateManage;
|
|
|
-import com.xjrsoft.module.evaluate.entity.EvaluateResult;
|
|
|
-import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
|
|
|
+import com.xjrsoft.module.evaluate.entity.*;
|
|
|
+import com.xjrsoft.module.evaluate.mapper.EvaluateManageItemMapper;
|
|
|
import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
|
|
|
import com.xjrsoft.module.evaluate.mapper.EvaluateResultMapper;
|
|
|
import com.xjrsoft.module.evaluate.service.IEvaluateResultService;
|
|
|
-import com.xjrsoft.module.evaluate.vo.EvaluateResultIndexPageVo;
|
|
|
+import com.xjrsoft.module.evaluate.vo.*;
|
|
|
import com.xjrsoft.module.organization.entity.Department;
|
|
|
import com.xjrsoft.module.system.entity.DictionaryDetail;
|
|
|
+import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
+import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* @title: 评价结果
|
|
|
* @Author szs
|
|
|
@@ -30,6 +40,15 @@ import org.springframework.stereotype.Service;
|
|
|
public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResultMapper, EvaluateResult> implements IEvaluateResultService {
|
|
|
|
|
|
private EvaluateManageMapper evaluateManageMapper;
|
|
|
+
|
|
|
+ private XjrUserMapper xjrUserMapper;
|
|
|
+
|
|
|
+ private BaseClassMapper baseClassMapper;
|
|
|
+
|
|
|
+ private EvaluateResultMapper evaluateResultMapper;
|
|
|
+
|
|
|
+ private EvaluateManageItemMapper evaluateManageItemMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<EvaluateResultIndexPageVo> getIndexPage(EvaluateResultIndexPageDto dto) {
|
|
|
MPJLambdaWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
@@ -56,7 +75,82 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IPage<EvaluateResultIndexPageVo> getDetailPage(EvaluateResultIndexPageDto dto) {
|
|
|
- return null;
|
|
|
+ public IPage<EvaluateResultDetailPageVo> getDetailPage(EvaluateResultDetailPageDto dto) {
|
|
|
+ IPage<EvaluateResultDetailPageVo> page = evaluateResultMapper.getDetailPage(ConventPage.getPage(dto), dto);
|
|
|
+ if(page.getRecords() != null && page.getRecords().size() > 0){
|
|
|
+ for (EvaluateResultDetailPageVo e : page.getRecords()) {
|
|
|
+ if(e.getObjectType().equals("teacher") || e.getObjectType().equals("student")){
|
|
|
+ XjrUser user = xjrUserMapper.selectById(e.getObjectId());
|
|
|
+ if (user != null){
|
|
|
+ e.setObjectIdCN(user.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(e.getObjectType().equals("class")){
|
|
|
+ BaseClass baseClass = baseClassMapper.selectById(e.getObjectId());
|
|
|
+ if(baseClass != null){
|
|
|
+ e.setObjectIdCN(baseClass.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public EvaluateResultDetailPageDetailVo getDetailPageDetail(EvaluateResultDetailPageDetailDto dto) {
|
|
|
+ //根据评价管理编号获取当前评价管理相关信息
|
|
|
+ MPJLambdaWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ evaluateManageMPJLambdaWrapper
|
|
|
+ .selectAs(EvaluateManage::getName, EvaluateResultDetailPageDetailVo::getName)
|
|
|
+ .selectAs(EvaluateTemplate::getTotal, EvaluateResultDetailPageDetailVo::getTotal)
|
|
|
+ .leftJoin(EvaluateTemplate.class, EvaluateTemplate::getId, EvaluateManage::getEvaluateTemplateId)
|
|
|
+ .eq(EvaluateManage::getId, dto.getEvaluateManageId());
|
|
|
+ EvaluateResultDetailPageDetailVo evaluateResultDetailPageDetailVo = evaluateManageMapper.selectJoinOne(EvaluateResultDetailPageDetailVo.class, evaluateManageMPJLambdaWrapper);
|
|
|
+ if(evaluateResultDetailPageDetailVo == null){
|
|
|
+ return evaluateResultDetailPageDetailVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据评价管理主键编号,被评对象id,参评人id获取相关信息
|
|
|
+ MPJLambdaWrapper<EvaluateResult> evaluateResultMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ evaluateResultMPJLambdaWrapper
|
|
|
+ .selectSum(EvaluateResult::getScore, EvaluateResultDetailPageDetailVo::getActulTotal)
|
|
|
+ .leftJoin(EvaluateObject.class, EvaluateObject::getId, EvaluateResult::getEvaluatedObjectId)
|
|
|
+ .leftJoin(XjrUser.class,XjrUser::getId,EvaluateObject::getObjectId,ext->ext
|
|
|
+ .selectAs(XjrUser::getName,EvaluateResultDetailPageDetailVo::getObjectIdCN))
|
|
|
+ .leftJoin(XjrUser.class,XjrUser::getId,EvaluateResult::getUserId,ext->ext
|
|
|
+ .selectAs(XjrUser::getName,EvaluateResultDetailPageDetailVo::getUserIdCN))
|
|
|
+ .eq(EvaluateObject::getEvaluateManageId, dto.getEvaluateManageId())
|
|
|
+ .eq(EvaluateObject::getId, dto.getEvaluatedObjectId())
|
|
|
+ .eq(EvaluateResult::getUserId, dto.getUserId());
|
|
|
+ EvaluateResultDetailPageDetailVo evaluateResult = evaluateManageMapper.selectJoinOne(EvaluateResultDetailPageDetailVo.class, evaluateManageMPJLambdaWrapper);
|
|
|
+ evaluateResultDetailPageDetailVo.setActulTotal(evaluateResult.getActulTotal());
|
|
|
+ evaluateResultDetailPageDetailVo.setObjectIdCN(evaluateResult.getObjectIdCN());
|
|
|
+ evaluateResultDetailPageDetailVo.setUserIdCN(evaluateResult.getUserIdCN());
|
|
|
+
|
|
|
+ //获取模板下的所有评价子项集合
|
|
|
+ MPJLambdaWrapper<EvaluateManageItem> evaluateManageItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ evaluateManageItemMPJLambdaWrapper
|
|
|
+ .select(EvaluateManageItem::getId)
|
|
|
+ .selectAs(EvaluateResult::getScore, EvaluateManageItemVo::getActulScore)
|
|
|
+ .selectAs(EvaluateResult::getOpinion, EvaluateManageItemVo::getOpinion)
|
|
|
+ .select(EvaluateManageItem.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageItemVo.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(EvaluateResult.class, EvaluateResult::getEvaluateItemId, EvaluateManageItem::getEvaluateItemId)
|
|
|
+ .eq(EvaluateManageItem::getEvaluateManageId, dto.getEvaluateManageId());
|
|
|
+
|
|
|
+ List<EvaluateManageItemVo> evaluateManageItemVos = evaluateManageItemMapper.selectJoinList(EvaluateManageItemVo.class, evaluateManageItemMPJLambdaWrapper);
|
|
|
+
|
|
|
+ Map<String, List<EvaluateManageItemVo>> groupedEvaluateManageItemVo = evaluateManageItemVos.stream()
|
|
|
+ .collect(Collectors.groupingBy(EvaluateManageItemVo::getTopic));
|
|
|
+
|
|
|
+ List<EvaluateManageItemByTopicVo> evaluateManageItemByTopicVoArrayList = new ArrayList<>();
|
|
|
+ groupedEvaluateManageItemVo.forEach((topic, group) -> {
|
|
|
+ evaluateManageItemByTopicVoArrayList.add(new EvaluateManageItemByTopicVo(){{
|
|
|
+ setTopic(topic);
|
|
|
+ setEvaluateManageItemVoList(group);
|
|
|
+ }});
|
|
|
+ });
|
|
|
+ evaluateResultDetailPageDetailVo.setEvaluateManageItemByTopicVoList(evaluateManageItemByTopicVoArrayList);
|
|
|
+
|
|
|
+ return evaluateResultDetailPageDetailVo;
|
|
|
}
|
|
|
}
|