|
@@ -167,12 +167,12 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
*/
|
|
|
@Override
|
|
|
public MzChargeDetail unPaidToFullChargeDetail(MzChargeDetail mzChargeDetail) throws MzException {
|
|
|
- MzVisitTable mzVisitTable=mzVisitTableMapper.selectByPatientIdAndTimes(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes());
|
|
|
- if(mzVisitTable==null){
|
|
|
+ MzVisitTable mzVisitTable = mzVisitTableMapper.selectByPatientIdAndTimes(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes());
|
|
|
+ if (mzVisitTable == null) {
|
|
|
throw new MzException("当前病人就诊基础资料【MzVisitTable】不存在,请检查");
|
|
|
}
|
|
|
- Integer receiptNo =mzVisitTable.getReceiptNo()+1;
|
|
|
- List<MzChargeDetail> mzChargeDetails = getMzChargeDetails(mzChargeDetail, YesNoEnum.YES,receiptNo);
|
|
|
+ Integer receiptNo = mzVisitTable.getReceiptNo() + 1;
|
|
|
+ List<MzChargeDetail> mzChargeDetails = getMzChargeDetails(mzChargeDetail, YesNoEnum.YES, receiptNo);
|
|
|
if (mzChargeDetails == null || mzChargeDetails.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
@@ -210,7 +210,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @return
|
|
|
* @throws MzException
|
|
|
*/
|
|
|
- private List<MzChargeDetail> getMzChargeDetails(MzChargeDetail mzChargeDetail, YesNoEnum yesNo,Integer receiptNo) throws MzException {
|
|
|
+ private List<MzChargeDetail> getMzChargeDetails(MzChargeDetail mzChargeDetail, YesNoEnum yesNo, Integer receiptNo) throws MzException {
|
|
|
if (mzChargeDetail == null || mzChargeDetail.getPatientId() == null || mzChargeDetail.getTimes() == null) {
|
|
|
throw new MzException("病人编号和就诊次数不能为空!");
|
|
|
}
|
|
@@ -227,7 +227,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
maxOrderNo = firstMzChargeDetail.getOrderNo();
|
|
|
priceId = firstMzChargeDetail.getPriceId();
|
|
|
priceTime = firstMzChargeDetail.getPriceTime();
|
|
|
- itemNo = formatSupplyFee(mzChargeDetails, mzChargeDetailList, itemNo,receiptNo);
|
|
|
+ itemNo = formatSupplyFee(mzChargeDetails, mzChargeDetailList, itemNo, receiptNo);
|
|
|
}
|
|
|
maxOrderNo++;
|
|
|
Map<String, MzYjReq> mzYjReqMap = new HashMap<>();
|
|
@@ -241,14 +241,14 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (mzYjReq != null && mzYjReq.getPercentFt() == null) {
|
|
|
String temp = maxOrderNo.toString();
|
|
|
temp = temp + index++;
|
|
|
- itemNo = formatYjChargeDetail(mzChargeDetail, mzChargeDetails, maxOrderNo, mzPatientMi, itemNo, jianYans, jianChas, mzYjReq, temp, priceId, priceTime, tcNoMap,receiptNo);
|
|
|
+ itemNo = formatYjChargeDetail(mzChargeDetail, mzChargeDetails, maxOrderNo, mzPatientMi, itemNo, jianYans, jianChas, mzYjReq, temp, priceId, priceTime, tcNoMap, receiptNo);
|
|
|
mzYjReqMap.put(mzYjReq.getOrderCode(), mzYjReq);
|
|
|
}
|
|
|
}
|
|
|
List<JcJyItemCharge> jcJyItemCharges = null;
|
|
|
if (jianYans.size() > 0) {
|
|
|
jcJyItemCharges = jcJyItemChargeService.queryJcItemChargeByCodeList(jianYans, ReqTypeEnum.JIAN_YAN.code);
|
|
|
- itemNo = formatCxFeeItem(mzChargeDetail, mzChargeDetails, mzPatientMi, maxOrderNo, itemNo, mzYjReqMap, jianYans, tcNoMap, priceId, priceTime,receiptNo);
|
|
|
+ itemNo = formatCxFeeItem(mzChargeDetail, mzChargeDetails, mzPatientMi, maxOrderNo, itemNo, mzYjReqMap, jianYans, tcNoMap, priceId, priceTime, receiptNo);
|
|
|
}
|
|
|
if (jianChas.size() > 0) {
|
|
|
List<JcJyItemCharge> temps = jcJyItemChargeService.queryJcItemChargeByCodeList(jianChas, ReqTypeEnum.JIAN_CHA.code);
|
|
@@ -260,7 +260,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
}
|
|
|
if (jcJyItemCharges != null && jcJyItemCharges.size() > 0) {
|
|
|
for (JcJyItemCharge jcJyItemCharge : jcJyItemCharges) {
|
|
|
- itemNo = formatYjDetailChargeDetail(mzChargeDetail, mzChargeDetails, maxOrderNo, mzPatientMi, itemNo, mzYjReqMap, jcJyItemCharge, tcNoMap, priceId, priceTime,receiptNo);
|
|
|
+ itemNo = formatYjDetailChargeDetail(mzChargeDetail, mzChargeDetails, maxOrderNo, mzPatientMi, itemNo, mzYjReqMap, jcJyItemCharge, tcNoMap, priceId, priceTime, receiptNo);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -309,8 +309,8 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<MzChargeDetail> queryMzChargeDetailByBillItemCode(String patientId, Integer times,Integer receiptNo, String payMark, String billItemCode, List<String> billItemTypes) {
|
|
|
- return mzChargeDetailMapper.selectMzChargeDetailByBillItemCode(patientId, times,receiptNo, payMark, billItemCode, billItemTypes);
|
|
|
+ public List<MzChargeDetail> queryMzChargeDetailByBillItemCode(String patientId, Integer times, Integer receiptNo, String payMark, String billItemCode, List<String> billItemTypes) {
|
|
|
+ return mzChargeDetailMapper.selectMzChargeDetailByBillItemCode(patientId, times, receiptNo, payMark, billItemCode, billItemTypes);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -320,14 +320,14 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (windows == null) {
|
|
|
throw new MzException("当前操作人未设置窗口号,请先设置!");
|
|
|
}
|
|
|
- MzVisitTable mzVisitTable=mzVisitTableMapper.selectByPatientIdAndTimes(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
|
|
|
- if(mzVisitTable==null){
|
|
|
+ MzVisitTable mzVisitTable = mzVisitTableMapper.selectByPatientIdAndTimes(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
|
|
|
+ if (mzVisitTable == null) {
|
|
|
throw new MzException("当前病人就诊基础资料【MzVisitTable】不存在,请检查");
|
|
|
}
|
|
|
- Integer receiptNo =mzVisitTable.getReceiptNo()+1;
|
|
|
+ Integer receiptNo = mzVisitTable.getReceiptNo() + 1;
|
|
|
//入库收费明细数据开始
|
|
|
MzChargeDetail mzChargeDetail = new MzChargeDetail(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
|
|
|
- List<MzChargeDetail> mzChargeDetails = getMzChargeDetails(mzChargeDetail, YesNoEnum.NO,receiptNo);
|
|
|
+ List<MzChargeDetail> mzChargeDetails = getMzChargeDetails(mzChargeDetail, YesNoEnum.NO, receiptNo);
|
|
|
getMzChargeDetailService().saveMzChargeDetail(mzChargeDetails);
|
|
|
mzChargeDetail.setPrintFlag(YesNoEnum.NO.code.toString());
|
|
|
mzChargeDetail.setReceiptNo(receiptNo);
|
|
@@ -344,14 +344,14 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
int serialNo = mzSerialNoService.getSerialNo();
|
|
|
MzReceiptSerial mzReceiptSerial = new MzReceiptSerial();
|
|
|
//实际支付金额 收银员收的钱
|
|
|
- BigDecimal hadPayable = getHadPayable(opId, mzDepositFileVo, windows, mzPatientMi, feeMap, now, serialNo, mzReceiptSerial,receiptNo);
|
|
|
- if (hadPayable.compareTo(totalPayable) == -1) {
|
|
|
- throw new MzException("收款金额不足,实际应支付" + totalPayable.toString() + "元,但是实际只收了" + hadPayable.toString() + "元");
|
|
|
+ BigDecimal hadPayable = getHadPayable(opId, mzDepositFileVo, windows, mzPatientMi, feeMap, now, serialNo, mzReceiptSerial, receiptNo);
|
|
|
+ if (hadPayable.compareTo(totalPayable) != 0) {
|
|
|
+ throw new MzException("收款金额有误,实际应付" + totalPayable.toString() + "元,实收" + hadPayable.toString() + "元,患者处方有修改,请重新刷当前病人收费数据");
|
|
|
}
|
|
|
getMzChargeDetailService().updateChargeFlag(opId, mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes(), mzPatientMi.getName(), mzChargeDetailList, now, serialNo, mzReceiptSerial.getChequeType(), null);
|
|
|
getMzChargeDetailService().afterChargeFee(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes(), mzDepositFileVo.getMzDepositFiles(), now, serialNo, mzReceiptSerial, totalPayable);
|
|
|
if (Constants.JZ_IC_CARD.equals(mzPatientMi.getIcCardNo())) {
|
|
|
- mzChargeDetailMapper.updateNameByPatientIdAndTimes(mzPatientMi.getName(),mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
|
|
|
+ mzChargeDetailMapper.updateNameByPatientIdAndTimes(mzPatientMi.getName(), mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes());
|
|
|
}
|
|
|
return 1;
|
|
|
}
|
|
@@ -370,7 +370,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void afterChargeFee(String patientId, Integer times, List<MzDepositFile> mzDepositFiles, Date now, int serialNo, MzReceiptSerial mzReceiptSerial, BigDecimal totalPayable) throws MzException {
|
|
|
- if(mzDepositFileMapper.selectBySameParams(mzDepositFiles.get(0))>0){
|
|
|
+ if (mzDepositFileMapper.selectBySameParams(mzDepositFiles.get(0)) > 0) {
|
|
|
throw new MzException("当前病人本次处方已经成功缴费,无需重复缴费");
|
|
|
}
|
|
|
MzYjReq updateMzYjReq = new MzYjReq(patientId, times);
|
|
@@ -427,8 +427,8 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
//如果有欠费记账的收费,新增退费重收记录
|
|
|
// List<MzChargeDetail> newMzChargeDetailList = getMzChargeDetails(opId, mzDepositFileVo, now, serialNo);
|
|
|
// getMzChargeDetailService().saveMzChargeDetail(newMzChargeDetailList);
|
|
|
- List<MzDepositFile> newMzDepositFileList = getMzDepositFiles(mzDepositFileVo, now, serialNo,opId);
|
|
|
- if(newMzDepositFileList.size()>0 && mzDepositFileMapper.selectBySameParams(newMzDepositFileList.get(0))>0){
|
|
|
+ List<MzDepositFile> newMzDepositFileList = getMzDepositFiles(mzDepositFileVo, now, serialNo, opId);
|
|
|
+ if (newMzDepositFileList.size() > 0 && mzDepositFileMapper.selectBySameParams(newMzDepositFileList.get(0)) > 0) {
|
|
|
throw new MzException("当前病人本次处方已经成功缴费,无需重复缴费");
|
|
|
}
|
|
|
mzDepositFileService.batchSaveMzDepositFile(newMzDepositFileList);
|
|
@@ -478,19 +478,19 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = Exception.class)
|
|
|
- public int modifyNameByPatientIdAndTimes(String name,String patientId,Integer times) {
|
|
|
- mzChargeDetailMapper.updateNameByPatientIdAndTimes(name,patientId,times);
|
|
|
+ public int modifyNameByPatientIdAndTimes(String name, String patientId, Integer times) {
|
|
|
+ mzChargeDetailMapper.updateNameByPatientIdAndTimes(name, patientId, times);
|
|
|
MzPatientMi mzPatientMi = new MzPatientMi();
|
|
|
mzPatientMi.setPatientId(patientId);
|
|
|
mzPatientMi.setTimes(times);
|
|
|
mzPatientMi.setName(name);
|
|
|
mzPatientMiMapper.updateMzPatientMi(mzPatientMi);
|
|
|
- return mzYjReqMapper.updateNameByPatientIdAndTimes(name,patientId,times);
|
|
|
+ return mzYjReqMapper.updateNameByPatientIdAndTimes(name, patientId, times);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public String queryJZName(String patientId, Integer times) {
|
|
|
- return mzChargeDetailMapper.selectJZName(patientId,times);
|
|
|
+ return mzChargeDetailMapper.selectJZName(patientId, times);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -596,10 +596,10 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (ypMzFytjList != null && ypMzFytjList.size() > 0) {
|
|
|
for (YpMzFytj ypMzFytj : ypMzFytjList) {
|
|
|
List<MzChargeDetail> mzChargeDetails = mzChargeDetailMapper.selectMzChargeDetailByChargeItemCode(ypMzFytj.getPatientId(), ypMzFytj.getTimes(), ypMzFytj.getChargeItemCode(), ypMzFytj.getOrderNo());
|
|
|
- if(mzChargeDetails==null || mzChargeDetails.size()==0){
|
|
|
+ if (mzChargeDetails == null || mzChargeDetails.size() == 0) {
|
|
|
continue;
|
|
|
}
|
|
|
- for (MzChargeDetail mzChargeDetail:mzChargeDetails){
|
|
|
+ for (MzChargeDetail mzChargeDetail : mzChargeDetails) {
|
|
|
Integer syCount = BigDecimal.valueOf(mzChargeDetail.getQuantity()).subtract(mzChargeDetail.getDecAmount() == null ? BigDecimal.ZERO : mzChargeDetail.getDecAmount()).intValue();
|
|
|
//皮试药特别逻辑
|
|
|
if (Constants.XYF.equals(mzChargeDetail.getBillItemCode())) {
|
|
@@ -650,12 +650,12 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
|
|
|
@Override
|
|
|
public List<MzChargeDetail> getTempMzChargeDetailListForUnPaid(MzChargeDetail mzChargeDetail) throws MzException {
|
|
|
- MzVisitTable mzVisitTable=mzVisitTableMapper.selectByPatientIdAndTimes(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes());
|
|
|
- if(mzVisitTable==null){
|
|
|
+ MzVisitTable mzVisitTable = mzVisitTableMapper.selectByPatientIdAndTimes(mzChargeDetail.getPatientId(), mzChargeDetail.getTimes());
|
|
|
+ if (mzVisitTable == null) {
|
|
|
throw new MzException("当前病人就诊基础资料【MzVisitTable】不存在,请检查");
|
|
|
}
|
|
|
- Integer receiptNo =mzVisitTable.getReceiptNo()+1;
|
|
|
- List<MzChargeDetail> mzChargeDetails = getMzChargeDetails(mzChargeDetail, YesNoEnum.YES,receiptNo);
|
|
|
+ Integer receiptNo = mzVisitTable.getReceiptNo() + 1;
|
|
|
+ List<MzChargeDetail> mzChargeDetails = getMzChargeDetails(mzChargeDetail, YesNoEnum.YES, receiptNo);
|
|
|
if (mzChargeDetails == null || mzChargeDetails.size() == 0) {
|
|
|
return null;
|
|
|
}
|
|
@@ -745,7 +745,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
MzReceiptSerial mzReceiptSerial = new MzReceiptSerial();
|
|
|
String payWay = Constants.CASH;
|
|
|
payWay = getDeposFiles(opId, mzDepositFileVo, now, times, serialNo, totalPayable, payWay, newMzDepositFiles, allRefund);
|
|
|
- setMzReceiptSerial(opId, mzDepositFileVo.getPatientId(), times, windows, mzChargeDetails.get(0).getResponceType(), feeMap, now, serialNo, mzReceiptSerial, payWay, totalPayable,1);
|
|
|
+ setMzReceiptSerial(opId, mzDepositFileVo.getPatientId(), times, windows, mzChargeDetails.get(0).getResponceType(), feeMap, now, serialNo, mzReceiptSerial, payWay, totalPayable, 1);
|
|
|
getMzChargeDetailService().updateChargeFlag(opId, mzDepositFileVo.getPatientId(), times, mzChargeDetails.get(0).getName(), mzChargeDetails, now, serialNo, payWay, mzDepositFileVo.getTimes());
|
|
|
getMzChargeDetailService().afterChargeFee(mzDepositFileVo.getPatientId(), times, newMzDepositFiles, now, serialNo, mzReceiptSerial, totalPayable);
|
|
|
MzPatientMi updateMzPatientMi = new MzPatientMi();
|
|
@@ -962,7 +962,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
int receiptNo = 1;
|
|
|
for (MzChargeDetail md : mzChargeDetails) {
|
|
|
MzChargeDetail temp = null;
|
|
|
- if (chargeItemCodeList.contains(md.getOrderNo() + "_" + md.getChargeItemCode())) {
|
|
|
+ if (chargeItemCodeList.contains(md.getOrderNo() + "_" + md.getItemNo() + "_" + md.getChargeItemCode())) {
|
|
|
if (Constants.XYF.equals(md.getBillItemCode()) || Constants.ZCYF.equals(md.getBillItemCode())) {
|
|
|
if (ConfirmFlagEnum.DONE.code.equals(md.getConfirmFlag()) && md.getDecAmount() != null && md.getDecAmount().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
Double oriQuantity = md.getQuantity();
|
|
@@ -1024,7 +1024,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
}
|
|
|
List<MzChargeDetail> supplyFeeMzChargeDetails = new ArrayList<>();
|
|
|
//重新计算给药方式费用
|
|
|
- // itemNo = formatSupplyFee(supplyFeeMzChargeDetails, newMzChargeDetailList, itemNo);
|
|
|
+ // itemNo = formatSupplyFee(supplyFeeMzChargeDetails, newMzChargeDetailList, itemNo);
|
|
|
formatPriceRoundDetail(new MzChargeDetail(mzDepositFileVo.getPatientId(), times), supplyFeeMzChargeDetails, mzPatientMi, newMzChargeDetailList, 127, itemNo, receiptNo);
|
|
|
// List<String> supplyList = supplyFeeMzChargeDetails.stream().filter(u -> StringUtils.isNotBlank(u.getChargeItemCode())).map(u -> u.getChargeItemCode()).collect(Collectors.toList());
|
|
|
// List<MzChargeDetail> removeList = new ArrayList<>();
|
|
@@ -1238,7 +1238,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param mzReceiptSerial
|
|
|
* @return
|
|
|
*/
|
|
|
- private BigDecimal getHadPayable(String opId, MzDepositFileVo mzDepositFileVo, Windows windows, MzPatientMi mzPatientMi, Map<String, BigDecimal> feeMap, Date now, int serialNo, MzReceiptSerial mzReceiptSerial,Integer receiptNo) {
|
|
|
+ private BigDecimal getHadPayable(String opId, MzDepositFileVo mzDepositFileVo, Windows windows, MzPatientMi mzPatientMi, Map<String, BigDecimal> feeMap, Date now, int serialNo, MzReceiptSerial mzReceiptSerial, Integer receiptNo) {
|
|
|
boolean isBenYuanJiZhang = true;
|
|
|
String chequeType = null;
|
|
|
//总收款金额
|
|
@@ -1270,7 +1270,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
}
|
|
|
}
|
|
|
hadPayable.setScale(2, BigDecimal.ROUND_FLOOR);
|
|
|
- setMzReceiptSerial(opId, mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes(), windows, mzPatientMi.getResponseType(), feeMap, now, serialNo, mzReceiptSerial, chequeType, isBenYuanJiZhang ? hadPayable : excludeByjzPay,receiptNo);
|
|
|
+ setMzReceiptSerial(opId, mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes(), windows, mzPatientMi.getResponseType(), feeMap, now, serialNo, mzReceiptSerial, chequeType, isBenYuanJiZhang ? hadPayable : excludeByjzPay, receiptNo);
|
|
|
return hadPayable;
|
|
|
}
|
|
|
|
|
@@ -1289,7 +1289,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param chequeType
|
|
|
* @param hadPayable
|
|
|
*/
|
|
|
- private void setMzReceiptSerial(String opId, String patientId, Integer times, Windows windows, String responseType, Map<String, BigDecimal> feeMap, Date now, int serialNo, MzReceiptSerial mzReceiptSerial, String chequeType, BigDecimal hadPayable,Integer receiptNo) {
|
|
|
+ private void setMzReceiptSerial(String opId, String patientId, Integer times, Windows windows, String responseType, Map<String, BigDecimal> feeMap, Date now, int serialNo, MzReceiptSerial mzReceiptSerial, String chequeType, BigDecimal hadPayable, Integer receiptNo) {
|
|
|
mzReceiptSerial.setPatientId(patientId);
|
|
|
mzReceiptSerial.setTimes(times);
|
|
|
mzReceiptSerial.setReceiptNo(receiptNo);
|
|
@@ -1435,7 +1435,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param serialNo
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<MzDepositFile> getMzDepositFiles(MzDepositFileVo mzDepositFileVo, Date now, int serialNo,String opId) {
|
|
|
+ private List<MzDepositFile> getMzDepositFiles(MzDepositFileVo mzDepositFileVo, Date now, int serialNo, String opId) {
|
|
|
List<MzDepositFile> newList = new ArrayList<>();
|
|
|
List<MzDepositFile> mzDepositFiles = mzDepositFileMapper.selectMzDepositFileByTimes(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes(), mzDepositFileVo.getReceiptNo());
|
|
|
if (mzDepositFiles != null && mzDepositFiles.size() > 0) {
|
|
@@ -1623,7 +1623,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param jianYans
|
|
|
* @return
|
|
|
*/
|
|
|
- private Integer formatCxFeeItem(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, MzPatientMi mzPatientMi, Integer maxOrderNo, Integer itemNo, Map<String, MzYjReq> mzYjReqMap, List<String> jianYans, Map<String, MzChargeDetail> tcNoMap, String priceId, Date priceTime,Integer receiptNo) throws MzException {
|
|
|
+ private Integer formatCxFeeItem(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, MzPatientMi mzPatientMi, Integer maxOrderNo, Integer itemNo, Map<String, MzYjReq> mzYjReqMap, List<String> jianYans, Map<String, MzChargeDetail> tcNoMap, String priceId, Date priceTime, Integer receiptNo) throws MzException {
|
|
|
List<JyZdItem> jyZdItems = jyZdItemService.queryCxTimesByCodeList(jianYans);
|
|
|
MzYjReq mzYjReq = mzYjReqMap.get(jianYans.get(0));
|
|
|
if (jyZdItems != null && jyZdItems.size() > 0) {
|
|
@@ -1631,13 +1631,13 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
for (JyZdItem jyZdItem : jyZdItems) {
|
|
|
if (jyZdItem != null) {
|
|
|
if (StringUtils.isNotBlank(jyZdItem.getVessel()) && !vesselSets.contains(jyZdItem.getVessel())) {
|
|
|
- itemNo = formatVesselFee(mzChargeDetail, mzChargeDetails, mzPatientMi, maxOrderNo, itemNo, mzYjReq, vesselSets, jyZdItem, tcNoMap, priceId, priceTime,receiptNo);
|
|
|
+ itemNo = formatVesselFee(mzChargeDetail, mzChargeDetails, mzPatientMi, maxOrderNo, itemNo, mzYjReq, vesselSets, jyZdItem, tcNoMap, priceId, priceTime, receiptNo);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
ZdChargeItem zdChargeItem = zdChargeItemService.queryZdChargeItemByCode("008910");
|
|
|
if (zdChargeItem == null) {
|
|
|
- // throw new MzException("【收费编码:008910】不存在,请联系物价科确认!");
|
|
|
+ // throw new MzException("【收费编码:008910】不存在,请联系物价科确认!");
|
|
|
return itemNo;
|
|
|
}
|
|
|
if (YesNoEnum.YES.code.equals(zdChargeItem.getDelFlag())) {
|
|
@@ -1707,7 +1707,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param jyZdItem
|
|
|
* @return
|
|
|
*/
|
|
|
- private Integer formatVesselFee(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, MzPatientMi mzPatientMi, Integer maxOrderNo, Integer itemNo, MzYjReq mzYjReq, Set<String> vesselSets, JyZdItem jyZdItem, Map<String, MzChargeDetail> tcNoMap, String priceId, Date priceTime,Integer receiptNo) throws MzException {
|
|
|
+ private Integer formatVesselFee(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, MzPatientMi mzPatientMi, Integer maxOrderNo, Integer itemNo, MzYjReq mzYjReq, Set<String> vesselSets, JyZdItem jyZdItem, Map<String, MzChargeDetail> tcNoMap, String priceId, Date priceTime, Integer receiptNo) throws MzException {
|
|
|
JyZdTubeCharge jyZdTubeCharge = jyZdTubeChargeService.queryJyZdTubeChargeByCode(jyZdItem.getVessel());
|
|
|
if (jyZdTubeCharge != null) {
|
|
|
ZdChargeItem zdChargeItem = zdChargeItemService.queryZdChargeItemByCode(jyZdTubeCharge.getChargeCode());
|
|
@@ -1779,8 +1779,11 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- private Integer formatSupplyFee(List<MzChargeDetail> mzChargeDetails, List<MzChargeDetail> mzChargeDetailList, Integer itemNo,Integer receiptNo) {
|
|
|
+ private Integer formatSupplyFee(List<MzChargeDetail> mzChargeDetails, List<MzChargeDetail> mzChargeDetailList, Integer itemNo, Integer receiptNo) throws MzException {
|
|
|
for (MzChargeDetail mcd : mzChargeDetailList) {
|
|
|
+ if (mcd.getSupplyAmount() == null) {
|
|
|
+ throw new MzException("当前处方药品给药方式执行次数为空,请联系医生修改处方!");
|
|
|
+ }
|
|
|
//非口服用药方式,需要写入收费记录
|
|
|
if (StringUtils.isNotBlank(mcd.getSupplyCode()) && !Constants.KOU_FU_SUPPLY_CODE.equals(mcd.getSupplyCode())) {
|
|
|
List<MzZdSupplyCharge> mzZdSupplyChargeList = mzZdSupplyChargeService.queryMzZdSupplyChargeByCode(mcd.getSupplyCode());
|
|
@@ -1846,7 +1849,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param tcNo
|
|
|
* @return
|
|
|
*/
|
|
|
- private Integer formatYjChargeDetail(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, Integer maxOrderNo, MzPatientMi mzPatientMi, Integer itemNo, List<String> jianYans, List<String> jianChas, MzYjReq mzYjReq, String tcNo, String priceId, Date priceTime, Map<String, MzChargeDetail> tcNoMap,Integer receiptNo) {
|
|
|
+ private Integer formatYjChargeDetail(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, Integer maxOrderNo, MzPatientMi mzPatientMi, Integer itemNo, List<String> jianYans, List<String> jianChas, MzYjReq mzYjReq, String tcNo, String priceId, Date priceTime, Map<String, MzChargeDetail> tcNoMap, Integer receiptNo) {
|
|
|
MzChargeDetail newMzChargeDetail = new MzChargeDetail();
|
|
|
newMzChargeDetail.setPatientId(mzChargeDetail.getPatientId());
|
|
|
newMzChargeDetail.setTimes(mzChargeDetail.getTimes());
|
|
@@ -1915,11 +1918,11 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* @param jcJyItemCharge
|
|
|
* @return
|
|
|
*/
|
|
|
- private Integer formatYjDetailChargeDetail(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, Integer maxOrderNo, MzPatientMi mzPatientMi, Integer itemNo, Map<String, MzYjReq> mzYjReqMap, JcJyItemCharge jcJyItemCharge, Map<String, MzChargeDetail> tcNoMap, String priceId, Date priceTime,Integer receiptNo) throws MzException {
|
|
|
+ private Integer formatYjDetailChargeDetail(MzChargeDetail mzChargeDetail, List<MzChargeDetail> mzChargeDetails, Integer maxOrderNo, MzPatientMi mzPatientMi, Integer itemNo, Map<String, MzYjReq> mzYjReqMap, JcJyItemCharge jcJyItemCharge, Map<String, MzChargeDetail> tcNoMap, String priceId, Date priceTime, Integer receiptNo) throws MzException {
|
|
|
MzYjReq mzYjReq = mzYjReqMap.get(jcJyItemCharge.getCode());
|
|
|
ZdChargeItem zdChargeItem = zdChargeItemService.queryZdChargeItemByCode(jcJyItemCharge.getChargeCode());
|
|
|
if (zdChargeItem == null) {
|
|
|
- // throw new MzException("【收费编码:" + jcJyItemCharge.getChargeCode() + "】不存在,请联系物价科确认!");
|
|
|
+ // throw new MzException("【收费编码:" + jcJyItemCharge.getChargeCode() + "】不存在,请联系物价科确认!");
|
|
|
return itemNo;
|
|
|
}
|
|
|
if (YesNoEnum.YES.code.equals(zdChargeItem.getDelFlag())) {
|