Преглед на файлове

Merge branch 'dev' of liubing/wlyy2.0 into dev

liubing преди 3 години
родител
ревизия
11b02d81d2

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/patient/dao/BasePatientDao.java

@ -50,4 +50,6 @@ public interface BasePatientDao extends PagingAndSortingRepository<BasePatientDO
//    int updateOpenId(String id, String openId);
    BasePatientDO findByIdAndDel(String id,String del);
    List<BasePatientDO> findByNameAndIdcard(String name,String idcard);
}

+ 1 - 1
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -657,7 +657,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        if(StringUtils.isNotBlank(padImei)){
            try {
                if(isPateint == 1){
                    this.getJdbcTemplate().update("update base_patient p set p.pad_imei = ? where p.id = ? or p.idcard = ?", padImei, id);
                    this.getJdbcTemplate().update("update base_patient p set p.pad_imei = ? where p.id = ? or p.idcard = ?", padImei, id,id);
                }
            }catch (Exception e){
                e.printStackTrace();

+ 29 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/family/FamilyMemberEndpoint.java

@ -8,6 +8,7 @@ import com.yihu.jw.care.service.family.PatientFamilyMemberService;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
@ -88,6 +89,34 @@ public class FamilyMemberEndpoint extends EnvelopRestEndpoint {
        }
    }
    @RequestMapping(value = "/addOlderByRelatives", method = RequestMethod.POST)
    @ApiOperation(value = "家属添加监护老人")
    @ObserverRequired
    public Envelop addOlderByRelatives(
            @ApiParam(name = "relatives",value = "家属code")
            @RequestParam("relatives") String relatives,
            @ApiParam(name = "name",value = "老人姓名")
            @RequestParam("name") String name,
            @ApiParam(name = "idcard",value = "老人身份证")
            @RequestParam("idcard") String idcard,
            @RequestParam(value = "relation",defaultValue = "0") Integer relation) {
        try {
            if (StringUtils.isEmpty(relatives)) {
                return failed("当前用户信息错误",-1);
            }
            JSONObject result = familyMemberService.addOlderByRelatives(relatives,name,idcard,relation);
            if (result.getInteger(ResponseContant.resultFlag)==ResponseContant.success){
                return success("添加成功");
            }else {
                return success(result.getString(ResponseContant.resultMsg));
            }
        } catch (Exception e) {
            return failedException2(e);
        }
    }
    /**
     * 更新家庭关系
     *

+ 73 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/family/PatientFamilyMemberService.java

@ -10,6 +10,7 @@ import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.security.MD5;
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
@ -220,6 +221,78 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
        return 1;
    }
    public JSONObject addOlderByRelatives(String relatives,String name,String idcard,Integer relation) throws Exception {
        JSONObject result = new JSONObject();
        BasePatientDO patientDO = patientDao.findById(relatives);
        if (null == patientDO){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"当前用户信息不存在");
            return result;
        }
        List<BasePatientDO> addPatients = patientDao.findByNameAndIdcard(name,idcard);
        if (addPatients.size()==0){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"添加成员不存在");
            return result;
        }
        BasePatientDO addPatient = addPatients.get(0);
        // 添加自己与对方的关系
        BasePatientFamilyMemberDO fm = memberDao.findByPatientAndFamilyMember(patientDO.getId(), addPatient.getId());
        // 家庭关系已存在时,不重复添加
        if (fm != null) {
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"家庭关系已存在时,不重复添加");
            return result;
        } else {
            fm = new BasePatientFamilyMemberDO();
            fm.setPatient(patientDO.getId());
            fm.setFamilyMember(addPatient.getId());
        }
        fm.setFamilyRelation(relation);
        fm.setIsAuthorize(0);//默认授权
        // 添加对方与自己的关系
        BasePatientFamilyMemberDO fmt = memberDao.findByPatientAndFamilyMember(addPatient.getId(), patientDO.getId());
        // 不存在则创建
        if (fmt == null) {
            fmt = new BasePatientFamilyMemberDO();
            fmt.setPatient(addPatient.getId());
            fmt.setFamilyMember(patientDO.getId());
        }
        // 对方与自己的关系转换
        int relationTrans = familyRelationTrans(patientDO, relation);
        if (relationTrans==-1){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"您或添加用户性别信息未填写无法添加成员");
            return result;
        }
        fmt.setFamilyRelation(relationTrans);
        fmt.setIsAuthorize(1);//默认授权
        memberDao.save(fm);
        memberDao.save(fmt);
        //设置家人openid 加入undefined 判断
        if (StringUtils.isBlank(addPatient.getOpenid()) && StringUtils.isNotBlank(patientDO.getOpenid()) && !"undefined".equals(patientDO.getOpenid())) {
            addPatient.setOpenid(patientDO.getOpenid());
            if (addPatient.getOpenidTime() == null) {
                addPatient.setOpenidTime(new Date());
            }
            patientDao.save(addPatient);
        } else if (StringUtils.isBlank(patientDO.getOpenid()) && StringUtils.isNotBlank(addPatient.getOpenid()) && !"undefined".equals(addPatient.getOpenid())) {
            patientDO.setOpenid(addPatient.getOpenid());
            if (patientDO.getOpenidTime() == null) {
                patientDO.setOpenidTime(new Date());
            }
            patientDao.save(patientDO);
        }
        result.put(ResponseContant.resultFlag,ResponseContant.success);
        result.put(ResponseContant.resultMsg,"添加成功");
        return result;
    }
    /**
     * 修改家庭成员关系
     * @param patient  居民

+ 6 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java

@ -232,12 +232,18 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
            signRecordDO.setHelperList(helperList);
            signRecordDO.setPackageList(packageList);
            res.put("signRecordDO",signRecordDO);
            res.put("doctor",doctorList.size()>0?1:0);
            res.put("helper",helperList.size()>0?1:0);
            if("1".equals(isCapacity)){
                //能力评估
                CapacityAssessmentRecordDO recordDO = capacityAssessmentRecordService.findAssessmentByPatientId(patientId);
                res.put("capAssRecordDO",recordDO);
            }
        }else {
            res.put("doctor",0);
            res.put("helper",0);
        }
        //能力状况
        BaseCapacityLabelDO capacityLabelDO = capacityLabelDao.findByPatient(patientId);

+ 8 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ArchiveService.java

@ -3,6 +3,7 @@ package com.yihu.jw.care.service.sign;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.apply.PatientBedApplyDao;
import com.yihu.jw.care.dao.sign.ArchiveDao;
import com.yihu.jw.care.service.device.DeviceService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
@ -47,6 +48,8 @@ public class ArchiveService extends BaseJpaService<ArchiveDO, ArchiveDao> {
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
    @Autowired
    private ServicePackageService servicePackageService;
    @Autowired
    private DeviceService deviceService;
    /**
@ -130,6 +133,11 @@ public class ArchiveService extends BaseJpaService<ArchiveDO, ArchiveDao> {
            if("1".endsWith(sign_status)){
                map.put("servicePackageList",servicePackageService.getServicePackageListByPatient(patientId,null));
            }
            map.put("deviceType",deviceService.getPatientDeviceCategoryCode(map.get("id").toString()));
            List<Map<String,Object>> doctorList = servicePackageService.getServerDoctorAll(map.get("id").toString(),"0","1");
            List<Map<String,Object>> helperList = servicePackageService.getServerDoctorAll(map.get("id").toString(),"0","2");
            map.put("helper", helperList.size()>0?1:0);
            map.put("doctor", doctorList.size()>0?1:0);
        }
        Long count = jdbcTemplate.queryForObject(countSql+sql+filters+" )tmp",Long.class);
        return PageEnvelop.getSuccessListWithPage("success",list,page,size,count);

+ 10 - 2
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/endpoint/DeviceController.java

@ -72,6 +72,7 @@ public class DeviceController {
            deviceService.aqgsos(imei, label_mac, time_begin,request);
            long endTime=System.currentTimeMillis();
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂SOS数据接收");
            dataPushLogUtil.updContactStatus(imei,1,false);
            logger.info("爱牵挂设备sos数据接收,请求参数:\n"+paraString+"\n"+(endTime-startTime)+"ms");
            return success();
        } catch (Exception e) {
@ -95,8 +96,9 @@ public class DeviceController {
        try {
            String paraString = JSON.toJSONString(request.getParameterMap());
            logger.info("爱牵挂设备开关机数据接收,请求参数:\n"+paraString);
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂开关机数据接收");
            deviceService.aqgSwitch(imei, time_begin, remaining_power, type,request);
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂开关机数据接收");
            dataPushLogUtil.updContactStatus(imei,1,false);
            return success();
        } catch (Exception e) {
            e.printStackTrace();
@ -120,6 +122,7 @@ public class DeviceController {
            deviceService.pushdata(type, deviceid, communityid, request);
            long endTime=System.currentTimeMillis();
            dataPushLogUtil.savePushLog(deviceid,paraString,"爱牵挂消息通知接收");
            dataPushLogUtil.updContactStatus(deviceid,1,false);
            logger.info("爱牵挂设备消息通知数据接收,请求参数:\n"+paraString+"\n"+(endTime-startTime)+"ms");
            return success();
        } catch (Exception e) {
@ -156,6 +159,7 @@ public class DeviceController {
            logger.info("爱牵挂位置接收,请求参数:\n"+paraString);
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂位置数据接收");
            deviceService.byLocation(imei,time_begin,is_reply,is_track,city,address,lon,lat,type);
            dataPushLogUtil.updContactStatus(imei,1,false);
            return success();
        } catch (Exception e) {
            e.printStackTrace();
@ -241,6 +245,7 @@ public class DeviceController {
            logger.info("爱牵挂跌倒数据接收,请求参数: \n"+paraString);
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂跌倒数据接收");
            deviceService.byFall(imei,time_begin,city,address,lon,lat,type);
            dataPushLogUtil.updContactStatus(imei,1,false);
            return success();
        } catch (Exception e) {
            e.printStackTrace();
@ -263,6 +268,7 @@ public class DeviceController {
            logger.info("爱牵挂步数接收,请求参数:\n"+paraString);
            dataPushLogUtil.savePushLog(imei,paraString,"爱牵挂设备步数数据接收");
            deviceService.bySteps(imei,time_begin,value);
            dataPushLogUtil.updContactStatus(imei,1,false);
            return success();
        } catch (Exception e) {
            e.printStackTrace();
@ -296,6 +302,7 @@ public class DeviceController {
            long endTime=System.currentTimeMillis();
            logger.info("爱牵挂-睡眠带接收,请求参数:"+paraString+"\n"+(endTime-startTime)+"ms");
            dataPushLogUtil.savePushLog(device,paraString,"睡眠带数据接收");
            dataPushLogUtil.updContactStatus(device,1,false);
            deviceService.sleepHealthIndex(device,heartrate,breath,time_begin);
            return success();
        } catch (Exception e) {
@ -352,6 +359,7 @@ public class DeviceController {
            String paraString = JSON.toJSONString(request.getParameterMap());
            logger.info("爱牵挂-睡眠带睡眠报告,请求参数:"+paraString);
            dataPushLogUtil.savePushLog(device,paraString,"睡眠带报告数据接收");
            dataPushLogUtil.updContactStatus(device,1,false);
            deviceService.bySleepReport(device,date,fallasleep,sleepTime,restTime,awakeTime,lightTime,remTime,deepTime,bucket,
                    avghr,avgbr,awakePer,remPer,lightPer,efficiency,score,deepPer);
            return success();
@ -377,7 +385,7 @@ public class DeviceController {
            String paraString = JSON.toJSONString(request.getParameterMap());
            logger.info("爱牵挂-睡眠带wifi在线状态接收:"+paraString);
            dataPushLogUtil.savePushLog(device,paraString,"睡眠带在线状态数据接收");
            deviceService.byOnlineStatus(device,onlinestatu,time_begin);
            dataPushLogUtil.updContactStatus(device,Integer.parseInt(onlinestatu),false);
            return success();
        } catch (Exception e) {
            e.printStackTrace();

+ 8 - 29
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java

@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yihu.jw.care.config.AqgConfig;
import com.yihu.jw.care.dao.device.*;
import com.yihu.jw.care.util.DeviceDataPushLogUtil;
import com.yihu.jw.care.util.DeviceLostMessageUtil;
import com.yihu.jw.care.util.SecurityOrderUtil;
import com.yihu.jw.entity.base.patient.BasePatientDO;
@ -94,6 +95,8 @@ public class DeviceService {
    private DeviceLostMessageUtil deviceLostMessageUtil;
    @Autowired
    private DeviceDetailDao deviceDetailDao;
    @Autowired
    private DeviceDataPushLogUtil dataPushLogUtil;
    /**
     * 获取爱牵挂管理员cookie
@ -434,7 +437,9 @@ public class DeviceService {
                        content_notice = content_notice.substring(0,content_notice.length()-1);
                        message.put("content_notice","您的key1过高,请注意饮食,尽量食用少油少盐食物".replace("key1",content_notice));
                        messageDO.setContent("您的key1过高,请注意饮食,尽量食用少油少盐食物".replace("key1",content_notice));
                        dataPushLogUtil.updContactStatus(imei,1,true);
                    }
                    dataPushLogUtil.updContactStatus(imei,1,false);
                    healthIndexDao.save(patientHealthIndex);
                    systemMessageDao.save(messageDO);
                    imUtil.sendPatientSystemMessage(messageDO.getReceiver(),JSON.toJSONString(message,SerializerFeature.WriteMapNullValue));
@ -516,8 +521,9 @@ public class DeviceService {
                        content_notice = content_notice.substring(0,content_notice.length()-1);
                        message.put("content_notice","您的key1过高,请注意饮食,尽量食用少油少盐食物".replace("key1",content_notice));
                        messageDO.setContent("您的key1过高,请注意饮食,尽量食用少油少盐食物".replace("key1",content_notice));
                        dataPushLogUtil.updContactStatus(imei,1,true);
                    }
                    dataPushLogUtil.updContactStatus(imei,1,false);
                    healthIndexDao.save(patientHealthIndex);
                    systemMessageDao.save(messageDO);
                    imUtil.sendPatientSystemMessage(messageDO.getReceiver(),JSON.toJSONString(message,SerializerFeature.WriteMapNullValue));
@ -919,34 +925,7 @@ public class DeviceService {
            e.printStackTrace();
        }
    }
    @Async
    public void byOnlineStatus(String device,String onlinestatu,String time_begin){
        try {
            if(StringUtils.isNotBlank(device)){
                List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
                if (devicePatientDeviceDos.size()>0){
                    DevicePatientDevice tmp = devicePatientDeviceDos.get(0);
                    patientDeviceDao.save(tmp);
                }
            }
            DeviceDetail deviceDetail = deviceDetailDao.findBySn(device);
            if(deviceDetail!=null){
                deviceDetail.setContactStatus(Integer.parseInt(onlinestatu));
                deviceDetailDao.save(deviceDetail);
                if ("0".equals(onlinestatu)){
                    List<String> sns = new ArrayList<>();
                    sns.add(device);
                    deviceLostMessageUtil.deviceLostMessage(sns);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //睡眠带心率呼吸数据
    @Async
    public void sleepHealthIndex(String device,String heartrate,String breath,String time_begin) {

+ 6 - 4
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java

@ -136,6 +136,7 @@ public class DeviceUploadService {
                throw new Exception("This device is not relate patient!");
            }
            dataPushLogUtil.savePushLog(deviceSn,paraString,"体征数据接收");
            dataPushLogUtil.updContactStatus(deviceSn,1,false);
            //保存消息
            BasePatientDO patientDO = patientDao.findById(result.getUser());
            if (null != patientDO){
@ -191,9 +192,9 @@ public class DeviceUploadService {
                        content_notice = content_notice.substring(0,content_notice.length()-1);
                        message.put("content_notice","您的key1过高,请注意饮食,尽量食用少油少盐食物".replace("key1",content_notice));
                        messageDO.setContent("您的key1过高,请注意饮食,尽量食用少油少盐食物".replace("key1",content_notice));
                        hvDeviceService.updContactStatus(deviceSn,1,true);
                        dataPushLogUtil.updContactStatus(deviceSn,1,true);
                    }else{
                        hvDeviceService.updContactStatus(deviceSn,1,false);
                        dataPushLogUtil.updContactStatus(deviceSn,1,false);
                    }
                    patientHealthIndexDao.save(result);
                    systemMessageDao.save(messageDO);
@ -478,6 +479,7 @@ public class DeviceUploadService {
                String tmp[] = inst.split("\\*");
                String sn = tmp[1];
                dataPushLogUtil.savePushLog(sn,"{\"message\":\""+instructions+"\"}","拐杖数据接收");
                dataPushLogUtil.updContactStatus(sn,1,false);
                String order = tmp[3];
                if(order.contains(",")){
                    String tmp1[] = order.split(",");
@ -539,7 +541,7 @@ public class DeviceUploadService {
                        deviceIndex.setLat(dulat+"");
                        deviceIndex.setLon(dulon+"");
                        yxDeviceIndexDao.save(deviceIndex);
                        hvDeviceService.updContactStatus(sn,1,flag);
                        dataPushLogUtil.updContactStatus(sn,1,flag);
                    }
                    if ("AL".equals(tmp1[0])){//触发报警 SOS
                        String lat,lon;
@ -614,7 +616,7 @@ public class DeviceUploadService {
                        deviceIndex.setLat(dulat+"");
                        deviceIndex.setLon(dulon+"");
                        yxDeviceIndexDao.save(deviceIndex);
                        hvDeviceService.updContactStatus(sn,1,flag);
                        dataPushLogUtil.updContactStatus(sn,1,flag);
                    }
                }
            }

+ 2 - 36
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/HvDeviceService.java

@ -166,7 +166,7 @@ public class HvDeviceService {
                list.add(index);
                dataPushLogUtil.savePushLog(resourceSerial,jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue),"烟探测器监测信息接收");
            }
            updContactStatus(resourceSerial,1,false);
            dataPushLogUtil.updContactStatus(resourceSerial,1,false);
        }
        if(list.size()>0){
            deviceHealthIndexDao.save(list);
@ -185,45 +185,11 @@ public class HvDeviceService {
            List<HvDeviceRecord> list = hvdeviceRecordDao.findByDeviceId(deviceID);
            dataPushLogUtil.savePushLog(deviceID,jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue),"气感烟感探测器监测信息接收");
            if(list.size()>0){
                updContactStatus(list.get(0).getDeviceSn(),Integer.valueOf(deviceStatus),null);
                dataPushLogUtil.updContactStatus(list.get(0).getDeviceSn(),Integer.valueOf(deviceStatus),null);
            }
        }
    }
    /**
     * 更新在线状态 及次数
     * @param sn
     * @param status
     * @param flag 状态 true 异常 false 正常 null其他
     */
    public void updContactStatus(String sn,Integer status,Boolean flag){
        DeviceDetail deviceDetail = deviceDetailDao.findBySn(sn);
        if(deviceDetail!=null){
            deviceDetail.setContactStatus(status);
            if(0==status){
               List<String> sns =  new ArrayList<String>();
               sns.add(sn);
               deviceLostMessageUtil.deviceLostMessage(sns);
            }
            deviceDetail.setContactStatusTime(new Date());
            if(deviceDetail.getCollectNum()==null){
                deviceDetail.setCollectNum(0L);
            }
            if(deviceDetail.getAbnormalNum()==null){
                deviceDetail.setAbnormalNum(0L);
            }
            if(flag!=null){
                deviceDetail.setCollectNum(deviceDetail.getCollectNum()+1L);
                if(flag){
                    deviceDetail.setAbnormalNum(deviceDetail.getAbnormalNum()+1L);
                }
            }
            deviceDetailDao.save(deviceDetail);
        }
    }
    /**
     * 同步设备
     */

+ 1 - 1
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/OnenetService.java

@ -115,7 +115,7 @@ public class OnenetService {
                }
            }
            hvDeviceService.updContactStatus(deviceSn,1,flag);
            dataPushLogUtil.updContactStatus(deviceSn,1,flag);
            record.setContent(msg.toJSONString());
            record.setStatus(1);

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

