Forráskód Böngészése

班级量化考核页面接口

phoenix 1 éve
szülő
commit
bc7fc22f5c

+ 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<Long> submitRecordIdList;
 
     /**
      * 当前登录用户id

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

+ 22 - 16
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateManageServiceImpl.java

@@ -77,6 +77,7 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
     }
 
     @Override
+    @Transactional
     public Boolean release(Long id) {
         EvaluateManage evaluateManage = evaluateManageMapper.selectById(id);
         if(evaluateManage == null){
@@ -107,6 +108,10 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
             }
         }
 
+        //添加评价提交记录
+
+        evaluateManageMapper.insertEvaluateSubmitRecord(id);
+
         //将评价管理状态改为进行中
         evaluateManage.setStatus(1);
         evaluateManage.setModifyDate(new Date());
@@ -123,38 +128,39 @@ 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集合
-            List<Long> evaluateObjectIdList = new ArrayList<>();
+            List<Long> submitRecordIdList = new ArrayList<>();
             for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
-                evaluateObjectIdList.add(Long.parseLong(mobileResultPageVo.getEvaluateObjectId()));
+                if(mobileResultPageVo.getEvaluateStatus() == 1){
+                    submitRecordIdList.add(Long.parseLong(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()));
+                Map<String, EvaluateManageScoreVo> scoreBySubmitRecordId = evaluateManageScoreVoList.stream()
+                        .collect(Collectors.toMap(EvaluateManageScoreVo::getSubmitRecordId, Function.identity()));
 
-                if(scoreByObjectId.size() > 0){
+                if(scoreBySubmitRecordId.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.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 +174,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());
                         }
                     }
                 }

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

@@ -136,6 +136,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()) {

+ 5 - 2
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

@@ -266,9 +266,10 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
     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)
@@ -280,6 +281,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
             return "该评价已失效!";
         }
 
+        //获取当前登录用户的对应的参评对象信息
         EvaluateExecuter executer = evaluateExecuterMapper.selectOne(
             new QueryWrapper<EvaluateExecuter>().lambda()
             .eq(EvaluateExecuter::getUserId, loginUserId)
@@ -325,6 +327,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
         evaluateSubmitRecord.setEvaluatedObjectId(executer.getEvaluateObjectId());
         evaluateSubmitRecordMapper.insert(evaluateSubmitRecord);
 
+        //评价结果保存
         List<AddEvaluateResultDto> resultList = dto.getResultList();
         for (AddEvaluateResultDto addEvaluateResultDto : resultList) {
             EvaluateResult evaluateResult = BeanUtil.toBean(addEvaluateResultDto, EvaluateResult.class);
@@ -335,7 +338,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
                 evaluateResult.setEvaluatedObject("teacher");
             }
             evaluateResult.setUserId(executer.getId());
-            evaluateResult.setEvaluatedObjectId(executer.getEvaluateObjectId());
+            evaluateResult.setEvaluatedObjectId(dto.getEvaluateObjectId());
             evaluateResult.setDeleteMark(DeleteMark.NODELETE.getCode());
             evaluateResult.setEnabledMark(EnabledMark.ENABLED.getCode());
             evaluateResult.setCreateDate(createDate);

+ 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 - 0
src/main/java/com/xjrsoft/module/evaluate/vo/MobileResultPageVo.java

@@ -54,6 +54,11 @@ public class MobileResultPageVo {
      */
     @ApiModelProperty("参评对象具体人编号")
     private String userIdCn;
+    /**
+     * 评价提交记录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;
+}

+ 90 - 39
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -74,32 +74,35 @@
 
     <select id="getMobileResultPage" parameterType="com.xjrsoft.module.evaluate.dto.MobileResultPageDto" resultType="com.xjrsoft.module.evaluate.vo.MobileResultPageVo">
         select
-            t1.id as evaluateManageId,
-            t1.name,
-            t.id as evaluateObjectId,
-            t.object_id as objectId,
-            ifnull(t5.name, t6.name) as objectIdCn,
-            t3.id as evaluateUserId,
-            t3.user_id as userId,
-            t7.name as userIdCn,
-            t2.evaluate_type as evaluateType,
-            t4.name as evaluateTypeCn,
-            t1.start_time,
-            t1.end_time,
-            t3.status as evaluateStatus
+            *
+        from ((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
+        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}
+        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>
@@ -108,8 +111,47 @@
         </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>
-        order by t3.status;
+        <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;
     </select>
 
     <select id="getDrillEvaluateClassList" parameterType="com.xjrsoft.module.evaluate.dto.DrillEvaluateClassListDto" resultType="com.xjrsoft.module.evaluate.vo.DrillEvaluateClassListVo">
@@ -176,24 +218,33 @@
     </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
+        and t.submit_record_id in
             <foreach item="evaluateObjectId" index="index" collection="dto.evaluateObjectIdList" open="(" close=")"
-                     separator=",">
+                                           separator=",">
                 #{evaluateObjectId}
             </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">
+        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>
 </mapper>

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

@@ -266,6 +266,8 @@ END$$
 DELIMITER ;
 CALL createCom;
 DROP PROCEDURE createCom;
+
+ALTER TABLE evaluate_submit_record MODIFY id varchar(64);
 -- -------------------------------------------------------------------评价-----------------------------------------------------------------