Jelajahi Sumber

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

dzx 1 tahun lalu
induk
melakukan
cee7e95d01
24 mengubah file dengan 498 tambahan dan 264 penghapusan
  1. 5 16
      src/main/java/com/xjrsoft/module/evaluate/dto/DrillEvaluateClassListDto.java
  2. 1 1
      src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateManageScoreDto.java
  3. 3 11
      src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateResultSaveDto.java
  4. 4 16
      src/main/java/com/xjrsoft/module/evaluate/dto/ResultListDto.java
  5. 1 1
      src/main/java/com/xjrsoft/module/evaluate/entity/EvaluateResult.java
  6. 8 8
      src/main/java/com/xjrsoft/module/evaluate/entity/EvaluateSubmitRecord.java
  7. 2 0
      src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateManageMapper.java
  8. 0 1
      src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateSubmitRecordMapper.java
  9. 31 23
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateManageServiceImpl.java
  10. 12 0
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateObjectServiceImpl.java
  11. 29 72
      src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java
  12. 5 1
      src/main/java/com/xjrsoft/module/evaluate/vo/DrillEvaluateClassListVo.java
  13. 5 0
      src/main/java/com/xjrsoft/module/evaluate/vo/EvaluateManageScoreVo.java
  14. 5 1
      src/main/java/com/xjrsoft/module/evaluate/vo/MobileResultPageVo.java
  15. 8 4
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentAssessmentInspectionController.java
  16. 54 0
      src/main/java/com/xjrsoft/module/student/dto/CalssQuantitativeAssessmentPageDto.java
  17. 9 4
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentAssessmentInspectionService.java
  18. 6 0
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImpl.java
  19. 70 0
      src/main/java/com/xjrsoft/module/student/vo/CalssQuantitativeAssessmentPageVo.java
  20. 38 2
      src/main/java/com/xjrsoft/module/workflow/controller/WorkflowApproveRecordController.java
  21. 17 0
      src/main/java/com/xjrsoft/module/workflow/dto/ApproveRecordListDto.java
  22. 66 0
      src/main/java/com/xjrsoft/module/workflow/vo/WorkflowApproveRecordListVo.java
  23. 115 101
      src/main/resources/mapper/evaluate/EvaluateManageMapper.xml
  24. 4 2
      src/main/resources/sqlScript/20240125_sql.sql

+ 5 - 16
src/main/java/com/xjrsoft/module/evaluate/dto/DrillEvaluateClassListDto.java

@@ -4,9 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.time.LocalDateTime;
-import java.util.List;
-
 
 /**
 * @title: 评价结果分页查询入参
@@ -16,28 +13,20 @@ import java.util.List;
 */
 @Data
 @EqualsAndHashCode(callSuper = false)
-public class DrillEvaluateClassListDto extends MobileIndexPageDto {
-    @ApiModelProperty("评分状态(1:已评分,0:未评分, null:全部)")
-    private Integer status;
+public class DrillEvaluateClassListDto{
 
     @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 = "当天的日期", hidden = true)
+    private String todayDate;
 
-    @ApiModelProperty(value = "评价对象id集合", hidden = true)
-    private List<Long> evaluateObjectIdList;
+    @ApiModelProperty(value = "登录者id(前端不传,后端传)", hidden = true)
+    private Long loginUserId;
 }

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

