소스 검색

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

chenweida 7 년 전
부모
커밋
f304863d3b

+ 103 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsService.java

@ -3741,8 +3741,8 @@ public class StatisticsService extends BaseService {
                " wlyy_patient_health_guidance w " +
                " WHERE " +
                " w.admin_team_code =  " + teamCode +
                " AND w.czrq <= '" + endDate + "' " +
                " AND w.czrq >= '" + startDate + "' " +
                //" AND w.czrq <= '" + endDate + "' " +
                //" AND w.czrq >= '" + startDate + "' " +
                " GROUP BY w.doctor " +
                " ) c ON c.doctor = m.doctor_code, " +
                " wlyy_doctor d " +
@ -6669,5 +6669,106 @@ public class StatisticsService extends BaseService {
        }
        return null;
    }
    /**
     * esController里的getRayStatByTeam求咨询总数
     * 2017-11-21
     * zhangdan
     * @param startDate
     * @param endDate
     * @param id
     * @return
     */
    public Long getConsultTotalForEsGetRayStatByTeam(String startDate,String endDate,long id){
        String imDataBaseName = im_dataBase_name;
        //startDate = startDate + " 00:00:00";
        //endDate = endDate + " 23:59:59";
        String totalSql = "SELECT " +
                "  COUNT(1) total " +
                "  FROM " +
                "  " + imDataBaseName + ".Topics t, " +
                "  " + imDataBaseName + ".Participants p, " +
                "  " + imDataBaseName + ".Doctors d, " +
                "  Wlyy_Consult_Team c, " +
                "  " + imDataBaseName + ".Patients s " +
                "  WHERE " +
                "  d.id = p.participant_id " +
                " AND c.consult = t.id " +
                " AND c.patient = s.id " +
                " AND c.type = 2 " +
                " AND p.session_id = t.session_id " +
                " AND c.admin_team_code =" + id +
                " AND t.create_time >= '" + startDate + "' " +
                " AND t.create_time <= '" + endDate + "'";
        List<Map<String, Object>> totalList = jdbcTemplate.queryForList(totalSql);
        Long totalCount = 0L;
        if (totalList != null && totalList.size() > 0) {
            Map<String, Object> total = totalList.get(0);
            totalCount = (Long) total.get("total");
        }
        return totalCount;
    }
    /**
     * esController里的getTeamConsultCount求咨询总数
     * 2017-11-21
     * zhangdan
     * @param teamCode
     * @param startDate
     * @param endDate
     * @param type
     * @return
     */
    public List<Map<String, Object>> getCousultTotalForEsGetTeamConsultCount(String teamCode, String startDate, String endDate, String type) {
        String imDataBaseName = im_dataBase_name;
        String totalSql;
        startDate = startDate + " 00:00:00";
        endDate = endDate + " 23:59:59";
        if ("0".equals(type)) {
            //按周统计
            totalSql = "SELECT " +
                    "  left(t.create_time,10) AS dateNo, COUNT(1) total " +
                    " FROM " +
                    "  " + imDataBaseName + ".Topics t, " +
                    "  " + imDataBaseName + ".Participants p, " +
                    "  " + imDataBaseName + ".Doctors d, " +
                    "  Wlyy_Consult_Team c, " +
                    "  " + imDataBaseName + ".Patients s " +
                    " WHERE " +
                    "  d.id = p.participant_id " +
                    " AND c.consult = t.id " +
                    " AND c.patient = s.id " +
                    " AND p.session_id = t.session_id " +
                    " AND c.type <> 8" +
                    " AND c.admin_team_code = " + teamCode +
                    " AND t.create_time >= '" + startDate + "' " +
                    " AND t.create_time <= '" + endDate + "' " +
                    " GROUP BY dateNo";
        } else {
            //按月统计
            totalSql = "SELECT " +
                    "  (DATE_FORMAT(t.create_time, '%v') - DATE_FORMAT('" + startDate + "', '%v') + 1) AS weekOfMonth, " +
                    "  COUNT(1) AS total " +
                    "  FROM " +
                    "  " + imDataBaseName + ".Topics t, " +
                    "  " + imDataBaseName + ".Participants p, " +
                    "  " + imDataBaseName + ".Doctors d, " +
                    "  Wlyy_Consult_Team c, " +
                    "  " + imDataBaseName + ".Patients s " +
                    "  WHERE " +
                    "  d.id = p.participant_id " +
                    "  AND c.consult = t.id " +
                    "  AND c.patient = s.id " +
                    "  AND p.session_id = t.session_id " +
                    "  AND c.type <> 8" +
                    "  AND c.admin_team_code = " + teamCode +
                    "  AND t.create_time >= '" + startDate + "' " +
                    "  AND t.create_time <= '" + endDate + "' " +
                    "  GROUP BY weekOfMonth";
        }
        List<Map<String, Object>> totalList = jdbcTemplate.queryForList(totalSql);
        return totalList;
    }
}

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

