Bladeren bron

评价结果结果查看接口

phoenix 1 jaar geleden
bovenliggende
commit
80259eff9b

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

@@ -8,10 +8,12 @@ import com.xjrsoft.common.page.PageOutput;
 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.ResultViewingPageDto;
 import com.xjrsoft.module.evaluate.service.IEvaluateResultService;
 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.ResultViewingPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -55,10 +57,19 @@ public class EvaluateResultController {
     }
 
     @GetMapping(value = "/detail-page-detail")
-    @ApiOperation(value="评价结果详情查看列表的详情(分页)")
+    @ApiOperation(value="评价结果详情查看列表的详情")
     @SaCheckPermission("evaluateresult:detail")
     public RT<EvaluateResultDetailPageDetailVo> detailPageDetail(@Valid EvaluateResultDetailPageDetailDto dto){
         EvaluateResultDetailPageDetailVo evaluateResultDetailPageDetailVo = evaluateResultService.getDetailPageDetail(dto);
         return RT.ok(evaluateResultDetailPageDetailVo);
     }
+
+    @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);
+    }
 }

+ 23 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/ResultViewingPageDto.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.evaluate.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 评价结果分页查询入参
+* @Author szs
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ResultViewingPageDto extends PageInput {
+    /**
+     * 评价管理主键编号
+     */
+    @ApiModelProperty(value = "评价管理主键编号",required = true)
+    private Long evaluateManageId;
+}

+ 8 - 10
src/main/java/com/xjrsoft/module/evaluate/entity/EvaluateExecuter.java

@@ -1,19 +1,11 @@
 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;
 
 
@@ -94,5 +86,11 @@ public class EvaluateExecuter implements Serializable {
     @ApiModelProperty("参加评价的人id")
     private Long userId;
 
+    /**
+     * 状态(1:已评分,0:未评分)
+     */
+    @ApiModelProperty("状态(1:已评分,0:未评分)")
+    private Integer status;
+
 
 }

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

@@ -5,10 +5,12 @@ import com.github.yulichang.base.MPJBaseService;
 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.ResultViewingPageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateResult;
 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.ResultViewingPageVo;
 
 /**
 * @title: 评价结果
@@ -23,4 +25,6 @@ public interface IEvaluateResultService extends MPJBaseService<EvaluateResult> {
     IPage<EvaluateResultDetailPageVo> getDetailPage(EvaluateResultDetailPageDto dto);
 
     EvaluateResultDetailPageDetailVo getDetailPageDetail(EvaluateResultDetailPageDetailDto dto);
+
+    IPage<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto);
 }

+ 66 - 4
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

@@ -11,10 +11,9 @@ 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.dto.ResultViewingPageDto;
 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.mapper.*;
 import com.xjrsoft.module.evaluate.service.IEvaluateResultService;
 import com.xjrsoft.module.evaluate.vo.*;
 import com.xjrsoft.module.organization.entity.Department;
@@ -41,6 +40,10 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
 
     private EvaluateManageMapper evaluateManageMapper;
 
+    private EvaluateObjectMapper evaluateObjectMapper;
+
+    private EvaluateExecuterMapper evaluateExecuterMapper;
+
     private XjrUserMapper xjrUserMapper;
 
     private BaseClassMapper baseClassMapper;
@@ -131,7 +134,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
         MPJLambdaWrapper<EvaluateManageItem> evaluateManageItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
         evaluateManageItemMPJLambdaWrapper
                 .select(EvaluateManageItem::getId)
-                .selectAs(EvaluateResult::getScore, EvaluateManageItemVo::getActulScore)
+                .selectAs(EvaluateResult::getScore, EvaluateManageItemVo::getActualScore)
                 .selectAs(EvaluateResult::getOpinion, EvaluateManageItemVo::getOpinion)
                 .select(EvaluateManageItem.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageItemVo.class).contains(x.getProperty()))
                 .leftJoin(EvaluateResult.class, EvaluateResult::getEvaluateItemId, EvaluateManageItem::getEvaluateItemId)
@@ -153,4 +156,63 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
 
         return evaluateResultDetailPageDetailVo;
     }
+
+    @Override
+    public IPage<ResultViewingPageVo> pageResultViewing(ResultViewingPageDto dto) {
+        //根据评价管理id获取该评价下按被评人分组的分页数据
+        MPJLambdaWrapper<EvaluateObject> evaluateObjectMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        evaluateObjectMPJLambdaWrapper
+                .selectAs(EvaluateObject::getObjectId, ResultViewingPageVo::getObjectId)
+                .selectAs(EvaluateObject::getObjectType, ResultViewingPageVo::getObjectType)
+                .eq(EvaluateObject::getEvaluateManageId, dto.getEvaluateManageId());
+
+        IPage<ResultViewingPageVo> resultViewingPageVoIPage = evaluateObjectMapper.selectJoinPage(ConventPage.getPage(dto), ResultViewingPageVo.class, evaluateObjectMPJLambdaWrapper);
+        //遍历分页记录
+        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;
+    }
 }

+ 34 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/AllEvaluateManageItemByTopicVo.java

@@ -0,0 +1,34 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 评价项表单根据标题名称分组出参
+* @Author szs
+* @Date: 2024-01-15
+* @Version 1.0
+*/
+@Data
+public class AllEvaluateManageItemByTopicVo {
+
+    /**
+    * 标题名称
+    */
+    @ApiModelProperty("标题名称")
+    private String topic;
+
+    /**
+     * 标题总分
+     */
+    @ApiModelProperty("标题总分")
+    private Integer allTopicScore;
+
+    /**
+     * 评价项表单集合
+     */
+    @ApiModelProperty("评价项表单集合")
+    private List<AllEvaluateManageItemVo> allEvaluateManageItemVoList;
+}