@@ -28,7 +28,7 @@ public class EvaluateManageScoreDto implements Serializable {
      * 被评对象编号
      */
     @ApiModelProperty("被评对象编号")
-    private List<Long> evaluateObjectIdList;
+    private List<String> submitRecordIdList;
 
     /**
      * 当前登录用户id

+ 3 - 11
src/main/java/com/xjrsoft/module/evaluate/dto/EvaluateResultSaveDto.java

@@ -15,19 +15,11 @@ import java.util.List;
 */
 @Data
 public class EvaluateResultSaveDto implements Serializable {
-
     /**
-     * 评价管理主键编号
+     * 评价提交记录id
      */
-    @ApiModelProperty(value = "评价管理主键编号",required = true)
-    private Long evaluateManageId;
-
-    /**
-     * 评价管理主键编号
-     */
-    @ApiModelProperty(value = "评价对象主键编号",required = true)
-    private Long evaluateObjectId;
-
+    @ApiModelProperty("评价提交记录id")
+    private String evaluateSubmitRecordId;
     /**
      * 评价类型
      */

+ 4 - 16
src/main/java/com/xjrsoft/module/evaluate/dto/ResultListDto.java

@@ -3,8 +3,6 @@ package com.xjrsoft.module.evaluate.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.io.Serializable;
-
 
 /**
 * @title: 评价管理分页查询入参
@@ -13,20 +11,10 @@ import java.io.Serializable;
 * @Version 1.0
 */
 @Data
-public class ResultListDto implements Serializable {
-
-    /**
-     * 评价管理主键编号
-     */
-    @ApiModelProperty(value = "评价管理主键编号",required = true)
-    private Long evaluateManageId;
-
+public class ResultListDto {
     /**
-     * 评价管理主键编号
+     * 评价提交记录id
      */
-    @ApiModelProperty(value = "评价对象主键编号",required = true)
-    private Long evaluateObjectId;
-
-    @ApiModelProperty(value = "登录者id(前端不传,后端传)", hidden = true)
-    private Long loginUserId;
+    @ApiModelProperty("评价提交记录id")
+    private String evaluateSubmitRecordId;
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/evaluate/entity/EvaluateResult.java

@@ -99,5 +99,5 @@ public class EvaluateResult implements Serializable {
      * 提交记录主键编号
      */
     @ApiModelProperty("提交记录主键编号")
-    private Long submitRecordId;
+    private String submitRecordId;
 }

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

@@ -2,18 +2,13 @@ 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.TableName;
 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;
 
 
@@ -35,7 +30,7 @@ public class EvaluateSubmitRecord implements Serializable {
     */
     @ApiModelProperty("")
     @TableId
-    private Long id;
+    private String id;
     /**
     * 评价管理编号
     */
@@ -63,5 +58,10 @@ public class EvaluateSubmitRecord implements Serializable {
     @ApiModelProperty("被评对象编号")
     private Long evaluatedObjectId;
 
+    /**
+     * 该条评价记录
+     */
+    @ApiModelProperty("该条评价记录")
+    private Integer status;
 
 }

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

@@ -41,4 +41,6 @@ public interface EvaluateManageMapper extends MPJBaseMapper<EvaluateManage> {
     List<EvaluateManageItemVo> getResultList(@Param("dto")ResultListDto dto);
 
     List<EvaluateManageScoreVo> getScoreList(@Param("dto")EvaluateManageScoreDto dto);
+
+    Boolean insertEvaluateSubmitRecord(@Param("evaluateManageId") Long evaluateManageId);
 }

+ 0 - 1
src/main/java/com/xjrsoft/module/evaluate/mapper/EvaluateSubmitRecordMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.evaluate.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.evaluate.entity.EvaluateSubmitRecord;
 import org.apache.ibatis.annotations.Mapper;

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

@@ -21,6 +21,7 @@ import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 import javax.script.ScriptException;
 import java.text.DecimalFormat;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -77,6 +78,7 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
     }
 
     @Override
+    @Transactional
     public Boolean release(Long id) {
         EvaluateManage evaluateManage = evaluateManageMapper.selectById(id);
         if(evaluateManage == null){
@@ -84,12 +86,12 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
         }
 //        evaluateManageItemMapper.cloneItems(evaluateManage.getEvaluateTemplateId(), evaluateManage.getId(), StpUtil.getLoginIdAsLong());
 
-        List<EvaluateManageItem> evaluateManageItemList = evaluateManageItemMapper.selectList(
+        Long count = evaluateManageItemMapper.selectCount(
                 new QueryWrapper<EvaluateManageItem>().lambda()
                         .eq(EvaluateManageItem::getEvaluateManageId, id)
         );
 
-        if(evaluateManageItemList.size() <= 0){
+        if(count <= 0){
             //查询模板中的评价项
             List<EvaluateItem> evaluateItemList = evaluateItemMapper.selectList(
                     new QueryWrapper<EvaluateItem>().lambda()
@@ -107,6 +109,9 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
             }
         }
 
+        //添加评价提交记录
+        evaluateManageMapper.insertEvaluateSubmitRecord(id);
+
         //将评价管理状态改为进行中
         evaluateManage.setStatus(1);
         evaluateManage.setModifyDate(new Date());
@@ -125,36 +130,38 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
     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<>();
+            //获取已经评价记录的评价总分
+            //评价提交记录的id集合
+            List<String> submitRecordIdList = new ArrayList<>();
             for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
-                evaluateObjectIdList.add(Long.parseLong(mobileResultPageVo.getEvaluateObjectId()));
+                if(mobileResultPageVo.getEvaluateStatus() == 1){
+                    submitRecordIdList.add(mobileResultPageVo.getEvaluateSubmitRecordId());
+                }
             }
-            if(evaluateObjectIdList.size() > 0){
-                //获取当前用户,当前评价管理下的所有评对象的总分(学生评价班主任)或者是综合指数(教官评价班级)
+            if(submitRecordIdList.size() > 0){
+                //获取当前用户,当前评价管理下的所有评对象的总分(学生评价班主任)或者是综合指数(教官评价班级)
                 List<EvaluateManageScoreVo> evaluateManageScoreVoList = evaluateManageMapper.getScoreList(new EvaluateManageScoreDto(){{
-                    setEvaluateManageId(dto.getEvaluateManageId());
-                    setEvaluateObjectIdList(evaluateObjectIdList);
-                    setUserId(StpUtil.getLoginIdAsLong());
+                    setSubmitRecordIdList(submitRecordIdList);
                 }});
-                Map<String, EvaluateManageScoreVo> scoreByObjectId = evaluateManageScoreVoList.stream()
-                        .collect(Collectors.toMap(EvaluateManageScoreVo::getEvaluateObjectId, Function.identity()));
 
-                if(scoreByObjectId.size() > 0){
-                    //将对应的分数给到对应的人
+                if(evaluateManageScoreVoList.size() > 0){
+                    Map<String, EvaluateManageScoreVo> scoreBySubmitRecordId = evaluateManageScoreVoList.stream()
+                            .collect(Collectors.toMap(EvaluateManageScoreVo::getSubmitRecordId, Function.identity()));
+
+                    //将对应的分数给到对应的记录
                     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.STUDENT_EVALUATE_HEAD_TEACHER.getCode()) && scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()) != null){
+                            mobileResultPageVo.setTotalScore((double)scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getTotalScore());
+                            mobileResultPageVo.setItemCount(scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
                         }
+
                         //评价类型是教官评级班级
-                        if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode()) && scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()) != null){
+                        if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode()) && scoreBySubmitRecordId.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();
+                            int totalScore = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getTotalScore();
+                            int itemCount = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount();
                             double res = 0;
                             String newStr1 = zonghezhishu.replace("totalScore", ""+totalScore);
                             String newStr2 = newStr1.replace("itemCount", ""+itemCount);
@@ -168,7 +175,7 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
                             // 格式化double值为字符串
                             String formattedNumber = decimalFormat.format(res);
                             mobileResultPageVo.setTotalScore(Double.valueOf(formattedNumber));
-                            mobileResultPageVo.setItemCount(scoreByObjectId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
+                            mobileResultPageVo.setItemCount(scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
                         }
                     }
                 }
@@ -179,6 +186,8 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
 
     @Override
     public List<DrillEvaluateClassListVo> getDrillEvaluateClassList(DrillEvaluateClassListDto dto) {
+        dto.setLoginUserId(StpUtil.getLoginIdAsLong());
+        dto.setTodayDate(LocalDate.now().toString());
         return evaluateManageMapper.getDrillEvaluateClassList(dto);
     }
 
@@ -194,7 +203,6 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
 
     @Override
     public List<EvaluateManageItemVo> getResultList(ResultListDto dto) {
-        dto.setLoginUserId(StpUtil.getLoginIdAsLong());
         return evaluateManageMapper.getResultList(dto);
     }
 

+ 12 - 0
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateObjectServiceImpl.java

@@ -118,9 +118,15 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
         if(evaluateManageVo == null){
            throw new MyException("未查询到信息,evaluateManageId不正确");
         }
+
+        if(evaluateManageVo.getStatus() != -1){
+            throw new MyException("改评价已经使用");
+        }
+
         //清空原有数据
         evaluateObjectMapper.deleteByEvaluateManageId(evaluateManageVo.getId());
         evaluateExecuterMapper.deleteByEvaluateManageId(evaluateManageVo.getId());
+
         //保存新数据
         Date createDate = new Date();
         long createUserId = StpUtil.getLoginIdAsLong();
@@ -136,6 +142,12 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
             evaluateObject.setCreateUserId(createUserId);
             evaluateObject.setEnabledMark(EnabledMark.ENABLED.getCode());
             evaluateObject.setBaseGradeId(Long.parseLong(objectDto.getGradeId()));
+            if(evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())){
+                evaluateObject.setObjectType("class");
+            }
+            if(evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode())){
+                evaluateObject.setObjectType("teacher");
+            }
             evaluateObjectMapper.insert(evaluateObject);
 
             for (AddEvaluateExecuterDto executerDto : objectDto.getExecuterList()) {

+ 29 - 72
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

@@ -1,21 +1,16 @@
 package com.xjrsoft.module.evaluate.service.impl;
 
-import cn.dev33.satoken.stp.StpUtil;
 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.conditions.update.UpdateWrapper;
 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.enums.EvaluateTypeEnum;
 import com.xjrsoft.common.model.result.RT;
 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.*;
 import com.xjrsoft.module.evaluate.entity.*;
@@ -29,7 +24,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.ByteArrayOutputStream;
-import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -264,90 +258,53 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
     @Override
     @Transactional
     public String saveBatch(EvaluateResultSaveDto dto) {
-        Long loginUserId = StpUtil.getLoginIdAsLong();
         Date createDate = new Date();
-        //获取当前评价管理的类型
-        MPJLambdaWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new MPJLambdaWrapper<>();
-        evaluateManageMPJLambdaWrapper
-                .selectAs(EvaluateTemplate::getEvaluateType, EvaluateManageVo::getEvaluateType)
-                .select(EvaluateManage.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageVo.class).contains(x.getProperty()))
-                .innerJoin(EvaluateTemplate.class, EvaluateTemplate::getId, EvaluateManage::getEvaluateTemplateId)
-                .eq(EvaluateManage::getId, dto.getEvaluateManageId())
-                .disableSubLogicDel();
-        EvaluateManageVo evaluateManageVo = evaluateManageMapper.selectJoinOne(EvaluateManageVo.class, evaluateManageMPJLambdaWrapper);
 
-        if(evaluateManageVo == null){
+        //获取当前评价管理的相关信息
+        MPJLambdaWrapper<EvaluateSubmitRecord> evaluateSubmitRecordMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        evaluateSubmitRecordMPJLambdaWrapper
+                .selectAs(EvaluateSubmitRecord::getId, MobileResultPageVo::getEvaluateSubmitRecordId)
+                .selectAs(EvaluateSubmitRecord::getEvaluateManageId, MobileResultPageVo::getEvaluateManageId)
+                .selectAs(EvaluateSubmitRecord::getEvaluatedObjectId, MobileResultPageVo::getEvaluateObjectId)
+                .selectAs(EvaluateSubmitRecord::getEvaluateExecuterId, MobileResultPageVo::getEvaluateUserId)
+                .selectAs(EvaluateSubmitRecord::getStatus, MobileResultPageVo::getEvaluateStatus)
+                .selectAs(EvaluateSubmitRecord::getEvaluatedObject, MobileResultPageVo::getEvaluateType)
+                .eq(EvaluateSubmitRecord::getId, dto.getEvaluateSubmitRecordId());
+        MobileResultPageVo mobileResultPageVo = evaluateSubmitRecordMapper.selectJoinOne(MobileResultPageVo.class, evaluateSubmitRecordMPJLambdaWrapper);
+
+        if(mobileResultPageVo == null){
             return "该评价已失效!";
         }
 
-        EvaluateExecuter executer = evaluateExecuterMapper.selectOne(
-            new QueryWrapper<EvaluateExecuter>().lambda()
-            .eq(EvaluateExecuter::getUserId, loginUserId)
-            .eq(EvaluateExecuter::getEvaluateManageId, dto.getEvaluateManageId())
-            .eq(EvaluateExecuter::getEvaluateObjectId, dto.getEvaluateObjectId())
-        );
-
-        if(executer == null){
-            return "该评价已失效!";
-        }
-
-        if(executer.getStatus() == 1){
+        if(mobileResultPageVo.getEvaluateStatus() == 1){
             return "已经评价,请勿重复评价";
         }
 
-        //当评价需要重复评价,判断今天是否已经评价
-        if(evaluateManageVo.getIsAutoCreate() == 1){
-            //查询参评人提交记录
-            EvaluateSubmitRecord oldEvaluateSubmitRecord = evaluateSubmitRecordMapper.selectOne(
-                    new QueryWrapper<EvaluateSubmitRecord>().lambda()
-                            .eq(EvaluateSubmitRecord::getEvaluateManageId, dto.getEvaluateManageId())
-                            .eq(EvaluateSubmitRecord::getEvaluatedObjectId, dto.getEvaluateObjectId())
-                            .eq(EvaluateSubmitRecord::getEvaluateExecuterId, executer.getId())
-                            .like(EvaluateSubmitRecord::getCreateDate, LocalDate.now())
-            );
-
-            if(oldEvaluateSubmitRecord != null){
-                return "今日已经评价,请勿重复评价";
-            }
-        }
-
-        //新增参评人提交记录表
-        EvaluateSubmitRecord evaluateSubmitRecord = new EvaluateSubmitRecord();
-        evaluateSubmitRecord.setEvaluateManageId(evaluateManageVo.getId());
-        evaluateSubmitRecord.setEvaluateExecuterId(executer.getId());
-        evaluateSubmitRecord.setCreateDate(createDate);
-        if(evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())){
-            evaluateSubmitRecord.setEvaluatedObject("class");
-        }
-        if(evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode())){
-            evaluateSubmitRecord.setEvaluatedObject("teacher");
-        }
-        evaluateSubmitRecord.setEvaluatedObjectId(executer.getEvaluateObjectId());
-        evaluateSubmitRecordMapper.insert(evaluateSubmitRecord);
-
+        //评价结果保存
         List<AddEvaluateResultDto> resultList = dto.getResultList();
         for (AddEvaluateResultDto addEvaluateResultDto : resultList) {
             EvaluateResult evaluateResult = BeanUtil.toBean(addEvaluateResultDto, EvaluateResult.class);
-            if(evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())){
-                evaluateResult.setEvaluatedObject("class");
-            }
-            if(evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode())){
-                evaluateResult.setEvaluatedObject("teacher");
-            }
-            evaluateResult.setUserId(executer.getId());
-            evaluateResult.setEvaluatedObjectId(executer.getEvaluateObjectId());
+            evaluateResult.setEvaluatedObject(mobileResultPageVo.getEvaluateType());
+            evaluateResult.setUserId(Long.parseLong(mobileResultPageVo.getEvaluateUserId()));
+            evaluateResult.setEvaluatedObjectId(Long.parseLong(mobileResultPageVo.getEvaluateObjectId()));
             evaluateResult.setDeleteMark(DeleteMark.NODELETE.getCode());
             evaluateResult.setEnabledMark(EnabledMark.ENABLED.getCode());
             evaluateResult.setCreateDate(createDate);
-            evaluateResult.setSubmitRecordId(evaluateSubmitRecord.getId());
+            evaluateResult.setSubmitRecordId(mobileResultPageVo.getEvaluateSubmitRecordId());
             evaluateResultMapper.insert(evaluateResult);
         }
 
         //修改答题人状态
-        UpdateWrapper<EvaluateExecuter> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("id", executer.getId());
-        updateWrapper.setSql("status = 1");
-        evaluateExecuterMapper.update(executer, updateWrapper);
+        evaluateExecuterMapper.updateById(new EvaluateExecuter(){{
+            setId(Long.parseLong(mobileResultPageVo.getEvaluateUserId()));
+            setStatus(1);
+        }});
+
+        //修改提交记录状态
+        evaluateSubmitRecordMapper.updateById(new EvaluateSubmitRecord(){{
+            setId(mobileResultPageVo.getEvaluateSubmitRecordId());
+            setStatus(1);
+        }});
 
         return "ok";
     }

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

