Переглянути джерело

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

dzx 1 рік тому
батько
коміт
2765e6c91a
19 змінених файлів з 343 додано та 83 видалено
  1. 24 4
      src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateManageController.java
  2. 12 5
      src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateWriteController.java
  3. 43 0
      src/main/java/com/xjrsoft/module/evaluate/dto/DrillEvaluateClassListDto.java
  4. 0 3
      src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateManageScoreDto.java
  5. 6 0
      src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateResultSaveDto.java
  6. 2 3
      src/main/java/com/xjrsoft/module/evaluate/dto/MobileIndexPageDto.java
  7. 6 7
      src/main/java/com/xjrsoft/module/evaluate/dto/MobileResultPageDto.java
  8. 32 0
      src/main/java/com/xjrsoft/module/evaluate/dto/ResultListDto.java
  9. 3 1
      src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateManageMapper.java
  10. 4 5
      src/main/java/com/xjrsoft/module/evaluate/service/IEvaluateManageService.java
  11. 47 37
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateManageServiceImpl.java
  12. 8 4
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java
  13. 83 0
      src/main/java/com/xjrsoft/module/evaluate/vo/DrillEvaluateClassListVo.java
  14. 1 1
      src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManagePageVo.java
  15. 4 1
      src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManageVo.java
  16. 1 1
      src/main/java/com/xjrsoft/module/evaluate/vo/MobileIndexPageVo.java
  17. 3 3
      src/main/java/com/xjrsoft/module/evaluate/vo/MobileResultPageVo.java
  18. 56 7
      src/main/resources/mapper/evaluate/EvaluateManageMapper.xml
  19. 8 1
      src/main/resources/mapper/evaluate/EvaluateTemplateMapper.xml

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

@@ -3,6 +3,7 @@ package com.xjrsoft.module.evaluate.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.model.result.RT;
@@ -60,17 +61,21 @@ public class EvaluateManageController {
     public RT<EvaluateManageVo> info(@RequestParam Long id){
         MPJLambdaWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new MPJLambdaWrapper<>();
         evaluateManageMPJLambdaWrapper
-                .selectAs(DictionaryDetail::getName, EvaluateManageVo::getCreateFrequencyCN)
+                .select(EvaluateManage::getId)
+                .selectAs(EvaluateManage::getSortCode, EvaluateManageVo::getSortCode)
+                .selectAs(EvaluateTemplate::getEvaluateType, EvaluateManageVo::getEvaluateType)
                 .select(EvaluateManage.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageVo.class).contains(x.getProperty()))
+                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, EvaluateManage::getCreateFrequency,ext->ext
+                        .selectAs(DictionaryDetail::getName,EvaluateManageVo::getCreateFrequencyCn))
+                .leftJoin(EvaluateTemplate.class, EvaluateTemplate::getId, EvaluateManage::getEvaluateTemplateId)
+                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, EvaluateTemplate::getEvaluateType,ext->ext
+                        .selectAs(DictionaryDetail::getName,EvaluateManageVo::getEvaluateTypeCn))
                 .eq(EvaluateManage::getId, id)
-                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, EvaluateManage::getCreateFrequency)
                 .disableSubLogicDel();
         EvaluateManageVo evaluateManageVo = evaluateManageService.selectJoinOne(EvaluateManageVo.class, evaluateManageMPJLambdaWrapper);
         if (evaluateManageVo == null) {
            return RT.error("找不到此数据!");
         }
-        EvaluateTemplate evaluateTemplate = evaluateTemplateService.getById(evaluateManageVo.getEvaluateTemplateId());
-        evaluateManageVo.setEvaluateType(evaluateTemplate.getEvaluateType());
         return RT.ok(evaluateManageVo);
     }
 
@@ -89,6 +94,14 @@ public class EvaluateManageController {
 
             return RT.ok(evaluateManageService.updateById(evaluateManage));
         }
+        if(dto.getStatus() == 2){
+            return RT.ok(evaluateManageService.updateById(new EvaluateManage(){{
+                setId(dto.getId());
+                setCreateDate(new Date());
+                setCreateUserId(StpUtil.getLoginIdAsLong());
+                setStatus(1);
+            }}));
+        }
 
         return RT.ok(true);
     }
