Kaynağa Gözat

优化自费患者费用上传

lighter 2 yıl önce
ebeveyn
işleme
5e3b715b29

+ 1 - 0
src/main/java/thyyxxk/sizyfeeoprnsystm/controller/SelfpayController.java

@@ -18,6 +18,7 @@ public class SelfpayController {
 
     @PostMapping("/uploadSelfpayMedfee")
     public JSONObject uploadSelfpayMedfee(@RequestBody BriefLedgerFile ledgerFile) {
+        service.resetSelfUpladStatus(ledgerFile);
         return service.uploadSelfpayMedfee(ledgerFile);
     }
 

+ 5 - 0
src/main/java/thyyxxk/sizyfeeoprnsystm/dao/SelfpayDao.java

@@ -17,6 +17,11 @@ import java.util.List;
 @Mapper
 public interface SelfpayDao {
 
+    @Update("update zy_ledger_file set selfpay_uploaded=0 where inpatient_no=#{patNo} and admiss_times=#{times} and ledger_sn=#{ledgerSn};" +
+            "update zy_detail_charge set trans_flag_yb=0 where inpatient_no=#{patNo} and admiss_times=#{times} and ledger_sn=#{ledgerSn} " +
+            "and trans_flag_yb!=2")
+    void resetSelfUploadStatus(BriefLedgerFile ledgerFile);
+
     @Select("select psnCertType='01',certno=b.social_no,psnName=rtrim(a.name),begntime=a.admiss_date,endtime=a.dis_date, " +
             "medType=isnull(a.med_type,'2101'),iptOpNo=rtrim(b.inpatient_no),inhospStas='0',valiFlag='1' from ${table} a, " +
             "a_patient_mi b where a.inpatient_no=#{patNo} and a.admiss_times=#{times} and a.inpatient_no=b.inpatient_no")

+ 1 - 12
src/main/java/thyyxxk/sizyfeeoprnsystm/scheduled/UploadSelfpayCharges.java

@@ -1,6 +1,5 @@
 package thyyxxk.sizyfeeoprnsystm.scheduled;
 
-import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -36,17 +35,7 @@ public class UploadSelfpayCharges {
     private void startUpload() {
         List<BriefLedgerFile> unAnalyzedData = dao.selectBriefLedgerFile();
         for (BriefLedgerFile ledgerFile : unAnalyzedData) {
-            JSONObject uploadResult = service.uploadSelfpayMedfee(ledgerFile);
-            if (null != uploadResult
-                    && null != uploadResult.getInteger("code")
-                    && uploadResult.getInteger("code") == 0) {
-                ledgerFile.setSelfpayUploaded(1);
-                dao.updateLedgerFileUploaded(ledgerFile);
-            } else {
-                log.error("【{}】自费病人费用明细信息上传失败:{}", ledgerFile, uploadResult);
-                ledgerFile.setSelfpayUploaded(2);
-                dao.updateLedgerFileUploaded(ledgerFile);
-            }
+            service.uploadSelfpayMedfee(ledgerFile);
         }
     }
 }

+ 17 - 1
src/main/java/thyyxxk/sizyfeeoprnsystm/service/SelfpayService.java

@@ -33,6 +33,10 @@ public class SelfpayService {
         this.exec = exec;
     }
 
+    public void resetSelfUpladStatus(BriefLedgerFile ledgerFile) {
+        dao.resetSelfUploadStatus(ledgerFile);
+    }
+
     public JSONObject uploadSelfpayMedfee(BriefLedgerFile ledgerFile) {
         FmiOwnpayPatnDise dise = dao.selectPatnDise(ledgerFile.getPatNo(), ledgerFile.getTimes());
         if (null == dise) {
@@ -67,7 +71,19 @@ public class SelfpayService {
         array.add(JSONObject.parseObject(JSONObject.toJSONString(dise)));
         input.put("fmiOwnpayPatnDiseListDDTOS", array);
         Queue<FmiOwnpayPatnFee> fees = dao.selectOwnpayFees(ledgerFile);
-        return executeBatchUpload(ledgerFile.getPatNo(), ledgerFile.getTimes(), input, fees);
+
+        JSONObject uploadResult = executeBatchUpload(ledgerFile.getPatNo(), ledgerFile.getTimes(), input, fees);
+        if (null != uploadResult
+                && null != uploadResult.getInteger("code")
+                && uploadResult.getInteger("code") == 0) {
+            ledgerFile.setSelfpayUploaded(1);
+            dao.updateLedgerFileUploaded(ledgerFile);
+        } else {
+            log.error("【{}】自费病人费用明细信息上传失败:{}", ledgerFile, uploadResult);
+            ledgerFile.setSelfpayUploaded(2);
+            dao.updateLedgerFileUploaded(ledgerFile);
+        }
+        return uploadResult;
     }
 
     private JSONObject executeBatchUpload(String patNo, int times, JSONObject input, Queue<FmiOwnpayPatnFee> fees) {