Browse Source

优化自动撤销医保结算

lighter 3 years ago
parent
commit
e70e165149

+ 4 - 0
src/main/java/thyyxxk/simzfeeoprnsystm/dao/ScheduledDao.java

@@ -11,4 +11,8 @@ public interface ScheduledDao {
     @Select("select pat_no,times,ledger_sn,setl_id,mdtrt_id,psn_no from t_si_setlinfo where setl_type=11 " +
             "and mz_saved=0 and revoked=0 and datediff(hour, endtime, getdate()) between 12 and 72 ")
     List<SiSetlinfo> selectSetlinfos();
+
+    @Select("select count(1) from mz_deposit_file WITH(NOLOCK) where " +
+            "patient_id=#{patNo} and times=#{times} and pay_mark=0")
+    int alreadyPayed(String patNo, int times);
 }

+ 4 - 2
src/main/java/thyyxxk/simzfeeoprnsystm/scheduled/ScheduledTask.java

@@ -25,8 +25,10 @@ public class ScheduledTask {
     public void cancelSettlement() throws Exception {
         List<SiSetlinfo> list = dao.selectSetlinfos();
         for (SiSetlinfo setlinfo : list) {
-            service.revokeOutpatientSettlementForTask(setlinfo);
-            TimeUnit.SECONDS.sleep(2);
+            if (dao.alreadyPayed(setlinfo.getPatNo(), setlinfo.getTimes()) == 0) {
+                service.revokeOutpatientSettlementForTask(setlinfo);
+                TimeUnit.SECONDS.sleep(2);
+            }
         }
     }
 }