Kaynağa Gözat

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

dzx 1 yıl önce
ebeveyn
işleme
f260fb0509

+ 10 - 26
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateWriteController.java

@@ -7,21 +7,15 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.evaluate.dto.EvaluateResultSaveDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
+import com.xjrsoft.module.evaluate.dto.MobileIndexPageDto;
+import com.xjrsoft.module.evaluate.dto.MobileResultPageDto;
 import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
 import com.xjrsoft.module.evaluate.service.IEvaluateResultService;
-import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
+import com.xjrsoft.module.evaluate.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -43,33 +37,23 @@ public class EvaluateWriteController {
 
     private final IEvaluateResultService evaluateResultService;
 
-    @GetMapping(value = "/page")
-    @ApiOperation(value="评价管理列表(分页)")
-    @SaCheckPermission("evaluatemanage:detail")
-    public RT<PageOutput<EvaluateWritePageVo>> page(@Valid EvaluateWritePageDto dto){
-        dto.setLoginUserId(StpUtil.getLoginIdAsLong());
-        Page<EvaluateWritePageVo> page = evaluateManageService.getMobilePage(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        PageOutput<EvaluateWritePageVo> pageOutput = ConventPage.getPageOutput(page, EvaluateWritePageVo.class);
-        return RT.ok(pageOutput);
-    }
-
     @GetMapping(value = "/index-page")
     @ApiOperation(value="评价管理首页列表(分页)")
     @SaCheckPermission("evaluatemanage:detail")
-    public RT<PageOutput<EvaluateWritePageVo>> indexPage(@Valid EvaluateWritePageDto dto){
+    public RT<PageOutput<MobileIndexPageVo>> indexPage(@Valid MobileIndexPageDto dto){
         dto.setLoginUserId(StpUtil.getLoginIdAsLong());
-        Page<EvaluateWritePageVo> page = evaluateManageService.getMobileIndexPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        PageOutput<EvaluateWritePageVo> pageOutput = ConventPage.getPageOutput(page, EvaluateWritePageVo.class);
+        Page<MobileIndexPageVo> page = evaluateManageService.getMobileIndexPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<MobileIndexPageVo> pageOutput = ConventPage.getPageOutput(page, MobileIndexPageVo.class);
         return RT.ok(pageOutput);
     }
 
     @GetMapping(value = "/result-page")
     @ApiOperation(value="评价结果页列表(分页)")
     @SaCheckPermission("evaluatemanage:detail")
-    public RT<PageOutput<EvaluateWritePageVo>> resultPage(@Valid EvaluateWritePageDto dto){
+    public RT<PageOutput<MobileResultPageVo>> resultPage(@Valid MobileResultPageDto dto){
         dto.setLoginUserId(StpUtil.getLoginIdAsLong());
-        Page<EvaluateWritePageVo> page = evaluateManageService.getMobileIndexPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
-        PageOutput<EvaluateWritePageVo> pageOutput = ConventPage.getPageOutput(page, EvaluateWritePageVo.class);
+        Page<MobileResultPageVo> page = evaluateManageService.getMobileResultPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<MobileResultPageVo> pageOutput = ConventPage.getPageOutput(page, MobileResultPageVo.class);
         return RT.ok(pageOutput);
     }
 

+ 4 - 1
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateManageScoreDto.java

@@ -22,7 +22,7 @@ public class EvaluateManageScoreDto implements Serializable {
     * 评价管理编号
     */
     @ApiModelProperty("评价管理编号")
-    private List<Long> evaluateManageIdList;
+    private Long evaluateManageId;
 
     /**
      * 被评对象编号
@@ -35,4 +35,7 @@ public class EvaluateManageScoreDto implements Serializable {
      */
     @ApiModelProperty("当前登录用户id")
     private Long userId;
+
+    @ApiModelProperty(value = "评价类型")
+    private String evaluateType;
 }

+ 12 - 1
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateWritePageDto.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 
 /**
 * @title: 评价结果分页查询入参
@@ -16,9 +18,18 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class EvaluateWritePageDto extends PageInput {
 
-    @ApiModelProperty("状态(1:已评分,0:未评分)")
+    @ApiModelProperty("评分状态(1:已评分,0:未评分, null:全部)")
     private Integer status;
 
     @ApiModelProperty(value = "登录者id(前端不传,后端传)", hidden = true)
     private Long loginUserId;
+
+    @ApiModelProperty(value = "评价管理id", required = true)
+    private Long evaluateManageId;
+
+    @ApiModelProperty(value = "评价类型", required = true)
+    private String evaluateType;
+
+    @ApiModelProperty(value = "评价对象id集合", hidden = true)
+    private List<Long> evaluateObjectIdList;
 }

+ 24 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/MobileIndexPageDto.java

@@ -0,0 +1,24 @@
+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 MobileIndexPageDto extends PageInput {
+
+    @ApiModelProperty("评分状态(1:已评分,0:未评分, null:全部)")
+    private Integer status;
+
+    @ApiModelProperty(value = "登录者id(前端不传,后端传)", hidden = true)
+    private Long loginUserId;
+}

+ 37 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/MobileResultPageDto.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.evaluate.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+
+/**
+* @title: 评价结果分页查询入参
+* @Author szs
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class MobileResultPageDto extends MobileIndexPageDto {
+    @ApiModelProperty(value = "评价管理id", required = true)
+    private Long evaluateManageId;
+
+    @ApiModelProperty(value = "评价类型", required = true)
+    private String evaluateType;
+
+    @ApiModelProperty(value = "专业id")
+    private Long majorId;
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "评价对象id集合", hidden = true)
+    private List<Long> evaluateObjectIdList;
+}

+ 4 - 17
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateManageMapper.java

@@ -2,15 +2,9 @@ package com.xjrsoft.module.evaluate.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
-import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateManageScoreDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
+import com.xjrsoft.module.evaluate.dto.*;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
-import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
+import com.xjrsoft.module.evaluate.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -33,16 +27,9 @@ public interface EvaluateManageMapper extends MPJBaseMapper<EvaluateManage> {
      */
     Page<EvaluateManagePageVo> getPage(Page<EvaluateManagePageDto> page, EvaluateManagePageDto dto);
 
+    Page<MobileIndexPageVo> getMobileIndexPage(Page<EvaluateWritePageDto> page, MobileIndexPageDto dto);
 
-    /**
-     * 移动端分页查询
-     * @param page
-     * @param dto
-     * @return
-     */
-    Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto);
-
-    Page<EvaluateWritePageVo> getMobileIndexPage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto);
+    Page<MobileResultPageVo> getMobileResultPage(Page<EvaluateWritePageDto> page, MobileResultPageDto dto);
 
     EvaluateWriteVo getWriteInfo(Long id);
 

+ 5 - 7
src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateManageService.java

@@ -4,11 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
 import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
+import com.xjrsoft.module.evaluate.dto.MobileIndexPageDto;
+import com.xjrsoft.module.evaluate.dto.MobileResultPageDto;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
-import com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateManagePageVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo;
-import com.xjrsoft.module.evaluate.vo.EvaluateWriteVo;
+import com.xjrsoft.module.evaluate.vo.*;
 
 import java.util.List;
 
@@ -59,10 +58,9 @@ public interface IEvaluateManageService extends MPJBaseService<EvaluateManage> {
      */
     Boolean release(Long id);
 
+    Page<MobileIndexPageVo> getMobileIndexPage(Page<EvaluateWritePageDto> page, MobileIndexPageDto dto);
 
-    Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto);
-
-    Page<EvaluateWritePageVo> getMobileIndexPage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto);
+    Page<MobileResultPageVo> getMobileResultPage(Page<EvaluateWritePageDto> page, MobileResultPageDto dto);
 
     EvaluateWriteVo getWriteInfo(Long id);
 

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

@@ -98,8 +98,12 @@ public class EvaluateItemServiceImpl extends MPJBaseServiceImpl<EvaluateItemMapp
 
         List<EvaluateItemVo> evaluateItemVoList = this.selectJoinList(EvaluateItemVo.class, evaluateItemWrapper);
 
+//        Map<String, List<EvaluateItemVo>> groupedEvaluateItemVo = evaluateItemVoList.stream()
+//                .collect(Collectors.groupingBy(EvaluateItemVo::getTopic));
+
+        //需要按照存入数据库的顺序返回,所以只有自己写map,
         Map<String, List<EvaluateItemVo>> groupedEvaluateItemVo = evaluateItemVoList.stream()
-                .collect(Collectors.groupingBy(EvaluateItemVo::getTopic));
+                .collect(Collectors.groupingBy(EvaluateItemVo::getTopic, LinkedHashMap::new, Collectors.toList()));
 
         List<EvaluateItemGroupByTopicVo> evaluateItemGroupByTopicVoList = new ArrayList<>();
         groupedEvaluateItemVo.forEach((topic, group) -> {

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

@@ -6,10 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.EvaluateTypeEnum;
 import com.xjrsoft.common.exception.MyException;
-import com.xjrsoft.module.evaluate.dto.EvaluateManagePageDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateManageScoreDto;
-import com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto;
+import com.xjrsoft.module.evaluate.dto.*;
 import com.xjrsoft.module.evaluate.entity.*;
 import com.xjrsoft.module.evaluate.mapper.*;
 import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
@@ -18,7 +17,15 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.*;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -100,52 +107,61 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
         return true;
     }
 
+    public Page<MobileIndexPageVo> getMobileIndexPage(Page<EvaluateWritePageDto> page, MobileIndexPageDto dto) {
+        Page<MobileIndexPageVo> mobileIndexPage = evaluateManageMapper.getMobileIndexPage(page, dto);
+        return mobileIndexPage;
+    }
+
     @Override
-    public Page<EvaluateWritePageVo> getMobilePage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto) {
-        Page<EvaluateWritePageVo> mobilePage = evaluateManageMapper.getMobilePage(page, dto);
-        //获取所有评价管理下的所有的已评对象的得分
-        Map<String, Map<String, Integer>> scoreByManageIdAndObject = new HashMap<>();
-        if(dto != null && dto.getStatus() != null && dto.getStatus() == 1){
-            List<Long> evaluateManageIdList = new ArrayList<>();
+    public Page<MobileResultPageVo> getMobileResultPage(Page<EvaluateWritePageDto> page, MobileResultPageDto dto){
+        Page<MobileResultPageVo> mobileResultPage = evaluateManageMapper.getMobileResultPage(page, dto);
+        if(mobileResultPage.getRecords() != null){
+            //获取所有的记录的总分
+            //评价对象的id集合
             List<Long> evaluateObjectIdList = new ArrayList<>();
-            for (EvaluateWritePageVo record : mobilePage.getRecords()) {
-                evaluateManageIdList.add(Long.parseLong(record.getEvaluateManageId()));
-                evaluateObjectIdList.add(Long.parseLong(record.getEvaluateObjectId()));
+            for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
+                evaluateObjectIdList.add(Long.parseLong(mobileResultPageVo.getEvaluateObjectId()));
             }
+            //获取当前用户,当前评价管理下的所有被评对象的总分(学生评价班主任)或者是综合指数(教官评价班级)
+            List<EvaluateManageScoreVo> evaluateManageScoreVoList = evaluateManageMapper.getScoreList(new EvaluateManageScoreDto(){{
+                setEvaluateManageId(dto.getEvaluateManageId());
+                setEvaluateType(dto.getEvaluateType());
+                setEvaluateObjectIdList(evaluateObjectIdList);
+                setUserId(StpUtil.getLoginIdAsLong());
+            }});
+            Map<String, EvaluateManageScoreVo> scoreByObjectId = evaluateManageScoreVoList.stream()
+                    .collect(Collectors.toMap(EvaluateManageScoreVo::getEvaluateObjectId, Function.identity()));
+
+            //将对应的分数给到对应的人
+            for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
+                //评价类型是学生评价班主任
+                if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode())){
+                    mobileResultPageVo.setTotalScore((double)scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getTotalScore());
+                }
+                //评价类型是教官评级班级
+                if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())){
+                    ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
+                    String zonghezhishu = "totalScore/itemCount";
+                    int totalScore = scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getTotalScore();
+                    int itemCount = scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount();
+                    double res = 0;
+                    String newStr1 = zonghezhishu.replace("totalScore", ""+totalScore);
+                    String newStr2 = newStr1.replace("itemCount", ""+itemCount);
+                    try{
+                        res = (double)engine.eval(newStr2);
+                    }catch (ScriptException s){
 
-            if(evaluateManageIdList.size() > 0 && evaluateObjectIdList.size() > 0){
-                List<EvaluateManageScoreVo> scoreList = evaluateManageMapper.getScoreList(new EvaluateManageScoreDto(){{
-                    setEvaluateManageIdList(evaluateManageIdList);
-                    setEvaluateObjectIdList(evaluateObjectIdList);
-                    setUserId(StpUtil.getLoginIdAsLong());
-                }});
-
-                //将scoreList解析成map
-                Map<String, List<EvaluateManageScoreVo>> scoreByManageId = scoreList.stream()
-                        .collect(Collectors.groupingBy(EvaluateManageScoreVo::getEvaluateManageId));
-
-                for (Map.Entry<String, List<EvaluateManageScoreVo>> entry : scoreByManageId.entrySet()) {
-                    Map<String, Integer> scoreByObject = new HashMap<>();
-                    for (EvaluateManageScoreVo evaluateManageScoreVo : entry.getValue()) {
-                        scoreByObject.put(evaluateManageScoreVo.getEvaluateObjectId(), evaluateManageScoreVo.getScore());
                     }
-                    scoreByManageIdAndObject.put(entry.getKey(), scoreByObject);
+                    // 创建一个DecimalFormat对象,指定小数位数为两位
+                    DecimalFormat decimalFormat = new DecimalFormat("#.00");
+                    // 格式化double值为字符串
+                    String formattedNumber = decimalFormat.format(res);
+                    mobileResultPageVo.setTotalScore(Double.valueOf(formattedNumber));
                 }
+                mobileResultPageVo.setItemCount(scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
             }
         }
-
-        if(scoreByManageIdAndObject.size() > 0){
-            for (EvaluateWritePageVo record : mobilePage.getRecords()) {
-                record.setTotalScore(scoreByManageIdAndObject.get(record.getEvaluateManageId()).get(record.getEvaluateObjectId()));
-            }
-        }
-
-        return mobilePage;
-    }
-
-    public Page<EvaluateWritePageVo> getMobileIndexPage(Page<EvaluateWritePageDto> page, EvaluateWritePageDto dto) {
-        Page<EvaluateWritePageVo> mobilePage = evaluateManageMapper.getMobilePage(page, dto);
-        return mobilePage;
+        return mobileResultPage;
     }
 
     @Override

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

@@ -26,5 +26,10 @@ public class EvaluateManageScoreVo {
     * 题目分数(最小为0,只能整数)
     */
     @ApiModelProperty("题目分数(最小为0,只能整数)")
-    private Integer score;
+    private Integer totalScore;
+    /**
+     * 题目分数(最小为1,只能整数)
+     */
+    @ApiModelProperty("题目数量(最小为1,只能整数)")
+    private Integer itemCount;
 }

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

@@ -39,6 +39,16 @@ public class EvaluateWritePageVo {
      */
     @ApiModelProperty("参评对象编号")
     private String evaluateUserId;
+    /**
+     * 评价对象具体人或班级编号
+     */
+    @ApiModelProperty("参评对象具体人编号")
+    private String userId;
+    /**
+     * 评价对象具体人或班级编号
+     */
+    @ApiModelProperty("参评对象具体人编号")
+    private String userIdCN;
     /**
      * 评价类型-中文
      */
@@ -75,6 +85,9 @@ public class EvaluateWritePageVo {
     @ApiModelProperty("状态(-1:未发布,0:暂停,1:进行中,2:结束)")
     private Integer status;
 
-    @ApiModelProperty("状态(0:表示该用户所有都已经评价)")
+    @ApiModelProperty("评价状态(0:未评价,1:已评价)")
+    private Integer evaluateStatus;
+
+    @ApiModelProperty("状态(0:表示该用户所有需要评价的都已经评价)")
     private Integer ratedCount;
 }

+ 40 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/MobileIndexPageVo.java

@@ -0,0 +1,40 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 评价管理分页列表出参
+* @Author dzx
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+public class MobileIndexPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("评价管理编号")
+    private String evaluateManageId;
+    /**
+     * 评价类型-中文
+     */
+    @ApiModelProperty("评价类型")
+    private String evaluateType;
+    /**
+    * 评价类型-中文
+    */
+    @ApiModelProperty("评价类型-中文")
+    private String evaluateTypeCN;
+    /**
+    * 评价名称
+    */
+    @ApiModelProperty("评价名称")
+    private String name;
+    /**
+     * 登录用户整个评价管理的已经评价对象的数量(0:表示该用户所有需要评价的对象都已经评价)
+     */
+    @ApiModelProperty("登录用户整个评价管理的已经评价对象的数量(0:表示该用户所有需要评价的对象都已经评价)")
+    private Integer ratedCount;
+}

+ 86 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/MobileResultPageVo.java

@@ -0,0 +1,86 @@
+package com.xjrsoft.module.evaluate.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+* @title: 评价管理分页列表出参
+* @Author dzx
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+public class MobileResultPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("评价管理编号")
+    private String evaluateManageId;
+    /**
+     * 评价名称
+     */
+    @ApiModelProperty("评价名称")
+    private String name;
+    /**
+     * 评价对象编号
+     */
+    @ApiModelProperty("评价对象编号")
+    private String evaluateObjectId;
+    /**
+     * 评价对象具体人或班级编号
+     */
+    @ApiModelProperty("评价对象具体人或班级编号")
+    private String objectId;
+    /**
+     * 评价对象具体人或班级编号
+     */
+    @ApiModelProperty("评价对象具体人或班级编号")
+    private String objectIdCN;
+    /**
+     * 参评对象编号
+     */
+    @ApiModelProperty("参评对象编号")
+    private String evaluateUserId;
+    /**
+     * 评价对象具体人或班级编号
+     */
+    @ApiModelProperty("参评对象具体人编号")
+    private String userId;
+    /**
+     * 评价对象具体人或班级编号
+     */
+    @ApiModelProperty("参评对象具体人编号")
+    private String userIdCN;
+    /**
+     * 评价类型
+     */
+    @ApiModelProperty("评价类型")
+    private String evaluateType;
+    /**
+    * 评价类型-中文
+    */
+    @ApiModelProperty("评价类型-中文")
+    private String evaluateTypeCN;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+
+    @ApiModelProperty("题目数量")
+    private Integer itemCount;
+
+    @ApiModelProperty("总分")
+    private Double totalScore;
+
+    @ApiModelProperty("评价状态(0:未评价,1:已评价)")
+    private Integer evaluateStatus;
+}

+ 45 - 34
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -36,38 +36,12 @@
 
     <select id="getList" parameterType="com.xjrsoft.module.room.dto.RoomPageDto" resultType="com.xjrsoft.module.room.vo.RoomExcelVo">
     </select>
+
     <select id="getMaxSortCode" resultType="java.lang.Integer">
         SELECT IFNULL(MAX(sort_code),1) FROM evaluate_manage WHERE delete_mark = 0
     </select>
 
-    <select id="getMobilePage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo">
-        select
-            t.id as evaluateObjectId,
-            t.object_id as objectId,
-            ifnull(t5.name, t6.name) as objectIdCN,
-            t1.id as evaluateManageId,
-            t1.name,
-            t4.name AS evaluate_type_cn,
-            t1.start_time,
-            t1.end_time,
-            t1.status,
-            t3.id as evaluateUserId,
-            (SELECT COUNT(id) FROM evaluate_manage_item a WHERE a.delete_mark = 0 AND a.evaluate_manage_id = t.evaluate_manage_id) AS item_count
-        from evaluate_object t
-                 left join evaluate_manage t1 on t1.id = t.evaluate_manage_id
-                 left join evaluate_template t2 on t2.id = t1.evaluate_template_id
-                 left join evaluate_executer t3 on t3.evaluate_object_id = t.id
-                 left join xjr_dictionary_detail t4 on t4.code = t2.evaluate_type
-                 left join xjr_user t5 on t5.id = t.object_id
-                 left join base_class t6 on t6.id = t.object_id
-        where t.delete_mark = 0
-          and t3.delete_mark = 0
-          and t1.status = 1
-          and t3.status = #{dto.status}
-          and t3.user_id = #{dto.loginUserId}
-    </select>
-
-    <select id="getMobileIndexPage" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateWritePageVo">
+    <select id="getMobileIndexPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileIndexPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileIndexPageVo">
         select
             t.id as evaluateManageId,
             t.name,
@@ -90,6 +64,46 @@
           and t3.user_id = #{dto.loginUserId}
     </select>
 
+    <select id="getMobileResultPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileResultPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileResultPageVo">
+        select
+            t1.id as evaluateManageId,
+            t1.name,
+            t.id as evaluateObjectId,
+            t.object_id as objectId,
+            ifnull(t5.name, t6.name) as objectIdCN,
+            t3.id as evaluateUserId,
+            t3.user_id as userId,
+            t7.name as userIdCN,
+            t2.evaluate_type as evaluateType,
+            t4.name as evaluateTypeCN,
+            t1.start_time,
+            t1.end_time,
+            t3.status as evaluateStatus
+        from evaluate_object t
+                 left join evaluate_manage t1 on t1.id = t.evaluate_manage_id
+                 left join evaluate_template t2 on t2.id = t1.evaluate_template_id
+                 left join evaluate_executer t3 on t3.evaluate_object_id = t.id
+                 left join xjr_dictionary_detail t4 on t4.code = t2.evaluate_type
+                 left join xjr_user t5 on t5.id = t.object_id
+                 left join base_class t6 on t6.id = t.object_id
+                 left join xjr_user t7 on t7.id = t3.user_id
+        where t.delete_mark = 0
+          and t3.delete_mark = 0
+          and t1.status = 1
+          and t3.user_id = #{dto.loginUserId}
+          and t.evaluate_manage_id = #{dto.evaluateManageId}
+        <if test="dto.status != null">
+            and t3.status = #{dto.status}
+        </if>
+        <if test="dto.startTime != null and dto.startTime != ''">
+            and t1.start_time >= #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null and dto.startTime != ''">
+            and #{dto.endTime} >= t1.end_time
+        </if>
+        order by t3.status;
+    </select>
+
     <select id="getWriteInfo" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateWriteVo">
         select t1.id, t1.name,t2.total as sumScore,t1.start_time,t1.end_time,
                (SELECT COUNT(id) FROM evaluate_manage_item a WHERE t1.delete_mark = 0 AND a.evaluate_manage_id = t1.id) AS item_count
@@ -115,17 +129,14 @@
     <select id="getScoreList" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateManageScoreDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageScoreVo">
         select t.evaluate_manage_id,
                t.id as evaluateObjectId,
-               sum(t2.score) as score
+               sum(t2.score) as totalScore,
+               count(t2.score) as itemCount
         from evaluate_object t
                  left join evaluate_executer t1 on t1.evaluate_object_id = t.id
                  left join evaluate_result t2 on t2.user_id = t1.id
         where t.delete_mark = 0
           and t1.delete_mark = 0
-          and t.evaluate_manage_id in
-            <foreach item="evaluateManageId" index="index" collection="dto.evaluateManageIdList" open="(" close=")"
-                     separator=",">
-                #{evaluateManageId}
-            </foreach>
+          and t.evaluate_manage_id = #{dto.evaluateManageId}
           and t.id in
             <foreach item="evaluateObjectId" index="index" collection="dto.evaluateObjectIdList" open="(" close=")"
                      separator=",">

+ 8 - 0
src/main/resources/mapper/oa/NewsMapper.xml

@@ -22,6 +22,10 @@
         <if test="dto.loginId != null and dto.loginId > 0">
             and t.create_user_id = #{dto.loginId}
         </if>
+        <if test="dto.keyword != null and dto.keyword != ''">
+            and (t.full_head LIKE CONCAT('%',#{dto.keyword},'%')
+            or t.news_content LIKE CONCAT('%',#{dto.keyword},'%'))
+        </if>
         order by t.release_time desc
     </select>
 
@@ -45,6 +49,10 @@
         <if test="dto.fullHead != null and dto.fullHead != ''">
             and t.full_head LIKE CONCAT('%',#{dto.fullHead},'%')
         </if>
+        <if test="dto.keyword != null and dto.keyword != ''">
+            and (t.full_head LIKE CONCAT('%',#{dto.keyword},'%')
+                or t.news_content LIKE CONCAT('%',#{dto.keyword},'%'))
+        </if>
         order by
         t.release_time desc
     </select>

+ 14 - 0
src/test/java/com/xjrsoft/xjrsoftboot/StrTest.java

@@ -9,6 +9,9 @@ import com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo;
 import lombok.Data;
 import org.junit.jupiter.api.Test;
 
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
 import javax.sql.DataSource;
 import java.sql.SQLException;
 import java.text.ParseException;
@@ -209,4 +212,15 @@ public class StrTest {
         List<EvaluateExecuterVo> executerList = new ArrayList<>();
         System.err.println(executerList.size());
     }
+
+    @Test
+    public void evalTest() throws ScriptException {
+        ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
+        int totalScore = 5;
+        int itemCount = 3;
+        String zonghezhishu = "totalScore/itemCount";
+        String newStr = zonghezhishu.replace("totalScore",""+totalScore);
+        //double t = (double)engine.eval(zonghezhishu);
+        System.err.println(newStr);
+    }
 }