|
@@ -204,31 +204,32 @@ public class XiangMuLuRuService {
|
|
|
medicalTechnologyDrugReturnForm.add(item);
|
|
|
}
|
|
|
} else {
|
|
|
- // 数量设置为负数
|
|
|
- item.setChargeAmount(item.getChargeAmount().negate());
|
|
|
- drug.add(item);
|
|
|
- updateDrugLabel.add(item.getDetailSn());
|
|
|
+ // 仅退费不退药品
|
|
|
+ if ("refundOnly".equals(param.getRefundFlag())) {
|
|
|
+ maxDetailSn = setRefund(project, tuiFeiList, updateRefundFlag, maxDetailSn, item);
|
|
|
+ } else {
|
|
|
+ // 数量设置为负数
|
|
|
+ item.setChargeAmount(item.getChargeAmount().negate());
|
|
|
+ drug.add(item);
|
|
|
+ updateDrugLabel.add(item.getDetailSn());
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 护士退药单
|
|
|
if (ListUtil.notBlank(drug)) {
|
|
|
- Map<String, ZyDetailCharge> getDrugClass = dao.getDrugClass(drug).stream().collect(
|
|
|
- Collectors.toMap(ZyDetailCharge::getChargeCodeMx, a -> a, (k1, k2) -> k1)
|
|
|
- );
|
|
|
-
|
|
|
for (ZyDetailCharge item : drug) {
|
|
|
- ZyDetailCharge a = getDrugClass.get(item.getChargeCodeMx());
|
|
|
+ ZyDetailCharge a = dao.selectDrugClassByOrderNo(item.getOrderNo());
|
|
|
if (a == null) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号:【%s】,药品无法退费 原因没有查询到原药品请联系药库,编码为:【%s】。", item.getDetailSn(), item.getChargeCodeMx()));
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号:【%s】,药品无法退费,原因没有查询到原药品对应的医嘱,编码为:【%s】。", item.getDetailSn(), item.getChargeCodeMx()));
|
|
|
} else {
|
|
|
// 口服药无法退费
|
|
|
- if ("d".equals(a.getDrugClass())) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号:【%s】,药品无法退费,原因口服药无法退费,开退费医嘱也不行", item.getDetailSn()));
|
|
|
+ if ("1".equals(a.getClassCode())) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号:【%s】,药品无法退费,原因原医嘱的给药方式为口服药,口服无法退费。", item.getDetailSn()));
|
|
|
}
|
|
|
- item.setDrugClass(a.getDrugClass());
|
|
|
+ // 医嘱表中会有 z 所以把所有 z 的换成 j
|
|
|
+ item.setDrugClass("z".equals(a.getDrugClass()) ? "j" : a.getDrugClass());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -251,13 +252,13 @@ public class XiangMuLuRuService {
|
|
|
dao.shenQingYaoPing(param, medicalTechnologyDrugReturnForm, infantFlag, ledgerSn, TokenUtil.getTokenUserId());
|
|
|
}
|
|
|
|
|
|
+ // 项目退费
|
|
|
if (ListUtil.notBlank(project)) {
|
|
|
List<List<ZyDetailCharge>> fenGe = ListUtils.partition(project, 20);
|
|
|
fenGe.forEach(dao::xiangMuTuiFei);
|
|
|
dao.genXinZhenShuTuiFeiLiuShui(param.getInpatientNo(), param.getAdmissTimes(), ledgerSn, updateRefundFlag, -1);
|
|
|
log.info("项目录入==》项目退费,操作人:{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(project, DateUtil.DEFAULT_PATTERN));
|
|
|
}
|
|
|
-
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "退费成功。");
|
|
|
}
|
|
|
|