|
@@ -153,6 +153,7 @@ public class XiangMuLuRuService {
|
|
|
List<ZyDetailCharge> tuiFeiList = new ArrayList<>();
|
|
|
// 获取到用户角色 管理员角色可以无视
|
|
|
List<String> zhiXinKeShi = dao.chaXunZhiZXinKeShi(param.getDeptCode());
|
|
|
+
|
|
|
for (ZyDetailCharge pojo : yuanTuiFeiList) {
|
|
|
// 判断患者的费用是否存在负数
|
|
|
if (pojo.getChargeFee().signum() == -1 || pojo.getChargeAmount().signum() == -1) {
|
|
@@ -162,7 +163,7 @@ public class XiangMuLuRuService {
|
|
|
yaoPingDan.add(pojo);
|
|
|
}
|
|
|
// 在这里判断执行科室
|
|
|
- ResultVo<String> LOGICAL_ERROR = getStringResultVo(yongHuJueSe, zhiXinKeShi, param, pojo);
|
|
|
+ ResultVo<String> LOGICAL_ERROR = getStringResultVo(yongHuJueSe, zhiXinKeShi, param, pojo, true);
|
|
|
if (LOGICAL_ERROR != null) return LOGICAL_ERROR;
|
|
|
// 数据库有个 触发器 如果带了医嘱号且有篆刻那么这里就需要改成 0
|
|
|
if (BigUtils.bigDaYu(pojo.getOrderNo(), 10)) {
|
|
@@ -200,25 +201,27 @@ public class XiangMuLuRuService {
|
|
|
}
|
|
|
|
|
|
private ResultVo<String> getStringResultVo(List<Integer> yongHuJueSe, List<String> zhiXinKeShi, ZyDetailCharge xuYaoTuiDeShuJu,
|
|
|
- ZyDetailCharge piPeiDeShuJu) {
|
|
|
+ ZyDetailCharge piPeiDeShuJu, Boolean panDuanYaoPin) {
|
|
|
// 获取到用户角色 管理员角色可以无视
|
|
|
if (!yongHuJueSe.contains(1)) {
|
|
|
// 科室开头 是 8 就不是医技科室 只有医技科室可以退药品
|
|
|
if (xuYaoTuiDeShuJu.getDeptCode().startsWith("8")) {
|
|
|
//获取到这个人是否属于这个科室
|
|
|
if (!zhiXinKeShi.contains(piPeiDeShuJu.getExecUnit())) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,请对应的执行科室进行退费。<br/>( ´Д`)y━・~~", piPeiDeShuJu.getDetailSn()));
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,请对应的执行科室进行退费。<br/>(;´д`)ゞ", piPeiDeShuJu.getDetailSn()));
|
|
|
}
|
|
|
// 护士是不可以退药品的
|
|
|
- if (xuYaoTuiDeShuJu.isYaoPing()) {
|
|
|
+ if (panDuanYaoPin) {
|
|
|
if (piPeiDeShuJu.getChargeCode().startsWith("BILL")) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,包含药品费用,无法退费。<br/>( ´Д`)y━・~~", piPeiDeShuJu.getDetailSn()));
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,包含药品费用,无法退费。<br/>(T▽T)", piPeiDeShuJu.getDetailSn()));
|
|
|
}
|
|
|
}
|
|
|
- } else if (!xuYaoTuiDeShuJu.getDeptCode().equals(piPeiDeShuJu.getExecUnit())) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,请对应的执行科室进行退费。<br/>( ´Д`)y━・~~", piPeiDeShuJu.getDetailSn()));
|
|
|
- } else if ((BigUtils.bigDaYu(piPeiDeShuJu.getOrderNo(), 100) || BigUtils.bigXiaoYu(piPeiDeShuJu.getOrderNo(), 0)) && piPeiDeShuJu.getSerial().equals("01")) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,只能退本科室录入的药品。<br/>( ´Д`)y━・~~", piPeiDeShuJu.getDetailSn()));
|
|
|
+ } else if (panDuanYaoPin) {
|
|
|
+ if (!xuYaoTuiDeShuJu.getDeptCode().equals(piPeiDeShuJu.getExecUnit())) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,请对应的执行科室进行退费。<br/>(iДi)", piPeiDeShuJu.getDetailSn()));
|
|
|
+ } else if ((BigUtils.bigDaYu(piPeiDeShuJu.getOrderNo(), 100) || BigUtils.bigXiaoYu(piPeiDeShuJu.getOrderNo(), 0)) && piPeiDeShuJu.getSerial().equals("01")) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,只能退本科室录入的药品。<br/>⊙﹏⊙|||", piPeiDeShuJu.getDetailSn()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
@@ -617,14 +620,16 @@ public class XiangMuLuRuService {
|
|
|
publicServer.genXingYuanLiuShuiBiaoZhi(inpatientNo, patient.getAdmissTimes(), ledger);
|
|
|
// 药品 分大包装和小包装 可能大包装 匹配了 小包装没有 匹配 所以这里编码同步 一下
|
|
|
List<Integer> yaoPingBianMaTongBu = dao.weiGuiYaoPinInt(inpatientNo, patient.getAdmissTimes(), ledger, infantFlag);
|
|
|
+
|
|
|
if (BigUtils.bigDaYu(dao.zhenFuXingDiFeiYong(inpatientNo, patient.getAdmissTimes(), ledger), 0)) {
|
|
|
dao.chongXingZhengFuXiangDi(inpatientNo, patient.getAdmissTimes(), ledger);
|
|
|
}
|
|
|
// 这里退药 医嘱 有可能会没有携带 执行科室
|
|
|
- List<ZyDetailCharge> huoQuYaoPingZhongKeShiWeiKongDe = dao.huoQuYaoPingZhongKeShiWeiKongDe(inpatientNo, patient.getAdmissTimes(), ledger);
|
|
|
- if (!huoQuYaoPingZhongKeShiWeiKongDe.isEmpty()) {
|
|
|
- dao.yiZhuTuiFeiGenXingZhiXingKeShi(inpatientNo, patient.getAdmissTimes(), ledger, huoQuYaoPingZhongKeShiWeiKongDe);
|
|
|
- }
|
|
|
+// List<ZyDetailCharge> huoQuYaoPingZhongKeShiWeiKongDe = dao.huoQuYaoPingZhongKeShiWeiKongDe(inpatientNo, patient.getAdmissTimes(), ledger);
|
|
|
+// if (!huoQuYaoPingZhongKeShiWeiKongDe.isEmpty()) {
|
|
|
+// dao.yiZhuTuiFeiGenXingZhiXingKeShi(inpatientNo, patient.getAdmissTimes(), ledger, huoQuYaoPingZhongKeShiWeiKongDe);
|
|
|
+// }
|
|
|
+ dao.xiuGaiKongDeZhiXingKeShi(inpatientNo, patient.getAdmissTimes(), ledger);
|
|
|
if (yaoPingBianMaTongBu.size() > 0) {
|
|
|
dao.genXinYaoPingPiPeiXinXi(yaoPingBianMaTongBu);
|
|
|
}
|
|
@@ -658,7 +663,8 @@ public class XiangMuLuRuService {
|
|
|
len--;
|
|
|
i--;
|
|
|
} else {
|
|
|
- zy.setYiTuiFei(zy.getChargeFee().subtract(yuErPiPei.get(key).getYiTuiFei()));
|
|
|
+ log.info("原本的费用:{},减去的费用:{}", zy.getChargeFee(), yuErPiPei.get(key).getYiTuiFei());
|
|
|
+ zy.setYiTuiFei(yuErPiPei.get(key).getYiTuiFei());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -693,8 +699,7 @@ public class XiangMuLuRuService {
|
|
|
List<String> zhiXinKeShi = dao.chaXunZhiZXinKeShi(zyDetailCharge.getDeptCode());
|
|
|
|
|
|
for (ZyDetailCharge detailCharge : zhenShuShuJu) {
|
|
|
- zyDetailCharge.setYaoPing(false);
|
|
|
- ResultVo<String> LOGICAL_ERROR = getStringResultVo(yongHuJueSe, zhiXinKeShi, zyDetailCharge, detailCharge);
|
|
|
+ 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()));
|