瀏覽代碼

优化出院结算时的数据更新

lighter 3 年之前
父節點
當前提交
71a7baa1a0

+ 30 - 21
src/main/java/thyyxxk/webserver/dao/his/yibao/DismissDao.java

@@ -366,34 +366,43 @@ public interface DismissDao {
     @Select("select code from zy_bill_item")
     List<String> selectBillCodes();
 
-    @Update("update zy_ledger_file set balance=(deposit-#{map.total}), " +
-            "total_charge=#{map.total},charge1=#{map.001},charge2=#{map.002}, " +
-            "charge3=#{map.003},charge4=#{map.004},charge5=#{map.005},charge6=#{map.006},charge7=#{map.007}, " +
-            "charge8=#{map.008},charge9=#{map.009},charge10=#{map.010},charge11=#{map.011},charge12=#{map.012}, " +
-            "charge13=#{map.013},charge14=#{map.014},charge15=#{map.015},charge16=#{map.016},charge17=#{map.017}, " +
-            "charge18=#{map.018},charge19=#{map.019},charge20=#{map.020},charge21=#{map.021},charge22=#{map.022}," +
-            "charge23=#{map.023},charge24=#{map.024},charge25=#{map.025},charge26=#{map.026},charge27=#{map.027}, " +
-            "charge28=#{map.028},charge29=0,charge30=0 " +
+    @Select("select code from zy_zd_responce_type where med_type=(select med_type from t_si_pat_info " +
+            "where pat_no=#{patNo} and times=#{times} and ledger_sn=#{ledgerSn} and isnull(mdtrt_id,'')!='')")
+    String selectResponceType(@Param("patNo") String patNo,
+                              @Param("times") int times,
+                              @Param("ledgerSn") int ledgerSn);
+
+    @Update("select sum(depo_amount) from zy_deposit_file where " +
+            "inpatient_no=#{patNo} and admiss_times=#{times} and ledger_sn=#{ledgerSn}")
+    String selectDepositSumamt(@Param("patNo") String patNo,
+                             @Param("times") int times,
+                             @Param("ledgerSn") int ledgerSn);
+
+    @Update("update zy_ledger_file set deposit=#{deposit}, balance=#{balance}, responce_type=#{restype}, " +
+            "total_charge=#{map.total},charge1=#{map.001},charge2=#{map.002}, charge3=#{map.003},charge4=#{map.004}, " +
+            "charge5=#{map.005},charge6=#{map.006},charge7=#{map.007}, charge8=#{map.008},charge9=#{map.009}, " +
+            "charge10=#{map.010},charge11=#{map.011},charge12=#{map.012}, charge13=#{map.013},charge14=#{map.014}, " +
+            "charge15=#{map.015},charge16=#{map.016},charge17=#{map.017}, charge18=#{map.018},charge19=#{map.019}, " +
+            "charge20=#{map.020},charge21=#{map.021},charge22=#{map.022}, charge23=#{map.023},charge24=#{map.024}, " +
+            "charge25=#{map.025},charge26=#{map.026},charge27=#{map.027}, charge28=#{map.028},charge29=0,charge30=0 " +
             "where inpatient_no=#{patNo} and admiss_times=#{times} and ledger_sn=#{ledgerSn}")
     void updateZyLedgerFileCharges(@Param("patNo") String patNo,
                                    @Param("times") int times,
                                    @Param("ledgerSn") int ledgerSn,
+                                   @Param("deposit") String deposit,
+                                   @Param("balance") String balance,
+                                   @Param("restype") String restype,
                                    @Param("map") Map<String, String> map);
 
-    @Select("select isnull(balance,0) from zy_ledger_file WHERE inpatient_no=#{patNo} " +
-            "and admiss_times=#{times} and ledger_sn=#{ledgerSn}")
-    String selectBalance(@Param("patNo") String patNo,
-                         @Param("times") int times,
-                         @Param("ledgerSn") int ledgerSn);
-
-    @Update("update zy_actpatient set balance=#{balance},total_charge=#{map.total},charge1=#{map.001},charge2=#{map.002}, " +
-            "charge3=#{map.003},charge4=#{map.004},charge5=#{map.005},charge6=#{map.006},charge7=#{map.007}, " +
-            "charge8=#{map.008},charge9=#{map.009},charge10=#{map.010},charge11=#{map.011},charge12=#{map.012}, " +
-            "charge13=#{map.013},charge14=#{map.014},charge15=#{map.015},charge16=#{map.016},charge17=#{map.017}, " +
-            "charge18=#{map.018},charge19=#{map.019},charge20=#{map.020},charge21=#{map.021},charge22=#{map.022}," +
-            "charge23=#{map.023},charge24=#{map.024},charge25=#{map.025},charge26=#{map.026},charge27=#{map.027}, " +
-            "charge28=#{map.028},charge29=0,charge30=0 where inpatient_no=#{patNo} ")
+    @Update("update zy_actpatient set balance=#{balance},responce_type=#{restype}, total_charge=#{map.total}, " +
+            "charge1=#{map.001},charge2=#{map.002}, charge3=#{map.003},charge4=#{map.004},charge5=#{map.005}, " +
+            "charge6=#{map.006},charge7=#{map.007}, charge8=#{map.008},charge9=#{map.009},charge10=#{map.010}, " +
+            "charge11=#{map.011},charge12=#{map.012}, charge13=#{map.013},charge14=#{map.014},charge15=#{map.015}, " +
+            "charge16=#{map.016},charge17=#{map.017}, charge18=#{map.018},charge19=#{map.019},charge20=#{map.020}, " +
+            "charge21=#{map.021},charge22=#{map.022}, charge23=#{map.023},charge24=#{map.024},charge25=#{map.025}, " +
+            "charge26=#{map.026},charge27=#{map.027}, charge28=#{map.028},charge29=0,charge30=0 where inpatient_no=#{patNo} ")
     void updateZyActpatientCharges(@Param("patNo") String patNo,
                                    @Param("balance") String balance,
+                                   @Param("restype") String restype,
                                    @Param("map") Map<String, String> map);
 }

+ 12 - 4
src/main/java/thyyxxk/webserver/service/yibao/DismissService.java

@@ -306,8 +306,18 @@ public class DismissService {
             adultMap.replace("total", DecimalUtil.add(adultMap.get("total"), fee.getAdultFee()));
 
         }
-        dao.updateZyLedgerFileCharges(patNo, times, ledgerSn, ledgerMap);
+        String restype = dao.selectResponceType(patNo, times, ledgerSn);
+        if (StringUtil.isBlank(restype)) {
+            restype = "01";
+        }
+        String deposit = dao.selectDepositSumamt(patNo, times, ledgerSn);
+        if (StringUtil.isBlank(deposit)) {
+            deposit = "0";
+        }
 
+        String balance = DecimalUtil.minus(deposit, ledgerMap.get("total"));
+
+        dao.updateZyLedgerFileCharges(patNo, times, ledgerSn, deposit, balance, restype, ledgerMap);
         ReceiptEntity entity = new ReceiptEntity();
         if (DecimalUtil.compare(infantMap.get("total"), "0") == 1) {
             String patNo1 = patNo + "$1";
@@ -315,9 +325,7 @@ public class DismissService {
             dao.updateInfantfee(patNo1, patNo6, times, infantMap);
             entity.setInfant(infantMap);
         }
-
-        String balance = dao.selectBalance(patNo, times, ledgerSn);
-        dao.updateZyActpatientCharges(patNo, balance, ledgerMap);
+        dao.updateZyActpatientCharges(patNo, balance, restype, ledgerMap);
         entity.setAdult(adultMap);
         return entity;
     }