Ver código fonte

活动统计代码提交

liuwenbin 7 anos atrás
pai
commit
6311e0f97a

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

@ -5190,7 +5190,8 @@ public class StatisticsESService {
        SaveModel grantSaveModel = null;
        SaveModel bindingSaveModel = null;
        List<SaveModel> useSaveModel = null;
        List<SaveModel> startUseSaveModel = null;
        List<SaveModel> endUseSaveModel = null;
        SaveModel anomalySaveModel = null;
        String allCountSql = "";
        String anomalyCountSql = "";
@ -5210,7 +5211,8 @@ public class StatisticsESService {
                grantSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_85, SaveModel.timeLevel_DDL, "hemopiezometer");
                bindingSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_86, SaveModel.timeLevel_DDL, "hemopiezometer");
                allCountSql = "SELECT COUNT(*) FROM device.wlyy_devices d where device_name like '%血压%' " + areaCondition;
                useSaveModel = elasticsearchUtil.findDateQuotaLevel1(mondayTime, timeKey, area, level, index_87, SaveModel.timeLevel_ZL, "hemopiezometer", null, null);
                startUseSaveModel = elasticsearchUtil.findDateQuotaLevel1(mondayTime, mondayTime, area, level, index_87, SaveModel.timeLevel_DDL, "hemopiezometer", null, null);
                endUseSaveModel = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index_87, SaveModel.timeLevel_DDL, "hemopiezometer", null, null);
                anomalySaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_88, SaveModel.timeLevel_DDL, "hemopiezometer");
                anomalyCountSql = " SELECT COUNT(i.id) FROM device.wlyy_patient_health_index i left join device.wlyy_devices d on i.device_sn=d.device_code where i.type =1 and i.status=1 and i.del=1 " + areaCondition;
                allAmountList = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index_85, SaveModel.timeLevel_DDL, "hemopiezometer", "", low_level);
@ -5221,7 +5223,8 @@ public class StatisticsESService {
                grantSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_85, SaveModel.timeLevel_DDL, "glucometer");
                bindingSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_86, SaveModel.timeLevel_DDL, "glucometer");
                allCountSql = "SELECT COUNT(*) FROM device.wlyy_devices d where device_name like '%血糖%' " + areaCondition;
                useSaveModel = elasticsearchUtil.findDateQuotaLevel1(mondayTime, timeKey, area, level, index_87, SaveModel.timeLevel_ZL, "glucometer", null, null);
                startUseSaveModel = elasticsearchUtil.findDateQuotaLevel1(mondayTime, mondayTime, area, level, index_87, SaveModel.timeLevel_DDL, "glucometer", null, null);
                endUseSaveModel = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index_87, SaveModel.timeLevel_DDL, "glucometer", null, null);
                anomalySaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_88, SaveModel.timeLevel_DDL, "glucometer");
                anomalyCountSql = " SELECT COUNT(i.id) FROM device.wlyy_patient_health_index i left join device.wlyy_devices d on i.device_sn=d.device_code where i.type =2 and i.status=1 and i.del=1 " + areaCondition;
                allAmountList = elasticsearchUtil.findDateQuotaLevel1(timeKey, timeKey, area, level, index_85, SaveModel.timeLevel_DDL, "glucometer", "", low_level);
@ -5232,9 +5235,10 @@ public class StatisticsESService {
                grantSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, index_85, SaveModel.timeLevel_DDL);
                bindingSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, index_86, SaveModel.timeLevel_DDL);
                anomalySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, index_88, SaveModel.timeLevel_DDL);
                allCountSql = "SELECT COUNT(*) FROM device.wlyy_devices d " + areaCondition;
                allCountSql = "SELECT COUNT(*) FROM device.wlyy_devices d where 1=1 " + areaCondition;
                anomalyCountSql = " SELECT COUNT(i.id) FROM device.wlyy_patient_health_index i left join device.wlyy_devices d on i.device_sn=d.device_code where  i.status=1 and i.del=1 " + areaCondition;
                useSaveModel = elasticsearchUtil.findDateQuotaLevel0(mondayTime, timeKey, area, level, index_87, SaveModel.timeLevel_ZL, null, null);
                startUseSaveModel = elasticsearchUtil.findDateQuotaLevel0(mondayTime, mondayTime, area, level, index_87, SaveModel.timeLevel_DDL, null, null);
                endUseSaveModel = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index_87, SaveModel.timeLevel_DDL, null, null);
                allAmountList = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index_85, SaveModel.timeLevel_DDL, "", low_level);
                bindingAmountList = elasticsearchUtil.findDateQuotaLevel0(timeKey, timeKey, area, level, index_86, SaveModel.timeLevel_DDL, "", low_level);
