Browse Source

Merge branch 'master' into 'master'

添加报表柱状图和钻取

See merge request lighter/web-server!4
huangshuhua 3 years ago
parent
commit
c139cff463

+ 11 - 0
src/main/java/thyyxxk/webserver/controller/ybkf/YbStatController.java

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.medicalinsurance.setlinfo.SiSetlinfo;
 import thyyxxk.webserver.entity.ybkf.YbStatDto;
 import thyyxxk.webserver.entity.ybkf.YbStatResult;
 import thyyxxk.webserver.service.ybkf.YbStatService;
@@ -47,4 +48,14 @@ public class YbStatController {
         return service.exportYbStatRatioExcel(response, dto);
     }
 
+    @PostMapping("/selectYbChart")
+    public ResultVo<List<Map<String, Object>>> selectYbChart(@RequestBody @Validated YbStatDto dto){
+        return service.selectYbChart(dto);
+    }
+
+    @PostMapping("/selectYbStatDetail")
+    public ResultVo<List<SiSetlinfo>> selectYbStatDetail(@RequestBody @Validated YbStatDto dto){
+        return service.selectYbStatDetail(dto);
+    }
+
 }

+ 58 - 0
src/main/java/thyyxxk/webserver/dao/his/ybkf/YbStatDao.java

@@ -3,6 +3,7 @@ package thyyxxk.webserver.dao.his.ybkf;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import thyyxxk.webserver.entity.medicalinsurance.setlinfo.SiSetlinfo;
 import thyyxxk.webserver.entity.ybkf.YbStatResult;
 
 import java.util.List;
@@ -144,4 +145,61 @@ public interface YbStatDao {
             "</script>")
     YbStatResult selectYbStatRatioTotal(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("setlType") String setlType);
 
+    @Select("<script>" +
+            "select a.* " +
+            "from t_si_setlinfo a " +
+            "left join zy_inactpatient zy on (zy.inpatient_no = a.pat_no and zy.admiss_times = a.times) " +
+            "where a.revoked=0 and a.setl_type=#{setlType} and a.setl_time&gt;=#{beginTime} and a.setl_time&lt;=#{endTime} " +
+            "<if test=\"insuplcAdmdvs != null and insuplcAdmdvs.size > 0 \">" +
+            " and a.insuplc_admdvs in  " +
+            " <foreach collection='insuplcAdmdvs' item='item' index='index' open='(' close=')' separator=','>  " +
+            "#{item}" +
+            "</foreach>" +
+            "</if>" +
+            "<if test=\"insurtype != null and insurtype.size > 0 \">" +
+            " and a.insutype in  " +
+            " <foreach collection='insurtype' item='item' index='index' open='(' close=')' separator=','>  " +
+            "#{item}" +
+            "</foreach>" +
+            "</if>" +
+            "<if test=\"med_type != null and med_type.size > 0 \">" +
+            " and a.med_type in  " +
+            " <foreach collection='med_type' item='item' index='index' open='(' close=')' separator=','>  " +
+            "#{item}" +
+            "</foreach>" +
+            "</if>" +
+            "</script>")
+    List<SiSetlinfo> selectSiSetlInfoList(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("setlType") String setlType,
+                                          @Param("insuplcAdmdvs") List<String> insuplcAdmdvs, @Param("insurtype") List<String> insurtype,
+                                          @Param("med_type") List<String> med_type);
+
+    @Select("<script>" +
+            "select a.* " +
+            "from t_si_setlinfo a " +
+            "left join zy_inactpatient zy on (zy.inpatient_no = a.pat_no and zy.admiss_times = a.times) " +
+            "where a.revoked=0 and a.setl_type=#{setlType} and a.setl_time&gt;=#{beginTime} and a.setl_time&lt;=#{endTime} " +
+            "and a.insuplc_admdvs != '439900' and a.insuplc_admdvs like '43%' and a.insuplc_admdvs not like '4301%' and a.med_type != '2102' " +
+            "</script>")
+    List<SiSetlinfo> selectSiSetlInfoListInProvinceOtherCities(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("setlType") String setlType);
+
+
+    @Select("<script>" +
+            "select a.* " +
+            "from t_si_setlinfo a " +
+            "left join zy_inactpatient zy on (zy.inpatient_no = a.pat_no and zy.admiss_times = a.times) " +
+            "where a.revoked=0 and a.setl_type=#{setlType} and a.setl_time&gt;=#{beginTime} and a.setl_time&lt;=#{endTime} " +
+            "and a.insuplc_admdvs != '439900' and a.insuplc_admdvs not like '43%' " +
+            "</script>")
+    List<SiSetlinfo> selectSiSetlInfoListInOutProvinceCities(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("setlType") String setlType);
+
+
+    @Select("<script>" +
+            "select a.* " +
+            "from t_si_setlinfo a " +
+            "left join zy_inactpatient zy on (zy.inpatient_no = a.pat_no and zy.admiss_times = a.times) " +
+            "where a.revoked=0 and a.setl_type=#{setlType} and a.setl_time&gt;=#{beginTime} and a.setl_time&lt;=#{endTime} " +
+            "and a.insuplc_admdvs != '439900' and a.insuplc_admdvs like '43%' and a.insuplc_admdvs not like '4301%' and a.med_type = '2102' " +
+            "</script>")
+    List<SiSetlinfo> selectSiSetlInfoListInProvinceOtherCitiesSingleDisease(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("setlType") String setlType);
+
 }

