|
@@ -50,9 +50,9 @@ public class XiangMuLuRuService {
|
|
|
* @return 返回患者费用
|
|
|
*/
|
|
|
public ResultVo<List<ZyDetailCharge>> getHuanZheFeiYong(ZyDetailCharge param) {
|
|
|
- log.info("查询患者费用==》住院号{},住院次数:{},结算次数:{},项目名称:{}", param.getInpatientNo(), param.getAdmissTimes(),
|
|
|
- param.getLedgerSn(), param.getChargeCode());
|
|
|
- List<ZyDetailCharge> list = dao.getHuanZheFeiYong(param.getInpatientNo(), param.getAdmissTimes(), param.getLedgerSn(), param.getChargeCode());
|
|
|
+ log.info("查询患者费用==》住院号{},住院次数:{},项目名称:{}", param.getInpatientNo(), param.getAdmissTimes(),
|
|
|
+ param.getChargeCode());
|
|
|
+ List<ZyDetailCharge> list = dao.getHuanZheFeiYong(param.getInpatientNo(), param.getAdmissTimes(), param.getChargeCode());
|
|
|
Map<Integer, Integer> map = new HashMap<>();
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
// 判断一下这一条数据 是否为 退费数据 再把原数据和 本身添加一个退费的 flag
|
|
@@ -94,6 +94,11 @@ public class XiangMuLuRuService {
|
|
|
for (ZyDetailCharge charge : chaKanSFtuiFei) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为:【%s】已退费,请勿重复退费", charge.getOriDetailSn()));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取到科室费用
|
|
|
+ */
|
|
|
+ List<String> zhiXinKeShi = dao.chaXunZhiZXinKeShi(param.getDeptCode());
|
|
|
// 获取最大值
|
|
|
Integer maxDetailSn = transferInOfExpensesDao.getMaxDetailSn(param.getInpatientNo(), param.getAdmissTimes());
|
|
|
// 获取原来的数据
|
|
@@ -104,11 +109,11 @@ public class XiangMuLuRuService {
|
|
|
for (ZyDetailCharge pojo : yuanTuiFeiList) {
|
|
|
// 判断患者的费用是否存在负数
|
|
|
if (pojo.getChargeFee().signum() == -1 || pojo.getChargeAmount().signum() == -1) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者费用存在负数,该数据为退费数据");
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者费用存在负数,流水号:{" + pojo.getDetailSn() + "},该数据为退费数据");
|
|
|
+ }
|
|
|
+ if (!zhiXinKeShi.contains(pojo.getExecUnit())) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,请对应的执行科室进行退费。", pojo.getDetailSn()));
|
|
|
}
|
|
|
-// if (!param.getDeptCode().equals(pojo.getDeptCode())) {
|
|
|
-// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为【%s】,请录入的科室进行退费", pojo.getDetailSn()));
|
|
|
-// }
|
|
|
sum = sum.add(pojo.getChargeFee().multiply(pojo.getChargeAmount()));
|
|
|
pojo.setChargeFee(pojo.getChargeFee().negate());
|
|
|
pojo.setChargeAmount(pojo.getChargeAmount().negate());
|
|
@@ -120,8 +125,9 @@ public class XiangMuLuRuService {
|
|
|
}
|
|
|
FeiYongLeiXin fy = JiSuanFeiYong.jiSuan(yuanTuiFeiList, false);
|
|
|
fy.setTotalCharge(sum.negate());
|
|
|
- // 执行退费的操作
|
|
|
- dao.xiangMuTuiFei(tuiFeiList);
|
|
|
+ // 执行退费的操作 20 条的退费
|
|
|
+ List<List<ZyDetailCharge>> fenGe = ListUtils.partition(tuiFeiList, 20);
|
|
|
+ fenGe.forEach(dao::xiangMuTuiFei);
|
|
|
dao.huanZheZongFeiYong(fy, param.getInpatientNo(), param.getAdmissTimes(), "zy_actpatient");
|
|
|
log.info("操作项目退费 ==》 操作人:{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONString(tuiFeiList));
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "项目退费操作成功。");
|
|
@@ -160,8 +166,8 @@ public class XiangMuLuRuService {
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public ResultVo<String> xiangMuFeiYongShangChuan(ZyDetailCharge param) {
|
|
|
- if (param.getList().size() > 100) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "一次性项目录入大于100条");
|
|
|
+ if (param.getList().size() > 50) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "一次性项目录入大于50条");
|
|
|
}
|
|
|
if (StringUtil.isBlank(param.getInpatientNo()) || param.getAdmissTimes() == null || param.getLedgerSn() == null || param.getList().size() == 0
|
|
|
|| StringUtil.isBlank(param.getWard()) || StringUtil.isBlank(param.getDept()) || StringUtil.isBlank(param.getZySerialNo())) {
|
|
@@ -181,6 +187,8 @@ public class XiangMuLuRuService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES);
|
|
|
}
|
|
|
sum = sum.add(zyDetailCharge.getChargeAmount().multiply(zyDetailCharge.getAmount()));
|
|
|
+ // 这里不会保存
|
|
|
+ zyDetailCharge.setChargeAmount(zyDetailCharge.getChargeAmount().multiply(zyDetailCharge.getAmount()));
|
|
|
if (StringUtil.isBlank(zyDetailCharge.getChargeCode())) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "项目编码空值。");
|
|
|
}
|