Browse Source

大屏居民详情相关 websocket相关

liubing 3 years ago
parent
commit
eb1d9ce132

+ 4 - 0
svr/svr-cloud-care/pom.xml

@ -203,6 +203,10 @@
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!--   poi xml导入导出工具 end -->
        <!--基础业务组件-->

+ 13 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/WebSocketConfig.java

@ -0,0 +1,13 @@
package com.yihu.jw.care.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter(){
        return new ServerEndpointExporter();
    }
}

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

@ -232,6 +232,17 @@ public class DoctorEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "/getArchiveNum")
    @ApiOperation(value = "管理员获取居民tab数量")
    public ObjEnvelop getArchiveNum(){
        try {
            return ObjEnvelop.getSuccess("查询成功",doctorService.getArchiveNum()) ;
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "/initEntranceData")
    @ApiOperation(value = "初始化新生儿未入学埋点数据")
    public Envelop initEntranceData(){

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

@ -187,13 +187,13 @@ public class SignEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "servicePackageBypatient")
    @GetMapping(value = "servicePackageByPatient")
    @ApiOperation(value = "获取患者所有服务包")
    public ObjEnvelop servicePackageBypatient (
    public ObjEnvelop servicePackageByPatient (
            @ApiParam(name = "patient", value = "patient", required = true)
            @RequestParam(value = "patient") String patient) throws Exception {
        try{
            return ObjEnvelop.getSuccess("查询成功",servicePackageService.servicePackageBypatient(patient));
            return ObjEnvelop.getSuccess("查询成功",servicePackageService.servicePackageByPatient(patient));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");

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

@ -1,10 +1,21 @@
package com.yihu.jw.care.endpoint.third.platForm;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
import com.yihu.jw.care.service.doorCoach.DoctorDoorCoachOrderService;
import com.yihu.jw.care.service.doorCoach.PatientDoorCoachOrderService;
import com.yihu.jw.care.service.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
import com.yihu.jw.care.service.third.PatientInfoPlatFormService;
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
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.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -22,9 +33,20 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PatientInfoPlatFormService patientInfoPlatFormService;
    @Autowired
    private PatientDoorCoachOrderService patientDoorCoachOrderService;
    @Autowired
    private DoctorDoorCoachOrderService doctorDoorCoachOrderService;
    @Autowired
    private LifeCareOrderService lifeCareOrderService;
    @Autowired
    private SecurityMonitoringOrderService securityMonitoringOrderService;
    @Autowired
    private EmergencyAssistanceService assistanceService;
    @GetMapping(value = "getPatientInfo")
    @ApiParam("获取居民")
    @ApiParam("获取居民详情页")
    public ObjEnvelop getPatientInfo(@ApiParam(name="patient",value = "居民id",required = true)
                                     @RequestParam(value = "patient")String patient,
                                     @ApiParam(name="patientType",value="患者类型 1老人 2 新生儿")
@ -37,4 +59,138 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getPatientEvent")
    @ApiParam("获取就诊事件")
    public ObjEnvelop getPatientEvent(@ApiParam(name="patient",value = "居民id",required = true)
                                     @RequestParam(value = "patient")String patient,
                                     @ApiParam(name="patientType",value="患者类型 1老人 2 新生儿")
                                     @RequestParam(name = "patientType",required = false,defaultValue = "1")Integer patientType,
                                     @ApiParam(name="page",value="page")
                                     @RequestParam(name = "page")Integer page,
                                     @ApiParam(name="pageSize",value="pageSize")
                                     @RequestParam(name = "pageSize")Integer pageSize){
        try {
            return ObjEnvelop.getSuccess("查询成功",patientInfoPlatFormService.getPatientEvent(patient,patientType,page,pageSize));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("获取失败");
        }
    }
    @GetMapping(value = "getServiceOrder")
    @ApiParam("获取服务工单列表")
    public ObjEnvelop getServiceOrder(@ApiParam(name="patient",value = "居民id",required = true)
                                     @RequestParam(value = "patient")String patient,
                                     @ApiParam(name="patientType",value="患者类型 1老人 2 新生儿")
                                     @RequestParam(name = "patientType",required = false,defaultValue = "1")Integer patientType,
                                     @ApiParam(name="page",value="page")
                                     @RequestParam(name = "page")Integer page,
                                     @ApiParam(name="pageSize",value="pageSize")
                                     @RequestParam(name = "pageSize")Integer pageSize){
        try {
            return ObjEnvelop.getSuccess("查询成功",patientInfoPlatFormService.getServiceOrder(patient,patientType,page,pageSize));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("获取失败");
        }
    }
    @GetMapping(value = "getHealthIndexInfo")
    @ApiParam("获取居民体征信息")
    public ObjEnvelop getHealthIndexInfo(@ApiParam(name="patient",value="患者代码",defaultValue = "eb0b478fbe9245428ecf63cd7517206f")
                                             @RequestParam(value="patient",required = true) String patient,
                                         @ApiParam(name="type",value="指标类型",defaultValue = "1")
                                             @RequestParam(value="type",required = true) int type,
                                         @ApiParam(name="gi_type",value="就餐类型",defaultValue = "1")
                                             @RequestParam(value = "gi_type",required = false) int gi_type,
                                         @ApiParam(name="begin",value="开始时间",defaultValue = "2017-05-22 00:00:00")
                                             @RequestParam(value="begin",required = true) String begin,
                                         @ApiParam(name="end",value="结束时间",defaultValue = "2017-06-02 00:00:00")
                                             @RequestParam(value="end",required = true) String end){
        try {
            return ObjEnvelop.getSuccess("查询成功",patientInfoPlatFormService.getHealthIndexInfo(patient,type,gi_type,begin,end));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("获取失败");
        }
    }
    @GetMapping("getDoorCoachByOrderId")
    @ApiOperation(value = "根据工单id获取相应的工单,如果为空,则获取该患者当前最新一条的工单")
    public ObjEnvelop getByOrderId(
            @ApiParam(value = "patientCode", name = "patientCode")
            @RequestParam(value = "patientCode", required = true) String patientCode,
            @ApiParam(value = "工单id", name = "orderId")
            @RequestParam(value = "orderId", required = false) String orderId) {
        try {
            // 没有提供工单id的情况下,则获取该医生当前最新一条的工单
            if (StringUtils.isEmpty(orderId)) {
                // 根据接单医生code获取最近一次服务orderId
                orderId = patientDoorCoachOrderService.getOrderIdByPatient(patientCode);
                if (StringUtils.isEmpty(orderId)) {
                    return ObjEnvelop.getSuccess( "获取失败, 该患者暂无工单",null);
                }
            }
            // 根据orderId获取工单信息
            BaseDoorCoachOrderDO baseDoorCoachOrderDO = doctorDoorCoachOrderService.getDoorServiceOrderById(orderId);
            return ObjEnvelop.getSuccess( "获取成功",  baseDoorCoachOrderDO);
        } catch (Exception e) {
            e.printStackTrace();
            return ObjEnvelop.getError("获取失败, 该医生暂无工单!" + e.getMessage());
        }
    }
    @GetMapping("getLifeCareByOrderId")
    @ApiOperation(value = "根据工单id获取相应的工单")
    public ObjEnvelop getByOrderId(
            @ApiParam(value = "工单id", name = "orderId")
            @RequestParam(value = "orderId", required = true) String orderId) {
        try {
            // 根据orderId获取工单信息
            LifeCareOrderDO doorServiceOrderDO = lifeCareOrderService.getServiceOrderById(orderId);
            return ObjEnvelop.getSuccess("获取成功", doorServiceOrderDO);
        } catch (Exception e) {
            e.printStackTrace();
            return ObjEnvelop.getError( "获取失败" ,-1);
        }
    }
    @GetMapping(value = "getSecurityOrderDetail")
    @ApiOperation(value = "获取安防工单详情")//
    public ObjEnvelop getSecurityOrderDetail(@ApiParam(name="orderId",value = "orderId",required = true)
                                             @RequestParam(value = "orderId")String orderId,
                                             @ApiParam(name="doctor",value = "doctor",required = false)
                                             @RequestParam(value = "doctor",required = false)String doctor){
        try {
            JSONObject result = securityMonitoringOrderService.getSecurityOrderDetail(orderId,doctor);
            if (result.getIntValue("resultFlag") == 0) {
                return ObjEnvelop.getError(result.getString("resultMsg"));
            }
            return ObjEnvelop.getSuccess("创建成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "patientGetOrderDetail")
    @ApiOperation(value = "患者查看救助详情")//仅只能查看已完成
    public ObjEnvelop patientGetOrderDetail(@ApiParam(name="orderId",value = "工单id")
                                            @RequestParam(value = "orderId") String orderId,
                                            @ApiParam(name="patient",value = "patient")
                                            @RequestParam(value = "patient") String patient
    ){
        try {
            JSONObject result = assistanceService.patientGetOrderDetail(orderId,patient);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return ObjEnvelop.getError(result.getString(ResponseContant.resultMsg));
            }
            return ObjEnvelop.getSuccess("查询成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
        }
    }
}

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

@ -0,0 +1,73 @@
package com.yihu.jw.care.endpoint.third.platForm;
import org.springframework.web.bind.annotation.RestController;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
/**
 * Created by Bing on 2021/6/17.
 *
 * @ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端,
 */
@RestController
@ServerEndpoint("/cloudCare/noLogin/pcManage/websocket")
public class PcManageWebSocketServer {
    private static Collection<PcManageWebSocketServer> servers = Collections.synchronizedCollection(new ArrayList<PcManageWebSocketServer>());
    //与某个客户端的连接会话,需要通过它来给客户端发送数据
    private Session session;
    @OnOpen
    public void onOpen(Session session){
        this.session = session;
        add(this);
    }
    public void sendMessage(String message) throws IOException {
        this.session.getBasicRemote().sendText(message);
    }
    @OnClose
    public void onClose(){
        remove(this);
    }
    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("来自客户端的消息:" + message);
    }
    @OnError
    public void onError(Session session, Throwable error){
        System.out.println("发生错误");
        error.printStackTrace();
    }
    public static void broadCast(String msg){
        for (PcManageWebSocketServer bitCoinServer : servers) {
            try {
                bitCoinServer.sendMessage(msg);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    public static int getTotal(){
        return servers.size();
    }
    public static void add(PcManageWebSocketServer server){
        System.out.println("有新连接加入! 当前总连接数是:"+ servers.size());
        servers.add(server);
    }
    public static void remove(PcManageWebSocketServer server){
        System.out.println("有连接退出! 当前总连接数是:"+ servers.size());
        servers.remove(server);
    }
}

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

@ -11,6 +11,7 @@ import com.yihu.jw.care.dao.security.EmergencyWarnDoctorResponseDao;
import com.yihu.jw.care.dao.sign.ServicePackageItemDao;
import com.yihu.jw.care.dao.sign.ServicePackageSignRecordDao;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.endpoint.third.platForm.PcManageWebSocketServer;
import com.yihu.jw.care.service.common.DictService;
import com.yihu.jw.care.service.consult.ConsultTeamService;
import com.yihu.jw.care.service.device.PatientDeviceService;
@ -97,6 +98,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
    private ConsultDao consultDao;
    @Autowired
    private DictService dictService;
    @Autowired
    private PcManageWebSocketServer pcManageWebSocketServer;
    /**
     * 新建居民紧急救助
@ -202,21 +205,24 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            }
        }
        //推送socket给医生
        JSONObject message = new JSONObject();
        message.put("session_id",assistanceDO.getSessionId());
        message.put("sender_name",assistanceDO.getPatientName());
        message.put("content_notice",assistanceDO.getPatientName()+" 发起紧急救助!");
        message.put("sender_code",assistanceDO.getPatient());
        message.put("OrderType",20);
        message.put("order_id",assistanceDO.getId());
        message.put("content_type",40);
        for (BaseDoctorDO doctorDO:doctorDOS){
            JSONObject message = new JSONObject();
            message.put("session_id",assistanceDO.getSessionId());
            message.put("sender_name",assistanceDO.getPatientName());
            message.put("content_notice",assistanceDO.getPatientName()+" 发起紧急救助!");
            message.put("sender_code",assistanceDO.getPatient());
            message.put("OrderType",20);
            message.put("order_id",assistanceDO.getId());
            message.put("content_type",40);
            try {
                imUtill.sendMDTSocketMessageToDoctor(doctorDO.getId(),message.toString());
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        //pc管理端端推送消息
        pcManageWebSocketServer.broadCast(message.toString());
        emergencyAssistanceDao.save(assistanceDO);
        return getOrderDetail(assistanceDO.getId(),null);
    }

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/course/CourseService.java

@ -859,4 +859,16 @@ public class CourseService {
        return recordDO;
    }
    /**
     * 获取新生儿被录取机构列表
     * @param patient
     * @return
     */
    public List<Map<String,Object>> getEntranceOrgList(String patient){
        String sql = "select sr.id,sr.patient,sr.org_code,org.`name`,org.photo from base_recruit_students_record sr " +
                " inner JOIN base_org org on sr.org_code = org.`code` where sr.patient = '"+patient+"' and sr.`status`=2 \n" +
                "GROUP BY sr.org_code";
        return jdbcTemplate.queryForList(sql);
    }
}

+ 32 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java

@ -327,7 +327,7 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                " and dh.del =1 where tmp.type=3 and dh.doctor_code='"+doctor+"' and tmp.del=1 and tmp.`status`=0 ";
        //已入学
        String sql1=" select tmp.patient,'3' as type from base_doctor_patient_tmp tmp INNER JOIN base_doctor_hospital dh on dh.org_code = tmp.org_code " +
                " and dh.del =1 where tmp.type=3 and dh.doctor_code='"+doctor+"' and tmp.del=1 and tmp.`status`=0   ";
                " and dh.del =1 where tmp.type=3 and dh.doctor_code='"+doctor+"' and tmp.del=1 and tmp.`status`=1   ";
        String sql = "select p.id,p.name,p.photo,p.sex,p.idcard,p.openid,p.mobile,group_concat(tmp.type) type,group_concat( pd.category_code) deviceType from ( {sqlReplace} )tmp " +
                " Inner JOIN base_patient p on tmp.patient  = p.id " +
@ -393,7 +393,7 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                " and dh.del =1 where tmp.type=3 and dh.doctor_code='"+doctor+"' and tmp.del=1 and tmp.`status`=0 ";
        //已入学
        String sql1=" select tmp.patient,'3' as type from base_doctor_patient_tmp tmp INNER JOIN base_doctor_hospital dh on dh.org_code = tmp.org_code " +
                " and dh.del =1 where tmp.type=3 and dh.doctor_code='"+doctor+"' and tmp.del=1 and tmp.`status`=0   ";
                " and dh.del =1 where tmp.type=3 and dh.doctor_code='"+doctor+"' and tmp.del=1 and tmp.`status`=1   ";
        String sqlcpunt = "select count(Distinct p.id) from ( {sqlReplace} )tmp Inner JOIN base_patient p on tmp.patient  = p.id " +
                " LEFT JOIN wlyy_patient_device pd on pd.`user`=p.id and pd.category_code BETWEEN 1 and 2  ";
@ -477,4 +477,34 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        return PageEnvelop.getSuccessListWithPage("查询成功",result,page,size,count);
    }
    public JSONObject getArchiveNum(){
        JSONObject result = new JSONObject();
        String countSql  ="select count(DISTINCT p.id) from base_patient p where 1=1 ";
        String sqlCondition = "";
        //老人
       String sqlCondition_sign =" and NOT EXISTS(select sr.id from base_service_package_sign_record sr " +
                " INNER JOIN base_service_package_record pr on sr.id = pr.sign_id and sr.status=1 " +
                " INNER JOIN base_service_package pack on pr.service_package_id = pack.id and pack.del=1 " +
                " where sr.patient = p.id) and p.del=1 and p.archive_type=1 ";
        //已签约
       String sqlCondition_unSign =" and EXISTS(select sr.id from base_service_package_sign_record sr " +
                " INNER JOIN base_service_package_record pr on sr.id = pr.sign_id and sr.status=1 " +
                " INNER JOIN base_service_package pack on pr.service_package_id = pack.id and pack.del=1 " +
                " where sr.patient = p.id) and p.del=1 and p.archive_type=1 ";
       //新生儿
        sqlCondition +=" and p.del=1 and p.archive_type="+2+" ";//新生儿
        Long count_children = jdbcTemplate.queryForObject(countSql+sqlCondition,Long.class);
        Long count_sign = jdbcTemplate.queryForObject(countSql+sqlCondition_sign,Long.class);
        Long count_unSign = jdbcTemplate.queryForObject(countSql+sqlCondition_unSign,Long.class);
        result.put("count_children",count_children);
        result.put("count_sign",count_sign);
        result.put("count_unSign",count_unSign);
        result.put("count_agedAll",count_sign+count_unSign);
        return result;
    }
}

+ 24 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java

@ -608,6 +608,30 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
    }
    public JSONObject getPatientOrderList2(String patient, Integer status, int page, int size) {
        page = page>0?page-1:0;
        String sqlCount = "select count(ord.id) from  base_life_care_order ord where ord.patient = '"+patient+"' ";
        String sql = "select ord.id,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') createTime,DATE_FORMAT(ord.patient_expected_serve_time,'%Y-%m-%d %H:%i:%S') serveTime,ord.status,ord.hospital,ord.hospital_name hospitalName" +
                ",ord.doctor,ord.doctor_name doctorName,ord.expected_doctor_name expectedDoctorName,group_concat(Distinct fee.name SEPARATOR '、') serveItems" +
                " from base_life_care_order ord LEFT JOIN base_life_care_fee_detail fee on ord.id = fee.order_id " +
                "and fee.`status`<>3 where ord.patient = '"+patient+"' ";
        String fliter = "";
        if (status != null){
            fliter += " and ord.status = "+status;
        }
        Long count = jdbcTemplate.queryForObject(sqlCount+fliter,Long.class);
        fliter += " group by ord.id order by ord.create_time desc limit "+page*size+","+size;
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql+fliter);
        JSONObject object = new JSONObject();
        object.put("total",count);
        object.put("detailModelList",result);
        object.put("currPage",page);
        object.put("pageSize",size);
        return object;
    }
    /**
     * 签到保存
     * @param orderId

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

@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.security.*;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.endpoint.third.platForm.PcManageWebSocketServer;
import com.yihu.jw.care.service.common.DictService;
import com.yihu.jw.care.service.consult.ConsultTeamService;
import com.yihu.jw.care.service.device.PatientDeviceService;
@ -102,6 +103,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    private PatientFamilyMemberService familyMemberService;
    @Autowired
    private ConsultTeamDao consultTeamDao;
    @Autowired
    private PcManageWebSocketServer pcManageWebSocketServer;
    private Logger logger = LoggerFactory.getLogger(SecurityMonitoringOrderService.class);
@ -205,21 +208,23 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            }
        }
        //推送socket给医生  推送紧急预警
        JSONObject message = new JSONObject();
        message.put("session_id",sessionId);
        message.put("sender_name",orderDO.getPatientName());
        message.put("content_notice",orderDO.getPatientName()+" "+warnStr+"!");
        message.put("sender_code",orderDO.getPatient());
        message.put("OrderType",22);
        message.put("order_id",orderDO.getId());
        message.put("content_type",40);
        for (BaseDoctorDO doctorDO:doctorDOS){
            JSONObject message = new JSONObject();
            message.put("session_id",sessionId);
            message.put("sender_name",orderDO.getPatientName());
            message.put("content_notice",orderDO.getPatientName()+" "+warnStr+"!");
            message.put("sender_code",orderDO.getPatient());
            message.put("OrderType",22);
            message.put("order_id",orderDO.getId());
            message.put("content_type",40);
            try {
                imUtil.sendMDTSocketMessageToDoctor(doctorDO.getId(),message.toString());
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        //pc管理端端推送消息
        pcManageWebSocketServer.broadCast(message.toString());
        result.put("resultFlag", 1);
        result.put("resultMsg",orderDO);

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

@ -484,7 +484,7 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
     * @param patient
     * @return
     */
    public List<Map<String, Object>> servicePackageBypatient(String patient)
    public List<Map<String, Object>> servicePackageByPatient(String patient)
    {
       String sql="select  DISTINCT pack.*,CASE WHEN pack.type=1 THEN '养老服务' WHEN pack.type=2 THEN '医疗服务'\n" +
                "WHEN pack.type=3 THEN '安防监护' WHEN pack.type=4 THEN '慢病管理' ELSE pack.type\n" +

+ 77 - 13
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java

@ -1,15 +1,29 @@
package com.yihu.jw.care.service.third;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.label.WlyyPatientLabelDao;
import com.yihu.jw.care.service.course.CourseService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.device.PatientHealthIndexService;
import com.yihu.jw.care.service.doorCoach.PatientDoorCoachOrderService;
import com.yihu.jw.care.service.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.label.WlyyPatientLabelDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.common.IdCardUtil;
import org.apache.commons.lang.StringUtils;
import org.json.JSONArray;
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;
import java.util.stream.Collectors;
/**
 * Created by Bing on 2021/6/16.
 */
@ -22,11 +36,26 @@ public class PatientInfoPlatFormService {
    private BasePatientDao patientDao;
    @Autowired
    private ServicePackageService servicePackageService;
    @Autowired
    private PatientDeviceService patientDeviceService;
    @Autowired
    private WlyyPatientLabelDao patientLabelDao;
    @Autowired
    private SecurityMonitoringOrderService securityMonitoringOrderService;
    @Autowired
    private CourseService courseService;
    @Autowired
    private LifeCareOrderService lifeCareOrderService;
    @Autowired
    private PatientDoorCoachOrderService patientDoorCoachOrderService;
    @Autowired
    private PatientHealthIndexService healthIndexService;
    /**
     * 老人--基本信息
     * @param patient
     * @param patientType
     * @param patientType 1老人 2新生儿
     * @return
     */
    public JSONObject getPatientInfo(String patient,Integer patientType){
@ -47,7 +76,25 @@ public class PatientInfoPlatFormService {
                tmp.put("age",null);
            }
            //标签类型
//            tmp.put("")
            List<String> labelList = new ArrayList<>();
            Integer sex = patientDO.getSex();
            String sexName = sex!=null?(1==sex?"男":"女"):"未知";
            labelList.add(sexName);
            List<WlyyPatientLabelDO> labelDOS = patientLabelDao.findByPatient(patient);
            List<String> labeltmp = labelDOS.stream().map(WlyyPatientLabelDO::getLabelName).collect(Collectors.toList());
            labelList.addAll(labeltmp);
            tmp.put("patientLabel",labelList);
            result.put("patientInfo",tmp);//基本信息
            result.put("patientDevices",getDevices(patient,patientType));//健康设备
            if (1==patientType){
                result.put("signService",getSignService(patient));//签约服务
                result.put("MonitoringInfo",getPatientMonitoringInfo(patient));//安防监护信息
            }
            if (2==patientType){
                result.put("signService",getSignService(patient));//入园机构列表(报名且录取机构)
                result.put("MonitoringInfo",getMonitoringInfo(patient)); //新生儿入院信息
            }
            return result;
        }
        return null;
    }
@ -57,9 +104,19 @@ public class PatientInfoPlatFormService {
     * @param patient
     * @return
     */
    public JSONObject getSignService(String patient){
    public List<Map<String,Object>> getSignService(String patient){
       List<Map<String,Object>> list =  servicePackageService.servicePackageByPatient(patient);
        return list;
    }
        return null;
    /**
     * 新生儿--获取入园机构列表(报名且录取机构)
     * @param patient
     * @return
     */
    public List<Map<String,Object>> getEntranceOrgList(String patient){
        List<Map<String,Object>> list =  courseService.getEntranceOrgList(patient);
        return list;
    }
    /**
@ -67,8 +124,9 @@ public class PatientInfoPlatFormService {
     * @param patient
     * @return
     */
    public JSONObject getDevices(String patient,Integer patientType){
        return null;
    public List<Map<String,Object>> getDevices(String patient,Integer patientType){
        List<Map<String,Object>> list = patientDeviceService.patientDeviceListByTopic(patient,null);
        return list;
    }
    /**
@ -76,7 +134,7 @@ public class PatientInfoPlatFormService {
     * @param patient
     * @return
     */
    public JSONObject getPatientEvent(String patient,Integer patientType){
    public JSONObject getPatientEvent(String patient,Integer patientType,Integer page,Integer pageSize){
        return null;
    }
@ -96,7 +154,14 @@ public class PatientInfoPlatFormService {
     * @param patientType
     * @return
     */
    public JSONObject getServiceOrder(String patient,Integer patientType){
    public JSONObject getServiceOrder(String patient, Integer patientType, Integer page, Integer pageSize) throws Exception {
        if (1==patientType){//老人 生活照料
            return lifeCareOrderService.getPatientOrderList2(patient,null,page,pageSize);
        }
        if (2==patientType){//新生儿 上门辅导
            return patientDoorCoachOrderService.getDoorOrderList(null,null,null,null,
                    null,null,null,null,patient,page,pageSize, null);
        }
        return null;
    }
@ -105,11 +170,10 @@ public class PatientInfoPlatFormService {
     * 老人:血糖、血压、身高体重、心率
     * 新生儿:体温
     * @param patient
     * @param patientType
     * @return
     */
    public JSONObject getHealthIndexInfo(String patient,Integer patientType){
        return null;
    public JSONArray getHealthIndexInfo(String patient, int type, int gi_type, String begin, String end){
       return healthIndexService.findChartByPatient(patient,type,gi_type,begin,end);//图表
    }
    /**
@ -118,11 +182,11 @@ public class PatientInfoPlatFormService {
     * @return
     */
    public JSONObject getPatientMonitoringInfo(String patient){
        return null;
        return securityMonitoringOrderService.patientMonitoringInfo(patient);
    }
    /**
     * 新生儿-- 入院监护 暂无
     * 新生儿-- 入园监护 暂无
     * @param patient
     * @return
     */