LAPTOP-KB9HII50\70708 3 年之前
父節點
當前提交
2f85e5d46e

+ 3 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/security/BaseEmergencyWarnLogDao.java

@ -24,4 +24,7 @@ public interface BaseEmergencyWarnLogDao extends PagingAndSortingRepository<Base
    @Query("select w from BaseEmergencyWarnLogDO w where w.orderId = ?1 and w.type = ?2")
    @Query("select w from BaseEmergencyWarnLogDO w where w.orderId = ?1 and w.type = ?2")
    List<BaseEmergencyWarnLogDO> findByOrderIdAndType(String orderId,Integer type);
    List<BaseEmergencyWarnLogDO> findByOrderIdAndType(String orderId,Integer type);
    @Query("select w from BaseEmergencyWarnLogDO w where w.orderId = ?1 and w.ext1 = ?2")
    List<BaseEmergencyWarnLogDO> findByOrderIdAndExt1(String orderId,String ext1);
}
}

+ 4 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/assistance/EmergencyAssistanceEndpoint.java

@ -377,9 +377,11 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            @ApiParam(value = "类型 8发起im会话,9发起音视频通话", name = "type")
            @ApiParam(value = "类型 8发起im会话,9发起音视频通话", name = "type")
            @RequestParam(value = "type", required = true) Integer type,
            @RequestParam(value = "type", required = true) Integer type,
            @ApiParam(value = "内容", required = false, name = "content")
            @ApiParam(value = "内容", required = false, name = "content")
            @RequestParam(value = "content", required = false) String content) {
            @RequestParam(value = "content", required = false) String content,
            @ApiParam(value = "音视频唯一标识", required = false, name = "ext1")
            @RequestParam(value = "ext1", required = false) String ext1) {
        try {
        try {
            assistanceService.addWarnLog(sessionId, doctor,type,content);
            assistanceService.addWarnLog(sessionId, doctor,type,content,ext1);
            return Envelop.getSuccess("操作成功");
            return Envelop.getSuccess("操作成功");
        } catch (Exception e) {
        } catch (Exception e) {
            return failedException2(e);
            return failedException2(e);

+ 6 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java

@ -613,6 +613,8 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
                                                 @RequestParam(value = "name", required = false) String name,
                                                 @RequestParam(value = "name", required = false) String name,
                                                 @ApiParam(name = "deviceSn", value = "设备Sn码", required = false)
                                                 @ApiParam(name = "deviceSn", value = "设备Sn码", required = false)
                                                 @RequestParam(value = "deviceSn", required = false) String deviceSn,
                                                 @RequestParam(value = "deviceSn", required = false) String deviceSn,
                                                 @ApiParam(name = "teamId", value = "社区id、团队id", required = false)
                                                 @RequestParam(value = "teamId", required = false) String teamId,
                                                 @ApiParam(name = "categoryCode", value = "设备类型Code", required = false)
                                                 @ApiParam(name = "categoryCode", value = "设备类型Code", required = false)
                                                 @RequestParam(value = "categoryCode", required = false) String categoryCode,
                                                 @RequestParam(value = "categoryCode", required = false) String categoryCode,
                                                 @ApiParam(name = "contactStatus",value = "在线状态 1在线,0不在线",required = false)
                                                 @ApiParam(name = "contactStatus",value = "在线状态 1在线,0不在线",required = false)
@ -621,7 +623,7 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
                                                 @RequestParam(value = "type",required = false)String type){
                                                 @RequestParam(value = "type",required = false)String type){
        try {
        try {
            return statisticsService.healthySecurityDeviceList(name,deviceSn,categoryCode,contactStatus,type,page,size);
            return statisticsService.healthySecurityDeviceList(name,deviceSn,teamId,categoryCode,contactStatus,type,page,size);
        } catch (Exception e) {
        } catch (Exception e) {
            e.printStackTrace();
            e.printStackTrace();
            return failedPageEnvelopException2(e);
            return failedPageEnvelopException2(e);
@ -634,10 +636,12 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "获取设备数量")
    @ApiOperation(value = "获取设备数量")
    public ObjEnvelop deviceinfoStatisticsNum(@ApiParam(name = "type",value = "设备类型0健康 1安防",required = true)
    public ObjEnvelop deviceinfoStatisticsNum(@ApiParam(name = "type",value = "设备类型0健康 1安防",required = true)
                                              @RequestParam(value = "type",required = true)String type,
                                              @RequestParam(value = "type",required = true)String type,
                                              @ApiParam(name = "teamId", value = "社区id、团队id", required = false)
                                              @RequestParam(value = "teamId", required = false) String teamId,
                                              @ApiParam(name = "deviceCategory",value = "设备code",required = false)
                                              @ApiParam(name = "deviceCategory",value = "设备code",required = false)
                                              @RequestParam(value = "deviceCategory",required = false)String deviceCategory){
                                              @RequestParam(value = "deviceCategory",required = false)String deviceCategory){
        try {
        try {
            JSONObject jsonObject = statisticsService.deviceinfoStatisticsNum(type,deviceCategory);
            JSONObject jsonObject = statisticsService.deviceinfoStatisticsNum(type,deviceCategory,teamId);
            return success(jsonObject);
            return success(jsonObject);
        } catch (Exception e) {
        } catch (Exception e) {
            e.printStackTrace();
            e.printStackTrace();

+ 5 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/assistance/EmeAsEndpoint.java

@ -75,10 +75,12 @@ public class EmeAsEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "doctor", required = true) String doctor,
            @RequestParam(value = "doctor", required = true) String doctor,
            @ApiParam(value = "类型 8发起im会话,9发起音视频通话", name = "type")
            @ApiParam(value = "类型 8发起im会话,9发起音视频通话", name = "type")
            @RequestParam(value = "type", required = true) Integer type,
            @RequestParam(value = "type", required = true) Integer type,
            @ApiParam(value = "复核内容", required = false, name = "content")
            @RequestParam(value = "content", required = false) String content) {
            @ApiParam(value = "内容", required = false, name = "content")
            @RequestParam(value = "content", required = false) String content,
            @ApiParam(value = "音视频唯一标识", required = false, name = "ext1")
            @RequestParam(value = "ext1", required = false) String ext1) {
        try {
        try {
            assistanceService.addWarnLog(sessionId, doctor,type,content);
            assistanceService.addWarnLog(sessionId, doctor,type,content,ext1);
            return Envelop.getSuccess("操作成功");
            return Envelop.getSuccess("操作成功");
        } catch (Exception e) {
        } catch (Exception e) {
            return failedException2(e);
            return failedException2(e);

+ 0 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/platForm/PatientInfoPlatFormEndpoint.java

@ -463,8 +463,6 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
                                 @ApiParam(name = "orderType",value = "20紧急呼叫22安防工单")
                                 @ApiParam(name = "orderType",value = "20紧急呼叫22安防工单")
                                 @RequestParam(value = "orderType") String orderType) {
                                 @RequestParam(value = "orderType") String orderType) {
        try {
        try {
            JSONObject emergencyAssistanceProcess = assistanceService.getEmergencyAssistanceProcess(orderid, orderType);
            JSONObject emergencyAssistanceProcess = assistanceService.getEmergencyAssistanceProcess(orderid, orderType);
            if (null == emergencyAssistanceProcess) {
            if (null == emergencyAssistanceProcess) {
                return ObjEnvelop.getError("工单不存在",400 );
                return ObjEnvelop.getError("工单不存在",400 );

+ 35 - 22
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -1126,14 +1126,13 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    /**
    /**
     * 记录预警核实日志
     * 记录预警核实日志
     */
     */
    public void addWarnLog(String sessionId,String doctor,Integer type,String content){
    public void addWarnLog(String sessionId,String doctor,Integer type,String content,String ext1){
        BaseDoctorDO doctorDO = doctorDao.findById(doctor);
        BaseDoctorDO doctorDO = doctorDao.findById(doctor);
        if(doctorDO==null){
        if(doctorDO==null){
            return;
            return;
        }
        }
        String sql = "SELECT e.id from im_internet_hospital.topics t,wlyy_consult c,base_emergency_assistance_order e " +
                "WHERE t.session_id = ? and t.id = c.id " +
                "and c.relation_code = e.id and e.`status` = 1 " +
        String sql = "SELECT e.id from base_emergency_assistance_order e " +
                "WHERE e.session_id = ? and e.`status` = 1 " +
                "UNION " +
                "UNION " +
                "SELECT s.id from im_internet_hospital.topics t,wlyy_consult c,base_security_monitoring_order s " +
                "SELECT s.id from im_internet_hospital.topics t,wlyy_consult c,base_security_monitoring_order s " +
                "WHERE t.session_id = ? and t.id = c.id " +
                "WHERE t.session_id = ? and t.id = c.id " +
@ -1141,28 +1140,42 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql,new Object[]{sessionId,sessionId});
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql,new Object[]{sessionId,sessionId});
        for (Map<String,Object> map:list){
        for (Map<String,Object> map:list){
            String orderId = map.get("id")+"";
            String orderId = map.get("id")+"";
            List<BaseEmergencyWarnLogDO> logDOS = logDao.findByOrderIdAndType(orderId,type);
            if(logDOS.size()==0){
                //新增 type =8 9
                BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
                logDO.setUserCode(doctor);
                logDO.setUserName(doctorDO.getName());
                logDO.setOrderId(orderId);
                logDO.setUserType(2);
                logDO.setCreateTime(new Date());
                if(type==8){
            if(type==8){
                List<BaseEmergencyWarnLogDO> logDOS = logDao.findByOrderIdAndType(orderId,type);
                if(logDOS.size()==0){
                    //新增 type =8 9
                    BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
                    logDO.setUserCode(doctor);
                    logDO.setUserName(doctorDO.getName());
                    logDO.setOrderId(orderId);
                    logDO.setUserType(2);
                    logDO.setCreateTime(new Date());
                    logDO.setContent("发起im会话");
                    logDO.setContent("发起im会话");
                }else {
                    logDO.setType(type);
                    logDao.save(logDO);
                }
            }else {
                List<BaseEmergencyWarnLogDO> logDOS = logDao.findByOrderIdAndExt1(orderId,ext1);
                if(logDOS.size()==0){
                    BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
                    logDO.setUserCode(doctor);
                    logDO.setUserName(doctorDO.getName());
                    logDO.setOrderId(orderId);
                    logDO.setUserType(2);
                    logDO.setCreateTime(new Date());
                    logDO.setContent(content);
                    logDO.setContent(content);
                    logDO.setType(type);
                    logDO.setExt1(ext1);
                    logDao.save(logDO);
                }else if(type==9){
                    //更新9
                    BaseEmergencyWarnLogDO logDO = logDOS.get(0);
                    logDO.setContent(content);
                    logDao.save(logDO);
                }
                }
                logDO.setType(type);
                logDao.save(logDO);
            }else if(type==9){
                //更新9
                BaseEmergencyWarnLogDO logDO = logDOS.get(0);
                logDO.setContent(content);
                logDao.save(logDO);
            }
            }
        }
        }
    }
    }

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

@ -3723,17 +3723,22 @@ public class StatisticsService {
    }
    }
    //健康设备-安防设备 列表
    //健康设备-安防设备 列表
    public PageEnvelop healthySecurityDeviceList(String name, String deviceSn, String categoryCode, String contactStatus, String type, Integer page, Integer size) {
    public PageEnvelop healthySecurityDeviceList(String name, String deviceSn,String teamId, String categoryCode, String contactStatus, String type, Integer page, Integer size) {
        String nameSql = "";
        String nameSql = "";
        String deviceSnSql = "";
        String deviceSnSql = "";
        String categoryCodeSql = "";
        String categoryCodeSql = "";
        String contactStatusSql = "";
        String contactStatusSql = "";
        String totalSql = "";
        String totalSql = "";
        String teamCodeSql = "";
        if (StringUtils.isNotBlank(contactStatus))
        if (StringUtils.isNotBlank(contactStatus))
            contactStatusSql = " AND wd.contact_status = '" + contactStatus + "'";
            contactStatusSql = " AND wd.contact_status = '" + contactStatus + "'";
        if (StringUtils.isNotBlank(name)) nameSql = " AND p.name LIKE '%" + name + "%'";
        if (StringUtils.isNotBlank(name)) nameSql = " AND p.name LIKE '%" + name + "%'";
        if (StringUtils.isNotBlank(deviceSn)) deviceSnSql = " AND pd.device_sn = '" + deviceSn + "'";
        if (StringUtils.isNotBlank(deviceSn)) deviceSnSql = " AND pd.device_sn = '" + deviceSn + "'";
        if(StringUtils.isNotBlank(teamId)){
            teamCodeSql += " INNER JOIN base_service_package_sign_record sr ON CONVERT( sr.patient USING utf8 ) = p.id AND sr.STATUS = 1 AND sr.`status` = 1 "+
                    " INNER JOIN base_service_package_record r ON sr.id = r.sign_id  and r.team_code = '"+teamId+"'";
        }
        String filter="AND pd.USER NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_user' OR dict_name = 'jkzl_older' ) AND dict_code IS NOT NULL ) ";
        String filter="AND pd.USER NOT IN ( SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE ( dict_name = 'jkzl_user' OR dict_name = 'jkzl_older' ) AND dict_code IS NOT NULL ) ";
        /*String sqltmp = " SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' OR dict_name ='jkzl_helper' OR dict_name= 'jkzl_olderRelative' OR dict_name ='jkzl_user') ";
        /*String sqltmp = " SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_child' or dict_name = 'jkzl_older' OR dict_name ='jkzl_helper' OR dict_name= 'jkzl_olderRelative' OR dict_name ='jkzl_user') ";
@ -3754,18 +3759,18 @@ public class StatisticsService {
            if (StringUtils.isNotBlank(categoryCode))
            if (StringUtils.isNotBlank(categoryCode))
                categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'";
                categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'";
            deviceSql = "SELECT p.id AS patient,pd.id AS id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,dd.photo,'健康设备' AS deviceType,p.`name`,p.mobile,p.phone,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " +
            deviceSql = "SELECT distinct p.id AS patient,pd.id AS id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,dd.photo,'健康设备' AS deviceType,p.`name`,p.mobile,p.phone,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " +
                    " FROM " +
                    " FROM " +
                    " wlyy_patient_device pd " +
                    " wlyy_patient_device pd " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN base_patient p ON pd.USER = p.id AND pd.del = 0 AND p.del = 1    " +
                    " INNER JOIN base_patient p ON pd.USER = p.id AND pd.del = 0 AND p.del = 1    " + teamCodeSql +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    "WHERE " +
                    "WHERE " +
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
            totalSql = "SELECT count(pd.id) FROM " +
            totalSql = "SELECT count(distinct pd.id) FROM " +
                    " wlyy_patient_device pd " +
                    " wlyy_patient_device pd " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN base_patient p ON pd.USER = p.id  AND pd.del = 0  AND p.del = 1  " +
                    " INNER JOIN base_patient p ON pd.USER = p.id  AND pd.del = 0  AND p.del = 1  " + teamCodeSql +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    " WHERE " +
                    " WHERE " +
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
@ -3777,18 +3782,18 @@ public class StatisticsService {
            if (StringUtils.isNotBlank(categoryCode))
            if (StringUtils.isNotBlank(categoryCode))
                categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'";
                categoryCodeSql = " AND pd.category_code = '" + categoryCode + "'";
            deviceSql = "SELECT p.id AS patient,pd.id AS id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,dd.photo,'安防设备' AS deviceType,p.`name`,p.mobile,p.phone,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " +
            deviceSql = "SELECT distinct p.id AS patient,pd.id AS id,pd.device_name AS deviceName,pd.device_sn AS deviceSn,dd.photo,'安防设备' AS deviceType,p.`name`,p.mobile,p.phone,wd.contact_status * 1 AS contactStatus,pd.category_code as categoryCode " +
                    " FROM " +
                    " FROM " +
                    " wlyy_patient_device pd " +
                    " wlyy_patient_device pd " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN base_patient p ON pd.USER = p.id AND pd.del = 0 AND p.del = 1    " +
                    " INNER JOIN base_patient p ON pd.USER = p.id AND pd.del = 0 AND p.del = 1    "+ teamCodeSql +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    "WHERE " +
                    "WHERE " +
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
            totalSql = "SELECT count(pd.id) FROM " +
            totalSql = "SELECT count(distinct pd.id) FROM " +
                    " wlyy_patient_device pd " +
                    " wlyy_patient_device pd " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN wlyy_devices wd ON pd.device_sn = wd.device_code " +
                    " INNER JOIN base_patient p ON pd.USER = p.id  AND pd.del = 0  AND p.del = 1  " +
                    " INNER JOIN base_patient p ON pd.USER = p.id  AND pd.del = 0  AND p.del = 1  " + teamCodeSql +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    " LEFT JOIN dm_device dd ON pd.category_code = dd.category_code " +
                    " WHERE " +
                    " WHERE " +
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
                    " 1=1 "+filter + nameSql + deviceSnSql + categoryCodeSql + contactStatusSql;
@ -3842,41 +3847,67 @@ public class StatisticsService {
    //获取设备
    //获取设备
    public JSONObject deviceinfoStatisticsNum(String type,String deviceCategory){
    public JSONObject deviceinfoStatisticsNum(String type,String deviceCategory,String teamId){
        JSONObject jsonObject = new JSONObject();
        JSONObject jsonObject = new JSONObject();
        String teamCodeSql = "";
        if(StringUtils.isNotBlank(teamId)){
            teamCodeSql += " INNER JOIN base_service_package_sign_record sr ON CONVERT( sr.patient USING utf8 ) = p.id AND sr.STATUS = 1 AND sr.`status` = 1 "+
                    " INNER JOIN base_service_package_record r ON sr.id = r.sign_id  and r.team_code = '"+teamId+"'";
        }
        //测试用户
        //测试用户
        String testUsqlSql = "SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_user' OR dict_name = 'jkzl_older' ) AND dict_code IS NOT NULL";
        String testUsqlSql = "SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' AND dict_code IS NOT NULL";
        //类型数量
        //类型数量
        String typeTotalSql = "SELECT count(DISTINCT category_code) AS total FROM dm_device WHERE 1=1 AND device_type = "+type+" AND del = 1 GROUP BY device_type";
        String typeTotalSql = "SELECT count(DISTINCT category_code) AS total FROM dm_device WHERE 1=1 AND device_type = "+type+" AND del = 1 GROUP BY device_type";
        if(StringUtils.isNotBlank(teamId)){
            typeTotalSql = "select count(distinct pd.category_code) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
                    "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + teamCodeSql +
                    "                where  pd.device_type = "+type+"  AND pd.user NOT IN ("+testUsqlSql+") ";
        }
        //离线设备数量
        //离线设备数量
        String offLineDeviceSql="select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
        String offLineDeviceSql="select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
                "                 INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " +
                "                 INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + teamCodeSql +
                "                where dev.contact_status=0  and pd.device_type = "+type+"  AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
                "                where dev.contact_status=0  and pd.device_type = "+type+"  AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
        //设备总数
        //设备总数
        String deviceTotalSql = "SELECT count(DISTINCT device_code) FROM wlyy_devices WHERE (device_code IS NOT NULL OR device_code <> '') AND device_type = "+type+"";
        String deviceTotalSql = "SELECT count(DISTINCT device_code) FROM wlyy_devices WHERE (device_code IS NOT NULL OR device_code <> '') AND device_type = "+type+"";
        if(StringUtils.isNotBlank(teamId)){
            deviceTotalSql = "select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
                    "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + teamCodeSql +
                    "                where  pd.device_type = "+type+"  AND pd.user NOT IN ("+testUsqlSql+") ";
        }
        //设备在线量
        //设备在线量
        String lineDeviceSql ="select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
        String lineDeviceSql ="select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
                "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " +
                "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + teamCodeSql +
                "                where dev.contact_status=1 and pd.device_type = 0  AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
                "                where dev.contact_status=1 and pd.device_type = 0  AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
        String deviceCategorySql = "";
        String deviceCategorySql = "";
        String categoryCodeSql = "";
        String categoryCodeTotalSql = "";
        if (StringUtils.isNotBlank(deviceCategory)){
        if (StringUtils.isNotBlank(deviceCategory)){
            deviceCategorySql = " AND device_category= '"+deviceCategory+"' ";
            deviceCategorySql = " AND device_category= '"+deviceCategory+"' ";
            categoryCodeSql = " AND category_code= '"+deviceCategory+"' ";
            categoryCodeTotalSql = " AND  pd.category_code = '"+deviceCategory+"' ";
        }
        }
        //七天使用      AND device_category= 4  手表
        //七天使用      AND device_category= 4  手表
        String sevenDayUseSql ="select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
        String sevenDayUseSql ="select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
                "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " +
                "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + teamCodeSql +
                "                where pd.device_type = "+type+"  AND EXISTS(SELECT 1 FROM device_data_push_log pl WHERE pl.device_sn = pd.device_sn "+deviceCategorySql+" AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= pl.create_time ) AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
                "                where pd.device_type = "+type+"  AND EXISTS(SELECT 1 FROM device_data_push_log pl WHERE pl.device_sn = pd.device_sn "+deviceCategorySql+" AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= pl.create_time ) AND pd.user NOT IN ("+testUsqlSql+") group by pd.device_type";
        //设备类型总数
        //设备类型总数
        String deviceCodeTotalSql ="SELECT count(DISTINCT device_code) FROM wlyy_devices WHERE (device_code IS NOT NULL OR device_code <> '') AND category_code = '"+deviceCategory+"'";
        String deviceCodeTotalSql ="SELECT count(DISTINCT device_code) FROM wlyy_devices WHERE (device_code IS NOT NULL OR device_code <> '') " + categoryCodeSql;
        if(StringUtils.isNotBlank(teamId)){
            deviceCodeTotalSql = "select count(distinct pd.device_sn) total from wlyy_patient_device pd INNER JOIN wlyy_devices dev on pd.device_sn = dev.device_code " +
                    "                INNER JOIN base_patient p on pd.user = p.id and pd.del=0 and p.del=1 " + teamCodeSql +
                    "                where pd.user NOT IN ("+testUsqlSql+") "+categoryCodeTotalSql;
        }
        //long start=System.currentTimeMillis();
        //long start=System.currentTimeMillis();
        List<Integer> total = jdbcTemplate.queryForList(typeTotalSql, Integer.class);
        List<Integer> total = jdbcTemplate.queryForList(typeTotalSql, Integer.class);
@ -3890,9 +3921,9 @@ public class StatisticsService {
        total = jdbcTemplate.queryForList(lineDeviceSql,Integer.class);
        total = jdbcTemplate.queryForList(lineDeviceSql,Integer.class);
        jsonObject.put("lineDevice",total.get(0));
        jsonObject.put("lineDevice",total.get(0));
        total = jdbcTemplate.queryForList(sevenDayUseSql,Integer.class);
        total = jdbcTemplate.queryForList(sevenDayUseSql,Integer.class);
        Integer deviceCodeTotal = jdbcTemplate.queryForObject(deviceCodeTotalSql,Integer.class);
        Float num = 0F;
        Float num = 0F;
        if (total.size()>0) {
        if (total.size()>0) {
            Integer deviceCodeTotal = jdbcTemplate.queryForObject(deviceCodeTotalSql,Integer.class);
            num= (float)total.get(0)/(float)deviceCodeTotal;
            num= (float)total.get(0)/(float)deviceCodeTotal;
        }
        }
        jsonObject.put("sevenDayUse",num*100);
        jsonObject.put("sevenDayUse",num*100);