Procházet zdrojové kódy

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

dzx před 4 měsíci
rodič
revize
ddb522b07b

+ 9 - 2
src/main/java/com/xjrsoft/module/classtime/controller/ClassTimeStatisticsController.java

@@ -3,9 +3,14 @@ package com.xjrsoft.module.classtime.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
@@ -25,6 +30,7 @@ import com.xjrsoft.module.classtime.service.IClassTimeStatisticsSetService;
 import com.xjrsoft.module.classtime.vo.ClassTimeStatisticsPageVo;
 import com.xjrsoft.module.classtime.vo.ClassTimeStatisticsRecordVo;
 import com.xjrsoft.module.classtime.vo.ClassTimeStatisticsVo;
+import com.xjrsoft.module.classtime.vo.RecordDetailVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -197,9 +203,10 @@ public class ClassTimeStatisticsController {
     @GetMapping(value = "/record-detail-info")
     @ApiOperation(value="课时统计详情明细")
     @SaCheckPermission("classtimestatistics:detail")
-    public RT<String> recordDetailInfo(@Valid RefreshStatisticsDto dto){
+    public RT<RecordDetailVo> recordDetailInfo(@Valid RefreshStatisticsDto dto){
         ClassTimeStatisticsRecord record = recordService.getById(dto.getId());
-        return RT.ok(record.getAllClassTimeData());
+        RecordDetailVo recordDetailVo = JSON.parseObject(record.getAllClassTimeData(), RecordDetailVo.class);
+        return RT.ok(recordDetailVo);
     }
 
     @PostMapping(value = "/record-detail-export-query")

+ 34 - 0
src/main/java/com/xjrsoft/module/classtime/vo/RecordDetailListVo.java

@@ -0,0 +1,34 @@
+package com.xjrsoft.module.classtime.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 节假日调课设置表单出参
+* @Author dzx
+* @Date: 2024-09-26
+* @Version 1.0
+*/
+@Data
+public class RecordDetailListVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("日期")
+    private String scheduleDate;
+    /**
+    * 补班日期
+    */
+    @ApiModelProperty("内容")
+    private String content;
+    /**
+    * 补课日期
+    */
+    @ApiModelProperty("分类")
+    private String type;
+
+    @ApiModelProperty("调整类型")
+    private String adjustType;
+
+}

+ 37 - 0
src/main/java/com/xjrsoft/module/classtime/vo/RecordDetailVo.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.classtime.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+* @title: 节假日调课设置表单出参
+* @Author dzx
+* @Date: 2024-09-26
+* @Version 1.0
+*/
+@Data
+public class RecordDetailVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("行")
+    private List<RecordDetailListVo> rowTitle;
+    /**
+    * 补班日期
+    */
+    @ApiModelProperty("列")
+    private List<RecordDetailListVo> columnTitle;
+    /**
+    * 补课日期
+    */
+    @ApiModelProperty("数据")
+    private List<RecordDetailListVo> data;
+
+    @ApiModelProperty("总课时")
+    private Integer allClassTime;
+
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateManageController.java

@@ -110,7 +110,7 @@ public class EvaluateManageController {
         if(dto.getStatus() == 2){
             return RT.ok(evaluateManageService.updateById(new EvaluateManage(){{
                 setId(dto.getId());
-                setCreateDate(new Date());
+                setEndTime(new Date());
                 setCreateUserId(StpUtil.getLoginIdAsLong());
                 setStatus(1);
             }}));

+ 9 - 7
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateResultController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.evaluate.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
 * @title: 评价结果
@@ -71,17 +73,17 @@ public class EvaluateResultController {
     @GetMapping(value = "/result-viewing-page")
     @ApiOperation(value="结果查看(分页)")
     @SaCheckPermission("evaluateresult:detail")
-    public RT<PageOutput<ResultViewingPageVo>> pageResultViewing(@Valid ResultViewingPageDto dto){
-        IPage<ResultViewingPageVo> page = evaluateResultService.pageResultViewing(dto);
-        PageOutput<ResultViewingPageVo> pageOutput = ConventPage.getPageOutput(page, ResultViewingPageVo.class);
-        return RT.ok(pageOutput);
+    public RT<List<ResultViewingPageVo>> pageResultViewing(@Valid ResultViewingPageDto dto){
+        List<ResultViewingPageVo> list = evaluateResultService.pageResultViewing(dto);
+        return RT.ok(list);
     }
 
     @PostMapping("/export-query")
 //    @GetMapping("/expor")
     @ApiOperation(value = "入参导出")
-    public ResponseEntity<byte[]>  exportDataQuery(@Valid @RequestBody ResultViewingExcelDto dto) {
-//    public ResponseEntity<byte[]>  exportDataQuery(@Valid ResultViewingExcelDto dto) {
-        return evaluateResultService.getList(dto);
+    public ResponseEntity<byte[]>  exportDataQuery(@Valid @RequestBody ResultViewingPageDto dto) {
+        String fileName = "recordDetailExportQuery" + ExcelTypeEnum.XLSX.getValue();
+        byte[] bytes = evaluateResultService.getList(dto);
+        return RT.fileStream(bytes, fileName);
     }
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateResultMapper.java

@@ -11,6 +11,7 @@ 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.ResultViewingListVo;
 import com.xjrsoft.module.evaluate.vo.ResultViewingPageVo;
 import com.xjrsoft.module.evaluate.vo.TeaEvaluateClassListVo;
 import org.apache.ibatis.annotations.Mapper;
@@ -41,4 +42,6 @@ public interface EvaluateResultMapper extends MPJBaseMapper<EvaluateResult> {
     List<ResultViewingPageVo> listSynthesisScore(@Param("evaluateObjectIdList") List<Long> evaluateObjectIdList, @Param("evaluateManageItemIdList") List<Long> evaluateManageItemIdList);
 
     List<TeaEvaluateClassListVo> getTeaEvaluateClassList(@Param("dto") TeaEvaluateClassDto dto);
+
+    List<ResultViewingListVo> getResultViewingList(@Param("evaluateManageId") Long evaluateManageId);
 }

+ 4 - 2
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateResultService.java

@@ -15,6 +15,8 @@ import com.xjrsoft.module.evaluate.vo.EvaluateResultIndexPageVo;
 import com.xjrsoft.module.evaluate.vo.ResultViewingPageVo;
 import org.springframework.http.ResponseEntity;
 
+import java.util.List;
+
 /**
 * @title: 评价结果
 * @Author szs
@@ -29,9 +31,9 @@ public interface IEvaluateResultService extends MPJBaseService<EvaluateResult> {
 
     EvaluateResultDetailPageDetailVo getDetailPageDetail(EvaluateResultDetailPageDetailDto dto);
 
-    IPage<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto);
+    List<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto);
 
     String saveBatch(EvaluateResultSaveDto dto);
 
-    ResponseEntity<byte[]> getList(ResultViewingExcelDto dto);
+    byte[] getList(ResultViewingPageDto dto);
 }

+ 190 - 263
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

@@ -1,25 +1,21 @@
 package com.xjrsoft.module.evaluate.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.support.ExcelTypeEnum;
-import com.alibaba.excel.write.merge.LoopMergeStrategy;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
-import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
 import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.evaluate.dto.AddEvaluateResultDto;
 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.dto.EvaluateResultSaveDto;
-import com.xjrsoft.module.evaluate.dto.ResultViewingExcelDto;
 import com.xjrsoft.module.evaluate.dto.ResultViewingPageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
@@ -29,7 +25,6 @@ import com.xjrsoft.module.evaluate.entity.EvaluateResult;
 import com.xjrsoft.module.evaluate.entity.EvaluateSubmitRecord;
 import com.xjrsoft.module.evaluate.mapper.EvaluateExecuterMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateManageItemMapper;
-import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateResultMapper;
 import com.xjrsoft.module.evaluate.mapper.EvaluateSubmitRecordMapper;
@@ -38,20 +33,32 @@ 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.MobileResultPageVo;
-import com.xjrsoft.module.evaluate.vo.ResultViewingExcelVo;
+import com.xjrsoft.module.evaluate.vo.ResultViewingListVo;
 import com.xjrsoft.module.evaluate.vo.ResultViewingPageVo;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
-import org.springframework.http.ResponseEntity;
+import me.zhyd.oauth.log.Log;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -68,8 +75,6 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
 
     private EvaluateResultMapper evaluateResultMapper;
 
-    private EvaluateManageMapper evaluateManageMapper;
-
     private EvaluateManageItemMapper evaluateManageItemMapper;
 
     private EvaluateSubmitRecordMapper evaluateSubmitRecordMapper;
@@ -104,7 +109,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
     }
 
     @Override
-    public IPage<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto) {
+    public List<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto) {
         List<ResultViewingPageVo> resultData = new ArrayList<>();
         //获取该评价管理下的被评对象-分页
         MPJLambdaWrapper<EvaluateObject> evaluateObjectMPJLambdaWrapper = new MPJLambdaWrapper<>();
@@ -119,10 +124,10 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
                 .eq((dto.getClassId() != null && dto.getClassId() > 0), BaseClass::getId, dto.getClassId())
                 .like((dto.getName() != null && !("").equals(dto.getName())), XjrUser::getName, dto.getName())
                 .disableSubLogicDel();
-        IPage<ResultViewingPageVo> resultViewingPageVoIPage = evaluateObjectMapper.selectJoinPage(ConventPage.getPage(dto), ResultViewingPageVo.class, evaluateObjectMPJLambdaWrapper);
+        List<ResultViewingPageVo> list = evaluateObjectMapper.selectJoinList(ResultViewingPageVo.class, evaluateObjectMPJLambdaWrapper);
         //被评对象的id集合
         List<Long> evaluateObjectIdList = new ArrayList<>();
-        for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
+        for (ResultViewingPageVo resultViewingPageVo : list) {
             evaluateObjectIdList.add(resultViewingPageVo.getObjectId());
         }
 
@@ -143,146 +148,72 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
         //获取该评价管理下的被评对象的应打分人数,实际打分人数
         MPJLambdaWrapper<EvaluateExecuter> evaluateExecuterMPJLambdaWrapper = new MPJLambdaWrapper<>();
         evaluateExecuterMPJLambdaWrapper
-                .select("count(t.id) as planExecuterNum")
+                .select(EvaluateExecuter::getId)
                 .selectAs(EvaluateObject::getObjectId, ResultViewingPageVo::getObjectId)
-                .selectSum(EvaluateExecuter::getStatus, ResultViewingPageVo::getActualExecuterNum)//这里值得推敲
+                .select(EvaluateExecuter::getStatus)//这里值得推敲
                 .leftJoin(EvaluateObject.class, EvaluateObject::getId, EvaluateExecuter::getEvaluateObjectId)
                 .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
                 .in(!evaluateObjectIdList.isEmpty(), 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>> planAndActualExecuterNumMap = planAndActualExecuterNum.stream().filter(x -> x.getStatus() == 2).collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId));
+        Map<Long, List<ResultViewingPageVo>> planAndShouldExecuterNumMap = planAndActualExecuterNum.stream().collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId));
 
         Map<Long, List<ResultViewingPageVo>> groupedByObjectIdList = new HashMap<>();
         //获取该评价管理下的所有被评对象的所有题的总得分
-        if (evaluateManageItemIdList.size() > 0 && evaluateObjectIdList.size() > 0) {
+        if (!evaluateManageItemIdList.isEmpty()) {
             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);*/
         }
+        List<ResultViewingListVo> resultViewingList = evaluateResultMapper.getResultViewingList(dto.getEvaluateManageId());
         //遍历分页记录
-        for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
+        for (ResultViewingPageVo resultViewingPageVo : list) {
             List<ResultViewingPageVo> resultViewingPageVoList = groupedByObjectIdList.get(resultViewingPageVo.getObjectId());
-            if(resultViewingPageVoList != null && resultViewingPageVoList.size() > 0){
+            Map<Long, List<ResultViewingListVo>> itemMaps = resultViewingList.stream().filter(x -> x.getObjectId().equals(resultViewingPageVo.getObjectId()))
+                    .collect(Collectors.groupingBy(ResultViewingListVo::getEvaluateManageItemId));
+
+            if(resultViewingPageVoList != null && !resultViewingPageVoList.isEmpty()){
                 for (ResultViewingPageVo r : resultViewingPageVoList) {
+                    double v = itemMaps.get(r.getEvaluateManageItemId()).stream().mapToDouble(ResultViewingListVo::getScore).average().orElse(0.0);
                     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();
+                        setPlanExecuterNum(planAndShouldExecuterNumMap.get(resultViewingPageVo.getObjectId()).size());
+                        int actualExecuterNum = planAndActualExecuterNumMap.get(resultViewingPageVo.getObjectId()).size();
                         setActualExecuterNum(actualExecuterNum);
-                        setSumScore(r.getSumScore()/actualExecuterNum);
+                        setSumScore(BigDecimal.valueOf(v).setScale(2, RoundingMode.HALF_UP).doubleValue() + "");
                     }});
                 }
             }
         }
-        resultViewingPageVoIPage.setRecords(resultData);
-
-        /*for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoIPage.getRecords()) {
-            //获取该评价管理下的单个被评对象的应打分人数,实际打分人数
-            MPJLambdaWrapper<EvaluateExecuter> evaluateExecuterMPJLambdaWrapper = new MPJLambdaWrapper<>();
-            evaluateExecuterMPJLambdaWrapper
-                    .select("count(t.id) as planExecuterNum")
-                    .selectSum(EvaluateExecuter::getStatus, ResultViewingPageVo::getActualExecuterNum)
-                    .leftJoin(EvaluateObject.class, EvaluateObject::getId, EvaluateExecuter::getEvaluateObjectId)
-                    .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
-                    .eq(EvaluateObject::getObjectId, resultViewingPageVo.getObjectId())
-                    .disableSubLogicDel();
-            ResultViewingPageVo planAndActualExecuterNum = evaluateExecuterMapper.selectJoinOne(ResultViewingPageVo.class, evaluateExecuterMPJLambdaWrapper);
-
-            for (EvaluateManageItem evaluateManageItem : evaluateManageItemList) {
-                //获取该评价管理下的单个被评对象的每一道题的总得分
-                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());
-                    }
-                }});
+
+        Map<Long, Double> synthesisScoreMap = resultData.stream().collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId, Collectors.summingDouble(ResultViewingPageVo::getScore)));
+
+        Map<String, Double> itemListMaps = new HashMap<>();
+        Map<Long, List<ResultViewingPageVo>> personListMap = resultData.stream().collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId));
+        for (Long objectId : personListMap.keySet()) {
+            List<ResultViewingPageVo> itemList = personListMap.get(objectId);
+            Map<String, Double> itemListMap = itemList.stream().collect(Collectors.groupingBy(ResultViewingPageVo::getTopic, Collectors.summingDouble(ResultViewingPageVo::getScore)));
+            for (String topic : itemListMap.keySet()) {
+                itemListMaps.put(objectId + "" + topic, itemListMap.get(topic));
             }
-        }*/
-
-        /*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);
-        }*/
-        return resultViewingPageVoIPage;
+        }
+
+        for (ResultViewingPageVo pageVo : resultData) {
+            pageVo.setSynthesisScore(synthesisScoreMap.get(pageVo.getObjectId()) + "");
+
+            Double itemScore = itemListMaps.get(pageVo.getObjectId() + "" + pageVo.getTopic());
+            pageVo.setTopicScore(itemScore + "");
+        }
+
+        return resultData;
     }
 
     @Override
@@ -356,154 +287,150 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
     }
 
     @Override
