生词辟义01
挂号一站式结算
register
登记、挂号
Settlement
结算单
createRegSettle()
生成挂号账单,结算单
门诊账单明细
Cs_AccountBillDetail
itemtype itemClassName: itemCode itemName
799 医师服务费 [ysfwf,zrysf] [医师服务费--sleepy,主任医师费]
867 其他费用 [jiuzhenka,bingliben,yujian] [就诊卡,病历本,预检]
patientid 病人ID
(DTO参数,model没有)
rootorderid 交易流水号
(DTO参数,model没有)
oneStop 是否一站式
(DTO参数,model没有)
orderid 订单号
(DTO参数,model没有)
accountbill/createRegSettle() 挂号一站式生成账单结算单
accountbill/create() 创建单个账单
这2个 方法的参数都是扁平化传的,将主类和明细类的信息作为同一层级的参数传给后端。并没有做区分,如图:
![](https://img2018.cnblogs.com/blog/1467309/201811/1467309-20181105115341121-517782938.png)
在逻辑中,用明细Bean接收信息,然后在service类中再取值赋给主类
public void preCreate(Document<AccountBill, AccountBillDetail> doc) { doc0 = assignMaster(abds); } private Document<AccountBill, AccountBillDetail> assignMaster(List<AccountBillDetail> abds){ AccountBill accountBill=new AccountBill(); for(AccountBillDetail item:abds) { if (accountBill.getPatientid() == null) { accountBill.setOutpatientNumber(outpatientNumber); accountBill.setPatientid(item.getPatientid()); accountBill.setBilldate(item.getBilldate()); accountBill.setOrderid(item.getOrderid()); accountBill.setSourceOrderId(item.getSourceOrderId()); accountBill.setInsurOrgId(item.getInsurOrgId()); accountBill.setInsurProductId(item.getInsurProductId()); accountBill.setWelfare(item.getWelfare()); accountBill.setOrderStatus(item.getOrderStatus()); accountBill.setReturnFlag(item.getReturnFlag()); accountBill.setBooktime(item.getBooktime()); accountBill.setStartTime(item.getStartTime()); //...... } } }
新建的账单产生结算单
门诊账单: status:2 待结算 0 新建 1 已确认结算单 2待结算
门诊结算单:status:0 新建 0 新建 1 已结算 JavaBean:statusval;表:status
确认(可以)支付后的状态变化:
门诊账单: status:1 已确认结算单
门诊结算单:status:1 已(可以)结算,(用户可以付款了)
结算单应该走确认(可以)支付这一步,对应页面上的那个按钮。
异步方法执行要调用异步日志记录方法:可以优化改造,方法参数自动获取,不用传
一个rootOrderId对应多个账单,多个相同rootOrderId的账单对应一个结算单
门诊结算单明细的JavaBean对象SettlementDetail中冗余了大量的门诊账单明细的字段。