Kaynağa Gözat

优化医保结算单,只显示有内容的政策项

lighter 2 yıl önce
ebeveyn
işleme
0a116c33a6

+ 2 - 109
src/main/java/thyyxxk/webserver/entity/medicalinsurance/setllist/PolItemInfo.java

@@ -3,119 +3,12 @@ package thyyxxk.webserver.entity.medicalinsurance.setllist;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @Data
 public class PolItemInfo {
     private BigDecimal allPsnAmt;
     private BigDecimal allFundAmt;
     private BigDecimal allSum;
-
-    /**
-     * 政策项:全自费
-     * */
-    private BigDecimal selfPayPsnAmt;
-    private String selfPayPsnProp;
-    private BigDecimal selfPayFundAmt;
-    private String selfPayFundProp;
-    private BigDecimal selfPaySum;
-
-    /**
-     * 政策项:乙类先自付
-     * */
-    private BigDecimal scndPrePayPsnAmt;
-    private String scndPrePayPsnProp;
-    private BigDecimal scndPrePayFundAmt;
-    private String scndPrePayFundProp;
-    private BigDecimal scndPrePaySum;
-
-    /**
-     * 政策项:超限额自付
-     * */
-    private BigDecimal ovrlmtSelfPayPsnAmt;
-    private String ovrlmtSelfPayPsnProp;
-    private BigDecimal ovrlmtSelfPayFundAmt;
-    private String ovrlmtSelfPayFundProp;
-    private BigDecimal ovrlmtSelfPaySum;
-
-    /**
-     * 政策项:本次应付起付标准
-     * */
-    private BigDecimal begnlinePsnAmt;
-    private String begnlinePsnProp;
-    private BigDecimal begnlineFundAmt;
-    private String begnlineFundProp;
-    private BigDecimal begnlineSum;
-
-    /**
-     * 政策项:统筹一段
-     * */
-    private BigDecimal fundFrstLvPsnAmt;
-    private String fundFrstLvPsnProp;
-    private BigDecimal fundFrstLvFundAmt;
-    private String fundFrstLvFundProp;
-    private BigDecimal fundFrstLvSum;
-
-    /**
-     * 政策项:统筹二段
-     * */
-    private BigDecimal fundScndLvPsnAmt;
-    private String fundScndLvPsnProp;
-    private BigDecimal fundScndLvFundAmt;
-    private String fundScndLvFundProp;
-    private BigDecimal fundScndLvSum;
-
-    /**
-     * 政策项:统筹三段
-     * */
-    private BigDecimal fundThrdLvPsnAmt;
-    private String fundThrdLvPsnProp;
-    private BigDecimal fundThrdLvFundAmt;
-    private String fundThrdLvFundProp;
-    private BigDecimal fundThrdLvSum;
-
-
-    /**
-     * 政策项:大额一段
-     * */
-    private BigDecimal bigAmtFrstLvPsnAmt;
-    private String bigAmtFrstLvPsnProp;
-    private BigDecimal bigAmtFrstLvFundAmt;
-    private String bigAmtFrstLvFundProp;
-    private BigDecimal bigAmtFrstLvSum;
-
-    /**
-     * 政策项:双通道统筹支付
-     * */
-    private BigDecimal dualChannelFundPsnAmt;
-    private String dualChannelFundPsnProp;
-    private BigDecimal dualChannelFundFundAmt;
-    private String dualChannelFundFundProp;
-    private BigDecimal dualChannelFundSum;
-
-    /**
-     * 政策项:双通道大额支付
-     * */
-    private BigDecimal dualChannelBigAmtPsnAmt;
-    private String dualChannelBigAmtPsnProp;
-    private BigDecimal dualChannelBigAmtFundAmt;
-    private String dualChannelBigAmtFundProp;
-    private BigDecimal dualChannelBigAmtSum;
-
-    /**
-     * 政策项:转外自理
-     * */
-    private BigDecimal externalSelfHandlePsnAmt;
-    private String externalSelfHandlePsnProp;
-    private BigDecimal externalSelfHandleFundAmt;
-    private String externalSelfHandleFundProp;
-    private BigDecimal externalSelfHandleSum;
-
-    /**
-     * 政策项:门诊(无分段)
-     * */
-    private BigDecimal outpatientWfdPsnAmt;
-    private String outpatientWfdPsnProp;
-    private BigDecimal outpatientWfdFundAmt;
-    private String outpatientWfdFundProp;
-    private BigDecimal outpatientWfdSum;
+    private List<PolicyItem> policyItems;
 }

