Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

wangzhinan 3 years ago
parent
commit
9923d805af
59 changed files with 3291 additions and 349 deletions
  1. 16 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/AchnsDoctorRecordDao.java
  2. 16 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpAppointmentOnlineDao.java
  3. 15 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpMedicalOnlineDao.java
  4. 16 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpnsDoctorRecordDao.java
  5. 16 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpnsDoctorScoreDao.java
  6. 16 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpnsOrganBaseDao.java
  7. 61 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/AchnsDoctorRecordService.java
  8. 57 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpAppointmentOnlineService.java
  9. 57 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpMedicalOnlineService.java
  10. 57 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpnsDoctorRecordService.java
  11. 57 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpnsDoctorScoreService.java
  12. 57 0
      business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpnsOrganBaseService.java
  13. 15 2
      common/common-entity/sql记录
  14. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java
  15. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseSleepNightRecord.java
  16. 4 4
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseSleepPlanDetail.java
  17. 46 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseYxDeviceIndex.java
  18. 20 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/DeviceDetail.java
  19. 71 0
      common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/AchnsDoctorRecordDO.java
  20. 210 0
      common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpAppointmentOnlineDO.java
  21. 200 0
      common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpMedicalOnlineDO.java
  22. 539 0
      common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpNsOrganBaseDO.java
  23. 268 0
      common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpnsDoctorRecordDO.java
  24. 144 0
      common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpnsDoctorScoreDO.java
  25. 1 1
      common/common-util/src/main/java/com/yihu/jw/util/common/LatitudeUtils.java
  26. 2 0
      svr/svr-cloud-care/src/main/java/com/yihu/SvrCloudCareApplication.java
  27. 6 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/AqgConfig.java
  28. 25 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepNightRecordDao.java
  29. 5 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepPlanDao.java
  30. 24 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepPlanDetailDao.java
  31. 7 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/PatientDeviceDao.java
  32. 18 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/BaseController.java
  33. 12 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PadDeviceController.java
  34. 34 7
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java
  35. 44 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/security/SecurityMonitoringOrderEndpoint.java
  36. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java
  37. 11 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java
  38. 10 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  39. 22 24
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java
  40. 11 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/DeviceDetailService.java
  41. 91 30
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  42. 3 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java
  43. 190 26
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  44. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ArchiveService.java
  45. 17 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java
  46. 73 47
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java
  47. 5 2
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseSleepNightRecordDao.java
  48. 1 1
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseSleepPlanDetailDao.java
  49. 16 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseYxDeviceIndexDao.java
  50. 7 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/HvDeviceRecordDao.java
  51. 1 1
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/endpoint/DeviceController.java
  52. 124 129
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java
  53. 46 10
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java
  54. 40 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/HvDeviceService.java
  55. 16 14
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/YsDeviceService.java
  56. 40 15
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/ArtemisPostTest.java
  57. 1 1
      svr/svr-cloud-device/src/main/resources/application.yml
  58. 13 8
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/PatientSosContactsJob.java
  59. 413 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/thirdUpload/ThirdUploadEndpoint.java

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/AchnsDoctorRecordDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.thirdUpload;
import com.yihu.jw.entity.thirdUpload.AchnsDoctorRecordDO;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface AchnsDoctorRecordDao extends PagingAndSortingRepository<AchnsDoctorRecordDO, String>, JpaSpecificationExecutor<AchnsDoctorRecordDO> {
    @Query("from AchnsDoctorRecordDO t where t.is_del='1' and t.create_time>=?1 and t.create_time<=?2")
    List<AchnsDoctorRecordDO> findAchnsDoctorRecordDOByCreateTime(Date startTime, Date endTime);
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpAppointmentOnlineDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.thirdUpload;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpNsOrganBaseDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface UpAppointmentOnlineDao extends PagingAndSortingRepository<UpAppointmentOnlineDO, String>, JpaSpecificationExecutor<UpAppointmentOnlineDO> {
    @Query("from UpAppointmentOnlineDO t where t.is_del='1' and t.create_time>=?1 and t.create_time<=?2")
    List<UpAppointmentOnlineDO> findByCreateTime(Date startTime, Date endTime);
}

+ 15 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpMedicalOnlineDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.thirdUpload;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpMedicalOnlineDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface UpMedicalOnlineDao extends PagingAndSortingRepository<UpMedicalOnlineDO, String>, JpaSpecificationExecutor<UpMedicalOnlineDO> {
    @Query("from UpMedicalOnlineDO t where t.is_del='1' and t.create_time>=?1 and t.create_time<=?2")
    List<UpMedicalOnlineDO> findByCreateTime(Date startTime, Date endTime);
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpnsDoctorRecordDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.thirdUpload;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorRecordDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorScoreDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface UpnsDoctorRecordDao extends PagingAndSortingRepository<UpnsDoctorRecordDO, String>, JpaSpecificationExecutor<UpnsDoctorRecordDO> {
    @Query("from UpnsDoctorRecordDO t where t.is_del='1' and t.create_time>=?1 and t.create_time<=?2")
    List<UpnsDoctorRecordDO> findByCreateTime(Date startTime, Date endTime);
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpnsDoctorScoreDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.thirdUpload;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpMedicalOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorScoreDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface UpnsDoctorScoreDao extends PagingAndSortingRepository<UpnsDoctorScoreDO, String>, JpaSpecificationExecutor<UpnsDoctorScoreDO> {
    @Query("from UpnsDoctorScoreDO t where t.is_del='1' and t.create_time>=?1 and t.create_time<=?2")
    List<UpnsDoctorScoreDO> findByCreateTime(Date startTime, Date endTime);
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/UpnsOrganBaseDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.thirdUpload;
import com.yihu.jw.entity.thirdUpload.AchnsDoctorRecordDO;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpNsOrganBaseDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface UpnsOrganBaseDao extends PagingAndSortingRepository<UpNsOrganBaseDO, String>, JpaSpecificationExecutor<UpNsOrganBaseDO> {
    @Query("from UpNsOrganBaseDO t where t.is_del='1' and t.create_time>=?1 and t.create_time<=?2")
    List<UpNsOrganBaseDO> findByCreateTime(Date startTime, Date endTime);
}

+ 61 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/AchnsDoctorRecordService.java

@ -0,0 +1,61 @@
package com.yihu.jw.thirdUpload.service;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.thirdUpload.AchnsDoctorRecordDO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
import com.yihu.jw.thirdUpload.AchnsDoctorRecordDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class AchnsDoctorRecordService extends BaseJpaService<AchnsDoctorRecordDO, AchnsDoctorRecordDao> {
    @Autowired
    private AchnsDoctorRecordDao achnsDoctorRecordDao;
    public void saveAchns(List<AchnsDoctorRecordDO> achnsDoctorRecordDOs) throws Exception{
        /*List<IotDeviceImportVO> importVOList = objectMapper.readValue(JSONObject.toJSONString(correctLs), new TypeReference<List<IotDeviceImportVO>>() {
        });*/
        for (AchnsDoctorRecordDO achnsDoctorRecordDO:achnsDoctorRecordDOs){
            if (StringUtils.isNotBlank(achnsDoctorRecordDO.getId())){
                AchnsDoctorRecordDO oldFrequency= achnsDoctorRecordDao.findOne(achnsDoctorRecordDO.getId());
                BeanUtils.copyProperties(achnsDoctorRecordDO, oldFrequency, getNullPropertyNames(achnsDoctorRecordDO));
                oldFrequency.setUpdate_time(new Date());
                oldFrequency.setIs_del("1");
                achnsDoctorRecordDao.save(oldFrequency);
            }else {
                achnsDoctorRecordDO.setCreate_time(new Date());
                achnsDoctorRecordDO.setIs_del("1");
                achnsDoctorRecordDao.save(achnsDoctorRecordDO);
            }
        }
    }
    public void deleteById(String id){
        AchnsDoctorRecordDO achnsDoctorRecordDO =  achnsDoctorRecordDao.findOne(id);
        if (achnsDoctorRecordDO!=null){
            achnsDoctorRecordDO.setIs_del("0");
            achnsDoctorRecordDao.save(achnsDoctorRecordDO);
        }
    }
    public List<AchnsDoctorRecordDO> findByCreateTime(String createTime){
        Date startTime= DateUtil.strToDate(createTime+" 00:00:00");
        Date endTime= DateUtil.strToDate(createTime+" 23:59:59");
        return achnsDoctorRecordDao.findAchnsDoctorRecordDOByCreateTime(startTime,endTime);
    }
}

+ 57 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpAppointmentOnlineService.java

@ -0,0 +1,57 @@
package com.yihu.jw.thirdUpload.service;
import com.yihu.jw.entity.thirdUpload.UpAppointmentOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorRecordDO;
import com.yihu.jw.thirdUpload.UpAppointmentOnlineDao;
import com.yihu.jw.thirdUpload.UpnsDoctorRecordDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class UpAppointmentOnlineService extends BaseJpaService<UpAppointmentOnlineDO, UpAppointmentOnlineDao> {
    @Autowired
    private UpAppointmentOnlineDao upAppointmentOnlineDao;
    public void saveUpAppointment(List<UpAppointmentOnlineDO> upAppointmentOnlineDOS) throws Exception{
        /*List<IotDeviceImportVO> importVOList = objectMapper.readValue(JSONObject.toJSONString(correctLs), new TypeReference<List<IotDeviceImportVO>>() {
        });*/
        for (UpAppointmentOnlineDO upAppointmentOnlineDO:upAppointmentOnlineDOS){
            if (StringUtils.isNotBlank(upAppointmentOnlineDO.getId())){
                UpAppointmentOnlineDO old= upAppointmentOnlineDao.findOne(upAppointmentOnlineDO.getId());
                BeanUtils.copyProperties(upAppointmentOnlineDO, old, getNullPropertyNames(upAppointmentOnlineDO));
                old.setUpdate_time(new Date());
                old.setIs_del("1");
                upAppointmentOnlineDao.save(old);
            }else {
                upAppointmentOnlineDO.setCreate_time(new Date());
                upAppointmentOnlineDO.setIs_del("1");
                upAppointmentOnlineDao.save(upAppointmentOnlineDO);
            }
        }
    }
    public void deleteById(String id){
        UpAppointmentOnlineDO upAppointmentOnlineDO =  upAppointmentOnlineDao.findOne(id);
        if (upAppointmentOnlineDO!=null){
            upAppointmentOnlineDO.setIs_del("0");
            upAppointmentOnlineDao.save(upAppointmentOnlineDO);
        }
    }
    public List<UpAppointmentOnlineDO> findByCreateTime(String createTime){
        Date startTime= DateUtil.strToDate(createTime+" 00:00:00");
        Date endTime= DateUtil.strToDate(createTime+" 23:59:59");
        return upAppointmentOnlineDao.findByCreateTime(startTime,endTime);
    }
}

+ 57 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpMedicalOnlineService.java

@ -0,0 +1,57 @@
package com.yihu.jw.thirdUpload.service;
import com.yihu.jw.entity.thirdUpload.UpMedicalOnlineDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorRecordDO;
import com.yihu.jw.thirdUpload.UpMedicalOnlineDao;
import com.yihu.jw.thirdUpload.UpnsDoctorRecordDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class UpMedicalOnlineService extends BaseJpaService<UpMedicalOnlineDO, UpMedicalOnlineDao> {
    @Autowired
    private UpMedicalOnlineDao upMedicalOnlineDao;
    public void saveUpMedicalOnline(List<UpMedicalOnlineDO> upMedicalOnlineDOS) throws Exception{
        /*List<IotDeviceImportVO> importVOList = objectMapper.readValue(JSONObject.toJSONString(correctLs), new TypeReference<List<IotDeviceImportVO>>() {
        });*/
        for (UpMedicalOnlineDO upMedicalOnlineDO:upMedicalOnlineDOS){
            if (StringUtils.isNotBlank(upMedicalOnlineDO.getId())){
                UpMedicalOnlineDO old= upMedicalOnlineDao.findOne(upMedicalOnlineDO.getId());
                BeanUtils.copyProperties(upMedicalOnlineDO, old, getNullPropertyNames(upMedicalOnlineDO));
                old.setUpdate_time(new Date());
                old.setIs_del("1");
                upMedicalOnlineDao.save(old);
            }else {
                upMedicalOnlineDO.setCreate_time(new Date());
                upMedicalOnlineDO.setIs_del("1");
                upMedicalOnlineDao.save(upMedicalOnlineDO);
            }
        }
    }
    public void deleteById(String id){
        UpMedicalOnlineDO upMedicalOnlineDO =  upMedicalOnlineDao.findOne(id);
        if (upMedicalOnlineDO!=null){
            upMedicalOnlineDO.setIs_del("0");
            upMedicalOnlineDao.save(upMedicalOnlineDO);
        }
    }
    public List<UpMedicalOnlineDO> findByCreateTime(String createTime){
        Date startTime= DateUtil.strToDate(createTime+" 00:00:00");
        Date endTime= DateUtil.strToDate(createTime+" 23:59:59");
        return upMedicalOnlineDao.findByCreateTime(startTime,endTime);
    }
}

+ 57 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpnsDoctorRecordService.java

@ -0,0 +1,57 @@
package com.yihu.jw.thirdUpload.service;
import com.yihu.jw.entity.thirdUpload.UpNsOrganBaseDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorRecordDO;
import com.yihu.jw.thirdUpload.UpnsDoctorRecordDao;
import com.yihu.jw.thirdUpload.UpnsOrganBaseDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class UpnsDoctorRecordService extends BaseJpaService<UpnsDoctorRecordDO, UpnsDoctorRecordDao> {
    @Autowired
    private UpnsDoctorRecordDao upnsDoctorRecordDao;
    public void saveUpnsDoctorRecord(List<UpnsDoctorRecordDO> upnsDoctorRecordDOS) throws Exception{
        /*List<IotDeviceImportVO> importVOList = objectMapper.readValue(JSONObject.toJSONString(correctLs), new TypeReference<List<IotDeviceImportVO>>() {
        });*/
        for (UpnsDoctorRecordDO upnsDoctorRecordDO:upnsDoctorRecordDOS){
            if (StringUtils.isNotBlank(upnsDoctorRecordDO.getId())){
                UpnsDoctorRecordDO old= upnsDoctorRecordDao.findOne(upnsDoctorRecordDO.getId());
                BeanUtils.copyProperties(upnsDoctorRecordDO, old, getNullPropertyNames(upnsDoctorRecordDO));
                old.setUpdate_time(new Date());
                old.setIs_del("1");
                upnsDoctorRecordDao.save(old);
            }else {
                upnsDoctorRecordDO.setCreate_time(new Date());
                upnsDoctorRecordDO.setIs_del("1");
                upnsDoctorRecordDao.save(upnsDoctorRecordDO);
            }
        }
    }
    public void deleteById(String id){
        UpnsDoctorRecordDO upnsDoctorRecordDO =  upnsDoctorRecordDao.findOne(id);
        if (upnsDoctorRecordDO!=null){
            upnsDoctorRecordDO.setIs_del("0");
            upnsDoctorRecordDao.save(upnsDoctorRecordDO);
        }
    }
    public List<UpnsDoctorRecordDO> findByCreateTime(String createTime){
        Date startTime= DateUtil.strToDate(createTime+" 00:00:00");
        Date endTime= DateUtil.strToDate(createTime+" 23:59:59");
        return upnsDoctorRecordDao.findByCreateTime(startTime,endTime);
    }
}

+ 57 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpnsDoctorScoreService.java

@ -0,0 +1,57 @@
package com.yihu.jw.thirdUpload.service;
import com.yihu.jw.entity.thirdUpload.AchnsDoctorRecordDO;
import com.yihu.jw.entity.thirdUpload.UpnsDoctorScoreDO;
import com.yihu.jw.thirdUpload.AchnsDoctorRecordDao;
import com.yihu.jw.thirdUpload.UpnsDoctorScoreDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class UpnsDoctorScoreService extends BaseJpaService<UpnsDoctorScoreDO, UpnsDoctorScoreDao> {
    @Autowired
    private UpnsDoctorScoreDao upnsDoctorScoreDao;
    public void saveUpnsDoctorScore(List<UpnsDoctorScoreDO> upnsDoctorScoreDOS) throws Exception{
        /*List<IotDeviceImportVO> importVOList = objectMapper.readValue(JSONObject.toJSONString(correctLs), new TypeReference<List<IotDeviceImportVO>>() {
        });*/
        for (UpnsDoctorScoreDO upnsDoctorScoreDO:upnsDoctorScoreDOS){
            if (StringUtils.isNotBlank(upnsDoctorScoreDO.getId())){
                UpnsDoctorScoreDO old= upnsDoctorScoreDao.findOne(upnsDoctorScoreDO.getId());
                BeanUtils.copyProperties(upnsDoctorScoreDO, old, getNullPropertyNames(upnsDoctorScoreDO));
                old.setUpdate_time(new Date());
                old.setIs_del("1");
                upnsDoctorScoreDao.save(old);
            }else {
                upnsDoctorScoreDO.setCreate_time(new Date());
                upnsDoctorScoreDO.setIs_del("1");
                upnsDoctorScoreDao.save(upnsDoctorScoreDO);
            }
        }
    }
    public void deleteById(String id){
        UpnsDoctorScoreDO upnsDoctorScoreDO =  upnsDoctorScoreDao.findOne(id);
        if (upnsDoctorScoreDO!=null){
            upnsDoctorScoreDO.setIs_del("0");
            upnsDoctorScoreDao.save(upnsDoctorScoreDO);
        }
    }
    public List<UpnsDoctorScoreDO> findByCreateTime(String createTime){
        Date startTime= DateUtil.strToDate(createTime+" 00:00:00");
        Date endTime= DateUtil.strToDate(createTime+" 23:59:59");
        return upnsDoctorScoreDao.findByCreateTime(startTime,endTime);
    }
}

+ 57 - 0
business/base-service/src/main/java/com/yihu/jw/thirdUpload/service/UpnsOrganBaseService.java

@ -0,0 +1,57 @@
package com.yihu.jw.thirdUpload.service;
import com.yihu.jw.entity.thirdUpload.AchnsDoctorRecordDO;
import com.yihu.jw.entity.thirdUpload.UpNsOrganBaseDO;
import com.yihu.jw.thirdUpload.AchnsDoctorRecordDao;
import com.yihu.jw.thirdUpload.UpnsOrganBaseDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class UpnsOrganBaseService extends BaseJpaService<UpNsOrganBaseDO, UpnsOrganBaseDao> {
    @Autowired
    private UpnsOrganBaseDao upnsOrganBaseDao;
    public void saveUpnsOrganBase(List<UpNsOrganBaseDO> upNsOrganBaseDOS) throws Exception{
        /*List<IotDeviceImportVO> importVOList = objectMapper.readValue(JSONObject.toJSONString(correctLs), new TypeReference<List<IotDeviceImportVO>>() {
        });*/
        for (UpNsOrganBaseDO upNsOrganBaseDO:upNsOrganBaseDOS){
            if (StringUtils.isNotBlank(upNsOrganBaseDO.getId())){
                UpNsOrganBaseDO old= upnsOrganBaseDao.findOne(upNsOrganBaseDO.getId());
                BeanUtils.copyProperties(upNsOrganBaseDO, old, getNullPropertyNames(upNsOrganBaseDO));
                old.setUpdate_time(new Date());
                old.setIs_del("1");
                upnsOrganBaseDao.save(old);
            }else {
                upNsOrganBaseDO.setCreate_time(new Date());
                upNsOrganBaseDO.setIs_del("1");
                upnsOrganBaseDao.save(upNsOrganBaseDO);
            }
        }
    }
    public void deleteById(String id){
        UpNsOrganBaseDO upNsOrganBaseDO =  upnsOrganBaseDao.findOne(id);
        if (upNsOrganBaseDO!=null){
            upNsOrganBaseDO.setIs_del("0");
            upnsOrganBaseDao.save(upNsOrganBaseDO);
        }
    }
    public List<UpNsOrganBaseDO> findByCreateTime(String createTime){
        Date startTime= DateUtil.strToDate(createTime+" 00:00:00");
        Date endTime= DateUtil.strToDate(createTime+" 23:59:59");
        return upnsOrganBaseDao.findByCreateTime(startTime,endTime);
    }
}

+ 15 - 2
common/common-entity/sql记录

@ -1346,9 +1346,6 @@ CREATE TABLE `base_hvdevice_sos_log` (
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='烟感气感设备报警日志记录表';
ALTER table `base`.`wlyy_devices` add column `device_type` tinyint(2) DEFAULT NULL COMMENT '设备种类 0健康设备 1安防设备'
-- 20210819
alter table wlyy_devices add COLUMN device_type TINYINT(2) default null COMMENT '设备种类 0健康设备 1安防设备';
alter table wlyy_patient_device add COLUMN device_type TINYINT(2) default null COMMENT '设备种类 0健康设备 1安防设备';
@ -1376,3 +1373,18 @@ CREATE TABLE `base_sleep_plan_detail` (
-- 20210824
alter table base_security_monitoring_order add COLUMN warn_info varchar(3000) DEFAULT NULL COMMENT '触发工单时信息如 烟雾心率等';
-- 20210825
alter table wlyy_devices add COLUMN contact_status_time datetime DEFAULT NULL COMMENT '失联状态更新时间';
alter table wlyy_devices add COLUMN contact_status tinyint(2) DEFAULT NULL COMMENT '失联状态 1未失联 0失联';
-- 20210826
CREATE TABLE `base_yxdevice_index` (
  `id` varchar(50) NOT NULL,
  `sn` varchar(50) DEFAULT NULL COMMENT '设备sn码',
  `lat` varchar(50) DEFAULT NULL COMMENT '纬度',
  `lon` varchar(50) DEFAULT NULL COMMENT '经度',
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='云芯拐杖设备上传记录';

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java

@ -272,7 +272,7 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
    private String medicareNumber;//医疗保险号
    private Integer archiveStatus;//档案状态【1.未管理 2.死亡 3.正常 4.高危】【必填】
    private Integer archiveType;// 档案类型 1老人 2新生儿
    private Integer archiveType;// 档案类型 1老人 2新生儿 3老人家属
    private String archiveStatusName;
    private String archiveTypeName;

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseSleepNightRecord.java

@ -16,7 +16,7 @@ public class BaseSleepNightRecord extends IdEntity {
    private String patient ;
    private String deviceSn;
    private String outTime;//离床时长 秒
    private Integer status;//是否回床 0否,1是
    private Integer status;//是否回床 -1否 0否,1是
    private String day;//监控日期
    private Date createTime;// 创建日期 即起床时间
    private Date updateTime;// 更新日期

+ 4 - 4
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseSleepPlanDetail.java

@ -18,13 +18,13 @@ public class BaseSleepPlanDetail extends IdEntity {
    private String  patient;
    private String  deviceSn;
    private String  day; //睡眠监控日期
    private Integer  upStatus; //起床状态 0未起床 1起床
    private Integer  upStatus; //起床状态 0起床 1未起床
    private Date  upTime; //起床时间
    private Integer  siestaStatus; //午睡状态 0未入床 1已入床
    private Integer  siestaStatus; //午睡状态 0未上床 1已上床
    private Date  siestaTimeBegin; //午睡开始时间
    private Date  siestaTimeEnd;  //午睡结束时间
    private String  siestaLong; //午睡时长 单位秒
    private Integer  inStatus; //睡觉状态 0未入床 1已入床,2无午睡计划
    private Integer  inStatus; //睡觉状态 0未上床 1已上床
    private Date  inTimeBegin; //夜眠开始时间
    private Date  inTimeEnd; //夜眠结束时间
    private Date createTime;
@ -32,7 +32,7 @@ public class BaseSleepPlanDetail extends IdEntity {
    private List<BaseSleepNightRecord> sleepNightRecordList;
    private String heartRate;
    private String breath;
    private Integer bedStatus;
    private Integer bedStatus; //0未在床 1在床
    public String getPatient() {
        return patient;

+ 46 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseYxDeviceIndex.java

@ -0,0 +1,46 @@
package com.yihu.jw.entity.care.device;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created with IntelliJ IDEA.
 * 云芯拐杖设备上传记录
 * @Author: yeshijie
 * @Date: 2021/8/26
 * @Description:
 */
@Entity
@Table(name = "base_yxdevice_index")
public class BaseYxDeviceIndex extends UuidIdentityEntityWithCreateTime{
    private String sn;//设备sn码
    private String lat;//纬度
    private String lon;//经度
    public String getSn() {
        return sn;
    }
    public void setSn(String sn) {
        this.sn = sn;
    }
    public String getLat() {
        return lat;
    }
    public void setLat(String lat) {
        this.lat = lat;
    }
    public String getLon() {
        return lon;
    }
    public void setLon(String lon) {
        this.lon = lon;
    }
}

+ 20 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/DeviceDetail.java

@ -49,6 +49,8 @@ public class DeviceDetail extends IdEntity {
    private String grantDoctor;//发放医生code
    private String grantDoctorName;//发放医生姓名
    private Integer contactStatus;// 失联状态 1未失联 0失联
    private Date contactStatusTime;//失联状态更新时间
    /** default constructor */
    public DeviceDetail() {
    }
@ -324,4 +326,22 @@ public class DeviceDetail extends IdEntity {
    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }
    @Column(name = "contact_status")
    public Integer getContactStatus() {
        return contactStatus;
    }
    public void setContactStatus(Integer contactStatus) {
        this.contactStatus = contactStatus;
    }
    @Column(name = "contact_status_time")
    public Date getContactStatusTime() {
        return contactStatusTime;
    }
    public void setContactStatusTime(Date contactStatusTime) {
        this.contactStatusTime = contactStatusTime;
    }
}

+ 71 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/AchnsDoctorRecordDO.java

@ -0,0 +1,71 @@
package com.yihu.jw.entity.thirdUpload;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "achns_doctor_record")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class AchnsDoctorRecordDO extends UuidIdentityEntity {
    private String organ_code;
    private String organ_name;
    private String id_card;
    private Date create_time;
    private Date update_time;
    private String is_del;
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "update_time")
    public Date getUpdate_time() {
        return update_time;
    }
    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }
    @Column(name = "organ_code")
    public String getOrgan_code() {
        return organ_code;
    }
    public void setOrgan_code(String organ_code) {
        this.organ_code = organ_code;
    }
    @Column(name = "organ_name")
    public String getOrgan_name() {
        return organ_name;
    }
    public void setOrgan_name(String organ_name) {
        this.organ_name = organ_name;
    }
    @Column(name = "id_card")
    public String getId_card() {
        return id_card;
    }
    public void setId_card(String id_card) {
        this.id_card = id_card;
    }
    @Column(name = "create_time")
    public Date getCreate_time() {
        return create_time;
    }
    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
}

+ 210 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpAppointmentOnlineDO.java

@ -0,0 +1,210 @@
package com.yihu.jw.entity.thirdUpload;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;
@Entity
@Table(name = "up_appointment_online")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class UpAppointmentOnlineDO extends UuidIdentityEntity {
    private String origin_id;
    private String cd_org;
    private String cd_area;
    private String cd_org_sub;
    private String reg_time;
    private String fg_visit;
    private String reg_dep_code;
    private String reg_dep_name;
    private String reg_subject_code;
    private String reg_subject_name;
    private BigDecimal reg_price;
    private String pt_name;
    private String ge_code;
    private String pt_age;
    private String card_type;
    private String id_no;
    private String pt_tel;
    private String crt_date;
    private Date create_time;
    private Date update_time;
    private String is_del;
    @Column(name = "cd_org_sub")
    public String getCd_org_sub() {
        return cd_org_sub;
    }
    public void setCd_org_sub(String cd_org_sub) {
        this.cd_org_sub = cd_org_sub;
    }
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "update_time")
    public Date getUpdate_time() {
        return update_time;
    }
    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }
    @Column(name = "create_time")
    public Date getCreate_time() {
        return create_time;
    }
    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
    @Column(name = "origin_id")
    public String getOrigin_id() {
        return origin_id;
    }
    public void setOrigin_id(String origin_id) {
        this.origin_id = origin_id;
    }
    @Column(name = "cd_org")
    public String getCd_org() {
        return cd_org;
    }
    public void setCd_org(String cd_org) {
        this.cd_org = cd_org;
    }
    @Column(name = "cd_area")
    public String getCd_area() {
        return cd_area;
    }
    public void setCd_area(String cd_area) {
        this.cd_area = cd_area;
    }
    @Column(name = "reg_time")
    public String getReg_time() {
        return reg_time;
    }
    public void setReg_time(String reg_time) {
        this.reg_time = reg_time;
    }
    @Column(name = "fg_visit")
    public String getFg_visit() {
        return fg_visit;
    }
    public void setFg_visit(String fg_visit) {
        this.fg_visit = fg_visit;
    }
    @Column(name = "reg_dep_code")
    public String getReg_dep_code() {
        return reg_dep_code;
    }
    public void setReg_dep_code(String reg_dep_code) {
        this.reg_dep_code = reg_dep_code;
    }
    @Column(name = "reg_dep_name")
    public String getReg_dep_name() {
        return reg_dep_name;
    }
    public void setReg_dep_name(String reg_dep_name) {
        this.reg_dep_name = reg_dep_name;
    }
    @Column(name = "reg_subject_code")
    public String getReg_subject_code() {
        return reg_subject_code;
    }
    public void setReg_subject_code(String reg_subject_code) {
        this.reg_subject_code = reg_subject_code;
    }
    @Column(name = "reg_subject_name")
    public String getReg_subject_name() {
        return reg_subject_name;
    }
    public void setReg_subject_name(String reg_subject_name) {
        this.reg_subject_name = reg_subject_name;
    }
    @Column(name = "reg_price")
    public BigDecimal getReg_price() {
        return reg_price;
    }
    public void setReg_price(BigDecimal reg_price) {
        this.reg_price = reg_price;
    }
    @Column(name = "pt_name")
    public String getPt_name() {
        return pt_name;
    }
    public void setPt_name(String pt_name) {
        this.pt_name = pt_name;
    }
    @Column(name = "ge_code")
    public String getGe_code() {
        return ge_code;
    }
    public void setGe_code(String ge_code) {
        this.ge_code = ge_code;
    }
    @Column(name = "pt_age")
    public String getPt_age() {
        return pt_age;
    }
    public void setPt_age(String pt_age) {
        this.pt_age = pt_age;
    }
    @Column(name = "card_type")
    public String getCard_type() {
        return card_type;
    }
    public void setCard_type(String card_type) {
        this.card_type = card_type;
    }
    @Column(name = "id_no")
    public String getId_no() {
        return id_no;
    }
    public void setId_no(String id_no) {
        this.id_no = id_no;
    }
    @Column(name = "pt_tel")
    public String getPt_tel() {
        return pt_tel;
    }
    public void setPt_tel(String pt_tel) {
        this.pt_tel = pt_tel;
    }
    @Column(name = "crt_date")
    public String getCrt_date() {
        return crt_date;
    }
    public void setCrt_date(String crt_date) {
        this.crt_date = crt_date;
    }
}

+ 200 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpMedicalOnlineDO.java

@ -0,0 +1,200 @@
package com.yihu.jw.entity.thirdUpload;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "up_medical_online")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class UpMedicalOnlineDO extends UuidIdentityEntity {
    private String cd_org;
    private String cd_area;
    private String cd_org_sub;
    private String app_time;
    private String app_dep_code;
    private String app_class_code;
    private String app_class_name;
    private String id_doctor;
    private String fg_handle;
    private String handle_time;
    private String pt_name;
    private String ge_code;
    private String card_type;
    private String id_no;
    private String pt_tel;
    private String crt_date;
    private String origin_id;
    private Date create_time;
    private Date update_time;
    private String is_del;
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "update_time")
    public Date getUpdate_time() {
        return update_time;
    }
    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }
    @Column(name = "create_time")
    public Date getCreate_time() {
        return create_time;
    }
    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
    @Column(name = "cd_org")
    public String getCd_org() {
        return cd_org;
    }
    public void setCd_org(String cd_org) {
        this.cd_org = cd_org;
    }
    @Column(name = "cd_area")
    public String getCd_area() {
        return cd_area;
    }
    public void setCd_area(String cd_area) {
        this.cd_area = cd_area;
    }
    @Column(name = "cd_org_sub")
    public String getCd_org_sub() {
        return cd_org_sub;
    }
    public void setCd_org_sub(String cd_org_sub) {
        this.cd_org_sub = cd_org_sub;
    }
    @Column(name = "app_time")
    public String getApp_time() {
        return app_time;
    }
    public void setApp_time(String app_time) {
        this.app_time = app_time;
    }
    @Column(name = "app_dep_code")
    public String getApp_dep_code() {
        return app_dep_code;
    }
    public void setApp_dep_code(String app_dep_code) {
        this.app_dep_code = app_dep_code;
    }
    @Column(name = "app_class_code")
    public String getApp_class_code() {
        return app_class_code;
    }
    public void setApp_class_code(String app_class_code) {
        this.app_class_code = app_class_code;
    }
    @Column(name = "app_class_name")
    public String getApp_class_name() {
        return app_class_name;
    }
    public void setApp_class_name(String app_class_name) {
        this.app_class_name = app_class_name;
    }
    @Column(name = "id_doctor")
    public String getId_doctor() {
        return id_doctor;
    }
    public void setId_doctor(String id_doctor) {
        this.id_doctor = id_doctor;
    }
    @Column(name = "fg_handle")
    public String getFg_handle() {
        return fg_handle;
    }
    public void setFg_handle(String fg_handle) {
        this.fg_handle = fg_handle;
    }
    @Column(name = "handle_time")
    public String getHandle_time() {
        return handle_time;
    }
    public void setHandle_time(String handle_time) {
        this.handle_time = handle_time;
    }
    @Column(name = "pt_name")
    public String getPt_name() {
        return pt_name;
    }
    public void setPt_name(String pt_name) {
        this.pt_name = pt_name;
    }
    @Column(name = "ge_code")
    public String getGe_code() {
        return ge_code;
    }
    public void setGe_code(String ge_code) {
        this.ge_code = ge_code;
    }
    @Column(name = "card_type")
    public String getCard_type() {
        return card_type;
    }
    public void setCard_type(String card_type) {
        this.card_type = card_type;
    }
    @Column(name = "id_no")
    public String getId_no() {
        return id_no;
    }
    public void setId_no(String id_no) {
        this.id_no = id_no;
    }
    @Column(name = "pt_tel")
    public String getPt_tel() {
        return pt_tel;
    }
    public void setPt_tel(String pt_tel) {
        this.pt_tel = pt_tel;
    }
    @Column(name = "crt_date")
    public String getCrt_date() {
        return crt_date;
    }
    public void setCrt_date(String crt_date) {
        this.crt_date = crt_date;
    }
    @Column(name = "origin_id")
    public String getOrigin_id() {
        return origin_id;
    }
    public void setOrigin_id(String origin_id) {
        this.origin_id = origin_id;
    }
}

+ 539 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpNsOrganBaseDO.java

@ -0,0 +1,539 @@
package com.yihu.jw.entity.thirdUpload;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "upns_organ_base")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class UpNsOrganBaseDO extends UuidIdentityEntity {
    private String organ_code;
    private String organ_name;
    private String corporation;
    private String no_pra_lic;
    private String  second_organ_name;
    private String charge_person;
    private String org_levelorgan_type;
    private String economic_type;
    private String organ_type;
    private String organ_sub;
    private String hospital_district;
    private String hospital_address;
    private String hospital_phone;
    private String hospital_img;
    private String bus_lic;
    private String corp_idcord_head;
    private String corp_idcord_tail;
    private String pra_lic;
    private String net_service;
    private String net_service_ot;
    private String service_dept;
    private String txt_introduction;
    private String protocol_type;
    private String protocol_content;
    private String publish_date;
    private String protocol_name;
    private String quai_mang_dept;
    private String info_mang_dept;
    private String medi_service_dept;
    private String server_type;
    private String server_total;
    private String server_ip;
    private String mp_system_type;
    private String mp_system_total;
    private String tran_link;
    private String tran_link_band;
    private String server_system_name;
    private String server_system_ip;
    private String tech_manual;
    private String server_manual;
    private String secu_level;
    private String secu_level_cert;
    private String emr_level;
    private String emr_level_cert;
    private String zone_record_share;
    private String prov_monitor;
    private String prov_service;
    private String server_func;
    private String third_compeny_name;
    private String third_compeny_code;
    private String third_compeny_cert;
    private String third_compeny_corp;
    private String third_compeny_corp_id;
    private String third_compeny_prot;
    private String green_road;
    private Date create_time;
    private Date update_time;
    private String is_del;
    @Column(name = "update_time")
    public Date getUpdate_time() {
        return update_time;
    }
    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "organ_code")
    public String getOrgan_code() {
        return organ_code;
    }
    public void setOrgan_code(String organ_code) {
        this.organ_code = organ_code;
    }
    @Column(name = "organ_name")
    public String getOrgan_name() {
        return organ_name;
    }
    public void setOrgan_name(String organ_name) {
        this.organ_name = organ_name;
    }
    @Column(name = "corporation")
    public String getCorporation() {
        return corporation;
    }
    public void setCorporation(String corporation) {
        this.corporation = corporation;
    }
    @Column(name = "no_pra_lic")
    public String getNo_pra_lic() {
        return no_pra_lic;
    }
    public void setNo_pra_lic(String no_pra_lic) {
        this.no_pra_lic = no_pra_lic;
    }
    @Column(name = " second_organ_name")
    public String getSecond_organ_name() {
        return second_organ_name;
    }
    public void setSecond_organ_name(String second_organ_name) {
        this.second_organ_name = second_organ_name;
    }
    @Column(name = "charge_person")
    public String getCharge_person() {
        return charge_person;
    }
    public void setCharge_person(String charge_person) {
        this.charge_person = charge_person;
    }
    @Column(name = "org_levelorgan_type")
    public String getOrg_levelorgan_type() {
        return org_levelorgan_type;
    }
    public void setOrg_levelorgan_type(String org_levelorgan_type) {
        this.org_levelorgan_type = org_levelorgan_type;
    }
    @Column(name = "economic_type")
    public String getEconomic_type() {
        return economic_type;
    }
    public void setEconomic_type(String economic_type) {
        this.economic_type = economic_type;
    }
    @Column(name = "organ_type")
    public String getOrgan_type() {
        return organ_type;
    }
    public void setOrgan_type(String organ_type) {
        this.organ_type = organ_type;
    }
    @Column(name = "organ_sub")
    public String getOrgan_sub() {
        return organ_sub;
    }
    public void setOrgan_sub(String organ_sub) {
        this.organ_sub = organ_sub;
    }
    @Column(name = "hospital_district")
    public String getHospital_district() {
        return hospital_district;
    }
    public void setHospital_district(String hospital_district) {
        this.hospital_district = hospital_district;
    }
    @Column(name = "hospital_address")
    public String getHospital_address() {
        return hospital_address;
    }
    public void setHospital_address(String hospital_address) {
        this.hospital_address = hospital_address;
    }
    @Column(name = "hospital_phone")
    public String getHospital_phone() {
        return hospital_phone;
    }
    public void setHospital_phone(String hospital_phone) {
        this.hospital_phone = hospital_phone;
    }
    @Column(name = "hospital_img")
    public String getHospital_img() {
        return hospital_img;
    }
    public void setHospital_img(String hospital_img) {
        this.hospital_img = hospital_img;
    }
    @Column(name = "bus_lic")
    public String getBus_lic() {
        return bus_lic;
    }
    public void setBus_lic(String bus_lic) {
        this.bus_lic = bus_lic;
    }
    @Column(name = "corp_idcord_head")
    public String getCorp_idcord_head() {
        return corp_idcord_head;
    }
    public void setCorp_idcord_head(String corp_idcord_head) {
        this.corp_idcord_head = corp_idcord_head;
    }
    @Column(name = "corp_idcord_tail")
    public String getCorp_idcord_tail() {
        return corp_idcord_tail;
    }
    public void setCorp_idcord_tail(String corp_idcord_tail) {
        this.corp_idcord_tail = corp_idcord_tail;
    }
    @Column(name = "pra_lic")
    public String getPra_lic() {
        return pra_lic;
    }
    public void setPra_lic(String pra_lic) {
        this.pra_lic = pra_lic;
    }
    @Column(name = "net_service")
    public String getNet_service() {
        return net_service;
    }
    public void setNet_service(String net_service) {
        this.net_service = net_service;
    }
    @Column(name = "net_service_ot")
    public String getNet_service_ot() {
        return net_service_ot;
    }
    public void setNet_service_ot(String net_service_ot) {
        this.net_service_ot = net_service_ot;
    }
    @Column(name = "service_dept")
    public String getService_dept() {
        return service_dept;
    }
    public void setService_dept(String service_dept) {
        this.service_dept = service_dept;
    }
    @Column(name = "txt_introduction")
    public String getTxt_introduction() {
        return txt_introduction;
    }
    public void setTxt_introduction(String txt_introduction) {
        this.txt_introduction = txt_introduction;
    }
    @Column(name = "protocol_type")
    public String getProtocol_type() {
        return protocol_type;
    }
    public void setProtocol_type(String protocol_type) {
        this.protocol_type = protocol_type;
    }
    @Column(name = "protocol_content")
    public String getProtocol_content() {
        return protocol_content;
    }
    public void setProtocol_content(String protocol_content) {
        this.protocol_content = protocol_content;
    }
    @Column(name = "publish_date")
    public String getPublish_date() {
        return publish_date;
    }
    public void setPublish_date(String publish_date) {
        this.publish_date = publish_date;
    }
    @Column(name = "protocol_name")
    public String getProtocol_name() {
        return protocol_name;
    }
    public void setProtocol_name(String protocol_name) {
        this.protocol_name = protocol_name;
    }
    @Column(name = "quai_mang_dept")
    public String getQuai_mang_dept() {
        return quai_mang_dept;
    }
    public void setQuai_mang_dept(String quai_mang_dept) {
        this.quai_mang_dept = quai_mang_dept;
    }
    @Column(name = "info_mang_dept")
    public String getInfo_mang_dept() {
        return info_mang_dept;
    }
    public void setInfo_mang_dept(String info_mang_dept) {
        this.info_mang_dept = info_mang_dept;
    }
    @Column(name = "medi_service_dept")
    public String getMedi_service_dept() {
        return medi_service_dept;
    }
    public void setMedi_service_dept(String medi_service_dept) {
        this.medi_service_dept = medi_service_dept;
    }
    @Column(name = "server_type")
    public String getServer_type() {
        return server_type;
    }
    public void setServer_type(String server_type) {
        this.server_type = server_type;
    }
    @Column(name = "server_total")
    public String getServer_total() {
        return server_total;
    }
    public void setServer_total(String server_total) {
        this.server_total = server_total;
    }
    @Column(name = "server_ip")
    public String getServer_ip() {
        return server_ip;
    }
    public void setServer_ip(String server_ip) {
        this.server_ip = server_ip;
    }
    @Column(name = "mp_system_type")
    public String getMp_system_type() {
        return mp_system_type;
    }
    public void setMp_system_type(String mp_system_type) {
        this.mp_system_type = mp_system_type;
    }
    @Column(name = "mp_system_total")
    public String getMp_system_total() {
        return mp_system_total;
    }
    public void setMp_system_total(String mp_system_total) {
        this.mp_system_total = mp_system_total;
    }
    @Column(name = "tran_link")
    public String getTran_link() {
        return tran_link;
    }
    public void setTran_link(String tran_link) {
        this.tran_link = tran_link;
    }
    @Column(name = "tran_link_band")
    public String getTran_link_band() {
        return tran_link_band;
    }
    public void setTran_link_band(String tran_link_band) {
        this.tran_link_band = tran_link_band;
    }
    @Column(name = "server_system_name")
    public String getServer_system_name() {
        return server_system_name;
    }
    public void setServer_system_name(String server_system_name) {
        this.server_system_name = server_system_name;
    }
    @Column(name = "server_system_ip")
    public String getServer_system_ip() {
        return server_system_ip;
    }
    public void setServer_system_ip(String server_system_ip) {
        this.server_system_ip = server_system_ip;
    }
    @Column(name = "tech_manual")
    public String getTech_manual() {
        return tech_manual;
    }
    public void setTech_manual(String tech_manual) {
        this.tech_manual = tech_manual;
    }
    @Column(name = "server_manual")
    public String getServer_manual() {
        return server_manual;
    }
    public void setServer_manual(String server_manual) {
        this.server_manual = server_manual;
    }
    @Column(name = "secu_level")
    public String getSecu_level() {
        return secu_level;
    }
    public void setSecu_level(String secu_level) {
        this.secu_level = secu_level;
    }
    @Column(name = "secu_level_cert")
    public String getSecu_level_cert() {
        return secu_level_cert;
    }
    public void setSecu_level_cert(String secu_level_cert) {
        this.secu_level_cert = secu_level_cert;
    }
    @Column(name = "emr_level")
    public String getEmr_level() {
        return emr_level;
    }
    public void setEmr_level(String emr_level) {
        this.emr_level = emr_level;
    }
    @Column(name = "emr_level_cert")
    public String getEmr_level_cert() {
        return emr_level_cert;
    }
    public void setEmr_level_cert(String emr_level_cert) {
        this.emr_level_cert = emr_level_cert;
    }
    @Column(name = "zone_record_share")
    public String getZone_record_share() {
        return zone_record_share;
    }
    public void setZone_record_share(String zone_record_share) {
        this.zone_record_share = zone_record_share;
    }
    @Column(name = "prov_monitor")
    public String getProv_monitor() {
        return prov_monitor;
    }
    public void setProv_monitor(String prov_monitor) {
        this.prov_monitor = prov_monitor;
    }
    @Column(name = "prov_service")
    public String getProv_service() {
        return prov_service;
    }
    public void setProv_service(String prov_service) {
        this.prov_service = prov_service;
    }
    @Column(name = "server_func")
    public String getServer_func() {
        return server_func;
    }
    public void setServer_func(String server_func) {
        this.server_func = server_func;
    }
    @Column(name = "third_compeny_name")
    public String getThird_compeny_name() {
        return third_compeny_name;
    }
    public void setThird_compeny_name(String third_compeny_name) {
        this.third_compeny_name = third_compeny_name;
    }
    @Column(name = "third_compeny_code")
    public String getThird_compeny_code() {
        return third_compeny_code;
    }
    public void setThird_compeny_code(String third_compeny_code) {
        this.third_compeny_code = third_compeny_code;
    }
    @Column(name = "third_compeny_cert")
    public String getThird_compeny_cert() {
        return third_compeny_cert;
    }
    public void setThird_compeny_cert(String third_compeny_cert) {
        this.third_compeny_cert = third_compeny_cert;
    }
    @Column(name = "third_compeny_corp")
    public String getThird_compeny_corp() {
        return third_compeny_corp;
    }
    public void setThird_compeny_corp(String third_compeny_corp) {
        this.third_compeny_corp = third_compeny_corp;
    }
    @Column(name = "third_compeny_corp_id")
    public String getThird_compeny_corp_id() {
        return third_compeny_corp_id;
    }
    public void setThird_compeny_corp_id(String third_compeny_corp_id) {
        this.third_compeny_corp_id = third_compeny_corp_id;
    }
    @Column(name = "third_compeny_prot")
    public String getThird_compeny_prot() {
        return third_compeny_prot;
    }
    public void setThird_compeny_prot(String third_compeny_prot) {
        this.third_compeny_prot = third_compeny_prot;
    }
    @Column(name = "green_road")
    public String getGreen_road() {
        return green_road;
    }
    public void setGreen_road(String green_road) {
        this.green_road = green_road;
    }
    @Column(name = "create_time")
    public Date getCreate_time() {
        return create_time;
    }
    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
}

+ 268 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpnsDoctorRecordDO.java

@ -0,0 +1,268 @@
package com.yihu.jw.entity.thirdUpload;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "upns_doctor_record")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class UpnsDoctorRecordDO extends UuidIdentityEntity {
    private String organ_code;
    private String organ_name;
    private String doc_name;
    private String docimg;
    private String id_card;
    private String sex;
    private String birthday;
    private String subject;
    private String subject_name;
    private String belong_dept;
    private String belong_dept_name;
    private String doo_tel;
    private String title_rec_date;
    private String prac_type;
    private String title_code;
    private String first_compeny_code;
    private String first_compeny_name;
    private String secd_compeny_code;
    private String secd_compeny_name;
    private String net_service;
    private String cert_no;
    private String prac_no;
    private String doc_cert;
    private String cert_doc_prac;
    private String txt_introduction;
    private Date create_time;
    private Date update_time;
    private String is_del;
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "update_time")
    public Date getUpdate_time() {
        return update_time;
    }
    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }
    @Column(name = "create_time")
    public Date getCreate_time() {
        return create_time;
    }
    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
    @Column(name = "organ_code")
    public String getOrgan_code() {
        return organ_code;
    }
    public void setOrgan_code(String organ_code) {
        this.organ_code = organ_code;
    }
    @Column(name = "organ_name")
    public String getOrgan_name() {
        return organ_name;
    }
    public void setOrgan_name(String organ_name) {
        this.organ_name = organ_name;
    }
    @Column(name = "doc_name")
    public String getDoc_name() {
        return doc_name;
    }
    public void setDoc_name(String doc_name) {
        this.doc_name = doc_name;
    }
    @Column(name = "docimg")
    public String getDocimg() {
        return docimg;
    }
    public void setDocimg(String docimg) {
        this.docimg = docimg;
    }
    @Column(name = "id_card")
    public String getId_card() {
        return id_card;
    }
    public void setId_card(String id_card) {
        this.id_card = id_card;
    }
    @Column(name = "sex")
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Column(name = "birthday")
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    @Column(name = "subject")
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
    @Column(name = "subject_name")
    public String getSubject_name() {
        return subject_name;
    }
    public void setSubject_name(String subject_name) {
        this.subject_name = subject_name;
    }
    @Column(name = "belong_dept")
    public String getBelong_dept() {
        return belong_dept;
    }
    public void setBelong_dept(String belong_dept) {
        this.belong_dept = belong_dept;
    }
    @Column(name = "belong_dept_name")
    public String getBelong_dept_name() {
        return belong_dept_name;
    }
    public void setBelong_dept_name(String belong_dept_name) {
        this.belong_dept_name = belong_dept_name;
    }
    @Column(name = "doo_tel")
    public String getDoo_tel() {
        return doo_tel;
    }
    public void setDoo_tel(String doo_tel) {
        this.doo_tel = doo_tel;
    }
    @Column(name = "title_rec_date")
    public String getTitle_rec_date() {
        return title_rec_date;
    }
    public void setTitle_rec_date(String title_rec_date) {
        this.title_rec_date = title_rec_date;
    }
    @Column(name = "prac_type")
    public String getPrac_type() {
        return prac_type;
    }
    public void setPrac_type(String prac_type) {
        this.prac_type = prac_type;
    }
    @Column(name = "title_code")
    public String getTitle_code() {
        return title_code;
    }
    public void setTitle_code(String title_code) {
        this.title_code = title_code;
    }
    @Column(name = "first_compeny_code")
    public String getFirst_compeny_code() {
        return first_compeny_code;
    }
    public void setFirst_compeny_code(String first_compeny_code) {
        this.first_compeny_code = first_compeny_code;
    }
    @Column(name = "first_compeny_name")
    public String getFirst_compeny_name() {
        return first_compeny_name;
    }
    public void setFirst_compeny_name(String first_compeny_name) {
        this.first_compeny_name = first_compeny_name;
    }
    @Column(name = "secd_compeny_code")
    public String getSecd_compeny_code() {
        return secd_compeny_code;
    }
    public void setSecd_compeny_code(String secd_compeny_code) {
        this.secd_compeny_code = secd_compeny_code;
    }
    @Column(name = "secd_compeny_name")
    public String getSecd_compeny_name() {
        return secd_compeny_name;
    }
    public void setSecd_compeny_name(String secd_compeny_name) {
        this.secd_compeny_name = secd_compeny_name;
    }
    @Column(name = "net_service")
    public String getNet_service() {
        return net_service;
    }
    public void setNet_service(String net_service) {
        this.net_service = net_service;
    }
    @Column(name = "cert_no")
    public String getCert_no() {
        return cert_no;
    }
    public void setCert_no(String cert_no) {
        this.cert_no = cert_no;
    }
    @Column(name = "prac_no")
    public String getPrac_no() {
        return prac_no;
    }
    public void setPrac_no(String prac_no) {
        this.prac_no = prac_no;
    }
    @Column(name = "doc_cert")
    public String getDoc_cert() {
        return doc_cert;
    }
    public void setDoc_cert(String doc_cert) {
        this.doc_cert = doc_cert;
    }
    @Column(name = "cert_doc_prac")
    public String getCert_doc_prac() {
        return cert_doc_prac;
    }
    public void setCert_doc_prac(String cert_doc_prac) {
        this.cert_doc_prac = cert_doc_prac;
    }
    @Column(name = "txt_introduction")
    public String getTxt_introduction() {
        return txt_introduction;
    }
    public void setTxt_introduction(String txt_introduction) {
        this.txt_introduction = txt_introduction;
    }
}

