Ver código fonte

fix: 1. 校验可分配积分制;2.更新批量审批

shc 3 anos atrás
pai
commit
84feed5911

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

@@ -430,10 +430,7 @@ public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageS
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public Map<String, Integer> approvalStatusBatch(WmScorePackageStatusBatch statusBatch) {
-		// 封装结果实体
-		Map<String, Integer> result = new HashMap<>(2);
-		result.put("operation", 0);
-		result.put("remain", 0);
+
 
 		// 获取批量操作id集合
 		List<Integer> idList =
@@ -442,21 +439,34 @@ public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageS
 						.map(Integer::parseInt)
 						.collect(Collectors.toList());
 
-		for (Integer id : idList) {
-			oneByOne(id, statusBatch.getStatus(), result);
+		Map<String, List<WmScorePackageStatus>> collect = this.listByIds(idList).stream().collect(Collectors.groupingBy(WmScorePackageStatus::getPackageId));
+
+		int operation = 0;
+		int remain = 0;
+		for (Map.Entry<String, List<WmScorePackageStatus>> entity : collect.entrySet()){
+
+			List<WmScorePackageStatus> val = entity.getValue();
+
+			if (val.size() > 1){
+				remain++;
+			} else {
+				oneByOne(val.get(0), statusBatch.getStatus());
+				operation++;
+			}
+
+
 		}
 
+		// 封装结果实体
+		Map<String, Integer> result = new HashMap<>(2);
+		result.put("operation", operation);
+		result.put("remain", remain);
 		return result;
 	}
 
-	private void oneByOne(Integer statusId, WmScorePackageStatusBatch.ApprovalStatus approvalStatus, Map<String, Integer> result) {
+	private Integer oneByOne(WmScorePackageStatus status, WmScorePackageStatusBatch.ApprovalStatus approvalStatus) {
 
-		// 获取结果数
-		int operation = result.get("operation");
-		int remain = result.get("remain");
-
-		// 查询领包记录
-		WmScorePackageStatus status = this.getById(statusId);
+		int res = 0;
 
 		// 获取积分包
 		WmScorePackage wmScorePackage = wmScorePackageMapper.selectById(status.getPackageId());
@@ -505,21 +515,16 @@ public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageS
 					wmScorePackage.setReceiveDate(LocalDateTime.now());
 					wmScorePackage.setIsReceive("1");//不允许接单
 					wmScorePackageMapper.updateById(wmScorePackage);
-					operation += 1;
-				} else {
-					remain += 1;
 				}
-
 				break;
 			case REJECTED:
 				status.setStatus("3");
 				status.setTaskAddFlag("0");//不可以新增任务
 				status.setUserId(null);
 				this.updateById(status);
-				operation += 1;
 				break;
 			default:
-				remain += 1;
+				res = -1;
 
 		}
 
@@ -557,10 +562,8 @@ public class WmScorePackageStatusServiceImpl extends ServiceImpl<WmScorePackageS
 
 		wmScorePackageMapper.updateById(wmScorePackage);
 
-
-		result.put("operation", operation);
-		result.put("remain", remain);
-
+		return res;
 	}
 
+
 }