Browse Source

结算单

xiaochan 3 years ago
parent
commit
a2c82f5602

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/UpIdCollectionDao.java

@@ -117,7 +117,7 @@ public interface UpIdCollectionDao {
     /*                                              收费项目信息                                              */
     // 总金额 和 全自费 和 医疗收费项目
     @Select("select med_chrgitm_type as med_chrgitm,sum(det_item_fee_sumamt) as amt, " +
-            "       sum(fulamt_ownpay_amt) fulamt_ownpay_amt from t_si_setl_fee_detl " +
+            "       sum(fulamt_ownpay_amt) fulamt_ownpay_amt,claa_sumfee = 0,clab_amt = 0,oth_amt = 0 from t_si_setl_fee_detl " +
             "where setl_id = #{setlId} " +
             "group by med_chrgitm_type")
     List<IteminfoUpld> amtAndOthAmt(@Param("setlId") String setlId);

+ 4 - 3
src/main/java/thyyxxk/webserver/dao/his/yibao/XiangMuLuRuDao.java

@@ -298,13 +298,14 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
             "       refer_physician, " +
             "       consult_physician, " +
             "       ori_detail_sn" +
-            " from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn > 0 and detail_sn in " +
+            " from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledgerSn} and detail_sn in " +
             "<foreach collection='list' item='item' index='index' open='(' close=')' separator=','>" +
             "#{item.detailSn}" +
             "</foreach>" +
             "</script>")
     List<ZyDetailCharge> huoQuJuTiFeiYong(@Param("inpatientNo") String inpatientNo,
                                           @Param("admissTimes") Integer admissTimes,
+                                          @Param("ledgerSn") Integer ledgerSn,
                                           @Param("list") List<ZyDetailCharge> list);
 
     /**
@@ -355,16 +356,16 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
             "       refer_physician, " +
             "       consult_physician, " +
             "       ori_detail_sn" +
-            " from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes}  and ori_detail_sn in " +
+            " from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledgerSn}  and ori_detail_sn in " +
             "<foreach collection='list' item='item' index='index' open='(' close=')' separator=','>" +
             "#{item.detailSn}" +
             "</foreach>" +
             "</script>")
     List<ZyDetailCharge> chaKanSFYiJingTuiFeiLe(@Param("inpatientNo") String inpatientNo,
                                                 @Param("admissTimes") Integer admissTimes,
+                                                @Param("ledgerSn") Integer ledgerSn,
                                                 @Param("list") List<ZyDetailCharge> list);
 
-
     /**
      * 插入数据
      *

+ 2 - 17
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiManageService.java

@@ -25,7 +25,6 @@ import thyyxxk.webserver.entity.medicalinsurance.setllistupload.UpldCollection;
 import thyyxxk.webserver.utils.*;
 
 import java.io.IOException;
-import java.math.BigDecimal;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.*;
@@ -331,24 +330,10 @@ public class SiManageService {
             for (IteminfoUpld item : amtAndOthAmt) {
                 String key = item.getMedChrgitm();
                 if (jiaLeiFeiYong.containsKey(key)) {
-                    item.setClaaSumfee(jiaLeiFeiYong.get(key).getClaaSumfee() == null ?
-                            new BigDecimal(0) : jiaLeiFeiYong.get(key).getClaaSumfee());
+                    item.setClaaSumfee(jiaLeiFeiYong.get(key).getClaaSumfee());
                 }
                 if (yiLeiFeiYong.containsKey(key)) {
-                    log.info("乙类金额1:{}", jiaLeiFeiYong.get(key).getClabAmt());
-                    item.setClabAmt(jiaLeiFeiYong.get(key).getClabAmt() == null ?
-                            new BigDecimal(0) : jiaLeiFeiYong.get(key).getClabAmt());
-                    log.info("乙类金额2:{}", jiaLeiFeiYong.get(key).getClabAmt());
-
-                }
-                if (item.getClaaSumfee() == null) {
-                    item.setClaaSumfee(new BigDecimal(0));
-                }
-                if (item.getClabAmt() == null) {
-                    item.setClabAmt(new BigDecimal(0));
-                }
-                if (item.getFulamtOwnpayAmt() == null) {
-                    item.setFulamtOwnpayAmt(new BigDecimal(0));
+                    item.setClabAmt(yiLeiFeiYong.get(key).getClabAmt());
                 }
                 item.setOthAmt(item.getAmt().subtract(item.getClaaSumfee()).subtract(item.getClabAmt()).subtract(item.getFulamtOwnpayAmt()));
             }

+ 0 - 4
src/main/java/thyyxxk/webserver/service/yibao/TransferInOfExpensesService.java

@@ -12,12 +12,10 @@ import thyyxxk.webserver.constants.GetDateFormat;
 import thyyxxk.webserver.dao.his.yibao.TransferInOfExpensesDao;
 import thyyxxk.webserver.dao.his.yibao.XiangMuLuRuDao;
 import thyyxxk.webserver.entity.ResultVo;
-import thyyxxk.webserver.entity.datamodify.FeiYongLeiXin;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.yibao.ZyActpatient;
-import thyyxxk.webserver.utils.JiSuanFeiYong;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
@@ -156,8 +154,6 @@ public class TransferInOfExpensesService {
             mzChargeDetail.setDetailSn(maxDetailSn += 1);
             sum = sum.add(pojo.getChargeAmount().multiply(pojo.getAmount()));
         }
-        FeiYongLeiXin fy = JiSuanFeiYong.jiSuan(zyDetailCharges, true);
-        fy.setTotalCharge(sum);
         dao.insertInfoZyDetailCharge(param, list);
         log.info("急门诊费用插入 --> 操作人:{} , 数据:{}", param.getStaffId(), JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "操作成功。");

+ 7 - 14
src/main/java/thyyxxk/webserver/service/yibao/XiangMuLuRuService.java

@@ -11,7 +11,6 @@ import org.springframework.transaction.annotation.Transactional;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.yibao.XiangMuLuRuDao;
 import thyyxxk.webserver.entity.ResultVo;
-import thyyxxk.webserver.entity.datamodify.FeiYongLeiXin;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.yibao.ZyActpatient;
@@ -123,23 +122,23 @@ public class XiangMuLuRuService {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该患者已出院 /(ㄒoㄒ)/~~");
         }
 
-        // 判断数据是否为 退费数据
-        List<ZyDetailCharge> chaKanSFtuiFei = dao.chaKanSFYiJingTuiFeiLe(param.getInpatientNo(), param.getAdmissTimes(), param.getList());
-
-        for (ZyDetailCharge charge : chaKanSFtuiFei) {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为:【%s】已退费,请勿重复退费 <br/>···(。•́︿•̀。) ", charge.getOriDetailSn()));
-        }
         int infantFlag = 0;
         // 判断是否为婴儿
         if (param.getInpatientNo().contains("$")) {
             param.setInpatientNo(param.getInpatientNo().split("\\$")[0]);
             infantFlag = 1;
         }
+        Integer ledgerSn = publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes());
+        // 判断数据是否为 退费数据
+        List<ZyDetailCharge> chaKanSFtuiFei = dao.chaKanSFYiJingTuiFeiLe(param.getInpatientNo(), param.getAdmissTimes(), ledgerSn, param.getList());
+        for (ZyDetailCharge charge : chaKanSFtuiFei) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号为:【%s】已退费,请勿重复退费 <br/>···(。•́︿•̀。) ", charge.getOriDetailSn()));
+        }
         if (dao.getHuanZheSFJieSuan(param.getInpatientNo(), param.getAdmissTimes()) == null || dao.getHuanZheSFJieSuan(param.getInpatientNo(), param.getAdmissTimes()) != 0) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该患者已经结算了");
         }
         // 获取原来的数据
-        List<ZyDetailCharge> yuanTuiFeiList = dao.huoQuJuTiFeiYong(param.getInpatientNo(), param.getAdmissTimes(), param.getList());
+        List<ZyDetailCharge> yuanTuiFeiList = dao.huoQuJuTiFeiYong(param.getInpatientNo(), param.getAdmissTimes(), ledgerSn, param.getList());
         // 获取患者的总费用
         BigDecimal sum = new BigDecimal(0);
         // 退费的list
@@ -179,10 +178,6 @@ public class XiangMuLuRuService {
             tuiFeiList.add(pojo);
             genXingZhenShuTuiFeiLiuShui.add(pojo.getOriDetailSn());
         }
-        // 总费用计算
-        FeiYongLeiXin fy = JiSuanFeiYong.jiSuan(yuanTuiFeiList, false);
-        // 计算出这一次 总退的费用
-        fy.setTotalCharge(sum.negate());
         // 执行退费的操作 20 条的退费
         if (tuiFeiList.isEmpty()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "查询不到患者原数据,请联系管理员。( ´Д`)y━・~~");
@@ -402,8 +397,6 @@ public class XiangMuLuRuService {
                 yaoPingShenQingDan.add(shenQing);
             }
         }
-        FeiYongLeiXin fy = JiSuanFeiYong.jiSuan(param.getList(), true);
-        fy.setTotalCharge(sum);
         Integer ledgerSn = publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes());
         // 在此处 插入费用
         dao.chaRuFeiYong(param, param.getList(), infantFlag, ledgerSn);