@@ -13,7 +13,11 @@ import java.util.Date;
 */
 @Data
 public class DrillEvaluateClassListVo {
-
+    /**
+     * 评价提交记录id
+     */
+    @ApiModelProperty("评价提交记录id")
+    private String evaluateSubmitRecordId;
     /**
     * 主键编号
     */

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

@@ -22,6 +22,11 @@ public class EvaluateManageScoreVo {
      */
     @ApiModelProperty("评价对象编号")
     private String evaluateObjectId;
+    /**
+     * 评价记录提交编号
+     */
+    @ApiModelProperty("评价记录提交编号")
+    private String submitRecordId;
     /**
     * 题目分数(最小为0,只能整数)
     */

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

@@ -13,7 +13,11 @@ import java.util.Date;
 */
 @Data
 public class MobileResultPageVo {
-
+    /**
+     * 评价提交记录id
+     */
+    @ApiModelProperty("评价提交记录id")
+    private String evaluateSubmitRecordId;
     /**
     * 主键编号
     */

+ 8 - 4
src/main/java/com/xjrsoft/module/student/controller/BaseStudentAssessmentInspectionController.java

@@ -9,10 +9,7 @@ import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.student.dto.*;
 import com.xjrsoft.module.student.entity.BaseStudentAssessmentInspection;
 import com.xjrsoft.module.student.service.IBaseStudentAssessmentInspectionService;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobilePageVo;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobileVo;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionPageVo;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionVo;
+import com.xjrsoft.module.student.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -106,4 +103,11 @@ public class BaseStudentAssessmentInspectionController {
         return baseStudentAssessmentInspectionService.getQuantitativeAssessmentExcelByte(new QuantitativeAssessmentExcelDto());
     }
 
+    @GetMapping(value = "/calss-quantitative-assessment-page")
+    @ApiOperation(value = "班级量化考核列表(分页)")
+    @SaCheckPermission("basestudentassessmentinspection:detail")
+    public RT<PageOutput<CalssQuantitativeAssessmentPageVo>> calssQuantitativeAssessmentPage(@Valid CalssQuantitativeAssessmentPageDto dto) {
+        Page<CalssQuantitativeAssessmentPageVo> page = baseStudentAssessmentInspectionService.getCalssQuantitativeAssessmentPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        return RT.ok(ConventPage.getPageOutput(page, CalssQuantitativeAssessmentPageVo.class));
+    }
 }

+ 54 - 0
src/main/java/com/xjrsoft/module/student/dto/CalssQuantitativeAssessmentPageDto.java

@@ -0,0 +1,54 @@
+package com.xjrsoft.module.student.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 班级量化考核入参
+* @Author szs
+* @Date: 2024-02-04
+* @Version 1.0
+*/
+@Data
+public class CalssQuantitativeAssessmentPageDto extends PageInput {
+
+    /**
+     * 入学年级(base_grade)
+     */
+    @ApiModelProperty("入学年级(base_grade)")
+    private Long gradeId;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 班级Id
+    */
+    @ApiModelProperty("班级Id")
+    private Long classId;
+    /**
+    * 班级状态
+    */
+    @ApiModelProperty("班级状态")
+    private Integer classStatus;
+    /**
+    * 姓名
+    */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+}

+ 9 - 4
src/main/java/com/xjrsoft/module/student/service/IBaseStudentAssessmentInspectionService.java

@@ -4,12 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionMobilePageDto;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionPageDto;
+import com.xjrsoft.module.student.dto.CalssQuantitativeAssessmentPageDto;
 import com.xjrsoft.module.student.dto.QuantitativeAssessmentExcelDto;
 import com.xjrsoft.module.student.entity.BaseStudentAssessmentInspection;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobilePageVo;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionMobileVo;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionPageVo;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentInspectionVo;
+import com.xjrsoft.module.student.vo.*;
 import org.springframework.http.ResponseEntity;
 
 /**
@@ -49,4 +47,11 @@ public interface IBaseStudentAssessmentInspectionService extends MPJBaseService<
 
 
     ResponseEntity<byte[]> getQuantitativeAssessmentExcelByte(QuantitativeAssessmentExcelDto dto);
+
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    Page<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto);
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImpl.java

@@ -18,6 +18,7 @@ import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionMobilePageDto;
 import com.xjrsoft.module.student.dto.BaseStudentAssessmentInspectionPageDto;
+import com.xjrsoft.module.student.dto.CalssQuantitativeAssessmentPageDto;
 import com.xjrsoft.module.student.dto.QuantitativeAssessmentExcelDto;
 import com.xjrsoft.module.student.entity.BaseStudentAssessmentCategory;
 import com.xjrsoft.module.student.entity.BaseStudentAssessmentClassRelation;
@@ -221,4 +222,9 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
 
         return RT.fileStream(bot.toByteArray(), fileName);
     }
+
+    @Override
+    public Page<CalssQuantitativeAssessmentPageVo> getCalssQuantitativeAssessmentPage(Page<CalssQuantitativeAssessmentPageDto> page, CalssQuantitativeAssessmentPageDto dto) {
+        return null;
+    }
 }

+ 70 - 0
src/main/java/com/xjrsoft/module/student/vo/CalssQuantitativeAssessmentPageVo.java

@@ -0,0 +1,70 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 学生班级巡查考核分页列表出参
+* @Author dzx
+* @Date: 2023-11-16
+* @Version 1.0
+*/
+@Data
+public class CalssQuantitativeAssessmentPageVo {
+    @ApiModelProperty("班主任主键编号")
+    private String headTeacherId;
+
+    @ApiModelProperty("班主任工号")
+    private String oa;
+
+    @ApiModelProperty("班主任姓名")
+    private String headTeacherName;
+
+    @ApiModelProperty("班级主键编号")
+    private String classId;
+
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ApiModelProperty("班级人数")
+    private Integer studentNum;
+
+    @ApiModelProperty("班级状态")
+    private Integer classStatus;
+
+    @ApiModelProperty("学生个人行为扣分")
+    private Integer stuPersonalBehaviorSubScore;
+
+    @ApiModelProperty("学生个人行为得分")
+    private Integer stuPersonalBehaviorScore;
+
+    @ApiModelProperty("常规管理扣分")
+    private Integer classConventionalManageSubScore;
+
+    @ApiModelProperty("常规管理得分")
+    private Integer classConventionalManageScore;
+
+    @ApiModelProperty("获奖及荣誉表彰汇总")
+    private Integer honorSumScore;
+
+    @ApiModelProperty("获奖及荣誉表彰得分")
+    private Integer honorScore;
+
+    @ApiModelProperty("准军事化管理效果综合指数")
+    private Integer militaryManageComprehensiveIndex;
+
+    @ApiModelProperty("准军事化管理效果得分")
+    private Integer militaryManageScore;
+
+    @ApiModelProperty("任课教师考核综合指数")
+    private Integer teacherAssessComprehensiveIndex;
+
+    @ApiModelProperty("任课教师考核得分")
+    private Integer teacherAssessScore;
+
+    @ApiModelProperty("考核总得分")
+    private Integer assessSumScore;
+
+    @ApiModelProperty("考核金额")
+    private Integer assessMoney;
+}

+ 38 - 2
src/main/java/com/xjrsoft/module/workflow/controller/WorkflowApproveRecordController.java

@@ -1,8 +1,25 @@
 package com.xjrsoft.module.workflow.controller;
 
+import com.github.yulichang.toolkit.MPJWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.constant.GlobalConstant;
-import org.springframework.stereotype.Controller;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.system.entity.Stamp;
+import com.xjrsoft.module.workflow.dto.ApproveRecordListDto;
+import com.xjrsoft.module.workflow.entity.WorkflowApproveRecord;
+import com.xjrsoft.module.workflow.service.IWorkflowApproveRecordService;
+import com.xjrsoft.module.workflow.vo.WorkflowApproveRecordListVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -12,8 +29,27 @@ import org.springframework.web.bind.annotation.RequestMapping;
  * @author tzx
  * @since 2023-02-10
  */
-@Controller
+@RestController
 @RequestMapping(GlobalConstant.WORKFLOW_MODULE_PREFIX + "/workflowApproveRecord")
+@Api(value = "/workflow"  + "/workflowApproveRecord",tags = "前端控制器")
 public class WorkflowApproveRecordController {
+    @Autowired
+    private IWorkflowApproveRecordService approveRecordService;
+
+    @GetMapping("/approve-record-list")
+    @ApiOperation(value = "重构后发起流程")
+    public RT<List<WorkflowApproveRecordListVo>> approveRecordList(@Valid ApproveRecordListDto dto) {
+        MPJLambdaWrapper<WorkflowApproveRecord> workflowApproveRecordMPJLambdaWrapper = MPJWrappers.<WorkflowApproveRecord>lambdaJoin()
+                .disableSubLogicDel()
+                .eq(WorkflowApproveRecord::getProcessId, dto.getProcessId())
+                .select(WorkflowApproveRecord::getId)
+                .select(WorkflowApproveRecord.class, x -> VoToColumnUtil.fieldsToColumns(WorkflowApproveRecordListVo.class).contains(x.getProperty()))
+                .selectAs(User::getName, WorkflowApproveRecord::getApproveUserName)
+                .leftJoin(User.class, User::getId, WorkflowApproveRecord::getApproveUserId)
+                .selectAs(Stamp::getFileUrl, WorkflowApproveRecord::getApproveStampUrl)
+                .leftJoin(Stamp.class, Stamp::getId, WorkflowApproveRecord::getApproveStamp);
 
+        List<WorkflowApproveRecordListVo> approveRecords = approveRecordService.selectJoinList(WorkflowApproveRecordListVo.class, workflowApproveRecordMPJLambdaWrapper);
+        return RT.ok(approveRecords);
+    }
 }

+ 17 - 0
src/main/java/com/xjrsoft/module/workflow/dto/ApproveRecordListDto.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.workflow.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: tzx
+ * @Date: 2022/10/31 15:13
+ */
+@Data
+public class ApproveRecordListDto {
+    /**
+     * id
+     */
+    @ApiModelProperty("id")
+    private String processId;
+}

+ 66 - 0
src/main/java/com/xjrsoft/module/workflow/vo/WorkflowApproveRecordListVo.java

@@ -0,0 +1,66 @@
+package com.xjrsoft.module.workflow.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class WorkflowApproveRecordListVo {
+    @ApiModelProperty("主键")
+    private Long id;
+
+    @ApiModelProperty("模板Id")
+    private Long schemaId;
+
+    @ApiModelProperty("流程id")
+    private String processId;
+
+    @ApiModelProperty("任务id")
+    private String taskId;
+
+    @ApiModelProperty("任务节点的定义key")
+    private String taskDefinitionKey;
+
+    @ApiModelProperty("任务名")
+    private String taskName;
+
+    @ApiModelProperty("审批类型")
+    private Integer approveType;
+
+    @ApiModelProperty("审批结果按钮值")
+    private String approveResult;
+
+    @ApiModelProperty("审批内容")
+    private String approveComment;
+
+    @ApiModelProperty("审批人id")
+    private Long approveUserId;
+
+    @ApiModelProperty("审批人审批时所使用岗位")
+    private Long approveUserPostId;
+
+    @ApiModelProperty("审批人姓名")
+    @TableField(exist = false)
+    private String approveUserName;
+
+    @ApiModelProperty("审批时间")
+    private LocalDateTime approveTime;
+
+    @ApiModelProperty("签章id")
+    private Long approveStamp;
+
+    @ApiModelProperty("签章图片url")
+    @TableField(exist = false)
+    private String approveStampUrl;
+
+    @ApiModelProperty("流水号")
+    private Long serialNumber;
+
+    @ApiModelProperty("当前进度")
+    private Integer currentProgress;
+
+    @ApiModelProperty("发起人id")
+    private Long startUserId;
+}

+ 115 - 101
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -49,99 +49,96 @@
             t2.evaluate_type,
             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
+                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 tb1.status &lt;&gt; -1
+                and tb3.status = 0
+                and tb3.user_id = t3.user_id
+                and tb1.id = t.id) as ratedCount
         from evaluate_manage t
-                 left join evaluate_template t2 on t2.id = t.evaluate_template_id
-                 left join evaluate_executer t3 on t3.evaluate_manage_id = t.id
-                 left join xjr_dictionary_detail t4 on t4.code = t2.evaluate_type
+            left join evaluate_template t2 on t2.id = t.evaluate_template_id
+            left join evaluate_executer t3 on t3.evaluate_manage_id = t.id
+            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>
+            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">
         select
-            t1.id as evaluateManageId,
+            t.id as evaluateSubmitRecordId,
+            t.evaluate_manage_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,
+            t.evaluated_object_id as evaluateObjectId,
+            t3.object_id as objectId,
+            ifnull(t4.name, t5.name) as objectIdCn,
+            t2.id as evaluateUserId,
+            t2.user_id as userId,
+            t6.name as userIdCn,
             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;
+            t.status as evaluateStatus,
+            t7.evaluate_type as evaluateType,
+            t8.name as evaluateTypeCn
+        from evaluate_submit_record t
+            left join evaluate_manage t1 on t1.id = t.evaluate_manage_id
+            left join evaluate_executer t2 on t2.id = t.evaluate_executer_id
+            left join evaluate_object t3 on t3.id = t.evaluated_object_id
+            left join xjr_user t4 on t4.id = t3.object_id
+            left join base_class t5 on t5.id = t3.object_id
+            left join xjr_user t6 on t6.id = t2.user_id
+            left join evaluate_template t7 on t7.id = t1.evaluate_template_id
+            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}
+            <if test="dto.status != null">
+                and t.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 t.status;
     </select>
 
     <select id="getDrillEvaluateClassList" parameterType="com.xjrsoft.module.evaluate.dto.DrillEvaluateClassListDto" resultType="com.xjrsoft.module.evaluate.vo.DrillEvaluateClassListVo">
         select