+ 19 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/setllist/PolicyItem.java

@@ -0,0 +1,19 @@
+package thyyxxk.webserver.entity.medicalinsurance.setllist;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PolicyItem {
+    private String psnNo;
+    private String mdtrtId;
+    private String setlId;
+    private String polItemCode;
+    private String polItemName;
+    private BigDecimal polItemPaySum;
+    private String fundPayProp;
+    private BigDecimal fundPayAmt;
+    private String selfPayProp;
+    private BigDecimal selfPayAmt;
+}

+ 7 - 102
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiQueryService.java

@@ -994,113 +994,18 @@ public class SiQueryService {
         JSONArray array = result.getJSONArray("data");
         BigDecimal selfPaySum = new BigDecimal(0);
         BigDecimal fundPaySum = new BigDecimal(0);
+        List<PolicyItem> policyItems = new ArrayList<>();
         for (int i = 0; i < array.size(); i++) {
-            JSONObject itm = array.getJSONObject(i);
-            BigDecimal selfPayAmt = BigDecimal.valueOf(itm.getDouble("selfPayAmt"));
-            String selfPayProp = itm.getString("selfPayProp");
-            BigDecimal fundPayAmt = BigDecimal.valueOf(itm.getDouble("fundPayAmt"));
-            String fundPayProp = itm.getString("fundPayProp");
-            BigDecimal polItemPaySum = BigDecimal.valueOf(itm.getDouble("polItemPaySum"));
-            selfPaySum = selfPaySum.add(selfPayAmt);
-            fundPaySum = fundPaySum.add(fundPayAmt);
-
-            PolItemCode polItemCode = PolItemCode.get(itm.getString("polItemCode"));
-            if (null == polItemCode) {
-                String message = String.format("找到了字典缺失的政策项:%s", itm);
-                log.info(message);
-                wxsrvc.sendCorpWxMsg("2801", message);
-                continue;
-            }
-            switch (polItemCode) {
-                case QZF:
-                    polItemInfo.setSelfPayPsnAmt(selfPayAmt);
-                    polItemInfo.setSelfPayPsnProp(selfPayProp);
-                    polItemInfo.setSelfPayFundAmt(fundPayAmt);
-                    polItemInfo.setSelfPayFundProp(fundPayProp);
-                    polItemInfo.setSelfPaySum(polItemPaySum);
-                    break;
-                case YLXZF:
-                    polItemInfo.setScndPrePayPsnAmt(selfPayAmt);
-                    polItemInfo.setScndPrePayPsnProp(selfPayProp);
-                    polItemInfo.setScndPrePayFundAmt(fundPayAmt);
-                    polItemInfo.setScndPrePayFundProp(fundPayProp);
-                    polItemInfo.setScndPrePaySum(polItemPaySum);
-                    break;
-                case CXEZF:
-                    polItemInfo.setOvrlmtSelfPayPsnAmt(selfPayAmt);
-                    polItemInfo.setOvrlmtSelfPayPsnProp(selfPayProp);
-                    polItemInfo.setOvrlmtSelfPayFundAmt(fundPayAmt);
-                    polItemInfo.setOvrlmtSelfPayFundProp(fundPayProp);
-                    polItemInfo.setOvrlmtSelfPaySum(polItemPaySum);
-                    break;
-                case BCYFQFBZ:
-                    polItemInfo.setBegnlinePsnAmt(selfPayAmt);
-                    polItemInfo.setBegnlinePsnProp(selfPayProp);
-                    polItemInfo.setBegnlineFundAmt(fundPayAmt);
-                    polItemInfo.setBegnlineFundProp(fundPayProp);
-                    polItemInfo.setBegnlineSum(polItemPaySum);
-                    break;
-                case TCYD:
-                    polItemInfo.setFundFrstLvPsnAmt(selfPayAmt);
-                    polItemInfo.setFundFrstLvPsnProp(selfPayProp);
-                    polItemInfo.setFundFrstLvFundAmt(fundPayAmt);
-                    polItemInfo.setFundFrstLvFundProp(fundPayProp);
-                    polItemInfo.setFundFrstLvSum(polItemPaySum);
-                    break;
-                case TCED:
-                    polItemInfo.setFundScndLvPsnAmt(selfPayAmt);
-                    polItemInfo.setFundScndLvPsnProp(selfPayProp);
-                    polItemInfo.setFundScndLvFundAmt(fundPayAmt);
-                    polItemInfo.setFundScndLvFundProp(fundPayProp);
-                    polItemInfo.setFundScndLvSum(polItemPaySum);
-                    break;
-                case TCSD:
-                    polItemInfo.setFundThrdLvPsnAmt(selfPayAmt);
-                    polItemInfo.setFundThrdLvPsnProp(selfPayProp);
-                    polItemInfo.setFundThrdLvFundAmt(fundPayAmt);
-                    polItemInfo.setFundThrdLvFundProp(fundPayProp);
-                    polItemInfo.setFundThrdLvSum(polItemPaySum);
-                    break;
-                case DEYD:
-                    polItemInfo.setBigAmtFrstLvPsnAmt(selfPayAmt);
-                    polItemInfo.setBigAmtFrstLvPsnProp(selfPayProp);
-                    polItemInfo.setBigAmtFrstLvFundAmt(fundPayAmt);
-                    polItemInfo.setBigAmtFrstLvFundProp(fundPayProp);
-                    polItemInfo.setBigAmtFrstLvSum(polItemPaySum);
-                    break;
-                case STDTCZF:
-                    polItemInfo.setDualChannelFundPsnAmt(selfPayAmt);
-                    polItemInfo.setDualChannelFundPsnProp(selfPayProp);
-                    polItemInfo.setDualChannelFundFundAmt(fundPayAmt);
-                    polItemInfo.setDualChannelFundFundProp(fundPayProp);
-                    polItemInfo.setDualChannelFundSum(polItemPaySum);
-                    break;
-                case STDDEZF:
-                    polItemInfo.setDualChannelBigAmtPsnAmt(selfPayAmt);
-                    polItemInfo.setDualChannelBigAmtPsnProp(selfPayProp);
-                    polItemInfo.setDualChannelBigAmtFundAmt(fundPayAmt);
-                    polItemInfo.setDualChannelBigAmtFundProp(fundPayProp);
-                    polItemInfo.setDualChannelBigAmtSum(polItemPaySum);
-                    break;
-                case ZWZL:
-                    polItemInfo.setExternalSelfHandlePsnAmt(selfPayAmt);
-                    polItemInfo.setExternalSelfHandlePsnProp(selfPayProp);
-                    polItemInfo.setExternalSelfHandleFundAmt(fundPayAmt);
-                    polItemInfo.setExternalSelfHandleFundProp(fundPayProp);
-                    polItemInfo.setExternalSelfHandleSum(polItemPaySum);
-                    break;
-                case MZWFD:
-                    polItemInfo.setOutpatientWfdPsnAmt(selfPayAmt);
-                    polItemInfo.setOutpatientWfdPsnProp(selfPayProp);
-                    polItemInfo.setOutpatientWfdFundAmt(fundPayAmt);
-                    polItemInfo.setOutpatientWfdFundProp(fundPayProp);
-                    polItemInfo.setOutpatientWfdSum(polItemPaySum);
-                    break;
-            }
+            JSONObject polObj = array.getJSONObject(i);
+            PolicyItem policyItem = JSONObject.parseObject(JSONObject.toJSONString(polObj), PolicyItem.class);
+            policyItems.add(policyItem);
+            selfPaySum = selfPaySum.add(policyItem.getSelfPayAmt());
+            fundPaySum = fundPaySum.add(policyItem.getFundPayAmt());
         }
         polItemInfo.setAllPsnAmt(selfPaySum);
         polItemInfo.setAllFundAmt(fundPaySum);
         polItemInfo.setAllSum(fundPaySum.add(selfPaySum));
+        polItemInfo.setPolicyItems(policyItems);
         return ResultVoUtil.success(polItemInfo);
     }