Ver Fonte

feat: 保存企业任务-类型62

lixuesong há 1 ano atrás
pai
commit
5041833361

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

@@ -86,8 +86,8 @@ public class WmDeptTaskController {
     @PostMapping("/dept-task/save-task-type62")
     public R<?> saveEntTaskForTaskType62(@Validated @RequestBody DeptTaskDTO.TaskType62 params) {
         log.info("企业任务保存-医学会各级年会及卫星会请求参数:{}", params);
-        // TODO
-        return null;
+
+        return R.ok(wmDeptTaskService.saveEntTaskForTaskType62(params));
     }
 
     /**

+ 2 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/DeptTaskDTO.java

@@ -6,7 +6,6 @@ import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * 企业任务请求参数DTO
@@ -136,7 +135,7 @@ public class DeptTaskDTO implements Serializable {
          * 会议内容
          */
         @NotBlank(message = "会议内容必填")
-        private String meetingContent;
+        private String[] meetingContentUrl;
 
         /**
          * 外采费用
@@ -216,7 +215,7 @@ public class DeptTaskDTO implements Serializable {
          * 会议内容
          */
         @NotEmpty(message = "会议内容必填")
-        private String meetingContent;
+        private String[] meetingContentUrl;
 
         /**
          * 外采费用

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

@@ -2,14 +2,12 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
 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.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.dto.DeptTaskDTO;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
@@ -19,7 +17,7 @@ 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.admin.service.WmTaskTypeService;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import com.qunzhixinxi.hnqz.common.sequence.sequence.Sequence;
@@ -47,6 +45,7 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
     private final WmScorePackageStatusService wmScorePackageStatusService;
     private final WmTaskContentService wmTaskContentService;
     private final WmTaskService wmTaskService;
+    private final WmTaskTypeService wmTaskTypeService;
     private final Sequence taskSequence;
 
     /**
@@ -59,9 +58,6 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
     @Transactional(rollbackFor = Exception.class)
     public Boolean saveEntTaskForTaskType61(DeptTaskDTO.TaskType61 params) {
 
-        HnqzUser user = SecurityUtils.getUser();
-        LocalDateTime now = LocalDateTime.now();
-
 //        // 查询任务类型启用状态
 //        List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
 //                .eq(WmTaskSubmissionPercentRule::getDeptId, user.getDeptId())
@@ -104,14 +100,102 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
         log.info("保存taskContent参数:{}", taskContent);
         wmTaskContentService.save(taskContent);
 
+        // 保存企业任务通用方法
+        this.saveEntTaskCommon(taskContent, params.getScore(), scorePackage);
+
+        return Boolean.TRUE;
+    }
+
+    /**
+     * 企业任务保存-医学会各级年会及卫星会
+     *
+     * @param params 参数
+     * @return {@link Boolean} 结果
+     */
+    @Override
+    public Boolean saveEntTaskForTaskType62(DeptTaskDTO.TaskType62 params) {
+
+//        // 查询任务类型启用状态
+//        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());
+        // 查询任务规则积分
+        WmTaskType wmTaskType = new WmTaskType();
+        wmTaskType.setRuleId(scorePackage.getRuleId());
+        WmTaskType queryTaskType = wmTaskTypeService.getById("62");
+        wmTaskType.setTaskTypeName(queryTaskType.getTaskTypeName());
+        int score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
+
+        if (score > scorePackage.getKfpjf()) {
+            throw new RuntimeException("可分配积分不足!");
+        }
+
+        // 保存taskContent
+        WmTaskContent taskContent = new WmTaskContent();
+        // 任务类型
+        taskContent.setTemp30("62");
+        // 积分包id
+        taskContent.setTemp32(params.getPackageId());
+        // 主题
+        taskContent.setTemp2(params.getMeetingtTitle());
+        // 时间
+        taskContent.setTemp3(params.getMeetingTime());
+        // 会议人次
+        taskContent.setTemp4(params.getMeetingNumber());
+        // 会议邀请函
+        taskContent.setTemp5(String.join(",", params.getMeetingInvitationUrl()));
+        // 会议计划表
+        taskContent.setTemp6(String.join(",", params.getMeetingPlanUrl()));
+        // 会议签到表
+        taskContent.setTemp7(String.join(",", params.getMeetingCheckInUrl()));// 会议邀请函
+        // 现场照片
+        taskContent.setTemp8(String.join(",", params.getLivePhotosUrl()));
+        // 会议内容
+        taskContent.setTemp9(String.join(",", params.getMeetingContentUrl()));
+        // 外采费用
+        taskContent.setTemp10(params.getOutsourcingAmount());
+        // 外采费用凭证
+        taskContent.setTemp11(String.join(",", params.getOutsourcingAmountProof()));
+        // 总结
+        taskContent.setTemp12(params.getMeetingSummary());
+        log.info("保存taskContent参数:{}", taskContent);
+        wmTaskContentService.save(taskContent);
+
+        // 保存企业任务通用方法
+        this.saveEntTaskCommon(taskContent, score, scorePackage);
+
+        return Boolean.TRUE;
+    }
+
+    /**
+     * 保存企业任务通用方法
+     *
+     * @param taskContent  任务内容
+     * @param taskScore    任务积分
+     * @param scorePackage 积分包
+     */
+    private void saveEntTaskCommon(WmTaskContent taskContent, int taskScore, WmScorePackage scorePackage) {
+        HnqzUser user = SecurityUtils.getUser();
+        LocalDateTime now = LocalDateTime.now();
+
         // 保存任务
         WmTask task = new WmTask();
         task.setTaskContentId(String.valueOf(taskContent.getId()));
         task.setTaskFrom("1");
         task.setTaskTypeId("61");
         task.setTaskUserId(String.valueOf(user.getId()));
-        task.setScorePackageId(params.getPackageId());
-        task.setScore(params.getScore());
+        task.setScorePackageId(scorePackage.getId());
+        task.setScore(taskScore);
         task.setLookintoDate(now);
         task.setUpdateTime(now);
         task.setDrugEntId(scorePackage.getDrugEntId());
@@ -133,7 +217,7 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
 
         // 创建一条领包记录
         WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
-        wmScorePackageStatus.setPackageId(params.getPackageId());
+        wmScorePackageStatus.setPackageId(scorePackage.getId());
         wmScorePackageStatus.setUserId(String.valueOf(user.getId()));
         wmScorePackageStatus.setDelFlag("0");
         wmScorePackageStatus.setEnableFlag("0");
@@ -158,25 +242,12 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
 
         // 扣减可分配积分值
         WmScorePackage updatePackage = new WmScorePackage();
-        updatePackage.setId(params.getPackageId());
-        updatePackage.setKfpjf(scorePackage.getKfpjf() - params.getScore());
+        updatePackage.setId(scorePackage.getId());
+        updatePackage.setKfpjf(scorePackage.getKfpjf() - taskScore);
         updatePackage.setUpdateUser(user.getId());
         updatePackage.setUpdateTime(now);
         log.info("扣减可分配积分值参数:{}", updatePackage);
         wmScorePackageService.updateById(updatePackage);
-
-        return Boolean.TRUE;
-    }
-
-    /**
-     * 企业任务保存-医学会各级年会及卫星会
-     *
-     * @param params 参数
-     * @return {@link Boolean} 结果
-     */
-    @Override
-    public Boolean saveEntTaskForTaskType62(DeptTaskDTO.TaskType62 params) {
-        return null;
     }
 
     /**