Pārlūkot izejas kodu

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

LAPTOP-KB9HII50\70708 3 gadi atpakaļ
vecāks
revīzija
97554a9a0a
28 mainītis faili ar 683 papildinājumiem un 20 dzēšanām
  1. 3 0
      business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/SystemMessageDao.java
  2. 100 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  3. 14 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/TasyNatService.java
  4. 3 3
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/HcyyEntranceService.java
  5. 7 6
      business/base-service/src/main/java/com/yihu/jw/internet/service/InternetCommonService.java
  6. 12 0
      common/common-entity/sql记录
  7. 73 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/PatientSafeAreaConfirm.java
  8. 9 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/PatientSafeAreaDO.java
  9. 1 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/SystemMessageDO.java
  10. 4 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/device/DeviceManageEndpoint.java
  11. 20 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/PatientSafeAreaConfirmDao.java
  12. 9 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/PatientSafeAreaDao.java
  13. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/family/FamilyMemberEndpoint.java
  14. 16 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/PatientMessageEndpoint.java
  15. 85 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/safeArea/DoctorSafeAreaController.java
  16. 13 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/security/SecurityMonitoringOrderEndpoint.java
  17. 18 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java
  18. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java
  19. 124 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  20. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/label/PatientLableService.java
  21. 58 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java
  22. 55 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/safeArea/SafeAreaService.java
  23. 31 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  24. 4 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java
  25. 2 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/PatientSafeAreaDao.java
  26. 7 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java
  27. 10 1
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/SecurityOrderUtil.java
  28. 2 2
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/HcyyPrescriptionCotroller.java

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/SystemMessageDao.java

@ -69,4 +69,7 @@ public interface SystemMessageDao extends PagingAndSortingRepository<SystemMessa
    @Query("DELETE FROM SystemMessageDO where type='43' and relationCode in(?1) ")
    void delMessageByRelationCode(List<String> relationCode);
    @Modifying
    @Query("update SystemMessageDO m set m.isRead=1 ,m.over=0 where m.type=?1 and m.relationCode=?2 ")
    void readByTypeAndRelationCode(String type,String relationCode);
}

+ 100 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -331,6 +331,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private TasyNatService tasyNatService;
    @Autowired
    private HealthCareService healthCareService;
    @Autowired
    private HcyyPrescriptionService hcyyPrescriptionService;
    public static String entranceUrl = "http://172.16.100.240:10023/xzzx/";
@ -9807,6 +9809,104 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        e.printStackTrace();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }else if (wxId.equalsIgnoreCase("xm_hcyy_wx")){
                try {
                    if (prescriptionDiagnosisDOS!=null&&prescriptionDiagnosisDOS.size()!=0){
                        String diagnosisName = prescriptionDiagnosisDOS.get(0).getName();
                        String diagnosisCode = prescriptionDiagnosisDOS.get(0).getCode();
                        //同步诊断
                        com.alibaba.fastjson.JSONObject jsonObject2 = hcyyPrescriptionService.saveDiagnosisToEntrance(outpatientDO.getRegisterNo(),diagnosisName,diagnosisCode);
                        logger.info("上传诊断返回参数"+jsonObject2);
                        //{"msg":"交易成功","code":"0","data":{"PresDetail":{"PresNo":"16151365"}},"success":"True"}
                        if (jsonObject2!=null){
                            if (jsonObject2.getString("code").equalsIgnoreCase("0")){
                                com.alibaba.fastjson.JSONObject jsonObject = jsonObject2.getJSONObject("data");
                                logger.info("上传诊断成功"+jsonObject2);
                            }
                        }
                    }
                    //同步处方
                    String applyDoctor = doctorMappingDO.getDoctorName()+"/"+doctorMappingDO.getMappingCode();
                    com.alibaba.fastjson.JSONObject object = hcyyPrescriptionService.savePrescriptionToEntrance("0",outpatientDO.getCardNo(),outpatientDO.getRegisterNo(),outpatientDO.getDept(),applyDoctor,"50100",infoDOS);
                    logger.info("成功上传处方"+object);
                    //{"msg":"交易成功","code":"0","data":{"PresDetail":{"PresNo":"16151365"}},"success":"True"}
                    if (object!=null){
                        if (object.getString("code").equalsIgnoreCase("0")){
                            com.alibaba.fastjson.JSONObject jsonObject = object.getJSONObject("data");
                            com.alibaba.fastjson.JSONObject jsonObject1 = jsonObject.getJSONObject("PresDetail");
                            String realOrder = jsonObject1.getString("PresNo");
                            wlyyPrescriptionDO.setAdmNo(outpatientDO.getAdmNo());
                            wlyyPrescriptionDO.setSerialNo(outpatientDO.getAdmNo());
                            wlyyPrescriptionDO.setRealOrder(realOrder);
                        }
                    }
                    logger.info("进入处方签名");
                  /*  //处方签名
                    String baseSign=xzyyPrescriptionService.SOF_SignDataWithExtraInfo(wlyyPrescriptionDO);
                    //同步电子病历
                    WlyyPrescriptionEmrDO prescriptionEmrDO = prescriptionEmrDao.findEmrByPrescriptionId(prescriptionId);
                    try {
                        if (prescriptionEmrDO != null) {
                            logger.info("电子病历同步");
                            xzzxEntranceService.saveEmrToEntrance(prescriptionId,baseSign);
                            logger.info("电子病历同步");
                            logger.info("电子病历签名");
                            xzyyPrescriptionService.SOF_SignDataWithExtraInfoEmr(wlyyPrescriptionDO);
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }*/
                    try {
                        if (object!=null){
                            if (object.getString("code").equalsIgnoreCase("0")){
                                //  * @param applyDepaName @param applyDoctorName
                                WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
                                String patientCode = outpatientDO.getConsumer();
                                String realerOrder = prescriptionDO.getRealOrder();
                                String recipeTime = DateUtil.dateToStr(prescriptionDO.getCreateTime(), "yyyyMMddHHmmss");
                                List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(prescriptionDO.getDoctor());
                                String applyDepaName = null;
                                if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                                    applyDepaName = doctorHospitalDOS.get(0).getDeptName();
                                }
                                String voucherNo = outpatientDO.getRegisterNo();
                                String applyDoctorName = prescriptionDO.getDoctorName();
                                BasePatientDO patientDO = basePatientDao.findById(patientCode);
                                String userName = null;
                                String idcard = null;
                                if (patientDO != null) {
                                    userName = patientDO.getName();
                                    idcard = patientDO.getIdcard();
                                }
                                PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patientCode);
                                String userNo = null;
                                if (patientMappingDO != null) {
                                    userNo = patientMappingDO.getMappingCode();
                                }
                                String cardNo = null;
                                if (StringUtils.isNoneBlank(outpatientDO.getCardNo())) {
                                    cardNo = outpatientDO.getCardNo();
                                }
                                logger.info("cardNo:" + cardNo);
                               /* JSONObject jsonObject =entranceService.BS15054(patientMappingDO.getMappingCode(),prescriptionDO.getRealOrder(),demoFlag);
                                net.sf.json.JSONObject res = jsonObject.getJSONObject("resquest");
                                logger.info("获取待结算数据 res: " + res.toString());
                                String rsCode = res.getString("@RESULT");
                                String free= 0+"";
                                if ("0".equals(rsCode)) {
                                    free = res.getString("@total_charge");
                                }*/
                                /*ylzPayService.msgPush("01", cardNo, "01", patientDO.getMobile(), "00", userNo, userName, idcard, voucherNo, applyDepaName, applyDoctorName, recipeTime, "", "","WX_PUB");
                            */}
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/TasyNatService.java

@ -842,6 +842,20 @@ public class TasyNatService {
                                                    }
                                                    //取消号源
                                                    //cancleOrder(baseNatAppointmentDO.getCardNo(),baseNatAppointmentDO.getRegisterNo(),baseNatAppointmentDO.getOderNum());
                                                }else if ("作废".equalsIgnoreCase(child.getString("Status"))) {
                                                    logger.info("进入作废订单同步");
                                                    baseNatAppointmentDO.setPayStatus("-1");
                                                    baseNatAppointmentDO.setIsSuccess("-1");
                                                    baseNatAppointmentDO.setCancelReson("患者本人线下作废");
                                                    baseNatAppointmentDO.setCancelTime(new Date());
                                                    baseNatAppointmentDO.setCancelBy(patientId);
                                                    BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(baseNatAppointmentDO.getId().toString());
                                                    if (businessOrderDO != null) {
                                                        businessOrderDO.setStatus(-1);
                                                        businessOrderDao.save(businessOrderDO);
                                                    }
                                                    //取消号源
                                                    //cancleOrder(baseNatAppointmentDO.getCardNo(),baseNatAppointmentDO.getRegisterNo(),baseNatAppointmentDO.getOderNum());
                                                }
                                                baseNatAppointmentDao.save(baseNatAppointmentDO);
                                            }

