Jelajahi Sumber

Merge branch 'feat-20230920-b2b' into temp-pre

lixuesong 1 tahun lalu
induk
melakukan
c41b7fbab1

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

@@ -1,10 +1,25 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.dto.DeptTaskDTO;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
+import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
+import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
@@ -20,6 +35,8 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 企业任务控制器
@@ -34,6 +51,9 @@ public class WmDeptTaskController {
 
     private final WmScorePackageMapper wmScorePackageMapper;
     private final WmDeptTaskService wmDeptTaskService;
+    private final WmTaskService wmTaskService;
+    private final WmTaskTypeService wmTaskTypeService;
+    private final SysUserService sysUserService;
 
     /**
      * 查询关联的企业积分包
@@ -62,6 +82,93 @@ public class WmDeptTaskController {
         return R.ok(results);
     }
 
+    /**
+     * 分页查询企业任务
+     *
+     * @param page             分页参数
+     * @param scorePackageName 积分包名称
+     * @return {@link R}<{@link ?}> 结果
+     */
+    @GetMapping("/dept-task/page-ent-task")
+    public R<?> pageEntTask(Page<WmTaskVO> page, String scorePackageName) {
+
+        Integer deptId = SecurityUtils.getUser().getDeptId();
+
+        // 查询当前企业所有的企业大包(包括上级发给自己的,和自己发给自己的)
+        LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
+                .eq(WmScorePackage::getDeptId, deptId)
+                .in(WmScorePackage::getTypeid, "0", "1", "2")
+                .eq(WmScorePackage::getDelFlag, DelEnum.NOT_DEL.val())
+                .eq(WmScorePackage::getEnableFlag, EnableEnum.ENABLE.val())
+                .eq(WmScorePackage::getOldPackage, "0");
+        if (StrUtil.isNotBlank(scorePackageName)) {
+            queryWrapper.like(WmScorePackage::getScorePackageName, scorePackageName);
+        }
+        List<WmScorePackage> relatedPackages = wmScorePackageMapper.selectList(queryWrapper);
+        if (CollUtil.isEmpty(relatedPackages)) {
+            return R.ok(page);
+        }
+        // 积分包id列表
+        Set<String> packageIdSet = relatedPackages.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
+
+        // 查询积分包下的企业任务
+        Page<WmTask> taskPage = wmTaskService.page(new Page<>(page.getCurrent(), page.getSize()), Wrappers.<WmTask>lambdaQuery()
+                .in(WmTask::getScorePackageId, packageIdSet));
+
+        if (CollUtil.isEmpty(taskPage.getRecords())) {
+            return R.ok(page);
+        }
+
+        // 查询taskType
+        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
+                .eq(WmTaskType::getTaskTypeLevel, "1")
+                .eq(WmTaskType::getDelFlag, "0")
+                .eq(WmTaskType::getEnableFlag, "0"));
+        // taskType通过id分组(key为parentId,value为taskTypeName)
+        Map<String, String> taskTypeIdMap = taskTypeList.stream()
+                .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
+
+        // 查询涉及到的user
+        Set<String> userIdSet = taskPage.getRecords().stream().map(WmTask::getTaskUserId).collect(Collectors.toSet());
+        List<SysUser> users = sysUserService.listByIds(userIdSet);
+        Map<Integer, String> userMap = users.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
+
+        List<WmTaskVO> vos = taskPage.getRecords().stream().map(wmTask -> {
+            WmTaskVO wmTaskVO = BeanUtil.copyProperties(wmTask, WmTaskVO.class);
+            // 任务类型名称
+            wmTaskVO.setTaskTypeName(taskTypeIdMap.getOrDefault(wmTaskVO.getTaskTypeId(), ""));
+            // 姓名
+            wmTaskVO.setTaskUsername(userMap.getOrDefault(Integer.parseInt(wmTaskVO.getTaskUserId()), ""));
+            // 报告审核状态
+            wmTaskVO.setApprovalOpinionName("");
+            if (StrUtil.isNotBlank(wmTask.getReportDrugApprovalOpinion())) {
+                if (ReportEnum.APPROVAL_OPINION_YES.getType().equals(wmTask.getReportDrugApprovalOpinion())) {
+                    wmTaskVO.setApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());
+                    wmTaskVO.setApprovalOpinionName(ReportEnum.APPROVAL_OPINION_YES.getDescription());
+                } else if (ReportEnum.APPROVAL_OPINION_NO.getType().equals(wmTask.getReportDrugApprovalOpinion())) {
+                    wmTaskVO.setApprovalOpinion(ReportEnum.APPROVAL_OPINION_NO.getType());
+                    wmTaskVO.setApprovalOpinionName(ReportEnum.APPROVAL_OPINION_NO.getDescription());
+                }
+            } else if (StrUtil.isNotBlank(wmTask.getReportOneApprovalOpinion())) {
+                if (ReportEnum.APPROVAL_OPINION_YES.getType().equals(wmTask.getReportOneApprovalOpinion())) {
+                    wmTaskVO.setApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());
+                    wmTaskVO.setApprovalOpinionName(ReportEnum.APPROVAL_OPINION_YES.getDescription());
+                } else if (ReportEnum.APPROVAL_OPINION_NO.getType().equals(wmTask.getReportOneApprovalOpinion())) {
+                    wmTaskVO.setApprovalOpinion(ReportEnum.APPROVAL_OPINION_NO.getType());
+                    wmTaskVO.setApprovalOpinionName(ReportEnum.APPROVAL_OPINION_NO.getDescription());
+                }
+            }
+
+            return wmTaskVO;
+        }).collect(Collectors.toList());
+
+        page.setRecords(vos);
+        page.setTotal(taskPage.getTotal());
+        page.setPages(taskPage.getPages());
+
+        return R.ok(page);
+    }
+
     /**
      * 企业任务保存-企业通用
      *
@@ -86,8 +193,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));
     }
 
     /**
@@ -100,7 +207,7 @@ public class WmDeptTaskController {
     @PostMapping("/dept-task/save-task-type63")
     public R<?> saveEntTaskForTaskType63(@Validated @RequestBody DeptTaskDTO.TaskType63 params) {
         log.info("企业任务保存-专家共识巡讲会请求参数:{}", params);
-        // TODO
-        return null;
+
+        return R.ok(wmDeptTaskService.saveEntTaskForTaskType63(params));
     }
 }

+ 32 - 32
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
@@ -75,14 +74,14 @@ public class DeptTaskDTO implements Serializable {
     }
 
     /**
-     * 任务类型63-专家共识巡讲
+     * 任务类型62-医学会各级年会及卫星
      *
      * @author lixuesong
      * @date 2023/09/21
      */
     @Data
