瀏覽代碼

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

dzx 1 年之前
父節點
當前提交
13f2dbc255

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

@@ -26,6 +26,9 @@ public class EvaluateResultSaveDto implements Serializable {
     @ApiModelProperty(value = "评价类型")
     private String evaluateType;
 
+    @ApiModelProperty(value = "提交类型:1=暂存,2=提交")
+    private Integer submitType;
+
     @ApiModelProperty(value = "填写答案信息")
     private List<AddEvaluateResultDto> resultList;
 }

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

@@ -134,7 +134,7 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
             //评价提交记录的id集合
             List<String> submitRecordIdList = new ArrayList<>();
             for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
-                if(mobileResultPageVo.getEvaluateStatus() == 1){
+                if(mobileResultPageVo.getEvaluateStatus() == 2){
                     submitRecordIdList.add(mobileResultPageVo.getEvaluateSubmitRecordId());
                 }
             }
@@ -152,8 +152,8 @@ public class EvaluateManageServiceImpl extends MPJBaseServiceImpl<EvaluateManage
                     for (MobileResultPageVo mobileResultPageVo : mobileResultPage.getRecords()) {
                         //评价类型是学生评价班主任
                         if(mobileResultPageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode()) && scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()) != null){
-                            mobileResultPageVo.setTotalScore((double)scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getTotalScore());
-                            mobileResultPageVo.setItemCount(scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateObjectId()).getItemCount());
+                            mobileResultPageVo.setTotalScore((double)scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getTotalScore());
+                            mobileResultPageVo.setItemCount(scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getItemCount());
                         }
 
                         //评价类型是教官评级班级

+ 15 - 1
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateObjectServiceImpl.java

@@ -1,7 +1,9 @@
 package com.xjrsoft.module.evaluate.service.impl;
 
+import camundajar.impl.scala.runtime.LambdaDeserialize;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.DeleteMark;
@@ -99,6 +101,18 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
     @Override
     @Transactional
     public Boolean objectGradeDelete(ObjectGradeDeleteDto dto) {
+        //获取当前评价管理的类型
+        LambdaQueryWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new LambdaQueryWrapper<>();
+        evaluateManageMPJLambdaWrapper
+                .eq(EvaluateManage::getId, dto.getEvaluateManageId());
+        EvaluateManage evaluateManage = evaluateManageMapper.selectOne(evaluateManageMPJLambdaWrapper);
+        if(evaluateManage == null){
+            throw new MyException("该评价管理已经失效");
+        }
+
+        if(evaluateManage.getStatus() != -1){
+            throw new MyException("该评价管理正在使用");
+        }
         evaluateObjectMapper.objectGradeDeleteExecuter(dto);
         evaluateObjectMapper.objectGradeDeleteObject(dto);
         return true;
@@ -120,7 +134,7 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
         }
 
         if(evaluateManageVo.getStatus() != -1){
-            throw new MyException("改评价已经使用");
+            throw new MyException("该评价正在使用");
         }
 
         //清空原有数据

+ 17 - 11
src/main/java/com/xjrsoft/module/evaluate/service/impl/EvaluateResultServiceImpl.java

@@ -278,7 +278,7 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
             return "该评价已失效!";
         }
 
-        if(mobileResultPageVo.getEvaluateStatus() == 1){
+        if(mobileResultPageVo.getEvaluateStatus() == 2){
             return "已经评价,请勿重复评价";
         }
 
@@ -296,19 +296,25 @@ public class EvaluateResultServiceImpl extends MPJBaseServiceImpl<EvaluateResult
             evaluateResultMapper.insert(evaluateResult);
         }
 
