Browse Source

feat: 1.企业承接包-可分配积分值考虑审核管理费;2.任务中心查询mapper层改为分页

lixuesong 1 year ago
parent
commit
122e0176c8

+ 7 - 26
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -432,20 +432,19 @@ public class WmScorePackageController {
 			}
 		}
 
-		List<WmScorePackage> listExt = new ArrayList<>();
 		if (3 == sysDept.getLevel()) {
 			queryWrapper.eq("dept_id", SecurityUtils.getUser().getDeptId());
 			queryWrapper.eq("typeid", 1);
 			wmScorePackage.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
 			wmScorePackage.setTypeid(String.valueOf(1));
-			listExt = wmScorePackageService.listWmScorePackageAndTaskExt(wmScorePackage);
+			wmScorePackageService.listWmScorePackageAndTaskExt(page, wmScorePackage);
 
 
 		} else if (4 == sysDept.getLevel()) {
 			queryWrapper.eq("dept_id", SecurityUtils.getUser().getDeptId());
 			wmScorePackage.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
 			wmScorePackage.setTypeid(String.valueOf(2));
-			listExt = wmScorePackageService.listWmScorePackageAndTaskExt2(wmScorePackage);
+			wmScorePackageService.listWmScorePackageAndTaskExt2(page, wmScorePackage);
 
 		} else if (2 == sysDept.getLevel()) {
 			queryWrapper.eq("typeid", 0);
@@ -453,7 +452,7 @@ public class WmScorePackageController {
 			wmScorePackage.setTypeid(String.valueOf(0));
 			wmScorePackage.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
 			wmScorePackage.setSendPackageDeptId(wmScorePackage.getSendPackageDeptId());
-			listExt = wmScorePackageService.listWmScorePackageAndTaskExt(wmScorePackage);
+			wmScorePackageService.listWmScorePackageAndTaskExt(page, wmScorePackage);
 
 		}
 
@@ -461,28 +460,10 @@ public class WmScorePackageController {
 			queryWrapper.eq("dept_id", SecurityUtils.getUser().getDeptId());
 			wmScorePackage.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
 			wmScorePackage.setSendPackageDeptId(wmScorePackage.getSendPackageDeptId());
-			listExt = wmScorePackageService.listWmScorePackageAndTaskExt(wmScorePackage);
+			wmScorePackageService.listWmScorePackageAndTaskExt(page, wmScorePackage);
 		}
 
-		Page<WmScorePackage> page1 = new Page<>();
-		int current = new Long(page.getCurrent()).intValue();
-		int size = new Long(page.getSize()).intValue();
-
-		int count = listExt.size();
-		List<WmScorePackage> pageList = new ArrayList<>();
-		//计算当前页第一条数据的下标
-		int currId = current > 1 ? (current - 1) * size : 0;
-		for (int i = 0; i < size && i < count - currId; i++) {
-			pageList.add(listExt.get(currId + i));
-		}
-		page1.setSize(size);
-		page1.setCurrent(current);
-		page1.setTotal(count);
-		//计算分页总页数
-		page1.setPages(count % 10 == 0 ? count / 10 : count / 10 + 1);
-		page1.setRecords(pageList);
-
-		for (WmScorePackage ext : listExt) {
+		for (WmScorePackage ext : page.getRecords()) {
 			List<WmScoreTaskType> taskTypelist = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(ext.getId());
 			if (taskTypelist != null && taskTypelist.size() > 0) {
 				String taskTypes = taskTypelist.stream()
@@ -683,7 +664,7 @@ public class WmScorePackageController {
 			wmScorePackageService.getExcelReportOpt(ext, CacheConstants.EXCEL_EXPORT_NBA_REPORT_CACHE);
 		}
 
-		page1.getRecords().forEach(r -> {
+		page.getRecords().forEach(r -> {
 			if (r.getP2pAmount() != null) {
 				r.setP2pDraft(false);
 			} else {
@@ -700,7 +681,7 @@ public class WmScorePackageController {
 
 		});
 
-		return R.ok(page1);
+		return R.ok(page);
 	}
 
 

+ 8 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmScorePackageMapper.java

@@ -48,13 +48,19 @@ public interface WmScorePackageMapper extends DataScopeMapper<WmScorePackage> {
 	public List<WmScorePackage> listWmScorePackageAndTask(@Param("query") WmScorePackage wmScorePackage, DataScope dataScope);
 
 	@SqlParser(filter=true)
-	public List<WmScorePackage> listWmScorePackageAndTaskExt(@Param("query") WmScorePackage wmScorePackage);
+	List<WmScorePackage> listWmScorePackageAndTaskExt(@Param("query") WmScorePackage wmScorePackage);
+
+	@SqlParser(filter=true)
+	IPage<WmScorePackage> listWmScorePackageAndTaskExt(Page<WmScorePackage> page, @Param("query") WmScorePackage wmScorePackage);
 
 	@SqlParser(filter=true)
 	public List<WmScorePackage> listWmScorePackageAndTaskExtOld(@Param("query") WmScorePackage wmScorePackage);
 
 	@SqlParser(filter=true)
-	public List<WmScorePackage> listWmScorePackageAndTaskExt2(@Param("query") WmScorePackage wmScorePackage);
+	List<WmScorePackage> listWmScorePackageAndTaskExt2(@Param("query") WmScorePackage wmScorePackage);
+
+	@SqlParser(filter=true)
+	IPage<WmScorePackage> listWmScorePackageAndTaskExt2(Page<WmScorePackage> page, @Param("query") WmScorePackage wmScorePackage);
 
 	@SqlParser(filter=true)
 	public List<WmScorePackage> listWmScorePackageAndTaskExt2Old(@Param("query") WmScorePackage wmScorePackage);

+ 5 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmScorePackageService.java

@@ -47,12 +47,15 @@ public interface WmScorePackageService extends IService<WmScorePackage> {
 
 	public List<WmScorePackage> listWmScorePackageAndTask(WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> listWmScorePackageAndTaskExt(WmScorePackage wmScorePackage);
+	List<WmScorePackage> listWmScorePackageAndTaskExt(WmScorePackage wmScorePackage);
+
+	IPage<WmScorePackage> listWmScorePackageAndTaskExt(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
 
 	public List<WmScorePackage> listWmScorePackageAndTaskExtOld(WmScorePackage wmScorePackage);
 
+	List<WmScorePackage> listWmScorePackageAndTaskExt2(WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> listWmScorePackageAndTaskExt2(WmScorePackage wmScorePackage);
+	IPage<WmScorePackage> listWmScorePackageAndTaskExt2(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
 
 	public List<WmScorePackage> listWmScorePackageAndTaskExt2Old(WmScorePackage wmScorePackage);
 

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

@@ -163,59 +163,17 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
     public Boolean saveEntTaskForTaskType62(DeptTaskDTO.TaskType62 params) {
         String taskTypeId = "62";
 
-        // 查询任务类型启用状态
-        List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
-                .eq(WmTaskSubmissionPercentRule::getDeptId, SecurityUtils.getUser().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, taskTypeId)) {
-            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());
-        // 查询任务规则积分
-        WmTaskType wmTaskType = new WmTaskType();
-        wmTaskType.setRuleId(scorePackage.getRuleId());
-        WmTaskType queryTaskType = wmTaskTypeService.getById(taskTypeId);
-        wmTaskType.setTaskTypeName(queryTaskType.getTaskTypeName());
-        int score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
-
-        // 校验是否超过可分配积分值
-        List<WmScorePackage> scorePackagekfpjf =
-                wmScorePackageService.getScorePackagekfpjf(null, SecurityUtils.getUser().getDeptId(),
-                        new String[]{"0", "1", "2"}, new String[]{params.getPackageId()});
-        if (score > scorePackagekfpjf.get(0).getKfpjf()) {
-            throw new RuntimeException("可分配积分不足!");
-        }
-
-        // 校验是否超过积分包企业任务上限
-        List<WmTask> queryTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                .eq(WmTask::getScorePackageId, params.getPackageId())
-                .eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
-                .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
-                .eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val()));
+		// 查询积分包
+		WmScorePackage scorePackage = wmScorePackageService.getById(params.getPackageId());
+		// 查询任务规则积分
+		WmTaskType wmTaskType = new WmTaskType();
+		wmTaskType.setRuleId(scorePackage.getRuleId());
+		WmTaskType queryTaskType = wmTaskTypeService.getById(taskTypeId);
+		wmTaskType.setTaskTypeName(queryTaskType.getTaskTypeName());
+		int score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
 
-        int totalScoreSum = 0;
-        totalScoreSum += score;
-        if (CollUtil.isNotEmpty(queryTaskList)) {
-            totalScoreSum += queryTaskList.stream().mapToInt(WmTask::getScore).sum();
-        }
-        if (BigDecimal.valueOf(totalScoreSum)
-                .compareTo(BigDecimal.valueOf(scorePackage.getScore())
-                        .multiply(scorePackage.getEntTaskLimit()).divide(new BigDecimal("100"))) > 0) {
-            throw new RuntimeException("已超过积分包的企业任务上限!");
-        }
+		// 校验企业任务类型
+		this.chectDeptTask(taskTypeId, score, scorePackage);
 
         // 保存taskContent
         WmTaskContent taskContent = new WmTaskContent();
@@ -264,59 +222,17 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
     public Boolean saveEntTaskForTaskType63(DeptTaskDTO.TaskType63 params) {
         String taskTypeId = "63";
 
-        // 查询任务类型启用状态
-        List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
-                .eq(WmTaskSubmissionPercentRule::getDeptId, SecurityUtils.getUser().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, taskTypeId)) {
-            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());
-        // 查询任务规则积分
-        WmTaskType wmTaskType = new WmTaskType();
-        wmTaskType.setRuleId(scorePackage.getRuleId());
-        WmTaskType queryTaskType = wmTaskTypeService.getById(taskTypeId);
-        wmTaskType.setTaskTypeName(queryTaskType.getTaskTypeName());
-        int score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
-
-        // 校验是否超过可分配积分值
-        List<WmScorePackage> scorePackagekfpjf =
-                wmScorePackageService.getScorePackagekfpjf(null, SecurityUtils.getUser().getDeptId(),
-                        new String[]{"0", "1", "2"}, new String[]{params.getPackageId()});
-        if (score > scorePackagekfpjf.get(0).getKfpjf()) {
-            throw new RuntimeException("可分配积分不足!");
-        }
-
-        // 校验是否超过积分包企业任务上限
-        List<WmTask> queryTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                .eq(WmTask::getScorePackageId, params.getPackageId())
-                .eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
-                .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
-                .eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val()));
+		// 查询积分包
+		WmScorePackage scorePackage = wmScorePackageService.getById(params.getPackageId());
+		// 查询任务规则积分
+		WmTaskType wmTaskType = new WmTaskType();
+		wmTaskType.setRuleId(scorePackage.getRuleId());
+		WmTaskType queryTaskType = wmTaskTypeService.getById(taskTypeId);
+		wmTaskType.setTaskTypeName(queryTaskType.getTaskTypeName());
+		int score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
 
-        int totalScoreSum = 0;
-        totalScoreSum += score;
-        if (CollUtil.isNotEmpty(queryTaskList)) {
-            totalScoreSum += queryTaskList.stream().mapToInt(WmTask::getScore).sum();
-        }
-        if (BigDecimal.valueOf(totalScoreSum)
-                .compareTo(BigDecimal.valueOf(scorePackage.getScore())
-                        .multiply(scorePackage.getEntTaskLimit()).divide(new BigDecimal("100"))) > 0) {
-            throw new RuntimeException("已超过积分包的企业任务上限!");
-        }
+		// 校验企业任务类型
+		this.chectDeptTask(taskTypeId, score, scorePackage);
 
         // 保存taskContent
         WmTaskContent taskContent = new WmTaskContent();

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

@@ -112,6 +112,11 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		return wmScorePackageMapper.listWmScorePackageAndTask(wmScorePackage, new DataScope());
 	}
 
+	@Override
+	public IPage<WmScorePackage> listWmScorePackageAndTaskExt(Page<WmScorePackage> page, WmScorePackage wmScorePackage) {
+		return wmScorePackageMapper.listWmScorePackageAndTaskExt(page, wmScorePackage);
+	}
+
 	@Override
 	public List<WmScorePackage> listWmScorePackageAndTaskExt(WmScorePackage wmScorePackage) {
 		return wmScorePackageMapper.listWmScorePackageAndTaskExt(wmScorePackage);
@@ -122,12 +127,16 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		return wmScorePackageMapper.listWmScorePackageAndTaskExtOld(wmScorePackage);
 	}
 
+	@Override
+	public IPage<WmScorePackage> listWmScorePackageAndTaskExt2(Page<WmScorePackage> page, WmScorePackage wmScorePackage) {
+		return wmScorePackageMapper.listWmScorePackageAndTaskExt2(page, wmScorePackage);
+	}
+
 	@Override
 	public List<WmScorePackage> listWmScorePackageAndTaskExt2(WmScorePackage wmScorePackage) {
 		return wmScorePackageMapper.listWmScorePackageAndTaskExt2(wmScorePackage);
 	}
 
-
 	@Override
 	public List<WmScorePackage> listWmScorePackageAndTaskExt2Old(WmScorePackage wmScorePackage) {
 		return wmScorePackageMapper.listWmScorePackageAndTaskExt2Old(wmScorePackage);
@@ -3365,7 +3374,12 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
                 if (finalRelatedTaskScoresMap.containsKey(packageId)) {
 					score -= finalRelatedTaskScoresMap.get(packageId);
                 }
-                pkg.setKfpjf(score);
+
+				// 实际可下发积分值 = 可分配积分值 / (1+审核管理费比例)
+				int actualScore = BigDecimal.valueOf(score).divide(
+						pkg.getAuditManagementFeeRates().divide(new BigDecimal("100.00")).add(BigDecimal.ONE)
+				).intValue();
+				pkg.setKfpjf(actualScore);
 			});
 		}