-    public static class TaskType63 implements Serializable {
-        private static final long serialVersionUID = -1918885625462400849L;
+    public static class TaskType62 implements Serializable {
+        private static final long serialVersionUID = -2282200603021121878L;
 
         /**
          * 积分包id
@@ -91,33 +90,33 @@ public class DeptTaskDTO implements Serializable {
         private String packageId;
 
         /**
-         * 主题
+         * 会议主题
          */
-        @NotBlank(message = "主题必填")
+        @NotBlank(message = "会议主题必填")
         private String meetingtTitle;
 
         /**
-         * 时间
+         * 会议时间
          */
-        @NotBlank(message = "时间必填")
+        @NotBlank(message = "会议时间必填")
         private String meetingTime;
 
         /**
-         * 参加人次
+         * 会议人次
          */
-        @NotBlank(message = "参加人次必填")
+        @NotBlank(message = "会议人次必填")
         private String meetingNumber;
 
         /**
-         * 活动策划书
+         * 会议邀请函
          */
-        @NotEmpty(message = "活动策划书必填")
-        private String[] eventPlannerUrl;
+        @NotEmpty(message = "会议邀请函必填")
+        private String[] meetingInvitationUrl;
 
         /**
-         * 活动计划表
+         * 会议计划表
          */
-        @NotEmpty(message = "活动计划表必填")
+        @NotEmpty(message = "会议计划表必填")
         private String[] meetingPlanUrl;
 
         /**
@@ -135,8 +134,8 @@ public class DeptTaskDTO implements Serializable {
         /**
          * 会议内容
          */
-        @NotBlank(message = "会议内容必填")
-        private String meetingContent;
+        @NotEmpty(message = "会议内容必填")
+        private String[] meetingContentUrl;
 
         /**
          * 外采费用
@@ -155,14 +154,14 @@ public class DeptTaskDTO implements Serializable {
     }
 
     /**
-     * 任务类型62-医学会各级年会及卫星
+     * 任务类型63-专家共识巡讲
      *
      * @author lixuesong
      * @date 2023/09/21
      */
     @Data
-    public static class TaskType62 implements Serializable {
-        private static final long serialVersionUID = -2282200603021121878L;
+    public static class TaskType63 implements Serializable {
+        private static final long serialVersionUID = -1918885625462400849L;
 
         /**
          * 积分包id
@@ -171,33 +170,33 @@ public class DeptTaskDTO implements Serializable {
         private String packageId;
 
         /**
-         * 会议主题
+         * 主题
          */
-        @NotBlank(message = "会议主题必填")
+        @NotBlank(message = "主题必填")
         private String meetingtTitle;
 
         /**
-         * 会议时间
+         * 时间
          */
-        @NotBlank(message = "会议时间必填")
+        @NotBlank(message = "时间必填")
         private String meetingTime;
 
         /**
-         * 会议人次
+         * 参加人次
          */
-        @NotBlank(message = "会议人次必填")
+        @NotBlank(message = "参加人次必填")
         private String meetingNumber;
 
         /**
-         * 会议邀请函
+         * 活动策划书
          */
-        @NotEmpty(message = "会议邀请函必填")
-        private String[] meetingInvitationUrl;
+        @NotEmpty(message = "活动策划书必填")
+        private String[] eventPlannerUrl;
 
         /**
-         * 会议计划表
+         * 活动计划表
          */
-        @NotEmpty(message = "会议计划表必填")
+        @NotEmpty(message = "活动计划表必填")
         private String[] meetingPlanUrl;
 
         /**
@@ -216,7 +215,7 @@ public class DeptTaskDTO implements Serializable {
          * 会议内容
          */
         @NotEmpty(message = "会议内容必填")
-        private String meetingContent;
+        private String[] meetingContentUrl;
 
         /**
          * 外采费用
@@ -233,4 +232,5 @@ public class DeptTaskDTO implements Serializable {
          */
         private String meetingSummary;
     }
+
 }

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/vo/WmTaskVO.java

@@ -50,6 +50,11 @@ public class WmTaskVO implements Serializable {
 	@ApiModelProperty(value="任务类型ID")
 	private String taskTypeId;
 
+	/**
+	 * 任务类型名称
+	 */
+	private String taskTypeName;
+
 	@ApiModelProperty(value="任务得分")
 	Integer score;
 
@@ -193,6 +198,12 @@ public class WmTaskVO implements Serializable {
 	 */
 	@ApiModelProperty(value="审批意见")
 	private String approvalOpinion;
+
+	/**
+	 * 审批意见中文名称
+	 */
+	private String approvalOpinionName;
+
 	/**
 	 * 审批说明
 	 */

+ 168 - 35
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,174 @@ 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
+    @Transactional(rollbackFor = Exception.class)
+    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 params 参数
+     * @return {@link Boolean} 结果
+     */
+    @Override
+    public Boolean saveEntTaskForTaskType63(DeptTaskDTO.TaskType63 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("63");
+        wmTaskType.setTaskTypeName(queryTaskType.getTaskTypeName());
+        int score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
+
+        if (score > scorePackage.getKfpjf()) {
+            throw new RuntimeException("可分配积分不足!");
+        }
+
+        // 保存taskContent
+        WmTaskContent taskContent = new WmTaskContent();
+        // 任务类型
+        taskContent.setTemp30("63");
+        // 积分包id
+        taskContent.setTemp32(params.getPackageId());
+        // 主题
+        taskContent.setTemp2(params.getMeetingtTitle());
+        // 时间
+        taskContent.setTemp3(params.getMeetingTime());
+        // 参加人次
+        taskContent.setTemp4(params.getMeetingNumber());
+        // 活动策划书
+        taskContent.setTemp5(String.join(",", params.getEventPlannerUrl()));
+        // 活动计划表
+        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);
+
+        // 保存企业任务通用方法 TODO 初始化企业任务类型
+        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 +289,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,35 +314,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;
-    }
-
-    /**
-     * 企业任务保存-专家共识巡讲会
-     *
-     * @param params 参数
-     * @return {@link Boolean} 结果
-     */
-    @Override
-    public Boolean saveEntTaskForTaskType63(DeptTaskDTO.TaskType63 params) {
-        return null;
-    }
 }