|
@@ -20,10 +20,7 @@ import thyyxxk.webserver.utils.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -635,9 +632,12 @@ public class XiangMuLuRuService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public ResultVo<List<ZyDetailCharge>> huoQuZhenShuKePiPei(String inpatientNo, Integer admissTimes, Integer ledgerSn, String chargeCodeMx, String execUnit, String startTime, String endTime, String riQiPaiXu) {
|
|
|
+ public ResultVo<List<ZyDetailCharge>> huoQuZhenShuKePiPei(String inpatientNo, Integer admissTimes, Integer ledgerSn,
|
|
|
+ String chargeCodeMx, String execUnit, String orderNo, String startTime,
|
|
|
+ String endTime, String riQiPaiXu) {
|
|
|
+ execUnit = StringUtil.isBlank(execUnit) ? null : execUnit;
|
|
|
List<ZyDetailCharge> zhenShuFeiYong = dao.weiGuiZhenShuPiPei(publicServer.getInpatientNo(inpatientNo), admissTimes, ledgerSn, publicServer.getInfantFlag(inpatientNo),
|
|
|
- chargeCodeMx, execUnit, startTime, endTime, riQiPaiXu);
|
|
|
+ chargeCodeMx, execUnit, orderNo, startTime, endTime, riQiPaiXu);
|
|
|
List<ZyDetailCharge> yuEr = dao.tuiFeiYuEr1(publicServer.getInpatientNo(inpatientNo), admissTimes, ledgerSn, chargeCodeMx, execUnit);
|
|
|
Map<String, ZyDetailCharge> yuErPiPei = new HashMap<>();
|
|
|
for (ZyDetailCharge item : yuEr) {
|
|
@@ -679,7 +679,7 @@ public class XiangMuLuRuService {
|
|
|
ZyDetailCharge zy = dao.piPeiXinXiFuShu(inpatientNo, zyDetailCharge.getAdmissTimes(), zyDetailCharge.getLedgerSn(), infantFlag, zyDetailCharge.getDetailSn());
|
|
|
if (zy == null) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "未找到负数费用信息,可能已经被删除了,请刷新页面重试。");
|
|
|
- } else if (zy.getTransFlagYb().equals("2") || zy.getOriDetailSn() != null) {
|
|
|
+ } else if (zy.getOriDetailSn() != null || zy.getTransFlagYb().equals("2")) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该负数费用已被正负相抵。");
|
|
|
}
|
|
|
List<ZyDetailCharge> zhenShuShuJu = dao.piPeiXinXi(inpatientNo, zyDetailCharge.getAdmissTimes(), zyDetailCharge.getLedgerSn(), infantFlag, detailSnList);
|
|
@@ -693,8 +693,10 @@ public class XiangMuLuRuService {
|
|
|
List<String> zhiXinKeShi = dao.chaXunZhiZXinKeShi(zyDetailCharge.getDeptCode());
|
|
|
|
|
|
for (ZyDetailCharge detailCharge : zhenShuShuJu) {
|
|
|
- ResultVo<String> LOGICAL_ERROR = getStringResultVo(yongHuJueSe, zhiXinKeShi, zyDetailCharge, detailCharge, false);
|
|
|
- if (LOGICAL_ERROR != null) return LOGICAL_ERROR;
|
|
|
+ if (!BigUtils.dengYu(detailCharge.getOrderNo(), zyDetailCharge.getOrderNo())) {
|
|
|
+ ResultVo<String> LOGICAL_ERROR = getStringResultVo(yongHuJueSe, zhiXinKeShi, zyDetailCharge, detailCharge, false);
|
|
|
+ if (LOGICAL_ERROR != null) return LOGICAL_ERROR;
|
|
|
+ }
|
|
|
if (detailCharge.getTransFlagYb().equals("2")) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为:{%d},已被正负抵消。", detailCharge.getDetailSn()));
|
|
|
}
|
|
@@ -713,16 +715,6 @@ public class XiangMuLuRuService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR,
|
|
|
String.format("负数费用:{%.2f},匹配费用:{%.2f} <br> 负数数量:{%.2f},匹配数量:{%.2f}", zy.getChargeFee().negate(), chargeFeeSum, zy.getChargeAmount().negate(), chargeAmountSum));
|
|
|
} else {
|
|
|
-// if (BigUtils.dengYu(chargeFeeSum, zy.getChargeFee().negate()) && BigUtils.dengYu(chargeAmountSum, zy.getChargeAmount().negate())) {
|
|
|
-// ResultVo<String> tuiFei = xiangMuTuiFei(zyDetailCharge, false);
|
|
|
-// if (tuiFei.getCode() != 201) {
|
|
|
-// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, tuiFei.getMessage());
|
|
|
-// }
|
|
|
-// dao.cheXiaoFeiYong(inpatientNo, zyDetailCharge.getAdmissTimes(), zyDetailCharge.getLedgerSn(), zyDetailCharge.getDetailSn());
|
|
|
-// return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "费用拆分成功。");
|
|
|
-// } else {
|
|
|
-// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "匹配多条时数量和金额要相等。");
|
|
|
-// }
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "每次只能匹配一条。");
|
|
|
}
|
|
|
}
|