-    public ResponseEntity<byte[]> getList(ResultViewingExcelDto dto) {
-        List<ResultViewingExcelVo> customerList = new ArrayList<>();
-        //获取该评价管理下的被评对象-分页
-        MPJLambdaWrapper<EvaluateObject> evaluateObjectMPJLambdaWrapper = new MPJLambdaWrapper<>();
-        evaluateObjectMPJLambdaWrapper
-                .distinct()
-                .selectAs(EvaluateObject::getObjectId, ResultViewingPageVo::getObjectId)
-                .select("ifnull(t1.name, t2.name) as objectIdCN")
-                .leftJoin(XjrUser.class, XjrUser::getId, EvaluateObject::getObjectId)
-                .leftJoin(BaseClass.class, BaseClass::getId, EvaluateObject::getObjectId)
-                .eq(EvaluateObject::getEvaluateManageId, dto.getEvaluateManageId())
-                .disableSubLogicDel();
-        List<ResultViewingPageVo> resultViewingPageVoList = evaluateObjectMapper.selectJoinList(ResultViewingPageVo.class, evaluateObjectMPJLambdaWrapper);
-        //被评对象的id集合
-        List<Long> evaluateObjectIdList = new ArrayList<>();
-        for (ResultViewingPageVo resultViewingPageVo : resultViewingPageVoList) {
-            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);
-        }
-        //题目的总数
-        int evaluateManageItemNum = evaluateManageItemList.size();
+    public byte[] getList(ResultViewingPageDto dto) {
+        try {
+            List<ResultViewingPageVo> list = this.pageResultViewing(dto);
+            //查询有多少个题目
+            MPJLambdaWrapper<EvaluateManageItem> evaluateManageItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
+            evaluateManageItemMPJLambdaWrapper
+                    .select(EvaluateManageItem::getId)
+                    .select(EvaluateManageItem.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageItem.class).contains(x.getProperty()))
+                    .eq(EvaluateManageItem::getEvaluateManageId, dto.getEvaluateManageId());
+            List<EvaluateManageItem> itemList = evaluateManageItemMapper.selectList(evaluateManageItemMPJLambdaWrapper);
+            //大题个数
+            Map<String, List<EvaluateManageItem>> topicMap = itemList.stream().collect(Collectors.groupingBy(EvaluateManageItem::getTopic));
+
+//        int startRow = 1;
+//        List<Map<Integer, Integer>> mergeList = new ArrayList<>();
+            Set<Long> objectList = list.stream().map(ResultViewingPageVo::getObjectId).collect(Collectors.toSet());
+            Map<Long, Integer> sortCodeMap = new HashMap<>();
+
+            int sortCode = 1;
+            for (Long objectId : objectList) {
+                sortCodeMap.put(objectId, sortCode);
+                sortCode ++;
+            }
 
-        //获取该评价管理下的被评对象的应打分人数,实际打分人数
-        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);
-        }
+            Workbook workbook = new XSSFWorkbook();
+            Sheet sheet = workbook.createSheet("数据");
+
+            Font font = workbook.createFont();
+            font.setFontName("宋体");
+            font.setFontHeightInPoints((short)12);
+
+            CellStyle contentCellStyle = workbook.createCellStyle();
+            contentCellStyle.setFont(font);
+            contentCellStyle.setWrapText(true);
+            contentCellStyle.setBorderTop(BorderStyle.THIN);
+            contentCellStyle.setBorderBottom(BorderStyle.THIN);
+            contentCellStyle.setBorderLeft(BorderStyle.THIN);
+            contentCellStyle.setBorderRight(BorderStyle.THIN);
+
+            Row headerRow = sheet.createRow(0);
+            String[] headers = {"序号", "被评人", "应打分人数", "实际打分人数", "题目", "得分", "标题", "得分", "综合得分"};
+            for (int i = 0; i < headers.length; i++) {
+                Cell cell = headerRow.createCell(i);
+                cell.setCellValue(headers[i]);
+                cell.setCellStyle(contentCellStyle);
+            }
+            // 填充数据并记录合并的行
+            int rowCount = 1;
+            Map<Long, Integer> classStartRows = new HashMap<>();
+            Map<Long, Integer> classEndRows = new HashMap<>();
+
+            Map<String, Integer> itemStartRows = new HashMap<>();
+            Map<String, Integer> itemEndRows = new HashMap<>();
+
+            for (ResultViewingPageVo el : list) {
+                Row row = sheet.createRow(rowCount ++);
+                Cell cell = row.createCell(0);
+                cell.setCellValue(sortCodeMap.get(el.getObjectId()));
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(1);
+                cell.setCellValue(el.getObjectIdCN());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(2);
+                cell.setCellValue(el.getPlanExecuterNum());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(3);
+                cell.setCellValue(el.getActualExecuterNum());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(4);
+                cell.setCellValue(el.getProblem());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(5);
+                cell.setCellValue(el.getSumScore());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(6);
+                cell.setCellValue(el.getTopic());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(7);
+                cell.setCellValue(el.getTopicScore());
+                cell.setCellStyle(contentCellStyle);
+
+                cell = row.createCell(8);
+                cell.setCellValue(el.getSynthesisScore());
+                cell.setCellStyle(contentCellStyle);
+
+                Long objectId = el.getObjectId();
+                if (!classStartRows.containsKey(objectId)) {
+                    classStartRows.put(objectId, rowCount - 1);
+                }
+                classEndRows.put(objectId, rowCount - 1);
 
-        Map<Long, List<ResultViewingPageVo>> sumScoreMap = new HashMap<>();
-        Map<Long, List<ResultViewingPageVo>> topicScoreMap = new HashMap<>();
-        Map<Long, Integer> synthesisScoreMap = new HashMap<>();
-        if (evaluateManageItemIdList.size() > 0 && evaluateObjectIdList.size() > 0) {
-            //获取该评价管理下的所有被评对象的所有题的总得分
-            List<ResultViewingPageVo> listByObjectIdAndEvaluateItemId = evaluateResultMapper.listByObjectIdAndEvaluateItemId(evaluateObjectIdList, evaluateManageItemIdList);
-            //将所有被评对象的所有题的总得分处理成Map
-            sumScoreMap = listByObjectIdAndEvaluateItemId.stream()
-                    .collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId));
+                String itemInfo = el.getObjectId() + el.getTopic();
+                if (!itemStartRows.containsKey(itemInfo)) {
+                    itemStartRows.put(itemInfo, rowCount - 1);
+                }
+                itemEndRows.put(itemInfo, rowCount - 1);
+            }
 
