Przeglądaj źródła

fix: 快速批量审核更新调查信息数据问题

李学松 2 lat temu
rodzic
commit
6ea5172136

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskService.java

@@ -219,4 +219,13 @@ public interface WmTaskService extends IService<WmTask> {
 	 * @return 审核结果
 	 */
 	Boolean batchApprovalTask(List<String> idList, String taskStatus, String taskStatusInfo);
+
+	/**
+	 * 更新调查信息数据
+	 *
+	 * @param task 任务信息
+	 * @param taskStatus 审核状态
+	 * @param taskStatusInfo 审批说明
+	 */
+	void task15_30_16_18(WmTask task, String taskStatus, String taskStatusInfo);
 }

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

@@ -366,6 +366,13 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			throw new RuntimeException("任务积分包状态不支持复审");
 		}
 
+		String taskStatus = "1".equals(approvalOpinion) ?
+				TaskStatusEnum.APPROVED.val() : TaskStatusEnum.FAIL_APPROVED.val();
+		if (StrUtil.equals(taskStatus, TaskStatusEnum.APPROVED.val())) {
+			// 复审通过,才操作
+			wmTaskService.task15_30_16_18(queryTask, taskStatus, null);
+		}
+
 		// STEP1: 更新任务企业审核状态
 		LambdaUpdateWrapper<WmTask> updateTaskWrapper = new LambdaUpdateWrapper<>();
 		updateTaskWrapper.eq(WmTask::getId, taskId);
@@ -394,8 +401,6 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			}
 		}
 		// 审核状态同步
-		String taskStatus = "1".equals(approvalOpinion) ?
-				TaskStatusEnum.APPROVED.val() : TaskStatusEnum.FAIL_APPROVED.val();
 		updateTaskWrapper.set(WmTask::getTaskStatus, taskStatus);
 		updateTaskWrapper.set(WmTask::getRealFlag, "0");
 		updateTaskWrapper.set(WmTask::getDeptReviewTaskCount, 1);
@@ -561,6 +566,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
 		// 批量查询积分包
 		List<WmScorePackage> taskScorePackages = wmScorePackageService.listByIds(scorePackageIds);
+		Map<String, WmScorePackage> scorePackageMap = taskScorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
 
 		// 查询企业对应的积分包
 		Integer reportScorePackageId = queryReport.getScoreId();
@@ -573,6 +579,12 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 				throw new RuntimeException("任务不存在");
 			}
 
+			// STEP4: 如果是源头积分包,则判断是否审核入库调查信息
+			WmScorePackage taskScorePackage = scorePackageMap.get(queryTask.getScorePackageId());
+			if (StringUtils.isBlank(taskScorePackage.getRelationScoreId())) {
+				wmTaskService.task15_30_16_18(queryTask, "1".equals(approvalOpinion) ? "3" : "4", approvalInfo);
+			}
+
 			// STEP1: 更新任务企业审核状态
 			LambdaUpdateWrapper<WmTask> updateTaskWrapper = new LambdaUpdateWrapper<>();
 			updateTaskWrapper.eq(WmTask::getId, id);
@@ -603,6 +615,8 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			// 审核不通过状态同步
 			if ("2".equals(approvalOpinion)) {
 				updateTaskWrapper.set(WmTask::getTaskStatus, TaskStatusEnum.FAIL_APPROVED.val());
+			} else {
+				updateTaskWrapper.set(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val());
 			}
 			updateTaskWrapper.set(WmTask::getRealFlag, "0");
 			updateTaskWrapper.set(WmTask::getUpdateTime, now);

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

@@ -2538,6 +2538,14 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			throw new RuntimeException("积分包状态不支持复审");
 		}
 
+		// STEP4: 如果是源头积分包,则判断是否审核入库调查信息
+		if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
+			if (StrUtil.equals(taskStatus, TaskStatusEnum.APPROVED.val())) {
+				// 复审通过,才操作
+				this.task15_30_16_18(queryTask, taskStatus, taskStatusInfo);
+			}
+		}
+
 		// STEP1:更新task状态
 		LambdaUpdateWrapper<WmTask> taskUpdateWrapper = Wrappers.<WmTask>lambdaUpdate()
 				.eq(WmTask::getId, id)
@@ -2621,11 +2629,6 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			throw new RuntimeException("操作失败,请重试");
 		}
 
-		// STEP4: 如果是源头积分包,则判断是否审核入库调查信息
-		if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
-			this.task15_30_16_18(queryTask, taskStatus, taskStatusInfo);
-		}
-
 		// 移除图片缓存
 //		this.removePicCache(queryTask);
 
@@ -2675,6 +2678,11 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 				throw new RuntimeException("已生成报告");
 			}
 
+			// STEP4: 如果是源头积分包,则判断是否审核入库调查信息
+			if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
+				this.task15_30_16_18(queryTask, taskStatus, taskStatusInfo);
+			}
+
 			// STEP1:更新task状态
 			LambdaUpdateWrapper<WmTask> taskUpdateWrapper = Wrappers.<WmTask>lambdaUpdate()
 					.eq(WmTask::getId, id)
@@ -2778,11 +2786,8 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 	 * @param taskStatus 审核状态
 	 * @param taskStatusInfo 审批说明
 	 */
-	private void task15_30_16_18(WmTask task, String taskStatus, String taskStatusInfo) {
-		if (!StrUtil.equals(taskStatus, TaskStatusEnum.FAIL_APPROVED.val())) {
-			// 复审不通过,暂不进行回退操作
-			return;
-		}
+	public void task15_30_16_18(WmTask task, String taskStatus, String taskStatusInfo) {
+
 		// 调查信息审核(15、30-医院 16-商业公司 18-药店)
 		String approvalOpinion = taskStatus.equals(TaskStatusEnum.APPROVED.val()) ? "1" : "2";
 		if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
@@ -2793,6 +2798,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			paramMap.put("approvalOpinion", approvalOpinion);
 			paramMap.put("compareResult", _wmTask.getCompareResult());
 			paramMap.put("taskId", task.getId());
+			log.info("更新调查信息数据hospital:{}", paramMap);
 			wmDaHospitalService.updateByApproval(paramMap);
 		} else if ("16".equals(task.getTaskTypeId())) {
 			Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
@@ -2802,6 +2808,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			paramMap.put("approvalOpinion", approvalOpinion);
 			paramMap.put("compareResult", _wmTask.getCompareResult());
 			paramMap.put("taskId", task.getId());
+			log.info("更新调查信息数据distribution:{}", paramMap);
 			wmDaDistributionService.updateByApproval(paramMap);
 		} else if ("18".equals(task.getTaskTypeId())) {
 			Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
@@ -2813,6 +2820,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			paramMap.put("approvalOpinion", approvalOpinion);
 			paramMap.put("compareResult", _wmTask.getCompareResult());
 			paramMap.put("taskId", task.getId());
+			log.info("更新调查信息数据pharmacy:{}", paramMap);
 			wmDaPharmacyService.updateByapproval(paramMap);
 		}
 	}