|
@@ -179,7 +179,7 @@ public class xiangMuLuRuService {
|
|
|
if (zyDetailCharge.getChargeAmount().signum() == -1 || zyDetailCharge.getAmount().signum() == -1) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES);
|
|
|
}
|
|
|
- // 住院 表中是 没有保存单价的
|
|
|
+ // 住院 表中是 没有保存单价的保存的是 金额
|
|
|
zyDetailCharge.setChargeAmount(zyDetailCharge.getChargeAmount().multiply(zyDetailCharge.getAmount()));
|
|
|
sum = sum.add(zyDetailCharge.getChargeAmount().multiply(zyDetailCharge.getAmount()));
|
|
|
if (StringUtil.isBlank(zyDetailCharge.getChargeCode())) {
|
|
@@ -230,7 +230,7 @@ public class xiangMuLuRuService {
|
|
|
* @return 返回 数据
|
|
|
*/
|
|
|
public ResultVo<List<ZyDetailCharge>> getXiangTongFeiYong(ZyDetailCharge param) {
|
|
|
- log.info("退费匹配:{}", JSON.toJSONString(param));
|
|
|
+ log.info("退费匹配查询数据:{}", JSON.toJSONString(param));
|
|
|
return ResultVoUtil.success(dao.getXiangTongFeiYong(param.getInpatientNo(), param.getAdmissTimes(), param.getChargeCode()));
|
|
|
}
|
|
|
|
|
@@ -241,23 +241,27 @@ public class xiangMuLuRuService {
|
|
|
* @return 返回提示成功
|
|
|
*/
|
|
|
public ResultVo<String> kaiShiPiPei(ZyDetailCharge param) {
|
|
|
- log.info("退费匹配===> 操作人 :{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONString(param));
|
|
|
+ if (param.getDetailSn().equals(param.getOriDetailSn())) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "无法与自身匹配");
|
|
|
+ }
|
|
|
List<ZyDetailCharge> list = dao.panDuanShuJuSFPiPei(param.getInpatientNo(), param.getAdmissTimes(), param.getDetailSn(), param.getOriDetailSn());
|
|
|
if (list.size() > 2) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该费用存在相同流水号");
|
|
|
}
|
|
|
-
|
|
|
+ // 取出来自己肯定是负的为负数的费用 转成正的 在和下面的比较 来判断 数量和单价是否一直
|
|
|
for (ZyDetailCharge zyDetailCharge : list) {
|
|
|
- if (zyDetailCharge.getChargeAmount().signum() == -1 && zyDetailCharge.getChargeFee().signum() == -1) {
|
|
|
- zyDetailCharge.setChargeAmount(zyDetailCharge.getChargeAmount().negate());
|
|
|
- zyDetailCharge.setChargeFee(zyDetailCharge.getChargeFee().negate());
|
|
|
+ if (zyDetailCharge.getDetailSn().equals(param.getDetailSn())) {
|
|
|
+ if (zyDetailCharge.getChargeAmount().signum() == -1 && zyDetailCharge.getChargeFee().signum() == -1) {
|
|
|
+ zyDetailCharge.setChargeAmount(zyDetailCharge.getChargeAmount().negate());
|
|
|
+ zyDetailCharge.setChargeFee(zyDetailCharge.getChargeFee().negate());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
if (list.get(0).getChargeFee().equals(list.get(1).getChargeFee()) && list.get(0).getChargeAmount().equals(list.get(1).getChargeAmount())) {
|
|
|
dao.kaiShiTuiFeiPiPei(param.getInpatientNo(), param.getAdmissTimes(), param.getDetailSn(), param.getOriDetailSn());
|
|
|
+ log.info("退费匹配===> 操作人 :{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONString(param));
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "匹配成功");
|
|
|
}
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "此费用数量或者费用不一致");
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "匹配费用金额不一致或匹配费用为负数。╮(╯▽╰)╭");
|
|
|
}
|
|
|
-}
|
|
|
+}
|