-        if(mobileResultPageVo.getIsAutoCreate() != null && mobileResultPageVo.getIsAutoCreate() != 1){
-            //修改答题人状态
-            evaluateExecuterMapper.updateById(new EvaluateExecuter(){{
-                setId(Long.parseLong(mobileResultPageVo.getEvaluateUserId()));
+        //修改答题人状态
+        evaluateExecuterMapper.updateById(new EvaluateExecuter(){{
+            setId(Long.parseLong(mobileResultPageVo.getEvaluateUserId()));
+            if(dto.getSubmitType() != null && dto.getSubmitType() == 1){
                 setStatus(1);
-            }});
+            } else {
+                setStatus(2);
+            }
+        }});
 
-            //修改提交记录状态
-            evaluateSubmitRecordMapper.updateById(new EvaluateSubmitRecord(){{
-                setId(mobileResultPageVo.getEvaluateSubmitRecordId());
+        //修改提交记录状态
+        evaluateSubmitRecordMapper.updateById(new EvaluateSubmitRecord(){{
+            setId(mobileResultPageVo.getEvaluateSubmitRecordId());
+            if(dto.getSubmitType() != null && dto.getSubmitType() == 1){
                 setStatus(1);
-            }});
-        }
+            } else {
+                setStatus(2);
+            }
+        }});
 
         return "ok";
     }

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

@@ -82,6 +82,6 @@ public class DrillEvaluateClassListVo {
     @ApiModelProperty("题目数量")
     private Integer itemCount;
 
-    @ApiModelProperty("评价状态(0:未评价,1:已评价)")
+    @ApiModelProperty("评价状态(0:未评价,1:暂存,2:已评价)")
     private Integer evaluateStatus;
 }

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

@@ -85,7 +85,7 @@ public class MobileResultPageVo {
     @ApiModelProperty("总分")
     private Double totalScore;
 
-    @ApiModelProperty("评价状态(0:未评价,1:已评价)")
+    @ApiModelProperty("评价状态(0:未评价,1:暂存,2:已评价)")
     private Integer evaluateStatus;
 
     /**

+ 60 - 0
src/main/java/com/xjrsoft/module/job/EvaluateTask.java

@@ -0,0 +1,60 @@
+package com.xjrsoft.module.job;
+
+import cn.hutool.db.Db;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.xjrsoft.common.utils.DatasourceUtil;
+import com.xjrsoft.common.utils.DateUtils;
+import com.xjrsoft.module.evaluate.entity.EvaluateManage;
+import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.sql.DataSource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 自动生成评价提交记录
+ */
+@Component
+@Slf4j
+public class EvaluateTask {
+
+    /**
+     * 需要重复评价的,每天凌晨1点自动生成新的评价提交记录
+     */
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void addSubmitRecord() {
+        System.out.printf("定时新增评价提交记录:%s", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN));
+        DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
+        try {
+            Db use = Db.use(datasource);
+            //先查出所有进行中的需要重复评价的评价管理
+            String listEvaluateManageSql = "select t.id, t.create_frequency from evaluate_manage t where t.is_auto_create = 1 and t.status = 1";
+            List<EvaluateManage> evaluateManageList = use.query(listEvaluateManageSql, EvaluateManage.class);
+            for(EvaluateManage evaluateManage : evaluateManageList){
+                //TODO 根据评价的频率进行新增
+
+                //默认每天新增根据评价管理
+                String insertSubmitScoreSql = "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 = " + evaluateManage.getId() + ")";
+                use.execute(insertSubmitScoreSql);
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), "定时新增评价提交记录");
+        }
+    }
+}

+ 1 - 2
src/main/resources/mapper/evaluate/EvaluateManageMapper.xml

@@ -81,8 +81,7 @@
             t2.id as evaluateUserId,
             t2.user_id as userId,
             t6.name as userIdCn,
-            t1.start_time,
-            t1.end_time,
+            t.create_date as startTime,
             t.status as evaluateStatus,
             t7.evaluate_type as evaluateType,
             t8.name as evaluateTypeCn

+ 16 - 0
src/test/java/com/xjrsoft/module/job/EvaluateTaskTest.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.job;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.jupiter.api.Assertions.*;
+@SpringBootTest
+class EvaluateTaskTest {
+    @Autowired
+    private EvaluateTask evaluateTask;
+    @Test
+    void addSubmitRecord() {
+        evaluateTask.addSubmitRecord();
+    }
+}