+ 144 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/thirdUpload/UpnsDoctorScoreDO.java

@ -0,0 +1,144 @@
package com.yihu.jw.entity.thirdUpload;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "upns_doctor_score")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class UpnsDoctorScoreDO extends UuidIdentityEntity {
    private String id_doctor;
    private String organ_code;
    private String organ_name;
    private String net_service;
    private String net_service_name;
    private String val_score;
    private String grader;
    private String dt_grade;
    private String crt_date;
    private String origin_id;
    private String grade_content;
    private Date create_time;
    private Date update_time;
    private String is_del;
    @Column(name = "grade_content")
    public String getGrade_content() {
        return grade_content;
    }
    public void setGrade_content(String grade_content) {
        this.grade_content = grade_content;
    }
    @Column(name = "update_time")
    public Date getUpdate_time() {
        return update_time;
    }
    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "create_time")
    public Date getCreate_time() {
        return create_time;
    }
    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }
    @Column(name = "id_doctor")
    public String getId_doctor() {
        return id_doctor;
    }
    public void setId_doctor(String id_doctor) {
        this.id_doctor = id_doctor;
    }
    @Column(name = "organ_code")
    public String getOrgan_code() {
        return organ_code;
    }
    public void setOrgan_code(String organ_code) {
        this.organ_code = organ_code;
    }
    @Column(name = "organ_name")
    public String getOrgan_name() {
        return organ_name;
    }
    public void setOrgan_name(String organ_name) {
        this.organ_name = organ_name;
    }
    @Column(name = "net_service")
    public String getNet_service() {
        return net_service;
    }
    public void setNet_service(String net_service) {
        this.net_service = net_service;
    }
    @Column(name = "net_service_name")
    public String getNet_service_name() {
        return net_service_name;
    }
    public void setNet_service_name(String net_service_name) {
        this.net_service_name = net_service_name;
    }
    @Column(name = "val_score")
    public String getVal_score() {
        return val_score;
    }
    public void setVal_score(String val_score) {
        this.val_score = val_score;
    }
    @Column(name = "grader")
    public String getGrader() {
        return grader;
    }
    public void setGrader(String grader) {
        this.grader = grader;
    }
    @Column(name = "dt_grade")
    public String getDt_grade() {
        return dt_grade;
    }
    public void setDt_grade(String dt_grade) {
        this.dt_grade = dt_grade;
    }
    @Column(name = "crt_date")
    public String getCrt_date() {
        return crt_date;
    }
    public void setCrt_date(String crt_date) {
        this.crt_date = crt_date;
    }
    @Column(name = "origin_id")
    public String getOrigin_id() {
        return origin_id;
    }
    public void setOrigin_id(String origin_id) {
        this.origin_id = origin_id;
    }
}