@@ -101,6 +114,13 @@ public class EvaluateManageController {
         EvaluateManage evaluateManage = BeanUtil.toBean(dto, EvaluateManage.class);
         evaluateManage.setCreateDate(new Date());
         evaluateManage.setCreateUserId(StpUtil.getLoginIdAsLong());
+        //获取sortCode的最大数量
+        QueryWrapper<EvaluateManage> queryWrapperSortcode = new QueryWrapper<>();
+        queryWrapperSortcode.select("IFNULL(MAX(sort_code),0) as sortCode");
+        EvaluateManage e = evaluateManageService.getOne(queryWrapperSortcode);
+        int sortCode = e.getSortCode() + 1;
+        evaluateManage.setSortCode(sortCode);
+
         boolean isSuccess = evaluateManageService.add(evaluateManage);
         return RT.ok(isSuccess);
     }

+ 12 - 5
src/main/java/com/xjrsoft/module/evaluate/controller/EvaluateWriteController.java

@@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.MobileIndexPageDto;
-import com.xjrsoft.module.evaluate.dto.MobileResultPageDto;
+import com.xjrsoft.module.evaluate.dto.*;
 import com.xjrsoft.module.evaluate.service.IEvaluateManageService;
 import com.xjrsoft.module.evaluate.service.IEvaluateResultService;
 import com.xjrsoft.module.evaluate.vo.*;
@@ -57,6 +55,15 @@ public class EvaluateWriteController {
         return RT.ok(pageOutput);
     }
 
+    @GetMapping(value = "/drill-ev-class-list")
+    @ApiOperation(value="教官当天评价班级集合")
+    @SaCheckPermission("evaluatemanage:detail")
+    public RT<List<DrillEvaluateClassListVo>> drillEvClassList(@Valid DrillEvaluateClassListDto dto){
+        dto.setLoginUserId(StpUtil.getLoginIdAsLong());
+        List<DrillEvaluateClassListVo> list = evaluateManageService.getDrillEvaluateClassList(dto);
+        return RT.ok(list);
+    }
+
     @GetMapping(value = "/info")
     @ApiOperation(value="根据id查询评价项信息")
     @SaCheckPermission("evaluateitem:detail")
