瀏覽代碼

Merge remote-tracking branch 'origin/dev' into dev

fanxp 1 年之前
父節點
當前提交
5e6cb426ae

+ 3 - 12
src/main/java/com/xjrsoft/module/evaluate/entity/EvaluateTemplate.java

@@ -1,21 +1,12 @@
 package com.xjrsoft.module.evaluate.entity;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.github.yulichang.annotation.EntityMapping;
+import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.io.Serializable;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.List;
 import java.util.Date;
-import java.util.Map;
 
 
 /**
@@ -93,7 +84,7 @@ public class EvaluateTemplate implements Serializable {
     * 评价总分
     */
     @ApiModelProperty("评价总分")
-    private Double total;
+    private Integer total;
     /**
     * 使用部门ids
     */

+ 2 - 1
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateManageMapper.java

@@ -11,6 +11,7 @@ import com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
 import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -47,5 +48,5 @@ public interface EvaluateManageMapper extends MPJBaseMapper<EvaluateManage> {
 
     List<EvaluateManageItemVo> getResultList(Long id, Long userId);
 
-    List<EvaluateManageScoreVo> getScoreList();
+    List<EvaluateManageScoreVo> getScoreList(@Param("userId") Long userId);
 }

+ 5 - 4
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateResultMapper.java

@@ -6,10 +6,7 @@ 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.EvaluateResult;
-import com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageDetailList;
-import com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageDetailVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateResultIndexPageVo;
+import com.xjrsoft.module.evaluate.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -30,4 +27,8 @@ public interface EvaluateResultMapper extends MPJBaseMapper<EvaluateResult> {
     EvaluateResultDetailPageDetailVo getDetailPageDetail(@Param("dto") EvaluateResultDetailPageDetailDto dto);
 
     List<EvaluateResultDetailPageDetailList> getDetailPageDetailList(@Param("dto") EvaluateResultDetailPageDetailDto dto);
+
+    List<ResultViewingPageVo> listByObjectIdAndEvaluateItemId(@Param("evaluateObjectIdList") List<Long> evaluateObjectIdList, @Param("evaluateManageItemIdList") List<Long> evaluateManageItemIdList);
+
+
 }

+ 13 - 1
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateItemServiceImpl.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.evaluate.dto.AddEvaluateItemDto;
 import com.xjrsoft.module.evaluate.dto.MakeEvaluateItemDto;
@@ -60,7 +61,6 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
             return makeEvaluateItemVo;
         }
 