@ -5255,9 +5259,10 @@ public class StatisticsESService {
            resultMap.put("totalGrantRange", 0.0 + "%");//发放率
            resultMap.put("totalBindingRange", 0.0 + "%");//绑定率
        }
        Double totalUseAccount = useSaveModel.size() > 0 ? useSaveModel.get(0).getResult1() : 0.0;
        resultMap.put("totalUse", totalUseAccount);//本周使用量
        Double startTotalUseAccount = startUseSaveModel.size() > 0 ? startUseSaveModel.get(0).getResult1() : 0.0;
        Double endTotalUseAccount = endUseSaveModel.size() > 0 ? endUseSaveModel.get(0).getResult1() : 0.0;
        Double totalUseAccount = endTotalUseAccount-startTotalUseAccount;
        resultMap.put("totalUse", endTotalUseAccount-startTotalUseAccount);//本周使用量
        if (grantSaveModel.getResult1() > 0) {
            resultMap.put("totalUseRange", df.format(totalUseAccount > 0.0 ? ((totalUseAccount) / (grantSaveModel.getResult1() * 1.0000) * 100) : 0.0) + "%");//本周使用率
        } else {
@ -5353,10 +5358,10 @@ public class StatisticsESService {
    //i健康活动统计1.4.8版本
    public Map<String, Object> statisticsActivity(String area, int level, int sort,String lowLevel,String slaveKey1) throws Exception {
        Map<String, Object> resultMap = new HashMap<>();
        String index_89 = "89";//健康银行全部活动人数统计指标
        String index_89 = "89";//健康银行某个活动报名数(人次)
        String index_91 = "91";//健康银行全部活动报名数(人)
        String index_1 = "1";//签约已缴费指标(总人数按签约人数计算)
        String index_91 = "91";//健康银行活动报名数
        String index_92 = "92";//健康银行活动报名数
        String index_92 = "92";//健康银行活动参与数(人次)
        String timeKey = DateUtil.getStringDateShort();//当前时间
        String areaCondition = "";
        String areaCondition2 = "";
@ -5374,25 +5379,36 @@ public class StatisticsESService {
        String activitySql = "select count(1) from wlyy_health_bank_activity d where d.status=1  " + areaCondition;
        Integer activityCount = jdbcTemplate.queryForObject(activitySql, Integer.class);//发布活动数
        //活动用户总量
        SaveModel activitySaveModel = null;
        SaveModel activitySaveModel = null;//活动报名人次总量
        SaveModel participantSaveModel = null;//活动参与人次总量
        if(StringUtils.isNotEmpty(slaveKey1)){
            activitySaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_89, SaveModel.timeLevel_DDL,slaveKey1);
            participantSaveModel = elasticsearchUtil.findOneDateQuotaLevel1(timeKey, area, level, index_92, SaveModel.timeLevel_DDL,slaveKey1);
            resultMap = applyList(index_1,index_89,area,level, sort,lowLevel,slaveKey1,resultMap);//列表
        }else{
            activitySaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, index_89, SaveModel.timeLevel_DDL);
            participantSaveModel = elasticsearchUtil.findOneDateQuotaLevel0(timeKey, area, level, index_92, SaveModel.timeLevel_DDL);
            resultMap = applyList(index_1,index_91,area,level, sort,lowLevel,slaveKey1,resultMap);//列表
        }
        resultMap = applyList(index_1,index_91,area,level, sort,lowLevel,slaveKey1,resultMap);//列表
        if(StringUtils.isNotEmpty(slaveKey1)){
        if(!StringUtils.isNotEmpty(slaveKey1)){
            resultMap.put("activityCount",activityCount);//发布活动数
            resultMap.put("participantCount",participantSaveModel!=null?participantSaveModel.getResult1().intValue():0);//参与活动人数
        }else{
            String dayStart =  DateUtil.dateToStrLong(new Date(DateUtil.getDayStartTime(new Date()).getTime()));
            String currentTime  = DateUtil.getStringDate();
            String sql = " select count(1) from health_bank.wlyy_health_bank_active_record r join wlyy.wlyy_admin_team t on r.team_id=t.id where r.create_time>='"+dayStart+"' and r.create_time<='"+currentTime+"' r.activity_id='"+slaveKey1+"' "+areaCondition2;
            Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
            resultMap.put("dayActiveCount",count!=null?count.intValue():0);//今日活跃量
            resultMap.put("activityPatient",activitySaveModel.getResult1().intValue());//单个活动报名人数
        }
        resultMap.put("activityPatient",activitySaveModel.getResult1().intValue());//活动用户总量
        //居民活跃统计
        resultMap.put("activityPatientRange","80%");//已报名
        resultMap.put("participantRange","60%");//已参与
        resultMap.put("expiryRange","20%");//已兑奖
        return resultMap;
    }

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/message/DoctorMessageController.java

@ -245,7 +245,7 @@ public class DoctorMessageController extends BaseController {
    @ApiOperation("获取超标指标消息--根据患者分组")
    public String getHealthIndexMessage() throws Exception {
        try {
            List<Map<String, Object>> list = messageService.getHealthIndexMessage(getUID());     //"D20161008003"
            Map<String,List<Map<String, Object>>> list = messageService.getHealthIndexMessage(getUID());     //"D20161008003"
            return write(200, "获取超标指标消息成功", "data", list);
        } catch (Exception ex) {

+ 65 - 12
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java

@ -2177,7 +2177,7 @@ public class EsStatisticsController extends BaseController {
    @ApiOperation("设备绑定统计")
    @ResponseBody
    public String lowlevel_device(
            @RequestParam(required = false) String deviceType,//1血压 2血糖 不传是所有设备
            @RequestParam(required = false,defaultValue = "") String deviceType,//1血压 2血糖 不传是所有设备
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) int sort,
@ -2204,13 +2204,14 @@ public class EsStatisticsController extends BaseController {
    @RequestMapping("/lowlevel_activity")
    @ApiOperation("健康银行活动统计")
    @ResponseBody
    public String lowlevel_activity(@RequestParam(required = false) String activityCode,
                                    @RequestParam(required = true) String area,
                                    @RequestParam(required = true) int level,
                                    @RequestParam(required = true) int sort,
                                    @RequestParam(required = false) String lowLevel,
    public String lowlevel_activity(@ApiParam(name = "id", value = "活动id") @RequestParam(required = false) String activityCode,
                                    @ApiParam(name = "area", value = "地区code") @RequestParam(required = true) String area,
                                    @ApiParam(name = "level", value = "地区级别,1 团队,2 机构,3 区,4 市") @RequestParam(required = true) int level,
                                    @ApiParam(name = "sort", value = "排序 1倒叙 2是 正序")@RequestParam(required = true) int sort,
                                    @ApiParam(name = "lowLevel", value = "(下一个级别)只有可能是 1,2,3,不传默认是level-1;") @RequestParam(required = false) String lowLevel,
                                    @RequestParam(required = false) String year){
        try{
            level = elasticsearchUtil.changeLevel(level);
            Map<String, Object> resultMap = statisticsESService.statisticsActivity(area,level,sort,lowLevel,activityCode);
            return write(200, "查询成功", "data", resultMap);
        }catch (Exception e){
@ -2219,16 +2220,17 @@ public class EsStatisticsController extends BaseController {
        }
    }
    @RequestMapping("/getAllAtivity")
    @RequestMapping(value = "/getAllAtivity",method = RequestMethod.GET)
    @ApiOperation("获取所有活动信息")
    @ResponseBody
    public String getAllAtivity(@ApiParam(name = "id", value = "活动id")
                                @RequestParam(value = "id", required = false)String id,
                                @ApiParam(name = "area", value = "地区code")
                                @RequestParam(value = "area", required = true)String area,
                                @RequestParam(value = "area", required = false)String area,
                                @ApiParam(name = "level", value = "地区级别,1 团队,2 机构,3 区,4 市")
                                @RequestParam(value = "level", required = true)int level){
                                @RequestParam(value = "level", required = false)int level){
        try{
            level = elasticsearchUtil.changeLevel(level);
            List<Map<String, Object>> list = statisticsESService.getAllAtivity(id,area,level);
            return write(200, "查询成功", "data", list);
        }catch (Exception e){
@ -2249,7 +2251,7 @@ public class EsStatisticsController extends BaseController {
     * @param year      查询年份
     * @return
     */
    @RequestMapping(value = "/activity_increase")
    @RequestMapping(value = "/activity_increase",method = RequestMethod.GET)
    @ResponseBody
    public String activityIncrease(@RequestParam(required = true) String startDate,
                                     @RequestParam(required = true) String endDate,
@ -2289,7 +2291,7 @@ public class EsStatisticsController extends BaseController {
     * @param year      查询年份
     * @return
     */
    @RequestMapping(value = "/active_statistics")
    @RequestMapping(value = "/active_statistics",method = RequestMethod.GET)
    @ResponseBody
    public String activeStatistics(@RequestParam(required = true) String startDate,
                                   @RequestParam(required = true) String endDate,
@ -2307,7 +2309,7 @@ public class EsStatisticsController extends BaseController {
                year =  Constant.getNowYearByDate(endDate);
            }
            JSONObject json = statisticsESService.getDateTotal(startDate, endDate, interval, area, level, "90", lowCode, year,SaveModel.timeLevel_ZL);
            result.put("index_89", json);
            result.put("index_90", json);
            return write(200, "查询成功!", "data", result);
@ -2317,5 +2319,56 @@ public class EsStatisticsController extends BaseController {
        }
    }
    /**
     * 报名量与活跃度到达量曲线
     *
     * @param startDate 起始日期
     * @param endDate   结束时间
     * @param interval  时间间隔
     * @param area      区域或机构
     * @param level     级别
     * @param activityCode   子维度
     * @param year      查询年份
     * @return
     */
    @RequestMapping(value = "/active_apply_statistics",method = RequestMethod.GET)
    @ResponseBody
    public String applyAndactiveStatistics(@ApiParam(name = "startDate", value = "开始时间") @RequestParam(required = true) String startDate,
                                           @ApiParam(name = "endDate", value = "结束时间") @RequestParam(required = true) String endDate,
                                           @ApiParam(name = "interval", value = "1日 2周 3月") @RequestParam(required = true) int interval,
                                           @ApiParam(name = "area", value = "地区") @RequestParam(required = true) String area,
        //                                   @RequestParam(required = true) String index,
                                           @ApiParam(name = "level", value = "地区级别,1 团队,2 机构,3 区,4 市") @RequestParam(required = true) int level,
                                           @ApiParam(name = "activityCode", value = "活动的id") @RequestParam(required = false) String activityCode,
                                           @RequestParam(required = false) String year) {
        try {
            level = elasticsearchUtil.changeLevel(level);
            JSONObject result = new JSONObject();
//            JSONObject json = statisticsESService.getDateTotal(startDate, endDate, interval, area, level, "90", lowCode, year,SaveModel.timeLevel_ZL);
//            result.put("index_89", json);
            String index = "";
            if(StringUtils.isNotEmpty(activityCode)){
                index="91,90";
            }else{
                index="89,90";
            }
            if (index != null) {
                if (org.springframework.util.StringUtils.isEmpty(year)) {
                    year =  Constant.getNowYearByDate(endDate);
                }
                String[] indexes = index.split(",");
                for (String idx : indexes) {
                    JSONObject json = statisticsESService.getDateTotal(startDate, endDate, interval, area, level, idx, activityCode, year,SaveModel.timeLevel_DDL);
                    result.put("index_"+idx, json);
                }
            }
            return write(200, "查询成功!", "data", result);
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1, "查询失败!");
        }
    }
}