@@ -79,8 +86,8 @@ public class EvaluateWriteController {
     @GetMapping(value = "/result-list")
     @ApiOperation(value="评价结果列表")
     @SaCheckPermission("evaluatemanage:detail")
-    public RT<List<EvaluateManageItemVo>> resultList(@RequestParam Long id){
-        List<EvaluateManageItemVo> itemList = evaluateManageService.getResultList(id);
+    public RT<List<EvaluateManageItemVo>> resultList(@Valid ResultListDto dto){
+        List<EvaluateManageItemVo> itemList = evaluateManageService.getResultList(dto);
         return RT.ok(itemList);
     }
 

+ 43 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/DrillEvaluateClassListDto.java

@@ -0,0 +1,43 @@
+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 DrillEvaluateClassListDto extends MobileIndexPageDto {
+    @ApiModelProperty("评分状态(1:已评分,0:未评分, null:全部)")
+    private Integer status;
+
+    @ApiModelProperty(value = "评价管理id", required = true)
+    private Long evaluateManageId;
+
+    @ApiModelProperty(value = "评价类型")
+    private String evaluateType;
+
+    @ApiModelProperty(value = "专业id")
+    private Long majorId;
+
+    @ApiModelProperty(value = "楼栋id")
+    private Long officeBuildId;
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "评价对象id集合", hidden = true)
+    private List<Long> evaluateObjectIdList;
+}

+ 0 - 3
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateManageScoreDto.java

@@ -35,7 +35,4 @@ public class EvaluateManageScoreDto implements Serializable {
      */
     @ApiModelProperty("当前登录用户id")
     private Long userId;
-
-    @ApiModelProperty(value = "评价类型")
-    private String evaluateType;
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateResultSaveDto.java

@@ -22,6 +22,12 @@ public class EvaluateResultSaveDto implements Serializable {
     @ApiModelProperty(value = "评价管理主键编号",required = true)
     private Long evaluateManageId;
 
+    /**
+     * 评价管理主键编号
+     */
+    @ApiModelProperty(value = "评价对象主键编号",required = true)
+    private Long evaluateObjectId;
+
     @ApiModelProperty(value = "填写答案信息")
     private List<AddEvaluateResultDto> resultList;
 }

+ 2 - 3
src/main/java/com/xjrsoft/module/evaluate/dto/MobileIndexPageDto.java

@@ -15,9 +15,8 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class MobileIndexPageDto extends PageInput {
-
-    @ApiModelProperty("评分状态(1:已评分,0:未评分, null:全部)")
-    private Integer status;
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
 
     @ApiModelProperty(value = "登录者id(前端不传,后端传)", hidden = true)
     private Long loginUserId;

+ 6 - 7
src/main/java/com/xjrsoft/module/evaluate/dto/MobileResultPageDto.java

@@ -5,7 +5,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.time.LocalDateTime;
-import java.util.List;
 
 
 /**
@@ -17,21 +16,21 @@ import java.util.List;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class MobileResultPageDto extends MobileIndexPageDto {
+    @ApiModelProperty("评分状态(1:已评分,0:未评分, null:全部)")
+    private Integer status;
+
     @ApiModelProperty(value = "评价管理id", required = true)
     private Long evaluateManageId;
 
-    @ApiModelProperty(value = "评价类型", required = true)
+    @ApiModelProperty(value = "评价类型")
     private String evaluateType;
 
     @ApiModelProperty(value = "专业id")
     private Long majorId;
 
-    @ApiModelProperty("开始时间")
+    @ApiModelProperty(value = "开始时间", hidden = true)
     private LocalDateTime startTime;
 
-    @ApiModelProperty("结束时间")
+    @ApiModelProperty(value = "结束时间", hidden = true)
     private LocalDateTime endTime;
-
-    @ApiModelProperty(value = "评价对象id集合", hidden = true)
-    private List<Long> evaluateObjectIdList;
 }

+ 32 - 0
src/main/java/com/xjrsoft/module/evaluate/dto/ResultListDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.evaluate.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+* @title: 评价管理分页查询入参
+* @Author dzx
+* @Date: 2024-01-16
+* @Version 1.0
+*/
+@Data
+public class ResultListDto implements Serializable {
+
+    /**
+     * 评价管理主键编号
+     */
+    @ApiModelProperty(value = "评价管理主键编号",required = true)
+    private Long evaluateManageId;
+
+    /**
+     * 评价管理主键编号
+     */
+    @ApiModelProperty(value = "评价对象主键编号",required = true)
+    private Long evaluateObjectId;
+
+    @ApiModelProperty(value = "登录者id(前端不传,后端传)", hidden = true)
+    private Long loginUserId;
+}

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

@@ -31,12 +31,14 @@ public interface EvaluateManageMapper extends MPJBaseMapper<EvaluateManage> {
 
     Page<MobileResultPageVo> getMobileResultPage(Page<EvaluateWritePageDto> page, MobileResultPageDto dto);
 
+    List<DrillEvaluateClassListVo> getDrillEvaluateClassList(@Param("dto")DrillEvaluateClassListDto dto);
+
     EvaluateWriteVo getWriteInfo(Long id);
 
 
     List<EvaluateManageItemVo> getItemList(Long id);
 
-    List<EvaluateManageItemVo> getResultList(Long id, Long userId);
+    List<EvaluateManageItemVo> getResultList(@Param("dto")ResultListDto dto);
 
     List<EvaluateManageScoreVo> getScoreList(@Param("dto")EvaluateManageScoreDto dto);
 }

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

@@ -2,10 +2,7 @@ package com.xjrsoft.module.evaluate.service;
 
 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.dto.*;
 import com.xjrsoft.module.evaluate.entity.EvaluateManage;
 import com.xjrsoft.module.evaluate.vo.*;
 
@@ -62,10 +59,12 @@ public interface IEvaluateManageService extends MPJBaseService<EvaluateManage> {
 
     Page<MobileResultPageVo> getMobileResultPage(Page<EvaluateWritePageDto> page, MobileResultPageDto dto);
 
+    List<DrillEvaluateClassListVo> getDrillEvaluateClassList(DrillEvaluateClassListDto dto);
+
     EvaluateWriteVo getWriteInfo(Long id);
 
     //查询题目信息
     List<EvaluateManageItemVo> getItemList(Long id);
 
-    List<EvaluateManageItemVo> getResultList(Long id);
+    List<EvaluateManageItemVo> getResultList(ResultListDto dto);
 }

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

@@ -122,48 +122,57 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
             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(evaluateObjectIdList.size() > 0){
+                //获取当前用户,当前评价管理下的所有被评对象的总分(学生评价班主任)或者是综合指数(教官评价班级)
+                List<EvaluateManageScoreVo> evaluateManageScoreVoList = evaluateManageMapper.getScoreList(new EvaluateManageScoreDto(){{
+                    setEvaluateManageId(dto.getEvaluateManageId());
+                    setEvaluateObjectIdList(evaluateObjectIdList);
+                    setUserId(StpUtil.getLoginIdAsLong());
+                }});
+                Map<String, EvaluateManageScoreVo> scoreByObjectId = evaluateManageScoreVoList.stream()
+                        .collect(Collectors.toMap(EvaluateManageScoreVo::getEvaluateObjectId, Function.identity()));
+
+                if(scoreByObjectId.size() > 0){
+                    //将对应的分数给到对应的人
+                    for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
+                        //评价类型是学生评价班主任
+                        if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode()) && scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()) != null){
+                            mobileResultPageVo.setTotalScore((double)scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getTotalScore());
+                            mobileResultPageVo.setItemCount(scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
+                        }
+                        //评价类型是教官评级班级
+                        if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode()) && scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()) != null){
+                            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){
+
+                            }
+                            // 创建一个DecimalFormat对象,指定小数位数为两位
+                            DecimalFormat decimalFormat = new DecimalFormat("#.00");
+                            // 格式化double值为字符串
+                            String formattedNumber = decimalFormat.format(res);
+                            mobileResultPageVo.setTotalScore(Double.valueOf(formattedNumber));
+                            mobileResultPageVo.setItemCount(scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
+                        }
                     }