-            t1.id as evaluateManageId,
+            t.id as evaluateSubmitRecordId,
+            t.evaluate_manage_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,
+            t.evaluated_object_id as evaluateObjectId,
+            t3.object_id as objectId,
+            ifnull(t4.name, t5.name) as objectIdCn,
+            t2.id as evaluateUserId,
+            t2.user_id as userId,
+            t6.name as userIdCn,
             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}
+            t.status as evaluateStatus,
+            t7.evaluate_type as evaluateType,
+            t8.name as evaluateTypeCn
+        from evaluate_submit_record t
+            left join evaluate_manage t1 on t1.id = t.evaluate_manage_id
+            left join evaluate_executer t2 on t2.id = t.evaluate_executer_id
+            left join evaluate_object t3 on t3.id = t.evaluated_object_id
+            left join xjr_user t4 on t4.id = t3.object_id
+            left join base_class t5 on t5.id = t3.object_id
+            left join xjr_user t6 on t6.id = t2.user_id
+            left join evaluate_template t7 on t7.id = t1.evaluate_template_id
+            left join xjr_dictionary_detail t8 on t8.code = t7.evaluate_type
+            left join base_classroom t9 on t9.id = t5.classroom_id
+            left join base_class_major_set t10 on t10.class_id = t5.id
+            left join base_major_set t11 on t11.id = t10.major_set_id
+        where t.create_date  like concat('%', #{dto.todayDate}, '%')
+          and t2.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}
@@ -149,7 +146,7 @@
         <if test="dto.officeBuildId != null and dto.officeBuildId > 0">
             and t8.officeBuildId = #{dto.officeBuildId}
         </if>
