Browse Source

添加字段

wangzhinan 11 months ago
parent
commit
4276c73910

+ 30 - 30
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java

@ -1253,11 +1253,11 @@ public class StatisticsEsService {
        JSONObject object1 = new JSONObject();
        if (flag == 1) {
            sql = "SELECT dhd.CODE AS \"dept_code\", dhd. NAME AS \"dept_name\", CASE WHEN c. COUNT IS NOT NULL THEN " +
                    "c. COUNT ELSE 0 END AS \"COUNT\" FROM DICT_HOSPITAL_DEPT dhd " +
                    "c. COUNT ELSE 0 END AS \"COUNT\" FROM dict_hospital_dept dhd " +
                    "LEFT JOIN ( SELECT dh.DEPT_CODE as\"DEPT_CODE\", hd. NAME AS \"dept_name\", " +
                    "COUNT(dh.DOCTOR_CODE) AS \"COUNT\" FROM BASE_DOCTOR bd " +
                    "LEFT JOIN BASE_DOCTOR_HOSPITAL dh ON bd. ID = dh.DOCTOR_CODE " +
                    "RIGHT JOIN DICT_HOSPITAL_DEPT hd ON hd.CODE = dh.DEPT_CODE " +
                    "COUNT(dh.DOCTOR_CODE) AS \"COUNT\" FROM base_doctor bd " +
                    "LEFT JOIN base_doctor_hospital dh ON bd. ID = dh.DOCTOR_CODE " +
                    "RIGHT JOIN dict_hospital_dept hd ON hd.CODE = dh.DEPT_CODE " +
                    "WHERE bd.DEL = 1 AND  bd.OUTPATIENT_TYPE IS NOT NULL GROUP BY dh.DEPT_CODE, hd. NAME " +
                    "ORDER BY COUNT DESC ) c ON dhd.CODE = c.DEPT_CODE " +
                    "WHERE dhd.CONSULT_DEPT_FLAG='1'   " +
@ -1288,7 +1288,7 @@ public class StatisticsEsService {
        } else if (flag == 2) {
            List<SaveModel> saveModels = elasticsearchUtil.findDateQuotaLevel0(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, null, "6");
            String deptSql = "select hd.CODE as \"code\",hd.NAME as \"name\" from DICT_HOSPITAL_DEPT hd where hd.ORG_CODE ='" + area + "' and hd.CONSULT_DEPT_FLAG=1";
            String deptSql = "select hd.CODE as \"code\",hd.NAME as \"name\" from dict_hospital_dept hd where hd.ORG_CODE ='" + area + "' and hd.CONSULT_DEPT_FLAG=1";
            List<Map<String, Object>> mapList = hibenateUtils.createSQLQuery(deptSql);
            List<JSONObject> result = new ArrayList<>();
            for (SaveModel saveModel : saveModels) {
@ -1358,12 +1358,12 @@ public class StatisticsEsService {
        JSONObject object = new JSONObject();
        if (flag == 1) {
            String sql = "SELECT bd.JOB_TITLE_CODE as \"JOB_TITLE_CODE\", bd.JOB_TITLE_NAME as \"JOB_TITLE_NAME\", COUNT(bd.ID) as \"count\" FROM " +
                    "BASE_DOCTOR bd, BASE_DOCTOR_HOSPITAL bdh,DICT_HOSPITAL_DEPT dhd  WHERE bd.ID = bdh.DOCTOR_CODE AND dhd.code = bdh.DEPT_CODE AND bd.DEL = 1 " +
                    " AND bdh.DEL = 1 AND bd.OUTPATIENT_TYPE IS NOT NULL AND bd.job_title_code IN('1201','1301','1401','1101','066','067','061','1310','061','065') ";
                    "base_doctor bd, base_doctor_hospital bdh,dict_hospital_dept dhd  WHERE bd.ID = bdh.DOCTOR_CODE AND dhd.code = bdh.DEPT_CODE AND bd.DEL = 1 " +
                    " AND bdh.DEL = 1 AND bd.OUTPATIENT_TYPE IS NOT NULL ";
            String sqlCount = "SELECT COUNT(bd.ID) as \"total\" FROM " +
                    "BASE_DOCTOR bd, BASE_DOCTOR_HOSPITAL bdh,DICT_HOSPITAL_DEPT dhd WHERE bd.ID = bdh.DOCTOR_CODE AND dhd.code = bdh.DEPT_CODE AND bd.DEL = 1 " +
                    " AND bdh.DEL = 1 AND bd.OUTPATIENT_TYPE IS NOT NULL AND dhd.CONSULT_DEPT_FLAG='1' AND bd.job_title_code IN('1201','1301','1401','1101','066','067','061','1310','061','065') ";
                    "base_doctor bd, base_doctor_hospital bdh,dict_hospital_dept dhd WHERE bd.ID = bdh.DOCTOR_CODE AND dhd.code = bdh.DEPT_CODE AND bd.DEL = 1 " +
                    " AND bdh.DEL = 1 AND bd.OUTPATIENT_TYPE IS NOT NULL AND dhd.CONSULT_DEPT_FLAG='1'  ";
            if (level == 4) {
                sql += " AND dhd.ORG_CODE = '" + area + "'";
@ -1399,7 +1399,7 @@ public class StatisticsEsService {
                buffer.deleteCharAt(buffer.length() - 1);
            }
            if (buffer.length() > 0) {
                String sql = "SELECT bd.JOB_TITLE_CODE as \"JOB_TITLE_CODE\", bd.JOB_TITLE_NAME as \"JOB_TITLE_NAME\" ,COUNT(bd.ID) AS \"total\" FROM BASE_DOCTOR bd WHERE  bd.DEL = 1";
                String sql = "SELECT bd.JOB_TITLE_CODE as \"JOB_TITLE_CODE\", bd.JOB_TITLE_NAME as \"JOB_TITLE_NAME\" ,COUNT(bd.ID) AS \"total\" FROM base_doctor bd WHERE  bd.DEL = 1";
                sql += "  AND bd.ID IN(" + buffer + ")";
                sql += "  GROUP BY bd.JOB_TITLE_CODE,bd.JOB_TITLE_NAME";
                List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);//各职称人数
@ -1419,14 +1419,14 @@ public class StatisticsEsService {
        if (flag == 1) {//开通医生
            String sql = "SELECT bd.ID as\"ID\", bd.NAME as\"NAME\", bd.OUTPATIENT_TYPE as\"OUTPATIENT_TYPE\", " +
                    "dhd.code AS \"dept_code\", dhd.name AS \"dept_name\",bd.JOB_TITLE_NAME as\"JOB_TITLE_NAME\" FROM " +
                    "BASE_DOCTOR bd, BASE_DOCTOR_HOSPITAL bdh, " +
                    "DICT_HOSPITAL_DEPT dhd WHERE bd.ID = bdh.DOCTOR_CODE " +
                    "base_doctor bd, base_doctor_hospital bdh, " +
                    "dict_hospital_dept dhd WHERE bd.ID = bdh.DOCTOR_CODE " +
                    "AND dhd.code = bdh.DEPT_CODE " +
                    "AND bd.DEL = 1 " +
                    "AND bdh.DEL = 1 " +
                    "AND bd.OUTPATIENT_TYPE IS NOT NULL " +
                    " AND dhd.CONSULT_DEPT_FLAG='1' AND bd.job_title_code IN('1201','1301','1401','1101','066','067','061','1310','061','065','1','2','3','4')";
            String deptSql = "select hd.CODE as \"CODE\",hd.NAME as \"NAME\" from DICT_HOSPITAL_DEPT hd where CONSULT_DEPT_FLAG=1";
                    " AND dhd.CONSULT_DEPT_FLAG='1' ";
            String deptSql = "select hd.CODE as \"CODE\",hd.NAME as \"NAME\" from dict_hospital_dept hd where CONSULT_DEPT_FLAG=1";
            if (level == 4) {//科室
                sql += " AND dhd.ORG_CODE = '" + area + "'";
                deptSql += " AND hd.ORG_CODE ='" + area + "'";
@ -1536,7 +1536,7 @@ public class StatisticsEsService {
            //专科视频
            List<SaveModel> specialistSPModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, "17", null, "6");
            String deptSql = "select hd.CODE as \"CODE\",hd.NAME as \"NAME\" from DICT_HOSPITAL_DEPT hd where CONSULT_DEPT_FLAG=1";
            String deptSql = "select hd.CODE as \"CODE\",hd.NAME as \"NAME\" from dict_hospital_dept hd where CONSULT_DEPT_FLAG=1";
            if (level == 4) {//科室
                deptSql += " AND hd.ORG_CODE ='" + area + "'";
            } else if (level == 5) {//医生
@ -5694,7 +5694,7 @@ public class StatisticsEsService {
     * @return
     * @throws Exception
     */
    public JSONObject getArticleTotalHead(Integer flag, String startDate, String endDate, String area, int level) throws Exception {
    public JSONObject getArticleTotalHead(Integer flag, String startDate, String endDate, String area, int level,String slaveKey1) throws Exception {
        //发布量
        SaveModel saveModel = null;
        //发布量环比;
@ -5732,11 +5732,11 @@ public class StatisticsEsService {
        String linkEndDate = DateUtil.getMonthDate(DateUtil.strToDateLong(endDate), -months);
        JSONObject object = new JSONObject();
        //发布量统计
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "75", SaveModel.timeLevel_ZL);
        saveModel = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, area, level, "75", SaveModel.timeLevel_ZL,slaveKey1);
        //发布量环比
        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(linkStartDate, linkEndDate, area, level, "75", SaveModel.timeLevel_ZL);
        saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(linkStartDate, linkEndDate, area, level, "75", SaveModel.timeLevel_ZL,slaveKey1);
        //发布量同比
        saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(sameStartDate, sameEndDate, area, level, "75", SaveModel.timeLevel_ZL);
        saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(sameStartDate, sameEndDate, area, level, "75", SaveModel.timeLevel_ZL,slaveKey1);
        Integer publishTotal = saveModel != null ? saveModel.getResult1().intValue() : 0;
        Integer publishLinkTotal = saveModel1 != null ? saveModel1.getResult1().intValue() : 0;
        Integer publishSameTotal = saveModel2 != null ? saveModel2.getResult1().intValue() : 0;
@ -5744,11 +5744,11 @@ public class StatisticsEsService {
        object.put("publishLink", getTwoRange(publishTotal - publishLinkTotal, publishLinkTotal, 0));//环比
        object.put("publishSame", getTwoRange(publishTotal - publishSameTotal, publishSameTotal, 0));//同比
        //收藏量统计
        saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(startDate, endDate, area, level, "76", SaveModel.timeLevel_ZL, null, "3");
        saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(startDate, endDate, area, level, "76", SaveModel.timeLevel_ZL, slaveKey1, "3");
        //收藏量环比
        saveModel4 = elasticsearchUtil.findOneDateQuotaLevel2(linkStartDate, linkEndDate, area, level, "76", SaveModel.timeLevel_ZL, null, "3");
        saveModel4 = elasticsearchUtil.findOneDateQuotaLevel2(linkStartDate, linkEndDate, area, level, "76", SaveModel.timeLevel_ZL, slaveKey1, "3");
        //收藏量同比
        saveModel5 = elasticsearchUtil.findOneDateQuotaLevel1(sameStartDate, sameEndDate, area, level, "76", SaveModel.timeLevel_ZL, null, "3");
        saveModel5 = elasticsearchUtil.findOneDateQuotaLevel1(sameStartDate, sameEndDate, area, level, "76", SaveModel.timeLevel_ZL, slaveKey1, "3");
        Integer collectTotal = saveModel3 != null ? saveModel3.getResult1().intValue() : 0;
        Integer collectLinkTotal = saveModel4 != null ? saveModel4.getResult1().intValue() : 0;
        Integer collectSameTotal = saveModel5 != null ? saveModel5.getResult1().intValue() : 0;
@ -5756,11 +5756,11 @@ public class StatisticsEsService {
        object.put("collectLink", getTwoRange(collectTotal - collectLinkTotal, collectLinkTotal, 0));//环比
        object.put("collectSame", getTwoRange(collectTotal - collectSameTotal, collectSameTotal, 0));//同比
        //浏览量统计
        saveModel6 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "77", SaveModel.timeLevel_ZL);
        saveModel6 = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, area, level, "77", SaveModel.timeLevel_ZL,slaveKey1);
        //浏览量环比
        saveModel7 = elasticsearchUtil.findOneDateQuotaLevel0(linkStartDate, linkEndDate, area, level, "77", SaveModel.timeLevel_ZL);
        saveModel7 = elasticsearchUtil.findOneDateQuotaLevel1(linkStartDate, linkEndDate, area, level, "77", SaveModel.timeLevel_ZL,slaveKey1);
        //浏览量同比
        saveModel8 = elasticsearchUtil.findOneDateQuotaLevel0(sameStartDate, sameEndDate, area, level, "77", SaveModel.timeLevel_ZL);
        saveModel8 = elasticsearchUtil.findOneDateQuotaLevel1(sameStartDate, sameEndDate, area, level, "77", SaveModel.timeLevel_ZL,slaveKey1);
        Integer browseTotal = saveModel6 != null ? saveModel6.getResult1().intValue() : 0;
        Integer browseLinkTotal = saveModel7 != null ? saveModel7.getResult1().intValue() : 0;
        Integer browseSameTotal = saveModel8 != null ? saveModel8.getResult1().intValue() : 0;
@ -5784,7 +5784,7 @@ public class StatisticsEsService {
     * @param lowLevel  下一级区域等级   1 省 2 市 3 区县 4 机构 5团队
     * @return
     */
    public List<SaveModel> getArticlePublishList(Integer flag, String startDate, String endDate, int level, String area, String lowLevel) throws Exception {
    public List<SaveModel> getArticlePublishList(Integer flag, String startDate, String endDate, int level, String area, String lowLevel,String slaveKey1) throws Exception {
        if (flag == 1) {
            startDate = DateUtil.getFirstMonthDay() + " 00:00:00";
            endDate = DateUtil.getLastMonthDay() + " 23:59:59";
@ -5795,7 +5795,7 @@ public class StatisticsEsService {
            startDate = DateUtil.getCurrentYearStartTime() + " 00:00:00";
            endDate = DateUtil.getCurrentYearEndTime() + " 23:59:59";
        }
        List<SaveModel> saveModels = elasticsearchUtil.findListDateQuotaLevel0(startDate, endDate, area, level, "75", SaveModel.timeLevel_ZL, lowLevel);
        List<SaveModel> saveModels = elasticsearchUtil.findListDateQuotaLevel1(startDate, endDate, area, level, "75", SaveModel.timeLevel_ZL, lowLevel,slaveKey1);
        return saveModels;
    }
@ -5847,9 +5847,9 @@ public class StatisticsEsService {
     */
    public List<Map<String, Object>> selectArticleCountExcel(Integer flag, String startDate, String endDate, int level, String area, String lowLevel, String lowCode) throws Exception {
        if (level == 4) {
            List<Map<String, Object>> mapList = getArticleExcel(flag, startDate, endDate, level, area, "5", null);
            List<Map<String, Object>> mapList = getArticleExcel(flag, startDate, endDate, level, area, "5", lowCode);
            for (Map<String, Object> map : mapList) {
                List<Map<String, Object>> maps = getArticleExcel(flag, startDate, endDate, 5, map.get("code").toString(), "6", null);
                List<Map<String, Object>> maps = getArticleExcel(flag, startDate, endDate, 5, map.get("code").toString(), "6", lowCode);
                map.put("doctors", maps);
            }
            return mapList;
@ -6049,7 +6049,7 @@ public class StatisticsEsService {
            endDate = DateUtil.getCurrentYearEndTime() + " 23:59:59";
        }
        //文章发布数
        SaveModel totalMap = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, area, level, "75", SaveModel.timeLevel_ZL);//总数
        SaveModel totalMap = elasticsearchUtil.findOneDateQuotaLevel1(startDate, endDate, area, level, "75", SaveModel.timeLevel_ZL,lowCode);//总数
        int total = 0;
        if (totalMap != null) {

+ 8 - 4
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java

@ -1039,10 +1039,12 @@ class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "level", value = "2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "level", required = true) int level,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag", required = true) Integer flag) {
            @RequestParam(value = "flag", required = true) Integer flag,
            @ApiParam(name = "slaveKey1", value = "slaveKey1", required = true)
            @RequestParam(value = "slaveKey1", required = false) String slaveKey1) {
        JSONObject result = new JSONObject();
        try {
            result = statisticsEsService.getArticleTotalHead(flag, startDate, endDate, area, level);
            result = statisticsEsService.getArticleTotalHead(flag, startDate, endDate, area, level,slaveKey1);
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -1064,10 +1066,12 @@ class EsStatisticsEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "lowLevel", value = "下一级区域等级   2 市  3区  4医院 5、科室 6医生", required = true)
            @RequestParam(value = "lowLevel", required = true) String lowLevel,
            @ApiParam(name = "flag", value = "0自定义 1本月2近半年3本年", required = true)
            @RequestParam(value = "flag", required = true) Integer flag) {
            @RequestParam(value = "flag", required = true) Integer flag,
            @ApiParam(name = "slaveKey1", value = "slaveKey1", required = true)
            @RequestParam(value = "slaveKey1", required = false) String slaveKey1) {
        try {
            return success(statisticsEsService.getArticlePublishList(flag, startDate, endDate, level, area, lowLevel));
            return success(statisticsEsService.getArticlePublishList(flag, startDate, endDate, level, area, lowLevel,slaveKey1));
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException(e);