浏览代码

代码修改

LAPTOP-KB9HII50\70708 14 小时之前
父节点
当前提交
cb2f525e51
共有 1 个文件被更改,包括 166 次插入38 次删除
  1. 166 38
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

+ 166 - 38
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -2384,17 +2384,54 @@ public class StatisticsService {
        JSONArray jsonArray = new JSONArray();
        JSONArray jsonArray = new JSONArray();
        //总量
        //总量
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "67", SaveModel.timeLevel_DDL,null,"5", null, "-2,0,1");
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "67", SaveModel.timeLevel_DDL,null,"5", null, "-2,0,1");
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("emeWarnTotal", saveModel.getResult2().longValue());
            json.put("dept", saveModel.getDept());
            json.put("deptName", saveModel.getDeptName());
            //已响应数量
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, saveModel.getDept(), 5, "67", SaveModel.timeLevel_DDL,"-2,0");
            json.put("emeWarnDealt", saveModel2.getResult2().longValue());
            json.put("emeWarnDealtLaw", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(),saveModel.getResult2().intValue()));
            jsonArray.add(json);
        if(list.size()==1&&StringUtils.isBlank(list.get(0).getDept())){
            String sql = "SELECT\n" +
                    "\to.dept,bt.name deptName,count(distinct o.bussiness_id) emeWarnTotal,count(distinct if(o.`status` in (0,-2),o.bussiness_id,null)) emeWarnDealt\n" +
                    "FROM\n" +
                    "\t(\n" +
                    "\t\tSELECT\n" +
                    "\t\t\to.id AS bussiness_id,\n" +
                    "\t\t\to.team_code as dept,o.`status`,\n" +
                    "\t\t\to.update_time\n" +
                    "\t\tFROM\n" +
                    "\t\t\tbase_security_monitoring_order o\n" +
                    "\t\tUNION ALL\n" +
                    "\t\t\tSELECT\n" +
                    "\t\t\t\to.id AS bussiness_id,\n" +
                    "\t\t\t\to.team_code as dept,o.`status`,\n" +
                    "\t\t\t\to.update_time\n" +
                    "\t\t\tFROM\n" +
                    "\t\t\t\tbase_emergency_assistance_order o\n" +
                    "\t) o, base_team bt,wlyy_hospital_sys_dict\n" +
                    " WHERE 1=1 and o.dept = bt.id and bt.org_code \n" +
                    "NOT IN ( SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_org' )\n" +
                    "GROUP BY o.dept";
            List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql);
            for (Map<String,Object> tmp : list1){
                Integer emeWarnTotal = Integer.parseInt(tmp.get("emeWarnTotal")+"");
                Integer emeWarnDealt = Integer.parseInt(tmp.get("emeWarnDealt")+"");
                JSONObject json = new JSONObject();
                json.put("emeWarnTotal", emeWarnTotal);
                json.put("dept", tmp.get("dept"));
                json.put("deptName", tmp.get("deptName"));
                //已响应数量
                json.put("emeWarnDealt", emeWarnDealt);
                json.put("emeWarnDealtLaw", commonUtil.getRangeDouble(emeWarnDealt,emeWarnTotal));
                jsonArray.add(json);
            }
        }else {
            for (int i = 0; i < list.size(); i++) {
                SaveModel saveModel = list.get(i);
                JSONObject json = new JSONObject();
                json.put("emeWarnTotal", saveModel.getResult2().longValue());
                json.put("dept", saveModel.getDept());
                json.put("deptName", saveModel.getDeptName());
                //已响应数量
                SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, saveModel.getDept(), 5, "67", SaveModel.timeLevel_DDL,"-2,0");
                json.put("emeWarnDealt", saveModel2.getResult2().longValue());
                json.put("emeWarnDealtLaw", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(),saveModel.getResult2().intValue()));
                jsonArray.add(json);
            }
        }
        }
        jsonArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("emeWarnDealtLaw")).reversed());
        jsonArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("emeWarnDealtLaw")).reversed());
        res.put("orderServerArray", jsonArray);
        res.put("orderServerArray", jsonArray);
@ -2498,10 +2535,33 @@ public class StatisticsService {
        //紧急救助 呼叫+安防
        //紧急救助 呼叫+安防
        //紧急救助 已响应
        //紧急救助 已响应
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), area, level, "67", SaveModel.timeLevel_DDL,"-2,0");
        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), area, level, "67", SaveModel.timeLevel_DDL,"1");
        finishCount = saveModel.getResult2().longValue();
        unfinishCount = saveModel2.getResult2().longValue();
        String sqlEme = "SELECT\n" +
                "\tcount(distinct if(o.`status`=1,o.bussiness_id,null)) unfinish,count(distinct if(o.`status` in (0,-2),o.bussiness_id,null)) finish\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\to.id AS bussiness_id,\n" +
                "\t\t\to.team_code as dept,o.`status`,\n" +
                "\t\t\to.update_time\n" +
                "\t\tFROM\n" +
                "\t\t\tbase_security_monitoring_order o\n" +
                "\t\tUNION ALL\n" +
                "\t\t\tSELECT\n" +
                "\t\t\t\to.id AS bussiness_id,\n" +
                "\t\t\t\to.team_code as dept,o.`status`,\n" +
                "\t\t\t\to.update_time\n" +
                "\t\t\tFROM\n" +
                "\t\t\t\tbase_emergency_assistance_order o\n" +
                "\t) o, base_team bt,wlyy_hospital_sys_dict\n" +
                " WHERE 1=1 and o.dept = bt.id and bt.org_code \n" +
                "NOT IN ( SELECT dict_code FROM `base`.`wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_org' )";
