diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java index 957313188..26afdbcd2 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java @@ -710,11 +710,21 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { // 批量更新诊疗医嘱状态(使用 update 确保状态字段必定更新) if (!processedRequestIds.isEmpty()) { - iServiceRequestService.update(null, - new LambdaUpdateWrapper() - .set(ServiceRequest::getStatusEnum, - is_save ? RequestStatus.DRAFT.getValue() : RequestStatus.ACTIVE.getValue()) - .in(ServiceRequest::getId, processedRequestIds)); + // 🔧 Bug #487 修复:签发时额外设置 authoredTime,确保签发时间被记录 + if (is_sign) { + iServiceRequestService.update(null, + new LambdaUpdateWrapper() + .set(ServiceRequest::getStatusEnum, RequestStatus.ACTIVE.getValue()) + .set(ServiceRequest::getAuthoredTime, authoredTime) + .set(ServiceRequest::getSignCode, signCode) + .in(ServiceRequest::getId, processedRequestIds)); + log.info("签发诊疗医嘱成功,requestIds: {}, signCode: {}", processedRequestIds, signCode); + } else { + iServiceRequestService.update(null, + new LambdaUpdateWrapper() + .set(ServiceRequest::getStatusEnum, RequestStatus.DRAFT.getValue()) + .in(ServiceRequest::getId, processedRequestIds)); + } } } diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue index 2db56ab37..dd7fc8794 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue @@ -1241,6 +1241,13 @@ function handleSave() { if (res.code === 200) { proxy.$modal.msgSuccess('签发成功'); isSaving.value = false; + // 乐观更新:立即将已签发医嘱的状态设为"已签发",确保列表实时刷新 + saveList.forEach((item) => { + const row = prescriptionList.value.find((r) => r.requestId && r.requestId === item.requestId); + if (row) { + row.statusEnum = 2; + } + }); getListInfo(false); bindMethod.value = {}; nextId.value = 1;