+ 30 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/AllEvaluateManageItemVo.java

@@ -0,0 +1,30 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 评价项表单出参
+* @Author szs
+* @Date: 2024-01-15
+* @Version 1.0
+*/
+@Data
+public class AllEvaluateManageItemVo {
+
+    /**
+    * 题目名称
+    */
+    @ApiModelProperty("题目名称")
+    private String problem;
+    /**
+     * 题目名称
+     */
+    @ApiModelProperty("题目名称")
+    private String topic;
+    /**
+     * 实际总分数(最小为0,只能整数)
+     */
+    @ApiModelProperty("实际总分数(最小为0,只能整数)")
+    private Integer allActualScore;
+}

+ 1 - 1
src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManageItemVo.java

@@ -46,7 +46,7 @@ public class EvaluateManageItemVo {
      * 实际分数(最小为0,只能整数)
      */
     @ApiModelProperty("实际分数(最小为0,只能整数)")
-    private Integer actulScore;
+    private Integer actualScore;
     /**
     * 输入框是否为空
     */

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

@@ -0,0 +1,58 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 评价项表单出参
+* @Author szs
+* @Date: 2024-01-15
+* @Version 1.0
+*/
+@Data
+public class ResultViewingPageVo {
+
+    /**
+    * 被评对象id
+    */
+    @ApiModelProperty("被评对象id")
+    private Long evaluateObjectId;
+    /**
+     * 被评价对象类别
+     */
+    @ApiModelProperty("被评价对象类别")
+    private String objectType;
+    /**
+     * 具体被评价对象id
+     */
+    @ApiModelProperty("具体被评价对象id")
+    private Long objectId;
+    /**
+     * 具体被评价对象id
+     */
+    @ApiModelProperty("具体被评价对象id")
+    private String objectIdCN;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+     * 应打分人数
+     */
+    @ApiModelProperty("应打分人数")
+    private Integer planExecuterNum;
+    /**
+     * 实际打分人数
+     */
+    @ApiModelProperty("实际打分人数")
+    private Integer actualExecuterNum;
+
+    /**
+     * 评价项表单根据标题名称分组出参
+     */
+    @ApiModelProperty(value = "评价项表单根据标题名称分组出参")
+    private List<AllEvaluateManageItemByTopicVo> allEvaluateManageItemByTopicVoList;
+}