Переглянути джерело

监控日志存储修改--未预警时未取到SN导致job报错

liubing 3 роки тому
батько
коміт
b381d0dddd

+ 5 - 3
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/YsDeviceService.java

@ -273,10 +273,12 @@ public class YsDeviceService {
    public void updateOnLineStatus(String str){
        if (StringUtils.isNotBlank(str)){
            JSONObject bodyJsonObj = JSONObject.parseObject(str);
            String deviceSN = "";//设备SN
            if (bodyJsonObj!=null&&bodyJsonObj.containsKey("header")){
                JSONObject headerJsonObject = bodyJsonObj.getJSONObject("header");
                deviceSN = headerJsonObject.getString("deviceId");
            }
            if (bodyJsonObj!=null&&bodyJsonObj.containsKey("body")){
                JSONObject bodyJsonObj2 = bodyJsonObj.getJSONObject("body");
                String deviceSN = bodyJsonObj2.getString("devSerial");//设备SN
                DeviceDetail deviceDetail = deviceDetailDao.findBySn(deviceSN);
                dataPushLogUtil.savePushLog(deviceSN,bodyJsonObj.toJSONString(bodyJsonObj,SerializerFeature.WriteMapNullValue),"跌倒监护摄像头数据接收");
                dataPushLogUtil.updContactStatus(deviceSN,1,false);

+ 48 - 53
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java

@ -245,61 +245,56 @@ public class PatientDeviceService {
        String startTimeDevice2 =  DateUtil.getPreTime(endTime,-60*2+"");
        try {
            List<String> lostSN = new ArrayList<>();
            List<String> onContact = new ArrayList<>();
            /*******************未失联**/
           //血糖仪,血压计。30天内有数据上传,则改为未失联
//            String sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (1,2) and EXISTS ( " +
//                    "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.create_time " +
//                    " BETWEEN '"+startTimeDevice1+"' AND '"+endTime+"') ";
//            List<String> devices = jdbcTemplate.queryForList(sql,String.class) ;
//            if (devices.size() > 0) {
//                onContact.addAll(devices);
//            }
//
//            //智能拐杖。手表2天内有数据上传,则改为未失联**
//            sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (4,16) and EXISTS ( " +
//                    "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.create_time " +
//                    " BETWEEN '"+startTimeDevice2+"' AND '"+endTime+"') ";
            //清除消息
            String sql = " select distinct dp.device_sn from device_data_push_log dp where  dp.create_time " +
                    " BETWEEN '"+startTimeDevice2+"' AND '"+endTime+"' ";
            List<String> devices = jdbcTemplate.queryForList(sql,String.class) ;
            if (devices.size() > 0) {
                onContact.addAll(devices);
            }
            /***************失联**/
            //血糖仪、血压**/
            sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (1,2) and not EXISTS ( " +
                    "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.create_time " +
                    " BETWEEN '"+startTimeDevice1+"' AND '"+endTime+"') ";
            devices = jdbcTemplate.queryForList(sql,String.class) ;
            if (devices.size() > 0) {
                lostSN.addAll(devices);
            }
            //智能拐杖、手表 睡眠带
            sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (4,13,16) and not EXISTS ( " +
                    "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.create_time " +
                    " BETWEEN '"+startTimeDevice2+"' AND '"+endTime+"') ";
            devices = jdbcTemplate.queryForList(sql,String.class) ;
            if (devices.size() > 0) {
                lostSN.addAll(devices);
            }
            if (onContact.size()>0){
//                wlyyDeviceDao.updateByContactStatus(1,new Date(),onContact);
                //如果在线 将之前的离线消息全部清除
                systemMessageDao.delMessageByRelationCode(onContact);
            }
            if (lostSN.size()>0){
                wlyyDeviceDao.updateByContactStatus(0,new Date(),lostSN);
                deviceLostMessageUtil.deviceLostMessage(lostSN);
            }
        List<String> lostSN = new ArrayList<>();
        List<String> onContact = new ArrayList<>();
        /*******************未失联**/
        //血糖仪,血压计。30天内有数据上传,则改为未失联
//        String sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (1,2) and EXISTS ( " +
//                "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.create_time " +
//                " BETWEEN '"+startTimeDevice1+"' AND '"+endTime+"') ";
//        List<String> devices = jdbcTemplate.queryForList(sql,String.class) ;
//        if (devices.size() > 0) {
//            onContact.addAll(devices);
//        }
//
//        //智能拐杖。手表2天内有数据上传,则改为未失联**
//        sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (4,16) and EXISTS ( " +
//                "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.create_time " +
//                " BETWEEN '"+startTimeDevice2+"' AND '"+endTime+"') ";
        } catch (Exception e) {
            logger.info(e.getMessage());
        //清除消息
        String sql = " select distinct dp.device_sn from device_data_push_log dp where  dp.create_time " +
                " BETWEEN '"+startTimeDevice2+"' AND '"+endTime+"' and dp.device_sn is not null ";
        List<String> devices = jdbcTemplate.queryForList(sql,String.class) ;
        if (devices.size() > 0) {
            onContact.addAll(devices);
        }
        /***************失联**/
        //血糖仪、血压**/
        sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (1,2) and not EXISTS ( " +
                "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.device_sn is not null and dp.create_time " +
                " BETWEEN '"+startTimeDevice1+"' AND '"+endTime+"') ";
        devices = jdbcTemplate.queryForList(sql,String.class) ;
        if (devices.size() > 0) {
            lostSN.addAll(devices);
        }
        //智能拐杖、手表 睡眠带
        sql = " SELECT pd.device_sn FROM base.wlyy_patient_device pd  where pd.del=0 and pd.category_code in (4,13,16) and not EXISTS ( " +
                "select dp.device_sn from device_data_push_log dp where dp.device_sn = pd.device_sn and dp.device_sn is not null and dp.create_time " +
                " BETWEEN '"+startTimeDevice2+"' AND '"+endTime+"') ";
        devices = jdbcTemplate.queryForList(sql,String.class) ;
        if (devices.size() > 0) {
            lostSN.addAll(devices);
        }
        if (onContact.size()>0){
//            wlyyDeviceDao.updateByContactStatus(1,new Date(),onContact);
            //如果在线 将之前的离线消息全部清除
            systemMessageDao.delMessageByRelationCode(onContact);
        }
        if (lostSN.size()>0){
            wlyyDeviceDao.updateByContactStatus(0,new Date(),lostSN);
            deviceLostMessageUtil.deviceLostMessage(lostSN);
        }
    }