+ 1 - 1
common/common-util/src/main/java/com/yihu/jw/util/common/LatitudeUtils.java

@ -39,7 +39,7 @@ public class LatitudeUtils {
        try {
            //将地址转换成utf-8的16进制
            address = URLEncoder.encode(address, "UTF-8");
            URL tirc = new URL("http://api.map.baidu.com/geocoder/v2/?address="+ address +"&output=json&key="+ UUID.randomUUID().toString().replace("-","")+"&ak="+ak);
            URL tirc = new URL("https://api.map.baidu.com/geocoder/v2/?address="+ address +"&output=json&key="+ UUID.randomUUID().toString().replace("-","")+"&ak="+ak);
            in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8"));

+ 2 - 0
svr/svr-cloud-care/src/main/java/com/yihu/SvrCloudCareApplication.java

@ -4,6 +4,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
/**
@ -11,6 +12,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 */
@SpringBootApplication
@EnableJpaAuditing
@ComponentScan("com.yihu")
public class SvrCloudCareApplication extends SpringBootServletInitializer {
    public static void main(String[] args)  {

+ 6 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/AqgConfig.java

@ -36,8 +36,14 @@ public class AqgConfig {
     * 设置智能手环安全区域
     */
    public static final String S3fence_area = baseUrl +"/api/device/{0}/fences/{1}";
    public static final String X1fence_area = baseUrl +"/api/device/{0}/4g/fences/{1}";
    /**
     * X1定位数据  即轨迹
     */
    public static final String X1_locations = baseUrl+"/api/locationdata/";
    /**
     * 睡眠带 修改心率呼吸率报警阈值
     */
@ -48,11 +54,6 @@ public class AqgConfig {
     */
    public static final String  sleepDevice_info=baseUrl+"/api/sleepdevice/";
    /**
     * X1定位数据  即轨迹
     */
    public static final String X1_locations = baseUrl+"/api/locationdata/";
    public static final String username = "13559485270";
    public static final String password = "zjxl@2021";
    public static final String redisKey = "aqgCooker";

+ 25 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepNightRecordDao.java

@ -0,0 +1,25 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.BaseSleepNightRecord;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
/**
 * Created by Bing on 2021/8/17.
 */
public interface BaseSleepNightRecordDao extends PagingAndSortingRepository<BaseSleepNightRecord,Long>,
        JpaSpecificationExecutor<BaseSleepNightRecord> {
    @Query(value = "select r from BaseSleepNightRecord r where r.deviceSn=?1 and r.patient=?2 order by r.createTime desc")
    List<BaseSleepNightRecord> findByDeviceSnAndPatient(String deviceSn, String patient);
    @Query(value = "select r from BaseSleepNightRecord r where r.deviceSn=?1 and r.patient=?2 and r.status=?3 and r.createTime>?4 order by r.createTime desc")
    List<BaseSleepNightRecord> findBySnStaPaTime(String deviceSn,String patient,Integer status, Date benIn);
    List<BaseSleepNightRecord> findByPatientAndDayOrderByCreateTimeDesc(String patient,String day);
}

+ 5 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepPlanDao.java

@ -5,6 +5,9 @@ import com.yihu.jw.entity.care.device.BaseSleepPlan;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.awt.print.Pageable;
import java.util.List;
/***
 * @ClassName: BaseSleepPlanDao
 * @Description:
@ -13,4 +16,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 */
public interface BaseSleepPlanDao extends PagingAndSortingRepository<BaseSleepPlan,Long>,
        JpaSpecificationExecutor<BaseSleepPlan> {
    List<BaseSleepPlan> findByPatient(String patient);
}

+ 24 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepPlanDetailDao.java

@ -0,0 +1,24 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.BaseSleepPlanDetail;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
/**
 * Created by Bing on 2021/8/23.
 */
public interface BaseSleepPlanDetailDao extends PagingAndSortingRepository<BaseSleepPlanDetail,Long>,
        JpaSpecificationExecutor<BaseSleepPlanDetail> {
    List<BaseSleepPlanDetail> findByPatientAndDay(String patient, String day);
    @Query("SELECT a FROM BaseSleepPlanDetail a WHERE a.patient = ?1 AND a.day>=?2 and a.day<=?3 ORDER BY a.day desc")
    Page<BaseSleepPlanDetail> findByListByPage(String patient, String begin, String end, Pageable pageRequest);
}

+ 7 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/PatientDeviceDao.java

@ -55,7 +55,10 @@ public interface PatientDeviceDao extends PagingAndSortingRepository<DevicePatie
    @Query("select a from DevicePatientDevice a")
    List<DevicePatientDevice> findAll();
    @Query("select a from DevicePatientDevice a where a.categoryCode = ?1")
    @Query("select a from DevicePatientDevice a group by a.user")
    List<DevicePatientDevice> findAllGroupUser();
    @Query("select a from DevicePatientDevice a where a.categoryCode = ?1 and a.del=0 group by a.user")
    List<DevicePatientDevice> findAllByCategoryCode(String categoryCode);
    @Modifying
@ -65,6 +68,9 @@ public interface PatientDeviceDao extends PagingAndSortingRepository<DevicePatie
    @Query("select a from DevicePatientDevice a where a.user=?1 and a.del=0")
    List<DevicePatientDevice> findAllByUser(String user);
    @Query("select a from DevicePatientDevice a where a.user=?1 and a.categoryCode =?2 and a.del=0")
    List<DevicePatientDevice> findAllByUserAndCategoryCode(String user,String categoryCode);
    @Query("select a from DevicePatientDevice a where a.user=?1 and a.categoryCode =?2 and a.del=0")
    List<DevicePatientDevice> findByUserAndCategoryCode(String user,String categoryCode);
}

+ 18 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/BaseController.java

@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.dict.BaseExceptionDictDO;
import com.yihu.jw.entity.iot.gateway.IdEntity;
import com.yihu.jw.restmodel.exception.dao.BaseExceptionDictDao;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@ -80,6 +79,24 @@ public class BaseController {
        }
    }
    /**
     * 获取代理人的code
     * 老人亲属
     * @return
     */
    public String getAgentUID() {
        try {
            String userAgent = request.getHeader("userAgent");
            if (StringUtils.isEmpty(userAgent)) {
                userAgent = request.getHeader("User-Agent");
            }
            JSONObject json = new JSONObject(userAgent);
            return json.getString("agent");
        } catch (Exception e) {
            return null;
        }
    }
    /**
     * 获取平台端

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

@ -144,9 +144,19 @@ public class PadDeviceController extends BaseController {
            device.setAgentName(doctor.getName());
            String sn = device.getDeviceSn();
            synchronized (sn.intern()){
                Boolean flagDevice = patientDeviceService.saveDevice(device,sleepPlan,iotDeviceSn,safeAreaGz);
                if (flagDevice == false){
                int flagDevice = patientDeviceService.saveDevice(device,sleepPlan,iotDeviceSn,safeAreaGz);
                if (flagDevice == 0){
                    return write(-1,"请填写投放地址");
                } else if (flagDevice == -1) {
                    return write(-1,"设备不存在");
                } else if (flagDevice == -2) {
                    return write(-1,"请完善睡眠时间规划");
                } else if (flagDevice == -3) {
                    return write(-1,"sn码已被使用");
                } else if (flagDevice == -4) {
                    return write(-1,"不存在该条记录");
                } else if (flagDevice == -5) {
                    return write(-1,"请勿重复绑定设备");
                }
                //注册设备地址
                deviceDetailService.registerToWlyy(device);

+ 34 - 7
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java

@ -1,5 +1,6 @@
package com.yihu.jw.care.endpoint.device;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.endpoint.BaseController;
@ -11,6 +12,7 @@ import com.yihu.jw.entity.care.device.BaseSleepPlan;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.util.entity.ServiceException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -101,8 +103,8 @@ public class PatientDeviceController extends BaseController {
    public String saveDevice(@ApiParam(name = "json", value = "设备数据json", defaultValue = "{\"deviceId\": \"3\",\"deviceName\": \"血压计-优瑞恩\",\"deviceSn\": \"7052169111\",\"categoryCode\": \"1\",\"userType\": \"-1\"}")
                             @RequestParam(value = "json", required = true) String json,
                             @ApiParam(name = "sleepPlanJson", value = "睡眠计划json") @RequestParam(value = "sleepPlanJson", required = false) String sleepPlanJson,
                             @ApiParam(name = "iotDeviceSn", value = "iotDeviceSn") @RequestParam(value = "iotDeviceSn", required = false) String iotDeviceSn,
                             @ApiParam(name = "safeAreaGz", value = "safeAreaGz") @RequestParam(value = "safeAreaGz", required = false) String safeAreaGz){
                             @ApiParam(name = "iotDeviceSn", value = "对应的设备sn码") @RequestParam(value = "iotDeviceSn", required = false) String iotDeviceSn,
                             @ApiParam(name = "safeAreaGz", value = "智能拐杖时需要传围栏地址") @RequestParam(value = "safeAreaGz", required = false) String safeAreaGz){
        //{"deviceSn": "7052169111","getUpTime": "07:00","napTime": "13:00","nightRestTime": "21:30"})
        try {
            DevicePatientDevice device = objectMapper.readValue(json, DevicePatientDevice.class);
@ -129,9 +131,19 @@ public class PatientDeviceController extends BaseController {
            String sn = device.getDeviceSn();
            synchronized (sn.intern()){
//                patientDeviceService.saveDevice(device);
                Boolean flagDevice = patientDeviceService.saveDevice(device,sleepPlan,iotDeviceSn,safeAreaGz);
                if (flagDevice == false){
                int flagDevice = patientDeviceService.saveDevice(device,sleepPlan,iotDeviceSn,safeAreaGz);
                if (flagDevice == 0){
                    return write(-1,"请填写投放地址");
                } else if (flagDevice == -1) {
                    return write(-1,"设备不存在");
                } else if (flagDevice == -2) {
                    return write(-1,"请完善睡眠时间规划");
                } else if (flagDevice == -3) {
                    return write(-1,"sn码已被使用");
                } else if (flagDevice == -4) {
                    return write(-1,"不存在该条记录");
                } else if (flagDevice == -5) {
                    return write(-1,"请勿重复绑定设备");
                }
                //注册设备地址
                deviceDetailService.registerToWlyy(device);
@ -338,6 +350,19 @@ public class PatientDeviceController extends BaseController {
        }
    }
    @ApiOperation("获取X1手表定位数据列表")
    @RequestMapping(value = "getX1Locations",method = RequestMethod.GET)
    public String getX1Locations(@ApiParam(name = "deviceSn",value = "设备sn码")
                                        @RequestParam(value = "deviceSn",required = true)String deviceSn,
                                        @ApiParam(name = "time_begin",value = "YYYYMMDD 定位日期")
                                        @RequestParam(value = "time_begin",required = false)String time_begin){
        try {
            return write(200,"获取成功","data",patientDeviceService.getX1Locations(deviceSn, time_begin));
        }catch (Exception e){
            return errorResult(e);
        }
    }
    @ApiOperation("获取睡眠带设备信息")
    @RequestMapping(value = "getSleepDeviceInfo",method = RequestMethod.GET)
    public String getSleepDeviceInfo(@ApiParam(name = "deviceSn",value = "睡眠带MAC 去除符号:")
@ -387,12 +412,14 @@ public class PatientDeviceController extends BaseController {
    public String getPatientDeviceDetail(@ApiParam(name="patient")
                                         @RequestParam(value = "patient")String patient,
                                         @ApiParam(name="deviceSN")
                                         @RequestParam(value = "deviceSN")String deviceSn){
                                         @RequestParam(value = "deviceSN")String deviceSn,
                                         @ApiParam(name="day",value = "yyyy-mm-dd")
                                         @RequestParam(value = "day",required = false)String day){
        try {
            JSONObject result = patientDeviceService.getPatientDeviceDetail(patient,deviceSn);
            JSONObject result = patientDeviceService.getPatientDeviceDetail(patient,deviceSn,day);
            if (result.getInt(ResponseContant.resultFlag)==ResponseContant.success){
                return write(200,"获取成功","data",result.getJSONObject(ResponseContant.resultMsg));
                return write(200,"获取成功","data", JSON.parseObject(result.getString(ResponseContant.resultMsg)));
            }else {
                return error(-1,result.getString(ResponseContant.resultMsg));
            }

+ 44 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/security/SecurityMonitoringOrderEndpoint.java

@ -411,4 +411,48 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getPatientSleepPlan")
    @ApiOperation(value = "获取居民睡眠计划")
    public ObjEnvelop getPatientSleepPlan(@ApiParam(name="patient",value = "patient")
                                           @RequestParam(value = "patient") String patient){
        try {
            return ObjEnvelop.getSuccess("获取成功",securityMonitoringOrderService.getPatientSleepPlan(patient));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getPatientSleepDetainList")
    @ApiOperation(value = "获取居民睡眠监护列表")
    public ObjEnvelop getPatientSleepDetainList(@ApiParam(name="patient",value = "patient")
                                          @RequestParam(value = "patient") String patient,
                                          @ApiParam(name="begin",value = "beginTime yyyy-MM-dd")
                                          @RequestParam(value = "begin") String begin,
                                          @ApiParam(name="end",value = "endTime")
                                          @RequestParam(value = "end",required = false) String end,
                                          @ApiParam(name="page",value = "page")
                                          @RequestParam(value = "page",defaultValue = "0") Integer page,
                                          @ApiParam(name="pageSize",value = "pageSize")
                                          @RequestParam(value = "pageSize",defaultValue = "1") Integer pageSize){
        try {
            return ObjEnvelop.getSuccess("查询成功",securityMonitoringOrderService.getPatientSleepDetainList(patient,begin,end,page,pageSize)) ;
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "getPatientSleepNightRecord")
    @ApiOperation(value = "获取居民起夜记录")
    public ListEnvelop getPatientSleepPlan(@ApiParam(name="patient",value = "patient")
                                          @RequestParam(value = "patient") String patient,
                                          @ApiParam(name="day",value = "监护日期 yyyy-MM-dd")
                                          @RequestParam(value = "day") String day){
        try {
            return ListEnvelop.getSuccess("获取成功",securityMonitoringOrderService.getPatientSleepNightRecord(patient,day));
        }catch (Exception e){
            return failedListEnvelopException2(e);
        }
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java

@ -178,7 +178,7 @@ public class SignEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "servicePackageByTopicType")
    @ApiOperation(value = "根据服务专题获取服务项目")
    @ApiOperation(value = "根据服务专题获取服务项目--存在绑定设备的专题")
    public ObjEnvelop servicePackageByTopicType (
            @ApiParam(name = "patient", value = "patient", required = true)
            @RequestParam(value = "patient") String patient,

+ 11 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java

@ -55,6 +55,17 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getRealTimeData")
    @ApiOperation(value = "实时数据")
    public ObjEnvelop getRealTimeData(){
        try {
            JSONObject o = platformService.getRealTimeData();
            return success(o);
        }catch (Exception e){
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "getDeviceType")
    @ApiOperation(value = "设备类型")
    public ListEnvelop getDeviceType(){

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

@ -110,12 +110,16 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
     * 获取百度天气
     */
    public JSONObject getBaiduWeather(){
        String url = "https://api.map.baidu.com/weather/v1/?district_id=330100&data_type=now&ak=0vjnCSReegE7A47a941ohjv9a07ONiMC";
        String response = httpClientUtil.get(url,"UTF-8");
        JSONObject responseObj = JSONObject.parseObject(response);
        if (responseObj.getInteger("status")==0){
            JSONObject now = responseObj.getJSONObject("result").getJSONObject("now");
            return now;
        try {
            String url = "https://api.map.baidu.com/weather/v1/?district_id=330100&data_type=now&ak=0vjnCSReegE7A47a941ohjv9a07ONiMC";
            String response = httpClientUtil.get(url,"UTF-8");
            JSONObject responseObj = JSONObject.parseObject(response);
            if (responseObj.getInteger("status")==0){
                JSONObject now = responseObj.getJSONObject("result").getJSONObject("now");
                return now;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return new JSONObject();
    }

+ 22 - 24
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java

@ -259,37 +259,35 @@ public class ContactsService {
        }
        if (1==operType){//新增联系人
            list = sosContactsDao.findByPatientAndDel(patient,1);
            Integer seqid=1;
            Integer seqid=0;
            if (list.size()>=2){
                result.put(ResponseContant.resultFlag,ResponseContant.fail);
                result.put(ResponseContant.resultMsg,"该用户紧急联系人已上线");
                return result;
            }
            else {
                if (list.size()>0){
                    seqid = list.get(0).getPhoneSeqid();
                List<String> sosContacts =list.stream().map(PatientSosContactsDO::getSosPhone).collect(Collectors.toList());
                if (!sosContacts.contains(num)){
                    result.put(ResponseContant.resultFlag,ResponseContant.fail);
                    result.put(ResponseContant.resultMsg,"该用户紧急联系人已上限");
                    return result;
                }
                PatientSosContactsDO contactsDO = new PatientSosContactsDO();
                list = sosContactsDao.findByPatientAndDel(patient,0);
                if (list.size()>0) {
                    contactsDO =list.get(0);
                }
                else {
                    contactsDO.setPhoneSeqid(1==seqid?2:1);
                }
                contactsDO.setDel(1);
                contactsDO.setPatient(patient);
                contactsDO.setSosName(name);
                contactsDO.setSosPhone(num);
                contactsDO.setRelation(Integer.parseInt(relation));
                contactsDO.setSuccessFlag(0);
                sosContactsDao.save(contactsDO);
            }
            if (list.size()>0){
                seqid = list.get(0).getPhoneSeqid();
            }
            PatientSosContactsDO contactsDO = sosContactsDao.findByPatientAndSosPhone(patient,num);
            if(null==contactsDO){
                contactsDO = new PatientSosContactsDO();
                contactsDO.setPhoneSeqid(1==seqid?2:1);
            }
            contactsDO.setDel(1);
            contactsDO.setPatient(patient);
            contactsDO.setSosName(name);
            contactsDO.setSosPhone(num);
            contactsDO.setRelation(Integer.parseInt(relation));
            contactsDO.setSuccessFlag(0);
            sosContactsDao.save(contactsDO);
        }
        result.put(ResponseContant.resultFlag,ResponseContant.success);
        result.put(ResponseContant.resultMsg,"修改成功");
        return result;
    }
    public void delSosNumber(List<Map<String,Object>> sims,String patient,String[] numTmp) {

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

@ -61,10 +61,9 @@ public class DeviceDetailService extends BaseJpaService<DeviceDetail, DeviceDeta
	 * @param isFirst
	 * @throws Exception
	 */
	@Transactional
	@Transactional(rollbackFor = Exception.class)
	public void updateAfterBinding(DevicePatientDevice devicePatientDevice, Date grantTime, boolean isFirst)throws Exception{
		DeviceDetail deviceDetail = deviceDetailDao.findBySn(devicePatientDevice.getDeviceSn());
		int bind = deviceDetail.getIsBinding();
		long adminTeam=0L;
		String hospital = "";
		String isFirstBind = "";
@ -77,8 +76,12 @@ public class DeviceDetailService extends BaseJpaService<DeviceDetail, DeviceDeta
		}
		//设备表没有数据则插入一条数据
		if (deviceDetail==null){
			insertDevice(devicePatientDevice,String.valueOf(adminTeam),hospitalName,hospital,"",doctorCode,doctorName,1);
			deviceDetail = deviceDetailDao.findBySn(devicePatientDevice.getDeviceSn());
			deviceDetail = insertDevice(devicePatientDevice,String.valueOf(adminTeam),hospitalName,hospital,"",doctorCode,doctorName,1);
		}
		Integer bind = deviceDetail.getIsBinding();
		if(bind==null){
			bind = 0;
		}
		isFirstBind = deviceDetail.getBindingCount();
@ -116,7 +119,7 @@ public class DeviceDetailService extends BaseJpaService<DeviceDetail, DeviceDeta
	 * @param isBind 0未绑定  1已绑定
	 * @throws Exception
	 */
	public void insertDevice(DevicePatientDevice devicePatientDevice, String adminTeam, String orgName, String orgCode, String bindCount, String doctorCode, String doctorName, int isBind)throws Exception{
	public DeviceDetail insertDevice(DevicePatientDevice devicePatientDevice, String adminTeam, String orgName, String orgCode, String bindCount, String doctorCode, String doctorName, int isBind)throws Exception{
		//获取原始数据
		DeviceDetail deviceDetail = new DeviceDetail();
		BasePatientDO patient = patientDao.findById(devicePatientDevice.getUser());
@ -133,6 +136,8 @@ public class DeviceDetailService extends BaseJpaService<DeviceDetail, DeviceDeta
		deviceDetail.setOrgName(orgName);
		deviceDetail.setGrantDoctor(doctorCode);
		deviceDetail.setGrantDoctorName(doctorName);
		deviceDetail.setContactStatus(1);
		deviceDetail.setContactStatusTime(new Date());
		if (isBind>0){
			deviceDetail.setIsGrant(1);
			deviceDetail.setIsBinding(1);
@ -164,7 +169,7 @@ public class DeviceDetailService extends BaseJpaService<DeviceDetail, DeviceDeta
			deviceDetail.setApplicantTel(doctor.getMobile());
			deviceDetail.setApplicantMail(doctor.getMobile());
		}
		deviceDetailDao.save(deviceDetail);
		return deviceDetailDao.save(deviceDetail);
	}
	/**

+ 91 - 30
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java

@ -10,6 +10,7 @@ import com.yihu.jw.care.dao.device.DeviceDetailDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
import com.yihu.jw.care.service.contacts.ContactsService;
import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
import com.yihu.jw.care.service.wechat.WeiXinAccessTokenUtils;
import com.yihu.jw.care.util.ConcealUtil;
import com.yihu.jw.care.util.MyJdbcTemplate;
@ -25,6 +26,7 @@ import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.util.common.GpsUtil;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.ServiceException;
import com.yihu.jw.util.healthIndex.HealthIndexUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.mysql.query.BaseJpaService;
@ -45,6 +47,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -109,6 +112,8 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    private HealthIndexUtil healthIndexUtil;
    @Autowired
    private EmergencyAssistanceService emergencyAssistanceService;
    @Autowired
    private SecurityMonitoringOrderService securityMonitoringOrderService;
    @PostConstruct
    public void init() {
@ -129,7 +134,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
     */
    public JSONObject concentrationMessage(String patient){
        JSONObject result = new JSONObject();
        String sql = "SELECT r.value from wlyy_patient_device pd,base_device_health_index r " +
        String sql = "SELECT CONCAT(r.value,r.unit) value from wlyy_patient_device pd,base_device_health_index r " +
                "WHERE pd.device_sn = r.device_sn and pd.`user` = '"+patient+"' ";
        String sql1 = sql + " and pd.category_code='14' ORDER BY r.create_time desc LIMIT 1";
@ -196,7 +201,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    /**
     * 保存患者设备
     */
    public boolean saveDevice(DevicePatientDevice devicePatientDevice, BaseSleepPlan sleepPlan, String iotDeviceSn, String safeAreaGz) throws Exception {
    public int saveDevice(DevicePatientDevice devicePatientDevice, BaseSleepPlan sleepPlan, String iotDeviceSn, String safeAreaGz) throws Exception {
        //判断sn码是否被使用
        String sn = devicePatientDevice.getDeviceSn();
        String type = devicePatientDevice.getCategoryCode();
@ -211,13 +216,13 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
        if (type.equals("7")){
            if (StringUtils.isBlank(devicePatientDevice.getSosAddress())){
                return false;
                return 0;
            }
        }
        if (type.equals("13")){
            if (StringUtils.isBlank(devicePatientDevice.getSosAddress())){
                return false;
                return 0;
            }
        }
@ -230,7 +235,8 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                    needVerify = false;
                }
            } else {
                throw new Exception("不存在该条记录!");
//                throw new Exception("不存在该条记录!");
                return -4;
            }
        }
@ -242,9 +248,15 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                //V1.0.0    监控器、报警器、燃气传感器 烟雾传感器支持一个设备绑定多个居民
                //监控器 12   报警器 7  14  15
                if ("12".equals(type) || "14".equals(type) || "15".equals(type) || "7".equals(type) ) {
                    if (devicePatientDevice.getUser().equals(device.getUser())) {
                        System.out.println("居民已经绑定此sn码:"+sn);
                        return -5;
                    }
                    System.out.println("此类设备支持多绑定");
                } else {
                    System.out.println("sn码" + sn + "已被使用!");
                    return -3;
                }
                throw new Exception("sn码" + sn + "已被使用!");
            }
        }
        devicePatientDevice.setCzrq(new Date());
@ -259,7 +271,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
            if ("13".equals(type)){ //睡眠带
                if (StringUtils.isBlank(sleepPlan.getGetUpTime()) || StringUtils.isBlank(sleepPlan.getNightRestTime())) {
                    String message = "请完善睡眠时间规划";
                    throw new Exception(message);
                    return -2;
                }
                sleepPlanDao.save(sleepPlan);
            }
@ -273,10 +285,10 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
            patientDeviceDao.save(devicePatientDevice);
        }else {
            String message = "设备不存在";
            throw new Exception(message);
            return -1;
        }
        return true;
        return 1;
    }
    public int delDeviceByDeviceSn(String deviceSn){
@ -385,6 +397,10 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                "when category_code=7 then '报警器'\n" +
                "when category_code=12 then '监控器'\n" +
                "when category_code=13 then '睡眠带'\n" +
                "when category_code=14 then '可燃气体探测器'\n" +
                "when category_code=15 then '火灾探测报警器'\n" +
                "when category_code=16 then '智能拐杖'\n" +
                "when category_code=17 then '随身WiFi'\n" +
                "else '未知'\n" +
                "end as categoryName\n" +
                " from dm_device where del=1 GROUP BY category_code ";
@ -869,7 +885,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
     * @param deviceSn 设备sn码
     * @return
     */
    public JSONObject getPatientDeviceDetail(String patient,String deviceSn){
    public JSONObject getPatientDeviceDetail(String patient,String deviceSn,String day) throws Exception {
        JSONObject result = new JSONObject();
        BasePatientDO patientDO = patientDao.findById(patient);
        if (null==patientDO){
@ -888,7 +904,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
            }else {
                String sql = "select dd.photo,pd.device_sn,dd.brands,dd.category_code,dd.model,pd.device_name,date_format(pd.czrq,'%Y-%m-%d %H:%i:%S' ) deviceTime " +
                        "from dm_device dd INNER JOIN wlyy_patient_device pd on dd.category_code = pd.category_code INNER JOIN wlyy_devices wd on dd.model = wd.device_model and pd.device_sn = wd.device_code \n" +
                        "where 1=1 and  pd.del=0 and pd.device_sn ='"+deviceSn+"' ";
                        "where 1=1 and  pd.del=0 and pd.device_sn ='"+deviceSn+"' group by pd.user";
                Map<String,Object> devInfo = jdbcTemplate.queryForMap(sql);
                devInfo.put("patient",patient);
                devInfo.put("patientName",patientDO.getName());
@ -896,8 +912,48 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                if ("4".equals(device.getCategoryCode())||"7".equals(device.getCategoryCode())){
                    devInfo.put("sosContactsDOS",contactsService.getPatientSosContacts(patient));
                }
                com.alibaba.fastjson.JSONObject devInfoObj = JSON.parseObject(JSON.toJSONString(devInfo, SerializerFeature.WriteMapNullValue));
                switch (device.getCategoryCode()){
                    case "1"://血压设备
                        break;
                    case "2"://血糖设备
                        break;
                    case "4"://手表 围栏与轨迹
                        devInfoObj =  securityMonitoringOrderService.patientSignTopicInfo(devInfoObj,patient,"preventLost");
                        //轨迹动态
                        break;
                    case "7"://报警器 紧急工单
                        break;
                    case "12"://监控 视频地址
                        com.alibaba.fastjson.JSONObject tmp =ysDeviceService.getDeviceLiveAddress(patient,deviceSn,1,null);
                        devInfoObj.put("monitorInfoStatus",tmp.getIntValue(ResponseContant.resultFlag));
                        if (tmp.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail){
                            devInfoObj.put("monitorInfo",tmp.getString(ResponseContant.resultMsg));
                        }
                        else {
                            devInfoObj.put("monitorInfo",tmp.getJSONObject(ResponseContant.resultMsg));
                        }
                        break;
                    case "13"://睡眠带 获取当天睡眠详情
                        securityMonitoringOrderService.preventOutOfBed(devInfoObj,patient,false,day);
                        break;
                    case "14"://气感报警器 当天监测记录以及最新浓度
                        if (StringUtils.isBlank(day)){
                            day = DateUtil.getStringDateShort();
                        }
                        List<Map<String,Object>> listTmp = gasConcentration(patient,day);
                        devInfoObj.put("monitorInfo",listTmp);
                        devInfoObj.put("day",day);
                        securityMonitoringOrderService.preventGasLeakage(devInfoObj,patient,false);
                        break;
                    case "15"://烟感报警器 获取最新浓度
                        securityMonitoringOrderService.preventFire(devInfoObj,patient,false);
                        devInfoObj.put("day",DateUtil.getStringDateShort());
                        break;
                }
                result.put(ResponseContant.resultFlag,ResponseContant.success);
                result.put(ResponseContant.resultMsg,JSON.parseObject(JSON.toJSONString(devInfo, SerializerFeature.WriteMapNullValue)));
                result.put(ResponseContant.resultMsg,JSON.toJSONString(devInfoObj,SerializerFeature.WriteMapNullValue));
            }
        }
        return result;
@ -924,24 +980,8 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                    case "2"://血糖设备
                        result = getHealthIndex(result,deviceSn,patient,page,pageSize);
                        break;
                    case "4"://手表 紧急工单与安防工单
                        result = getEmeWarn(result,deviceSn,patient,page,pageSize);
                        break;
                    case "7"://报警器 紧急工单
                        result = getEmeWarn(result,deviceSn,patient,page,pageSize);
                        break;
                    case "12"://监控
                        com.alibaba.fastjson.JSONObject tmp =ysDeviceService.getDeviceLiveAddress(patient,deviceSn,1,null);
                        result.put("monitorInfoStatus",tmp.getIntValue(ResponseContant.resultFlag));
                        if (tmp.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail){
                            result.put("monitorInfo",tmp.getString(ResponseContant.resultMsg));
                        }
                        else {
                            result.put("monitorInfo",tmp.getJSONObject(ResponseContant.resultMsg));
                        }
                        break;
                    default://安防设备
                        result = null;
                        result  = getEmeWarn(result,deviceSn,patient,page,pageSize);
                        break;
                }
            }
@ -954,7 +994,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    public JSONObject getHealthIndex(JSONObject result,String deviceSn,String patient,Integer page,Integer pageSize){
        String sqlCount = "select count(id) from wlyy_patient_health_index where user ='"+patient+"' and device_sn='"+deviceSn+"' " +
                " and del=1 ";
        String sql = "select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) sign_status from wlyy_patient_health_index where user ='"+patient+"' and device_sn='"+deviceSn+"' " +
        String sql = "select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date from wlyy_patient_health_index where user ='"+patient+"' and device_sn='"+deviceSn+"' " +
                " and del=1 order by record_date desc limit "+page*pageSize+","+pageSize;
        long count = jdbcTemplate.queryForObject(sqlCount,long.class);
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
@ -1156,6 +1196,27 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
        return response.getBody();
    }
    /**
     *获取设备轨迹
     * @param deviceSn
     * @param time_begin YYYYMMDD 日期
     * @return
     */
    public com.alibaba.fastjson.JSONObject getX1Locations(String deviceSn,String time_begin){
        String url = AqgConfig.X1_locations+"?device="+deviceSn+"&depth="+1+"&rows_per_page="+300;
        if (StringUtils.isNotBlank(time_begin)){
            url += "&time_begin="+time_begin;
        }
        Map<String,Object> headers = new HashMap<>();
        headers.put("Accept", MediaType.APPLICATION_JSON.toString());
        headers.put("Cookie", getCookie());
        String  responseStr = httpClientUtil.get(url,"utf-8",headers);
        com.alibaba.fastjson.JSONObject result = JSON.parseObject(responseStr);
        return result;
    }
    public com.alibaba.fastjson.JSONObject getSleepDeviceInfo(String deviceSn){
        MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
        param.add("mac", deviceSn);

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

@ -172,8 +172,9 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
                res.put("capAssRecordDO",recordDO);
            }
        }
        JSONObject tmp = res.getJSONObject("patient");
        tmp.put("deviceType",deviceService.getPatientDeviceCategoryCode(patientId));
        res.put("patient",tmp);
        return res;
    }

+ 190 - 26
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -5,8 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.device.BasePatientOutBedDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.device.*;
import com.yihu.jw.care.dao.security.*;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.service.common.DictService;
@ -26,8 +25,7 @@ import com.yihu.jw.entity.base.im.ConsultDo;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.contacts.PatientSosContactsDO;
import com.yihu.jw.entity.care.device.BasePatientOutBed;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.device.*;
import com.yihu.jw.entity.care.securitymonitoring.*;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
@ -47,6 +45,8 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -117,6 +117,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    private ObjectMapper objectMapper;
    @Autowired
    private BasePatientOutBedDao outBedDao;
    @Autowired
    private BaseSleepPlanDao sleepPlanDao;
    @Autowired
    private BaseSleepPlanDetailDao sleepPlanDetailDao;
    @Autowired
    private BaseSleepNightRecordDao nightRecordDao;
    private Logger logger = LoggerFactory.getLogger(SecurityMonitoringOrderService.class);
@ -351,6 +357,19 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        if (5==orderDO.getOrderSource()){//睡眠带工单
            try {
                JSONObject monitorInfo = JSONObject.parseObject(orderDO.getWarnInfo());
                List<BaseSleepPlan> sleepPlans = sleepPlanDao.findByPatient(patientDO.getId());
                if (sleepPlans.size()>0){
                    BaseSleepPlan sleepPlan = sleepPlans.get(0);
                    String endTime = DateUtil.getNextMin(sleepPlan.getGetUpTime(),-1);
                    monitorInfo.put("sleepPlan",true);
                    monitorInfo.put("getUpTime",sleepPlan.getGetUpTime());
                    monitorInfo.put("siestaTime",sleepPlan.getNapTime());
                    monitorInfo.put("nightRestTime",sleepPlan.getNightRestTime());
                    monitorInfo.put("nightRecordTime",sleepPlan.getNightRestTime()+"-隔日"+endTime);
                }else {
                    monitorInfo.put("sleepPlan",false);
                }
                monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall");
                emergencyOrderVO.setInformation(monitorInfo);
            }catch (Exception e){
@ -441,14 +460,14 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                if (StringUtils.isBlank(doc.getDoctorLat()) || StringUtils.isBlank(doc.getDoctorLon())) {
                    continue;
                }
                double distanceTmp = countDistance.getDistance(Double.parseDouble(orderDO.getServeLat()),Double.parseDouble(orderDO.getServeLon()),Double.parseDouble(doc.getDoctorLat()),Double.parseDouble(doc.getDoctorLon()));
                //double distanceTmp = countDistance.getDistance(Double.parseDouble(orderDO.getServeLat()),Double.parseDouble(orderDO.getServeLon()),Double.parseDouble(doc.getDoctorLat()),Double.parseDouble(doc.getDoctorLon()));
                otherDoctorDistanceObj = new JSONObject();
                otherDoctorDistanceObj.put("doctor",doc.getId());
                otherDoctorDistanceObj.put("doctorName",doc.getName());
                otherDoctorDistanceObj.put("doctorAddress",doc.getDoctorLocateAddress());
                otherDoctorDistanceObj.put("doctorLon",doc.getDoctorLon());
                otherDoctorDistanceObj.put("doctorLat",doc.getDoctorLat());
                otherDoctorDistanceObj.put("distance",distanceTmp);//两点距离
                otherDoctorDistanceObj.put("distance",null);//两点距离
                otherDoctorDistance.add(otherDoctorDistanceObj);
            }
            emergencyOrderVO.setOtherDoctorDistance(otherDoctorDistance.toJSONString());
@ -1211,18 +1230,51 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        JSONObject result = new JSONObject();
        result.put("location",null);
        result.put("fences",null);
        result.put("smoke",null);
        result.put("gasLeakage",null);
        result.put("fire",null);
        result.put("fall",null);
        result.put("sleep",null);
        result.put("deviceSn",null);
        result.put("monitorInfo",null);
        String sql = " select count(id) from base_security_monitoring_order where patient='"+patient+"' and topic_item='preventFall' and status="+SecurityMonitoringOrderDO.Status.apply.getType();
        Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
        if (count>0){
            result.put("fall",true);
        }
        else {
            result.put("fall",false);
        String sql = " select dict.code,count(ord.id) total from base_system_dict_entry dict LEFT JOIN base_security_monitoring_order ord " +
                " on dict.code = ord.topic_item COLLATE utf8_unicode_ci and ord.status="+SecurityMonitoringOrderDO.Status.apply.getType()+" where dict.dict_code='service_item' " +
                "and dict.remark='security' and ord.patient='"+patient+"' GROUP BY dict.code ";
        List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
        for (Map<String,Object>tmp:sqlResult){
            switch (tmp.get("code").toString()){
                case "preventGasLeakage":
                   Integer count = Integer.parseInt(tmp.get("total").toString());
                    if (count>0){
                        result.put("gasLeakage",true);
                    }else {
                        result.put("gasLeakage",false);
                    }
                    break;
                case "preventFire":
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count>0){
                        result.put("fire",true);
                    }else {
                        result.put("fire",false);
                    }
                    break;
                case "preventFall":
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count>0){
                        result.put("fall",true);
                    }else {
                        result.put("fall",false);
                    }
                    break;
                case "preventOutOfBed":
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count>0){
                        result.put("sleep",true);
                    }else {
                        result.put("sleep",false);
                    }
                    break;
            }
        }
        result = patientSignTopicInfo(result,patient,topicItem);
        return result;
@ -1284,7 +1336,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        }
    }
    public void preventOutOfBed(JSONObject result,String patient){
    public void preventOutOfBed(JSONObject result,String patient,boolean video,String dayTime){
        List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByUserAndCategoryCode(patient,"13");
        if (devicePatientDeviceDos.size()==0){}
        else {
@ -1297,10 +1349,40 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    result.put("sleepStatus",true);
                    JSONObject tmp = objInfo.getJSONObject(0);
                    JSONObject sleepInfo = new JSONObject();
                    if (StringUtils.isBlank(dayTime)){
                        dayTime = getSleepMonitoringDay(new Date(),patient);
                    }
                    List<BaseSleepPlanDetail> planDetails = sleepPlanDetailDao.findByPatientAndDay(patient,dayTime);
                    if (planDetails.size()>0){
                        BaseSleepPlanDetail planDetail =  planDetails.get(0);
                        List<BaseSleepNightRecord> sleepNightRecordList = nightRecordDao.findByPatientAndDayOrderByCreateTimeDesc(patient,dayTime);
                        planDetail.setSleepNightRecordList(sleepNightRecordList);
                        String jsonStr = JSON.toJSONStringWithDateFormat(planDetail, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue);
                        sleepInfo = JSONObject.parseObject(jsonStr);
                        sleepInfo.put("day",dayTime);
                    }
                    List<BaseSleepPlan> sleepPlans = sleepPlanDao.findByPatient(patient);
                    if (sleepPlans.size()>0){
                        BaseSleepPlan sleepPlan = sleepPlans.get(0);
                        String endTime = DateUtil.getNextMin(sleepPlan.getGetUpTime(),-1);
                        sleepInfo.put("sleepPlan",true);
                        sleepInfo.put("getUpTime",sleepPlan.getGetUpTime());
                        sleepInfo.put("siestaTime",sleepPlan.getNapTime());
                        sleepInfo.put("nightRestTime",sleepPlan.getNightRestTime());
                        sleepInfo.put("nightRecordTime",sleepPlan.getNightRestTime()+"-隔日"+endTime);
                    }else {
                        sleepInfo.put("sleepPlan",false);
                    }
                    sleepInfo.put("online",tmp.getBooleanValue("online"));
                    sleepInfo.put("onbed",tmp.getBooleanValue("onbed"));
                    sleepInfo.put("heartrate",tmp.getString("heartrate"));
                    sleepInfo.put("breathrate",tmp.getString("breathrate"));
                    if(tmp.getBooleanValue("onbed")){
                        sleepInfo.put("bedStatus",1);
                        sleepInfo.put("heartRate",tmp.getString("heartrate"));
                        sleepInfo.put("breath",tmp.getString("breathrate"));
                    }else {
                        sleepInfo.put("bedStatus",0);
                        sleepInfo.put("heartRate",null);
                        sleepInfo.put("breath",null);
                    }
                    BasePatientOutBed outBed = outBedDao.findByPatientAndDeviceSnAndStatus(patient,deviceDo.getDeviceSn(),0);
                    if (null!=outBed){
                        String outBedTime = "";
@ -1326,10 +1408,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                result.put("sleepInfo","获取睡眠带数据失败");
            }
        }
        monitorInfo(result, patient);
        if (video){
            monitorInfo(result, patient);
        }
    }
    public void preventFire(JSONObject result,String patient){
    public void preventFire(JSONObject result,String patient,boolean video){
        String sql = "SELECT r.value from wlyy_patient_device pd,base_device_health_index r " +
                "WHERE pd.device_sn = r.device_sn and pd.`user` = '"+patient+"' ";
        sql += " and pd.category_code='15' ORDER BY r.create_time desc LIMIT 1";
@ -1341,7 +1425,9 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            result.put("smoke",list1.get(0).get("value"));
        }
        result.put("smokeOrderNum",getOrder(patient,"preventFire"));
        monitorInfo(result, patient);
        if (video){
            monitorInfo(result, patient);
        }
    }
    public Integer getOrder(String patient,String topicItem){
@ -1351,7 +1437,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        return num;
    }
    public void preventGasLeakage(JSONObject result,String patient){
    public void preventGasLeakage(JSONObject result,String patient,boolean video){
        String sql = "SELECT r.value from wlyy_patient_device pd,base_device_health_index r " +
                "WHERE pd.device_sn = r.device_sn and pd.`user` = '"+patient+"' ";
        sql += " and pd.category_code='14' ORDER BY r.create_time desc LIMIT 1";
@ -1363,7 +1449,9 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            result.put("methane",list1.get(0).get("value"));
        }
        result.put("methaneOrderNum",getOrder(patient,"preventGasLeakage"));
        monitorInfo(result, patient);
        if (video){
            monitorInfo(result, patient);
        }
    }
    public void monitorInfo(JSONObject result,String patient){
@ -1401,13 +1489,13 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            monitorInfo(result, patient);
        }
        if ("preventOutOfBed".equals(topicItem)||StringUtils.isBlank(topicItem)){
            preventOutOfBed(result, patient);
            preventOutOfBed(result, patient,true,null);
        }
        if ("preventFire".equals(topicItem)||StringUtils.isBlank(topicItem)){
            preventFire(result, patient);
            preventFire(result, patient,true);
        }
        if ("preventGasLeakage".equals(topicItem)||StringUtils.isBlank(topicItem)){
            preventGasLeakage(result, patient);
            preventGasLeakage(result, patient,true);
        }
        return result;
    }