@ -279,6 +279,7 @@ public class YsDeviceService {
                DeviceDetail deviceDetail = deviceDetailDao.findBySn(deviceSN);
                dataPushLogUtil.savePushLog(deviceSN,bodyJsonObj.toJSONString(bodyJsonObj,SerializerFeature.WriteMapNullValue),"跌倒监护摄像头数据接收");
                dataPushLogUtil.updContactStatus(deviceSN,1,false);
                if (deviceDetail!=null){
                    deviceDetail.setContactStatus(1);
                    deviceDetailDao.save(deviceDetail);

+ 36 - 0
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/DeviceDataPushLogUtil.java

@ -1,14 +1,17 @@
package com.yihu.jw.care.util;
import com.yihu.jw.care.dao.device.DeviceDataPushLogDao;
import com.yihu.jw.care.dao.device.DeviceDetailDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.DeviceDataPushLog;
import com.yihu.jw.entity.care.device.DeviceDetail;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.patient.dao.BasePatientDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -25,6 +28,11 @@ public class DeviceDataPushLogUtil {
    private PatientDeviceDao patientDeviceDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private DeviceLostMessageUtil deviceLostMessageUtil;
    @Autowired
    private DeviceDetailDao deviceDetailDao;
    public void savePushLog(String sn,String data,String apiName){
        try {
@ -49,4 +57,32 @@ public class DeviceDataPushLogUtil {
            e.printStackTrace();
        }
    }
    public void updContactStatus(String sn,Integer status,Boolean flag){
        DeviceDetail deviceDetail = deviceDetailDao.findBySn(sn);
        if(deviceDetail!=null){
            deviceDetail.setContactStatus(status);
            if(0==status){
                List<String> sns =  new ArrayList<String>();
                sns.add(sn);
                deviceLostMessageUtil.deviceLostMessage(sns);
            }
            deviceDetail.setContactStatusTime(new Date());
            if(deviceDetail.getCollectNum()==null){
                deviceDetail.setCollectNum(0L);
            }
            if(deviceDetail.getAbnormalNum()==null){
                deviceDetail.setAbnormalNum(0L);
            }
            if(flag!=null){
                deviceDetail.setCollectNum(deviceDetail.getCollectNum()+1L);
                if(flag){
                    deviceDetail.setAbnormalNum(deviceDetail.getAbnormalNum()+1L);
                }
            }
            deviceDetailDao.save(deviceDetail);
        }
    }
}