ソースを参照

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

8 年 前
コミット
9e53c5deb9

+ 0 - 40
CacheCleanJob.java

@ -1,40 +0,0 @@
package com.yihu.wlyy.statistics.job.cache;
import com.yihu.wlyy.statistics.etl.mycache.CachePool;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Created by Administrator on 2016.10.19.
 */
@Component
@Scope("prototype")
public class CacheCleanJob implements Job {
    public static String jobKey="CLEAN_CACHE_JOB";
    public static String cron="0 55 23 * * ?";
    @Autowired
    private DBStorage dbStorage;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        QuartzJobLog quartzJobLog = new QuartzJobLog();
        quartzJobLog.setJobStartTime(new Date());
        quartzJobLog.setJobId(jobKey);
        quartzJobLog.setJobName(jobKey);
        CachePool.cleanAllCache();
        quartzJobLog.setJobEndTime(new Date());
        quartzJobLog.setJobContent("清空缓存成功:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        quartzJobLog.setJobType("1");
        dbStorage.saveLog(quartzJobLog);
    }
}

+ 24 - 0
patient-co-wlyy/readme.MD

@ -0,0 +1,24 @@
doc 项目相关文档
src 代码
    main
        java
            com.yihu.wlyy
                aop 切面相关代码
                config 配置相关代码
                entity jpa 实体类相关代码
                event 事件相关代码
                exception 异常相关代码
                health 体征设备相关代码
                interceptors 拦截器相关代码
                job 任务相关代码
                logs 日志相关代码
                repository dao相关代码
                rest 
                service 服务类相关代码
                task 线程相关代码
                util 工具类相关代码
                web controller相关代码
                wechat 微信相关代码
        resource 资源和配置文件
        webapp  web相关代码

+ 2 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthIndexService.java

