Kaynağa Gözat

培训/演练 运维接口代码提交

jingyuanchao 1 yıl önce
ebeveyn
işleme
5eb9ea822b

+ 35 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/dto/EduDrillTaskDealDto.java

@@ -0,0 +1,35 @@
+package com.xunmei.common.core.domain.edu.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+public class EduDrillTaskDealDto {
+    //taskId:任务id
+    //taskType:任务类型
+    //userIdList:需要删除的未签名的参与用户
+    //changeTaskStatus:是否需要修改任务状态为已完成
+    //buildPdf:是否需要生成登记簿
+
+    @NotNull(message = "任务id不能为空")
+    @ApiModelProperty(value = "任务id")
+    private Long taskId;
+
+    @NotNull(message = "任务类型不能为空")
+    @ApiModelProperty(value = "任务类型",notes = "1:培训,2:演练")
+    private Integer taskType;
+
+    @ApiModelProperty(value = "需要删除的未签名的参与用户")
+    private List<Long> userIdList;
+
+    @ApiModelProperty(value = "是否需要修改任务状态为已完成")
+    private boolean changeTaskStatus=false;
+
+    @ApiModelProperty(value = "是否需要生成登记簿")
+    private boolean buildPdf=false;
+
+
+}

+ 1 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/enums/PanelTypeEnums.java

@@ -1,6 +1,5 @@
 package com.xunmei.common.core.domain.panel.enums;
 
-import com.xunmei.common.core.enums.drill.DrillDoStatus;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -29,7 +28,7 @@ public enum PanelTypeEnums {
     DRILL_REC(7, "推优评优"),
     OUT_EVALUATION(8,"外包评价"),
 	QUESTION(9,"隐患管理"),
-	VISIT_APPROVE(10,"来访审批"),
+	VISIT_APPROVE(10,"出入审批"),
     HIDDEN_DANGER_QUESTION(11,"隐患问题"),
     HIDDEN_DANGER_RECTIFICATION(12,"隐患整改"),
     ;

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillTaskService.java

@@ -6,6 +6,7 @@ import com.xunmei.common.core.domain.drill.domain.CoreDrillTask;
 import com.xunmei.common.core.domain.drill.domain.CoreDrillTaskToUser;
 import com.xunmei.common.core.domain.drill.dto.*;
 import com.xunmei.common.core.domain.drill.vo.*;
+import com.xunmei.common.core.domain.edu.dto.EduDrillTaskDealDto;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.panel.vo.WebPanelResult;
@@ -125,5 +126,5 @@ public interface ICoreDrillTaskService extends IService<CoreDrillTask> {
 
     List<String> checkTaskExit(List<String> allDrillIdList);
 
-    void doneTask(String id);
+    void doneTask(EduDrillTaskDealDto req);
 }

+ 18 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -20,6 +20,7 @@ import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.drill.domain.*;
 import com.xunmei.common.core.domain.drill.dto.*;
 import com.xunmei.common.core.domain.drill.vo.*;
+import com.xunmei.common.core.domain.edu.dto.EduDrillTaskDealDto;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
@@ -1969,24 +1970,34 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     }
 
     @Override
-    public void doneTask(String taskId) {
-        CoreDrillTask task = baseMapper.selectById(taskId);
+    public void doneTask(EduDrillTaskDealDto req) {
+
+        CoreDrillTask task = baseMapper.selectById(req.getTaskId());
         if (task == null) {
             throw new RuntimeException("培训任务不存在!");
         }
 
+        List<Long> userIdList = req.getUserIdList();
+
         LambdaQueryWrapper<CoreDrillTaskToUser> taskToUser = new LambdaQueryWrapper<>();
-        taskToUser.eq(CoreDrillTaskToUser::getDrillTaskId, taskId);
+        taskToUser.eq(CoreDrillTaskToUser::getDrillTaskId, task.getId());
         //参与用户
         taskToUser.eq(CoreDrillTaskToUser::getType, 1);
         //未签名的
         taskToUser.eq(CoreDrillTaskToUser::getSign, 0);
+        //签名图片为空
+        taskToUser.isNull(CoreDrillTaskToUser::getSignImage);
+        //删除指定用户
+        taskToUser.in(ObjectUtil.isNotEmpty(userIdList), CoreDrillTaskToUser::getUserId, userIdList);
         taskToUserMapper.delete(taskToUser);
 
-        task.setStatus(DrillDoStatus.DONE.getCode());
-        baseMapper.updateById(task);
-
-        buildDrillTaskPdf(task.getId());
+        if (req.isChangeTaskStatus()) {
+            task.setStatus(EduTrainingDoStatus.DONE.getCode());
+            baseMapper.updateById(task);
+        }
+        if (req.isBuildPdf()) {
+            buildDrillTaskPdf(task.getId());
+        }
     }
 }
 