+ 280 - 35
src/main/java/thyyxxk/webserver/service/ybkf/YbStatService.java

@@ -5,13 +5,16 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.ybkf.YbStatDao;
-import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.HeadInfo;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.medicalinsurance.setlinfo.SiSetlinfo;
 import thyyxxk.webserver.entity.ybkf.YbStatDto;
 import thyyxxk.webserver.entity.ybkf.YbStatResult;
+import thyyxxk.webserver.service.redislike.RedisLikeService;
 import thyyxxk.webserver.utils.DateUtil;
 import thyyxxk.webserver.utils.DecimalUtil;
 import thyyxxk.webserver.utils.ExcelUtil;
+import thyyxxk.webserver.utils.FilterUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
 import javax.servlet.http.HttpServletResponse;
@@ -31,9 +34,12 @@ public class YbStatService {
 
     private final YbStatDao dao;
 
+    private final RedisLikeService redis;
+
     @Autowired
-    public YbStatService(YbStatDao dao ) {
+    public YbStatService(YbStatDao dao, RedisLikeService redis) {
         this.dao = dao;
+        this.redis = redis;
     }
 
     public ResultVo<List<YbStatResult>> selectYbStatInfo(YbStatDto dto){
@@ -69,7 +75,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙市城职普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43010031001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -93,7 +99,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙市城居普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43010039001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -117,7 +123,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙市离休");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43010034001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -141,7 +147,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙市生育");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43010051052" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -158,7 +164,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙县城职普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43012131001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -175,7 +181,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙县城居普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43012139001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -192,7 +198,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙县离休");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43012134001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -209,7 +215,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("长沙县生育");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43012151052" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -226,7 +232,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("浏阳县城职普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43018131001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -243,7 +249,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("浏阳县城居普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43018139001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -260,7 +266,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("浏阳县离休");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43018134001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -277,7 +283,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("浏阳县生育");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43018151052" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -294,7 +300,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("湖南省城职普通住院");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43990031001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -311,7 +317,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("湖南省离休");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43990034001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -328,7 +334,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("湖南省生育");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43990051052" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -341,7 +347,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfoInProvinceOtherCities(beginTime, endTime, setlType);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("省内异地");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43990001" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -354,7 +360,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfoInOutProvinceCities(beginTime, endTime, setlType);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("省外异地");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "43990002" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -378,7 +384,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("市单病种");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "4301002102" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -393,7 +399,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("省单病种");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "4399002102" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -406,7 +412,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfoInProvinceOtherCitiesSingleDisease(beginTime, endTime, setlType);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("省内异地单病种");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "4399012102" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -420,7 +426,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("普通门诊");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "11" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -434,7 +440,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("特殊门诊");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "14" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -448,7 +454,7 @@ public class YbStatService {
                 YbStatResult result = dao.selectYbStatInfo(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
                 if(!ObjectUtils.isEmpty(result) && result.getPsnCount() > 0){
                     result.setInsurName("生育门诊");
-                    result.setInsurType(insurType);
+                    result.setInsurType("99".equals(insurType) ? "51" : insurType);
                     ybStatResult.add(result);
                 }
             }
@@ -686,34 +692,34 @@ public class YbStatService {
         String yf;
         switch (i){
             case 1:
-                yf = "一    月";
+                yf = "一月";
                 break;
             case 2:
-                yf = "二    月";
+                yf = "二月";
                 break;
             case 3:
-                yf = "三    月";
+                yf = "三月";
                 break;
             case 4:
-                yf = "四    月";
+                yf = "四月";
                 break;
             case 5:
-                yf = "五    月";
+                yf = "五月";
                 break;
             case 6:
-                yf = "六    月";
+                yf = "六月";
                 break;
             case 7:
-                yf = "七    月";
+                yf = "七月";
                 break;
             case 8:
-                yf = "八    月";
+                yf = "八月";
                 break;
             case 9:
-                yf = "九    月";
+                yf = "九月";
                 break;
             case 10:
-                yf = "十    月";
+                yf = "十月";
                 break;
             case 11:
                 yf = "十一月";
@@ -1036,4 +1042,243 @@ public class YbStatService {
         return result;
     }
 
+    /**
+     *@Author hsh
+     *@Description // 查询柱状图医保统计数据
+     *@Date 2022/7/5 11:26
+     *@Param [dto]
+     *@Return thyyxxk.webserver.entity.ResultVo<java.util.List<java.util.Map<java.lang.String,java.lang.Object>>>
+     **/
+    public ResultVo<List<Map<String, Object>>> selectYbChart(YbStatDto dto){
+        // 按照同比的数据返回去渲染图形数据
+        dto.setSelectType("second");
+        ResultVo<List<Map<String, Object>>> rs =  selectYbStatRatio(dto);
+        List<Map<String, Object>> list = rs.getData();
+        if(null == list){
+            String log = "查询没有数据";
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, log);
+        }
+        return ResultVoUtil.success(list);
+    }
+
+    /**
+     *@Author hsh
+     *@Description // 查询医保明细数据
+     *@Date 2022/7/5 11:27
+     *@Param [dto]
+     *@Return thyyxxk.webserver.entity.ResultVo<java.util.List<thyyxxk.webserver.entity.medicalinsurance.setlinfo.SiSetlinfo>>
+     **/
+    public ResultVo<List<SiSetlinfo>> selectYbStatDetail(YbStatDto dto){
+        String beginTime = dto.getStartTime();
+        String endTime = DateUtil.getMonthEndtime(dto.getEndTime());
+        String insurType = dto.getInsurType();
+        String setlType = dto.getSetlType();
+
+        // 统筹区域
+        List<String> insuplcAdmdvs = new ArrayList<>();
+        // 险种类型
+        List<String> insurtype = new ArrayList<>();
+        // 医疗类别
+        List<String> med_type = new ArrayList<>();
+        // 返回结果
+        List<SiSetlinfo> siSetlInfoList = new ArrayList<>();
+
+        if("21".equals(setlType)){
+            // 住院
+            if("43010031001".equals(insurType)){
+                // 长沙市城职普通住院(包含外伤住院)
+                insuplcAdmdvs.add("430102");
+                insuplcAdmdvs.add("430103");
+                insuplcAdmdvs.add("430104");
+                insuplcAdmdvs.add("430105");
+                insuplcAdmdvs.add("430111");
+                insuplcAdmdvs.add("430112");
+                insuplcAdmdvs.add("430140");
+                insuplcAdmdvs.add("430199");
+                insurtype.add("310");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43010039001".equals(insurType)){
+                // 长沙市城居普通住院(包含外伤住院)
+                insuplcAdmdvs.add("430102");
+                insuplcAdmdvs.add("430103");
+                insuplcAdmdvs.add("430104");
+                insuplcAdmdvs.add("430105");
+                insuplcAdmdvs.add("430111");
+                insuplcAdmdvs.add("430112");
+                insuplcAdmdvs.add("430140");
+                insuplcAdmdvs.add("430199");
+                insurtype.add("390");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43010034001".equals(insurType)){
+                // 长沙市离休
+                insuplcAdmdvs.add("430102");
+                insuplcAdmdvs.add("430103");
+                insuplcAdmdvs.add("430104");
+                insuplcAdmdvs.add("430105");
+                insuplcAdmdvs.add("430111");
+                insuplcAdmdvs.add("430112");
+                insuplcAdmdvs.add("430140");
+                insuplcAdmdvs.add("430199");
+                insurtype.add("340");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43010051052".equals(insurType)){
+                // 长沙市生育
+                insuplcAdmdvs.add("430102");
+                insuplcAdmdvs.add("430103");
+                insuplcAdmdvs.add("430104");
+                insuplcAdmdvs.add("430105");
+                insuplcAdmdvs.add("430111");
+                insuplcAdmdvs.add("430112");
+                insuplcAdmdvs.add("430140");
+                insuplcAdmdvs.add("430199");
+                med_type.add("52");
+                med_type.add("2106");
+                med_type.add("2107");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43012131001".equals(insurType)){
+                // 长沙县城职普通住院(包含外伤住院)
+                insuplcAdmdvs.add("430121");
+                insurtype.add("310");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43012139001".equals(insurType)){
+                // 长沙县城居普通住院(包含外伤住院)
+                insuplcAdmdvs.add("430121");
+                insurtype.add("390");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43012134001".equals(insurType)){
+                // 长沙县离休
+                insuplcAdmdvs.add("430121");
+                insurtype.add("340");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43012151052".equals(insurType)){
+                // 长沙县生育
+                insuplcAdmdvs.add("430121");
+                med_type.add("52");
+                med_type.add("2106");
+                med_type.add("2107");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43018131001".equals(insurType)){
+                // 浏阳县城职普通住院(包含外伤住院)
+                insuplcAdmdvs.add("430181");
+                insurtype.add("310");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43018139001".equals(insurType)){
+                // 浏阳县城居普通住院(包含外伤住院)
+                insuplcAdmdvs.add("430181");
+                insurtype.add("390");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43018134001".equals(insurType)){
+                // 浏阳县离休
+                insuplcAdmdvs.add("430181");
+                insurtype.add("340");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43018151052".equals(insurType)){
+                // 浏阳县生育
+                insuplcAdmdvs.add("430181");
+                med_type.add("52");
+                med_type.add("2106");
+                med_type.add("2107");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43990031001".equals(insurType)){
+                // 湖南省城职普通住院(包含外伤住院)
+                insuplcAdmdvs.add("439900");
+                insurtype.add("310");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43990034001".equals(insurType)){
+                // 湖南省离休
+                insuplcAdmdvs.add("439900");
+                insurtype.add("340");
+                med_type.add("2101");
+                med_type.add("22");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43990051052".equals(insurType)){
+                // 湖南省生育
+                insuplcAdmdvs.add("439900");
+                med_type.add("52");
+                med_type.add("2106");
+                med_type.add("2107");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("43990001".equals(insurType)){
+                // 省内异地(包含外伤住院)
+                siSetlInfoList = dao.selectSiSetlInfoListInProvinceOtherCities(beginTime, endTime, setlType);
+            } else if("43990002".equals(insurType)){
+                // 省外异地(包含外伤住院)
+                siSetlInfoList = dao.selectSiSetlInfoListInOutProvinceCities(beginTime, endTime, setlType);
+            } else if("4301002102".equals(insurType)){
+                // 市单病种
+                insuplcAdmdvs.add("430102");
+                insuplcAdmdvs.add("430103");
+                insuplcAdmdvs.add("430104");
+                insuplcAdmdvs.add("430105");
+                insuplcAdmdvs.add("430111");
+                insuplcAdmdvs.add("430112");
+                insuplcAdmdvs.add("430140");
+                insuplcAdmdvs.add("430199");
+                insuplcAdmdvs.add("430121");
+                insuplcAdmdvs.add("430181");
+                med_type.add("2102");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("4399002102".equals(insurType)){
+                // 省城职单病种
+                insuplcAdmdvs.add("439900");
+                med_type.add("2102");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("4399012102".equals(insurType)){
+                // 省内异地单病种
+                siSetlInfoList = dao.selectSiSetlInfoListInProvinceOtherCitiesSingleDisease(beginTime, endTime, setlType);
+            }
+
+        } else {
+            // 门诊
+            if("11".equals(insurType)){
+                // 普通门诊
+                med_type.add("11");
+                med_type.add("9903");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("14".equals(insurType) ){
+                // 门诊慢特病
+                med_type.add("14");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            } else if("51".equals(insurType)){
+                // 生育门诊
+                med_type.add("51");
+                siSetlInfoList = dao.selectSiSetlInfoList(beginTime, endTime, setlType, insuplcAdmdvs, insurtype, med_type);
+            }
+
+        }
+
+        if (null == siSetlInfoList || siSetlInfoList.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+        }
+
+        siSetlInfoList.forEach(item -> {
+            String othpay = DecimalUtil.minusLink(String.valueOf(item.getFundPaySumamt()), String.valueOf(item.getHifpPay()), String.valueOf(item.getHifmiPay()), String.valueOf(item.getCvlservPay()));
+            item.setOthPay("".equals(othpay) ? 0d : Double.parseDouble(othpay));
+            item.setInsuplcAdmdvsName(redis.getRegionName(item.getInsuplcAdmdvs()));
+            FilterUtil.filterCodeToName(item);
+        });
+
+        return ResultVoUtil.success(siSetlInfoList);
+    }
+
 }