@ -90,6 +90,7 @@ public class PatientHealthIndexService extends BaseService {
        Map<String, Object> map = new HashMap<>();
        for (Map<String, Object> device : devicePatient) {
            String time = device.get("record_date") == null ? null : device.get("record_date").toString();
            String deviceSN = device.get("device_sn") == null ? "0" : "1";
            String value1 = device.get("value1") == null ? null : device.get("value1").toString();
            String value2 = device.get("value2") == null ? null : device.get("value2").toString();
            String value3 = device.get("value3") == null ? null : device.get("value3").toString();
@ -97,6 +98,7 @@ public class PatientHealthIndexService extends BaseService {
            String value5 = device.get("value5") == null ? null : device.get("value5").toString();
            String value6 = device.get("value6") == null ? null : device.get("value6").toString();
            String value7 = device.get("value7") == null ? null : device.get("value7").toString();
            map.put("isDevice", deviceSN);
            if (StringUtils.isNotEmpty(time)) {
                Date date = sdf.parse(time);
                time = sdf.format(date);

+ 18 - 25
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/health/PatientHealthController.java

@ -42,14 +42,17 @@ public class PatientHealthController extends BaseController {
        try {
            List list = new ArrayList();
            String patient = getUID();
//            String patient = "test_4429a0a4138a281e7c6316eb9bd";
//            健康指标类型(1血糖,2血压,3体重,4腰围)
            Map map = healthIndexService.findDataByPatient(patient, 1);
            Map map1 = healthIndexService.findDataByPatient(patient, 2);
            Map map2 = healthIndexService.findDataByPatient(patient, 3);
            Map map3 = healthIndexService.findDataByPatient(patient, 4);
            if (map != null) {
//            血糖各个时间段取值
            if (map.size()!=0) {
                Map sugar = new HashMap();
                Object time = map.get("time");
                String isDevice = map.get("isDevice").toString();
                Object value1 = map.get("value1");
                Object value2 = map.get("value2");
                Object value3 = map.get("value3");
@ -58,6 +61,7 @@ public class PatientHealthController extends BaseController {
                Object value6 = map.get("value6");
                Object value7 = map.get("value7");
                sugar.put("type", 1);
                sugar.put("isDevice", isDevice);
                if (time!=null){
                    sugar.put("time", time);
                }
@ -90,9 +94,11 @@ public class PatientHealthController extends BaseController {
                }
                list.add(sugar);
            }
            if (map1 != null) {
//            血压  value1高压 value2低压 value3脉搏 value4心率不齐
            if (map1.size()!=0) {
                Map pa = new HashMap();
                Object time = map1.get("time");
                String isDevice = map1.get("isDevice").toString();
                Object value1 = map1.get("value1");
                Object value2 = map1.get("value2");
                Object value3 = map1.get("value3");
@ -101,6 +107,7 @@ public class PatientHealthController extends BaseController {
                Object value6 = map1.get("value6");
                Object value7 = map1.get("value7");
                pa.put("type", 2);
                pa.put("isDevice", isDevice);
                if (time!=null){
                    pa.put("time", time);
                }
@ -108,34 +115,30 @@ public class PatientHealthController extends BaseController {
                    pa.put("value1", value1);
                }
                if (value2!=null) {
                    pa.remove("value1");
                    pa.put("value2", value2);
                }
                if (value3!=null) {
                    pa.remove("value2");
                    pa.put("value3", value3);
                }
                if (value4!=null) {
                    pa.remove("value3");
                    pa.put("value4", value4);
                }
                if (value5!=null) {
                    pa.remove("value4");
                    pa.put("value5", value5);
                }
                if (value6!=null) {
                    pa.remove("value5");
                    pa.put("value6", value6);
                }
                if (value7!=null) {
                    pa.remove("value6");
                    pa.put("value7", value7);
                }
                list.add(pa);
            }
            if (map2 != null) {
//            体重 value1 体重
            if (map2.size()!=0) {
                Map weight = new HashMap();
                Object time = map2.get("time");
                String isDevice = map2.get("isDevice").toString();
                Object value1 = map2.get("value1");
                Object value2 = map2.get("value2");
                Object value3 = map2.get("value3");
@ -144,6 +147,7 @@ public class PatientHealthController extends BaseController {
                Object value6 = map2.get("value6");
                Object value7 = map2.get("value7");
                weight.put("type", 3);
                weight.put("isDevice", isDevice);
                if (time!=null){
                    weight.put("time", time);
                }
@ -151,34 +155,30 @@ public class PatientHealthController extends BaseController {
                    weight.put("value1", value1);
                }
                if (value2!=null) {
                    weight.remove("value1");
                    weight.put("value2", value2);
                }
                if (value3!=null) {
                    weight.remove("value2");
                    weight.put("value3", value3);
                }
                if (value4!=null) {
                    weight.remove("value3");
                    weight.put("value4", value4);
                }
                if (value5!=null) {
                    weight.remove("value4");
                    weight.put("value5", value5);
                }
                if (value6!=null) {
                    weight.remove("value5");
                    weight.put("value6", value6);
                }
                if (value7!=null) {
                    weight.remove("value6");
                    weight.put("value7", value7);
                }
                list.add(weight);
            }
            if (map3 != null) {
//            腰围 value1腰围
            if (map3.size()!=0) {
                Map waist = new HashMap();
                Object time = map3.get("time");
                String isDevice = map3.get("isDevice").toString();
                Object value1 = map3.get("value1");
                Object value2 = map3.get("value2");
                Object value3 = map3.get("value3");
@ -187,6 +187,7 @@ public class PatientHealthController extends BaseController {
                Object value6 = map3.get("value6");
                Object value7 = map3.get("value7");
                waist.put("type", 4);
                waist.put("isDevice", isDevice);
                if (time!=null){
                    waist.put("time", time);
                }
@ -194,27 +195,21 @@ public class PatientHealthController extends BaseController {
                    waist.put("value1", value1);
                }
                if (value2!=null) {
                    waist.remove("value1");
                    waist.put("value2", value2);
                }
                if (value3!=null) {
                    waist.remove("value2");
                    waist.put("value3", value3);
                }
                if (value4!=null) {
                    waist.remove("value3");
                    waist.put("value4", value4);
                }
                if (value5!=null) {
                    waist.remove("value4");
                    waist.put("value5", value5);
                }
                if (value6!=null) {
                    waist.remove("value5");
                    waist.put("value6", value6);
                }
                if (value7!=null) {
                    waist.remove("value6");
                    waist.put("value7", value7);
                }
                list.add(waist);
@ -402,8 +397,7 @@ public class PatientHealthController extends BaseController {
                                               @ApiParam(name = "end", value = "结束时间", defaultValue = "2016-09-23 00:00:00")
                                               @RequestParam(value = "end", required = true) String end) {
        try {
//            List<DevicePatientHealthIndex> list = healthIndexService.findChartByPatien(getUID(), type, begin, end);
            List<DevicePatientHealthIndex> list = healthIndexService.findChartByPatien("test_4429a0a4138a281e7c6316eb9bd", type, begin, end);
            List<DevicePatientHealthIndex> list = healthIndexService.findChartByPatien(getUID(), type, begin, end);
            if (list == null) {
                return success("查询成功!");
            }
@ -456,7 +450,6 @@ public class PatientHealthController extends BaseController {
                                          @RequestParam(value = "pagesize", required = true) int pagesize) {
        try {
            List<DevicePatientHealthIndex> list = healthIndexService.findIndexByPatient(getUID(), type, start, end, page, pagesize);
            System.out.println("<===========================================>");
            JSONArray jsonArray = new JSONArray();
            if (list != null) {
                for (DevicePatientHealthIndex model : list) {

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

@ -74,7 +74,7 @@ public class StatisticsController extends BaseController {
            if (index != null) {
                for (String idx : indexes) {
                    result.put("index_" + idx, statisticsService.getDateIncrementDetail(startDate, endDate, interval, area, level,idx,level2_type));
                    result.put("index_" + idx, statisticsService.getDateIncrementDetail(startDate, endDate, interval, area, level, idx, level2_type));
                }
            }
@ -119,11 +119,11 @@ public class StatisticsController extends BaseController {
    /**
     * 指标截止日期累积量
     *
     * @param endDate 结束时间
     * @param area 父code
     * @param level 等级  1 团队,2 机构,3 区,4 市
     * @param index 指标代码
     * @param level2_type  指标代码 例如性别 1 男 2 女  不传就返回男和女的总和
     * @param endDate     结束时间
     * @param area        父code
     * @param level       等级  1 团队,2 机构,3 区,4 市
     * @param index       指标代码
     * @param level2_type 指标代码 例如性别 1 男 2 女  不传就返回男和女的总和
     * @return
     */
    @RequestMapping("/total")
@ -138,7 +138,7 @@ public class StatisticsController extends BaseController {
            JSONObject result = new JSONObject();
            for (String idx : indexes) {
                result.put("index_" + idx, statisticsService.getTotalAmount(endDate, area, level, idx,level2_type));
                result.put("index_" + idx, statisticsService.getTotalAmount(endDate, area, level, idx, level2_type));
            }
            return write(200, "查询成功", "data", result);
@ -184,13 +184,13 @@ public class StatisticsController extends BaseController {
    /**
     * 指标截止日期增量
     *
     * @param endDate 结束时间
     * @param area 父code
     * @param level 等级  1 团队,2 机构,3 区,4 市
     * @param index 指标代码
     * @param sort 排序 1倒叙 2是 正序
     * @param endDate     结束时间
     * @param area        父code
     * @param level       等级  1 团队,2 机构,3 区,4 市
     * @param index       指标代码
     * @param sort        排序 1倒叙 2是 正序
     * @param lowLevel
     * @param level2_type  指标代码 例如性别 1 男 2 女  不传就返回男和女的总和
     * @param level2_type 指标代码 例如性别 1 男 2 女  不传就返回男和女的总和
     * @return
     */
    @RequestMapping("/lowlevel_total")
@ -207,7 +207,7 @@ public class StatisticsController extends BaseController {
            JSONObject result = new JSONObject();
            for (String idx : indexes) {
                result.put("index_" + idx, statisticsService.getLowLevelTotalDetail(endDate, area, level, idx, sort, lowLevel,level2_type));
                result.put("index_" + idx, statisticsService.getLowLevelTotalDetail(endDate, area, level, idx, sort, lowLevel, level2_type));
            }
            return write(200, "查询成功", "data", result);
@ -240,39 +240,56 @@ public class StatisticsController extends BaseController {
            JSONArray returnJa = new JSONArray();
            List<JSONArray> jsonArrays = new ArrayList<>();
            JSONArray jsonArray1 = statisticsService.getLowLevelTotalDetail(endDate, area, level, indexes[0], sort, lowLevel,null);
            JSONArray jsonArray1 = statisticsService.getLowLevelTotalDetail(endDate, area, level, indexes[0], sort, lowLevel, null);
            jsonArrays.add(jsonArray1);
            JSONArray jsonArray2 = statisticsService.getLowLevelIncrementDetail(endDate, endDate, area, level, indexes[1], sort, lowLevel);
            jsonArrays.add(jsonArray2);
            //遍历合并2个指标中key值一样的
            for (int i = 0; i < jsonArrays.get(0).length(); i++) {
                if (jsonArrays.get(1).length() == 0) {
            if (jsonArrays.get(1).length() == 0) {
                //如果只有一个指标的时候 另外一个指标默认是0
                for (int i = 0; i < jsonArrays.get(0).length(); i++) {
                    //未回复咨询不存在的时候默认是0
                    JSONObject map1 = jsonArrays.get(0).getJSONObject(i);
                    String amount = map1.get("amount").toString() + ",0";
                    map1.put("amount", amount);
                    returnJa.put(map1);
                } else {
                    for (int j = 0; j < jsonArrays.get(1).length(); j++) {
                        JSONObject map1 = jsonArrays.get(0).getJSONObject(i);
                        JSONObject map2 = jsonArrays.get(1).getJSONObject(j);
                        String amount = "";
                        if (map1.get("code").equals(map2.get("code"))) {
                            amount = map1.get("amount").toString() + "," + map2.get("amount").toString();
                            map1.put("amount", amount);
                            returnJa.put(map1);
                        }
                    }
                }
            } else {
                //如果是2个指标的时候,分别放入map中,以减少查询次数
                Map<String,JSONObject> index1=new HashMap<>();
                Map<String,JSONObject> index2=new HashMap<>();
                for (int i = 0; i < jsonArrays.get(0).length(); i++) {
                    JSONObject map1 = jsonArrays.get(0).getJSONObject(i);
                    index1.put(map1.get("code").toString(),map1);
                }
                for (int i = 0; i < jsonArrays.get(1).length(); i++) {
                    JSONObject map1 = jsonArrays.get(1).getJSONObject(i);
                    index2.put(map1.get("code").toString(),map1);
                }
                for(Map.Entry<String , JSONObject> one:index1.entrySet()){
                    JSONObject map1 = one.getValue();
                    JSONObject map2 = index2.get(one.getKey());
                    String amount = map1.get("amount").toString() + "," + map2.get("amount").toString();
                    map1.put("amount", amount);
                    returnJa.put(map1);
                }
            }
            result.put("index_" + indexes[0], returnJa);
            return write(200, "查询成功", "data", result);
        } catch (Exception e) {
        } catch (
                Exception e
                )
        {
            e.printStackTrace();
            return error(-1, "查询失败");
        }
    }
    /**
@ -450,6 +467,7 @@ public class StatisticsController extends BaseController {
            return error(-1, "查询失败");
        }
    }
    /**
     * 获取三师转签或高危人群
     *
@ -572,13 +590,13 @@ public class StatisticsController extends BaseController {
    @RequestMapping("/Consulting_StatList")
    @ResponseBody
    public String getConsultingStatisticsList(@RequestParam(required = true) Integer level,
                                               @RequestParam(required = true) String area ,
                                               @RequestParam(required = false) String lowlevel) {
                                              @RequestParam(required = true) String area,
                                              @RequestParam(required = false) String lowlevel) {
        try {
            JSONObject data = statisticsService.getConsultingStatisticsList(level,area,lowlevel);
            if(data!=null){
            JSONObject data = statisticsService.getConsultingStatisticsList(level, area, lowlevel);
            if (data != null) {
                return write(200, "查询成功", "data", data);
            }else{
            } else {
                return error(-1, "查询失败");
            }
        } catch (Exception e) {
@ -599,12 +617,12 @@ public class StatisticsController extends BaseController {
    @RequestMapping("/Consulting_Title")
    @ResponseBody
    public String getConsultingTitle(@RequestParam(required = true) Integer level,
                                      @RequestParam(required = true) String area) {
                                     @RequestParam(required = true) String area) {
        try {
            JSONObject data = statisticsService.getConsultingTitle(level,area);
            if(data!=null){
            JSONObject data = statisticsService.getConsultingTitle(level, area);
            if (data != null) {
                return write(200, "查询成功", "data", data);
            }else{
            } else {
                return error(-1, "查询失败");
            }
        } catch (Exception e) {
@ -614,15 +632,16 @@ public class StatisticsController extends BaseController {
    /**
     * 获取回复数时间分布数
     *
     * @param level
     * @param area
     * @return
     */
    @RequestMapping("/getCoutListByTime")
    @ResponseBody
    public String getCoutListByTime(@RequestParam(required = true)String level,@RequestParam(required = true) String area){
    public String getCoutListByTime(@RequestParam(required = true) String level, @RequestParam(required = true) String area) {
        try {
            return write(200, "查询成功", "data", statisticsService.getCoutListByTime(level,area));
            return write(200, "查询成功", "data", statisticsService.getCoutListByTime(level, area));
        } catch (Exception e) {
            return error(-1, "查询失败");
        }

+ 2 - 2
patient-co-wlyy/src/main/resources/config/fdfs_client.conf

@ -6,10 +6,10 @@ http.anti_steal_token = no
http.secret_key = FastDFS1234567890
#-------------开发环境---------------#
tracker_server = 172.19.103.54:22122
#tracker_server = 172.19.103.54:22122
#-------------测试环境---------------#
#tracker_server = 172.19.103.54:22122
#-------------正式环境---------------#
#tracker_server = 192.168.0.239:22122
tracker_server = 192.168.0.239:22122

+ 11 - 0
readme.MD

@ -0,0 +1,11 @@
patient-co-analysis  数据采集分析项目
    主要功能是监听kafka解析日志并且入库到mongodb
    
patient-co-figure 居民画像项目
    
patient-co-statistics 统计项目
    生成各种类统计指标
    
patient-co-wlyy
    i健康后台项目 包括医生端与患者端