@ -1492,6 +1580,66 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        return result;
    }
    /**
     *获取居民睡眠计划
     */
    public BaseSleepPlan getPatientSleepPlan(String patient){
        List<BaseSleepPlan> list = sleepPlanDao.findByPatient(patient);
        if (list.size()>0){
            return list.get(0);
        }else {
            return null;
        }
    }
    /**
     *获取居民睡眠监护列表
     */
    public JSONObject getPatientSleepDetainList(String patient,String begin,String end,Integer page,Integer pageSize){
        page=page>0?page-1:0;
        PageRequest pageRequest = new PageRequest(page, pageSize);
        if (StringUtils.isBlank(end)){
            end = begin;
        }
        JSONArray array = new JSONArray();
        Page<BaseSleepPlanDetail> list = sleepPlanDetailDao.findByListByPage(patient,begin,end,pageRequest);
        List<BaseSleepPlan> sleepPlans = sleepPlanDao.findByPatient(patient);
        BaseSleepPlan sleepPlan=null;
        if (sleepPlans.size()>0){
            sleepPlan = sleepPlans.get(0);
        }
        for (BaseSleepPlanDetail tmp:list){
            List<BaseSleepNightRecord> records = nightRecordDao.findByPatientAndDayOrderByCreateTimeDesc(patient,tmp.getDay());
            tmp.setSleepNightRecordList(records);
            String str = JSON.toJSONStringWithDateFormat(tmp, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue);
            JSONObject jsonObject = JSONObject.parseObject(str);
            if (null==sleepPlan){
                jsonObject.put("sleepPlan",false);
            }else {
                jsonObject.put("sleepPlan",true);
                String endTime = DateUtil.getNextMin(sleepPlan.getGetUpTime(),-1);
                jsonObject.put("getUpTime",sleepPlan.getGetUpTime());
                jsonObject.put("siestaTime",sleepPlan.getNapTime());
                jsonObject.put("nightRestTime",sleepPlan.getNightRestTime());
                jsonObject.put("nightRecordTime",sleepPlan.getNightRestTime()+"-隔日"+endTime);
                array.add(jsonObject);
            }
        }
        JSONObject result = (JSONObject) JSONObject.toJSON(list);
        result.put("content",array);
        return result;
    }
    /**
     *获取居民起夜记录
     */
    public List<BaseSleepNightRecord> getPatientSleepNightRecord(String patient, String day){
        List<BaseSleepNightRecord> records = nightRecordDao.findByPatientAndDayOrderByCreateTimeDesc(patient,day);
        return records;
    }
    private String getRandomIntStr(){
        Random rand = new Random();
        int i = rand.nextInt(); //int范围类的随机数
@ -1506,4 +1654,20 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        one.setUpdateUserName(one.getDoctorName());
    }
    private String getSleepMonitoringDay(Date date,String patient){
        List<BaseSleepPlan> sleepPlans = sleepPlanDao.findByPatient(patient);
        if (sleepPlans.size()>0){
            BaseSleepPlan sleepPlan = sleepPlans.get(0);
            String bedUpStr = sleepPlans.get(0).getGetUpTime();
            Date bedUp = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+bedUpStr+":00");// 起床时间 起床前一小时内算为起床
            if (date.before(bedUp)&&bedUp.getTime()-date.getTime()>1000*1*3600){
                bedUp = DateUtil.getNextDay1(bedUp,-1);
            }
            String dayTime = DateUtil.dateToStr(bedUp,DateUtil.YYYY_MM_DD);//监测日期
            return dayTime;
        }else {
            return null;
        }
    }
}

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