+ 3 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/HcyyEntranceService.java

@ -153,7 +153,7 @@ public class HcyyEntranceService {
    public String getOperateUrl(){
        List<WlyyHospitalSysDictDO> list =  wlyyHospitalSysDictDao.findByDictName("xzzxWebOperateService");
        List<WlyyHospitalSysDictDO> list =  wlyyHospitalSysDictDao.findByDictName("hcyyWebOperateService");
        String url = list.get(0).getDictCode();
        return url;
@ -161,7 +161,7 @@ public class HcyyEntranceService {
    public String getOperateSmsUrl(){
        List<WlyyHospitalSysDictDO> list =  wlyyHospitalSysDictDao.findByDictName("xzzxWebOperateSmsService");
        List<WlyyHospitalSysDictDO> list =  wlyyHospitalSysDictDao.findByDictName("hcyyWebOperateSmsService");
        String url = list.get(0).getDictCode();
        return url;
@ -1294,7 +1294,7 @@ public class HcyyEntranceService {
    /**
     *
     *  获取检查单据信息
     *  获取检查项目信息
     * @return
     * @throws Exception
     */

+ 7 - 6
business/base-service/src/main/java/com/yihu/jw/internet/service/InternetCommonService.java

@ -94,7 +94,7 @@ public class InternetCommonService extends BaseJpaService<InternetUpErrorLogDO,
    public String orgSub ;
    public String imgUrl;
    static String imgPath =File.separator+"data1"+File.separator+"ehr"+File.separator+"svr-internet-hospital-job"+File.separator+"img"+File.separator;
    static String imgPath =File.separator+"data"+File.separator+"hospital"+File.separator+"svr-internet-hospital-job"+File.separator+"img"+File.separator;
    public ObjectMapper objectMapper;
@ -255,9 +255,9 @@ public class InternetCommonService extends BaseJpaService<InternetUpErrorLogDO,
        jb.put("protocol_name", superviseDataDict.getProtocolName());
        //其他建设信息
        jb.put("quai_mang_dept", "");
        jb.put("info_mang_dept", "");
        jb.put("medi_service_dept", "");
        jb.put("quai_mang_dept", "0");
        jb.put("info_mang_dept", "0");
        jb.put("medi_service_dept", "1");
        jb.put("server_type", "");
        jb.put("server_total", "");
@ -274,10 +274,10 @@ public class InternetCommonService extends BaseJpaService<InternetUpErrorLogDO,
        jb.put("tech_manual", "");
        jb.put("server_manual", "");
        jb.put("emr_level", "");
        jb.put("emr_level", "4");
        jb.put("emr_level_cert", "");
        jb.put("zone_record_share", "");
        jb.put("zone_record_share", "0");
        jb.put("prov_monitor", "");
        jb.put("prov_service", "");
@ -290,6 +290,7 @@ public class InternetCommonService extends BaseJpaService<InternetUpErrorLogDO,
        jb.put("third_compeny_corp_id", "");
        jb.put("third_compeny_prot", "");
        jb.put("green_road","0");
        JSONArray jsonArray = new JSONArray();

+ 12 - 0
common/common-entity/sql记录

@ -1589,3 +1589,15 @@ CREATE TABLE `dm_ys_config` (
-- 2021-11-11
alter table base_patient  add column `home_lat_lon` varchar(100) DEFAULT NULL COMMENT '居民家庭经纬度';
ALTER table wlyy_patient_safe_area add column manage_status TINYINT(2) default '0' COMMENT '电子围栏确认情况 0待确认 1已确认';
ALTER TABLE wlyy_patient_safe_area add column  `del` varchar(1) DEFAULT '1' COMMENT '作废标识,1正常,0作废';
CREATE TABLE wlyy_patient_safe_area_confirm (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL COMMENT '居民id',
	 doctor_code varchar(50) DEFAULT NULL COMMENT '助老员code',
	`safe_id` varchar(50) DEFAULT NULL COMMENT '安全区域id 关联居民电子围栏id',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建日期',
  `manage_status` tinyint(2) DEFAULT '0' COMMENT '电子围栏确认情况 0待确认 1已确认',
  `del` varchar(1) DEFAULT '1' COMMENT '作废标识,1正常,0作废',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='患者电子围栏新增记录';

+ 73 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/PatientSafeAreaConfirm.java

@ -0,0 +1,73 @@
package com.yihu.jw.entity.care.device;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Bing on 2021/11/16.
 */
@Entity
@Table(name="wlyy_patient_safe_area_confirm")
public class PatientSafeAreaConfirm extends IdEntity {
    private String patient;
    private String doctorCode;//助老员code
    private String safeId; //安全区域id 关联居民电子围栏id
    private String del;//作废标识,1正常,0作废
    private Integer manageStatus;//电子围栏确认情况 0待确认 1已确认
    private Date createTime;
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    public String getSafeId() {
        return safeId;
    }
    public void setSafeId(String safeId) {
        this.safeId = safeId;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
    public Integer getManageStatus() {
        return manageStatus;
    }
    public void setManageStatus(Integer manageStatus) {
        this.manageStatus = manageStatus;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 9 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/PatientSafeAreaDO.java

@ -21,6 +21,7 @@ public class PatientSafeAreaDO extends IdEntity {
    private Date createTime;
    private Date updateTime;
    private String del;//作废标识,1正常,0作废
    private Integer manageStatus;//电子围栏确认情况 0待确认 1已确认
    public String getPatient() {
@ -73,4 +74,12 @@ public class PatientSafeAreaDO extends IdEntity {
    public void setManageStatus(Integer manageStatus) {
        this.manageStatus = manageStatus;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
}

+ 1 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/SystemMessageDO.java

@ -22,6 +22,7 @@ public class SystemMessageDO extends UuidIdentityEntity {
     * 人文关怀系统消息 41
     * 体征设备测量系统消息 42
     * 设备离线系统消息 43
     * 监护确认消息 44
     * 家属紧急预警系统消息 50
     * 新生儿在线咨询 850
     * 老人在线咨询 851

+ 4 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/device/DeviceManageEndpoint.java

@ -303,6 +303,7 @@ public class DeviceManageEndpoint extends EnvelopRestEndpoint {
                }
                if (!StringUtils.isEmpty(errorMsg.trim())) {
                    deviceDetail.setErrorMsg(errorMsg);
                    deviceDetail.setDeviceCode(deviceCode);
                    errorLs.add(deviceDetail);
                    continue;
                }
@ -315,6 +316,8 @@ public class DeviceManageEndpoint extends EnvelopRestEndpoint {
                deviceDetail.setDeviceModel(deviceModel);
                deviceDetail.setDeviceCode(deviceCode);
                deviceDetail.setSim(sim);
                deviceDetail.setIccid(iccid);
                deviceDetail.setImsi(imsi);
                Device device = deviceDao.findByModel(deviceModel);
                if (device!=null){
                    deviceDetail.setDeviceType(device.getDeviceType());
@ -334,7 +337,7 @@ public class DeviceManageEndpoint extends EnvelopRestEndpoint {
            map.put("successNum", correctLs.size());
            map.put("failedNum", rows-1 - correctLs.size() );
            map.put("errorData", JSON.toJSONString(errorMsgMapTotal, SerializerFeature.WriteMapNullValue));
            map.put("errorData", errorLs);
            map.put("errorDataList", errorLs);
            return ObjEnvelop.getSuccess("success",JSON.toJSONString(map,SerializerFeature.WriteMapNullValue));
        } catch (Exception e) {

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

@ -0,0 +1,20 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.PatientSafeAreaConfirm;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface PatientSafeAreaConfirmDao extends PagingAndSortingRepository<PatientSafeAreaConfirm,Long>,
        JpaSpecificationExecutor<PatientSafeAreaConfirm> {
    List<PatientSafeAreaConfirm> findByDoctorCodeAndPatient(String doctorCode,String patient);
    @Modifying
    @Query(value = "update  PatientSafeAreaConfirm p set p.manageStatus=1 where p.patient=?1")
    void manageByPatient(String patient);
}

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

@ -3,6 +3,7 @@ package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.PatientSafeAreaDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
@ -13,9 +14,17 @@ import java.util.List;
public interface PatientSafeAreaDao extends PagingAndSortingRepository<PatientSafeAreaDO,Long>,
        JpaSpecificationExecutor<PatientSafeAreaDO> {
    @Query(value = " select p from PatientSafeAreaDO p where p.patient=?1 and p.del='1' and p.manageStatus=1 ")
    List<PatientSafeAreaDO> findByPatient(String patient);
    @Query(value = " select p from PatientSafeAreaDO p where p.patient=?1 and p.del='1'")
    List<PatientSafeAreaDO> findByPatient2(String patient);
    @Modifying
    @Query(value = "update PatientSafeAreaDO p set p.del='0' where p.patient=?1 ")
    void deleteByPatient(String patient);
    @Modifying
    @Query(value = " update PatientSafeAreaDO p set p.manageStatus=1 where p.patient=?1")
    void manageByPatient(String patient);
}

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

@ -118,7 +118,7 @@ public class FamilyMemberEndpoint extends EnvelopRestEndpoint {
            if (result.getInteger(ResponseContant.resultFlag)==ResponseContant.success){
                return success("添加成功");
            }else {
                return success(result.getString(ResponseContant.resultMsg));
                return Envelop.getError(result.getString(ResponseContant.resultMsg));
            }
        } catch (Exception e) {
            return failedException2(e);

+ 16 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/PatientMessageEndpoint.java

@ -115,5 +115,21 @@ public class PatientMessageEndpoint extends EnvelopRestEndpoint {
            return failedException2(e);
        }
    }
        @PostMapping(value = "/ConfirmFences")
    @ApiOperation("家属确认电子围栏监护消息")
    @ObserverRequired
    public Envelop ConfirmFences(@ApiParam(name = "messageId",required = true)
                                 @RequestParam(value = "messageId")String messageId,
                                 @ApiParam(name = "safe_area",value = "lon1,lat1;lon2,lat2; 5个坐标 形成一个封闭区域  A;B;C;D;A ")
                                 @RequestParam(value = "safe_area",required = false)String safe_area){
        try {
            patientMessageService.ConfirmFences(messageId,safe_area);
            return Envelop.getSuccess("已确认");
        }catch (Exception e){
            return failedException2(e);
        }
    }
}

+ 85 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/safeArea/DoctorSafeAreaController.java

@ -0,0 +1,85 @@
package com.yihu.jw.care.endpoint.safeArea;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.safeArea.SafeAreaService;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by Bing on 2021/11/16.
 */
@RestController
@RequestMapping(value = "doctor/safeArea")
@Api(description = " 医生电子围栏")
public class DoctorSafeAreaController extends EnvelopRestEndpoint {
    @Autowired
    private PatientDeviceService patientDeviceService;
    @Autowired
    private SafeAreaService safeAreaService;
    @ApiOperation("助老员新增电子围栏记录")
    @RequestMapping(value = "doctorNewSafeArea",method = RequestMethod.GET)
    public ObjEnvelop doctorNewSafeArea(@ApiParam(name = "doctor",value = "doctor")
                                    @RequestParam(value = "doctor",required = false)String doctor,
                                        @ApiParam(name = "patient",value = "患者")
                                    @RequestParam(value = "patient",required = false)String patient,
                                        @ApiParam(name = "safe_area",value = "lon1,lat1;lon2,lat2; 5个坐标 形成一个封闭区域  A;B;C;D;A ")
                                    @RequestParam(value = "safe_area",required = false)String safe_area
    ){
        try {
            com.alibaba.fastjson.JSONObject result = patientDeviceService.doctorNewSafeArea(doctor,patient,safe_area);
            if (result.getInteger(ResponseContant.resultFlag)==ResponseContant.success){
                return ObjEnvelop.getSuccess("添加成功","");
            }else {
                return ObjEnvelop.getError(result.getString(ResponseContant.resultMsg));
            }
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @ApiOperation("查看新增围栏记录tab")
    @RequestMapping(value = "doctorNewSafeAreaTab",method = RequestMethod.GET)
    public ObjEnvelop doctorNewSafeArea(@ApiParam(name = "doctor",value = "doctor")
                                        @RequestParam(value = "doctor",required = false)String doctor,
                                        @ApiParam(name = "manageStatus",value = "患者")
                                        @RequestParam(value = "manageStatus",required = false)Integer manageStatus
    ){
        try {
            return ObjEnvelop.getSuccess("获取成功",safeAreaService.doctorNewSafeAreaTab(doctor,manageStatus));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @ApiOperation("查看新增围栏记录列表")
    @RequestMapping(value = "doctorNewSafeAreaList",method = RequestMethod.GET)
    public ObjEnvelop doctorNewSafeAreaList(@ApiParam(name = "doctor",value = "doctor")
                                        @RequestParam(value = "doctor",required = false)String doctor,
                                        @ApiParam(name = "manageStatus",value = "管理状态 0 1")
                                        @RequestParam(value = "manageStatus",required = false)Integer manageStatus
    ){
        try {
            try {
                return ObjEnvelop.getSuccess("获取成功",safeAreaService.doctorNewSafeAreaList(doctor,manageStatus));
            }catch (Exception e){
                return failedObjEnvelopException2(e);
            }
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
}

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

@ -345,6 +345,19 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
        }
    }
    @ApiOperation("助老员端获取日常监护居民")
    @GetMapping(value = "findMonitorPatientsByDoctor")
    @ResponseBody
    public ObjEnvelop findMonitorPatientsByDoctor(@ApiParam(name = "doctor",  required = true)@RequestParam(value = "doctor")String doctor,
                                                  @ApiParam(name = "topicItem", value = "专题code,关联security_topic_dict字典", required = true)
                                                  @RequestParam(value = "topicItem",required = true,defaultValue = "preventLost") String topicItem) {
        try {
            return ObjEnvelop.getSuccess( "查询成功", securityMonitoringOrderService.findMonitorPatientsByDoctor(doctor,topicItem));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @ApiOperation("获取居民签约专题信息")
    @RequestMapping(value = "patientSignTopicInfo", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody

+ 18 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java

@ -22,10 +22,12 @@ import com.yihu.jw.im.dao.ConsultTeamDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.Date;
@ -65,6 +67,8 @@ public class ConsultTeamService {
    private PatientDoorCoachOrderService patientDoorCoachOrderService;
    @Autowired
    private MessageUtil messageUtil;
    @Value("${wechat.id}")
    private String wxId;
    private Logger logger= LoggerFactory.getLogger(ConsultTeamService.class);
@ -197,6 +201,11 @@ public class ConsultTeamService {
        JSONObject participants = new JSONObject();
        participants.put(patient, 0);
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null,"1,3");
        JSONObject templateJson = new JSONObject();
        templateJson.put("id",orderId);
        templateJson.put("OrderType",20);
        for (int i=0;i<familyArr.size();i++){
            JSONObject tmp = familyArr.getJSONObject(i);
            String patientId = tmp.getString("id");
@ -223,6 +232,8 @@ public class ConsultTeamService {
                messageDO.setIsRead("0");
                messageDO.setCreateTime(new Date());
                systemMessageDao.save(messageDO);
                messageUtil.putTemplateWxMessage(wxId,"template_error_notice","jjhjyctz",patientDO.getOpenid(),patientDO.getName()+"发起紧急呼叫",null,null,36,templateJson, DateUtil.getStringDate(),"紧急呼叫",title+",请及时核实处理");
            }
        }
@ -354,7 +365,7 @@ public class ConsultTeamService {
     * @return
     * @throws Exception
     */
    public JSONObject addSecurityMoConsult(String orderId,String patient,String agent,String symptoms) throws Exception {
    public JSONObject addSecurityMoConsult(String orderId,String patient,String agent,String symptoms,String serverDesc) throws Exception {
        JSONObject result = new JSONObject();
        // 判断居民是否已经签约
@ -376,7 +387,7 @@ public class ConsultTeamService {
        }
        //咨询记录
        String title = patientDO.getName() + "疑似离开安全区域";
        String title = patientDO.getName() + serverDesc;
        ConsultDo consult = addConsult(patient,title,symptoms,patientDO.getPhone(),22);
        //咨询详细信息
@ -406,6 +417,9 @@ public class ConsultTeamService {
        participants.put(patient, 0);
        //家属
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null,"1,3");
        JSONObject templateJson = new JSONObject();
        templateJson.put("id",orderId);
        templateJson.put("OrderType",22);
        for (int i=0;i<familyArr.size();i++){
            JSONObject tmp = familyArr.getJSONObject(i);
            String patientId = tmp.getString("id");
@ -433,6 +447,8 @@ public class ConsultTeamService {
                messageDO.setIsRead("0");
                messageDO.setCreateTime(new Date());
                systemMessageDao.save(messageDO);
                messageUtil.putTemplateWxMessage(wxId,"template_error_notice","afjhyctz",patientDO.getOpenid(),title,null,null,36,templateJson, DateUtil.getStringDate(),"安防监护",title+",请及时核实处理");
            }
        }

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

@ -424,7 +424,7 @@ public class ContactsService {
        result.put("currentPositioning",null);       //当前定位
        result.put("currentLat",null);       //当前定位
        result.put("currentLon",null);
        List<PatientSafeAreaDO> safes =  safeAreaDao.findByPatient(patient);
        List<PatientSafeAreaDO> safes =  safeAreaDao.findByPatient2(patient);
        result.put("fences",safes);
        Double dulat = null;
        Double dulon = null;

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

@ -30,6 +30,7 @@ import com.yihu.jw.util.healthIndex.HealthIndexUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.annotations.Synchronize;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@ -48,6 +49,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
@ -125,6 +127,11 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    private PatientSafeAreaDao safeAreaDao;
    @Autowired
    private SecurityMonitoringOrderDao securityMonitoringOrderDao;
    @Autowired
    private MessageUtil messageUtil;
    @Autowired
    private PatientSafeAreaConfirmDao patientSafeAreaConfirmDao;
    @PostConstruct
    public void init() {
@ -1774,7 +1781,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    }
    /**
     *
     *      修改电子围栏信息
     *    | enable       |  否  | Int          |  0,1 是否启用                        |
     *    | name         |  否  | String       |   安全区名称                           |
     *    | freq         |  否  | Boolean      |  0,触发一天;1,每日触发        |
@ -1816,6 +1823,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                safeAreaDao.deleteByPatient(patient);
            }
            else{//新增或修改
                safeAreaDO.setDel("1");
                safeAreaDO.setSafeAreaGz(safe_area);
                safeAreaDO.setUpdateTime(new Date());
                safeAreaDO.setSuccessFlag(-1);
@ -1870,6 +1878,75 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
        return "success";
    }
    /**
     * 助老员新增电子围栏记录
     */
    public com.alibaba.fastjson.JSONObject doctorNewSafeArea(String doctor,String patient,String safe_area) throws Exception{
        com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
        List<PatientSafeAreaConfirm> SafeAreaConfirms = patientSafeAreaConfirmDao.findByDoctorCodeAndPatient(doctor,patient);
        if (SafeAreaConfirms.size()>0){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"你已为改居民新增过电子围栏!");
            return result;
        }
        BaseDoctorDO doctorDO = doctorDao.findById(doctor);
        PatientSafeAreaDO safeAreaDO = new PatientSafeAreaDO();
        boolean firstAdd=false;
        List<Map<String,Object>> relatives = new ArrayList<>();
        if (StringUtils.isNotBlank(patient)){
            List<PatientSafeAreaDO> safeAreaDOS = safeAreaDao.findByPatient2(patient);
            if (safeAreaDOS.size()>0){
                safeAreaDO = safeAreaDOS.get(0);
            }else {//首次新增
                safeAreaDO.setPatient(patient);
                safeAreaDO.setCreateTime(new Date());
                safeAreaDO.setUpdateTime(new Date());
                safeAreaDO.setSuccessFlag(-1);
                safeAreaDO.setDel("1");
                // 发送确认消息给家属 有家属直接确认
                String sql = " select  t2.id,t2.name from  base_patient_family_member t1,  base_patient t2 where  " +
                        "t2.id in (select family_member from base_patient_family_member where patient = '"+patient+"' )  " +
                        " and t1.patient = '"+patient+"'  and t1.family_member = t2.id  " +
                        " and t2.archive_type=3 GROUP BY t2.id " ;
                relatives = jdbcTemplate.queryForList(sql);
                safeAreaDO.setManageStatus(relatives.size()>0?0:1);
                firstAdd=true;
            }
            safeAreaDO.setSafeAreaGz(safe_area);
            safeAreaDO.setUpdateTime(new Date());
            safeAreaDO.setSuccessFlag(-1);
            safeAreaDO = safeAreaDao.save(safeAreaDO);
            PatientSafeAreaConfirm patientSafeAreaConfirm = new PatientSafeAreaConfirm();
            patientSafeAreaConfirm.setPatient(patient);
            patientSafeAreaConfirm.setDoctorCode(doctor);
            patientSafeAreaConfirm.setDel("1");
            patientSafeAreaConfirm.setCreateTime(new Date());
            patientSafeAreaConfirm.setSafeId(safeAreaDO.getId()+"");
            if(firstAdd&&(null == safeAreaDO.getManageStatus()||0 == safeAreaDO.getManageStatus())){//首次添加给家属发送待确认消息
                patientSafeAreaConfirm.setManageStatus(0);
                for (Map<String,Object> tmp:relatives){
                    messageUtil.saveSystemMessage("",patient,"监护确认","44",doctorDO.getId(),doctorDO.getName(),tmp.get("id").toString(),
                            tmp.get("name").toString(),null,null,"0" );
                }
            }else {//无家属 直接确认
                patientSafeAreaConfirm.setManageStatus(1);
               Integer successFlag =  updatePatientSafeArea(patient,safe_area);
               safeAreaDO.setSuccessFlag(successFlag);
                safeAreaDao.save(safeAreaDO);
            }
            patientSafeAreaConfirmDao.save(patientSafeAreaConfirm);
        }
        result.put(ResponseContant.resultFlag,ResponseContant.success);
        result.put(ResponseContant.resultMsg,"添加成功");
        return result;
    }
    /**
     *获取设备轨迹
     * @param deviceSn
@ -1977,4 +2054,50 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
    /******************************************* 爱牵挂设备end *****************************************************/
    public Integer updatePatientSafeArea(String patient,String safe_area){
        List<DevicePatientDevice> devices = patientDeviceDao.findAllByUserAndCategoryCode(patient,"4");
        if (devices.size()>0){
            DevicePatientDevice patientDevice = devices.get(0);
            String deviceSnTmp = patientDevice.getDeviceSn();
            String url ="";
            if ("4".equals(devices.get(0).getCategoryCode())){//手表
                Device device = deviceDao.findOne(devices.get(0).getDeviceId());
                if (device!=null){
                    if ("X1".equals(device.getModel())){
                        url = MessageFormat.format(AqgConfig.X1fence_area, deviceSnTmp,1);
                    }
                }
            }else {
                url = MessageFormat.format(AqgConfig.S3fence_area, deviceSnTmp,1);
            }
            MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
            if (StringUtils.isNotBlank(safe_area)){
                    String[] position = safe_area.split(";");
                    safe_area = "";
                    for (String tmp:position){
                        String[] point = tmp.split(",");
                        safe_area+= gpsUtil.bd09_To_Gcj02_str(Double.parseDouble(point[1]),Double.parseDouble(point[0]))+";";
                    }
            }
            param.add("name", "安全区域1");
            param.add("freq", "1");
            param.add("enable","1");
            param.add("time_begin", "0");
            param.add("time_end", "86400");
            param.add("safe_area", safe_area);
            HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, param, HttpMethod.POST, getCookie());
            com.alibaba.fastjson.JSONObject responseObj = response.getBody();
            if (responseObj.getBoolean("success")){
                return 1;
            }
            else {
                return -1;
            }
        }
        return -1;
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/label/PatientLableService.java

@ -76,7 +76,7 @@ public class PatientLableService extends BaseJpaService<WlyyPatientLabelDO, Wlyy
        }
        if (StringUtils.isNotBlank(topicItem)){
            filters += " and EXISTS (select 1 from wlyy_patient_device pd INNER JOIN dm_device dd on pd.device_id = dd.id " +
                    "where  pd.user = sr.patient and  FIND_IN_SET(dd.service_topic,'"+topicItem+"')) ";
                    "where  pd.user = sr.patient and  FIND_IN_SET('"+topicItem+"',dd.service_topic)) ";
        }
        String orderBy = " ORDER BY sr.create_time DESC " +

+ 58 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java

@ -1,11 +1,21 @@
package com.yihu.jw.care.service.message;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.config.AqgConfig;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.device.PatientSafeAreaConfirmDao;
import com.yihu.jw.care.dao.device.PatientSafeAreaDao;
import com.yihu.jw.care.dao.message.OrgNoticeDao;
import com.yihu.jw.care.dao.message.UserNoticeDao;
import com.yihu.jw.care.dao.security.BaseEmergencyWarnLogDao;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.notice.UserNoticeDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.Device;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.device.PatientSafeAreaConfirm;
import com.yihu.jw.entity.care.device.PatientSafeAreaDO;
import com.yihu.jw.entity.care.message.OrgNoticeDO;
import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
@ -15,9 +25,15 @@ import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -39,6 +55,12 @@ public class PatientMessageService {
    private BasePatientDao patientDao;
    @Autowired
    private BaseEmergencyWarnLogDao logDao;
    @Autowired
    private PatientSafeAreaDao patientSafeAreaDao;
    @Autowired
    private PatientSafeAreaConfirmDao patientSafeAreaConfirmDao;
    @Autowired
    private PatientDeviceService patientDeviceService;
    public PageEnvelop getNoticeList(String patient,String beginTime, String endTime, int page, int size){
        page = page>0?page-1:0;
@ -155,4 +177,40 @@ public class PatientMessageService {
            systemMessageDao.save(systemMessageDO);
        }
    }
    /**
     *
     * @param msgId
     * @param safe_area
     */
    @Transactional(rollbackFor =Exception.class )
    public void ConfirmFences(String msgId,String safe_area){
        SystemMessageDO systemMessageDO = systemMessageDao.findOne(msgId);
        if (systemMessageDO!=null){
            systemMessageDO.setDel("0");
            systemMessageDao.save(systemMessageDO);
        }
        List<PatientSafeAreaDO> patientSafeAreaDOs = patientSafeAreaDao.findByPatient2(systemMessageDO.getRelationCode());
        PatientSafeAreaDO patientSafeAreaDO = null;
        if (patientSafeAreaDOs.size()>0){
            patientSafeAreaDO = patientSafeAreaDOs.get(0);
        }else {
            return;
        }
        if (StringUtils.isNotBlank(safe_area)&&null != patientSafeAreaDO){
            patientSafeAreaDO.setSafeAreaGz(safe_area);
        }
        //更新围栏
        Integer successFlag = patientDeviceService.updatePatientSafeArea(systemMessageDO.getRelationCode(),patientSafeAreaDO.getSafeAreaGz());
        patientSafeAreaDO.setManageStatus(1);
        patientSafeAreaDO.setSuccessFlag(successFlag);
        patientSafeAreaDao.save(patientSafeAreaDO);
        //修改数据
        patientSafeAreaConfirmDao.manageByPatient(patientSafeAreaDO.getPatient());
        systemMessageDao.readByTypeAndRelationCode(patientSafeAreaDO.getPatient(),"44");
    }
}

+ 55 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/safeArea/SafeAreaService.java

@ -0,0 +1,55 @@
package com.yihu.jw.care.service.safeArea;
import com.alibaba.fastjson.JSONObject;
import com.netflix.discovery.converters.Auto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2021/11/16.
 */
@Service
public class SafeAreaService {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public JSONObject doctorNewSafeAreaTab(String doctor,Integer manageStatus){
        JSONObject result = new JSONObject();
        result.put("status_all",0);
        result.put("status_0",0);
        result.put("status_1",0);
        String sql = " select manage_status,count(id) 'num' from wlyy_patient_safe_area_confirm where doctor_code='"+doctor+"' ";
        if (null != manageStatus){
            sql += " and manage_status ";
        }
        sql += " GROUP BY manage_status ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        Integer total=0;
        for (Map<String,Object> tmp :list){
            Integer num = Integer.parseInt(tmp.get("num").toString());
            result.put("status_"+tmp.get("manage_status").toString(),num);
            total += num;
        }
        result.put("status_all",total);
        return result;
    }
    public List<Map<String,Object>> doctorNewSafeAreaList(String doctor,Integer manageStatus){
        String sql = " select p.id,p.name,p.sex,p.photo,TIMESTAMPDIFF(year,p.birthday,now()) as age,ac.manage_status manageStatus " +
                " from wlyy_patient_safe_area_confirm ac INNER JOIN base_patient p on ac.patient = p.id where ac.doctor_code='"+doctor+"' ";
        if (null != manageStatus){
            sql += " and ac.manage_status ";
        }
        sql += "GROUP BY p.id ";
        return jdbcTemplate.queryForList(sql);
    }
}

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

@ -244,7 +244,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        orderDO.setServiceStatus("2");
        this.save(orderDO);
        //创建im会话  安防警报咨询的sessionid  为居民code+(wlyy_consult_team表consult)+20
        JSONObject IMObj = consultTeamService.addSecurityMoConsult(orderDO.getId(),orderDO.getPatient(),null,null);
        JSONObject IMObj = consultTeamService.addSecurityMoConsult(orderDO.getId(),orderDO.getPatient(),null,null,orderDO.getServeDesc());
        String sessionId=orderDO.getPatient()+"_"+ IMObj.getJSONObject("resultMsg").getString("consult") + "_22";
        orderDO.setSessionId(sessionId);
        if (StringUtils.isNotBlank(orderDO.getServeDesc())){
@ -1406,6 +1406,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        result.put("fire",null);
        result.put("fall",null);
        result.put("sleep",null);
        result.put("sleepInfo",null);//最近工单
        result.put("deviceSn",null);
        result.put("emeAssistance",false);
        result.put("monitorInfo",null);
@ -1443,6 +1444,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count>0){
                        result.put("sleep",true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='preventOutOfBed' " +
                                "and patient='"+patient+"' and `status`=1 order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql,String.class);
                        if (serveDesces.size()>0){
                            result.put("sleepInfo",serveDesces.get(0));
                        }
                    }else {
                        result.put("sleep",false);
                    }
@ -1472,6 +1479,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        result.put("fire",null);
        result.put("fall",null);
        result.put("sleep",null);
        result.put("sleepInfo",null);//最近工单
        result.put("deviceSn",null);
        result.put("emeAssistance",false);
        result.put("monitorInfo",null);
@ -1509,6 +1517,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    count = Integer.parseInt(tmp.get("total").toString());
                    if (count>0){
                        result.put("sleep",true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='preventOutOfBed' " +
                                "and patient='"+patient+"' and `status`=1 order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql,String.class);
                        if (serveDesces.size()>0){
                            result.put("sleepInfo",serveDesces.get(0));
                        }
                    }else {
                        result.put("sleep",false);
                    }
@ -2044,4 +2058,20 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        }
    }
    public List<Map<String,Object>> findMonitorPatientsByDoctor(String doctor,String topicItem){
        String sql = " SELECT DISTINCT p.id,p.name,p.residential_area residentialArea,p.photo,p.idcard,p.mobile, " +
                " p.openid,p.sex,p.pad_imei padImei " +
                " from base_patient p , base_service_package_sign_record sr,base_service_package_record r,base_team_member m  " +
                " WHERE p.id = sr.patient and sr.status=1 and m.team_code = r.team_code and sr.id=r.sign_id  " +
                " and m.doctor_code = '"+doctor+"' and m.del = '1' ";
        String filter =" and EXISTS (select 1 from wlyy_patient_device pd INNER JOIN dm_device dd on pd.device_id = dd.id  " +
                         " where  pd.user = sr.patient and pd.del=0 and  FIND_IN_SET('"+topicItem+"',dd.service_topic)) ";
        if ("preventLost".equals(topicItem)){//有绑定围栏的居民
            filter += " and EXISTS (select 1 from wlyy_patient_safe_area sf where sf.patient = p.id and sf.del=1 and sf.manage_status=1) ";
        }
        return jdbcTemplate.queryForList(sql+filter);
    }
}

+ 4 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java

@ -238,6 +238,9 @@ public class MessageUtil {
            case 35:
                wxTemplateConfigDO.setUrl(url + wxTemplateConfigDO.getUrl()+json.getString("orderId")+"&isMask=1");
                break;
            case 36://安防、救助工单详情地址
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&id="+json.getString("id")+"&OrderType="+json.getString("OrderType"));
                break;
        }
        return wxTemplateConfigDO;
    }
@ -258,6 +261,7 @@ public class MessageUtil {
        messageDO.setReceiver(receiver);
        messageDO.setReceiverName(receiverName);
        messageDO.setData(msg);
        messageDO.setDel("1");
        messageDO.setOver(over);
        messageDO.setCreateTime(new Date());
        systemMessageDao.save(messageDO);

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

@ -3,6 +3,7 @@ package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.PatientSafeAreaDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
@ -13,6 +14,7 @@ import java.util.List;
public interface PatientSafeAreaDao extends PagingAndSortingRepository<PatientSafeAreaDO,Long>,
        JpaSpecificationExecutor<PatientSafeAreaDO> {
    @Query(value = " select p from PatientSafeAreaDO p where p.patient=?1 and p.del='1' and p.manageStatus=1 ")
    List<PatientSafeAreaDO> findByPatient(String patient);
    @Modifying

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

@ -97,6 +97,8 @@ public class DeviceService {
    private DeviceDetailDao deviceDetailDao;
    @Autowired
    private DeviceDataPushLogUtil dataPushLogUtil;
    @Autowired
    private PatientSafeAreaDao safeAreaDao;
    /**
     * 获取爱牵挂管理员cookie
@ -308,6 +310,11 @@ public class DeviceService {
                                    "  and pack.del=1";
                            List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                            if (sqlResult.size()>0){
                                //疑似离开安全区域 v1.5电子围栏为确认管理时触发
                                List<PatientSafeAreaDO> safeAreaDOS = safeAreaDao.findByPatient(patientDO.getId());
                                if (safeAreaDOS.size()>0){
                                    return;
                                }
                                url = cloudCareUrl+"/cloudCare/noLogin/security/createOrder";
                                JSONObject jsonObject = new JSONObject();
                                jsonObject.put("patient",patientDO.getId());

+ 10 - 1
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/SecurityOrderUtil.java

@ -5,9 +5,11 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.jw.care.dao.device.DeviceSosLogDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.device.PatientSafeAreaDao;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.device.DeviceSosLogDO;
import com.yihu.jw.entity.care.device.PatientSafeAreaDO;
import com.yihu.jw.exception.business.file_upload.*;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.iot.common.UploadVO;
@ -52,6 +54,8 @@ public class SecurityOrderUtil {
    private String fastdfs_file_url;
    @Autowired
    private DeviceSosLogDao sosLogDao;
    @Autowired
    private PatientSafeAreaDao safeAreaDao;
    /***创建安防工单***/
    public JSONObject createSecurityOrder(String deviceSN, String sceneUrl, JSONObject result,JSONObject addressInfo, Integer orderSource, String dictCode, String topicItem, String warnInfo){
@ -97,7 +101,12 @@ public class SecurityOrderUtil {
                }else{
                    return new JSONObject();
                }
                if ("1".equals(dictCode)){//疑似离开安全区域 v1.5电子围栏为确认管理时触发
                    List<PatientSafeAreaDO> safeAreaDOS = safeAreaDao.findByPatient(patientDO.getId());
                    if (safeAreaDOS.size()>0){
                        return new JSONObject();
                    }
                }
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("patient",patientDO.getId());
                jsonObject.put("patientName",patientDO.getName());

+ 2 - 2
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/HcyyPrescriptionCotroller.java

@ -31,7 +31,7 @@ import java.util.Map;
 */
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.HcyyPrescription.PREFIX)
@Api(value = "海沧医院平台服务", description = "心脏中心平台服务", tags = {"心脏中心平台服务"})
@Api(value = "海沧医院平台服务", description = "海沧医院平台服务", tags = {"海沧医院平台服务"})
public class HcyyPrescriptionCotroller extends EnvelopRestEndpoint {
    @Autowired
@ -388,7 +388,7 @@ public class HcyyPrescriptionCotroller extends EnvelopRestEndpoint {
     * @throws Exception
     */
    @GetMapping(value = "/getExamApply")
    @ApiOperation(value = "获取检查单据信息", notes = "获取检查单据信息")
    @ApiOperation(value = "获取检查项目信息", notes = "获取检查项目信息")
    public ObjEnvelop getExamApply(@ApiParam(name = "spellCode", value = "拼音码", required = false)
                                       @RequestParam(value = "spellCode",required = false)String spellCode)throws Exception{
        return ObjEnvelop.getSuccess("ok",hcyyEntranceService.GetExamApply(spellCode));