-            /*//获取该评价管理下的所有被评对象的标题的总得分
-            List<ResultViewingPageVo> listTopicScoreByObjectIdAndTopic = evaluateResultMapper.listTopicScoreByObjectIdAndTopic(evaluateObjectIdList, evaluateManageItemIdList);
-            //将所有被评对象的标题的总得分处理成Map
-            topicScoreMap = listTopicScoreByObjectIdAndTopic.stream()
-                    .collect(Collectors.groupingBy(ResultViewingPageVo::getObjectId));*/
-
-            //获取该评价管理下的所有被评对象的总得分
-            List<ResultViewingPageVo> listSynthesisScore = evaluateResultMapper.listSynthesisScore(evaluateObjectIdList, evaluateManageItemIdList);
-            //将所有被评对象的总得分处理成Map
-            for (ResultViewingPageVo r : listSynthesisScore) {
-                synthesisScoreMap.put(r.getObjectId(), r.getSynthesisScore());
+            // 合并相同的人
+            for (Map.Entry<Long, Integer> entry : classStartRows.entrySet()) {
+                Long className = entry.getKey();
+                int startRow = entry.getValue();
+                int endRow = classEndRows.get(className);
+                if (startRow != endRow) {
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 0, 0));
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 1, 1));
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 2, 2));
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 3, 3));
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 8, 8));
+                }
             }
 