@ -97,7 +97,7 @@ public class ArchiveService extends BaseJpaService<ArchiveDO, ArchiveDao> {
        }
        if (signStatus!=null&&signStatus==1){//已签约不按建档查询,只要该居民服务医生就在列表中
            filters+=" UNION " +
                    " SELECT a.create_time,p.openid,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo,CAST(a.sign_status AS char) sign_status \n" +
                    " SELECT a.create_time,p.openid,p.pad_imei padImei,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo,CAST(a.sign_status AS char) sign_status \n" +
                    "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and EXISTS( " +
                    "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                    "base_service_package_item i,base_team_member m " +

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

@ -579,6 +579,23 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
                " and pack.del=1 and  item.topic_item='"+topicType+"' and re.sign_id in (\n" +
                "select rd.id from base_service_package_sign_record rd  where rd.patient='"+patient+"' and rd.status=1) GROUP BY item.code; ";
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql);
        Iterator<Map<String, Object>> iterator = result.iterator();
        while (iterator.hasNext()){
            Map<String, Object> map = iterator.next();
            String item = map.get("serverItem").toString();
            sql = " select count(pd.device_sn) from dm_device dd INNER JOIN wlyy_patient_device " +
                    "pd on dd.category_code = pd.category_code INNER JOIN wlyy_devices wd on dd.model = wd.device_model" +
                    " and pd.device_sn = wd.device_code \n" +
                    "where 1=1 and  pd.del=0  and  pd.`user`='"+patient+"'  and dd.service_topic " +
                    "like '%"+item+"%'   ";
            Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
            if (count>0){
            }else {
                iterator.remove();
            }
        }
        return result;
    }

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