-                    // 创建一个DecimalFormat对象,指定小数位数为两位
-                    DecimalFormat decimalFormat = new DecimalFormat("#.00");
-                    // 格式化double值为字符串
-                    String formattedNumber = decimalFormat.format(res);
-                    mobileResultPageVo.setTotalScore(Double.valueOf(formattedNumber));
                 }
-                mobileResultPageVo.setItemCount(scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
             }
         }
         return mobileResultPage;
     }
 
+    @Override
+    public List<DrillEvaluateClassListVo> getDrillEvaluateClassList(DrillEvaluateClassListDto dto) {
+        return evaluateManageMapper.getDrillEvaluateClassList(dto);
+    }
+
     @Override
     public EvaluateWriteVo getWriteInfo(Long id) {
         return evaluateManageMapper.getWriteInfo(id);
@@ -175,8 +184,9 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
     }
 
     @Override
-    public List<EvaluateManageItemVo> getResultList(Long id) {
-        return evaluateManageMapper.getResultList(id, StpUtil.getLoginIdAsLong());
+    public List<EvaluateManageItemVo> getResultList(ResultListDto dto) {
+        dto.setLoginUserId(StpUtil.getLoginIdAsLong());
+        return evaluateManageMapper.getResultList(dto);
     }
 
 }

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

@@ -30,6 +30,7 @@ import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.io.ByteArrayOutputStream;
 import java.util.*;
@@ -260,6 +261,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
     }
 
     @Override
