预约管理-》门诊预约挂号:号源信息的序号未进行取值
316门诊医生站-》医嘱TAB页面:会诊医嘱状态从“已签发”变成“草稿”
317【门诊医生站】已签发会诊医嘱未同步至门诊收费系统生成待收费项目
344
门诊预约挂号:未过滤过期号源,允许预约已过时的时间段
347 医生门诊工作已就诊的病人提示未就诊
This commit is contained in:
Ranyunqiao
2026-04-07 15:36:27 +08:00
parent 616c2d21a6
commit c3f1b105e9
3 changed files with 189 additions and 33 deletions

View File

@@ -421,6 +421,20 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 新增:更新门诊医嘱表状态为已提交
updateServiceRequestStatus(entity.getOrderId(), RequestStatus.ACTIVE.getValue());
// 🎯 更新会诊关联费用项状态为"待收费",提交后即可在收费界面看到
if (entity.getOrderId() != null) {
LambdaQueryWrapper<ChargeItem> chargeItemWrapper = new LambdaQueryWrapper<>();
chargeItemWrapper.eq(ChargeItem::getServiceId, entity.getOrderId())
.eq(ChargeItem::getServiceTable, "wor_service_request");
List<ChargeItem> chargeItems = iChargeItemService.list(chargeItemWrapper);
for (ChargeItem chargeItem : chargeItems) {
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue());
iChargeItemService.updateById(chargeItem);
}
log.info("会诊提交,更新关联费用项状态为待收费,更新数量: {}", chargeItems.size());
}
return true;
} catch (Exception e) {
log.error("提交会诊申请失败", e);
@@ -464,6 +478,18 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 更新门诊医嘱表状态为新开
updateServiceRequestStatus(entity.getOrderId(), RequestStatus.DRAFT.getValue());
// 更新关联费用项状态为草稿
if (entity.getOrderId() != null) {
LambdaQueryWrapper<ChargeItem> chargeItemWrapper = new LambdaQueryWrapper<>();
chargeItemWrapper.eq(ChargeItem::getServiceId, entity.getOrderId())
.eq(ChargeItem::getServiceTable, "wor_service_request");
List<ChargeItem> chargeItems = iChargeItemService.list(chargeItemWrapper);
for (ChargeItem chargeItem : chargeItems) {
chargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue());
iChargeItemService.updateById(chargeItem);
}
}
} else {
// 作废:状态校验 - 已确认(20)、已签名(30)、已完成(40) 状态禁止作废
ConsultationStatusEnum currentStatus = ConsultationStatusEnum.getByCode(entity.getConsultationStatus());
@@ -480,6 +506,18 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 更新门诊医嘱表状态为已作废
updateServiceRequestStatus(entity.getOrderId(), RequestStatus.CANCELLED.getValue());
// 更新关联费用项状态为终止
if (entity.getOrderId() != null) {
LambdaQueryWrapper<ChargeItem> chargeItemWrapper = new LambdaQueryWrapper<>();
chargeItemWrapper.eq(ChargeItem::getServiceId, entity.getOrderId())
.eq(ChargeItem::getServiceTable, "wor_service_request");
List<ChargeItem> chargeItems = iChargeItemService.list(chargeItemWrapper);
for (ChargeItem chargeItem : chargeItems) {
chargeItem.setStatusEnum(ChargeItemStatus.ABORTED.getValue());
iChargeItemService.updateById(chargeItem);
}
}
}
return true;
@@ -668,12 +706,14 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
@Override
public List<ConsultationRequestDto> getMyInvitations() {
try {
// 获取当前登录医生ID
// 获取当前登录医生ID和租户ID
Long currentPhysicianId = SecurityUtils.getLoginUser().getPractitionerId();
Long tenantId = SecurityUtils.getLoginUser().getTenantId().longValue();
// 查询邀请我的会诊申请
LambdaQueryWrapper<ConsultationInvited> invitedWrapper = new LambdaQueryWrapper<>();
invitedWrapper.eq(ConsultationInvited::getInvitedPhysicianId, currentPhysicianId)
invitedWrapper.eq(ConsultationInvited::getTenantId, tenantId)
.eq(ConsultationInvited::getInvitedPhysicianId, currentPhysicianId)
.orderByDesc(ConsultationInvited::getCreateTime);
List<ConsultationInvited> invitedList = consultationInvitedMapper.selectList(invitedWrapper);
@@ -1201,15 +1241,17 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
@Override
public List<ConsultationConfirmationDto> getPendingConfirmationList() {
try {
// 获取当前登录医生ID
// 获取当前登录医生ID和租户ID
Long currentPhysicianId = SecurityUtils.getLoginUser().getPractitionerId();
Long tenantId = SecurityUtils.getLoginUser().getTenantId().longValue();
log.info("获取待确认会诊列表当前医生ID: {}", currentPhysicianId);
// 🎯 关键修改:查询当前医生个人状态为"待确认"、"已确认"或"已签名"的邀请记录
// 10=已提交待确认、20=已确认待签名、30=已签名排除40=已完成
LambdaQueryWrapper<ConsultationInvited> invitedWrapper = new LambdaQueryWrapper<>();
invitedWrapper.eq(ConsultationInvited::getInvitedPhysicianId, currentPhysicianId)
.in(ConsultationInvited::getInvitedStatus,
invitedWrapper.eq(ConsultationInvited::getTenantId, tenantId)
.eq(ConsultationInvited::getInvitedPhysicianId, currentPhysicianId)
.in(ConsultationInvited::getInvitedStatus,
ConsultationStatusEnum.SUBMITTED.getCode(), // 10-待确认
ConsultationStatusEnum.CONFIRMED.getCode(), // 20-已确认(待签名)
ConsultationStatusEnum.SIGNED.getCode()) // 30-已签名
@@ -1233,7 +1275,8 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 🎯 查询会诊申请详情(白名单:只查询正在进行中的会诊,明确业务范围)
// 查询已提交、已确认、已签名状态的会诊排除已完成40
LambdaQueryWrapper<ConsultationRequest> requestWrapper = new LambdaQueryWrapper<>();
requestWrapper.in(ConsultationRequest::getId, requestIds)
requestWrapper.eq(ConsultationRequest::getTenantId, tenantId)
.in(ConsultationRequest::getId, requestIds)
.in(ConsultationRequest::getConsultationStatus,
ConsultationStatusEnum.SUBMITTED.getCode(), // 10-已提交
ConsultationStatusEnum.CONFIRMED.getCode(), // 20-已确认
@@ -1633,7 +1676,20 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
// 更新医嘱状态为"已完成"
updateServiceRequestStatus(request.getOrderId(), RequestStatus.COMPLETED.getValue());
// 🎯 更新会诊关联费用项状态为"待收费",这样收费界面就能看到了
if (request.getOrderId() != null) {
LambdaQueryWrapper<ChargeItem> chargeItemWrapper = new LambdaQueryWrapper<>();
chargeItemWrapper.eq(ChargeItem::getServiceId, request.getOrderId())
.eq(ChargeItem::getServiceTable, "wor_service_request");
List<ChargeItem> chargeItems = iChargeItemService.list(chargeItemWrapper);
for (ChargeItem chargeItem : chargeItems) {
chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue());
iChargeItemService.updateById(chargeItem);
}
log.info("会诊完成,更新关联费用项状态为待收费,更新数量: {}", chargeItems.size());
}
log.info("所有医生都已签名,会诊申请状态更新为:已签名(30)");
} else {
// 🎯 关键修改部分医生签名整体状态不变保持为10或20