@ -15,6 +15,7 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -119,17 +120,33 @@ public class DetectionPlatformService  {
        object.put("lawOfIOT",getRange( (securityIsUser.intValue() + healthIsUser.intValue() ),( securityAllCount.intValue() + healthAllCount.intValue()  ) ));//物联率
        object.put("isUseAllIot",(securityIsUser.intValue() + healthIsUser.intValue()));//已发放设备
        object.put("allIot",securityAllCount.intValue() + healthAllCount.intValue());//总设备
//        String unUseSql = "";//连续一周为上传数据
//        List<Map<String , Object>> unUseList = jdbcTemplate.queryForList(unUseSql);
//        Long unUseCount = (Long) securityList.get(0).get("allCount");
////        if (unUseList.size() > 0){
////            unUseCount = (Long) securityList.get(0).get("allCount");
////        }
//        object.put("lostLaw",getRange(unUseCount.intValue(),securityIsUser.intValue() + healthIsUser.intValue()));//设备失联率
        object.put("lostLaw","0%");//设备失联率
        String unUseSql = "SELECT * FROM wlyy_devices WHERE is_binding = 1 AND contact_status = 0";//contact_status = 0   失联
        List<Map<String , Object>> unUseList = jdbcTemplate.queryForList(unUseSql);
        int unUseCount = unUseList.size();
        object.put("unUseCount",unUseCount);//设备失联数量
        object.put("lostLaw",getRange(unUseCount,(securityIsUser.intValue() + healthIsUser.intValue())));//设备失联率    失联设备/已发放设备
        return object;
    }
    public JSONObject getRealTimeData(){
        JSONObject object = new JSONObject();
        String getMonitorPhysicalSignsSql = "SELECT COUNT(1) FROM wlyy_patient_health_index WHERE (type = 1 or type = 2) AND del = 1";
        Integer getMonitorPhysicalSignsCount = jdbcTemplate.queryForObject(getMonitorPhysicalSignsSql,Integer.class);
        object.put("getMonitorPhysicalSignsCount",getMonitorPhysicalSignsCount);      //监测体征
        String getAbnormalSignsSql = "SELECT COUNT(1) FROM wlyy_patient_health_index WHERE (type = 1 or type = 2) AND del = 1 AND status = 1";
        Integer getAbnormalSignsCount = jdbcTemplate.queryForObject(getAbnormalSignsSql,Integer.class);
        object.put("getAbnormalSignsCount",getAbnormalSignsCount);      //异常体征
        String getGiveEarlyWarningSql = "SELECT COUNT(1) FROM base_security_monitoring_order";
        Integer getGiveEarlyWarningCount = jdbcTemplate.queryForObject(getGiveEarlyWarningSql,Integer.class);
        object.put("getGiveEarlyWarningCount",getGiveEarlyWarningCount);      //预警次数
        String getBaseDeviceHealthIndexSql = "SELECT COUNT(1) FROM base_device_health_index";  //烟感气感数据上传次数
        Integer getBaseDeviceHealthIndexCount = jdbcTemplate.queryForObject(getBaseDeviceHealthIndexSql,Integer.class);
        String getBaseYxdeviceIndexSql = "SELECT COUNT(1) FROM base_yxdevice_index";    //拐杖数据上传
        Integer getBaseYxdeviceIndexCount = jdbcTemplate.queryForObject(getBaseYxdeviceIndexSql,Integer.class);
        Integer getExamineIndexSum = getGiveEarlyWarningCount + getBaseDeviceHealthIndexCount + getBaseYxdeviceIndexCount;
        object.put("getExamineIndexSum",getExamineIndexSum);      //监测指标
        return object;
    }
    public String getRange(int first, int second) {
        if (second == 0 && first > 0) {
@ -146,59 +163,67 @@ public class DetectionPlatformService  {
    }
    public List<Map<String , Object>> getDeviceType(){
        String sql = "SELECT category_code,device_name FROM wlyy_patient_device GROUP BY category_code";
        String sql = "SELECT category_code categoryCode,name FROM dm_device GROUP BY category_code";
        return jdbcTemplate.queryForList(sql);
    }
    public JSONArray getDeviceByCondition(String categoryCode , String user){
        JSONArray jsonArray = new JSONArray();
        List<DevicePatientDevice> patientDevices = patientDeviceDao.findAll();
        List<DevicePatientDevice> patientDevices = patientDeviceDao.findAllGroupUser();
        if (StringUtils.isNotBlank(categoryCode)) {  //categoryCode != null   根据设备类型查询
            patientDevices = patientDeviceDao.findAllByCategoryCode(categoryCode);
        }
        Map<String, List<DevicePatientDevice>> byUser = patientDevices.stream().collect(Collectors.groupingBy(DevicePatientDevice::getUser));
        List<BasePatientDO> patientDOS = patientDao.findAllByDel();
        if (StringUtils.isNotBlank(user)) {
            patientDOS = patientDao.findAllByDelAndId(user);  //user != null   根据居民查询
        if (StringUtils.isNotBlank(user)) {  //categoryCode != null   根据设备类型查询
            String sql = "select a.* from wlyy_patient_device a where a.user='"+user+"' and a.del=0 LIMIT 1";
            patientDevices = jdbcTemplate.query(sql, new BeanPropertyRowMapper(DevicePatientDevice.class));
        }
        List<BasePatientDO> patientDOS = patientDao.findAllByDel();
//        if (StringUtils.isNotBlank(user)) {
//            patientDOS = patientDao.findAllByDelAndId(user);  //user != null   根据居民查询
//        }
        Map<String, List<BasePatientDO>> byId = patientDOS.stream().collect(Collectors.groupingBy(BasePatientDO::getId));
        //首页默认根据居民展示  绑定设备的居民
        String userSql = "SELECT `user` FROM wlyy_patient_device WHERE del = 0 GROUP BY `user`";
        List<Map<String , Object>> userList = jdbcTemplate.queryForList(userSql);
        if (userList.size() > 0) {
            JSONObject userObj = new JSONObject();
            for (int i=0;i<userList.size();i++) {
//        String userSql = "SELECT `user` FROM wlyy_patient_device WHERE del = 0 GROUP BY `user`";
//        List<Map<String , Object>> userList = jdbcTemplate.queryForList(userSql);
        if (patientDevices.size() > 0) {
            for (int i=0;i<patientDevices.size();i++) {
                JSONArray arrayAll = new JSONArray();
                JSONArray array = new JSONArray();
                userObj.put("patient",userList.get(i).get("user"));
                userObj.put("patientName",byId.get(userList.get(i).get("user")).get(0).getName());
                userObj.put("patientType",byId.get(userList.get(i).get("user")).get(0).getArchiveType());
                userObj.put("latLon",byId.get(userList.get(i).get("user")).get(0).getLatLon());
                List<DevicePatientDevice> deviceList = byUser.get(userList.get(i).get("user"));
                if (deviceList.size() > 1) {    //居民绑定多台设备
                    for (int j=0;j<deviceList.size();j++) {
                        JSONObject obj = new JSONObject();
                        obj.put("deviceSn",deviceList.get(j).getDeviceSn());
                        obj.put("deviceName",deviceList.get(j).getDeviceName());
                        obj.put("categoryCode",deviceList.get(j).getCategoryCode());
                        array.add(obj);
                    }
                    userObj.put("deviceCount",deviceList.size());
                    userObj.put("deviceInfo",array);
                    arrayAll.add(userObj);
                } else {    //居民只绑定一台设备
                    for (int j=0;j<deviceList.size();j++) {
                        JSONObject obj = new JSONObject();
                        obj.put("deviceSn",deviceList.get(j).getDeviceSn());
                        obj.put("deviceName",deviceList.get(j).getDeviceName());
                        obj.put("categoryCode",deviceList.get(j).getCategoryCode());
                        array.add(obj);
                JSONObject userObj = new JSONObject();
                userObj.put("patient",patientDevices.get(i).getUser());
                userObj.put("patientName",byId.get(patientDevices.get(i).getUser()).get(0).getName());
                userObj.put("patientType",byId.get(patientDevices.get(i).getUser()).get(0).getArchiveType());
                userObj.put("latLon",byId.get(patientDevices.get(i).getUser()).get(0).getLatLon());
                List<DevicePatientDevice> deviceList = patientDeviceDao.findAllByUser(patientDevices.get(i).getUser());
                if (StringUtils.isNotBlank(categoryCode)) {
                    deviceList = patientDeviceDao.findAllByUserAndCategoryCode(patientDevices.get(i).getUser(),categoryCode);
                }
                if (deviceList != null) {
                    if (deviceList.size() > 1) {    //居民绑定多台设备
                        for (int j=0;j<deviceList.size();j++) {
                            JSONObject obj = new JSONObject();
                            obj.put("deviceSn",deviceList.get(j).getDeviceSn());
                            obj.put("deviceName",deviceList.get(j).getDeviceName());
                            obj.put("categoryCode",deviceList.get(j).getCategoryCode());
                            array.add(obj);
                        }
                        userObj.put("deviceCount",deviceList.size());
                        userObj.put("deviceInfo",array);
                        arrayAll.add(userObj);
                    } else {    //居民只绑定一台设备
                        for (int j=0;j<deviceList.size();j++) {
                            JSONObject obj = new JSONObject();
                            obj.put("deviceSn",deviceList.get(j).getDeviceSn());
                            obj.put("deviceName",deviceList.get(j).getDeviceName());
                            obj.put("categoryCode",deviceList.get(j).getCategoryCode());
                            array.add(obj);
                        }
                        userObj.put("deviceCount",deviceList.size());
                        userObj.put("deviceInfo",array);
                        arrayAll.add(userObj);
                    }
                    userObj.put("deviceCount",deviceList.size());
                    userObj.put("deviceInfo",array);
                    arrayAll.add(userObj);
                    jsonArray.add(arrayAll);
                }
                jsonArray.add(arrayAll);
            }
        } else {
            return jsonArray;
@ -229,7 +254,8 @@ public class DetectionPlatformService  {
                String dataSql= "";
                List<Map<String , Object>> dataList = new ArrayList<>();
                switch (categoryCode) {
                    // 1=血糖仪  2=血压计  4=智能手表  13=智能床带/睡眠带  14=燃气报警器  15=烟雾报警器
                    // 1=血糖仪  2=血压计 14=燃气报警器  15=烟雾报警器
                    // 4=智能手表  7=居家安全报警器  16=智能拐杖  13=智能床带/睡眠带
                    case "1" :
                        dataSql = "SELECT record_date recordDate,value1,value2,value3,value4,value5,value6,value7,type FROM wlyy_patient_health_index WHERE device_sn = '"+deviceSn+"' AND del = 1 ORDER BY sort_date DESC LIMIT 10";
                        dataList = jdbcTemplate.queryForList(dataSql);

+ 5 - 2
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseSleepNightRecordDao.java

@ -18,6 +18,9 @@ public interface BaseSleepNightRecordDao extends PagingAndSortingRepository<Base
    @Query(value = "select r from BaseSleepNightRecord r where r.deviceSn=?1 and r.patient=?2 order by r.createTime desc")
    List<BaseSleepNightRecord> findByDeviceSnAndPatient(String deviceSn, String patient);
    @Query(value = "select r from BaseSleepNightRecord r where r.deviceSn=?1 and r.patient=?2 and r.status=?3 and r.createTime>?4 order by r.createTime desc")
    List<BaseSleepNightRecord> findBySnStaPaTime(String deviceSn,String patient,Integer status, Date benIn);
    @Query(value = "select r from BaseSleepNightRecord r where r.deviceSn=?1 and r.patient=?2 and r.status=?3 and r.createTime>?4 and r.day=?5 order by r.createTime desc")
    List<BaseSleepNightRecord> findBySnStaPaTime(String deviceSn,String patient,Integer status, Date benIn,String day);
    @Query(value = "select r from BaseSleepNightRecord r where r.deviceSn=?1 and r.patient=?2 and r.day=?3 order by r.createTime desc")
    List<BaseSleepNightRecord> findBySnPaTime(String deviceSn,String patient,String day);
}

+ 1 - 1
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseSleepPlanDetailDao.java

@ -12,5 +12,5 @@ import java.util.List;
public interface BaseSleepPlanDetailDao extends PagingAndSortingRepository<BaseSleepPlanDetail,Long>,
        JpaSpecificationExecutor<BaseSleepPlanDetail> {
    List<BaseSleepPlanDetail> findByDay(String day);
    List<BaseSleepPlanDetail> findByPatientAndDay(String patient, String day);
}

+ 16 - 0
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseYxDeviceIndexDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.BaseYxDeviceIndex;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: yeshijie
 * @Date: 2021/8/26
 * @Description:
 */
public interface BaseYxDeviceIndexDao extends PagingAndSortingRepository<BaseYxDeviceIndex, String> {
}

+ 7 - 0
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/HvDeviceRecordDao.java

@ -1,9 +1,13 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.Device;
import com.yihu.jw.entity.care.device.HvDeviceRecord;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created with IntelliJ IDEA.
 *
@ -12,4 +16,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 * @Description:
 */
public interface HvDeviceRecordDao extends PagingAndSortingRepository<HvDeviceRecord, String>, JpaSpecificationExecutor<HvDeviceRecord> {
    @Query("select a from HvDeviceRecord a where a.deviceId = ?1")
    List<HvDeviceRecord> findByDeviceId(String deviceId);
}

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

@ -136,7 +136,7 @@ public class DeviceController {
                deviceDetail.setDeviceModel(deviceModel);
                deviceDetail.setDeviceCode(deviceCode);
                deviceDetail.setSim(sim);
                deviceDetail.setBindingCount("");
                deviceDetail.setBindingCount("0");
                deviceDetail.setDeviceType(Integer.parseInt(deviceType));
                correctLs.add(deviceDetail);
            }

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

@ -19,6 +19,8 @@ import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.healthIndex.HealthIndexUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -137,73 +139,65 @@ public class DeviceService {
            Double lat= Double.parseDouble(request.getParameter("lat"));
            Double lon= Double.parseDouble(request.getParameter("lon"));
            List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(imei);
            DevicePatientDevice deviceDO = devicePatientDeviceDos.get(0);
            BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
            DeviceSosLogDO logDO = new DeviceSosLogDO();
            logDO.setPatient(patientDO.getId());
            logDO.setPatientName(patientDO.getName());
            logDO.setIdcard(patientDO.getIdcard());
            logDO.setCategoryCode(deviceDO.getCategoryCode());
            logDO.setDeviceSn(deviceDO.getDeviceSn());
            logDO.setCreateTime(new Date());
            if (deviceDO.getCategoryCode().equals("4")) {
                JSONObject position = gpsUtil.gcj02_To_Bd09(lat,lon);
                logDO.setSosAddress(address);
                logDO.setSosLat(position.getDouble("lat")+"");
                logDO.setSosLon(position.getDouble("lon")+"");
            }
            if (deviceDO.getCategoryCode().equals("7")) {
                logDO.setSosAddress(deviceDO.getSosAddress());
                Map<String, String> json = null;
                if (StringUtils.isNotBlank(deviceDO.getSosAddress())) {
                    json = LatitudeUtils.getGeocoderLatitude(deviceDO.getSosAddress().replace("G.", "").replace("(糖友网)", "").replace("(高友网)", ""));
                }
                if (json != null) {
                    logDO.setSosLat(json.get("lat").toString());
                    logDO.setSosLon(json.get("lng").toString());
                }
            }
            //发送紧急救助
            String sql =" select Distinct pack.org_code,pack.org_name\n" +
                    "from base_service_package_sign_record sr INNER JOIN base_service_package_record pr\n" +
                    "on sr.id = pr.sign_id and sr.status=1 INNER JOIN base_service_package_item item on pr.service_package_id = item.service_package_id and item.del=1 \n" +
                    "INNER JOIN base_service_package pack pack on pr.service_package_id = pack.id where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
            List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size()>0){
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("serveAddress",logDO.getSosAddress());
                jsonObject.put("serveLon",logDO.getSosLon());
                jsonObject.put("serveLat",logDO.getSosLat());
                jsonObject.put("orgCode",sqlResult.get(0).get("org_code").toString());
                jsonObject.put("orgName",sqlResult.get(0).get("org_name").toString());
                jsonObject.put("patient",logDO.getPatient());
                jsonObject.put("patientName",logDO.getPatientName());
                jsonObject.put("deviceSn",logDO.getDeviceSn());
                String url = cloudCareUrl+"cloudCare/noLogin/emergency_assistance/newOrder";
                Map map = new HashMap<String, String>();
                map.put("patientId", logDO.getPatient());
            if (devicePatientDeviceDos.size()>0){
                DevicePatientDevice deviceDO = devicePatientDeviceDos.get(0);
                BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
                DeviceSosLogDO logDO = new DeviceSosLogDO();
                logDO.setPatient(patientDO.getId());
                logDO.setPatientName(patientDO.getName());
                logDO.setIdcard(patientDO.getIdcard());
                logDO.setCategoryCode(deviceDO.getCategoryCode());
                logDO.setDeviceSn(deviceDO.getDeviceSn());
                logDO.setCreateTime(new Date());
                if (deviceDO.getCategoryCode().equals("4")) {
                    map.put("orderSource", 2); //工单来源工单发起来源状态 1APP 2手环 3居家报警
                    JSONObject position = gpsUtil.gcj02_To_Bd09(lat,lon);
                    logDO.setSosAddress(address);
                    logDO.setSosLat(position.getDouble("lat")+"");
                    logDO.setSosLon(position.getDouble("lon")+"");
                }
                if (deviceDO.getCategoryCode().equals("7")) {
                    map.put("orderSource", 3);
                }
                map.put("jsonData", jsonObject.toJSONString());
                String content = com.alibaba.fastjson.JSONObject.toJSONString(map);
                String postParams = AesEncryptUtils.agEncrypt(content);
                String response = httpClientUtil.postBodyRawForm(url,postParams);
                JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(response);
                JSONObject jsonObjectData =JSONObject.parseObject(AesEncryptUtils.agDecrypt(result.getString("data")));
                logDO.setSosSendStatus(jsonObjectData.getInteger("status").toString());
                if (jsonObjectData.containsKey("message")){
                    logDO.setSosSendMessage(jsonObjectData.getString("message"));
                }
                if (jsonObjectData.containsKey("msg")){
                    logDO.setSosSendMessage(jsonObjectData.getString("msg"));
                    logDO.setSosAddress(deviceDO.getSosAddress());
                    Map<String, String> json = null;
                    if (StringUtils.isNotBlank(deviceDO.getSosAddress())) {
                        json = LatitudeUtils.getGeocoderLatitude(deviceDO.getSosAddress().replace("G.", "").replace("(糖友网)", "").replace("(高友网)", ""));
                    }
                    if (json != null) {
                        logDO.setSosLat(json.get("lat").toString());
                        logDO.setSosLon(json.get("lng").toString());
                    }
                }
                //发送紧急救助
                String sql =" select Distinct pack.org_code,pack.org_name\n" +
                        "from base_service_package_sign_record sr INNER JOIN base_service_package_record pr\n" +
                        "on sr.id = pr.sign_id and sr.status=1 INNER JOIN base_service_package_item item on pr.service_package_id = item.service_package_id and item.del=1 \n" +
                        "INNER JOIN base_service_package pack pack on pr.service_package_id = pack.id where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
                List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                if (sqlResult.size()>0){
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("serveAddress",logDO.getSosAddress());
                    jsonObject.put("serveLon",logDO.getSosLon());
                    jsonObject.put("serveLat",logDO.getSosLat());
                    jsonObject.put("orgCode",sqlResult.get(0).get("org_code").toString());
                    jsonObject.put("orgName",sqlResult.get(0).get("org_name").toString());
                    jsonObject.put("patient",logDO.getPatient());
                    jsonObject.put("patientName",logDO.getPatientName());
                    jsonObject.put("deviceSn",logDO.getDeviceSn());
                    String url = cloudCareUrl+"cloudCare/noLogin/emergency_assistance/newOrder";
                    List<NameValuePair> params = new ArrayList<>();
                    params.add(new BasicNameValuePair("jsonData", jsonObject.toJSONString()));
                    params.add(new BasicNameValuePair("patientId", logDO.getPatient()));
                    if (deviceDO.getCategoryCode().equals("4")) {
                        params.add(new BasicNameValuePair("orderSource", "2"));//工单来源工单发起来源状态 1APP 2手环 3居家报警
                    }
                    if (deviceDO.getCategoryCode().equals("7")) {
                        params.add(new BasicNameValuePair("orderSource", "3"));
                    }
                    String response = httpClientUtil.post(url, params,"UTF-8");
                    System.out.println(response);
                }
                sosLogDao.save(logDO);
            }
            sosLogDao.save(logDO);
        }catch(Exception e){
                e.printStackTrace();
            }
@ -259,11 +253,9 @@ public class DeviceService {
                        if (deviceDO.getCategoryCode().equals("4")) {
                            //获取手环最新定位信息
                            String url = cloudCareUrl+"/cloudCare/noLogin/device/getDeviceLastLocation";
                            Map map = new HashMap<String, String>();
                            map.put("deviceSn",deviceDO.getDeviceSn());
                            String content = com.alibaba.fastjson.JSONObject.toJSONString(map);
                            String postParams = AesEncryptUtils.agEncrypt(content);
                            String response = httpClientUtil.getBodyRawForm(url,postParams);
                            List<NameValuePair> params = new ArrayList<>();
                            params.add(new BasicNameValuePair("deviceSn", deviceDO.getDeviceSn()));
                            String response = httpClientUtil.post(url, params,"UTF-8");
                            JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(response);
                            JSONObject jsonObjectData =JSONObject.parseObject(AesEncryptUtils.agDecrypt(result.getString("data")));
                            Double lat = jsonObjectData.getJSONObject("data").getJSONObject("obj").getJSONObject("locationdata").getJSONObject("point").getDouble("lat");
@ -276,7 +268,6 @@ public class DeviceService {
                                    "  and pack.del=1";
                            List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                            if (sqlResult.size()>0){
                                map = new HashMap();
                                url = cloudCareUrl+"/cloudCare/noLogin/security/createOrder";
                                JSONObject jsonObject = new JSONObject();
                                jsonObject.put("patient",patientDO.getId());
@ -291,16 +282,16 @@ public class DeviceService {
                                jsonObject.put("deviceSn",deviceid);
                                JSONObject jsonObjectParam = new JSONObject();
                                jsonObjectParam.put("order", jsonObject);
                                map.put("jsonData", jsonObjectParam.toJSONString());
                                map.put("orderSource", 2);
                                map.put("warnStr", "疑似离开安全区域");
                                content = com.alibaba.fastjson.JSONObject.toJSONString(map);
                                postParams = AesEncryptUtils.agEncrypt(content);
                                response = httpClientUtil.postBodyRawForm(url,postParams);
                                result = com.alibaba.fastjson.JSONObject.parseObject(response);
                                jsonObjectData =JSONObject.parseObject(AesEncryptUtils.agDecrypt(result.getString("data")));
                                System.out.println(jsonObjectData.toJSONString());
                                params = new ArrayList<>();
                                params.add(new BasicNameValuePair("jsonData", jsonObjectParam.toJSONString()));
                                params.add(new BasicNameValuePair("orderSource", "2"));
                                params.add(new BasicNameValuePair("warnStr", "疑似离开安全区域"));
                                response = httpClientUtil.post(url, params,"UTF-8");
                                System.out.println(response);
                                System.out.println(response);
                            }
                        }
                    }
@ -562,6 +553,8 @@ public class DeviceService {
                Integer nightLongWarn=2;//起夜预警时长
                List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
                if (devicePatientDeviceDos.size()>0){
                    Date timeDate = DateUtil.strToDate(time_begin);//当前时间
                    String dayTime = null;//检测日期
                    String patient = devicePatientDeviceDos.get(0).getUser();
                    List<BaseSleepPlan> sleepPlans = sleepPlanDao.findByPatientAndDeviceSn(patient,device);
                    BaseSleepPlanDetail planDetail = new BaseSleepPlanDetail();
@ -570,9 +563,8 @@ public class DeviceService {
                        sleepPlan = sleepPlans.get(0);
                    }
                    if (null!=sleepPlan){
                        Date timeDate = DateUtil.strToDate(time_begin);//当前时间
                        Date bedUp = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getGetUpTime()+":00");// 起床时间 起床前一小时内算为起床
                        if (timeDate.before(bedUp)){
                        Date bedUp = DateUtil.strToDate(DateUtil.dateToStrShort(timeDate)+" "+sleepPlan.getGetUpTime()+":00");// 起床时间 起床前一小时内算为起床
                        if (timeDate.before(bedUp)&&bedUp.getTime()-timeDate.getTime()>1000*1*3600){
                            bedUp = DateUtil.getNextDay1(bedUp,-1);
                        }
                        Date bedUpBegin = DateUtil.getNextMin(bedUp,-60);//起床时间 起床前一小时内算为起床
@ -582,21 +574,22 @@ public class DeviceService {
                        Date SiestaBegin = null;// 午睡开始时间
                        if (StringUtils.isNotBlank(sleepPlan.getNapTime())){
                            needSiesta=true;
                            SiestaTime = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getNapTime()+":00");
                            SiestaTime = DateUtil.strToDate(DateUtil.dateToStrShort(timeDate)+" "+sleepPlan.getNapTime()+":00");
                            SiestaBegin = DateUtil.getNextMin(SiestaTime,-60);// 午睡开始时间
                        }
                        String inTime = sleepPlan.getNightRestTime();
                        Date bedIn = null;// 入睡时间
                        Date bedBegin = null;// 入睡开始时间
                        String dayTime = DateUtil.dateToStr(bedUp,DateUtil.YYYY_MM_DD);//监测日期
                        if (inTime.charAt(0)=='0') {
                        dayTime = DateUtil.dateToStr(bedUp,DateUtil.YYYY_MM_DD);//监测日期
                        if (inTime.charAt(0)=='0'&&inTime.charAt(1)!='0') {//0点后为睡觉日期
                            bedIn = DateUtil.strToDate(dayTime+" "+sleepPlan.getNightRestTime()+":00");
                            bedIn = DateUtil.getNextDay1(bedIn,1);
                        }else {
                            bedIn = DateUtil.strToDate(dayTime+" "+sleepPlan.getNightRestTime()+":00");
                        }
                        bedBegin = DateUtil.getNextMin(bedIn,-60*2);
                        List<BaseSleepPlanDetail> planDetails = sleepPlanDetailDao.findByDay(dayTime);
                        List<BaseSleepPlanDetail> planDetails = sleepPlanDetailDao.findByPatientAndDay(patient,dayTime);
                        if (planDetails.size()>0){
                            planDetail = planDetails.get(0);
                        }
@ -605,25 +598,22 @@ public class DeviceService {
                        planDetail.setDeviceSn(device);
                        /***起床***/
                        Long timeDiffer = timeDate.getTime() - bedUp.getTime();
                        if(DateUtil.isInArea(timeDate,bedUpBegin,bedUpEnd)){//起床时间内
                        if(DateUtil.isInArea(timeDate,bedUpBegin,SiestaBegin)){//起床时间内
                            if ("0".equals(bed_status)){//起床
                                if (null==planDetail.getUpStatus()){
                                    planDetail.setUpStatus(1);
                                if (null==planDetail.getUpStatus()||1==planDetail.getUpStatus()){
                                    planDetail.setUpStatus(0);
                                    planDetail.setUpTime(timeDate);
                                }
                            }
                        }
                        else if (3600*upLongWarn*1000<timeDiffer&&timeDiffer<(3600*upLongWarn+600)*1000){//距离起床超过三个小时还在床
                            if ("1".equals(bed_status)){//还在床
                                if (1==planDetail.getUpStatus()){}//起床后再次入睡超时未起床不触发
                                else {
                                    if (null==planDetail.getUpStatus()){
                                        planDetail.setUpStatus(0);
                                        planDetail.setBedStatus(0);
                                if (3600*upLongWarn*1000<timeDiffer){//距离起床超过三个小时还在床
                                    if (null==planDetail.getUpStatus()) {
                                        planDetail.setUpStatus(1);
                                        planDetail.setBedStatus(1);
                                        planDetail.setBreath(breath);
                                        planDetail.setHeartRate(heartrate);
                                        outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                        orderCreate=true;
                                        outBedOrder(null, timeDate,devicePatientDeviceDos.get(0), patient, device, "超时未起床", JSON.toJSONStringWithDateFormat(planDetail, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue));
                                        orderCreate = true;
                                    }
                                }
                            }
@ -631,16 +621,16 @@ public class DeviceService {
                        /***午睡***/
                        if(needSiesta&&DateUtil.isInArea(timeDate,SiestaBegin,bedIn)){//午睡时段
                            if ("0".equals(bed_status)){
                                if (null==planDetail.getSiestaStatus()){//超时未午睡午睡
                                if (null==planDetail.getSiestaStatus()){//超时未午睡
                                    timeDiffer = timeDate.getTime() - SiestaTime.getTime();
                                    if (timeDiffer>3600*siestaLongWarn*1000){
                                        planDetail.setSiestaStatus(0);
                                        planDetail.setBedStatus(0);
                                        outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未午睡",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                        outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"超时未午睡",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                        orderCreate=true;
                                    }
                                }
                                else if(1 == planDetail.getSiestaStatus()&&null==planDetail.getSiestaTimeEnd()){//午睡起床
                                else if(1 == planDetail.getSiestaStatus()&&null==planDetail.getSiestaLong()){//午睡起床
                                    planDetail.setSiestaTimeEnd(timeDate);
                                    timeDiffer = (planDetail.getSiestaTimeEnd().getTime()-planDetail.getSiestaTimeBegin().getTime())/1000;
                                    planDetail.setSiestaLong(timeDiffer+"");
@ -648,18 +638,21 @@ public class DeviceService {
                            }
                            if ("1".equals(bed_status)){
                                if (null==planDetail.getSiestaStatus()){
                                if (null==planDetail.getSiestaStatus()||0==planDetail.getSiestaStatus()){
                                    planDetail.setSiestaStatus(1);
                                    planDetail.setSiestaTimeBegin(timeDate);
                                }
                                else if(1==planDetail.getSiestaStatus()&&null==planDetail.getSiestaTimeEnd()){
                                    timeDiffer = timeDate.getTime() - planDetail.getSiestaTimeBegin().getTime();
                                    if(3600*siestaLongWarn*1000<timeDiffer&&timeDiffer<(3600*siestaLongWarn+600)*1000){//午睡超时未起床
                                        planDetail.setBedStatus(0);
                                        planDetail.setBreath(breath);
                                        planDetail.setHeartRate(heartrate);
                                        outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"午睡超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                        orderCreate=true;
                                    if(3600*siestaLongWarn*1000<timeDiffer){//午睡超时未起床
                                        if (planDetail.getSiestaStatus()==1){
                                            planDetail.setBedStatus(1);
                                            planDetail.setSiestaTimeEnd(timeDate);//设置临时结束时间但不计算时长 避免重复发起工单
                                            planDetail.setBreath(breath);
                                            planDetail.setHeartRate(heartrate);
                                            outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"午睡超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                            orderCreate=true;
                                        }
                                    }
                                }
                            }
@ -669,13 +662,16 @@ public class DeviceService {
                        if (timeDiffer>0&&timeDate.after(bedBegin)){ //起夜记录
                            BaseSleepNightRecord record = new BaseSleepNightRecord();
                            if ("1".equals(bed_status)){
                                if (null==planDetail.getInStatus()){
                                if (null==planDetail.getInStatus()||0==planDetail.getInStatus()){
                                    planDetail.setInStatus(1);
                                    planDetail.setInTimeBegin(timeDate);
                                }
                                else if (1==planDetail.getInStatus()){//在床记录起夜时长
                                    List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedIn);
                                    if (records.size()>0){//
                                    List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedBegin,dayTime);
                                    if (records.size()==0){
                                        records = nightRecord.findBySnStaPaTime(device,patient,-1,bedBegin,dayTime);//超时未归的起夜记录
                                    }
                                    if (records.size()>0){//已经晚休了 但是存在起夜未归
                                        record = records.get(0);
                                        record.setStatus(1);
                                        record.setUpdateTime(timeDate);
@ -687,14 +683,14 @@ public class DeviceService {
                                }
                            }
                            if ("0".equals(bed_status)){//离床
                                List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedIn);
                                List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedBegin,dayTime);
                                if(null==planDetail.getInStatus()){
                                    timeDiffer = timeDate.getTime() - bedIn.getTime();
                                    if (timeDiffer>3600*nightLongWarn*1000){
                                        planDetail.setInStatus(0);
                                        planDetail.setBedStatus(1);
                                        planDetail.setSleepNightRecordList(records);
                                        outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未上床晚休",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                        planDetail.setSleepNightRecordList(nightRecord.findBySnPaTime(device,patient,dayTime));
                                        outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"超时未上床晚休",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                        orderCreate=true;
                                    }
                                }
@ -709,10 +705,10 @@ public class DeviceService {
                                    }else {//是否触发工单
                                        record = records.get(0);
                                        timeDiffer = timeDate.getTime()-record.getCreateTime().getTime();
                                        if (timeDiffer>3600*nightLongWarn*1000){//超过2未回床小时 触发工单
                                            planDetail.setSleepNightRecordList(records);
                                        if (timeDiffer>3600*nightLongWarn*1000&&0==records.get(0).getStatus()){//超过2未回床小时 触发工单
                                            planDetail.setSleepNightRecordList(nightRecord.findBySnPaTime(device,patient,dayTime));
                                            planDetail.setBedStatus(0);
                                            outBedOrder(records.get(0),devicePatientDeviceDos.get(0),patient,device,"起夜超时未回床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                            outBedOrder(records.get(0),timeDate,devicePatientDeviceDos.get(0),patient,device,"起夜超时未回床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                            orderCreate=true;
                                        }
                                    }
@ -735,7 +731,8 @@ public class DeviceService {
                                    planDetail.setBreath(breath);
                                    planDetail.setHeartRate(heartrate);
                                    planDetail.setBedStatus(1);
                                    outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                    planDetail.setSleepNightRecordList(nightRecord.findBySnPaTime(device,patient,dayTime));
                                    outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                    return null;
                                }
                            }
@ -745,14 +742,14 @@ public class DeviceService {
                                    planDetail.setBreath(breath);
                                    planDetail.setHeartRate(heartrate);
                                    planDetail.setBedStatus(1);
                                    outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                    planDetail.setSleepNightRecordList(nightRecord.findBySnPaTime(device,patient,dayTime));
                                    outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
                                    return null;
                                }
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
@ -761,7 +758,7 @@ public class DeviceService {
        return null;
    }
    public void outBedOrder(BaseSleepNightRecord record,DevicePatientDevice patientDevice,String patient ,String device,String serverName,String warnInfo)throws Exception{
    public void outBedOrder(BaseSleepNightRecord record,Date time_date,DevicePatientDevice patientDevice,String patient ,String device,String serverName,String warnInfo)throws Exception{
        // //夜间十二点 起床半小时后未回床 触发安防工单
            BasePatientDO patientDO = patientDao.findById(patient);
            if(null!=patientDO){
@ -798,16 +795,14 @@ public class DeviceService {
                    jsonObject.put("warnInfo",warnInfo);
                    JSONObject jsonObjectParam = new JSONObject();
                    jsonObjectParam.put("order", jsonObject);
                    map.put("jsonData", jsonObjectParam.toJSONString());
                    map.put("orderSource", 5);
                    map.put("warnStr", serverName);
                    String content = com.alibaba.fastjson.JSONObject.toJSONString(map);
                    String postParams = AesEncryptUtils.agEncrypt(content);
                    String response = httpClientUtil.postBodyRawForm(url,postParams);
                    JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(response);
                    JSONObject jsonObjectData =JSONObject.parseObject(AesEncryptUtils.agDecrypt(result.getString("data")));
                    System.out.println(jsonObjectData.toJSONString());
                    List<NameValuePair> params = new ArrayList<>();
                    params.add(new BasicNameValuePair("jsonData", jsonObjectParam.toJSONString()));
                    params.add(new BasicNameValuePair("warnStr", serverName));
                    params.add(new BasicNameValuePair("orderSource", "5"));
                    String response = httpClientUtil.post(url, params,"UTF-8");
                    System.out.println(response);
                }
            }
            if (null!=record){

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

@ -4,16 +4,10 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.device.DeviceDetailDao;
import com.yihu.jw.care.dao.device.DeviceInfoDao;
import com.yihu.jw.care.dao.device.DevicePatientHealthIndexDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.device.*;
import com.yihu.jw.care.endpoint.Result;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.DeviceDetail;
import com.yihu.jw.entity.care.device.DeviceInfo;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.device.DevicePatientHealthIndex;
import com.yihu.jw.entity.care.device.*;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.im.util.ImUtil;
@ -21,7 +15,6 @@ import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.healthIndex.HealthIndexUtil;
import com.yihu.jw.utils.StringUtil;
import jdk.management.resource.internal.inst.FileOutputStreamRMHooks;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -58,6 +51,10 @@ public class DeviceUploadService {
    private HealthIndexUtil healthIndexUtil;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private BaseYxDeviceIndexDao yxDeviceIndexDao;
    @Autowired
    private HvDeviceService hvDeviceService;
    public Result uploadDevicesData(String dataJson)throws Exception {
        try {
@ -425,10 +422,49 @@ public class DeviceUploadService {
        if (StringUtils.isBlank(message)){
            return Result.error("message is null");
        }else {
            String[] messages = message.split(",");
            parsingInstruction(message);
        }
        return Result.success("success");
    }
    /**
     * 处理指令
     * @return
     */
    public void parsingInstruction(String instructions){
        if(StringUtils.isBlank(instructions)){
            return;
        }
        String res = "";
        //位置[434036bb95761faaf8771d10029ae8eaIC*860314001160427*0113*UD,210826,093829,V,0.000000,N,0.000000,E,0.00,0.0,100.0,0,62,31,0,0,00000000,1,1,460,0,22831,259001902,62,6,wifi0,20:6b:e7:67:bf:1f,-63,wifi1,d4:9e:05:a7:60:a6,-65,wifi2,e0:d4:62:2d:67:9c,-71,wifi3,54:75:95:b9:4f:8e,-73,wifi4,e4:72:e2:aa:73:0c,-73,wifi5,e0:d4:62:2d:67:a1,-73]
        String instruct[] = instructions.split("]");
        for (int i=0;i<instruct.length;i++){
            String inst = instruct[i];
            String tmp[] = inst.split("\\*");
            String sn = tmp[1];
            String order = tmp[3];
            if(order.contains(",")){
                String tmp1[] = order.split(",");
                if("UD".equals(tmp1[0])){
                    //处理位置信息
                    String lat,lon;
                    if("A".equals(tmp1[4])){
                        lat = tmp1[5];
                        lon = tmp1[7];
                    }else{
                        lat = tmp1[4];
                        lon = tmp1[6];
                    }
                    BaseYxDeviceIndex deviceIndex = new BaseYxDeviceIndex();
                    deviceIndex.setSn(sn);
                    deviceIndex.setLat(lat);
                    deviceIndex.setLon(lon);
                    yxDeviceIndexDao.save(deviceIndex);
                    hvDeviceService.updContactStatus(sn,1);
                }
            }
        }
    }
}

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

@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yihu.jw.care.dao.device.DeviceDetailDao;
import com.yihu.jw.care.dao.device.DeviceHealthIndexDao;
import com.yihu.jw.care.dao.device.HvDeviceRecordDao;
import com.yihu.jw.care.dao.device.HvDeviceSosLogDao;
import com.yihu.jw.care.util.ArtemisPostTest;
import com.yihu.jw.entity.care.device.DeviceDetail;
import com.yihu.jw.entity.care.device.DeviceHealthIndex;
import com.yihu.jw.entity.care.device.HvDeviceRecord;
import com.yihu.jw.entity.care.device.HvDeviceSosLog;
@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -38,6 +41,8 @@ public class HvDeviceService {
    private HvDeviceSosLogDao hvdeviceSosLogDao;
    @Autowired
    private HvDeviceRecordDao hvdeviceRecordDao;
    @Autowired
    private DeviceDetailDao deviceDetailDao;
    /**
     * 消息通知接收
@ -54,6 +59,10 @@ public class HvDeviceService {
            message980002(body);
            return;
        }
        if ("980006".equals(msgType)){
            message980006(body);
            return;
        }
    }
    /**
@ -145,12 +154,43 @@ public class HvDeviceService {
                index.setDeviceType("2");
                list.add(index);
            }
            updContactStatus(resourceSerial,1);
        }
        if(list.size()>0){
            deviceHealthIndexDao.save(list);
        }
    }
    /**
     * 设备在离线推送
     */
    public void message980006(JSONObject json){
        JSONArray data = json.getJSONArray("data");
        for (int i=0;i<data.size();i++){
            JSONObject jsonObject = data.getJSONObject(i);
            String deviceID = jsonObject.getString("deviceID");
            String deviceStatus = jsonObject.getString("deviceStatus");
            List<HvDeviceRecord> list = hvdeviceRecordDao.findByDeviceId(deviceID);
            if(list.size()>0){
                updContactStatus(list.get(0).getDeviceSn(),0);
            }
        }
    }
    /**
     * 更新在线状态
     * @param sn
     * @param status
     */
    public void updContactStatus(String sn,Integer status){
        DeviceDetail deviceDetail = deviceDetailDao.findBySn(sn);
        if(deviceDetail!=null){
            deviceDetail.setContactStatus(status);
            deviceDetail.setContactStatusTime(new Date());
            deviceDetailDao.save(deviceDetail);
        }
    }
    /**
     * 同步设备
     */

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

@ -16,7 +16,9 @@ import com.yihu.jw.util.common.LatitudeUtils;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.encode.Base64;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.entity.ContentType;
import org.apache.http.message.BasicNameValuePair;
import org.csource.common.MyException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -36,6 +38,7 @@ import java.net.URL;
import java.net.URLConnection;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -166,13 +169,15 @@ public class YsDeviceService {
                BasePatientDO patientDO = patientDao.findById(deviceDO.getUser());
                String  url = cloudCareUrl+"/cloudCare/noLogin/security/createOrder";
                Map map = new HashMap<String, String>();
                map = new HashMap();
                String sql ="select DISTINCT item.org_code,item.org_name\n" +
                        " from base_service_package_sign_record sr,base_service_package_record pr,base_service_package_item item ,base_service_package pack\n" +
                        "where pr.patient = '"+patientDO.getId()+"' and sr.id = pr.sign_id and pr.service_package_id = item.service_package_id \tand  item.`code`='preventFall'  and item.service_package_id = pack.id \n" +
                String hospital = "";
                String sql ="select DISTINCT pack.org_code,pack.org_name " +
                        " from base_service_package_sign_record sr,base_service_package_record pr,base_service_package_item item ,base_service_package pack " +
                        "where pr.patient = '"+patientDO.getId()+"' and sr.id = pr.sign_id and pr.service_package_id = item.service_package_id and  item.`code`='"+topicItem+"'  and item.service_package_id = pack.id " +
                        "  and pack.del=1";
                List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                if(sqlResult.size()>0){
                    hospital = sqlResult.get(0).get("org_code")+"";
                }
                String serveDesc = "";
                String sqlDesc = "SELECT dict_value from wlyy_hospital_sys_dict WHERE dict_code = '"+dictCode+"' and dict_name = 'security_server_dict'";
@ -198,16 +203,13 @@ public class YsDeviceService {
                }
                JSONObject jsonObjectParam = new JSONObject();
                jsonObjectParam.put("order", jsonObject);
                map.put("jsonData", jsonObjectParam.toJSONString());
                map.put("orderSource", orderSource);
                map.put("warnStr", serveDesc);
                String content = com.alibaba.fastjson.JSONObject.toJSONString(map);
                String postParams = AesEncryptUtils.agEncrypt(content);
                String response = httpClientUtil.postBodyRawForm(url,postParams);
                result = com.alibaba.fastjson.JSONObject.parseObject(response);
                JSONObject jsonObjectData =JSONObject.parseObject(AesEncryptUtils.agDecrypt(result.getString("data")));
                System.out.println(jsonObjectData.toJSONString());
                List<NameValuePair> params = new ArrayList<>();
                params.add(new BasicNameValuePair("jsonData", jsonObjectParam.toJSONString()));
                params.add(new BasicNameValuePair("warnStr", serveDesc));
                params.add(new BasicNameValuePair("orderSource", orderSource+""));
                String response = httpClientUtil.post(url, params,"UTF-8");
                System.out.println(response);
            }
        }catch (Exception e){
            e.printStackTrace();

+ 40 - 15
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/ArtemisPostTest.java

@ -121,8 +121,8 @@ public class ArtemisPostTest {
		//回调URL	postUrl	String	是
		JSONObject jsonBody = new JSONObject();
		jsonBody.put("msgType", msgType);
		jsonBody.put("postUrl", "http://ehr.yihu.com/wlyy/aqg/hvdevice/messageNotification");
		//http://ehr.yihu.com/wlyy/aqg/device/byOnlineStatus
		jsonBody.put("postUrl", "https://zhyzh.gongshu.gov.cn/device/hvdevice/messageNotification");
		//https://zhyzh.gongshu.gov.cn/device
		//http://ehr.yihu.com/wlyy/aqg
		String body = jsonBody.toJSONString();
		String StringeResult = callPostStringApi(url,body);
@ -132,11 +132,11 @@ public class ArtemisPostTest {
	/**
	 * 修改订阅
	 */
	public void subscription_update(){
	public static void subscription_update(String msgType){
		String url = "/api/firepro/v1/subscription/update";
		JSONObject jsonBody = new JSONObject();
		jsonBody.put("pageNo", 1);
		jsonBody.put("pageSize", 3);
		jsonBody.put("msgType", msgType);
		jsonBody.put("postUrl", "https://zhyzh.gongshu.gov.cn/device/hvdevice/messageNotification");
		String body = jsonBody.toJSONString();
		String StringeResult = callPostStringApi(url,body);
		System.out.println("StringeResult结果示例: "+StringeResult);
@ -213,6 +213,20 @@ public class ArtemisPostTest {
		System.out.println("StringeResult结果示例: "+StringeResult);
	}
	/**
	 * type 1烟感 2气感
	 * @param deviceName
	 * @param deviceSerial
	 * @param type
     */
	public static void addDevice(String deviceName,String deviceSerial,int type){
		if(type ==1){
			addDevice(deviceName,deviceSerial,"800022","600002");
		}else{
			addDevice(deviceName,deviceSerial,"800056","600006");
		}
	}
	/**
	 * 查询订阅
	 */
@ -236,15 +250,26 @@ public class ArtemisPostTest {
//		System.out.println("StringeResult结果示例: "+StringeResult);
//		callPostImgStringApi();
//		getDevice();
		getMonitor();
//		subscription_info("980001");
//		subscription_info("980002");
//		subscription_info("980003");
//		subscription_info("980004");
//		subscription_info("980005");
//		subscription_info("980006");
//		subscription_info("980007");
//		subscription_info("980008");
		getDevice();
//		getMonitor();
//		subscription_update("980001");
//		subscription_update("980002");
//		subscription_update("980003");
//		subscription_update("980004");
//		subscription_update("980005");
//		subscription_update("980006");
//		subscription_update("980007");
//		subscription_update("980008");
//		addDevice("可燃气体探测器","867070036127251",2);
//		addDevice("可燃气体探测器","867070036223175",2);
//		addDevice("可燃气体探测器","867070036131121",2);
//		addDevice("可燃气体探测器","867070036312564",2);
//
//		addDevice("火灾探测报警器","863409057775073",1);
//		addDevice("火灾探测报警器","863409057781162",1);
//		addDevice("火灾探测报警器","863409057781261",1);
//		addDevice("火灾探测报警器","863409057781113",1);
	}
}

+ 1 - 1
svr/svr-cloud-device/src/main/resources/application.yml

@ -325,7 +325,7 @@ wechat:
  flag: false #演示环境  true走Mysql数据库  false走Oracle
im:
  im_list_get: http://127.0.0.0:3000/
  im_list_get: http://127.0.0.1:3000/
  data_base_name: im_internet_hospital
es:
  pwflag: 1 # 1需要密码,2不需要密码

+ 13 - 8
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/PatientSosContactsJob.java

@ -58,19 +58,24 @@ public class PatientSosContactsJob implements Job {
                    JSONObject response = cardService.setPatientContacts(sim, null, null, "1", sos_phone, null);//移动白名单
                    //0成功 12102名单重复
                    if (response.getInteger("status")==0||response.getInteger("status")==12108){
                        //设备修改
                        JSONObject response2 =  deviceService.updAqgDeviceSosInfo(device_sn,phone_seqid,sos_name,sos_phone,"1",null);
                        if (response2.getBoolean("success")){
                        sosContactsDO.setSuccessFlag(1);
                    }else {
                        sosContactsDO.setSuccessFlag(-1);
                        modify.add(sosContactsDO);
                    }
                    //设备修改
                    JSONObject response2 =  deviceService.updAqgDeviceSosInfo(device_sn,phone_seqid,sos_name,sos_phone,"1",null);
                    System.out.println(response2.toString());
                    if (response2.getBoolean("success")){
                        if (1==sosContactsDO.getSuccessFlag()){
                            sosContactsDO.setSuccessFlag(1);
                        }else {
                            sosContactsDO.setSuccessFlag(-1);
                        }
                        modify.add(sosContactsDO);
                        sosContactsDO.setSuccessFlag(-1);
                    }else {
                        sosContactsDO.setSuccessFlag(-1);
                        modify.add(sosContactsDO);
                        throw new Exception("物联网卡操作失败:"+response);
                    }
                    modify.add(sosContactsDO);
                }
            }catch (Exception e){
                logger.info(sim+"--同步失败--"+sos_phone);

+ 413 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/thirdUpload/ThirdUploadEndpoint.java

@ -0,0 +1,413 @@
package com.yihu.jw.hospital.endpoint.thirdUpload;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeCategoryDO;
import com.yihu.jw.entity.thirdUpload.*;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.thirdUpload.UpnsOrganBaseDao;
import com.yihu.jw.thirdUpload.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/monitoringPlatform")
@Api(value = "监管平台数据增删改查", description = "监管平台数据增删改查", tags = {"监管平台数据增删改查"})
public class ThirdUploadEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private AchnsDoctorRecordService achnsDoctorRecordService;
    @Autowired
    private UpAppointmentOnlineService upAppointmentOnlineService;
    @Autowired
    private UpMedicalOnlineService upMedicalOnlineService;
    @Autowired
    private UpnsDoctorRecordService upnsDoctorRecordService;
    @Autowired
    private UpnsDoctorScoreService upnsDoctorScoreService;
    @Autowired
    private UpnsOrganBaseService upnsOrganBaseService;
    @PostMapping("/saveAchns")
    @ApiOperation(value = "保存医师唯一标识")
    public Envelop saveAchns(@ApiParam(name = "jsonData", value = "")
                               @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            List<AchnsDoctorRecordDO> dealList = objectMapper.readValue(jsonData, new TypeReference<List<AchnsDoctorRecordDO>>() {
        });
            achnsDoctorRecordService.saveAchns(dealList);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/deleteAchns")
    @ApiOperation(value = "删除医师唯一标识")
    public Envelop deleteAchns(@ApiParam(name = "id", value = "")
                             @RequestParam(name = "id", required = true) String id) throws Exception {
        try {
            achnsDoctorRecordService.deleteById(id);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findAchnsByCreateTime")
    @ApiOperation(value = "查询医师唯一标识")
    public Envelop findAchnsByCreateTime(@ApiParam(name = "date", value = "yyyy-mm-dd")
                               @RequestParam(name = "date", required = true) String date) throws Exception {
        try {
            return success(achnsDoctorRecordService.findByCreateTime(date));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findAchnsList")
    @ApiOperation(value = "获取医师唯一标识分类列表")
    public ListEnvelop findAchnsList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
            @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
            @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
            @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
        try {
            List<AchnsDoctorRecordDO> list  = achnsDoctorRecordService.search(fields,filters,sorts,page,pageSize);
            return success(list);
        }catch (Exception e){
            return failedListEnvelopException(e);
        }
    }
    @PostMapping("/saveUpApp")
    @ApiOperation(value = "保存网上预约挂号")
    public Envelop saveUpAppointmentOnline(@ApiParam(name = "jsonData", value = "")
                             @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            List<UpAppointmentOnlineDO> dealList = objectMapper.readValue(jsonData, new TypeReference<List<UpAppointmentOnlineDO>>() {
            });
            upAppointmentOnlineService.saveUpAppointment(dealList);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/deleteUpApp")
    @ApiOperation(value = "删除网上预约挂号")
    public Envelop deleteUpAppointmentOnline(@ApiParam(name = "id", value = "")
                               @RequestParam(name = "id", required = true) String id) throws Exception {
        try {
            upAppointmentOnlineService.deleteById(id);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpAppByCreateTime")
    @ApiOperation(value = "查询网上预约挂号")
    public Envelop findUpAppByCreateTime(@ApiParam(name = "date", value = "yyyy-mm-dd")
                                         @RequestParam(name = "date", required = true) String date) throws Exception {
        try {
            return success(upAppointmentOnlineService.findByCreateTime(date));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpAppList")
    @ApiOperation(value = "获取网上预约挂号分类列表")
    public ListEnvelop findUpAppList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
            @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
            @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
            @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
        try {
            List<UpAppointmentOnlineDO> list  = upAppointmentOnlineService.search(fields,filters,sorts,page,pageSize);
            return success(list);
        }catch (Exception e){
            return failedListEnvelopException(e);
        }
    }
    @PostMapping("/saveUpMedical")
    @ApiOperation(value = "保存在线医技预约")
    public Envelop saveUpMedical(@ApiParam(name = "jsonData", value = "")
                             @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            List<UpMedicalOnlineDO> dealList = objectMapper.readValue(jsonData, new TypeReference<List<UpMedicalOnlineDO>>() {
            });
            upMedicalOnlineService.saveUpMedicalOnline(dealList);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/deleteUpMedical")
    @ApiOperation(value = "删除在线医技预约")
    public Envelop deleteUpMedical(@ApiParam(name = "id", value = "")
                               @RequestParam(name = "id", required = true) String id) throws Exception {
        try {
            upMedicalOnlineService.deleteById(id);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpMedicalByCreateTime")
    @ApiOperation(value = "查询在线医技预约")
    public Envelop findUpMedicalByCreateTime(@ApiParam(name = "date", value = "yyyy-mm-dd")
                                         @RequestParam(name = "date", required = true) String date) throws Exception {
        try {
            return success(upMedicalOnlineService.findByCreateTime(date));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpMedicalList")
    @ApiOperation(value = "获取在线医技预约分类列表")
    public ListEnvelop findUpMedicalList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
            @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
            @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
            @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
        try {
            List<UpMedicalOnlineDO> list  = upMedicalOnlineService.search(fields,filters,sorts,page,pageSize);
            return success(list);
        }catch (Exception e){
            return failedListEnvelopException(e);
        }
    }
    @PostMapping("/saveUpnsDr")
    @ApiOperation(value = "保存医师基本信息")
    public Envelop saveUpnsDr(@ApiParam(name = "jsonData", value = "")
                             @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            List<UpnsDoctorRecordDO> dealList = objectMapper.readValue(jsonData, new TypeReference<List<UpnsDoctorRecordDO>>() {
            });
            upnsDoctorRecordService.saveUpnsDoctorRecord(dealList);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/deleteUpnsDr")
    @ApiOperation(value = "删除医师基本信息")
    public Envelop deleteUpnsDr(@ApiParam(name = "id", value = "")
                               @RequestParam(name = "id", required = true) String id) throws Exception {
        try {
            upnsDoctorRecordService.deleteById(id);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpnsDrByCreateTime")
    @ApiOperation(value = "查询医师基本信息")
    public Envelop findUpnsDrByCreateTime(@ApiParam(name = "date", value = "yyyy-mm-dd")
                                         @RequestParam(name = "date", required = true) String date) throws Exception {
        try {
            return success(upnsDoctorRecordService.findByCreateTime(date));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpnsDrList")
    @ApiOperation(value = "获取医师基本信息分类列表")
    public ListEnvelop findUpnsDrList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
            @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
            @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
            @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
        try {
            List<UpnsDoctorRecordDO> list  = upnsDoctorRecordService.search(fields,filters,sorts,page,pageSize);
            return success(list);
        }catch (Exception e){
            return failedListEnvelopException(e);
        }
    }
    @PostMapping("/saveUpnsDs")
    @ApiOperation(value = "保存医生评价信息")
    public Envelop saveUpnsDs(@ApiParam(name = "jsonData", value = "")
                             @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            List<UpnsDoctorScoreDO> dealList = objectMapper.readValue(jsonData, new TypeReference<List<UpnsDoctorScoreDO>>() {
            });
            upnsDoctorScoreService.saveUpnsDoctorScore(dealList);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/deleteUpnsDs")
    @ApiOperation(value = "删除医生评价信息")
    public Envelop deleteUpnsDs(@ApiParam(name = "id", value = "")
                               @RequestParam(name = "id", required = true) String id) throws Exception {
        try {
            upnsDoctorScoreService.deleteById(id);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpnsDsByCreateTime")
    @ApiOperation(value = "查询医生评价信息")
    public Envelop findUpnsDsByCreateTime(@ApiParam(name = "date", value = "yyyy-mm-dd")
                                         @RequestParam(name = "date", required = true) String date) throws Exception {
        try {
            return success(upnsDoctorScoreService.findByCreateTime(date));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpnsDsList")
    @ApiOperation(value = "获取医生评价信息分类列表")
    public ListEnvelop findUpnsDsList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
            @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
            @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
            @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
        try {
            List<UpnsDoctorScoreDO> list  = upnsDoctorScoreService.search(fields,filters,sorts,page,pageSize);
            return success(list);
        }catch (Exception e){
            return failedListEnvelopException(e);
        }
    }
    @PostMapping("/saveUpnsOrg")
    @ApiOperation(value = "保存医院基本信息")
    public Envelop saveUpnsOrg(@ApiParam(name = "jsonData", value = "")
                             @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            List<UpNsOrganBaseDO> dealList = objectMapper.readValue(jsonData, new TypeReference<List<UpNsOrganBaseDO>>() {
            });
            upnsOrganBaseService.saveUpnsOrganBase(dealList);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/deleteUpnsOrg")
    @ApiOperation(value = "删除医院基本信息")
    public Envelop deleteUpnsOrg(@ApiParam(name = "id", value = "")
                               @RequestParam(name = "id", required = true) String id) throws Exception {
        try {
            upnsOrganBaseService.deleteById(id);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpnsOrgByCreateTime")
    @ApiOperation(value = "查询医院基本信息")
    public Envelop findUpnsOrgByCreateTime(@ApiParam(name = "date", value = "yyyy-mm-dd")
                                         @RequestParam(name = "date", required = true) String date) throws Exception {
        try {
            return success(upnsOrganBaseService.findByCreateTime(date));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findUpnsOrgList")
    @ApiOperation(value = "获取医院基本信息分类列表")
    public ListEnvelop findUpnsOrgList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
            @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
            @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
            @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
        try {
            List<UpNsOrganBaseDO> list  = upnsOrganBaseService.search(fields,filters,sorts,page,pageSize);
            return success(list);
        }catch (Exception e){
            return failedListEnvelopException(e);
        }
    }
}