Browse Source

fix: 单一任务批量审核sql查询超时问题修复

lixuesong 2 years ago
parent
commit
d21efec11c

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

@@ -563,7 +563,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			String waitStatus = "";
 			if (ArrayUtil.containsAll(entTaskStatus, "1", "2")) {
 				// 通过+不通过
-				approvedStatus = "1,2";
+				approvedStatus = "3";
 			} else if (ArrayUtil.contains(entTaskStatus, "1")) {
 				// 通过
 				approvedStatus = "1";
@@ -575,6 +575,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 				// 待审核
 				waitStatus = "0";
 			}
+			entTaskStatusMap.put("entTaskStatus", entTaskStatus);
 			entTaskStatusMap.put("approvedStatus", approvedStatus);
 			entTaskStatusMap.put("waitStatus", waitStatus);
 //			queryReport.setEntTaskStatus(entTaskStatusMap);

+ 17 - 6
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

@@ -1350,20 +1350,31 @@ FROM
 			t.report_drug_id in (select id from wm_report where drug_ent_id=#{query.drugEntId})
 		)
 		<if test="query.approvedStatus != null and query.waitStatus != 0">
-			and (t.report_drug_approval_opinion in ( #{query.approvedStatus})
-				or t.report_one_approval_opinion in ( #{query.approvedStatus}))
+			and (t.report_drug_approval_opinion in
+				<foreach collection="query.entTaskStatus" item="item" index="index" separator="," open="(" close=")">
+					#{item}
+				</foreach>
+				or t.report_one_approval_opinion in
+				<foreach collection="query.entTaskStatus" item="item" index="index" separator="," open="(" close=")">
+					#{item}
+				</foreach>
+			)
 		</if>
 		<if test="query.approvedStatus == null and query.waitStatus == 0">
 			and (t.report_drug_approval_opinion is null
 			or t.report_one_approval_opinion is null)
 		</if>
-		<if test="query.approvedStatus == '1' and query.waitStatus == 0">
+		<if test="query.approvedStatus == 1 and query.waitStatus == 0">
 			and (t.report_drug_approval_opinion != '2'
-			or t.report_one_approval_opinion != '2')
+			or t.report_one_approval_opinion != '2'
+			or t.report_drug_approval_opinion is null
+			or t.report_one_approval_opinion is null)
 		</if>
-		<if test="query.approvedStatus == '2' and query.waitStatus == 0">
+		<if test="query.approvedStatus == 2 and query.waitStatus == 0">
 			and (t.report_drug_approval_opinion != '1'
-			or t.report_one_approval_opinion != '1')
+			or t.report_one_approval_opinion != '1'
+			or t.report_drug_approval_opinion is null
+			or t.report_one_approval_opinion is null)
 		</if>
 
 	</select>