Browse Source

feat: 接单对象范围筛选条件

lixuesong 1 year ago
parent
commit
c59e128f9c

+ 71 - 16
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -2454,6 +2454,55 @@ public class WmScorePackageController {
 		return wmScorePackageService.getRelationScoreList(wmScorePackage);
 	}
 
+	/**
+	 * 查询接单对象范围
+	 *
+	 * @return {@link R}<{@link ?}>
+	 */
+	@GetMapping("/list-package-user-scope")
+	public R<?> listPackageUserScope() {
+		Integer sendDeptId = SecurityUtils.getUser().getDeptId();
+
+		QueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>query()
+				.select("package_user_scope")
+				.and(wrapper ->
+						wrapper.eq("package_type1", PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val())
+								.eq("package_type2", PackageTypeEnum.TYPE2_TASK_PACKAGE.val())
+								.or(wrapper2 -> wrapper2.eq("package_type1", PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val())
+										.eq("package_type2", PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val())))
+				.eq("send_package_dept_id", sendDeptId)
+				.in("typeid", "3", "4", "5");
+		List<WmScorePackage> packages = wmScorePackageService.list(queryWrapper);
+		if (CollUtil.isEmpty(packages)) {
+			return R.ok(Collections.emptyList());
+		}
+
+		List<String> pacakgeUserScores = packages.stream()
+				.map(WmScorePackage::getPackageUserScope)
+				.distinct().sorted().collect(Collectors.toList());
+
+		List<Map<String, String>> result = new ArrayList<>();
+		Map<String, String> val1 = new HashMap<>();
+		val1.put("id", "1");
+		val1.put("name", "仅内部可见");
+		Map<String, String> val2 = new HashMap<>();
+		val2.put("id", "2");
+		val2.put("name", "全部可见");
+		result.add(val1);
+		result.add(val2);
+		// 查询团队名称
+		List<WmTeam> teams = wmTeamService.listByIds(pacakgeUserScores);
+		List<Map<String, String>> teamNameList = teams.stream().map(t -> {
+			Map<String, String> teamNameMap = new HashMap<>(2);
+			teamNameMap.put("id", String.valueOf(t.getId()));
+			teamNameMap.put("name", t.getName());
+			return teamNameMap;
+		}).collect(Collectors.toList());
+		result.addAll(teamNameList);
+
+		return R.ok(result);
+	}
+
 	/**
 	 * 分配积分列表查询--派工平台
 	 *
@@ -2471,7 +2520,8 @@ public class WmScorePackageController {
 									@RequestParam(value = "monthEnd", required = false) String monthEnd,
 									@RequestParam(value = "acceptUser", required = false) String acceptUser,
 									@RequestParam(value = "relationScoreId", required = false) String relationScoreId,
-									@RequestParam(value = "toApproval", required = false) Boolean toApproval
+									@RequestParam(value = "toApproval", required = false) Boolean toApproval,
+									@RequestParam(value = "packageUserScope", required = false) String packageUserScope
 	) {
 
 		Integer sendDeptId = SecurityUtils.getUser().getDeptId();
@@ -2506,21 +2556,26 @@ public class WmScorePackageController {
 			queryWrapper.in("p.typeid", split);
 		}
 
-		boolean onePersonScorePackageFlag = PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val().equals(String.valueOf(packageType1))
-				&& PackageTypeEnum.TYPE2_TASK_PACKAGE.val().equals(String.valueOf(packageType2));
-		boolean multiPersonScorePackageFlag = PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(String.valueOf(packageType1))
-				&& PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(String.valueOf(packageType2));
-		if (onePersonScorePackageFlag || multiPersonScorePackageFlag) {
-			// 如果是个人承接-按积分值/多人承接-按积分值,判断当前用户是否配置了团队负责人
-			List<WmTeam> teamList = wmTeamService.list(Wrappers.<WmTeam>lambdaQuery()
-					.eq(WmTeam::getDeptId, sendDeptId)
-					.eq(WmTeam::getEnableFlag, EnableEnum.ENABLE.val())
-					.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val())
-					.apply("FIND_IN_SET({0}, leader)", String.valueOf(userId)));
-			if (CollectionUtil.isNotEmpty(teamList)) {
-				// 如果配置了,则只查询所在团队下发的积分包
-				List<String> teamIdList = teamList.stream().map(wmTeam -> String.valueOf(wmTeam.getId())).collect(Collectors.toList());
-				queryWrapper.in("p.package_user_scope", teamIdList);
+		// 接单对象范围筛选
+		if (StrUtil.isNotBlank(packageUserScope)) {
+			queryWrapper.eq("p.package_user_scope", packageUserScope);
+		} else {
+			boolean onePersonScorePackageFlag = PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val().equals(String.valueOf(packageType1))
+					&& PackageTypeEnum.TYPE2_TASK_PACKAGE.val().equals(String.valueOf(packageType2));
+			boolean multiPersonScorePackageFlag = PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(String.valueOf(packageType1))
+					&& PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(String.valueOf(packageType2));
+			if (onePersonScorePackageFlag || multiPersonScorePackageFlag) {
+				// 如果是个人承接-按积分值/多人承接-按积分值,判断当前用户是否配置了团队负责人
+				List<WmTeam> teamList = wmTeamService.list(Wrappers.<WmTeam>lambdaQuery()
+						.eq(WmTeam::getDeptId, sendDeptId)
+						.eq(WmTeam::getEnableFlag, EnableEnum.ENABLE.val())
+						.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val())
+						.apply("FIND_IN_SET({0}, leader)", String.valueOf(userId)));
+				if (CollectionUtil.isNotEmpty(teamList)) {
+					// 如果配置了,则只查询所在团队下发的积分包
+					List<String> teamIdList = teamList.stream().map(wmTeam -> String.valueOf(wmTeam.getId())).collect(Collectors.toList());
+					queryWrapper.in("p.package_user_scope", teamIdList);
+				}
 			}
 		}