-            /*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 : resultViewingPageVoList) {
-            List<ResultViewingPageVo> sumScoreList = sumScoreMap.get(resultViewingPageVo.getObjectId());
-            if(sumScoreList != null && sumScoreList.size() > 0){
-                for (ResultViewingPageVo r : sumScoreList) {
-                    customerList.add(new ResultViewingExcelVo(){{
-                        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);
-                        setSynthesisScore(synthesisScoreMap.get(resultViewingPageVo.getObjectId())/actualExecuterNum);
-                    }});
+            // 合并相同的题目
+            for (Map.Entry<String, Integer> entry : itemStartRows.entrySet()) {
+                String itemInfo = entry.getKey();
+                int startRow = entry.getValue();
+                int endRow = itemEndRows.get(itemInfo);
+                if (startRow != endRow) {
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 6, 6));
+                    sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 7, 7));
                 }
             }
-        }
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
-//        for (TextbookIssueRecordPageVo textbookIssueRecordPageVo : customerList) {
-//            if(textbookIssueRecordPageVo.getCreateDate() == null){
-//                continue;
-//            }
-//            textbookIssueRecordPageVo.setCreateDateStr(sdf.format(textbookIssueRecordPageVo.getCreateDate()));
-//            dataList.add(BeanUtil.toBean(textbookIssueRecordPageVo, TextbookIssueRecordExcelVo.class));
-//        }
 
+            // 自动调整列宽
+            for (int i = 0; i < headers.length; i++) {
+                sheet.autoSizeColumn(i);
+            }
+
+            ByteArrayOutputStream bot = new ByteArrayOutputStream();
+            workbook.write(bot);
+            // 关闭工作簿
+            workbook.close();
 
-        //返回流
-        ByteArrayOutputStream bot = new ByteArrayOutputStream();
-
-        // 设置排除的属性 也可以在数据模型的字段上加@ExcelIgnore注解排除
-        /*Set<String> excludeField = new HashSet<>();
-        excludeField.add("hireDate");
-        excludeField.add("salary");
-        // 写Excel
-        EasyExcel.write(filename, User.class)
-            .excludeColumnFiledNames(excludeField)
-            .sheet("用户信息")
-            .doWrite(getUserData());*/
-
-        // 方法2 自定义合并单元格策略
-        String fileName = "ResultViewing" + ExcelTypeEnum.XLSX.getValue();
-        // 每隔2行会合并 把eachColumn 设置成 3 也就是我们数据的长度,所以就第一列会合并。当然其他合并策略也可以自己写
-        LoopMergeStrategy loopMergeStrategy = new LoopMergeStrategy(evaluateManageItemNum, 0);
-        LoopMergeStrategy loopMergeStrategy1 = new LoopMergeStrategy(evaluateManageItemNum, 1);
-        LoopMergeStrategy loopMergeStrategy2 = new LoopMergeStrategy(evaluateManageItemNum, 2);
-        LoopMergeStrategy loopMergeStrategy3 = new LoopMergeStrategy(evaluateManageItemNum, 5);
-
-        EasyExcel.write(bot, ResultViewingExcelVo.class)
-                .automaticMergeHead(false)
-                .excelType(ExcelTypeEnum.XLSX)
-                .registerWriteHandler(loopMergeStrategy)
-                .registerWriteHandler(loopMergeStrategy1)
-                .registerWriteHandler(loopMergeStrategy2)
-                .registerWriteHandler(loopMergeStrategy3)
-                .sheet()
-                .doWrite(customerList);
-        return RT.fileStream(bot.toByteArray(), fileName);
+            return bot.toByteArray();
+        }catch (Exception e){
+            Log.error(e.getMessage(), e);
+            throw new MyException("导出报错,请联系管理员");
+        }
     }
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateResultIndexPageVo.java