+    @Transactional
     public String saveBatch(EvaluateResultSaveDto dto) {
         Long loginUserId = StpUtil.getLoginIdAsLong();
         Date createDate = new Date();
@@ -268,11 +270,8 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
             new QueryWrapper<EvaluateExecuter>().lambda()
             .eq(EvaluateExecuter::getUserId, loginUserId)
             .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
+            .eq(EvaluateExecuter::getEvaluateObjectId, dto.getEvaluateObjectId())
         );
-        UpdateWrapper<EvaluateExecuter> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("id", executer.getId());
-        updateWrapper.setSql("status = 1");
-        evaluateExecuterMapper.update(executer, updateWrapper);
 
         List<AddEvaluateResultDto> resultList = dto.getResultList();
         for (AddEvaluateResultDto addEvaluateResultDto : resultList) {
@@ -286,6 +285,11 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
             evaluateResultMapper.insert(evaluateResult);
         }
 
+        UpdateWrapper<EvaluateExecuter> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", executer.getId());
+        updateWrapper.setSql("status = 1");
+        evaluateExecuterMapper.update(executer, updateWrapper);
+
         return "ok";
     }
 

+ 83 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/DrillEvaluateClassListVo.java

@@ -0,0 +1,83 @@
+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 DrillEvaluateClassListVo {
+
+    /**
+    * 主键编号
+    */
+    @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("评价状态(0:未评价,1:已评价)")
+    private Integer evaluateStatus;
+}

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

