Explorar el Código

revert: 还原批量审核

还原批量审核
shc hace 3 años
padre
commit
364127bac6

+ 238 - 109
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskServiceImpl.java

@@ -20,6 +20,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -1441,6 +1442,143 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 		return R.ok(wmTaskMapper.getWmTaskList(page, wmTask));
 	}
 
+	// /**
+	//  * 任务审核,要针对每一个接单用户,每一个用户的任务全部审核完毕,才算是积分包完成
+	//  *
+	//  * @param wmTask
+	//  * @return
+	//  */
+	// @Override
+	// @Transactional(rollbackFor = Exception.class)
+	// public R approvalTask(WmTask wmTask) {
+	// 	//要循环判断,每一个接单用户,所有用户完成,审核通过,才算是积分包完成
+	// 	//有没有什么问题,例如,个人包收回,影响积分包的积分值
+	// 	String[] ids = wmTask.getId().split(",");
+	// 	if (ids.length <= 0) {
+	// 		return R.failed("缺少参数!");
+	// 	}
+	//
+	// 	LambdaUpdateWrapper<WmTask> updateWrapper = new LambdaUpdateWrapper();
+	// 	updateWrapper.in(WmTask::getId, ids);
+	// 	List<WmTask> wmTaskList = list(updateWrapper);
+	//
+	// 	// 由于批量审批的任务可能是不同积分包下的任务,所以这里需要根据积分包进行分组,分别处理不同积分包下的任务和积分包状态
+	// 	Set<String> scorePackageIdSet = wmTaskList.stream().map(WmTask::getScorePackageId).collect(Collectors.toSet());
+	// 	scorePackageIdSet.forEach(packageId -> {
+	// 		// 根据积分包id,拆分不同积分包下的任务,进行分别处理
+	//
+	// 		WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
+	// 		List<WmTask> subTaskList = wmTaskList.stream()
+	// 				.filter(subTask -> subTask.getScorePackageId().equals(packageId))
+	// 				.collect(Collectors.toList());
+	//
+	// 		// 如果是源头积分包,则判断是否审核入库调查信息
+	// 		if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
+	// 			// 调查信息审核(15、30-医院 16-商业公司 18-药店)
+	// 			subTaskList.forEach(task -> {
+	// 				String approvalOpinion = wmTask.getTaskStatus().equals(TaskStatusEnum.APPROVED.val()) ? "1" : "2";
+	// 				if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
+	// 					Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
+	// 					WmTask _wmTask = (WmTask) data.get("wmTask");
+	// 					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+	// 					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+	// 					paramMap.put("approvalOpinion", approvalOpinion);
+	// 					paramMap.put("compareResult", _wmTask.getCompareResult());
+	// 					paramMap.put("taskId", task.getId());
+	// 					wmDaHospitalService.updateByApproval(paramMap);
+	// 				} else if ("16".equals(task.getTaskTypeId())) {
+	// 					Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
+	// 					WmTask _wmTask = (WmTask) data.get("wmTask");
+	// 					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+	// 					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+	// 					paramMap.put("approvalOpinion", approvalOpinion);
+	// 					paramMap.put("compareResult", _wmTask.getCompareResult());
+	// 					paramMap.put("taskId", task.getId());
+	// 					wmDaDistributionService.updateByApproval(paramMap);
+	// 				} else if ("18".equals(task.getTaskTypeId())) {
+	// 					Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
+	// 					WmTask _wmTask = (WmTask) data.get("_wmTask");
+	// 					WmDaPharmacy info = (WmDaPharmacy) data.get("info");
+	// 					Map<String, String> paramMap = MapUtil.newHashMap(4);
+	// 					paramMap.put("infoId", info.getId());
+	// 					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+	// 					paramMap.put("approvalOpinion", approvalOpinion);
+	// 					paramMap.put("compareResult", _wmTask.getCompareResult());
+	// 					paramMap.put("taskId", task.getId());
+	// 					wmDaPharmacyService.updateByapproval(paramMap);
+	// 				}
+	// 			});
+	// 		}
+	//
+	// 		switch (wmTask.getTaskStatus()){
+	// 			case "3": // 审核通过
+	//
+	// 				// 获取用户积分系统上线
+	// 				String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
+	// 				log.warn("系统当前限制积分上限:【{}】", value);
+	// 				int limit = StringUtils.isEmpty(value) ? 30000 : Integer.parseInt(value);
+	//
+	// 				List<WmTask> bathList = new ArrayList<>(subTaskList.size());
+	//
+	// 				Map<String, Map<LocalDate, List<WmTask>>> collect = subTaskList.stream()
+	// 						.collect(Collectors.groupingBy(WmTask::getTaskUserId, Collectors.groupingBy(task -> task.getCreateTime()
+	// 								.toLocalDate())));
+	// 				if (CollectionUtil.isNotEmpty(collect)){
+	// 					for (Map.Entry<String,Map<LocalDate, List<WmTask>>> outer : collect.entrySet()){
+	// 						String userId = outer.getKey();
+	// 						Map<LocalDate, List<WmTask>> outerValue = outer.getValue();
+	// 						for (Map.Entry<LocalDate, List<WmTask>> inner : outerValue.entrySet()){
+	// 							LocalDate localDate = inner.getKey();
+	// 							List<WmTask> taskList = inner.getValue();
+	// 							int amount = baseMapper.newGetUserTaskSubScore(userId, LocalDateTime.of(localDate,LocalTime.MIN), LocalDateTime.of(localDate,LocalTime.MAX));
+	// 							boolean flag = amount > limit;
+	// 							for (WmTask t : taskList) {
+	// 								if ((amount += t.getScore()) >= limit) {
+	// 									if (flag) {
+	// 										t.setScore(0);
+	// 									}
+	// 									flag = true;
+	// 								}
+	// 								t.setTaskStatus("3");
+	// 								t.setRealFlag("0");
+	// 								t.setUpdateTime(LocalDateTime.now());
+	// 							}
+	// 							bathList.addAll(taskList);
+	// 						}
+	// 					}
+	// 				}
+	//
+	// 				updateBatchById(bathList);
+	// 				break;
+	// 			case "4": // 审核不通过
+	// 				updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
+	// 				updateWrapper.set(WmTask::getRealFlag, "0");
+	// 				this.update(updateWrapper);
+	// 				break;
+	// 		}
+	//
+	// 		subTaskList.forEach(task -> {
+	// 			WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
+	// 			scorePackageStatus.setPackageId(wmScorePackage.getId());
+	// 			scorePackageStatus.setUserId(task.getTaskUserId());
+	// 			scorePackageStatus.setStatus("2");//接单审核通过
+	// 			List<WmScorePackageStatus> scorePackageStatusList = wmScorePackageStatusService.list(Wrappers.query(scorePackageStatus));
+	//
+	// 			if (CollectionUtil.isNotEmpty(scorePackageStatusList)) {
+	// 				scorePackageStatus = scorePackageStatusList.get(0);
+	// 				wmScorePackageStatusService.updatePackageAndStatus(task, wmScorePackage, scorePackageStatus);
+	// 			}
+	// 		});
+	//
+	//
+	// 		//判断已审核的任务积分值,或者积分个数是否满了,如果满了,就将所有未审核的任务,更新成审核不通过
+	// 		//即,将real_flag=9更新成real_flag=1,将task_status=2更新成task_status=4
+	// 		wmScorePackageStatusService.updateScorePackageStatus(packageId);
+	// 	});
+	//
+	// 	return R.ok("审核成功");
+	// }
+
 	/**
 	 * 任务审核,要针对每一个接单用户,每一个用户的任务全部审核完毕,才算是积分包完成
 	 *
@@ -1461,120 +1599,111 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 		updateWrapper.in(WmTask::getId, ids);
 		List<WmTask> wmTaskList = list(updateWrapper);
 
-		// 由于批量审批的任务可能是不同积分包下的任务,所以这里需要根据积分包进行分组,分别处理不同积分包下的任务和积分包状态
-		Set<String> scorePackageIdSet = wmTaskList.stream().map(WmTask::getScorePackageId).collect(Collectors.toSet());
-		scorePackageIdSet.forEach(packageId -> {
-			// 根据积分包id,拆分不同积分包下的任务,进行分别处理
-
-			WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
-			List<WmTask> subTaskList = wmTaskList.stream()
-					.filter(subTask -> subTask.getScorePackageId().equals(packageId))
-					.collect(Collectors.toList());
-
-			// 如果是源头积分包,则判断是否审核入库调查信息
-			if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
-				// 调查信息审核(15、30-医院 16-商业公司 18-药店)
-				subTaskList.forEach(task -> {
-					String approvalOpinion = wmTask.getTaskStatus().equals(TaskStatusEnum.APPROVED.val()) ? "1" : "2";
-					if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
-						Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
-						WmTask _wmTask = (WmTask) data.get("wmTask");
-						Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
-						paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
-						paramMap.put("approvalOpinion", approvalOpinion);
-						paramMap.put("compareResult", _wmTask.getCompareResult());
-						paramMap.put("taskId", task.getId());
-						wmDaHospitalService.updateByApproval(paramMap);
-					} else if ("16".equals(task.getTaskTypeId())) {
-						Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
-						WmTask _wmTask = (WmTask) data.get("wmTask");
-						Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
-						paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
-						paramMap.put("approvalOpinion", approvalOpinion);
-						paramMap.put("compareResult", _wmTask.getCompareResult());
-						paramMap.put("taskId", task.getId());
-						wmDaDistributionService.updateByApproval(paramMap);
-					} else if ("18".equals(task.getTaskTypeId())) {
-						Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
-						WmTask _wmTask = (WmTask) data.get("_wmTask");
-						WmDaPharmacy info = (WmDaPharmacy) data.get("info");
-						Map<String, String> paramMap = MapUtil.newHashMap(4);
-						paramMap.put("infoId", info.getId());
-						paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
-						paramMap.put("approvalOpinion", approvalOpinion);
-						paramMap.put("compareResult", _wmTask.getCompareResult());
-						paramMap.put("taskId", task.getId());
-						wmDaPharmacyService.updateByapproval(paramMap);
-					}
-				});
-			}
+		String scorePackageId = wmTaskList.get(0).getScorePackageId();
+		WmScorePackage wmScorePackage = wmScorePackageService.getById(scorePackageId);
+
+		// 如果是源头积分包,则判断是否审核入库调查信息
+		if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
+			// 调查信息审核(15、30-医院 16-商业公司 18-药店)
+			wmTaskList.forEach(task -> {
+				String approvalOpinion = wmTask.getTaskStatus().equals(TaskStatusEnum.APPROVED.val()) ? "1" : "2";
+				if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaHospitalService.updateByApproval(paramMap);
+				} else if ("16".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaDistributionService.updateByApproval(paramMap);
+				} else if ("18".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("_wmTask");
+					WmDaPharmacy info = (WmDaPharmacy) data.get("info");
+					Map<String, String> paramMap = MapUtil.newHashMap(4);
+					paramMap.put("infoId", info.getId());
+					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaPharmacyService.updateByapproval(paramMap);
+				}
+			});
+		}
 
-			switch (wmTask.getTaskStatus()){
-				case "3": // 审核通过
-
-					// 获取用户积分系统上线
-					String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-					log.warn("系统当前限制积分上限:【{}】", value);
-					int limit = StringUtils.isEmpty(value) ? 30000 : Integer.parseInt(value);
-
-					List<WmTask> bathList = new ArrayList<>(subTaskList.size());
-
-					Map<String, Map<LocalDate, List<WmTask>>> collect = subTaskList.stream()
-							.collect(Collectors.groupingBy(WmTask::getTaskUserId, Collectors.groupingBy(task -> task.getCreateTime()
-									.toLocalDate())));
-					if (CollectionUtil.isNotEmpty(collect)){
-						for (Map.Entry<String,Map<LocalDate, List<WmTask>>> outer : collect.entrySet()){
-							String userId = outer.getKey();
-							Map<LocalDate, List<WmTask>> outerValue = outer.getValue();
-							for (Map.Entry<LocalDate, List<WmTask>> inner : outerValue.entrySet()){
-								LocalDate localDate = inner.getKey();
-								List<WmTask> taskList = inner.getValue();
-								int amount = baseMapper.newGetUserTaskSubScore(userId, LocalDateTime.of(localDate,LocalTime.MIN), LocalDateTime.of(localDate,LocalTime.MAX));
-								boolean flag = amount > limit;
-								for (WmTask t : taskList) {
-									if ((amount += t.getScore()) >= limit) {
-										if (flag) {
-											t.setScore(0);
-										}
-										flag = true;
+		switch (wmTask.getTaskStatus()){
+			case "3": // 审核通过
+
+				// 获取用户积分系统上线
+				String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
+				log.warn("系统当前限制积分上限:【{}】", value);
+				int limit = StringUtils.isEmpty(value) ? 30000 : Integer.parseInt(value);
+
+				List<WmTask> bathList = new ArrayList<>(wmTaskList.size());
+
+				Map<String, Map<LocalDate, List<WmTask>>> collect = wmTaskList.stream()
+						.collect(Collectors.groupingBy(WmTask::getTaskUserId, Collectors.groupingBy(task -> task.getCreateTime()
+								.toLocalDate())));
+				if (CollectionUtil.isNotEmpty(collect)){
+					for (Map.Entry<String,Map<LocalDate, List<WmTask>>> outer : collect.entrySet()){
+						String userId = outer.getKey();
+						Map<LocalDate, List<WmTask>> outerValue = outer.getValue();
+						for (Map.Entry<LocalDate, List<WmTask>> inner : outerValue.entrySet()){
+							LocalDate localDate = inner.getKey();
+							List<WmTask> taskList = inner.getValue();
+							int amount = baseMapper.newGetUserTaskSubScore(userId, LocalDateTime.of(localDate,LocalTime.MIN), LocalDateTime.of(localDate,LocalTime.MAX));
+							boolean flag = amount > limit;
+							for (WmTask t : taskList) {
+								if ((amount += t.getScore()) >= limit) {
+									if (flag) {
+										t.setScore(0);
 									}
-									t.setTaskStatus("3");
-									t.setRealFlag("0");
-									t.setUpdateTime(LocalDateTime.now());
+									flag = true;
 								}
-								bathList.addAll(taskList);
+								t.setTaskStatus("3");
+								t.setRealFlag("0");
+								t.setUpdateTime(LocalDateTime.now());
 							}
+							bathList.addAll(taskList);
 						}
 					}
-
-					updateBatchById(bathList);
-					break;
-				case "4": // 审核不通过
-					updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
-					updateWrapper.set(WmTask::getRealFlag, "0");
-					this.update(updateWrapper);
-					break;
-			}
-
-			subTaskList.forEach(task -> {
-				WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
-				scorePackageStatus.setPackageId(wmScorePackage.getId());
-				scorePackageStatus.setUserId(task.getTaskUserId());
-				scorePackageStatus.setStatus("2");//接单审核通过
-				List<WmScorePackageStatus> scorePackageStatusList = wmScorePackageStatusService.list(Wrappers.query(scorePackageStatus));
-
-				if (CollectionUtil.isNotEmpty(scorePackageStatusList)) {
-					scorePackageStatus = scorePackageStatusList.get(0);
-					wmScorePackageStatusService.updatePackageAndStatus(task, wmScorePackage, scorePackageStatus);
 				}
-			});
 
+				updateBatchById(bathList);
+				break;
+			case "4": // 审核不通过
+				updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
+				updateWrapper.set(WmTask::getRealFlag, "0");
+				this.update(updateWrapper);
+				break;
+		}
+
+		wmTaskList.forEach(task -> {
+			WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
+			scorePackageStatus.setPackageId(wmScorePackage.getId());
+			scorePackageStatus.setUserId(task.getTaskUserId());
+			scorePackageStatus.setStatus("2");//接单审核通过
+			List<WmScorePackageStatus> scorePackageStatusList = wmScorePackageStatusService.list(Wrappers.query(scorePackageStatus));
 
-			//判断已审核的任务积分值,或者积分个数是否满了,如果满了,就将所有未审核的任务,更新成审核不通过
-			//即,将real_flag=9更新成real_flag=1,将task_status=2更新成task_status=4
-			wmScorePackageStatusService.updateScorePackageStatus(packageId);
+			if (CollectionUtil.isNotEmpty(scorePackageStatusList)) {
+				scorePackageStatus = scorePackageStatusList.get(0);
+				wmScorePackageStatusService.updatePackageAndStatus(task, wmScorePackage, scorePackageStatus);
+			}
 		});
 
+		//判断已审核的任务积分值,或者积分个数是否满了,如果满了,就将所有未审核的任务,更新成审核不通过
+		//即,将real_flag=9更新成real_flag=1,将task_status=2更新成task_status=4
+		wmScorePackageStatusService.updateScorePackageStatus(scorePackageId);
+
 		return R.ok("审核成功");
 	}
 
@@ -2006,7 +2135,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 						.eq(WmTask::getTaskStatus, "3")
 				);
 
-				if (scorePackage.getTaskNum() - wmTasks.size() < index ){
+				if (scorePackage.getTaskNum() - wmTasks.size() < index) {
 					log.error("超出设定任务数");
 					errorMap(errorMap, "超出设定任务数", commonEvidenceDTO.getId());
 					return;
@@ -2029,12 +2158,12 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 
 				// 校验结算金额 0.5~2
 				double min = new BigDecimal(scorePackage.getScore())
-						.divide(new BigDecimal(scorePackage.getTaskNum()),2,RoundingMode.HALF_EVEN)
+						.divide(new BigDecimal(scorePackage.getTaskNum()), 2, RoundingMode.HALF_EVEN)
 						.multiply(new BigDecimal("0.5"))
 						.setScale(2, RoundingMode.HALF_EVEN)
 						.doubleValue();
 				double max = new BigDecimal(scorePackage.getScore())
-						.divide(new BigDecimal(scorePackage.getTaskNum()),2,RoundingMode.HALF_EVEN)
+						.divide(new BigDecimal(scorePackage.getTaskNum()), 2, RoundingMode.HALF_EVEN)
 						.multiply(new BigDecimal("2.0"))
 						.setScale(2, RoundingMode.HALF_EVEN)
 						.doubleValue();
@@ -2335,9 +2464,9 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 	 * 查询会议任务个数
 	 *
 	 * @param taskTypeList 任务类型列表
-	 * @param taskUserId 用户id
-	 * @param startTime 会议时间范围-开始
-	 * @param endTime 会议时间范围-结束
+	 * @param taskUserId   用户id
+	 * @param startTime    会议时间范围-开始
+	 * @param endTime      会议时间范围-结束
 	 * @return 会议任务个数
 	 */
 	@Override