Преглед изворни кода

feat: 企业的任务类型61-提交任务

lixuesong пре 1 година
родитељ
комит
00d26e1dac

+ 23 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDeptTaskController.java

@@ -1,18 +1,25 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.collection.CollUtil;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.dto.DeptTaskDTO;
 import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
+import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 企业任务控制器
@@ -26,6 +33,7 @@ import java.util.List;
 public class WmDeptTaskController {
 
     private final WmScorePackageMapper wmScorePackageMapper;
+    private final WmDeptTaskService wmDeptTaskService;
 
     /**
      * 查询关联的企业积分包
@@ -41,7 +49,17 @@ public class WmDeptTaskController {
         queryPackage.setTypeid("0,1,2");
         List<WmScorePackage> packageList = wmScorePackageMapper.getScorePackagekfpjf(queryPackage);
 
-        return R.ok(packageList);
+        List<Map<String, String>> results = new ArrayList<>();
+        if (CollUtil.isNotEmpty(packageList)) {
+            packageList.forEach(wmScorePackage -> {
+                Map<String, String> result = new HashMap<>();
+                result.put("id", wmScorePackage.getId());
+                result.put("scorePackageName", wmScorePackage.getScorePackageName());
+                results.add(result);
+            });
+        }
+
+        return R.ok(results);
     }
 
     /**
@@ -52,11 +70,10 @@ public class WmDeptTaskController {
      */
     @SysLog("企业任务保存-企业通用")
     @PostMapping("/dept-task/save-task-type61")
-    public R<?> saveEntTaskForTaskType61(DeptTaskDTO.TaskType61 params) {
+    public R<?> saveEntTaskForTaskType61(@Validated @RequestBody DeptTaskDTO.TaskType61 params) {
         log.info("企业任务保存-企业通用请求参数:{}", params);
 
-        // TODO
-        return null;
+        return R.ok(wmDeptTaskService.saveEntTaskForTaskType61(params));
     }
 
     /**
@@ -67,7 +84,7 @@ public class WmDeptTaskController {
      */
     @SysLog("企业任务保存-医学会各级年会及卫星会")
     @PostMapping("/dept-task/save-task-type62")
-    public R<?> saveEntTaskForTaskType62(DeptTaskDTO.TaskType62 params) {
+    public R<?> saveEntTaskForTaskType62(@Validated @RequestBody DeptTaskDTO.TaskType62 params) {
         log.info("企业任务保存-医学会各级年会及卫星会请求参数:{}", params);
         // TODO
         return null;
@@ -81,7 +98,7 @@ public class WmDeptTaskController {
      */
     @SysLog("企业任务保存-专家共识巡讲会")
     @PostMapping("/dept-task/save-task-type63")
-    public R<?> saveEntTaskForTaskType63(DeptTaskDTO.TaskType63 params) {
+    public R<?> saveEntTaskForTaskType63(@Validated @RequestBody DeptTaskDTO.TaskType63 params) {
         log.info("企业任务保存-专家共识巡讲会请求参数:{}", params);
         // TODO
         return null;

+ 51 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDeptTaskServiceImpl.java

@@ -7,15 +7,19 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.dto.DeptTaskDTO;
+import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
 import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
+import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import com.qunzhixinxi.hnqz.common.sequence.sequence.Sequence;
@@ -40,6 +44,7 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
 
     private final WmTaskSubmissionPercentRuleService wmTaskSubmissionPercentRuleService;
     private final WmScorePackageService wmScorePackageService;
+    private final WmScorePackageStatusService wmScorePackageStatusService;
     private final WmTaskContentService wmTaskContentService;
     private final WmTaskService wmTaskService;
     private final Sequence taskSequence;
@@ -57,17 +62,17 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
         HnqzUser user = SecurityUtils.getUser();
         LocalDateTime now = LocalDateTime.now();
 
-        // 查询任务类型启用状态
-        List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
-                .eq(WmTaskSubmissionPercentRule::getDeptId, user.getDeptId())
-                .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
-        if (CollUtil.isEmpty(rules)) {
-            throw new RuntimeException("当前企业未开启该任务!");
-        }
-        String[] taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
-        if (!ArrayUtil.contains(taskTypeIds, "61")) {
-            throw new RuntimeException("当前企业未开启该任务!");
-        }
+//        // 查询任务类型启用状态
+//        List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
+//                .eq(WmTaskSubmissionPercentRule::getDeptId, user.getDeptId())
+//                .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
+//        if (CollUtil.isEmpty(rules)) {
+//            throw new RuntimeException("当前企业未开启该任务!");
+//        }
+//        String[] taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
+//        if (!ArrayUtil.contains(taskTypeIds, "61")) {
+//            throw new RuntimeException("当前企业未开启该任务!");
+//        }
 
         // 查询积分包
         WmScorePackage scorePackage = wmScorePackageService.getById(params.getPackageId());
@@ -96,6 +101,7 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
         taskContent.setTemp7(String.valueOf(params.getScore()));
         // 总结
         taskContent.setTemp8(params.getMeetingSummary());
+        log.info("保存taskContent参数:{}", taskContent);
         wmTaskContentService.save(taskContent);
 
         // 保存任务
@@ -122,9 +128,42 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
         } else {
             task.setTaskUserType(ArrayUtil.join(user.getRoles(), ","));
         }
+        log.info("保存任务参数:{}", task);
         wmTaskService.save(task);
 
-        // TODO
+        // 创建一条领包记录
+        WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
+        wmScorePackageStatus.setPackageId(params.getPackageId());
+        wmScorePackageStatus.setUserId(String.valueOf(user.getId()));
+        wmScorePackageStatus.setDelFlag("0");
+        wmScorePackageStatus.setEnableFlag("0");
+        List<WmScorePackageStatus> wmScorePackageStatusList = wmScorePackageStatusService.
+                list(Wrappers.query(wmScorePackageStatus).lambda().ne(WmScorePackageStatus::getStatus, 3));
+        if (CollUtil.isEmpty(wmScorePackageStatusList)) {
+            wmScorePackageStatus.setStatus("1");
+            wmScorePackageStatus.setTaskAddFlag("1");
+            if (PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val().equals(scorePackage.getPackageType1())
+                    || PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(scorePackage.getPackageType1())) {
+                wmScorePackageStatus.setUserScore(scorePackage.getScore() + "");
+            } else {
+                wmScorePackageStatus.setUserScore(scorePackage.getUserScore());
+            }
+            wmScorePackageStatus.setTaskNum(scorePackage.getTaskNum());
+            wmScorePackageStatus.setDeptId(String.valueOf(user.getDeptId()));
+            wmScorePackageStatus.setCreateTime(now);
+            wmScorePackageStatus.setUpdateTime(now);
+            log.info("创建领包记录参数:{}", wmScorePackageStatus);
+            wmScorePackageStatusService.save(wmScorePackageStatus);
+        }
+
+        // 扣减可分配积分值
+        WmScorePackage updatePackage = new WmScorePackage();
+        updatePackage.setId(params.getPackageId());
+        updatePackage.setKfpjf(scorePackage.getKfpjf() - params.getScore());
+        updatePackage.setUpdateUser(user.getId());
+        updatePackage.setUpdateTime(now);
+        log.info("扣减可分配积分值参数:{}", updatePackage);
+        wmScorePackageService.updateById(updatePackage);
 
         return Boolean.TRUE;
     }