Преглед на файлове

评价管理移动端评价结果列表页分页查询,评价结果保存

phoenix преди 1 година
родител
ревизия
bc003d5b67

+ 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;
 }

+ 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;
 }

+ 14 - 12
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;
@@ -85,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()
@@ -109,7 +110,6 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
         }
 
         //添加评价提交记录
-
         evaluateManageMapper.insertEvaluateSubmitRecord(id);
 
         //将评价管理状态改为进行中
@@ -128,11 +128,10 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
 
     @Override
     public Page<MobileResultPageVo> getMobileResultPage(Page<EvaluateWritePageDto> page, MobileResultPageDto dto){
-        page.setOptimizeCountSql(false);
         Page<MobileResultPageVo> mobileResultPage = evaluateManageMapper.getMobileResultPage(page, dto);
         if(mobileResultPage.getRecords() != null){
-            //获取所有的记录的总分
-            //评价对象的id集合
+            //获取已经评价记录的评价总分
+            //评价提交记录的id集合
             List<Long> submitRecordIdList = new ArrayList<>();
             for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
                 if(mobileResultPageVo.getEvaluateStatus() == 1){
@@ -140,21 +139,23 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
                 }
             }
             if(submitRecordIdList.size() > 0){
-                //获取当前用户,当前评价管理下的所有评对象的总分(学生评价班主任)或者是综合指数(教官评价班级)
+                //获取当前用户,当前评价管理下的所有评对象的总分(学生评价班主任)或者是综合指数(教官评价班级)
                 List<EvaluateManageScoreVo> evaluateManageScoreVoList = evaluateManageMapper.getScoreList(new EvaluateManageScoreDto(){{
                     setSubmitRecordIdList(submitRecordIdList);
                 }});
-                Map<String, EvaluateManageScoreVo> scoreBySubmitRecordId = evaluateManageScoreVoList.stream()
-                        .collect(Collectors.toMap(EvaluateManageScoreVo::getSubmitRecordId, Function.identity()));
 
-                if(scoreBySubmitRecordId.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()) && 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()) && scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()) != null){
                             ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
@@ -185,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);
     }
 
@@ -200,7 +203,6 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
 
     @Override
     public List<EvaluateManageItemVo> getResultList(ResultListDto dto) {
-        dto.setLoginUserId(StpUtil.getLoginIdAsLong());
         return evaluateManageMapper.getResultList(dto);
     }
 

+ 6 - 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();

+ 27 - 74
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,93 +258,52 @@ 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
-                .select(EvaluateManage::getId)
-                .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){
-            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){
+        //获取当前评价管理的相关信息
+        MPJLambdaWrapper<EvaluateSubmitRecord> evaluateSubmitRecordMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        evaluateSubmitRecordMPJLambdaWrapper
+                .selectAs(EvaluateSubmitRecord::getEvaluateManageId, MobileResultPageVo::getEvaluateManageId)
+                .selectAs(EvaluateSubmitRecord::getEvaluatedObjectId, MobileResultPageVo::getEvaluateObjectId)
+                .selectAs(EvaluateSubmitRecord::getEvaluateExecuterId, MobileResultPageVo::getEvaluateUserId)
+                .selectAs(EvaluateSubmitRecord::getStatus, MobileResultPageVo::getEvaluateStatus)
+                .selectAs(EvaluateTemplate::getEvaluateType, MobileResultPageVo::getEvaluateType)
+                .eq(EvaluateSubmitRecord::getId, dto.getEvaluateSubmitRecordId());
+        MobileResultPageVo mobileResultPageVo = evaluateSubmitRecordMapper.selectJoinOne(MobileResultPageVo.class, evaluateSubmitRecordMPJLambdaWrapper);
+
+        if(mobileResultPageVo == 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(dto.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(Long.parseLong(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(Long.parseLong(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 - 6
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;
     /**
     * 主键编号
     */
@@ -54,11 +58,6 @@ public class MobileResultPageVo {
      */
     @ApiModelProperty("参评对象具体人编号")
     private String userIdCn;
-    /**
-     * 评价提交记录id
-     */
-    @ApiModelProperty("评价提交记录id")
-    private String evaluateSubmitRecordId;
     /**
      * 评价类型
      */

+ 33 - 0
src/main/java/com/xjrsoft/module/workflow/controller/WorkflowApproveRecordController.java

@@ -1,9 +1,24 @@
 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 com.xjrsoft.common.model.result.R;
+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 io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import javax.validation.Valid;
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -15,5 +30,23 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @Controller
 @RequestMapping(GlobalConstant.WORKFLOW_MODULE_PREFIX + "/workflowApproveRecord")
 public class WorkflowApproveRecordController {
+    @Autowired
+    private IWorkflowApproveRecordService approveRecordService;
+
+    @GetMapping("/approve-record-list")
+    @ApiOperation(value = "重构后发起流程")
+    public R 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(WorkflowApproveRecord.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<WorkflowApproveRecord> approveRecords = approveRecordService.selectJoinList(WorkflowApproveRecord.class, workflowApproveRecordMPJLambdaWrapper);
+        return R.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 Long processId;
+}

+ 91 - 126
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -74,116 +74,73 @@
 
     <select id="getMobileResultPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileResultPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileResultPageVo">
         select
-            *
-        from ((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,
-        null as evaluateSubmitRecordId
-        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 = 14954808977606
-        and t.evaluate_manage_id = 1753257838133182465
-        <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>)
-        union
-        (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,
-        t8.id as evaluateSubmitRecordId
-        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 evaluate_submit_record t8 on t8.evaluated_object_id = t.id and t8.evaluate_manage_id = t.evaluate_manage_id and t8.evaluate_executer_id = t3.id
-        where t.delete_mark = 0
-        and t3.delete_mark = 0
-        and t1.status = 1
-        and t3.user_id = 14954808977606
-        and t.evaluate_manage_id = 1753257838133182465
-        <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>)) as t
-        order by evaluateStatus;
+            t.id as evaluateSubmitRecordId,
+            t.evaluate_manage_id as evaluateManageId,
+            t1.name,
+            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,
+            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}
@@ -191,7 +148,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">
@@ -206,14 +163,21 @@
         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>
 
@@ -225,26 +189,27 @@
             left join evaluate_submit_record t3 on t3.id = t.submit_record_id
         where t.delete_mark = 0
         and t.submit_record_id in
-            <foreach item="evaluateObjectId" index="index" collection="dto.evaluateObjectIdList" open="(" close=")"
+            <foreach item="submitRecordId" index="index" collection="dto.submitRecordIdList" open="(" close=")"
                                            separator=",">
-                #{evaluateObjectId}
+                #{submitRecordId}
             </foreach>
         group by t.submit_record_id;
     </select>
 
     <insert id="insertEvaluateSubmitRecord" parameterType="java.lang.Long">
-        SELECT
-            UUID(),
-            t.evaluate_manage_id,
-            t.id,
-            NOW(),
-            t2.evaluate_type,
-            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 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>