-        order by t3.status;
+        order by t.status;
     </select>
 
     <select id="getWriteInfo" parameterType="com.xjrsoft.module.evaluate.dto.EvaluateWritePageDto" resultType="com.xjrsoft.module.evaluate.vo.EvaluateWriteVo">
@@ -164,36 +161,53 @@
         SELECT * FROM evaluate_manage_item WHERE delete_mark = 0 AND evaluate_manage_id = #{id} ORDER BY sort_code
     </select>
     <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
+        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_submit_record t
+                 LEFT JOIN evaluate_result t2 ON t2.submit_record_id = t.id
+                 left join evaluate_manage_item t1 on t1.id = t2.evaluate_item_id
+                 LEFT JOIN evaluate_executer t3 ON t3.id = t.evaluate_executer_id
         WHERE t1.delete_mark = 0
-        AND t2.delete_mark = 0
-        AND t1.evaluate_manage_id = #{dto.evaluateManageId}
-        AND t3.user_id = #{dto.loginUserId}
-        AND t3.evaluate_object_id = #{dto.evaluateObjectId}
+          AND t.id = #{dto.evaluateSubmitRecordId}
         ORDER BY t1.sort_code
     </select>
 
     <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 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
+        select t.submit_record_id as submitRecordId,
+            sum(t.score) as totalScore,
+            count(t.score) as itemCount
+        from evaluate_result t
+            left join evaluate_submit_record t3 on t3.id = t.submit_record_id
         where t.delete_mark = 0