@@ -38,7 +38,7 @@ public class EvaluateManagePageVo {
     * 评价类型-中文
     */
     @ApiModelProperty("评价类型-中文")
-    private String evaluateTypeCN;
+    private String evaluateTypeCn;
     /**
     * 评价名称
     */

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

@@ -48,6 +48,9 @@ public class EvaluateManageVo {
 
     @ApiModelProperty("评价类型")
     private String evaluateType;
+
+    @ApiModelProperty("评价类型")
+    private String evaluateTypeCn;
     /**
     * 开始时间
     */
@@ -77,7 +80,7 @@ public class EvaluateManageVo {
      * 生成频率(xjr_dictionary_detail[create_frequency])
      */
     @ApiModelProperty("生成频率(xjr_dictionary_detail[create_frequency])")
-    private String createFrequencyCN;
+    private String createFrequencyCn;
     /**
     * evaluateObject
     */

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

@@ -26,7 +26,7 @@ public class MobileIndexPageVo {
     * 评价类型-中文
     */
     @ApiModelProperty("评价类型-中文")
-    private String evaluateTypeCN;
+    private String evaluateTypeCn;
     /**
     * 评价名称
     */

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

@@ -38,7 +38,7 @@ public class MobileResultPageVo {
      * 评价对象具体人或班级编号
      */
     @ApiModelProperty("评价对象具体人或班级编号")
-    private String objectIdCN;
+    private String objectIdCn;
     /**
      * 参评对象编号
      */
@@ -53,7 +53,7 @@ public class MobileResultPageVo {
      * 评价对象具体人或班级编号
      */
     @ApiModelProperty("参评对象具体人编号")
-    private String userIdCN;
+    private String userIdCn;
     /**
      * 评价类型
      */
@@ -63,7 +63,7 @@ public class MobileResultPageVo {
     * 评价类型-中文
     */
     @ApiModelProperty("评价类型-中文")
-    private String evaluateTypeCN;
+    private String evaluateTypeCn;
     /**
     * 开始时间
     */

+ 56 - 7
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -43,16 +43,19 @@
 
     <select id="getMobileIndexPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileIndexPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileIndexPageVo">
         select
+            distinct
             t.id as evaluateManageId,
             t.name,
             t2.evaluate_type,
-            t4.name as evaluateTypeCN,
+            t4.name as evaluateTypeCn,
             (select
                  count(tb3.status)
              from evaluate_manage tb1
                       left join evaluate_executer tb3 on tb3.evaluate_manage_id = tb1.id
              where tb1.delete_mark = 0
                and tb3.delete_mark = 0
+               and tb1.status &lt;&gt; -1
+               and tb3.status = 0
                and tb3.id = t3.id
                and tb1.id = t.id) as ratedCount
         from evaluate_manage t
@@ -61,7 +64,12 @@
                  left join xjr_dictionary_detail t4 on t4.code = t2.evaluate_type
         where t.delete_mark = 0
           and t3.delete_mark = 0
+          and t.status &lt;&gt; -1
           and t3.user_id = #{dto.loginUserId}
+        <if test="dto.keyword != null and dto.keyword != ''">
+            and (t.name like concat('%', #{dto.keyword}, '%')
+                or t4.name like concat('%', #{dto.keyword}, '%'))
+        </if>
     </select>
 
     <select id="getMobileResultPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileResultPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileResultPageVo">
@@ -70,12 +78,12 @@
             t1.name,
             t.id as evaluateObjectId,
             t.object_id as objectId,
-            ifnull(t5.name, t6.name) as objectIdCN,
+            ifnull(t5.name, t6.name) as objectIdCn,
             t3.id as evaluateUserId,
             t3.user_id as userId,
-            t7.name as userIdCN,
+            t7.name as userIdCn,
             t2.evaluate_type as evaluateType,
-            t4.name as evaluateTypeCN,
+            t4.name as evaluateTypeCn,
             t1.start_time,
             t1.end_time,
             t3.status as evaluateStatus
@@ -104,6 +112,46 @@
         order by t3.status;
     </select>
 
+    <select id="getDrillEvaluateClassList" parameterType="com.xjrsoft.module.evaluate.dto.DrillEvaluateClassListDto" resultType="com.xjrsoft.module.evaluate.vo.DrillEvaluateClassListVo">
+        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
+                 left join base_classroom t8 on t8.id = t6.classroom_id
+                 left join base_class_major_set t9 on t9.class_id = t6.id
+                 left join base_major_set t10 on t10.id = t9.major_set_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.majorId != null and dto.majorId > 0">
+            and t10.major_id = #{dto.majorId}
+        </if>
+        <if test="dto.officeBuildId != null and dto.officeBuildId > 0">
+            and t8.officeBuildId = #{dto.officeBuildId}
+        </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,14 +163,15 @@
     <select id="getItemList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
         SELECT * FROM evaluate_manage_item WHERE delete_mark = 0 AND evaluate_manage_id = #{id} ORDER BY sort_code
     </select>
-    <select id="getResultList" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
+    <select id="getResultList" parameterType="com.xjrsoft.module.evaluate.dto.ResultListDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateManageItemVo">
         SELECT t1.id,t1.sort_code,t1.evaluate_manage_id,t1.topic,t1.problem,t1.score,t2.score AS actualScore,t2.opinion,t1.input_not_null FROM evaluate_manage_item t1
         LEFT JOIN evaluate_result t2 ON t1.id = t2.evaluate_item_id
         LEFT JOIN evaluate_executer t3 ON t3.id = t2.user_id
         WHERE t1.delete_mark = 0
         AND t2.delete_mark = 0
-        AND t1.evaluate_manage_id = #{id}
-        AND t3.user_id = #{userId}
+        AND t1.evaluate_manage_id = #{dto.evaluateManageId}
+        AND t3.user_id = #{dto.loginUserId}
+        AND t3.evaluate_object_id = #{dto.evaluateObjectId}
         ORDER BY t1.sort_code
     </select>
 

+ 8 - 1
src/main/resources/mapper/evaluate/EvaluateTemplateMapper.xml

@@ -11,7 +11,14 @@
         left join xjr_dictionary_detail t2 on t.evaluate_type = t2.code and t2.item_id = 1746831039385366530
         WHERE t.delete_mark = 0
         <if test="dto.deptIds != null and dto.deptIds != ''">
-            AND t.dept_ids like concat('%',#{dto.deptIds},'%')
+            <choose>
+                <when test="dto.deptIds == 0">
+                    AND JSON_CONTAINS(t.dept_ids, JSON_ARRAY(0))
+                </when>
+                <otherwise>
+                    AND t.dept_ids like concat('%',#{dto.deptIds},'%')
+                </otherwise>
+            </choose>
         </if>
         <if test="dto.evaluateType != null and dto.evaluateType != ''">
             AND t.evaluate_type = #{dto.evaluateType}