@@ -51,4 +51,7 @@ public class EvaluateResultIndexPageVo {
     @ApiModelProperty("结束时间")
     private Date endTime;
 
+    @ApiModelProperty("状态(-1:未发布,1:进行中,0,暂停)")
+    private Integer status;
+
 }

+ 42 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/ResultViewingListVo.java

@@ -0,0 +1,42 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 评价项表单出参
+* @Author dzx
+* @Date: 2024年11月6日
+* @Version 1.0
+*/
+@Data
+public class ResultViewingListVo {
+
+    /**
+    * 具体被评的那个对象的id
+    */
+    @ApiModelProperty("答题结果id")
+    private Long id;
+    /**
+     * 具体被评的那个对象的id
+     */
+    @ApiModelProperty("具体被评的那个对象的id")
+    private Long objectId;
+
+    /**
+     * 题目项的id
+     */
+    @ApiModelProperty("题目项的id")
+    private Long evaluateManageItemId;
+    /**
+     * 题目名称
+     */
+    @ApiModelProperty("答题人")
+    private Long userId;
+    /**
+     * 单个被评对象的每一道题的平均得分
+     */
+    @ApiModelProperty("分数")
+    private Integer score;
+
+}

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

@@ -46,7 +46,7 @@ public class ResultViewingPageVo {
      * 单个被评对象的每一道题的平均得分
      */
     @ApiModelProperty("单个被评对象的每一道题的平均得分")
-    private Integer sumScore;
+    private String sumScore;
     /**
      * 标题名称
      */
@@ -56,11 +56,18 @@ public class ResultViewingPageVo {
      * 单个被评对象的每一道题的平均得分
      */
     @ApiModelProperty("单个被评对象的每个标题的平均得分")
-    private Integer topicScore;
+    private String topicScore;
     /**
      * 单个被评对象的每一道题的平均得分
      */
     @ApiModelProperty("单个被评对象的综合平均得分")
-    private Integer synthesisScore;
+    private String synthesisScore;
+
+    @ApiModelProperty("状态(2:已评分,0:未评分)")
+    private Integer status;
+
+    public double getScore() {
+        return Double.parseDouble(sumScore);
+    }
 
 }

+ 1 - 2
src/main/java/com/xjrsoft/module/personnel/controller/BasePersonnelLabourCapitalController.java

@@ -114,7 +114,7 @@ public class BasePersonnelLabourCapitalController {
     public RT<Boolean> add(@Valid @RequestBody AddBasePersonnelLabourCapitalDto dto){
         BasePersonnelLabourCapital basePersonnelLabourCapital = BeanUtil.toBean(dto, BasePersonnelLabourCapital.class);
         boolean isSuccess = basePersonnelLabourCapitalService.add(basePersonnelLabourCapital);
-    return RT.ok(isSuccess);
+        return RT.ok(isSuccess);
     }
 
     @PutMapping
@@ -132,7 +132,6 @@ public class BasePersonnelLabourCapitalController {
     @SaCheckPermission("basepersonnellabourcapital:delete")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
         return RT.ok(basePersonnelLabourCapitalService.delete(ids));
-
     }
     @PostMapping("/import")
     @ApiOperation(value = "导入")

+ 1 - 0
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -96,6 +96,7 @@
             left join xjr_dictionary_detail t8 on t8.code = t7.evaluate_type
         where t2.user_id = #{dto.loginUserId}
             and t.evaluate_manage_id = #{dto.evaluateManageId}
+            AND t3.object_id IS NOT NULL
             <if test="dto.status != null">
                 and t.status = #{dto.status}
             </if>

+ 9 - 1
src/main/resources/mapper/evaluate/EvaluateResultMapper.xml

@@ -11,7 +11,8 @@
         t4.name AS evaluateTypeCN,
         t.name,
         t.start_time,
-        t.end_time
+        t.end_time,
+        t.status
         FROM evaluate_manage t
         LEFT JOIN base_semester t1 ON (t1.id = t.base_semester_id)
         LEFT JOIN xjr_department t2 ON (t2.id = t.org_id)
@@ -201,4 +202,11 @@
         AND t3.month = #{dto.month}
         AND t4.evaluate_type = #{dto.evaluateType}
     </select>
+
+    <select id="getResultViewingList" resultType="com.xjrsoft.module.evaluate.vo.ResultViewingListVo">
+        SELECT t1.id,t2.object_id,t3.id as evaluate_manage_item_id,t1.score,t1.user_id FROM evaluate_result t1
+        INNER JOIN evaluate_object t2 ON t1.evaluated_object_id = t2.id
+        INNER JOIN evaluate_manage_item t3 ON t3.id = t1.evaluate_item_id
+        WHERE t3.evaluate_manage_id = #{evaluateManageId}
+    </select>
 </mapper>