Quellcode durchsuchen

优化新医保查询

lighter vor 3 Jahren
Ursprung
Commit
58314e24a7

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>web-server</artifactId>
-    <version>10.2.2</version>
+    <version>10.2.3</version>
     <name>web-server</name>
     <description>server for yibao-web</description>
     <properties>

+ 10 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/query/FeeDetl.java

@@ -51,6 +51,11 @@ public class FeeDetl {
      * */
     private Double selfpayProp;
 
+    /**
+     * 自付比例转百分比输出
+     * */
+    private String selfpayPropPercent;
+
     /**
      * 全自费金额
      * */
@@ -76,6 +81,11 @@ public class FeeDetl {
      * */
     private String chrgitmLv;
 
+    /**
+     * 收费项目等级名称
+     * */
+    private String chrgitmLvName;
+
     /**
      * 医保目录编码
      * */

+ 1 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/query/QryPsnBsInfo.java

@@ -16,5 +16,6 @@ public class QryPsnBsInfo {
     private String socialNo;
     private String name;
 
+    private Integer onlyQry;
     private Integer needSaving;
 }

+ 20 - 8
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiQueryService.java

@@ -17,6 +17,7 @@ import thyyxxk.webserver.entity.medicalinsurance.query.*;
 import thyyxxk.webserver.entity.medicalinsurance.setllist.*;
 import thyyxxk.webserver.utils.*;
 
+import java.text.DecimalFormat;
 import java.time.LocalDate;
 import java.util.*;
 
@@ -41,10 +42,13 @@ public class SiQueryService {
     }
 
     public ResultVo<PsnBaseInfo> obtainBasicPersonInfo(QryPsnBsInfo qryPsnBsInfo) {
-        if (StringUtil.isBlank(qryPsnBsInfo.getMedType())) {
+        if (null == qryPsnBsInfo.getOnlyQry() && StringUtil.isBlank(qryPsnBsInfo.getMedType())) {
             return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "请选择患者的医疗类别!");
         }
         if (StringUtil.isBlank(qryPsnBsInfo.getSocialNo()) || StringUtil.isBlank(qryPsnBsInfo.getName())) {
+            if (new Integer(1).equals(qryPsnBsInfo.getOnlyQry())) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "姓名和身份证不能为空,请补充!");
+            }
             QryPsnBsInfo qpbi = dao.selectMzSocialAndName(qryPsnBsInfo.getPatNo());
             if (StringUtil.isBlank(qpbi.getSocialNo())) {
                 return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者的身份证不能为空,请补充!");
@@ -314,6 +318,14 @@ public class SiQueryService {
             for (int i = 0; i < output.size(); i++) {
                 JSONObject obj = output.getJSONObject(i);
                 FeeDetl item = JSONObject.parseObject(obj.toJSONString(), FeeDetl.class);
+                String percent = Integer.parseInt(new DecimalFormat("0").format(item.getSelfpayProp() * 100)) + "%";
+                item.setSelfpayPropPercent(percent);
+                ChrgitmLv chrgitmLvEnum = ChrgitmLv.get(item.getChrgitmLv());
+                if (null != chrgitmLvEnum) {
+                    item.setChrgitmLvName(chrgitmLvEnum.getName());
+                } else {
+                    item.setChrgitmLvName(item.getChrgitmLv());
+                }
                 list.add(item);
             }
             return ResultVoUtil.success(list);
@@ -807,26 +819,26 @@ public class SiQueryService {
             JSONObject itm = cuminfos.getJSONObject(i);
             if (itm.getString("year").equals(year)) {
                 switch (itm.getString("cum_type_code")) {
-                    case "C0000":
+                    case "C0000": // 本年住院次数
                         cuminfo.addYearAdmtimes(itm.getDoubleValue("cum"));
                         break;
-                    case "F0000":
+                    case "F0000": // 医疗费合计
                         cuminfo.addYearFeesum(itm.getDoubleValue("cum"));
                         break;
-                    case "Q0000":
+                    case "Q0000": // 已付起付线
                         cuminfo.addYearPayedbegnline(itm.getDoubleValue("cum"));
                         break;
-                    case "D310101":
+                    case "D310101": // 统筹支付
                     case "D390101":
                         cuminfo.addYearFundpays(itm.getDoubleValue("cum"));
                         break;
-                    case "D330101":
+                    case "D330101": // 大额基金支付
                         cuminfo.addYearBigAmtpays(itm.getDoubleValue("cum"));
                         break;
-                    case "D390201":
+                    case "D390201": // 大病保险支付
                         cuminfo.addYearBigdssInspays(itm.getDoubleValue("cum"));
                         break;
-                    case "D610101":
+                    case "D610101": // 医疗救助支付
                         cuminfo.addYearMafpays(itm.getDoubleValue("cum"));
                         break;
                 }