-
         List<String> deptIdList = new ArrayList<>();
         try {
             ObjectMapper objectMapper = new ObjectMapper();
@@ -117,6 +117,12 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
     @Override
     @Transactional
     public Boolean addEvaluateItem(List<AddEvaluateItemDto> dto) {
+        //获取模板
+        Long evaluateTemplateId = dto.get(0).getEvaluateTemplateId();
+        EvaluateTemplate evaluateTemplate = evaluateTemplateMapper.selectById(evaluateTemplateId);
+        if(evaluateTemplate == null) {
+            throw new MyException("没有找到对应模板!");
+        }
         //先物理删除数据库中该模板下的所有评价项
         evaluateItemMapper.physicalDeleteEvaluateItem(dto.get(0).getEvaluateTemplateId());
         //获取sortCode的最大数量
@@ -124,12 +130,18 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
         queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
         EvaluateItem e = this.getOne(queryWrapperSortcode);
         int sortCode = e.getSortCode() + 1;
+
         List<EvaluateItem> evaluateItemList = new ArrayList<>();
+        int sumScore = 0;
         for (AddEvaluateItemDto addEvaluateItemDto : dto) {
             addEvaluateItemDto.setSortCode(sortCode++);
             EvaluateItem evaluateItem = BeanUtil.toBean(addEvaluateItemDto, EvaluateItem.class);
             evaluateItem.setCreateDate(new Date());
             evaluateItemList.add(evaluateItem);
+            sumScore += evaluateItem.getScore();
+        }
+        if(sumScore > evaluateTemplate.getTotal()) {
+            throw new MyException("题目总分超出模板设置的总分!");
         }
         return this.saveBatch(evaluateItemList);
     }

+ 1 - 1
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateManageServiceImpl.java

@@ -109,7 +109,7 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
     public Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto) {
         Page<EvaluateWritePageVo> mobilePage = evaluateManageMapper.getMobilePage(page, dto);
         if(dto.getStatus() == 1){
-            List<EvaluateManageScoreVo> scoreList = evaluateManageMapper.getScoreList();
+            List<EvaluateManageScoreVo> scoreList = evaluateManageMapper.getScoreList(StpUtil.getLoginIdAsLong());
             for (EvaluateWritePageVo record : mobilePage.getRecords()) {
                 for (EvaluateManageScoreVo evaluateManageScoreVo : scoreList) {
                     if(!record.getId().equals(evaluateManageScoreVo.getEvaluateManageId())){

+ 119 - 74
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

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

+ 2 - 2
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateTemplateServiceImpl.java

@@ -60,7 +60,7 @@ public class EvaluateTemplateServiceImpl extends MPJBaseServiceImpl<EvaluateTemp
                 deptName.append(departmentMap.get(deptIds[i]));
                 deptIdSb.append(deptIds[i]);
             }
-            record.setDeptNames(deptName.toString());
+            record.setDeptNames(deptName.equals("null")? "通用": deptName.toString());
             record.setDeptIds("[" + deptIdSb.toString() + "]");
         }
         return voPage;
@@ -90,7 +90,7 @@ public class EvaluateTemplateServiceImpl extends MPJBaseServiceImpl<EvaluateTemp
             deptIdSb.append(deptIds[i]);
         }
 
-        evaluateTemplateVo.setDeptNames(deptName.toString());
+        evaluateTemplateVo.setDeptNames(deptName.equals("null")? "通用": deptName.toString());
         evaluateTemplateVo.setDeptIds("[" + deptIdSb.toString() + "]");
         return evaluateTemplateVo;
     }

+ 10 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManageScoreVo.java

@@ -17,6 +17,16 @@ public class EvaluateManageScoreVo {
     */
     @ApiModelProperty("评价管理编号")
     private String evaluateManageId;
+    /**
+     * 被评对象id
+     */
+    @ApiModelProperty("被评对象id")
+    private Long objectId;
+    /**
+     * 被评对象id
+     */
+    @ApiModelProperty("被评对象id")
+    private String objectCN;
     /**
     * 题目分数(最小为0,只能整数)
     */

+ 2 - 2
src/main/java/com/xjrsoft/module/evaluate/vo/ResultViewingPageVo.java

@@ -48,8 +48,8 @@ public class ResultViewingPageVo {
     @ApiModelProperty("实际打分人数")
     private Integer actualExecuterNum;
     /**
-     * 单个被评对象的每一道题的得分
+     * 单个被评对象的每一道题的平均得分
      */
-    @ApiModelProperty("单个被评对象的每一道题的得分")
+    @ApiModelProperty("单个被评对象的每一道题的平均得分")
     private Integer sumScore;
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookRecedeServiceImpl.java

@@ -9,6 +9,8 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.common.enums.IssueModeEnum;
 import com.xjrsoft.common.enums.RecedeTypeEnum;
 import com.xjrsoft.common.enums.WarehouseModeEnum;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.textbook.entity.*;
 import com.xjrsoft.module.textbook.mapper.*;
 import com.xjrsoft.module.textbook.service.IWfTextbookRecedeService;
@@ -36,6 +38,8 @@ public class WfTextbookRecedeServiceImpl extends MPJBaseServiceImpl<WfTextbookRe
 
     private final TextbookMapper textbookTextbookMapper;
 
+    private final BaseClassMapper baseClassMapper;
+
     private final TextbookWarehouseRecordMapper textbookWarehouseRecordMapper;
 
     private final TextbookIssueRecordMapper textbookIssueRecordMapper;
@@ -129,6 +133,10 @@ public class WfTextbookRecedeServiceImpl extends MPJBaseServiceImpl<WfTextbookRe
                             setDataItemId(wfTextbookRecedeItem.getId());
                             setWarehouseMode(WarehouseModeEnum.WmRecede.getCode());
                             setWarehouseNumber(ObjectUtil.isNull(wfTextbookRecedeItem.getNumber())?0:wfTextbookRecedeItem.getNumber());
+                            if(wfTextbookRecede.getClassId() != null && wfTextbookRecede.getClassId() > 0){
+                                BaseClass c = baseClassMapper.selectById(wfTextbookRecede.getClassId());
+                                setSource(c.getName());
+                            }
                             QueryWrapper<TextbookWarehouseRecord> queryWrapperSortcode = new QueryWrapper<>();
                             queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
                             TextbookWarehouseRecord t = textbookWarehouseRecordMapper.selectOne(queryWrapperSortcode);

+ 14 - 0
src/main/java/com/xjrsoft/module/textbook/vo/TextbookWarehouseRecordPageVo.java

@@ -96,6 +96,20 @@ public class TextbookWarehouseRecordPageVo {
     @ApiModelProperty("入库数量")
     private Integer warehouseNumber;
 
+    /**
+     * 使用年级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用年级")
+    @ApiModelProperty("使用年级")
+    private String useGrade;
 
+    /**
+     * 使用班级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用班级")
+    @ApiModelProperty("使用班级")
+    private String useClass;
 
 }

+ 9 - 5
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -68,11 +68,15 @@
         ORDER BY t1.sort_code
     </select>
     <select id="getScoreList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo">
-        select t2.evaluate_manage_id,sum(t1.score) from evaluate_result t1
-        left join evaluate_manage_item t2 on t1.evaluate_item_id = t2.id
-        left join evaluate_executer t3 on t1.user_id = t3.id
-        where t1.delete_mark = 0 and t2.delete_mark = 0 and t3.delete_mark = 0
-        group by t2.evaluate_manage_id
+        select t2.evaluate_manage_id, t2.object_id, sum(t4.score)
+        from evaluate_executer t1
+                 left join evaluate_object t2 on t2.id = t1.evaluate_object_id
+                 left join evaluate_result t4 on t4.user_id = t1.id
+        where t1.delete_mark = 0
+          and t2.delete_mark = 0
+          and t1.user_id = #{userId}
+          and t1.status = 1
+        group by t2.evaluate_manage_id, t2.object_id
     </select>
 
 </mapper>

+ 37 - 17
src/main/resources/mapper/evaluate/EvaluateResultMapper.xml

@@ -42,40 +42,40 @@
     <select id="getDetailPage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateResultDetailPageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateResultDetailPageVo">
         select
         t.evaluate_manage_id as evaluateManageId,
-        t.id as evaluatedObjectId,
-        t3.id as evaluatedExecuterId,
-        ifnull(t1.name, t1.name) as ObjectIdCN,
+        t.evaluate_object_id as evaluatedObjectId,
+        t.id as evaluatedExecuterId,
+        ifnull(t1.name, t2.name) as ObjectIdCN,
         t4.name as userIdCN,
-        t3.status,
+        t.status,
         ifnull(t5.comprehensiveScore, 0) as comprehensiveScore
-        from evaluate_object t
-        left join xjr_user t1 on t1.id = t.object_id
-        left join base_class t2 on t2.id = t.object_id
-        left join evaluate_executer t3 on t3.evaluate_object_id = t.id
-        left join xjr_user t4 on t4.id = t3.user_id
+        from evaluate_executer t
+        left join evaluate_object t3 on t3.id = t.evaluate_object_id
+        left join xjr_user t1 on t1.id = t3.object_id
+        left join base_class t2 on t2.id = t3.object_id
+        left join xjr_user t4 on t4.id = t.user_id
         left join (select
         t.evaluated_object_id, t.user_id, sum(t.score) as comprehensiveScore
         from evaluate_result t
-        group by t.evaluated_object_id, t.user_id) t5 on t5.evaluated_object_id = t.id and t5.user_id = t3.id
+        group by t.evaluated_object_id, t.user_id) t5 on t5.evaluated_object_id = t.evaluate_object_id and t5.user_id = t.id
         where t.evaluate_manage_id = #{dto.evaluateManageId}
         <if test="dto.baseGradeId != null and dto.baseGradeId > 0">
-            AND t.base_grade_id = #{dto.baseGradeId}
+            AND t3.base_grade_id = #{dto.baseGradeId}
         </if>
         <if test="dto.status != null">
-            AND t3.status = #{dto.status}
+            AND t.status = #{dto.status}
         </if>
         <if test="dto.classId != null and dto.classId > 0">
-            AND t.object_id = #{dto.classId}
+            AND t3.object_id = #{dto.classId}
         </if>
         <if test="dto.teacherId != null and dto.teacherId > 0 and (dto.checkObject == null or dto.checkObject == 0)">
-            AND (t.object_id = #{dto.teacherId}
-                or t3.user_id = #{dto.teacherId})
+            AND (t3.object_id = #{dto.teacherId}
+                or t.user_id = #{dto.teacherId})
         </if>
         <if test="dto.teacherId != null and dto.teacherId > 0 and dto.checkObject != null and dto.checkObject == 1">
-            AND t.object_id = #{dto.teacherId}
+            AND t3.object_id = #{dto.teacherId}
         </if>
         <if test="dto.teacherId != null and dto.teacherId > 0 and dto.checkObject != null and dto.checkObject == 2">
-            AND t3.user_id = #{dto.teacherId}
+            AND t.user_id = #{dto.teacherId}
         </if>
         <if test="dto.name != null and dto.name != '' and (dto.checkObject == null or dto.checkObject == 0)">
             AND (t1.name like CONCAT('%',#{dto.name},'%')
@@ -129,4 +129,24 @@
           and t1.evaluated_object_id = #{dto.evaluatedObjectId}
           and t1.user_id = #{dto.evaluatedExecuterId}
     </select>
+
+    <select id="listByObjectIdAndEvaluateItemId" resultType="com.xjrsoft.module.evaluate.vo.ResultViewingPageVo">
+        select
+            sum(t.score) as sumScore,
+            t.evaluate_item_id as evaluateManageItemId,
+            t1.object_id as objectId
+        from evaluate_result t
+                 left join evaluate_object t1 on t1.id = t.evaluated_object_id
+        where t.evaluate_item_id in
+        <foreach item="evaluateManageItemId" index="index" collection="evaluateManageItemIdList" open="(" close=")"
+                 separator=",">
+            #{evaluateManageItemId}
+        </foreach>
+          and t1.object_id in
+        <foreach item="evaluateObjectId" index="index" collection="evaluateObjectIdList" open="(" close=")"
+                 separator=",">
+            #{evaluateObjectId}
+        </foreach>
+        group by t1.object_id, t.evaluate_item_id;
+    </select>
 </mapper>

+ 26 - 9
src/main/resources/mapper/textbook/TextbookIssueRecordMapper.xml

@@ -4,20 +4,37 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.textbook.mapper.TextbookIssueRecordMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo">
-        SELECT t1.id,t1.sort_code,t3.issn,t3.book_name,t3.publishing_house,t3.editor_in_chief,t7.group_name,t5.name AS grade_name,
-        t6.name AS class_name,t8.name AS course_name,t10.name AS textbook_type_cn,t3.specifications_models,
-        t11.name AS issue_mode_cn,t1.create_date,t9.name AS claim_user,t1.issue_number FROM textbook_issue_record t1
+        SELECT t1.id,
+        t1.sort_code,
+        t3.issn,
+        t3.book_name,
+        t3.publishing_house,
+        t3.editor_in_chief,
+        t7.group_name,
+        t5.name  AS grade_name,
+        ifnull(t6.name, t14.name)  AS class_name,
+        t8.name  AS course_name,
+        t10.name AS textbook_type_cn,
+        t3.specifications_models,
+        t11.name AS issue_mode_cn,
+        t1.create_date,
+        t9.name  AS claim_user,
+        t1.issue_number
+        FROM textbook_issue_record t1
         LEFT JOIN wf_textbook_claim_item t2 ON t1.data_item_id = t2.id
-        LEFT JOIN textbook t3 ON t2.textbook_id = t3.id
-        LEFT JOIN wf_textbook_claim t4 ON t2.wf_textbook_claim_id = t4.id
+        LEFT JOIN wf_textbook_claim t4 ON t1.data_id = t4.id
+        LEFT JOIN wf_textbook_recede_item t12 ON t12.id = t1.data_item_id
+        LEFT JOIN wf_textbook_recede t13 ON t13.id = t1.data_id
+        LEFT JOIN textbook t3 ON t3.id = t1.textbook_id
         LEFT JOIN base_grade t5 ON t3.grade_id = t5.id
         LEFT JOIN base_class t6 ON t4.class_id = t6.id
+        LEFT JOIN base_class t14 ON t13.class_id = t14.id
         LEFT JOIN subject_group t7 ON t3.subject_group_id = t7.id
         LEFT JOIN base_course_subject t8 ON t3.course_subject_id = t8.id
-        LEFT JOIN xjr_user t9 ON t4.claim_user_id = t9.id
+        LEFT JOIN xjr_user t9 ON t1.receive_user_id = t9.id
         LEFT JOIN xjr_dictionary_detail t10 ON t3.textbook_type = t10.code AND t10.item_id = 1739209191193636865
         LEFT JOIN xjr_dictionary_detail t11 ON t1.issue_mode = t11.code AND t11.item_id = 1739821685805215745
-        WHERE t1.delete_mark = 0
+        WHERE t1.delete_mark = 0;
         <if test="dto.textbookType != null and dto.textbookType != ''">
             and t3.textbook_type = #{dto.textbookType}
         </if>
@@ -34,13 +51,13 @@
             and t3.course_subject_id = #{dto.courseSubjectId}
         </if>
         <if test="dto.classId != null">
-            and t4.class_id = #{dto.classId}
+            and (t4.class_id = #{dto.classId} or t13.class_id = #{dto.classId})
         </if>
         <if test="dto.bookName != null and dto.bookName != ''">
             and t3.book_name like concat('%',#{dto.bookName}, '%')
         </if>
         <if test="dto.issn != null and dto.issn != ''">
-            and t3.issn like concat('%',#{dto.issn}, '%')
+            and t3.issn = #{dto.issn}
         </if>
         <if test="dto.specificationsModels != null and dto.specificationsModels != ''">
             and t3.specifications_models like concat('%',#{dto.specificationsModels}, '%')

+ 13 - 9
src/main/resources/mapper/textbook/TextbookMapper.xml

@@ -8,8 +8,7 @@
         SELECT t1.id,t1.sort_code,t1.issn,t1.book_name,t1.publishing_house,t1.editor_in_chief,
         t1.subject_group_id,t2.group_name,t3.name AS semester_name,t4.name AS course_name,t7.name AS
         is_textbook_plan_cn,
-        t5.name AS
-        textbook_type_cn,t1.specifications_models,t1.appraisal_price,t1.price,t1.discount,t1.subtotal,t1.stock,
+        t5.name AS textbook_type_cn,t1.specifications_models,t1.appraisal_price,t1.price,t1.discount,t1.subtotal,t1.stock,
         (SELECT GROUP_CONCAT(c2.name) FROM textbook_class_relation c1
         LEFT JOIN base_class c2 ON c1.class_id = c2.id
         WHERE c1.textbook_id = t1.id) AS use_class,
@@ -129,17 +128,22 @@
         order by t1.sort_code
     </select>
     <select id="issueList" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo">
-        SELECT t1.create_date AS issue_date, t2.name AS issue_user, t1.issue_number, t6.name AS issue_mode,t7.name as remark
+        SELECT t1.create_date                                                        AS issue_date,
+               t2.name                                                               AS issue_user,
+               t1.issue_number,
+               t6.name                                                               AS issue_mode,
+               CONCAT(ifnull(t4.name, ''), ifnull(t5.name, ''), ' ', ifnull(t7.name, ''), ifnull(t9.recede_address, '')) as remark
         FROM textbook_issue_record t1
                  LEFT JOIN xjr_user t2 ON t1.create_user_id = t2.id
-                 LEFT JOIN wf_textbook_claim_item t3 ON t1.data_item_id = t3.id
-                 LEFT JOIN wf_textbook_recede_item t4 ON t3.textbook_id = t4.textbook_id
-                 LEFT JOIN wf_textbook_recede t5 ON t5.id = t4.wf_textbook_recede_id
+                 left join base_student_school_roll t3 on t3.user_id = t1.receive_user_id
+                 left join base_class t4 on t4.id = t3.class_id
+                 left join base_class t5 on t5.teacher_id = t1.issue_user_id
                  LEFT JOIN xjr_dictionary_detail t6 ON t6.code = t1.issue_mode AND t6.item_id = 1739821685805215745
-        left join xjr_user t7 on t1.issue_user_id = t7.id
+                 left join xjr_user t7 on t1.receive_user_id = t7.id
+                 left join wf_textbook_recede t9 on t9.id = t1.data_id
         WHERE t1.delete_mark = 0
-          AND t3.textbook_id = #{id}
-        ORDER BY t1.sort_code;
+          AND t1.textbook_id = #{id}
+        ORDER BY t1.create_date;
     </select>
     <select id="getClassRelation" resultType="com.xjrsoft.module.textbook.entity.TextbookClassRelation">
         SELECT *

+ 22 - 4
src/main/resources/mapper/textbook/TextbookWarehouseRecordMapper.xml

@@ -4,13 +4,31 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.textbook.mapper.TextbookWarehouseRecordMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto" resultType="com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo">
-        SELECT t1.id, t1.sort_code, t3.issn,t3.book_name,t3.publishing_house,t3.editor_in_chief,t4.group_name,
-        t5.name AS course_name,t6.name AS textbook_type_cn,t3.specifications_models,t1.create_date,t2.name AS warehouse_user,t1.warehouse_number FROM textbook_warehouse_record t1
+        SELECT t1.id,
+        t1.sort_code,
+        t3.issn,
+        t3.book_name,
+        t3.publishing_house,
+        t3.editor_in_chief,
+        t4.group_name,
+        t5.name AS course_name,
+        t6.name AS textbook_type_cn,
+        t3.specifications_models,
+        t1.create_date,
+        t2.name AS warehouse_user,
+        t1.warehouse_number,
+        (SELECT GROUP_CONCAT(c2.name)
+        FROM textbook_class_relation c1
+        LEFT JOIN base_class c2 ON c1.class_id = c2.id
+        WHERE c1.textbook_id = t1.textbook_id) AS use_class,
+        t7.name                        AS use_grade
+        FROM textbook_warehouse_record t1
         LEFT JOIN xjr_user t2 ON t1.create_user_id = t2.id
         LEFT JOIN textbook t3 ON t1.textbook_id = t3.id
         LEFT JOIN subject_group t4 ON t3.subject_group_id = t4.id
         LEFT JOIN base_course_subject t5 ON t3.course_subject_id = t5.id
         LEFT JOIN xjr_dictionary_detail t6 ON t3.textbook_type = t6.code AND t6.item_id = 1739209191193636865
+        LEFT JOIN base_grade t7 ON t3.grade_id = t7.id
         WHERE t1.delete_mark = 0
         <if test="dto.textbookType != null and dto.textbookType != ''">
             and t3.textbook_type = #{dto.textbookType}
@@ -28,13 +46,13 @@
             and t3.course_subject_id = #{dto.courseSubjectId}
         </if>
         <if test="dto.classId != null">
-            and t3.class_id = #{dto.classId}
+            and t3.class_id like concat('%',#{dto.classId}, '%')
         </if>
         <if test="dto.bookName != null and dto.bookName != ''">
             and t3.book_name like concat('%',#{dto.bookName}, '%')
         </if>
         <if test="dto.issn != null and dto.issn != ''">
-            and t3.issn like concat('%',#{dto.issn}, '%')
+            and t3.issn = #{dto.issn}
         </if>
         <if test="dto.specificationsModels != null and dto.specificationsModels != ''">
             and t3.specifications_models like concat('%',#{dto.specificationsModels}, '%')