@ -2,6 +2,7 @@ package com.yihu.wlyy.service.app.statisticsES;
import com.yihu.wlyy.config.es.ElasticFactory;
import com.yihu.wlyy.entity.address.Town;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.entity.organization.Hospital;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionDispensaryCode;
@ -9,8 +10,10 @@ import com.yihu.wlyy.entity.patient.prescription.PrescriptionLog;
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.doctor.DoctorDao;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.service.app.statistics.StatisticsAllService;
import com.yihu.wlyy.service.app.statistics.StatisticsService;
import com.yihu.wlyy.service.system.SystemDictService;
import com.yihu.wlyy.util.Constant;
import com.yihu.wlyy.util.DateUtil;
@ -57,10 +60,15 @@ public class StatisticsESService {
    @Autowired
    TownDao townDao;
    @Autowired
    DoctorDao doctorDao;
    @Autowired
    private SystemDictService systemDictService;
    @Autowired
    private StatisticsAllService statisticsAllService;
    @Autowired
    private StatisticsService statisticsService;
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX");
    SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -2533,13 +2541,13 @@ public class StatisticsESService {
//        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //获取微信关注的未交费
//        Map<String, Object> expenseStatus0 = getByIndexSingle(date, area, level, "49",dateFormat);
        SaveModel expenseStatus0 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "49", "2");
        SaveModel expenseStatus0 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "49", SaveModel.timeLevel_DDL);
        //获取微信关注的已交费
//        Map<String, Object> expenseStatus1 = getByIndexSingle(date, area, level, "50",dateFormat);
        SaveModel expenseStatus1 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "50", "2");
        SaveModel expenseStatus1 = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "50", SaveModel.timeLevel_DDL);
        //获取已缴费的签约数
//        Map<String, Object> expenseStatus1Sigjn = getByIndexSingle(date, area, level, "1",dateFormat);
        SaveModel expenseStatus1Sigjn = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "1", "2");
        SaveModel expenseStatus1Sigjn = elasticsearchUtil.findOneDateQuotaLevel0(date, area, level, "1", SaveModel.timeLevel_DDL);
        JSONObject jsonObject = new JSONObject();
        if (Integer.valueOf(SaveModel.teamLevel) == level) {
            jsonObject.put("name", expenseStatus1Sigjn.getTeamName());
@ -2803,10 +2811,11 @@ public class StatisticsESService {
        rs.put(signTotal);
        //4.获取咨詢數
        SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL);
        Map<String, Object> consultCout = new HashMap<>();
        consultCout.put("consultCount", saveModel3.getResult2().longValue());
        //4.获取咨詢數(先使用旧版)
        Map<String, Object> consultCout = statisticsService.getConsultByteam(admin.getId(),startDate,endDate);
        //SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, admin.getId() + "", Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL);
        //Map<String, Object> consultCout = new HashMap<>();
        //consultCout.put("consultCount", saveModel3.getResult2().longValue());
        rs.put(consultCout);
        //5.获取待预约
@ -2927,9 +2936,10 @@ public class StatisticsESService {
        endDate = endDate + " 23:59:59";
        String quotaTime = elasticsearchUtil.getQuotaTime();
        Long id = admin.getId();
        //家庭医生、健康咨询增量
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL);
        Long totalCount = saveModel.getResult2().longValue();
        //家庭医生、健康咨询增量(先使用旧版 17-11-21)
        Long totalCount = statisticsService.getConsultTotalForEsGetRayStatByTeam(startDate,endDate,id);
        /*SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(startDate, endDate, id + "", Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL);
        Long totalCount = saveModel.getResult2().longValue();*/
        //健康咨询量  未回复当天的到达量
        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(quotaTime, quotaTime, id + "", Integer.parseInt(SaveModel.teamLevel), "22", SaveModel.timeLevel_DDL);
@ -2998,8 +3008,9 @@ public class StatisticsESService {
        //咨询未回复
        Integer interval = Integer.parseInt(type) + 1;
        List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "22", SaveModel.timeLevel_ZL, interval + "");
        //咨询总数
        List<SaveModel> list2 = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL, interval + "");
        //咨询总数(先使用旧版17-11-21)
        //List<SaveModel> list2 = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, teamCode, Integer.parseInt(SaveModel.teamLevel), "3", SaveModel.timeLevel_ZL, interval + "");
        List<Map<String,Object>> totalList = statisticsService.getCousultTotalForEsGetTeamConsultCount(teamCode,startDate,endDate,type);
        Map<String, Object> map = null;
        //遍历未回复集合
        List<Map<String, Object>> noReyList = new ArrayList<>();
@ -3016,7 +3027,7 @@ public class StatisticsESService {
            }
        }
        List<Map<String, Object>> totalList = new ArrayList<>();
        /*List<Map<String, Object>> totalList = new ArrayList<>();
        for (SaveModel one : list2) {
            if (one.getResult2().intValue()!=0){
                map = new HashMap<>();
@ -3028,7 +3039,7 @@ public class StatisticsESService {
                map.put("total", one.getResult2().longValue());
                totalList.add(map);
            }
        }
        }*/
        JSONObject result = new JSONObject();
        result.put("noReyList", noReyList);
        result.put("totalList", totalList);

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/StatisticsController.java

@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import java.util.*;
/**
 * Created by lyr on 2016/08/16.
 * Created by lyr on 2016/08/16
 */
@Controller
@RequestMapping(value = "/statistics", produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = {RequestMethod.GET,RequestMethod.POST})