Selaa lähdekoodia

Merge branch 'dev' of liuwenbin/patient-co-management into dev

chenweida 7 vuotta sitten
vanhempi
commit
3c4a193e05

+ 20 - 20
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/util/ElasticsearchUtil.java

@ -69,15 +69,15 @@ public class ElasticsearchUtil {
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        if (SaveModel.teamLevel.equals(areaLevel)) {
            sql.append("select team,teamName,result1,result2 from wlyy_quota_test where team='" + code + "'");
            sql.append("select team,teamName,result1,result2 from "+esType+" where team='" + code + "'");
        } else if (SaveModel.OrgLevel.equals(areaLevel)) {
            sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where hospital='" + code + "'");
            sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from "+esType+" where hospital='" + code + "'");
            groupBy.append(" group by hospital,hospitalName");
        } else if (SaveModel.townLevel.equals(areaLevel)) {
            sql.append("select town,townName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where town='" + code + "'");
            sql.append("select town,townName,sum(result1) result1,sum(result2) result2 from "+esType+" where town='" + code + "'");
            groupBy.append(" group by town,townName");
        } else if (SaveModel.cityLevel.equals(areaLevel)) {
            sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where city='" + code + "'");
            sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from "+esType+" where city='" + code + "'");
            groupBy.append(" group by city,cityName");
        }
@ -120,15 +120,15 @@ public class ElasticsearchUtil {
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        if (SaveModel.teamLevel.equals(areaLevel)) {
            sql.append("select team,teamName,result1,result2 from wlyy_quota_test where team='" + code + "'");
            sql.append("select team,teamName,result1,result2 from "+esType+" where team='" + code + "'");
        } else if (SaveModel.OrgLevel.equals(areaLevel)) {
            sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where hospital='" + code + "'");
            sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from "+esType+" where hospital='" + code + "'");
            groupBy.append(" group by hospital,hospitalName");
        } else if (SaveModel.townLevel.equals(areaLevel)) {
            sql.append("select town,townName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where town='" + code + "'");
            sql.append("select town,townName,sum(result1) result1,sum(result2) result2 from "+esType+" where town='" + code + "'");
            groupBy.append(" group by town,townName");
        } else if (SaveModel.cityLevel.equals(areaLevel)) {
            sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where city='" + code + "'");
            sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from "+esType+" where city='" + code + "'");
            groupBy.append(" group by city,cityName");
        }
@ -163,16 +163,16 @@ public class ElasticsearchUtil {
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        if (SaveModel.teamLevel.equals(areaLevel)) {
            sql.append("select team,teamName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,result1,result2 from wlyy_quota_test where team='" + code + "'");
            sql.append("select team,teamName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,result1,result2 from "+esType+" where team='" + code + "'");
            groupBy.append("  group by slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name");
        } else if (SaveModel.OrgLevel.equals(areaLevel)) {
            sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where hospital='" + code + "'");
            sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from "+esType+" where hospital='" + code + "'");
            groupBy.append("  group by slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name");
        } else if (SaveModel.townLevel.equals(areaLevel)) {
            sql.append("select town,townName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where town='" + code + "'");
            sql.append("select town,townName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from "+esType+" where town='" + code + "'");
            groupBy.append("  group by slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name");
        } else if (SaveModel.cityLevel.equals(areaLevel)) {
            sql.append("select city,cityName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where city='" + code + "'");
            sql.append("select city,cityName,slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name,sum(result1) result1,sum(result2) result2 from "+esType+" where city='" + code + "'");
            groupBy.append("  group by slaveKey1,slaveKey1Name,slaveKey2,slaveKey2Name");
        }
@ -208,16 +208,16 @@ public class ElasticsearchUtil {
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        if (SaveModel.teamLevel.equals(areaLevel)) {
            sql.append("select team,teamName,slaveKey1,slaveKey1Name,result1,result2 from wlyy_quota_test where team='" + code + "'");
            sql.append("select team,teamName,slaveKey1,slaveKey1Name,result1,result2 from "+esType+" where team='" + code + "'");
            groupBy.append("  group by team,teamName,slaveKey1,slaveKey1Name");
        } else if (SaveModel.OrgLevel.equals(areaLevel)) {
            sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where hospital='" + code + "'");
            sql.append("select hospital,hospitalName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esType+" where hospital='" + code + "'");
            groupBy.append("  group by hospital,hospitalName,slaveKey1,slaveKey1Name");
        } else if (SaveModel.townLevel.equals(areaLevel)) {
            sql.append("select town,townName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where town='" + code + "'");
            sql.append("select town,townName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esType+" where town='" + code + "'");
            groupBy.append("  group by town,townName,slaveKey1,slaveKey1Name");
        } else if (SaveModel.cityLevel.equals(areaLevel)) {
            sql.append("select city,cityName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where city='" + code + "'");
            sql.append("select city,cityName,slaveKey1,slaveKey1Name,sum(result1) result1,sum(result2) result2 from "+esType+" where city='" + code + "'");
            groupBy.append("  group by city,cityName,slaveKey1,slaveKey1Name");
        }
@ -258,15 +258,15 @@ public class ElasticsearchUtil {
        StringBuffer groupBy = new StringBuffer();
        //根据 childAreaLevel   group by
        if (SaveModel.teamLevel.equals(childAreaLevel)) {
            sql.append("select team,teamName,result1,result2 from wlyy_quota_test where  ");
            sql.append("select team,teamName,result1,result2 from "+esType+" where  ");
        } else if (SaveModel.OrgLevel.equals(childAreaLevel)) {
            sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where  ");
            sql.append("select hospital,hospitalName,sum(result1) result1,sum(result2) result2 from "+esType+" where  ");
            groupBy.append(" group by hospital,hospitalName");
        } else if (SaveModel.townLevel.equals(childAreaLevel)) {
            sql.append("select town,townName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where ");
            sql.append("select town,townName,sum(result1) result1,sum(result2) result2 from "+esType+" where ");
            groupBy.append(" group by town,townName");
        } else if (SaveModel.cityLevel.equals(childAreaLevel)) {
            sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from wlyy_quota_test where  ");
            sql.append("select city,cityName,sum(result1) result1,sum(result2) result2 from "+esType+" where  ");
            groupBy.append(" group by city,cityName");
        }

+ 160 - 83
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java

@ -10,6 +10,7 @@ import com.yihu.wlyy.entity.statistics.PopulationBase;
import com.yihu.wlyy.repository.address.TownDao;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.service.app.statistics.StatisticsAllService;
import com.yihu.wlyy.service.system.SystemDictService;
import com.yihu.wlyy.util.Constant;
import com.yihu.wlyy.util.DateUtil;
@ -55,9 +56,9 @@ public class StatisticsESService {
    @Autowired
    TownDao townDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Autowired
    private SystemDictService systemDictService;
    @Autowired
    private StatisticsAllService statisticsAllService;
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX");
@ -294,10 +295,10 @@ public class StatisticsESService {
        if (!org.springframework.util.StringUtils.isEmpty(year)) {
            startDate = year + "-06-30";
        }
        String levelTemp = level+"";
        if(StringUtils.isNotEmpty(lowLevel)){
            levelTemp = lowLevel;
        }
//        String levelTemp = level+"";
//        if(StringUtils.isNotEmpty(lowLevel)){
//            levelTemp = lowLevel;
//        }
        List<SaveModel>  list = null;
        if(StringUtils.isNotEmpty(level2_type)){
@ -309,28 +310,107 @@ public class StatisticsESService {
            year = Constant.getNowYear();
        }
        List<Map<String, Object>> resultList = new ArrayList<>();
        PopulationBase populationBase = getPopulationBase(area,year);
        DecimalFormat df = new DecimalFormat("0.0000");
        for (SaveModel saveModel:list) {
            Map<String, Object> map = new HashMap<>();
            if (SaveModel.OrgLevel.equals(levelTemp)) {
            if (SaveModel.OrgLevel.equals(lowLevel)) {
                map.put("code",saveModel.getHospital());
                map.put("name",saveModel.getHospitalName());
            } else if (SaveModel.townLevel.equals(levelTemp)) {
            } else if (SaveModel.townLevel.equals(lowLevel)) {
                map.put("code",saveModel.getTown());
                map.put("name",saveModel.getTownName());
            } else if (SaveModel.cityLevel.equals(levelTemp)) {
            } else if (SaveModel.cityLevel.equals(lowLevel)) {
                map.put("code",saveModel.getCity());
                map.put("name",saveModel.getCityName());
            } else if (SaveModel.teamLevel.equals(level+"")) {
            } else if (SaveModel.teamLevel.equals(lowLevel)) {
                map.put("code",saveModel.getTeam());
                map.put("name",saveModel.getCityName());
            }
            if (!SaveModel.teamLevel.equals(lowLevel)) {
                if (org.springframework.util.StringUtils.isEmpty(year)) {
                    year = Constant.getNowYear();
                }
                PopulationBase peopleNum = getPopulationBase(area,year);
                if (peopleNum != null) {
                    map.put("rate",df.format((saveModel.getResult2() * 1.0000) / peopleNum.getNum() * 100));
                    map.put("rateString",saveModel.getResult2().longValue()+"/"+peopleNum.getNum());
                }
            }
            map.put("amount",saveModel.getResult2().longValue());
            map.put("rate",df.format((saveModel.getResult2() * 1.0000) / populationBase.getNum() * 100));
            map.put("rateString",saveModel.getResult2().longValue()+"/"+populationBase.getNum());
            resultList.add(map);
        }
        // 结果为空时,自建结果集
        if (resultList == null || resultList.size() < 1) {
            resultList = new ArrayList<>();
            if (SaveModel.townLevel.equals(lowLevel)) {
                List<Town> towns = townDao.findByCityCode(area);
                if (towns != null) {
                    for (Town town : towns) {
                        Map<String, Object> obj = new HashMap<>();
                        obj.put("code", town.getCode());
                        obj.put("name", town.getName());
                        obj.put("amount", "0");
                        obj.put("rate", Double.valueOf("0.0000"));
                        obj.put("rateString", "0/0");
                        resultList.add(obj);
                    }
                }
            } else if (SaveModel.OrgLevel.equals(lowLevel)) {
                List<Town> towns = new ArrayList<>();
                if (SaveModel.cityLevel.equals(level+"")) {
                    towns = townDao.findByCityCode(area);
                } else if (SaveModel.townLevel.equals(level+"")) {
                    Town town = townDao.findByCode(area);
                    towns.add(town);
                }
                if (towns != null && towns.size() > 0) {
                    for (Town town : towns) {
                        List<Hospital> hospitals = hospitalDao.findByTownCode(town.getCode());
                        for (Hospital hos : hospitals) {
                            Map<String, Object> obj = new HashMap<>();
                            obj.put("code", hos.getCode());
                            obj.put("name", hos.getName());
                            obj.put("amount", "0");
                            resultList.add(obj);
                        }
                    }
                }
            } else if (SaveModel.teamLevel.equals(lowLevel)) {
                List<Hospital> hospitals = new ArrayList<>();
                if (SaveModel.cityLevel.equals(level+"")) {
                    hospitals = hospitalDao.findByCity(area);
                } else if (SaveModel.townLevel.equals(level+"")) {
                    hospitals = hospitalDao.findByTownCode(area);
                } else {
                    Hospital hos = hospitalDao.findByCode(area);
                    if (hos != null) {
                        hospitals.add(hos);
                    }
                }
                if (hospitals != null && hospitals.size() > 0) {
                    for (Hospital hos : hospitals) {
                        List<AdminTeam> teams = adminTeamDao.findByOrgCode(hos.getCode());
                        for (AdminTeam team : teams) {
                            Map<String, Object> obj = new HashMap<>();
                            obj.put("code", String.valueOf(team.getId()));
                            obj.put("name", team.getName());
                            obj.put("amount", "0");
                            resultList.add(obj);
                        }
                    }
                }
            }
        }
        if (SaveModel.OrgLevel.equals(level+"")) {
            statisticsAllService.translateTeamLeaderName(resultList);
        }
        Collections.sort(resultList, new Comparator<Map<String, Object>>() {
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                long map1value = (long) o1.get("amount");
@ -367,14 +447,14 @@ public class StatisticsESService {
            map.put("amount",saveModel.getResult2().longValue());
            if (index.equals("7")) {
                // 分组指标总数算法
                String code = saveModel.getSlaveKey2();
                if (code.equals("0") || code.equals("1") || code.equals("2") || code.equals("3") || code.equals("7")) {
                String code = saveModel.getSlaveKey1();
                if ("0".equals(code) || "1".equals(code) || "2".equals(code) || "3".equals(code) || "7".equals(code)) {
                    total += saveModel.getResult2();
                }
            } else if (index.equals("16")) {
                String code = saveModel.getSlaveKey2();
            } else if ("16".equals(index)) {
                String code = saveModel.getSlaveKey1();
                if (!code.equals("2")) {
                if (!"2".equals(code)) {
                    total += saveModel.getResult2();
                }
            } else {
@ -382,13 +462,13 @@ public class StatisticsESService {
            }
            resultList.add(map);
        }
        if (!index.equals("8")) {
            if (index.equals("36")) {
        if (!"8".equals(index)) {
            if ("36".equals(index)) {
                //获取最新的统计时间
//                String updateTime = elasticsearchUtil.getQuotaTime();
                //如果是查询36的指标 那么除数是签约总数
                SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,"1","2");
                Long num = Long.parseLong(saveModel.getResult2()+"");
                Long num = saveModel.getResult2().longValue();
                for (Map<String, Object> map:resultList) {
                    double rateG = (total > 0 ? ((long) map.get("amount")) * 1.0000 / num * 100 : 0);
                    map.put("rate", df.format(rateG));
@ -402,7 +482,7 @@ public class StatisticsESService {
                }
            }
        }
        if (index.equals("6") && resultList.size() > 0) {
        if ("6".equals(index) && resultList.size() > 0) {
            int i = 0;
            boolean flag = false;
            for (; i < resultList.size(); i++) {
@ -442,9 +522,7 @@ public class StatisticsESService {
     */
    public long getIndexTotal(String endDate, String area, int level, String index,String timeLevel) throws Exception{
        if (endDate.compareTo(dateFormat.format(new Date())) >= 0) {
            endDate = elasticsearchUtil.getQuotaTime();
        }
        endDate = elasticsearchUtil.changeTime(endDate);
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate,area,level,index,timeLevel);
        return saveModel.getResult2().longValue();
    }
@ -699,7 +777,7 @@ public class StatisticsESService {
        int taskNum = 0;
        JSONObject json = new JSONObject();
        if (level > 1 && org.springframework.util.StringUtils.isEmpty(lowCode)) {
        if (level < 5 && org.springframework.util.StringUtils.isEmpty(lowCode)) {
            PopulationBase peopleNum = getPopulationBase(area, year);
            if (peopleNum != null) {
@ -723,9 +801,9 @@ public class StatisticsESService {
        List<SaveModel> list = null;
        if(StringUtils.isNotEmpty(lowCode)){
            //一级维度
            list = elasticsearchUtil.findDateQuotaLevel1(startDate,endDate,area,level,index,"2",lowCode,interval+"",null);
            list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate,endDate,area,level,index,"2",lowCode,interval+"");
        }else{
            list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,"2",interval+"",null);
            list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,area,level,index,"2",interval+"");
        }
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        List<JSONObject> result = new ArrayList<>();
@ -750,7 +828,7 @@ public class StatisticsESService {
     */
    public List<Map<String, Object>> getLowLevelMapKey(int level, String lowLevel, String area) {
        List<Map<String, Object>> resultList = new ArrayList<>();
        if (lowLevel.equals("3")) {
        if (SaveModel.townLevel.equals(lowLevel)) {
            List<Town> towns = townDao.findByCityCode(area);
            if (towns != null) {
                for (Town town : towns) {
@ -761,11 +839,11 @@ public class StatisticsESService {
                    resultList.add(obj);
                }
            }
        } else if (lowLevel.equals("2")) {
        } else if (SaveModel.townLevel.equals(lowLevel)) {
            List<Town> towns = new ArrayList<>();
            if (level == 4) {
            if (SaveModel.cityLevel.equals(level+"")) {
                towns = townDao.findByCityCode(area);
            } else if (level == 3) {
            } else if (SaveModel.townLevel.equals(level+"")) {
                Town town = townDao.findByCode(area);
                if (town != null) {
                    towns.add(town);
@ -788,11 +866,11 @@ public class StatisticsESService {
                    }
                }
            }
        } else if (lowLevel.equals("1")) {
        } else if (SaveModel.teamLevel.equals(lowLevel)) {
            List<Hospital> hospitals = new ArrayList<>();
            if (level == 4) {
            if (SaveModel.cityLevel.equals(level+"")) {
                hospitals = hospitalDao.findByCity(area);
            } else if (level == 3) {
            } else if (SaveModel.townLevel.equals(level+"")) {
                hospitals = hospitalDao.findByTownCode(area);
            } else {
                Hospital hos = hospitalDao.findByCode(area);
@ -824,8 +902,7 @@ public class StatisticsESService {
    public JSONArray getLevelTwoLowLevelTotalTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String lowCode, String year) throws Exception {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
//        String low_level = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
        List<Map<String, Object>> resultList = new ArrayList<>();
        List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel1(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel, lowCode);
@ -834,13 +911,13 @@ public class StatisticsESService {
            for (SaveModel one : esModelList) {
                Map<String, Object> maps = new HashMap<String, Object>();
                maps.put("amount", one.getResult1());
                if (low_level.equals("3")) {
                if (SaveModel.townLevel.equals(lowLevel)) {
                    maps.put("code", one.getTown());
                    maps.put("name", one.getTownName());
                } else if (low_level.equals("2")) {
                } else if (SaveModel.OrgLevel.equals(lowLevel)) {
                    maps.put("code", one.getHospital());
                    maps.put("name", one.getHospitalName());
                } else if (low_level.equals("1")) {
                } else if (SaveModel.teamLevel.equals(lowLevel)) {
                    maps.put("code", one.getTeam());
                    maps.put("name", one.getTeamName());
                }
@ -849,7 +926,7 @@ public class StatisticsESService {
        }
        // 结果为空时,自建结果集
        if (resultList == null || resultList.size() < 1) {
            resultList = getLowLevelMapKey(level, low_level, area);
            resultList = getLowLevelMapKey(level, lowCode, area);
        }
        if (resultList != null) {
@ -860,7 +937,7 @@ public class StatisticsESService {
                map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
                map.put("signTaskNum", signTaskNum);//目标量
                map.put("signRegulationNum", signRegulationNum);//调控量
                if (!low_level.equals("1")) {
                if (!SaveModel.teamLevel.equals(lowLevel)) {
                    PopulationBase peopleNum = getPopulationBase(map.get("code").toString(), year);
                    if (peopleNum != null) {
                        int num = 0;
@ -1231,11 +1308,11 @@ public class StatisticsESService {
        List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(date, area, level, index, SaveModel.timeLevel_DDL, lowLevel);
        if (esModelList != null && esModelList.size() > 0) {
            esModelList.stream().forEach(one -> {
                if (lowLevel.equals("3")) {
                if (SaveModel.townLevel.equals(lowLevel)) {
                    returnMap.put(one.getTown(), one.getResult1().intValue());
                } else if (lowLevel.equals("2")) {
                } else if (SaveModel.OrgLevel.equals(lowLevel)) {
                    returnMap.put(one.getHospital(), one.getResult1().intValue());
                } else if (lowLevel.equals("1")) {
                } else if (SaveModel.teamLevel.equals(lowLevel)) {
                    returnMap.put(one.getTeam(),one.getResult1().intValue());
                }
            });
@ -1317,13 +1394,13 @@ public class StatisticsESService {
            for (SaveModel one : esModelList) {
                Map<String, Object> maps = new HashMap<String, Object>();
                maps.put("amount", one.getResult2().intValue());
                if (low_level.equals("3")) {
                if (SaveModel.townLevel.equals(low_level)) {
                    maps.put("code", one.getTown());
                    maps.put("name", one.getTownName());
                } else if (low_level.equals("2")) {
                } else if (SaveModel.OrgLevel.equals(low_level)) {
                    maps.put("code", one.getHospital());
                    maps.put("name", one.getHospitalName());
                } else if (low_level.equals("1")) {
                } else if (SaveModel.teamLevel.equals(low_level)) {
                    maps.put("code", one.getTeam());
                    maps.put("name", one.getTeamName());
                }
@ -1346,7 +1423,7 @@ public class StatisticsESService {
                map.put("signTaskNum", signTaskNum);//目标量
                map.put("signRegulationNum", signRegulationNum);//调控量
                if (!low_level.equals("1")) {
                if (!SaveModel.teamLevel.equals(low_level)) {
                    String code = map.get("code").toString();
                    PopulationBase peopleNum = getPopulationBase(code, year);
                    if (peopleNum != null) {
@ -1487,19 +1564,19 @@ public class StatisticsESService {
     */
    public JSONArray getLowLevelIncrementDetail(String startDate, String endDate, String area, int level, String index, int sort, String low_level) throws Exception {
        List<Map<String, Object>> resultList = new ArrayList<>();
        List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(startDate, area, level, index, SaveModel.timeLevel_DDL, low_level);
        List<SaveModel> esModelList = (List<SaveModel>) elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate,area, level, index, SaveModel.timeLevel_ZL, low_level);
        if (esModelList != null && esModelList.size() > 0) {
            for (SaveModel one : esModelList) {
                Map<String, Object> maps = new HashMap<String, Object>();
                maps.put("amount", Long.parseLong(one.getResult2()+""));
                if (low_level.equals("3")) {
                maps.put("amount", one.getResult2().longValue());
                if (SaveModel.townLevel.equals(low_level)) {
                    maps.put("code", one.getTown());
                    maps.put("name", one.getTownName());
                } else if (low_level.equals("2")) {
                } else if (SaveModel.OrgLevel.equals(low_level)) {
                    maps.put("code", one.getHospital());
                    maps.put("name", one.getHospitalName());
                } else if (low_level.equals("1")) {
                } else if (SaveModel.teamLevel.equals(low_level)) {
                    maps.put("code", one.getTeam());
                    maps.put("name", one.getTeamName());
                }
@ -1510,7 +1587,7 @@ public class StatisticsESService {
        // 结果为空时,自建结果集
        if (resultList == null || resultList.size() < 1) {
            resultList = new ArrayList<>();
            if (low_level.equals("3")) {
            if (SaveModel.townLevel.equals(low_level)) {
                List<Town> towns = townDao.findByCityCode(area);
                if (towns != null) {
                    for (Town town : towns) {
@ -1522,11 +1599,11 @@ public class StatisticsESService {
                        resultList.add(obj);
                    }
                }
            } else if (low_level.equals("2")) {
            } else if (SaveModel.OrgLevel.equals(low_level)) {
                List<Town> towns = new ArrayList<>();
                if (level == 4) {
                if (SaveModel.cityLevel.equals(level+"")) {
                    towns = townDao.findByCityCode(area);
                } else if (level == 3) {
                } else if (SaveModel.townLevel.equals(level+"")) {
                    Town town = townDao.findByCode(area);
                    towns.add(town);
                }
@ -1544,11 +1621,11 @@ public class StatisticsESService {
                        }
                    }
                }
            } else if (low_level.equals("1")) {
            } else if (SaveModel.teamLevel.equals(low_level)) {
                List<Hospital> hospitals = new ArrayList<>();
                if (level == 4) {
                if (SaveModel.cityLevel.equals(level+"")) {
                    hospitals = hospitalDao.findByCity(area);
                } else if (level == 3) {
                } else if (SaveModel.OrgLevel.equals(level+"")) {
                    hospitals = hospitalDao.findByTownCode(area);
                } else {
                    Hospital hos = hospitalDao.findByCode(area);
@ -1616,13 +1693,13 @@ public class StatisticsESService {
                timeKey = coutYear+"-06-30";
            }
        }
//        timeKey= "2017-10-19 00:00:00";
//        timeKey= "2017-11-01 00:00:00";
        //及时回复数
        List<SaveModel> relyVal = elasticsearchUtil.findListDateQuotaLevel0(timeKey,area,level,"23","2",lowLevel);
        List<SaveModel> relyVal = elasticsearchUtil.findListDateQuotaLevel0( null,timeKey,area,level,"23","1",lowLevel);
        //咨询总数
        List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel0(timeKey,area,level,"25","2",lowLevel);
        List<SaveModel> relyTotal = elasticsearchUtil.findListDateQuotaLevel0(null,timeKey,area,level,"25","1",lowLevel);
        //未回复数
        List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel0(timeKey,area,level,"22","2",lowLevel);
        List<SaveModel> noRelyTotal = elasticsearchUtil.findListDateQuotaLevel0(null,timeKey,area,level,"22","1",lowLevel);
//        JSONArray rely = new JSONArray(relyVal);
//        JSONArray total = new JSONArray(relyTotal);
//        JSONArray noRely = new JSONArray(noRelyTotal);
@ -1647,32 +1724,32 @@ public class StatisticsESService {
        //转换回复数
        for(SaveModel saveModel:rely){
            if(level==4){
                relyMap.put(saveModel.getHospital(), saveModel);
                relyMap.put(saveModel.getTeam(), saveModel);
            }else if(level==3){
                relyMap.put(saveModel.getTown(), saveModel);
                relyMap.put(saveModel.getHospital(), saveModel);
            }else if(level==2){
                relyMap.put(saveModel.getCity(), saveModel);
                relyMap.put(saveModel.getTown(), saveModel);
            }
        };
        //转换总咨询数
        for(SaveModel saveModel:total){
            if(level==4){
                relyMap.put(saveModel.getHospital(), saveModel);
                totalMap.put(saveModel.getTeam(), saveModel);
            }else if(level==3){
                relyMap.put(saveModel.getTown(), saveModel);
                totalMap.put(saveModel.getHospital(), saveModel);
            }else if(level==2){
                relyMap.put(saveModel.getCity(), saveModel);
                totalMap.put(saveModel.getTown(), saveModel);
            }
        };
        //转换总咨询数
        for(SaveModel saveModel:onRely){
            if(level==4){
                relyMap.put(saveModel.getHospital(), saveModel);
                onRelyMap.put(saveModel.getTeam(), saveModel);
            }else if(level==3){
                relyMap.put(saveModel.getTown(), saveModel);
                onRelyMap.put(saveModel.getHospital(), saveModel);
            }else if(level==2){
                relyMap.put(saveModel.getCity(), saveModel);
                onRelyMap.put(saveModel.getTown(), saveModel);
            }
        };
        List<Map<String, Object>> resultMaps = new ArrayList<>();
@ -1690,11 +1767,11 @@ public class StatisticsESService {
            Integer noRelyNm = onRelyRs.getResult2().intValue();
//            rs.put("name", relyRs.get(area+"Name"));
            if(level==4){
                rs.put("name", relyRs.getHospitalName());
                rs.put("name", relyRs.getTeamName());
            }else if(level==3){
                rs.put("name", relyRs.getTownName());
                rs.put("name", relyRs.getHospitalName());
            }else if(level==2){
                rs.put("name", relyRs.getCityName());
                rs.put("name", relyRs.getTownName());
            }
            rs.put("noRelyCount", noRelyNm);
            rs.put("relyCount", relyNm);
@ -1809,9 +1886,9 @@ public class StatisticsESService {
//        List<SaveModel> relyTotal = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,level,"25","2");
//        List<SaveModel> onRelyTotal = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,level,"22","2");
        SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,level,"23","2");
        SaveModel relyTotal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,level,"25","2");
        SaveModel onRelyTotal = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,level,"22","2");
        SaveModel relyVal = elasticsearchUtil.findOneDateQuotaLevel0(null,quotaDate,area,level,"23","1");
        SaveModel relyTotal = elasticsearchUtil.findOneDateQuotaLevel0(null,quotaDate,area,level,"25","1");
        SaveModel onRelyTotal = elasticsearchUtil.findOneDateQuotaLevel0(null,quotaDate,area,level,"22","1");
//        JSONObject relyObject = new JSONObject(relyVal);
//        JSONObject totalObject = new JSONObject(relyTotal);
@ -2129,9 +2206,9 @@ public class StatisticsESService {
            jsonObject.put("name", expenseStatus1Sigjn.getCityName());
        }
        jsonObject.put("code", area);
        Long  weChatAmount0 =  Long.valueOf(expenseStatus0.getResult2().toString());
        Long  weChatAmount1 =  Long.valueOf(expenseStatus1.getResult2().toString());
        Long  signAccount =  Long.valueOf(expenseStatus1Sigjn.getResult2().toString());
        Long  weChatAmount0 =  expenseStatus0.getResult2().longValue();
        Long  weChatAmount1 =  expenseStatus1.getResult2().longValue();
        Long  signAccount =  expenseStatus1Sigjn.getResult2().longValue();
        jsonObject.put("weChatAmount0", weChatAmount0);//微信关注未交费数
        jsonObject.put("weChatAmount1", weChatAmount1);//微信关注已交费数
        jsonObject.put("bindRate", getRangeDouuble(weChatAmount1.intValue(), signAccount.intValue(), 2));//微信关注率

+ 6 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ElasticsearchUtil.java

@ -83,6 +83,7 @@ public class ElasticsearchUtil {
            temp.getLines().forEach(one -> {
                Object saveModel = null;
                try {
                    saveModel = clazz.newInstance();
                } catch (Exception e) {
                    logger.error(e.getMessage());
@ -524,7 +525,11 @@ public class ElasticsearchUtil {
    public String changeTime(String time){
        try {
            time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX").format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time));
            if(time.length()==10){
                time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX").format(new SimpleDateFormat("yyyy-MM-dd").parse(time));
            }else if(time.length()==19){
                time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX").format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time));
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }

+ 7 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java

@ -259,10 +259,10 @@ public class EsStatisticsController extends BaseController {
            /**旧版统计代码start**/
            JSONArray jsonArray2 = null;
            if (Constant.getNowYearByDate(endDate).equals(year)) {
                jsonArray2 = statisticsESService.getLowLevelIncrementDetail(endDate, endDate, area, level, indexes[1], sort, lowLevel);
                jsonArray2 = statisticsESService.getLowLevelIncrementDetail("", endDate, area, level, indexes[1], sort, lowLevel);
            } else {
                String date = Integer.valueOf(year) + 1 + "-06-30";
                jsonArray2 = statisticsESService.getLowLevelIncrementDetail(date, date, area, level, indexes[1], sort, lowLevel);
                jsonArray2 = statisticsESService.getLowLevelIncrementDetail("", date, area, level, indexes[1], sort, lowLevel);
            }
            jsonArrays.add(jsonArray2);
            /**旧版统计代码end**/
@ -312,7 +312,7 @@ public class EsStatisticsController extends BaseController {
                }
            }
            if (level == 2) {
            if (SaveModel.OrgLevel.equals(level)) {
                statisticsAllService.translateTeamLeaderNameByCode(returnJa);
            }
            result.put("index_" + indexes[0], returnJa);
@ -520,6 +520,8 @@ public class EsStatisticsController extends BaseController {
                                            @RequestParam(required = false) String lowLevel,
                                            @RequestParam(required = false) String lowCode) {
        try {
            lowLevel = String.valueOf(org.springframework.util.StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
            int levelTemp = level;
            String lowLevelTemp = lowLevel;
            //新版与旧版统计适配
@ -667,7 +669,8 @@ public class EsStatisticsController extends BaseController {
                                              @RequestParam(required = false) String lowlevel,
                                              @RequestParam(required = false) String year) {
        try {
//新         版与旧版统计适配
            lowlevel = StringUtils.isEmpty(lowlevel)?String.valueOf(level-1):lowlevel;
            //新版与旧版统计适配
            level = elasticsearchUtil.changeLevel(level);
            if(StringUtils.isNotEmpty(lowlevel)){
                lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel))+"";