//        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), area, level, "67", SaveModel.timeLevel_DDL,"-2,0");
//        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(DateUtil.getStringDateShort(), area, level, "67", SaveModel.timeLevel_DDL,"1");
//        finishCount = saveModel.getResult2().longValue();
//        unfinishCount = saveModel2.getResult2().longValue();
        List<Map<String,Object>> listEme = jdbcTemplate.queryForList(sqlEme);
        finishCount = Long.parseLong(listEme.get(0).get("finish")+"");
        unfinishCount = Long.parseLong(listEme.get(0).get("unfinish")+"");
        emeAssistance.put("finish",finishCount);
        emeAssistance.put("finish",finishCount);
        emeAssistance.put("unfinish",unfinishCount);
        emeAssistance.put("unfinish",unfinishCount);
        emeAssistance.put("total",finishCount.intValue()+unfinishCount.intValue());
        emeAssistance.put("total",finishCount.intValue()+unfinishCount.intValue());
@ -2587,30 +2647,72 @@ public class StatisticsService {
        JSONObject result = new JSONObject();
        JSONObject result = new JSONObject();
        //助老服务 生活照料 (出去已取消和未支付)
        //助老服务 生活照料 (出去已取消和未支付)
        JSONArray olderServiceInfo = new JSONArray();
        JSONArray olderServiceInfo = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate, endDate, area, level, "48", SaveModel.timeLevel_DDL, null, null);
        for (int i = 0; (i < list.size() && i < 5); i++) {
            SaveModel saveModel = list.get(i);
        String sql1 = "SELECT\n" +
                "\tde.code,COUNT(distinct o.id) num,di.name\n" +
                "FROM\n" +
                "\tbase_life_care_fee_detail de\n" +
                "\tINNER JOIN base_life_care_order o ON de.order_id = o.id ,\n" +
                "\tbase_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack\n" +
                ",base_life_care_item_dict di \n" +
                "WHERE\n" +
                "\to.STATUS <> 0 and o.status<>-1\n" +
                "\tand sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id  and i.del = 1 \n" +
                "\t\t and sr.`status`=1 and CONVERT(sr.patient USING utf8)  = o.patient and di.del=1 and (di.org_code<>'lxyl' or di.org_code is null)\n" +
                "and di.code = de.code\n" +
                "GROUP BY de.code  ORDER BY num desc limit 5";
        List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql1);
        for (Map<String,Object> map:list1) {
            JSONObject json = new JSONObject();
            JSONObject json = new JSONObject();
            json.put("num", saveModel.getResult2().longValue());
            json.put("code", saveModel.getSlaveKey1());
            json.put("name", saveModel.getSlaveKey1Name());
            json.put("num", map.get("num"));
            json.put("code", map.get("code"));
            json.put("name", map.get("name"));
            olderServiceInfo.add(json);
            olderServiceInfo.add(json);
        }
        }
//        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate, endDate, area, level, "48", SaveModel.timeLevel_DDL, null, null);
//        for (int i = 0; (i < list.size() && i < 5); i++) {
//            SaveModel saveModel = list.get(i);
//            JSONObject json = new JSONObject();
//            json.put("num", saveModel.getResult2().longValue());
//            json.put("code", saveModel.getSlaveKey1());
//            json.put("name", saveModel.getSlaveKey1Name());
//            olderServiceInfo.add(json);
//        }
        //紧急救助 呼叫68+安防46 已取消不算
        //紧急救助 呼叫68+安防46 已取消不算
        JSONArray emeAssistance = new JSONArray();
        JSONArray emeAssistance = new JSONArray();
        list = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(endDate, endDate, area, level, "46", SaveModel.timeLevel_DDL, null, "-2,0,1", null, null, "4", "1");
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
        String sql2 = "SELECT\n" +
                "\tCOUNT(distinct ord.id) num,\n" +
                "\tdict.dict_code AS code,\n" +
                "\tdict.dict_value AS name\n" +
                "FROM\n" +
                "\tbase_security_monitoring_order ord\n" +
                "\tINNER JOIN wlyy_hospital_sys_dict dict ON dict.dict_name = 'security_server_dict' \n" +
                "\tAND ord.serve_desc = dict.dict_value\n" +
                "where 1=1 GROUP BY ord.serve_desc";
