Browse Source

feat: 企业承接包-可做任务分值校验(考虑审核管理费的情况)2

lixuesong 1 year ago
parent
commit
f45e473d4c

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

@@ -17,6 +17,7 @@ import com.qunzhixinxi.hnqz.admin.entity.dto.DeptTaskDTO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
 import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
@@ -37,7 +38,9 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -740,8 +743,26 @@ public class WmDeptTaskServiceImpl implements WmDeptTaskService {
 			throw new RuntimeException("有效任务类型未启用该任务!");
 		}
 
+		Set<String> allPackageIds = new HashSet<>();
+		allPackageIds.add(scorePackage.getId());
+		// 查询所有子包值
+		List<WmScorePackage> subPackageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
+				.eq(WmScorePackage::getRelationScoreId, scorePackage.getId())
+				.ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
+		if (CollUtil.isNotEmpty(subPackageList)) {
+			Set<String> subPackageIds = subPackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
+			allPackageIds.addAll(subPackageIds);
+			// 查询所有子子包值
+			List<WmScorePackage> subSubPackageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
+					.in(WmScorePackage::getRelationScoreId, subPackageIds)
+					.ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
+			if (CollUtil.isNotEmpty(subSubPackageList)) {
+				Set<String> subSubPackageIds = subSubPackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
+				allPackageIds.addAll(subSubPackageIds);
+			}
+		}
 		List<WmTask> queryTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-				.eq(WmTask::getScorePackageId, scorePackage.getId())
+				.in(WmTask::getScorePackageId, allPackageIds)
 				.eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
 				.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
 				.eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val()));