Fix Bug #571: 修复检验申请撤回操作状态校验逻辑不一致
根因:SQL查询使用EXISTS判断(任一ServiceRequest为ACTIVE即显示已签发), 但后端撤回校验使用allMatch(要求所有ServiceRequest均为ACTIVE)。 当多项申请单中部分为待签发时,前端显示已签发但后端拒绝撤回,导致报错。 修复:将allMatch改为anyMatch,与SQL的EXISTS逻辑保持一致。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -640,10 +640,10 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
||||
return R.fail("标本已采集,无法撤回");
|
||||
}
|
||||
|
||||
// 校验:只有已签发(status=2)的申请单可撤回
|
||||
boolean allActive = serviceRequests.stream()
|
||||
.allMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
||||
if (!allActive) {
|
||||
// 校验:有已签发(status=2)的医嘱可撤回(与SQL的EXISTS逻辑一致,允许多项申请单中部分为待签发)
|
||||
boolean hasActive = serviceRequests.stream()
|
||||
.anyMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
||||
if (!hasActive) {
|
||||
return R.fail("只有已签发且未采证的申请单可撤回");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user