+ 4 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -1,7 +1,6 @@
 package com.xunmei.core.edu.controller;
 
 
-import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.xunmei.common.core.domain.edu.dto.*;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskPageVo;
@@ -142,8 +141,9 @@ public class CoreEduTrainingTaskController extends BaseController {
     }
 
     @ApiOperation(value = "运维接口",notes = "除了 演练/培训任务,删除未签名的用户,并生成登记簿")
-    @PostMapping("/doneTask")
-    public void doneTask(@RequestBody JSONObject req) {
-        coreEduTrainingTaskService.doneTask(req);
+    @PostMapping("/dealTask")
+    public AjaxResult dealTask(@RequestBody @Validated EduDrillTaskDealDto req) {
+        coreEduTrainingTaskService.dealTask(req);
+        return AjaxResult.success();
     }
 }

+ 1 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/ICoreEduTrainingTaskService.java

@@ -1,7 +1,6 @@
 package com.xunmei.core.edu.service;
 
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTaskToUser;
@@ -121,6 +120,6 @@ public interface ICoreEduTrainingTaskService extends IService<CoreEduTrainingTas
 
     List<String> checkTaskExit(List<String> allEduTrainingIdList);
 
-    void doneTask(JSONObject req);
+    void dealTask(EduDrillTaskDealDto req);
 
 }

+ 25 - 19
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -7,7 +7,6 @@ import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -125,6 +124,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     private RemoteWorkTimeService workTimeService;
     @Autowired
     private ICoreDrillTaskService drillTaskService;
+
     @Override
     public TableDataInfo<CoreEduTrainingTaskPageVo> selectPage(CoreEduTrainingTaskPageDto request) {
         dealTaskPageParam(request);
@@ -1510,41 +1510,47 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void doneTask(JSONObject req) {
-        if (ObjectUtil.isEmpty(req) || req.isEmpty()) {
-            throw new RuntimeException("参数不能为空");
-        }
-        String type = (String) req.get("taskType");
-        String id = (String) req.get("taskId");
-        switch (type) {
-            case "1":
-                doneTask(id);
+    public void dealTask(EduDrillTaskDealDto req) {
+        Integer taskType = req.getTaskType();
+        switch (taskType) {
+            case 1:
+                doneTask(req);
                 break;
-            case "2":
-                drillTaskService.doneTask(id);
+            case 2:
+                  drillTaskService.doneTask(req);
                 break;
             default:
-                throw new RuntimeException("参数错误");
+                throw new RuntimeException("任务类型参数错误");
         }
     }
 
-    private void doneTask(String taskId) {
-        CoreEduTrainingTask task = baseMapper.selectById(taskId);
+    private void doneTask(EduDrillTaskDealDto req) {
+
+        CoreEduTrainingTask task = baseMapper.selectById(req.getTaskId());
         if (task == null) {
             throw new RuntimeException("培训任务不存在!");
         }
 
+        List<Long> userIdList = req.getUserIdList();
+
         LambdaQueryWrapper<CoreEduTrainingTaskToUser> taskToUser = new LambdaQueryWrapper<>();
-        taskToUser.eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, taskId);
+        taskToUser.eq(CoreEduTrainingTaskToUser::getEduTrainingTaskId, task.getId());
         //参与用户
         taskToUser.eq(CoreEduTrainingTaskToUser::getType, 1);
         //未签名的
         taskToUser.eq(CoreEduTrainingTaskToUser::getSign, 0);
+        //签名图片为空
+        taskToUser.isNull(CoreEduTrainingTaskToUser::getSignImage);
+        taskToUser.in(ObjectUtil.isNotEmpty(userIdList),CoreEduTrainingTaskToUser::getUserId, userIdList);
         coreEduTrainingTaskToUserMapper.delete(taskToUser);
-        task.setStatus(EduTrainingDoStatus.DONE.getCode());
-        baseMapper.updateById(task);
 
-        buildEduPdf(task.getId());
+        if (req.isChangeTaskStatus()) {
+            task.setStatus(EduTrainingDoStatus.DONE.getCode());
+            baseMapper.updateById(task);
+        }
+        if (req.isBuildPdf()) {
+            buildEduPdf(task.getId());
+        }
     }
 }
 

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/util/Sm4Util.java

@@ -185,7 +185,7 @@ public class Sm4Util {
 
 
     public static void main(String[] args) {
-        String s = encryptEcb("51d95b1dc43a9faaad0570f81c755fcf", "update core_edu_training_task set  status=2 where id='1807459079280091152';");
+        String s = encryptEcb("51d95b1dc43a9faaad0570f81c755fcf", "update core_edu_training_task set  status=2 where id='1812463465882353673';");
 
         System.out.println(s);