chenyc
2022-07-08 dc7afd089a74edf6a9e50d0eb3e0607d09e72548
src/samples/sockteStomp.ts
@@ -1,9 +1,13 @@
import Stomp from 'stompjs'
import os from 'os'
import { ipcRenderer } from 'electron'
var stompClient: Stomp.Client | null=null
import { userInfoStore } from '@/stores/userInfo'
import { patientInfoStore } from '@/stores/patient'
import {sockteStore} from '@/stores/sockteInfo'
import { result } from 'lodash'
const sound = require("sound-play");
@@ -24,7 +28,7 @@
        const deviceInfo=devices.find(de=>{
            return de.deviceName===resultInfo.deviceNumber
        })
        console.log('---1-',deviceInfo)
        console.log(deviceInfo,'更具设备number查找到的设备')
        if(deviceInfo!==undefined){
            switch(deviceInfo.deviceType){
                case '读卡器':
@@ -34,7 +38,7 @@
                            type:"读卡器",
                            result:resultInfo.result,
                            resultTime:resultInfo.resultTime,
                            state:0
                            state:2
                        }
                    )
                    break
@@ -46,18 +50,19 @@
                            type:"体重秤",
                            result:resultInfo.result,
                            resultTime:resultInfo.resultTime,
                            state:0
                            state:2
                        }
                    )
                    break
                case "血压计":
                    console.log(resultInfo,'血压计')
                    sockteStore().setxyjSockte(
                        {
                            deviceName:resultInfo.deviceNumber,
                            type:"血压计",
                            result:resultInfo.result,
                            resultTime:resultInfo.resultTime,
                            state:0
                            state:2
                        }
                    )
                    break
@@ -108,13 +113,29 @@
    }
}
const writePatient=(resultInfo:any)=>{
    const info={
        id:resultInfo.patientInfo===null?0:resultInfo.patientInfo.id,
        code:resultInfo.patientInfo===null?'':resultInfo.patientInfo.code,
        name:resultInfo.patientInfo===null?0:resultInfo.patientInfo.patientName,
        patientAvatarIcon:resultInfo.patientInfo===null?0:resultInfo.patientInfo.patientAvatarIcon,
        deviceCode:resultInfo.deviceCode===null?"":resultInfo.deviceCode,
        hemoCode:resultInfo.hemoCode===null?"":resultInfo.hemoCode,
        pureWeight:resultInfo.pureWeight===null?"":resultInfo.pureWeight
    }
    // 写入vuex里
    patientInfoStore().setpatientInfo(info)
    console.log('播放声音')
    // sound.play("https://dhcdn.leon056.com/hemo/autoselfsign/step2.mp3")
}
// 订阅结果事件返回函数
const  callback = function(message:any) {
    console.log('接收到数据-----',message.body)
    if (message.body!==undefined) {
        const data=JSON.parse(message.body)
        console.log(data,"体重数据")
        writeResult(data)
    }
    else {
@@ -134,21 +155,34 @@
    if (message.body) {
        const data=JSON.parse(message.body)
        console.log(data,'患者信息读取')
        writePatient(data)
    }
    
}
const configCallback =function(message:any){
    if(message.body){
        const data=JSON.parse(message.body)
        console.log(data,'配置文件读取')
        ipcRenderer.send('setConfingData',data)
    }
}
const connectCallback=function(){
    const pcName= os.hostname()
    // 订阅患者信息服务
    if(stompClient!==null){
        stompClient.subscribe(`/queue/patient/info/${pcName}`,PatientCallback)
        stompClient.subscribe(`/queue/workstation/config/set/${clientCode}/${pcName}`,configCallback)
        stompClient.send(`/app/workstation/config/set/${clientCode}/${pcName}`,{},JSON.stringify({"clientCode":clientCode,"machineName":pcName}))
    }
    console.log("链接成功",stompClient,pcName)
    // 更新sockte链接状态
    sockteStore().setsockteIsLink(true)
    console.log(sockteStore().isLink)
    console.log(devices)
    if(devices.length>0){
    if(devices!==undefined&&devices.length>0){
        devices.forEach(de=>{
            if(stompClient!==null){
                stompClient.subscribe(`/queue/${clientCode}/${de.deviceName}/result`,callback)
@@ -181,9 +215,26 @@
    stompClient.connect({}, connectCallback,error_callback)
}
/**
 * 发送患者卡号返回患者信息
 * @param codeStr
 */
const sendPationCode=(codeStr:string)=>{
    const mode={
        clientCode:clientCode,
        queryCode:codeStr
    }
    if(stompClient!==null){
        stompClient.send(`/app/patient/info/get/${os.hostname()}`,{},codeStr)
        stompClient.send(`/app/patient/info/get/${os.hostname()}`,{},JSON.stringify(mode))
    }
}
export {creatorClient,sendPationCode}
/**
 *
 * @param mode 发送结果到sockt服务
 */
const sendPationSet=(mode:any)=>{
    if(stompClient!==null){
        stompClient.send(`/app/patient/info/set`,{},JSON.stringify(mode))
    }
}
export {creatorClient,sendPationCode,sendPationSet}