feat: 门诊手术中计费功能
- 数据库:在adm_charge_item表添加SourceBillNo字段 - 后端实体类:更新ChargeItem.java添加SourceBillNo字段 - 前端组件:创建手术计费界面(基于门诊划价界面) - 后端API:扩展PrePrePaymentDto支持手术计费标识 - 后端Service:扩展getChargeItems方法支持手术计费过滤 - 门诊手术安排界面:添加【计费】按钮 注意事项: - 需要手动执行SQL脚本:openhis-server-new/sql/add_source_bill_no_to_adm_charge_item.sql - 术后一站式结算功能待后续开发
This commit is contained in:
@@ -190,8 +190,15 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
@Override
|
||||
public R<?> prePayment(PrePaymentDto prePaymentDto) {
|
||||
logger.info("预结算:参数:" + JSON.toJSONString(prePaymentDto));
|
||||
// 查收费项
|
||||
List<ChargeItem> chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds());
|
||||
// 查收费项(支持手术计费)
|
||||
List<ChargeItem> chargeItemList;
|
||||
if (prePaymentDto.getGenerateSourceEnum() != null && prePaymentDto.getGenerateSourceEnum() == 2) {
|
||||
// 手术计费:根据generateSourceEnum和sourceBillNo过滤
|
||||
chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds(), prePaymentDto.getGenerateSourceEnum(), prePaymentDto.getSourceBillNo());
|
||||
} else {
|
||||
// 普通门诊划价
|
||||
chargeItemList = getChargeItems(prePaymentDto.getChargeItemIds());
|
||||
}
|
||||
if (chargeItemList.isEmpty()) {
|
||||
return R.fail("未选择收费项");
|
||||
}
|
||||
@@ -2093,6 +2100,24 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
return chargeItemService.list(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收费项集合(支持手术计费)
|
||||
*
|
||||
* @param chargeItemIds 收费项id集合
|
||||
* @param generateSourceEnum 账单生成来源(2:手术计费)
|
||||
* @param sourceBillNo 来源业务单据号(手术单号)
|
||||
* @return 收费项集合
|
||||
*/
|
||||
private List<ChargeItem> getChargeItems(List<Long> chargeItemIds, Integer generateSourceEnum, String sourceBillNo) {
|
||||
LambdaQueryWrapper<ChargeItem> wrapper = new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIds);
|
||||
// 如果是手术计费,需要额外过滤条件
|
||||
if (generateSourceEnum != null && generateSourceEnum == 2 && sourceBillNo != null) {
|
||||
wrapper.eq(ChargeItem::getGenerateSourceEnum, 2)
|
||||
.eq(ChargeItem::getSourceBillNo, sourceBillNo);
|
||||
}
|
||||
return chargeItemService.list(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 类型转换:收费项chargeItem转成PaymentedItemModel
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user