Fix Bug #571: fallback修复
This commit is contained in:
@@ -22,6 +22,16 @@ public class OrderVerificationServiceImpl implements OrderVerificationService {
|
|||||||
/**
|
/**
|
||||||
* 医嘱退回操作
|
* 医嘱退回操作
|
||||||
* Bug #505 Fix: 增加发药状态前置校验,阻断已发药医嘱的直接退回
|
* Bug #505 Fix: 增加发药状态前置校验,阻断已发药医嘱的直接退回
|
||||||
|
*
|
||||||
|
* 修复说明:
|
||||||
|
* 1. 之前的实现直接在 statusMap 为 null 时抛出 NullPointerException,
|
||||||
|
* 导致在非药品类医嘱(如检验申请)执行“撤回”时出现错误提示。
|
||||||
|
* 2. 现在在 statusMap 为 null(即不存在发药记录)时,视为非药品医嘱,
|
||||||
|
* 直接跳过药房状态校验,继续执行后续退回逻辑。
|
||||||
|
* 3. 同时保持对已发药且已执行的医嘱的严格校验,防止非法退回。
|
||||||
|
*
|
||||||
|
* @param orderId 医嘱主键 ID
|
||||||
|
* @return 是否成功退回
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -40,8 +50,10 @@ public class OrderVerificationServiceImpl implements OrderVerificationService {
|
|||||||
throw new RuntimeException("该药品已由药房发放,请先执行退药处理,不可直接退回");
|
throw new RuntimeException("该药品已由药房发放,请先执行退药处理,不可直接退回");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 若 statusMap 为 null,说明该医嘱不是药品类(如检验、检查),无需药房状态校验,直接进入退回流程。
|
||||||
|
|
||||||
// 2. 原有退回逻辑:更新医嘱状态为“已退回”,流转回医生站
|
// 2. 原有退回逻辑:更新医嘱状态为“已退回”,流转回医生站
|
||||||
|
// 这里保留原有的业务实现占位,实际项目中应调用对应的 Mapper 完成状态更新。
|
||||||
// orderMapper.updateStatus(orderId, "RETURNED");
|
// orderMapper.updateStatus(orderId, "RETURNED");
|
||||||
// orderMapper.clearExecFlags(orderId);
|
// orderMapper.clearExecFlags(orderId);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user