-          and t1.delete_mark = 0
-          and t.evaluate_manage_id = #{dto.evaluateManageId}
-          and t.id in
-            <foreach item="evaluateObjectId" index="index" collection="dto.evaluateObjectIdList" open="(" close=")"
-                     separator=",">
-                #{evaluateObjectId}
+        and t.submit_record_id in
+            <foreach item="submitRecordId" index="index" collection="dto.submitRecordIdList" open="(" close=")"
+                                           separator=",">
+                #{submitRecordId}
             </foreach>
-          and t1.user_id = #{dto.userId}
-          and t1.status = 1
-        group by t.evaluate_manage_id, t.id
+        group by t.submit_record_id;
     </select>
 
+    <insert id="insertEvaluateSubmitRecord" parameterType="java.lang.Long">
+        insert into evaluate_submit_record (id, evaluate_manage_id, evaluate_executer_id, create_date, evaluated_object, evaluated_object_id, status)
+            (SELECT
+                 UUID(),
+                 t.evaluate_manage_id,
+                 t.id,
+                 NOW(),
+                 if(t2.evaluate_type='dm_evaluate_class', 'class', 'teacher'),
+                 t.evaluate_object_id,
+                 0
+             FROM evaluate_executer 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)
+             WHERE t.delete_mark = 0
+          AND t.evaluate_manage_id = #{evaluateManageId})
+    </insert>
 </mapper>

+ 4 - 2
src/main/resources/sqlScript/20240125_sql.sql

@@ -311,7 +311,9 @@ DELIMITER ;
 CALL createCom;
 DROP PROCEDURE createCom;
 
+ALTER TABLE evaluate_result MODIFY submit_record_id varchar(64);
 
+ALTER TABLE evaluate_submit_record MODIFY id varchar(64);
 -- -------------------------------------------------------------------评价-----------------------------------------------------------------
 
 ALTER TABLE `jianyue_data`   
@@ -337,5 +339,5 @@ CREATE TABLE base_label
     PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '基础标签表';
 
-ALTER TABLE `tl`.`base_course_subject`   
-  CHANGE `org_id` `base_label_id` BIGINT NULL   COMMENT '标签id(base_label)';
+# ALTER TABLE `tl`.`base_course_subject`
+#   CHANGE `org_id` `base_label_id` BIGINT NULL   COMMENT '标签id(base_label)';