Przeglądaj źródła

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

lixuesong 1 rok temu
rodzic
commit
d4cdaef8a8

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

@@ -96,7 +96,7 @@ public class WmDeptTaskController {
                         // 是否超过企业任务上限
                         boolean deptLimitFlag = BigDecimal.valueOf(tasksScore)
                                 .compareTo(BigDecimal.valueOf(wmScorePackage.getScore())
-                                        .multiply(wmScorePackage.getEntTaskLimit()).divide(new BigDecimal("100"))) <= 0;
+                                        .multiply(wmScorePackage.getEntTaskLimit()).divide(new BigDecimal("100"))) < 0;
                         // 同时满足以下条件:
                         // 1.可分配积分值大于0的
                         // 2.没有超过企业任务上限

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

@@ -9,6 +9,7 @@ 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.WmScoreTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
@@ -20,6 +21,7 @@ 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.WmScoreTaskTypeService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
@@ -54,6 +56,7 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
     private final WmTaskContentService wmTaskContentService;
     private final WmTaskService wmTaskService;
     private final WmTaskTypeService wmTaskTypeService;
+    private final WmScoreTaskTypeService wmScoreTaskTypeService;
     private final Sequence taskSequence;
     private final RedisTemplate redisTemplate;
 
@@ -80,6 +83,12 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
             throw new RuntimeException("当前企业未开启该任务!");
         }
 
+        int scoreTaskTypeCount = wmScoreTaskTypeService.count(Wrappers.<WmScoreTaskType>lambdaQuery()
+                .eq(WmScoreTaskType::getScoreId, params.getPackageId())
+                .eq(WmScoreTaskType::getTaskTypeId, taskTypeId));
+        if (scoreTaskTypeCount <= 0) {
+            throw new RuntimeException("有效任务类型未启用该任务!");
+        }
 
         // 查询积分包
         WmScorePackage scorePackage = wmScorePackageService.getById(params.getPackageId());
@@ -162,6 +171,13 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
             throw new RuntimeException("当前企业未开启该任务!");
         }
 
+        int scoreTaskTypeCount = wmScoreTaskTypeService.count(Wrappers.<WmScoreTaskType>lambdaQuery()
+                .eq(WmScoreTaskType::getScoreId, params.getPackageId())
+                .eq(WmScoreTaskType::getTaskTypeId, taskTypeId));
+        if (scoreTaskTypeCount <= 0) {
+            throw new RuntimeException("有效任务类型未启用该任务!");
+        }
+
         // 查询积分包
         WmScorePackage scorePackage = wmScorePackageService.getById(params.getPackageId());
         // 查询任务规则积分
@@ -256,6 +272,13 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
             throw new RuntimeException("当前企业未开启该任务!");
         }
 
+        int scoreTaskTypeCount = wmScoreTaskTypeService.count(Wrappers.<WmScoreTaskType>lambdaQuery()
+                .eq(WmScoreTaskType::getScoreId, params.getPackageId())
+                .eq(WmScoreTaskType::getTaskTypeId, taskTypeId));
+        if (scoreTaskTypeCount <= 0) {
+            throw new RuntimeException("有效任务类型未启用该任务!");
+        }
+
         // 查询积分包
         WmScorePackage scorePackage = wmScorePackageService.getById(params.getPackageId());
         // 查询任务规则积分

+ 8 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -3068,11 +3068,18 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 
 		// 已分配积分值
 		int assignedScore = 0;
+		// 查询子包的积分
 		List<WmScorePackage> subPackages = this.list(Wrappers.<WmScorePackage>lambdaQuery()
 				.eq(WmScorePackage::getRelationScoreId, packageId)
 				.ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
 		if (CollUtil.isNotEmpty(subPackages)) {
-			assignedScore = subPackages.stream().mapToInt(WmScorePackage::getScore).sum();
+			assignedScore += subPackages.stream().mapToInt(WmScorePackage::getScore).sum();
+		}
+		// 查询企业任务的积分
+		List<WmTask> entTaskList = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery()
+				.eq(WmTask::getScorePackageId, packageId));
+		if (CollUtil.isNotEmpty(entTaskList)) {
+			assignedScore += entTaskList.stream().mapToInt(WmTask::getScore).sum();
 		}
 
 		log.info("当前积分包终止前数据:{}", scorePackage);