Selaa lähdekoodia

恢复批量上传功能。

lighter 2 vuotta sitten
vanhempi
commit
07456fb5e6

+ 7 - 0
src/main/java/thyyxxk/webserver/controller/medicalinsurance/SiZyController.java

@@ -8,6 +8,8 @@ import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.inpatient.patient.Overview;
 import thyyxxk.webserver.service.medicalinsurance.SiZyService;
 
+import java.util.List;
+
 /**
  * @description: 住院医保入口
  * @author: DingJie
@@ -45,6 +47,11 @@ public class SiZyController {
         return service.uploadFeeDetail(o);
     }
 
+    @PostMapping("/multipleUpload")
+    public ResultVo<String> multipleUpload(@RequestBody List<Overview> overviews) {
+        return service.multipleUpload(overviews);
+    }
+
     @PostMapping("/revokeUploadFees")
     public ResultVo<String> revokeUploadFees(@RequestBody ZyPatientInfo p) {
         return service.revokeUploadFees(p);

+ 4 - 0
src/main/java/thyyxxk/webserver/service/externalhttp/SiZySrvc.java

@@ -6,9 +6,13 @@ import com.dtflys.forest.annotation.Var;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.inpatient.patient.Overview;
 
+import java.util.List;
+
 public interface SiZySrvc {
 
     @Post("{url}/upload")
     ResultVo<String> uploadFeeDetail(@Var("url") String url, @JSONBody Overview o);
 
+    @Post("{url}/uploadMultiplePatientFees")
+    ResultVo<String> uploadMultiplePatientFees(@Var("url") String url, @JSONBody List<Overview> overviews);
 }

+ 22 - 0
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiZyService.java

@@ -224,6 +224,28 @@ public class SiZyService {
         return zySrvc.uploadFeeDetail(siZyFeeUrl, o);
     }
 
+    public ResultVo<String> multipleUpload(List<Overview> overviews) {
+        for (Overview o : overviews) {
+            if (o.getStatus() == 0) {
+                String message = String.format("【%s床,%s,%s】未进行医保登记,无法进行费用上传。",
+                        o.getBedNo(), o.getInpatientNo(), o.getName());
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, message);
+            }
+            if (invalidMultipleUploadPatient(o.getMedType())) {
+                String message = String.format("【%s床,%s,%s】是工伤患者,不支持批量上传。",
+                        o.getBedNo(), o.getInpatientNo(), o.getName());
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, message);
+            }
+            o.setStaffId(TokenUtil.getTokenUserId());
+        }
+        return zySrvc.uploadMultiplePatientFees(siZyFeeUrl, overviews);
+    }
+
+    private boolean invalidMultipleUploadPatient(String medtype) {
+        MedType medType = MedType.get(medtype);
+        return null == medType || medType == MedType.INJURY_HOSPITALIZATION || medType == MedType.SELF_PAY;
+    }
+
     public ResultVo<String> hospitalizationPreSettlement(ZyPatientInfo p) {
         PreSetlmt preSetlmt = dao.selectPreSetlmt(p.getInpatientNo(), p.getAdmissTimes(),
                 p.getLedgerSn(), DateUtil.getTodayEndTime());