|
@@ -270,43 +270,52 @@ public class DismissService {
|
|
final Date dismissDate = getEndtime(indata.getMidSetl(), indata.getInpatientNo(), indata.getAdmissTimes(),
|
|
final Date dismissDate = getEndtime(indata.getMidSetl(), indata.getInpatientNo(), indata.getAdmissTimes(),
|
|
indata.getZjdzDatetime());
|
|
indata.getZjdzDatetime());
|
|
Date tempendtime = indata.getMidSetl() ? dismissDate : DateUtil.parse("2999-12-31 23:59:59");
|
|
Date tempendtime = indata.getMidSetl() ? dismissDate : DateUtil.parse("2999-12-31 23:59:59");
|
|
- Map<String, String> receipts = dismissFeeAnalyse(indata.getInpatientNo(), indata.getAdmissTimes(),
|
|
|
|
|
|
+ ReceiptEntity receiptEntity = dismissFeeAnalyse(indata.getInpatientNo(), indata.getAdmissTimes(),
|
|
indata.getLedgerSn(), admissDate, tempendtime);
|
|
indata.getLedgerSn(), admissDate, tempendtime);
|
|
if (dao.writeReceiptTable(indata.getInpatientNo(), indata.getAdmissTimes(), indata.getLedgerSn(), 1,
|
|
if (dao.writeReceiptTable(indata.getInpatientNo(), indata.getAdmissTimes(), indata.getLedgerSn(), 1,
|
|
admissDate, dismissDate, indata.getWardCode(), indata.getDeptCode(), dismissDate, "01",
|
|
admissDate, dismissDate, indata.getWardCode(), indata.getDeptCode(), dismissDate, "01",
|
|
- indata.getStaffId(), receipts) < 1) {
|
|
|
|
|
|
+ indata.getStaffId(), receiptEntity.getAdult()) < 1) {
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
- String infantFlag = receipts.get("infant"); // =0 无婴儿,>0 有婴儿
|
|
|
|
- if (infantFlag.equals(YesOrNo.YES.getCodeStr())) {
|
|
|
|
|
|
+ if (null != receiptEntity.getInfant()) {
|
|
return dao.writeReceiptTable(indata.getInpatientNo(), indata.getAdmissTimes(), indata.getLedgerSn(), 4,
|
|
return dao.writeReceiptTable(indata.getInpatientNo(), indata.getAdmissTimes(), indata.getLedgerSn(), 4,
|
|
admissDate, dismissDate, indata.getWardCode(), indata.getDeptCode(), dismissDate, "04",
|
|
admissDate, dismissDate, indata.getWardCode(), indata.getDeptCode(), dismissDate, "04",
|
|
- indata.getStaffId(), receipts);
|
|
|
|
|
|
+ indata.getStaffId(), receiptEntity.getInfant());
|
|
}
|
|
}
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
- private Map<String, String> dismissFeeAnalyse(String patNo, int times, int ledgerSn, Date begntime, Date endtime) {
|
|
|
|
- Map<String, String> map = initReceiptMap();
|
|
|
|
|
|
+ private ReceiptEntity dismissFeeAnalyse(String patNo, int times, int ledgerSn, Date begntime, Date endtime) {
|
|
|
|
+ ReceiptEntity entity = new ReceiptEntity();
|
|
String infantfee = dao.selectInfantFee(patNo, times, ledgerSn, begntime, endtime);
|
|
String infantfee = dao.selectInfantFee(patNo, times, ledgerSn, begntime, endtime);
|
|
if (StringUtil.notBlank(infantfee) && DecimalUtil.compare(infantfee, "0") == 1) {
|
|
if (StringUtil.notBlank(infantfee) && DecimalUtil.compare(infantfee, "0") == 1) {
|
|
|
|
+ Map<String, String> infantMap = initReceiptMap();
|
|
|
|
+ List<ReceiptFee> infantReceipts = dao.selectInfantReceiptFees(patNo, times, ledgerSn, begntime, endtime);
|
|
|
|
+ for (ReceiptFee fee : infantReceipts) {
|
|
|
|
+ infantMap.replace(fee.getBillCode(), fee.getLedgerFee());
|
|
|
|
+ }
|
|
|
|
+ infantMap.replace("total", infantfee);
|
|
String patNo1 = patNo + "$1";
|
|
String patNo1 = patNo + "$1";
|
|
String patNo6 = patNo + "$6";
|
|
String patNo6 = patNo + "$6";
|
|
- dao.updateInfantfee(infantfee, patNo1, patNo6, times);
|
|
|
|
- map.replace("infant", YesOrNo.YES.getCodeStr());
|
|
|
|
|
|
+ dao.updateInfantfee(patNo1, patNo6, times, infantMap);
|
|
|
|
+ entity.setInfant(infantMap);
|
|
}
|
|
}
|
|
- List<ReceiptFee> receiptFees = dao.selectReceiptFees(patNo, times, ledgerSn, begntime, endtime);
|
|
|
|
- if (null == receiptFees) {
|
|
|
|
- receiptFees = new ArrayList<>();
|
|
|
|
|
|
+
|
|
|
|
+ Map<String, String> adultMap = initReceiptMap();
|
|
|
|
+ String adultfee = dao.selectAdultFee(patNo, times, ledgerSn, begntime, endtime);
|
|
|
|
+ List<ReceiptFee> adultReceipts = dao.selectAdultReceiptFees(patNo, times, ledgerSn, begntime, endtime);
|
|
|
|
+ if (null == adultReceipts) {
|
|
|
|
+ adultReceipts = new ArrayList<>();
|
|
}
|
|
}
|
|
- for (ReceiptFee fee : receiptFees) {
|
|
|
|
- map.replace(fee.getBillCode(), fee.getLedgerFee());
|
|
|
|
- map.replace("total", DecimalUtil.add(map.get("total"), fee.getLedgerFee()));
|
|
|
|
|
|
+ for (ReceiptFee fee : adultReceipts) {
|
|
|
|
+ adultMap.replace(fee.getBillCode(), fee.getLedgerFee());
|
|
}
|
|
}
|
|
- dao.updateZyLedgerFileCharges(patNo, times, ledgerSn, map);
|
|
|
|
|
|
+ adultMap.replace("total", adultfee);
|
|
|
|
+ dao.updateZyLedgerFileCharges(patNo, times, ledgerSn, adultMap);
|
|
String balance = dao.selectBalance(patNo, times, ledgerSn);
|
|
String balance = dao.selectBalance(patNo, times, ledgerSn);
|
|
- dao.updateZyActpatientCharges(patNo, balance, map);
|
|
|
|
- return map;
|
|
|
|
|
|
+ dao.updateZyActpatientCharges(patNo, balance, adultMap);
|
|
|
|
+ entity.setAdult(adultMap);
|
|
|
|
+ return entity;
|
|
}
|
|
}
|
|
|
|
|
|
private Map<String, String> initReceiptMap() {
|
|
private Map<String, String> initReceiptMap() {
|