//        list = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(endDate, endDate, area, level, "46", SaveModel.timeLevel_DDL, null, "-2,0,1", null, null, "4", "1");
        List<Map<String,Object>> list2 = jdbcTemplate.queryForList(sql2);
        for (Map<String,Object> map:list2) {
            JSONObject json = new JSONObject();
            JSONObject json = new JSONObject();
            json.put("num", saveModel.getResult2().longValue());
            json.put("code", saveModel.getSlaveKey1());
            json.put("name", saveModel.getSlaveKey1Name());
            json.put("num", map.get("num"));
            json.put("code", map.get("code"));
            json.put("name", map.get("name"));
            emeAssistance.add(json);
            emeAssistance.add(json);
        }
        }
//        for (int i = 0; i < list.size(); i++) {
//            SaveModel saveModel = list.get(i);
//            JSONObject json = new JSONObject();
//            json.put("num", saveModel.getResult2().longValue());
//            json.put("code", saveModel.getSlaveKey1());
//            json.put("name", saveModel.getSlaveKey1Name());
//            emeAssistance.add(json);
//        }
        //紧急呼叫
        //紧急呼叫
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "68", SaveModel.timeLevel_DDL, "-2,0,1");
//        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "68", SaveModel.timeLevel_DDL, "-2,0,1");
        String sql3 = "SELECT count(distinct o.id) FROM base_emergency_assistance_order o, base_team bt,wlyy_hospital_sys_dict\n" +
                " WHERE 1=1 and o.team_code = bt.id and bt.org_code \n" +
                "NOT IN ( SELECT dict_code FROM `wlyy_hospital_sys_dict` WHERE `dict_name` = 'jkzl_org' )";
        JSONObject json = new JSONObject();
        JSONObject json = new JSONObject();
        json.put("num", saveModel.getResult2().longValue());
//        json.put("num", saveModel.getResult2().longValue());
        json.put("num", jdbcTemplate.queryForObject(sql3,Integer.class));
        json.put("code", "jjhj");
        json.put("code", "jjhj");
        json.put("name", "紧急呼叫");
        json.put("name", "紧急呼叫");
        emeAssistance.add(json);
        emeAssistance.add(json);
@ -3106,15 +3208,41 @@ public class StatisticsService {
    public JSONArray getDoorCoachRank(String endDate,String area,Integer level) throws Exception {
    public JSONArray getDoorCoachRank(String endDate,String area,Integer level) throws Exception {
        JSONArray result = new JSONArray();
        JSONArray result = new JSONArray();
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "54", SaveModel.timeLevel_DDL,null,"4", null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "54", SaveModel.timeLevel_DDL,null,"4", null);
        for (SaveModel tmp:list){
            JSONObject res = new JSONObject();
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, "35", SaveModel.timeLevel_DDL);
            res.put("total", tmp.getResult2().longValue());
            res.put("hospital", tmp.getHospital());
            res.put("hospitalName", tmp.getHospitalName());
            res.put("finish", saveModel2.getResult2().longValue());
            res.put("finishRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(), tmp.getResult2().intValue()));
            result.add(res);
        if(list.size()==1&&StringUtils.isBlank(list.get(0).getHospital())){
            //统计没跑 直接执行sql
            String sql = "SELECT \n" +
                    "\to.hospital,h.name hospiatalName,count(DISTINCT o.patient) total, count(DISTINCT if(o.`status`=6,o.patient,null)) finish\n" +
                    " FROM \n" +
                    "base_door_coach_order o\n" +
                    "LEFT JOIN base_org h on o.hospital=h.code\n" +
                    "WHERE o.`status`>0";
            if(!endDate.equals(DateUtil.getStringDateShort())){
                sql += " and o.update_time<'"+endDate+"' ";
            }
            sql += " GROUP BY o.hospital";
            List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql);
            for (Map<String,Object> tmp : list1){
                JSONObject res = new JSONObject();
                Integer total = Integer.parseInt(tmp.get("total")+"");
                Integer finish = Integer.parseInt(tmp.get("finish")+"");
                res.put("total", total);
                res.put("hospital", tmp.get("hospital"));
                res.put("hospitalName", tmp.get("hospiatalName"));
                res.put("finish", finish);
                res.put("finishRate", commonUtil.getRangeDouble(finish, total));
                result.add(res);
            }
        }else {
            for (SaveModel tmp:list){
                JSONObject res = new JSONObject();
                SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, "35", SaveModel.timeLevel_DDL);
                res.put("total", tmp.getResult2().longValue());
                res.put("hospital", tmp.getHospital());
                res.put("hospitalName", tmp.getHospitalName());
                res.put("finish", saveModel2.getResult2().longValue());
                res.put("finishRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(), tmp.getResult2().intValue()));
                result.add(res);
            }
        }
        }
        result.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("finishRate")).reversed());
        result.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("finishRate")).reversed());
        return result;
        return result;