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,7 +640,7 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
|||||||
return R.fail("标本已采集,无法撤回");
|
return R.fail("标本已采集,无法撤回");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 校验:有已签发(status=2)的医嘱可撤回(与SQL的EXISTS逻辑一致,允许多项申请单中部分为待签发)
|
// 校验:任一ServiceRequest为ACTIVE(status=2)即可撤回,与SQL的EXISTS逻辑一致
|
||||||
boolean hasActive = serviceRequests.stream()
|
boolean hasActive = serviceRequests.stream()
|
||||||
.anyMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
.anyMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum()));
|
||||||
if (!hasActive) {
|
if (!hasActive) {
|
||||||
|
|||||||
Reference in New Issue
Block a user