99 changed files with 175 additions and 1709 deletions
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.constant; |
package com.cloud.kicc.commonbiz.api.constant; |
||||||
|
|
||||||
/** |
/** |
||||||
* @Author: TangSheng |
* @Author: TangSheng |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.dto; |
package com.cloud.kicc.commonbiz.api.dto; |
||||||
|
|
||||||
import lombok.Data; |
import lombok.Data; |
||||||
|
|
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity.beeper; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField; |
import com.baomidou.mybatisplus.annotation.TableField; |
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity.beeper; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
import com.baomidou.mybatisplus.annotation.TableName; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity.box; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
import com.baomidou.mybatisplus.annotation.TableName; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity.box; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
import com.baomidou.mybatisplus.annotation.TableName; |
@ -1,11 +1,10 @@ |
|||||||
package com.cloud.kicc.equip.api.entity.box; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
import lombok.Data; |
import lombok.Data; |
||||||
|
|
||||||
import java.io.Serializable; |
import java.io.Serializable; |
||||||
import java.util.Date; |
|
||||||
|
|
||||||
/** |
/** |
||||||
* 标本箱操作记录(EquipBoxRecord)表实体类 |
* 标本箱操作记录(EquipBoxRecord)表实体类 |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity.box; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField; |
import com.baomidou.mybatisplus.annotation.TableField; |
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.entity; |
package com.cloud.kicc.commonbiz.api.entity; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotation.TableId; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.enums; |
package com.cloud.kicc.commonbiz.api.enums; |
||||||
|
|
||||||
public enum BoxStatusEnum { |
public enum BoxStatusEnum { |
||||||
//设备状态 (0.未连接 1.已连接 2.已断开 3.已休眠)
|
//设备状态 (0.未连接 1.已连接 2.已断开 3.已休眠)
|
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.enums; |
package com.cloud.kicc.commonbiz.api.enums; |
||||||
|
|
||||||
public enum CmdEnum { |
public enum CmdEnum { |
||||||
/** |
/** |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.enums; |
package com.cloud.kicc.commonbiz.api.enums; |
||||||
|
|
||||||
public enum CmdStatusEnum { |
public enum CmdStatusEnum { |
||||||
//指令响应状态(0.未响应 1.成功 2.失败)
|
//指令响应状态(0.未响应 1.成功 2.失败)
|
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.enums; |
package com.cloud.kicc.commonbiz.api.enums; |
||||||
|
|
||||||
public enum WarnStatusEnum { |
public enum WarnStatusEnum { |
||||||
//报警状态(0. 正常 1.低温报警 2.高温报警 3.倾斜报警 4.锁未关报警)
|
//报警状态(0. 正常 1.低温报警 2.高温报警 3.倾斜报警 4.锁未关报警)
|
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.vo; |
package com.cloud.kicc.commonbiz.api.vo; |
||||||
|
|
||||||
|
|
||||||
import lombok.Data; |
import lombok.Data; |
@ -1,4 +1,4 @@ |
|||||||
package com.cloud.kicc.equip.api.vo; |
package com.cloud.kicc.commonbiz.api.vo; |
||||||
|
|
||||||
|
|
||||||
import lombok.Data; |
import lombok.Data; |
@ -1,30 +0,0 @@ |
|||||||
package com.cloud.kicc.equip.api.dto.box; |
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: Mak |
|
||||||
* @Description: 下行指令返回值 |
|
||||||
* @Date: 2021/9/23 |
|
||||||
* @Modified by: |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
public class DownCmdParam implements Serializable { |
|
||||||
|
|
||||||
// 当前指令操作序号
|
|
||||||
private String ts; |
|
||||||
|
|
||||||
// 下行指令
|
|
||||||
private Integer cmd; |
|
||||||
|
|
||||||
// 指令执行的结果状态(0.成功 1.失败)
|
|
||||||
private Integer status; |
|
||||||
|
|
||||||
// 指纹ID / 指纹IDs,多个指纹以英文逗号隔开
|
|
||||||
private String data; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,23 +0,0 @@ |
|||||||
package com.cloud.kicc.equip.api.dto.box; |
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: Mak |
|
||||||
* @Description: 变动rfids参数 |
|
||||||
* @Date: 2021/9/23 |
|
||||||
* @Modified by: |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
public class RfidsParam implements Serializable { |
|
||||||
|
|
||||||
// 上报的RFID标签
|
|
||||||
private String rfid; |
|
||||||
|
|
||||||
// 变动类型(1.进 2.出)
|
|
||||||
private Integer type; |
|
||||||
|
|
||||||
} |
|
@ -1,75 +0,0 @@ |
|||||||
package com.cloud.kicc.equip.api.dto.box; |
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: Mak |
|
||||||
* @Description: 上行指令参数 |
|
||||||
* @Date: 2021/9/23 |
|
||||||
* @Modified by: |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
public class UpCmdParam implements Serializable { |
|
||||||
|
|
||||||
// 设备编号
|
|
||||||
private String code; |
|
||||||
// 上行指令代码
|
|
||||||
private Integer cmd; |
|
||||||
|
|
||||||
// 4G卡唯一标识号iccid
|
|
||||||
private String iccid; |
|
||||||
|
|
||||||
// 指纹ID
|
|
||||||
private String fid; |
|
||||||
|
|
||||||
// 元件异常类型(1.指纹锁 2.制冷片 3.温湿度 4.4G通讯 5.倾斜度 6.语音)
|
|
||||||
private Integer wrong; |
|
||||||
|
|
||||||
// 上报的RFID标签,多个以英文逗号隔开
|
|
||||||
private String rfids; |
|
||||||
|
|
||||||
/** |
|
||||||
* 以下为心跳上报数据 |
|
||||||
*/ |
|
||||||
/*//设备温度
|
|
||||||
private String temp; |
|
||||||
//设备湿度
|
|
||||||
private String damp; |
|
||||||
//经度
|
|
||||||
private String lng; |
|
||||||
//纬度
|
|
||||||
private String lat; |
|
||||||
//剩余电量
|
|
||||||
private String power; |
|
||||||
//倾斜角度(x轴)
|
|
||||||
private String tiltX; |
|
||||||
//倾斜角度(y轴)
|
|
||||||
private String tiltY; |
|
||||||
//震动能量值(值越大倾斜越大)
|
|
||||||
private String energy;*/ |
|
||||||
|
|
||||||
//设备温度
|
|
||||||
private String tp; |
|
||||||
//设备湿度
|
|
||||||
private String dp; |
|
||||||
//经度
|
|
||||||
private String lg; |
|
||||||
//纬度
|
|
||||||
private String lt; |
|
||||||
//剩余电量
|
|
||||||
private String pw; |
|
||||||
//倾斜角度(x轴)
|
|
||||||
private String tx; |
|
||||||
//倾斜角度(y轴)
|
|
||||||
private String ty; |
|
||||||
//震动能量值(值越大倾斜越大)
|
|
||||||
private String eg; |
|
||||||
//锁状态 (0.关 1.开)
|
|
||||||
private Integer os; |
|
||||||
//制冷状态(0.未制冷 1.已制冷)
|
|
||||||
private Integer cs; |
|
||||||
|
|
||||||
} |
|
@ -1,33 +0,0 @@ |
|||||||
package com.cloud.kicc.equip.api.vo.box; |
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
@Data |
|
||||||
public class DownCmdVo implements Serializable { |
|
||||||
|
|
||||||
// 时间戳 - 用于下行指令的唯一标识
|
|
||||||
private String ts; |
|
||||||
|
|
||||||
// 下行指令代码
|
|
||||||
private Integer cmd; |
|
||||||
|
|
||||||
// 指纹id
|
|
||||||
//private String fid;
|
|
||||||
|
|
||||||
// 指纹id/语音播报内容
|
|
||||||
private String data; |
|
||||||
|
|
||||||
//温度最低警报值
|
|
||||||
private Double tempMin; |
|
||||||
//温度最高警报值
|
|
||||||
private Double tempMax; |
|
||||||
//rfid每隔多少分钟上报一次所有标签
|
|
||||||
private Integer rfidMin; |
|
||||||
//每隔多少秒上报一次数据
|
|
||||||
private Integer beat; |
|
||||||
//设备状态 (1.已连接 2.已断开 3.已休眠)
|
|
||||||
|
|
||||||
} |
|
@ -1,23 +0,0 @@ |
|||||||
package com.cloud.kicc.equip.api.vo.box; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
/** |
|
||||||
* 物联网卡管理(EquipBoxCard)表实体类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2022-02-13 12:06:29 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
public class EquipBoxCardVo implements Serializable { |
|
||||||
|
|
||||||
private Integer cardId; |
|
||||||
|
|
||||||
private String iccid; |
|
||||||
|
|
||||||
private String card; |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,25 +0,0 @@ |
|||||||
package com.cloud.kicc.equip.api.vo.box; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
import java.io.Serializable; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱设备信息(EquipBox)表实体类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-14 19:07:07 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
public class EquipBoxConfigVo implements Serializable { |
|
||||||
|
|
||||||
//温度最低警报值
|
|
||||||
private Double tempMin; |
|
||||||
//温度最高警报值
|
|
||||||
private Double tempMax; |
|
||||||
//rfid每隔多少分钟上报一次所有标签
|
|
||||||
private Integer rfidMin; |
|
||||||
//每隔多少秒上报一次数据
|
|
||||||
private Integer beat; |
|
||||||
|
|
||||||
} |
|
@ -1,173 +0,0 @@ |
|||||||
package com.cloud.kicc.amqp; |
|
||||||
|
|
||||||
import org.apache.qpid.jms.JmsConnection; |
|
||||||
import org.apache.qpid.jms.JmsConnectionFactory; |
|
||||||
import org.apache.qpid.jms.JmsConnectionListener; |
|
||||||
import org.apache.qpid.jms.message.JmsInboundMessageDispatch; |
|
||||||
import org.apache.qpid.jms.transports.TransportOptions; |
|
||||||
import org.apache.qpid.jms.transports.TransportSupport; |
|
||||||
|
|
||||||
import javax.jms.*; |
|
||||||
import javax.naming.Context; |
|
||||||
import javax.naming.InitialContext; |
|
||||||
import java.net.URI; |
|
||||||
import java.util.Hashtable; |
|
||||||
import java.util.concurrent.ExecutorService; |
|
||||||
import java.util.concurrent.LinkedBlockingQueue; |
|
||||||
import java.util.concurrent.ThreadPoolExecutor; |
|
||||||
import java.util.concurrent.TimeUnit; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: lizhi |
|
||||||
* @Description: |
|
||||||
* @Since 1.0 |
|
||||||
* @Date Created in 15:34 2022/6/17 |
|
||||||
*/ |
|
||||||
public class AmqpDemo { |
|
||||||
//异步线程池,参数可以根据业务特点作调整,也可以用其他异步方式来处理。
|
|
||||||
private final static ExecutorService executorService = new ThreadPoolExecutor( |
|
||||||
Runtime.getRuntime().availableProcessors(), Runtime.getRuntime().availableProcessors() * 2, |
|
||||||
60, TimeUnit.SECONDS, new LinkedBlockingQueue<>(5000)); |
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception { |
|
||||||
//连接凭证接入键值。
|
|
||||||
String accessKey = "JUOtPLi9"; |
|
||||||
long timeStamp = System.currentTimeMillis(); |
|
||||||
//UserName组装方法,请参见文档:AMQP客户端接入说明。
|
|
||||||
String userName = "accessKey=" + accessKey + "|timestamp=" + timeStamp; |
|
||||||
//连接凭证接入码。
|
|
||||||
String password = "N8cNjNIR52Qg6UF8ysKFHdfZWqdMyEhS"; |
|
||||||
//按照qpid-jms的规范,组装连接URL。
|
|
||||||
String baseUrl = "4cbb346a33.iot-amqps.cn-north-4.myhuaweicloud.com"; |
|
||||||
String connectionUrl = "amqps://" + baseUrl + ":5671?amqp.vhost=default&amqp.idleTimeout=8000&amqp.saslMechanisms=PLAIN"; |
|
||||||
Hashtable<String, String> hashtable = new Hashtable<>(); |
|
||||||
hashtable.put("connectionfactory.HwConnectionURL", connectionUrl); |
|
||||||
//队列名,可以使用默认队列DefaultQueue
|
|
||||||
String queueName = "DefaultQueue"; |
|
||||||
hashtable.put("queue.HwQueueName", queueName); |
|
||||||
hashtable |
|
||||||
.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.jms.jndi.JmsInitialContextFactory"); |
|
||||||
Context context = new InitialContext(hashtable); |
|
||||||
JmsConnectionFactory cf = (JmsConnectionFactory) context.lookup("HwConnectionURL"); |
|
||||||
//同一个链接可创建多个queue,与前面queue.HwQueueName作好配对就行
|
|
||||||
Destination queue = (Destination) context.lookup("HwQueueName"); |
|
||||||
|
|
||||||
//信任服务端
|
|
||||||
TransportOptions to = new TransportOptions(); |
|
||||||
to.setTrustAll(true); |
|
||||||
cf.setSslContext(TransportSupport.createJdkSslContext(to)); |
|
||||||
|
|
||||||
// 创建连接
|
|
||||||
Connection connection = cf.createConnection(userName, password); |
|
||||||
((JmsConnection) connection).addConnectionListener(myJmsConnectionListener); |
|
||||||
// 创建 Session
|
|
||||||
// Session.CLIENT_ACKNOWLEDGE: 收到消息后,需要手动调用message.acknowledge()。
|
|
||||||
// Session.AUTO_ACKNOWLEDGE: SDK自动ACK(推荐)。
|
|
||||||
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); |
|
||||||
connection.start(); |
|
||||||
// 创建 Receiver Link
|
|
||||||
MessageConsumer consumer = session.createConsumer(queue); |
|
||||||
//处理消息有两种方式
|
|
||||||
// 1,主动拉数据(推荐),参照receiveMessage(consumer)
|
|
||||||
// 2, 添加监听,参照consumer.setMessageListener(messageListener), 服务端主动推数据给客户端,但得考虑接受的数据速率是客户能力能够承受住的
|
|
||||||
receiveMessage(consumer); |
|
||||||
// consumer.setMessageListener(messageListener);
|
|
||||||
} |
|
||||||
|
|
||||||
private static void receiveMessage(MessageConsumer consumer) throws JMSException { |
|
||||||
while (true) { |
|
||||||
try { |
|
||||||
// 建议异步处理收到的消息,确保receiveMessage函数里没有耗时逻辑。
|
|
||||||
Message message = consumer.receive(); |
|
||||||
processMessage(message); |
|
||||||
} catch (Exception e) { |
|
||||||
System.out.println("receiveMessage hand an exception: " + e.getMessage()); |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
private static MessageListener messageListener = message -> { |
|
||||||
try { |
|
||||||
// 建议异步处理收到的消息,确保onMessage函数里没有耗时逻辑。
|
|
||||||
// 如果业务处理耗时过程过长阻塞住线程,可能会影响SDK收到消息后的正常回调。
|
|
||||||
executorService.submit(() -> processMessage(message)); |
|
||||||
} catch (Exception e) { |
|
||||||
System.out.println("submit task occurs exception: " + e.getMessage()); |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
/** |
|
||||||
* 在这里处理您收到消息后的具体业务逻辑。 |
|
||||||
*/ |
|
||||||
private static void processMessage(Message message) { |
|
||||||
try { |
|
||||||
String body = message.getBody(String.class); |
|
||||||
String content = new String(body); |
|
||||||
System.out.println("receive an message, the content is " + content); |
|
||||||
} catch (Exception e) { |
|
||||||
System.out.println("processMessage occurs error: " + e.getMessage()); |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
private static JmsConnectionListener myJmsConnectionListener = new JmsConnectionListener() { |
|
||||||
/** |
|
||||||
* 连接成功建立。 |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
public void onConnectionEstablished(URI remoteURI) { |
|
||||||
System.out.println("onConnectionEstablished, remoteUri:" + remoteURI); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 尝试过最大重试次数之后,最终连接失败。 |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
public void onConnectionFailure(Throwable error) { |
|
||||||
System.out.println("onConnectionFailure, " + error.getMessage()); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 连接中断。 |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
public void onConnectionInterrupted(URI remoteURI) { |
|
||||||
System.out.println("onConnectionInterrupted, remoteUri:" + remoteURI); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 连接中断后又自动重连上。 |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
public void onConnectionRestored(URI remoteURI) { |
|
||||||
System.out.println("onConnectionRestored, remoteUri:" + remoteURI); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onInboundMessage(JmsInboundMessageDispatch envelope) { |
|
||||||
System.out.println("onInboundMessage, " + envelope); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onSessionClosed(Session session, Throwable cause) { |
|
||||||
System.out.println("onSessionClosed, session=" + session + ", cause =" + cause); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onConsumerClosed(MessageConsumer consumer, Throwable cause) { |
|
||||||
System.out.println("MessageConsumer, consumer=" + consumer + ", cause =" + cause); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onProducerClosed(MessageProducer producer, Throwable cause) { |
|
||||||
System.out.println("MessageProducer, producer=" + producer + ", cause =" + cause); |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.cloud.kicc.amqp; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: lizhi |
|
||||||
* @Description: |
|
||||||
* @Since 1.0 |
|
||||||
* @Date Created in 9:56 2022/6/21 |
|
||||||
*/ |
|
||||||
public class testDemo { |
|
||||||
public static void main(String[] args) { |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
@ -1,36 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.api.entity; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId; |
|
||||||
import com.baomidou.mybatisplus.annotation.TableName; |
|
||||||
import com.cloud.kicc.common.data.entity.CommonEntity; |
|
||||||
import lombok.Data; |
|
||||||
import lombok.EqualsAndHashCode; |
|
||||||
import lombok.experimental.Accessors; |
|
||||||
/** |
|
||||||
*<p> |
|
||||||
* 地图任务 |
|
||||||
*</p> |
|
||||||
* |
|
||||||
* @Author: entfrm开发团队-王翔 |
|
||||||
* @Date: 2022/6/6 |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
@EqualsAndHashCode(callSuper = false) |
|
||||||
@Accessors(chain = true) |
|
||||||
@TableName(value = "common_map_task", excludeProperty = { "remarks", "delFlag" }) |
|
||||||
public class MapTask extends CommonEntity { |
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L; |
|
||||||
|
|
||||||
@TableId |
|
||||||
private String id; |
|
||||||
|
|
||||||
private String name; |
|
||||||
|
|
||||||
private String smallHospitalId; |
|
||||||
|
|
||||||
private String largeHospitalId; |
|
||||||
|
|
||||||
private String takeSpecimenId; |
|
||||||
|
|
||||||
} |
|
@ -1,11 +1,11 @@ |
|||||||
package com.cloud.kicc.commonbiz.controller.equip; |
package com.cloud.kicc.commonbiz.controller; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
import com.cloud.kicc.common.core.api.R; |
import com.cloud.kicc.common.core.api.R; |
||||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperRecordService; |
import com.cloud.kicc.commonbiz.service.EquipBeeperRecordService; |
||||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperService; |
import com.cloud.kicc.commonbiz.service.EquipBeeperService; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeper; |
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
import lombok.RequiredArgsConstructor; |
||||||
import org.springframework.web.bind.annotation.*; |
import org.springframework.web.bind.annotation.*; |
@ -1,13 +1,13 @@ |
|||||||
package com.cloud.kicc.commonbiz.controller.equip; |
package com.cloud.kicc.commonbiz.controller; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
import com.cloud.kicc.common.core.api.R; |
import com.cloud.kicc.common.core.api.R; |
||||||
import com.cloud.kicc.commonbiz.service.box.BoxDownCmdService; |
import com.cloud.kicc.commonbiz.service.BoxDownCmdService; |
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxLogService; |
import com.cloud.kicc.commonbiz.service.EquipBoxLogService; |
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxRecordService; |
import com.cloud.kicc.commonbiz.service.EquipBoxRecordService; |
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxService; |
import com.cloud.kicc.commonbiz.service.EquipBoxService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
import com.cloud.kicc.commonbiz.api.entity.EquipBox; |
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
import lombok.RequiredArgsConstructor; |
||||||
import org.springframework.web.bind.annotation.*; |
import org.springframework.web.bind.annotation.*; |
@ -1,11 +1,11 @@ |
|||||||
package com.cloud.kicc.equip.controller; |
package com.cloud.kicc.commonbiz.controller; |
||||||
|
|
||||||
|
|
||||||
import com.cloud.kicc.common.core.api.R; |
import com.cloud.kicc.common.core.api.R; |
||||||
import com.cloud.kicc.common.core.constant.AppConstants; |
import com.cloud.kicc.common.core.constant.AppConstants; |
||||||
import com.cloud.kicc.commonbiz.service.box.BoxDownCmdService; |
import com.cloud.kicc.commonbiz.service.BoxDownCmdService; |
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxUserService; |
import com.cloud.kicc.commonbiz.service.EquipBoxUserService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser; |
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
import lombok.RequiredArgsConstructor; |
||||||
import org.springframework.web.bind.annotation.*; |
import org.springframework.web.bind.annotation.*; |
@ -1,12 +1,12 @@ |
|||||||
package com.cloud.kicc.equip.controller; |
package com.cloud.kicc.commonbiz.controller; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
import com.cloud.kicc.common.core.api.R; |
import com.cloud.kicc.common.core.api.R; |
||||||
import com.cloud.kicc.common.core.constant.AppConstants; |
import com.cloud.kicc.common.core.constant.AppConstants; |
||||||
import com.cloud.kicc.commonbiz.service.EquipSpecimenService; |
import com.cloud.kicc.commonbiz.service.EquipSpecimenService; |
||||||
import com.cloud.kicc.equip.api.entity.EquipSpecimen; |
import com.cloud.kicc.commonbiz.api.entity.EquipSpecimen; |
||||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenUsageVo; |
import com.cloud.kicc.commonbiz.api.vo.EquipSpecimenUsageVo; |
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
import lombok.RequiredArgsConstructor; |
||||||
import org.springframework.web.bind.annotation.*; |
import org.springframework.web.bind.annotation.*; |
@ -1,9 +1,9 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeper; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
import org.apache.ibatis.annotations.Param; |
import org.apache.ibatis.annotations.Param; |
||||||
|
|
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
/** |
/** |
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxCard; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
/** |
/** |
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxLog; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
/** |
/** |
@ -1,9 +1,9 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
import com.cloud.kicc.commonbiz.api.entity.EquipBox; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
import org.apache.ibatis.annotations.Param; |
import org.apache.ibatis.annotations.Param; |
||||||
|
|
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRecord; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
/** |
/** |
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRfidLog; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
/** |
/** |
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
@ -1,10 +1,10 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
import com.cloud.kicc.equip.api.entity.EquipSpecimen; |
import com.cloud.kicc.commonbiz.api.entity.EquipSpecimen; |
||||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenListVo; |
import com.cloud.kicc.commonbiz.api.vo.EquipSpecimenListVo; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
import org.apache.ibatis.annotations.Param; |
import org.apache.ibatis.annotations.Param; |
||||||
|
|
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.EquipTemperature; |
import com.cloud.kicc.commonbiz.api.entity.EquipTemperature; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
@Mapper |
@Mapper |
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.mapper.equip; |
package com.cloud.kicc.commonbiz.mapper; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
import com.cloud.kicc.equip.api.entity.EquipTemperatureRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipTemperatureRecord; |
||||||
import org.apache.ibatis.annotations.Mapper; |
import org.apache.ibatis.annotations.Mapper; |
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
|
|
||||||
import com.cloud.kicc.equip.api.dto.box.DownCmdParam; |
import com.cloud.kicc.commonbiz.api.dto.DownCmdParam; |
||||||
|
|
||||||
/** |
/** |
||||||
* 标本箱下行指令服务接口 |
* 标本箱下行指令服务接口 |
@ -1,7 +1,7 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.cloud.kicc.equip.api.dto.box.UpCmdParam; |
import com.cloud.kicc.commonbiz.api.dto.UpCmdParam; |
||||||
import com.cloud.kicc.equip.api.vo.box.EquipBoxConfigVo; |
import com.cloud.kicc.commonbiz.api.vo.EquipBoxConfigVo; |
||||||
|
|
||||||
/** |
/** |
||||||
* 标本箱上行指令服务接口 |
* 标本箱上行指令服务接口 |
@ -1,6 +1,6 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
import com.cloud.kicc.commonbiz.api.vo.DownCmdVo; |
||||||
|
|
||||||
/** |
/** |
||||||
* 标本箱下行指令服务接口 |
* 标本箱下行指令服务接口 |
@ -1,8 +1,8 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.beeper; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
@ -1,11 +1,11 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.beeper; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeper; |
||||||
|
|
||||||
import java.util.Map; |
import java.util.Map; |
||||||
|
|
@ -1,9 +1,9 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxCard; |
||||||
import com.cloud.kicc.equip.api.vo.box.EquipBoxCardVo; |
import com.cloud.kicc.commonbiz.api.vo.EquipBoxCardVo; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
@ -1,7 +1,7 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxLog; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
@ -1,9 +1,9 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.dto.box.UpCmdParam; |
import com.cloud.kicc.commonbiz.api.dto.UpCmdParam; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRecord; |
||||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
import com.cloud.kicc.commonbiz.api.vo.DownCmdVo; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
@ -1,7 +1,7 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRfidLog; |
||||||
|
|
||||||
/** |
/** |
||||||
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表服务接口 |
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表服务接口 |
@ -1,9 +1,9 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
import com.cloud.kicc.commonbiz.api.entity.EquipBox; |
||||||
|
|
||||||
|
|
||||||
/** |
/** |
@ -1,7 +1,7 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.box; |
package com.cloud.kicc.commonbiz.service; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser; |
||||||
|
|
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
@ -1,11 +1,11 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.beeper; |
package com.cloud.kicc.commonbiz.service.impl; |
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBeeperRecordMapper; |
import com.cloud.kicc.commonbiz.mapper.EquipBeeperRecordMapper; |
||||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperRecordService; |
import com.cloud.kicc.commonbiz.service.EquipBeeperRecordService; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
import lombok.RequiredArgsConstructor; |
||||||
import lombok.extern.slf4j.Slf4j; |
import lombok.extern.slf4j.Slf4j; |
@ -1,15 +1,15 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.beeper; |
package com.cloud.kicc.commonbiz.service.impl; |
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBeeperMapper; |
import com.cloud.kicc.commonbiz.mapper.EquipBeeperMapper; |
||||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperRecordService; |
import com.cloud.kicc.commonbiz.service.EquipBeeperRecordService; |
||||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperService; |
import com.cloud.kicc.commonbiz.service.EquipBeeperService; |
||||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
import com.cloud.kicc.commonbiz.api.constant.EquipConstants; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeper; |
||||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
import lombok.RequiredArgsConstructor; |
||||||
import lombok.extern.slf4j.Slf4j; |
import lombok.extern.slf4j.Slf4j; |
@ -1,224 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.*; |
|
||||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
|
||||||
import com.cloud.kicc.equip.api.dto.box.DownCmdParam; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
|
||||||
import com.cloud.kicc.equip.api.enums.CmdEnum; |
|
||||||
import com.cloud.kicc.equip.api.enums.CmdStatusEnum; |
|
||||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
|
||||||
|
|
||||||
import lombok.AllArgsConstructor; |
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱下行指令服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-14 19:07:07 |
|
||||||
*/ |
|
||||||
|
|
||||||
@Service |
|
||||||
@Slf4j |
|
||||||
@AllArgsConstructor |
|
||||||
|
|
||||||
public class BoxDownCmdServiceImpl implements BoxDownCmdService { |
|
||||||
|
|
||||||
private final EquipBoxService equipBoxService; |
|
||||||
|
|
||||||
private final EquipBoxUserService equipBoxUserService; |
|
||||||
|
|
||||||
private final EquipBoxRecordService equipBoxRecordService; |
|
||||||
|
|
||||||
private final DownCmdService downCmdService; |
|
||||||
|
|
||||||
/* public BoxDownCmdServiceImpl(DownCmdService downCmdService,EquipBoxRecordService equipBoxRecordService, |
|
||||||
EquipBoxUserService equipBoxUserService,EquipBoxService equipBoxService){ |
|
||||||
|
|
||||||
this.downCmdService = downCmdService; |
|
||||||
this.equipBoxRecordService=equipBoxRecordService; |
|
||||||
this.equipBoxUserService=equipBoxUserService; |
|
||||||
this.equipBoxService=equipBoxService; |
|
||||||
}*/ |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean sendVoiceToEquipBox(String boxId, String data) { |
|
||||||
EquipBox equipBox = equipBoxService.getById(boxId); |
|
||||||
// 发送语音消息给标本箱
|
|
||||||
DownCmdVo vo = new DownCmdVo(); |
|
||||||
vo.setCmd(CmdEnum.VOICE_D.getCode()); |
|
||||||
vo.setData(data); |
|
||||||
String rtn = downCmdService.downCmdToBox(equipBox.getBoxCode(), vo); |
|
||||||
if (rtn != null){ |
|
||||||
// 记录操作日志
|
|
||||||
vo.setTs(rtn); |
|
||||||
equipBoxRecordService.addData(equipBox.getBoxId(),vo,null); |
|
||||||
} |
|
||||||
return rtn != null; |
|
||||||
//return false;
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean changeEquipUser(String boxUserId, Integer cmd) { |
|
||||||
EquipBoxUser boxUser = equipBoxUserService.getById(boxUserId); |
|
||||||
|
|
||||||
EquipBox equipBox = equipBoxService.getById(boxUser.getBoxId()); |
|
||||||
|
|
||||||
// 新增/删除指纹
|
|
||||||
DownCmdVo vo = new DownCmdVo(); |
|
||||||
vo.setCmd(cmd); |
|
||||||
if (cmd == CmdEnum.DEL_FID_D.getCode() || cmd == CmdEnum.DISABLE_FID_D.getCode() |
|
||||||
|| cmd == CmdEnum.ENABLE_FID_D.getCode()){ |
|
||||||
vo.setData(boxUser.getFid()); |
|
||||||
} |
|
||||||
String rtn = downCmdService.downCmdToBox(equipBox.getBoxCode(), vo); |
|
||||||
if (rtn != null){ |
|
||||||
// 记录操作日志
|
|
||||||
vo.setTs(rtn); |
|
||||||
equipBoxRecordService.addData(equipBox.getBoxId(),vo,boxUserId); |
|
||||||
} |
|
||||||
return rtn != null; |
|
||||||
//return false;
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean downCmdToEquipBox(String boxId, Integer cmd, String data) { |
|
||||||
EquipBox equipBox = equipBoxService.getById(boxId); |
|
||||||
|
|
||||||
// 下发参数
|
|
||||||
DownCmdVo vo = new DownCmdVo(); |
|
||||||
vo.setCmd(cmd); |
|
||||||
|
|
||||||
// 不同指令的参数解析
|
|
||||||
if (cmd == CmdEnum.RESET_D.getCode()){ |
|
||||||
// 重置标本箱配置信息
|
|
||||||
vo.setTempMax(equipBox.getTempMax()); |
|
||||||
vo.setTempMin(equipBox.getTempMin()); |
|
||||||
vo.setRfidMin(equipBox.getRfidMin()); |
|
||||||
vo.setBeat(equipBox.getBeat()); |
|
||||||
}else if(cmd == CmdEnum.VOICE_D.getCode() || cmd == CmdEnum.DEL_FID_D.getCode() |
|
||||||
|| cmd == CmdEnum.DISABLE_FID_D.getCode() || cmd == CmdEnum.ENABLE_FID_D.getCode()){ |
|
||||||
vo.setData(data); |
|
||||||
} |
|
||||||
|
|
||||||
String rtn = downCmdService.downCmdToBox(equipBox.getBoxCode(), vo); |
|
||||||
if (rtn != null){ |
|
||||||
// 记录操作日志
|
|
||||||
vo.setTs(rtn); |
|
||||||
equipBoxRecordService.addData(equipBox.getBoxId(),vo,null); |
|
||||||
} |
|
||||||
return rtn != null; |
|
||||||
//return false;
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean handleDownCmdResult(DownCmdParam downParam) { |
|
||||||
// 查询当前记录是否存在 - 状态为正常且指令状态不等于成功的记录
|
|
||||||
LambdaQueryWrapper<EquipBoxRecord> wrapper = new LambdaQueryWrapper<>(); |
|
||||||
wrapper.eq(EquipBoxRecord::getTimestamp,downParam.getTs()) |
|
||||||
.eq(EquipBoxRecord::getCmd,downParam.getCmd()) |
|
||||||
.ne(EquipBoxRecord::getCmdStatus, CmdStatusEnum.SUCCESS.getCode()); |
|
||||||
EquipBoxRecord boxRecord = equipBoxRecordService.getOne(wrapper); |
|
||||||
if (boxRecord == null){ |
|
||||||
return false; |
|
||||||
} |
|
||||||
|
|
||||||
// 修改指令记录执行成功与否
|
|
||||||
EquipBoxRecord updateRecord = new EquipBoxRecord(); |
|
||||||
updateRecord.setId(boxRecord.getId()); |
|
||||||
|
|
||||||
// 判断客户端返回的指令执行状态是否成功
|
|
||||||
if (downParam.getStatus() == 1){ |
|
||||||
// 执行失败
|
|
||||||
updateRecord.setCmdStatus(CmdStatusEnum.FAIL.getCode()); |
|
||||||
return equipBoxRecordService.updateById(updateRecord); |
|
||||||
} |
|
||||||
|
|
||||||
// 修改标本箱状态
|
|
||||||
EquipBox updateBox = null; |
|
||||||
|
|
||||||
boolean rtn = true; |
|
||||||
Integer cmd = downParam.getCmd(); |
|
||||||
if (cmd == CmdEnum.ADD_FID_D.getCode()){ |
|
||||||
// 新增指纹
|
|
||||||
EquipBoxUser updateUser = new EquipBoxUser(); |
|
||||||
updateUser.setId(boxRecord.getRelationId()); |
|
||||||
updateUser.setFid(downParam.getData()); |
|
||||||
rtn = equipBoxUserService.updateById(updateUser); |
|
||||||
|
|
||||||
}else if (cmd == CmdEnum.DEL_FID_D.getCode()){ |
|
||||||
// 删除指纹
|
|
||||||
LambdaUpdateWrapper<EquipBoxUser> updateWrapper = new LambdaUpdateWrapper<>(); |
|
||||||
updateWrapper.set(EquipBoxUser::getFid,null).eq(EquipBoxUser::getId,boxRecord.getRelationId()); |
|
||||||
rtn = equipBoxUserService.update(updateWrapper); |
|
||||||
}else if (cmd == CmdEnum.ALL_FID_D.getCode()){ |
|
||||||
// 获取所有指纹
|
|
||||||
log.info("获取所有指纹,返回值"+downParam.getData()); |
|
||||||
|
|
||||||
}else if (cmd == CmdEnum.DEL_ALL_FID_D.getCode()){ |
|
||||||
// 删除所有指纹
|
|
||||||
LambdaUpdateWrapper<EquipBoxUser> updateWrapper = new LambdaUpdateWrapper<>(); |
|
||||||
updateWrapper.set(EquipBoxUser::getFid,null).eq(EquipBoxUser::getBoxId,boxRecord.getBoxId()); |
|
||||||
rtn = equipBoxUserService.update(updateWrapper); |
|
||||||
}else if (cmd == CmdEnum.DISABLE_FID_D.getCode()){ |
|
||||||
// 禁用指纹
|
|
||||||
LambdaUpdateWrapper<EquipBoxUser> updateWrapper = new LambdaUpdateWrapper<>(); |
|
||||||
updateWrapper.set(EquipBoxUser::getStatus, EquipConstants.NO_CODE).eq(EquipBoxUser::getId,boxRecord.getRelationId()); |
|
||||||
rtn = equipBoxUserService.update(updateWrapper); |
|
||||||
}else if (cmd == CmdEnum.ENABLE_FID_D.getCode()){ |
|
||||||
// 启用指纹
|
|
||||||
LambdaUpdateWrapper<EquipBoxUser> updateWrapper = new LambdaUpdateWrapper<>(); |
|
||||||
updateWrapper.set(EquipBoxUser::getStatus, EquipConstants.YES_CODE).eq(EquipBoxUser::getId,boxRecord.getRelationId()); |
|
||||||
rtn = equipBoxUserService.update(updateWrapper); |
|
||||||
}else if (cmd == CmdEnum.OPEN_DATA_D.getCode()){ |
|
||||||
// 开启数据上报
|
|
||||||
updateBox = new EquipBox(); |
|
||||||
updateBox.setBoxStatus(1); |
|
||||||
|
|
||||||
}else if (cmd == CmdEnum.CLOSE_DATA_D.getCode()){ |
|
||||||
// 关闭数据上报
|
|
||||||
updateBox = new EquipBox(); |
|
||||||
updateBox.setBoxStatus(3); |
|
||||||
|
|
||||||
}else if (cmd == CmdEnum.OPEN_COLD_D.getCode()){ |
|
||||||
// 开启制冷
|
|
||||||
updateBox = new EquipBox(); |
|
||||||
updateBox.setColdStatus(1); |
|
||||||
|
|
||||||
}else if (cmd == CmdEnum.CLOSE_COLD_D.getCode()){ |
|
||||||
// 关闭制冷
|
|
||||||
updateBox = new EquipBox(); |
|
||||||
updateBox.setColdStatus(0); |
|
||||||
|
|
||||||
}else if (cmd == CmdEnum.OPEN_D.getCode()){ |
|
||||||
// 开锁
|
|
||||||
updateBox = new EquipBox(); |
|
||||||
updateBox.setOpenStatus(1); |
|
||||||
|
|
||||||
}else { |
|
||||||
} |
|
||||||
|
|
||||||
// 修改标本箱各种状态
|
|
||||||
if (updateBox != null){ |
|
||||||
updateBox.setBoxId(boxRecord.getBoxId()); |
|
||||||
rtn = equipBoxService.updateById(updateBox); |
|
||||||
} |
|
||||||
|
|
||||||
// 修改指令记录执行成功与否
|
|
||||||
updateRecord.setCmdStatus(rtn?1:2); |
|
||||||
return equipBoxRecordService.updateById(updateRecord); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,164 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.convert.Convert; |
|
||||||
import cn.hutool.core.util.NumberUtil; |
|
||||||
import cn.hutool.core.util.StrUtil; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
||||||
import com.cloud.kicc.common.core.constant.CommonConstants; |
|
||||||
import com.cloud.kicc.commonbiz.config.KiccProperties; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.BoxUpCmdService; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxLogService; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxRfidLogService; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxService; |
|
||||||
import com.cloud.kicc.commonbiz.util.BaiduMapUtils; |
|
||||||
import com.cloud.kicc.commonbiz.util.GpsGaoAndBaidu; |
|
||||||
import com.cloud.kicc.commonbiz.util.Point; |
|
||||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
|
||||||
import com.cloud.kicc.equip.api.dto.box.UpCmdParam; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
|
||||||
import com.cloud.kicc.equip.api.enums.BoxStatusEnum; |
|
||||||
import com.cloud.kicc.equip.api.enums.CmdEnum; |
|
||||||
import com.cloud.kicc.equip.api.vo.box.EquipBoxConfigVo; |
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.Date; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱上行指令服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-14 19:07:07 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class BoxUpCmdServiceImpl implements BoxUpCmdService { |
|
||||||
|
|
||||||
private final EquipBoxService equipBoxService; |
|
||||||
|
|
||||||
private final EquipBoxLogService equipBoxLogService; |
|
||||||
|
|
||||||
private final EquipBoxRfidLogService equipBoxRfidLogService; |
|
||||||
|
|
||||||
private final KiccProperties kiccProperties; |
|
||||||
|
|
||||||
@Override |
|
||||||
public String beginTelnet(String iccid) { |
|
||||||
EquipBox box = equipBoxService.getByIccid(iccid); |
|
||||||
|
|
||||||
// 修改箱子状态
|
|
||||||
UpdateWrapper<EquipBox> updateWrapper = new UpdateWrapper<>(); |
|
||||||
updateWrapper.lambda().set(EquipBox::getBoxStatus, BoxStatusEnum.TELNET.getCode()) |
|
||||||
.set(EquipBox::getConnectTime,new Date()).eq(EquipBox::getBoxId,box.getBoxId()); |
|
||||||
boolean rtn = equipBoxService.update(updateWrapper); |
|
||||||
if (rtn){ |
|
||||||
return box.getBoxCode(); |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public EquipBoxConfigVo getBoxConfig(String boxCode) throws Exception{ |
|
||||||
EquipBox box = equipBoxService.getByCode(boxCode); |
|
||||||
|
|
||||||
return Convert.convert(EquipBoxConfigVo.class, box); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean beatBoxInfo(UpCmdParam param) throws Exception { |
|
||||||
EquipBox equipBox = equipBoxService.getByCode(param.getCode()); |
|
||||||
|
|
||||||
// 更新主表信息
|
|
||||||
EquipBox updateBox = new EquipBox(); |
|
||||||
updateBox.setBoxId(equipBox.getBoxId()); |
|
||||||
// 温度计算 - 临时处理
|
|
||||||
if (StrUtil.isNotBlank(param.getTp())){ |
|
||||||
// 他说如果拔了一根,那根默认就会是-60℃,现在拔了2根,说明系统默认是2个-60℃,原先的技算方式是三个加一起÷3,
|
|
||||||
// 也就是{-60+(-60)+实际温度}÷3=现在显示温度(现在显示是-32.73),倒推实际温度就是,21.83℃
|
|
||||||
// 目前仅有第一版的温度有问题
|
|
||||||
if(equipBox.getBoxId() == "1"){ |
|
||||||
double ttp = NumberUtil.mul(Double.parseDouble(param.getTp()),3) + 120; |
|
||||||
updateBox.setTemp(String.valueOf(NumberUtil.round(ttp,1))); |
|
||||||
}else{ |
|
||||||
updateBox.setTemp(String.valueOf(NumberUtil.round(Double.parseDouble(param.getTp()),1))); |
|
||||||
} |
|
||||||
} |
|
||||||
updateBox.setDamp(param.getDp()); |
|
||||||
// 详细地址
|
|
||||||
if (StrUtil.isNotBlank(param.getLg()) && StrUtil.isNotBlank(param.getLt())){ |
|
||||||
// 如果箱子定位一直未变,为避免重复调用百度api
|
|
||||||
if (StrUtil.isNotBlank(equipBox.getLng()) || StrUtil.isNotBlank(equipBox.getLat()) |
|
||||||
|| !equipBox.getLng().equals(param.getLg()) || !equipBox.getLat().equals(param.getLt())){ |
|
||||||
updateBox.setLng(param.getLg()); |
|
||||||
updateBox.setLat(param.getLt()); |
|
||||||
try { |
|
||||||
Point point = GpsGaoAndBaidu.gpsAddPrecision(param.getLg(), param.getLt()); |
|
||||||
updateBox.setAddr(BaiduMapUtils.getAddress(String.valueOf(point.getLng()),String.valueOf(point.getLat()),kiccProperties.getMapAk())); |
|
||||||
}catch (Exception e){ |
|
||||||
log.error("标本箱心跳上报经纬度转详细地址失败:"+e.getMessage()); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
updateBox.setPower(String.valueOf(NumberUtil.round(Double.parseDouble(param.getPw()),1))); |
|
||||||
|
|
||||||
// 计算倾斜度
|
|
||||||
|
|
||||||
updateBox.setOpenStatus(param.getOs()); |
|
||||||
updateBox.setColdStatus(param.getCs()); |
|
||||||
boolean ret = equipBoxService.updateById(updateBox); |
|
||||||
if (ret){ |
|
||||||
// 记录心跳日志
|
|
||||||
EquipBoxLog boxLog = Convert.convert(EquipBoxLog.class, updateBox); |
|
||||||
boxLog.setBoxId(equipBox.getBoxId()); |
|
||||||
if(StrUtil.isNotBlank(updateBox.getLng()) || StrUtil.isNotBlank(updateBox.getLat()) |
|
||||||
|| StrUtil.isNotBlank(updateBox.getAddr())){ |
|
||||||
boxLog.setLng(param.getLg()); |
|
||||||
boxLog.setLat(param.getLt()); |
|
||||||
boxLog.setAddr(equipBox.getAddr()); |
|
||||||
} |
|
||||||
boxLog.setTiltX(param.getTx()); |
|
||||||
boxLog.setTiltY(param.getTy()); |
|
||||||
boxLog.setEnergy(param.getEg()); |
|
||||||
boxLog.setErrorStatus(equipBox.getErrorStatus()); |
|
||||||
equipBoxLogService.save(boxLog); |
|
||||||
} |
|
||||||
return ret; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean updateBoxState(UpCmdParam param) { |
|
||||||
EquipBox equipBox = equipBoxService.getByCode(param.getCode()); |
|
||||||
|
|
||||||
EquipBox updateBox = new EquipBox(); |
|
||||||
updateBox.setBoxId(equipBox.getBoxId()); |
|
||||||
|
|
||||||
if (param.getCmd() == CmdEnum.OPEN_U.getCode()){ |
|
||||||
//设置开关状态
|
|
||||||
updateBox.setOpenStatus(EquipConstants.YES_CODE); |
|
||||||
}else if (param.getCmd() == CmdEnum.CLOSE_U.getCode()){ |
|
||||||
updateBox.setOpenStatus(EquipConstants.NO_CODE); |
|
||||||
}else if (param.getCmd() == CmdEnum.ERROR_U.getCode()){ |
|
||||||
updateBox.setErrorStatus(CommonConstants.FAIL); |
|
||||||
} |
|
||||||
|
|
||||||
return equipBoxService.updateById(updateBox); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean addBoxRfidLog(UpCmdParam param, Integer rfidType) { |
|
||||||
EquipBox equipBox = equipBoxService.getByCode(param.getCode()); |
|
||||||
EquipBoxRfidLog data = new EquipBoxRfidLog(); |
|
||||||
data.setBoxId(equipBox.getBoxId()); |
|
||||||
data.setRfids(param.getRfids()); |
|
||||||
data.setRfidType(rfidType); |
|
||||||
return equipBoxRfidLogService.save(data); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,48 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.DownCmdService; |
|
||||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
|
||||||
|
|
||||||
import lombok.AllArgsConstructor; |
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.slf4j.Logger; |
|
||||||
import org.slf4j.LoggerFactory; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.logging.SocketHandler; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱下行指令服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-14 19:07:07 |
|
||||||
*/ |
|
||||||
@AllArgsConstructor |
|
||||||
@Service |
|
||||||
@Slf4j |
|
||||||
public class DownCmdServiceImpl implements DownCmdService { |
|
||||||
private final Logger logger = LoggerFactory.getLogger(ThreadLocal.class); |
|
||||||
|
|
||||||
@Override |
|
||||||
public String downCmdToBox(String boxCode, DownCmdVo vo){ |
|
||||||
String ts = null; |
|
||||||
try { |
|
||||||
// new Thread().sleep(100);
|
|
||||||
// ClientSocket socket = SocketPool.get(boxCode);
|
|
||||||
// if (socket != null){
|
|
||||||
// ts = System.currentTimeMillis()+"";
|
|
||||||
// vo.setTs(ts);
|
|
||||||
// String msg = JSONObject.toJSONString(vo);
|
|
||||||
// SocketHandler.sendMessage(socket,msg);
|
|
||||||
// }
|
|
||||||
}catch (Exception e){ |
|
||||||
e.printStackTrace(); |
|
||||||
ts = null; |
|
||||||
} |
|
||||||
return ts; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,50 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.convert.Convert; |
|
||||||
import cn.hutool.core.util.StrUtil; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBoxCardMapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxCardService; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
|
||||||
import com.cloud.kicc.equip.api.vo.box.EquipBoxCardVo; |
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
import java.util.stream.Collectors; |
|
||||||
|
|
||||||
/** |
|
||||||
* 物联网卡管理(EquipBoxCard)表服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2022-02-13 12:06:30 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class EquipBoxCardServiceImpl extends ServiceImpl<EquipBoxCardMapper, EquipBoxCard> implements EquipBoxCardService { |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public List<EquipBoxCardVo> listCardForSelect(Integer isUsed) throws Exception{ |
|
||||||
List<EquipBoxCard> list = this.lambdaQuery() |
|
||||||
.eq(StrUtil.isNotBlank(isUsed.toString()),EquipBoxCard::getIsUsed, isUsed) |
|
||||||
.list(); |
|
||||||
|
|
||||||
return list.stream().map(item -> { |
|
||||||
return Convert.convert(EquipBoxCardVo.class, item); |
|
||||||
}).collect(Collectors.toList()); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public EquipBoxCard getByIccid(String iccid) { |
|
||||||
return this.lambdaQuery().eq(StrUtil.isNotBlank(iccid),EquipBoxCard::getIccid, iccid).one(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,38 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBoxLogMapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxLogService; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱心跳日志记录(EquipBoxLog)表服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-17 10:25:07 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class EquipBoxLogServiceImpl extends ServiceImpl<EquipBoxLogMapper, EquipBoxLog> implements EquipBoxLogService { |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<EquipBoxLog> listBoxLogs(Integer boxId) { |
|
||||||
LambdaUpdateWrapper<EquipBoxLog> wrapper = new LambdaUpdateWrapper<>(); |
|
||||||
|
|
||||||
//todo: limit 100 ???
|
|
||||||
wrapper.eq(EquipBoxLog::getBoxId,boxId) |
|
||||||
.orderByDesc(EquipBoxLog::getBoxLogId).last("limit 100"); |
|
||||||
return baseMapper.selectList(wrapper); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,71 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBoxRecordMapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxRecordService; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxService; |
|
||||||
import com.cloud.kicc.equip.api.dto.box.UpCmdParam; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
|
||||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱操作记录(EquipBoxRecord)表服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-15 09:39:47 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class EquipBoxRecordServiceImpl extends ServiceImpl<EquipBoxRecordMapper, EquipBoxRecord> implements EquipBoxRecordService { |
|
||||||
|
|
||||||
@Autowired |
|
||||||
EquipBoxService equipBoxService; |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean addData(UpCmdParam param, boolean rtn) { |
|
||||||
EquipBox equipBox = equipBoxService.getByCode(param.getCode()); |
|
||||||
EquipBoxRecord record = new EquipBoxRecord(); |
|
||||||
record.setBoxId(equipBox.getBoxId()); |
|
||||||
record.setCmd(param.getCmd()); |
|
||||||
record.setFid(param.getFid()); |
|
||||||
record.setErrorStatus(param.getWrong()); |
|
||||||
record.setDataJson(JSONObject.toJSONString(param)); |
|
||||||
record.setCmdStatus(rtn?1:2); |
|
||||||
record.setTimestamp(System.currentTimeMillis()+""); |
|
||||||
return this.save(record); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean addData(String boxId, DownCmdVo vo, String relationId) { |
|
||||||
EquipBoxRecord record = new EquipBoxRecord(); |
|
||||||
record.setBoxId(boxId); |
|
||||||
record.setCmd(vo.getCmd()); |
|
||||||
record.setTimestamp(vo.getTs()); |
|
||||||
record.setRelationId(relationId); |
|
||||||
record.setDataJson(JSONObject.toJSONString(vo)); |
|
||||||
return this.save(record); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<EquipBoxRecord> listBoxRecords(String boxId) { |
|
||||||
LambdaUpdateWrapper<EquipBoxRecord> wrapper = new LambdaUpdateWrapper<>(); |
|
||||||
//todo: limit 100 ???
|
|
||||||
wrapper.eq(EquipBoxRecord::getBoxId,boxId) |
|
||||||
.orderByDesc(EquipBoxRecord::getId).last("limit 100"); |
|
||||||
return baseMapper.selectList(wrapper); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,24 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBoxRfidLogMapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxRfidLogService; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-25 15:10:34 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class EquipBoxRfidLogServiceImpl extends ServiceImpl<EquipBoxRfidLogMapper, EquipBoxRfidLog> implements EquipBoxRfidLogService { |
|
||||||
|
|
||||||
} |
|
@ -1,98 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBoxMapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxCardService; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxService; |
|
||||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱设备信息(EquipBox)表服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-14 19:07:07 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class EquipBoxServiceImpl extends ServiceImpl<EquipBoxMapper, EquipBox> implements EquipBoxService { |
|
||||||
|
|
||||||
|
|
||||||
@Autowired |
|
||||||
EquipBoxCardService equipBoxCardService; |
|
||||||
|
|
||||||
@Override |
|
||||||
public EquipBox getByCode(String boxCode) { |
|
||||||
LambdaQueryWrapper<EquipBox> wrapper = new LambdaQueryWrapper<>(); |
|
||||||
wrapper.eq(EquipBox::getBoxCode, boxCode); |
|
||||||
return baseMapper.selectOne(wrapper); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public EquipBox getByIccid(String iccid) { |
|
||||||
EquipBoxCard card = equipBoxCardService.getByIccid(iccid); |
|
||||||
if (card == null){ |
|
||||||
return null; |
|
||||||
} |
|
||||||
LambdaQueryWrapper<EquipBox> wrapper = new LambdaQueryWrapper<>(); |
|
||||||
wrapper.eq(EquipBox::getCardId, card.getId()); |
|
||||||
return baseMapper.selectOne(wrapper); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public EquipBox getData(String id) { |
|
||||||
EquipBox box = baseMapper.selectData(id); |
|
||||||
return box; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean addData(EquipBox param) { |
|
||||||
// 自定义code - 标本箱已限制最长15位
|
|
||||||
boolean rtn = this.save(param); |
|
||||||
param.setBoxCode("B"+param.getBoxId()); |
|
||||||
if (rtn){ |
|
||||||
// 修改物联网卡状态
|
|
||||||
LambdaUpdateWrapper<EquipBoxCard> updateWrapper = new LambdaUpdateWrapper<>(); |
|
||||||
updateWrapper |
|
||||||
.set(EquipBoxCard::getIsUsed, EquipConstants.YES_CODE) |
|
||||||
.eq(EquipBoxCard::getId, param.getCardId()); |
|
||||||
equipBoxCardService.update(updateWrapper); |
|
||||||
} |
|
||||||
return rtn; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean updateStatusByCode(String boxCode, Integer boxStatus, Integer openStatus, Integer coldStatus, Integer warnStatus, Integer errorStatus) { |
|
||||||
LambdaUpdateWrapper<EquipBox> wrapper = new LambdaUpdateWrapper<>(); |
|
||||||
|
|
||||||
wrapper.set(StrUtil.isNotBlank(boxStatus.toString()),EquipBox::getBoxStatus,boxStatus) |
|
||||||
.set(StrUtil.isNotBlank(openStatus.toString()),EquipBox::getOpenStatus,openStatus) |
|
||||||
.set(StrUtil.isNotBlank(coldStatus.toString()),EquipBox::getColdStatus,coldStatus) |
|
||||||
.set(StrUtil.isNotBlank(warnStatus.toString()),EquipBox::getWarnStatus,warnStatus) |
|
||||||
.set(StrUtil.isNotBlank(errorStatus.toString()),EquipBox::getErrorStatus,errorStatus) |
|
||||||
.eq(StrUtil.isNotBlank(boxCode),EquipBox::getBoxCode,boxCode); |
|
||||||
|
|
||||||
return this.update(wrapper); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public IPage<EquipBox> pageData(Page page, EquipBox param) { |
|
||||||
IPage<EquipBox> rtn = baseMapper.pageQuery(page,param); |
|
||||||
return rtn; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,53 +0,0 @@ |
|||||||
package com.cloud.kicc.commonbiz.service.impl.box; |
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.cloud.kicc.common.core.api.R; |
|
||||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBoxUserMapper; |
|
||||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxUserService; |
|
||||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
|
||||||
|
|
||||||
import com.cloud.kicc.system.api.entity.User; |
|
||||||
import com.cloud.kicc.system.api.feign.RemoteUserService; |
|
||||||
import lombok.RequiredArgsConstructor; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
/** |
|
||||||
* 标本箱指纹用户信息(EquipBoxUser)表服务实现类 |
|
||||||
* |
|
||||||
* @author Mak |
|
||||||
* @since 2021-09-15 09:40:50 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
@RequiredArgsConstructor |
|
||||||
@Slf4j |
|
||||||
public class EquipBoxUserServiceImpl extends ServiceImpl<EquipBoxUserMapper, EquipBoxUser> implements EquipBoxUserService { |
|
||||||
|
|
||||||
|
|
||||||
private final RemoteUserService remoteUserService; |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean addData(EquipBoxUser param) { |
|
||||||
if (StrUtil.isNotBlank(param.getUserId()) && StrUtil.isBlank(param.getUserName())){ |
|
||||||
R<User> byId = remoteUserService.getById(param.getUserId()); |
|
||||||
if (byId.getCode() == 200) { |
|
||||||
param.setUserName(byId.getData().getUserName()); |
|
||||||
} |
|
||||||
} |
|
||||||
return this.save(param); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<EquipBoxUser> listBoxUser(String boxId, String userName) { |
|
||||||
EquipBoxUser param = new EquipBoxUser(); |
|
||||||
param.setBoxId(boxId); |
|
||||||
param.setUserName(userName); |
|
||||||
return baseMapper.listQuery(param); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,305 +0,0 @@ |
|||||||
package com.cloud.kicc.mqtt; |
|
||||||
|
|
||||||
import org.eclipse.paho.client.mqttv3.*; |
|
||||||
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; |
|
||||||
|
|
||||||
import javax.crypto.Mac; |
|
||||||
import javax.crypto.spec.SecretKeySpec; |
|
||||||
import javax.net.SocketFactory; |
|
||||||
import javax.net.ssl.SSLContext; |
|
||||||
import javax.net.ssl.TrustManager; |
|
||||||
import javax.net.ssl.TrustManagerFactory; |
|
||||||
import java.io.FileInputStream; |
|
||||||
import java.io.IOException; |
|
||||||
import java.io.InputStream; |
|
||||||
import java.security.KeyStore; |
|
||||||
import java.security.SecureRandom; |
|
||||||
import java.time.Instant; |
|
||||||
import java.time.ZoneId; |
|
||||||
import java.time.ZonedDateTime; |
|
||||||
import java.time.format.DateTimeFormatter; |
|
||||||
|
|
||||||
/** |
|
||||||
* @Author: lizhi |
|
||||||
* @Description: |
|
||||||
* @Since 1.0 |
|
||||||
* @Date Created in 15:31 2022/6/17 |
|
||||||
*/ |
|
||||||
public class MqttDemo { |
|
||||||
//IoT平台mqtt对接地址
|
|
||||||
private String serverIp = "4cbb346a33.iot-mqtts.cn-north-4.myhuaweicloud.com"; |
|
||||||
private int qosLevel = 1; |
|
||||||
private MqttAsyncClient client; |
|
||||||
// 创建设备时获得的deviceId,密钥(要替换为自己注册的设备ID与密钥)
|
|
||||||
static String deviceId = "62abefe0538e623c428797f2_test123"; |
|
||||||
static String secret = "caf9acadf03b02e1729267166eac7fdc"; |
|
||||||
private long minBackoff = 1000; |
|
||||||
private long maxBackoff = 30 * 1000; //30 seconds
|
|
||||||
private long defaultBackoff = 1000; |
|
||||||
private static int retryTimes = 0; |
|
||||||
private SecureRandom random = new SecureRandom(); |
|
||||||
|
|
||||||
public static void main(String[] args) throws MqttException { |
|
||||||
MqttDemo mqttDemo = new MqttDemo(); |
|
||||||
// mqttDemo.connect(false); //false:mqtt连接示例
|
|
||||||
mqttDemo.connect(true); //true:mqtts连接示例
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* mqtt建链 |
|
||||||
* |
|
||||||
* @param isSSL true:Mqtts加密连接 |
|
||||||
* false:Mqtt不加密连接 |
|
||||||
*/ |
|
||||||
private void connect(boolean isSSL) { |
|
||||||
String url; |
|
||||||
if (isSSL) { |
|
||||||
url = "ssl://" + serverIp + ":" + 8883; //mqtts连接
|
|
||||||
} else { |
|
||||||
url = "tcp://" + serverIp + ":" + 1883; //mqtt连接
|
|
||||||
} |
|
||||||
try { |
|
||||||
MqttConnectOptions options = new MqttConnectOptions(); |
|
||||||
if (isSSL) { |
|
||||||
options.setSocketFactory(getOptionSocketFactory(MqttDemo.class.getClassLoader().getResource("ca.jks").getPath())); |
|
||||||
options.setHttpsHostnameVerificationEnabled(false); |
|
||||||
} |
|
||||||
options.setCleanSession(false); |
|
||||||
options.setKeepAliveInterval(120); |
|
||||||
options.setConnectionTimeout(5000); |
|
||||||
options.setAutomaticReconnect(true); |
|
||||||
options.setUserName(deviceId); |
|
||||||
options.setPassword(getPassword().toCharArray()); |
|
||||||
|
|
||||||
System.out.println("Start mqtt connect, url:" + url); |
|
||||||
//设置MqttClient
|
|
||||||
client = new MqttAsyncClient(url, getClientId(), new MemoryPersistence()); |
|
||||||
client.setCallback(callback); |
|
||||||
//建立连接
|
|
||||||
client.connect(options, null, new IMqttActionListener() { |
|
||||||
@Override |
|
||||||
public void onSuccess(IMqttToken iMqttToken) { |
|
||||||
retryTimes = 0; |
|
||||||
System.out.println("Mqtt connect success."); |
|
||||||
publishMessage(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onFailure(IMqttToken iMqttToken, Throwable throwable) { |
|
||||||
System.out.println("Mqtt connect fail."); |
|
||||||
|
|
||||||
//退避重连
|
|
||||||
int lowBound = (int) (defaultBackoff * 0.8); |
|
||||||
int highBound = (int) (defaultBackoff * 1.2); |
|
||||||
long randomBackOff = random.nextInt(highBound - lowBound); |
|
||||||
long backOffWithJitter = (int) (Math.pow(2.0, (double) retryTimes)) * (randomBackOff + lowBound); |
|
||||||
long waitTImeUntilNextRetry = (int) (minBackoff + backOffWithJitter) > maxBackoff ? maxBackoff : (minBackoff + backOffWithJitter); |
|
||||||
System.out.println("---- " + waitTImeUntilNextRetry); |
|
||||||
try { |
|
||||||
Thread.sleep(waitTImeUntilNextRetry); |
|
||||||
} catch (InterruptedException e) { |
|
||||||
System.out.println("sleep failed, the reason is" + e.getMessage().toString()); |
|
||||||
} |
|
||||||
retryTimes++; |
|
||||||
MqttDemo.this.connect(true); |
|
||||||
} |
|
||||||
}); |
|
||||||
} catch (Exception e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Mqtt回调 |
|
||||||
*/ |
|
||||||
private MqttCallback callback = new MqttCallbackExtended() { |
|
||||||
@Override |
|
||||||
public void connectComplete(boolean reconnect, String serviceURI) { |
|
||||||
System.out.println("Mqtt client connected, address:" + serviceURI); |
|
||||||
subScribeTopic(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void connectionLost(Throwable throwable) { |
|
||||||
System.out.println("Connection lost."); |
|
||||||
//可在此处实现重连
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void messageArrived(String topic, MqttMessage message) throws Exception { |
|
||||||
System.out.println("Receive mqtt topic:" + topic + ", message:" + message); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { |
|
||||||
System.out.println("Mqtt message deliver complete."); |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
/** |
|
||||||
* 订阅接收命令topic |
|
||||||
*/ |
|
||||||
private void subScribeTopic() { |
|
||||||
try { |
|
||||||
client.subscribe(getCmdRequestTopic(), qosLevel, null, new IMqttActionListener() { |
|
||||||
@Override |
|
||||||
public void onSuccess(IMqttToken iMqttToken) { |
|
||||||
System.out.println("Subscribe mqtt topic success"); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onFailure(IMqttToken iMqttToken, Throwable throwable) { |
|
||||||
System.out.println("Subscribe mqtt topic fail"); |
|
||||||
} |
|
||||||
}); |
|
||||||
} catch (MqttException e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 上报json数据,注意serviceId要与Profile中的定义对应 |
|
||||||
*/ |
|
||||||
private void publishMessage() { |
|
||||||
String jsonMsg = "{\"services\":[{\"service_id\":\"BasicData\",\"properties\":{\"luminance\":30},\"eventTime\":null}]}"; |
|
||||||
MqttMessage message = new MqttMessage(jsonMsg.getBytes()); |
|
||||||
try { |
|
||||||
client.publish(getReportTopic(), message, qosLevel, new IMqttActionListener() { |
|
||||||
@Override |
|
||||||
public void onSuccess(IMqttToken iMqttToken) { |
|
||||||
System.out.println("Publish mqtt message success"); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void onFailure(IMqttToken iMqttToken, Throwable throwable) { |
|
||||||
System.out.println("Publish mqtt message fail"); |
|
||||||
} |
|
||||||
}); |
|
||||||
} catch (MqttException e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 属性上报topic |
|
||||||
* |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
private String getReportTopic() { |
|
||||||
return "$oc/devices/" + deviceId + "/sys/properties/report"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 订阅命令下发topic |
|
||||||
* |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
private String getCmdRequestTopic() { |
|
||||||
return "$oc/devices/" + deviceId + "/sys/commands/#"; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 加载SSL证书 |
|
||||||
* |
|
||||||
* @param certPath 证书存放的相对路径 |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
private SocketFactory getOptionSocketFactory(String certPath) { |
|
||||||
SSLContext sslContext; |
|
||||||
|
|
||||||
InputStream stream = null; |
|
||||||
try { |
|
||||||
stream = new FileInputStream(certPath); |
|
||||||
sslContext = SSLContext.getInstance("TLS"); |
|
||||||
KeyStore ts = KeyStore.getInstance("JKS"); |
|
||||||
ts.load(stream, null); |
|
||||||
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); |
|
||||||
tmf.init(ts); |
|
||||||
TrustManager[] tm = tmf.getTrustManagers(); |
|
||||||
sslContext.init(null, tm, new SecureRandom()); |
|
||||||
} catch (Exception e) { |
|
||||||
e.printStackTrace(); |
|
||||||
return null; |
|
||||||
} finally { |
|
||||||
if (stream != null) { |
|
||||||
try { |
|
||||||
stream.close(); |
|
||||||
} catch (IOException e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
return sslContext.getSocketFactory(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/*** |
|
||||||
* 调用sha256算法进行哈希 |
|
||||||
* |
|
||||||
* @param message |
|
||||||
* @param tStamp |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
private String sha256_mac(String message, String tStamp) { |
|
||||||
String passWord = null; |
|
||||||
try { |
|
||||||
Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); |
|
||||||
SecretKeySpec secret_key = new SecretKeySpec(tStamp.getBytes(), "HmacSHA256"); |
|
||||||
sha256_HMAC.init(secret_key); |
|
||||||
byte[] bytes = sha256_HMAC.doFinal(message.getBytes()); |
|
||||||
passWord = byteArrayToHexString(bytes); |
|
||||||
} catch (Exception e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
return passWord; |
|
||||||
} |
|
||||||
|
|
||||||
/*** |
|
||||||
* byte数组转16进制字符串 |
|
||||||
* |
|
||||||
* @param b |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
private String byteArrayToHexString(byte[] b) { |
|
||||||
StringBuilder hs = new StringBuilder(); |
|
||||||
String stmp; |
|
||||||
for (int n = 0; b != null && n < b.length; n++) { |
|
||||||
stmp = Integer.toHexString(b[n] & 0XFF); |
|
||||||
if (stmp.length() == 1) { |
|
||||||
hs.append('0'); |
|
||||||
} |
|
||||||
hs.append(stmp); |
|
||||||
} |
|
||||||
return hs.toString().toLowerCase(); |
|
||||||
} |
|
||||||
|
|
||||||
/*** |
|
||||||
* 要求:10位数字 |
|
||||||
* |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
private String getTimeStamp() { |
|
||||||
String timeStamp = ZonedDateTime.ofInstant(Instant.now(), ZoneId.of("UTC")) |
|
||||||
.format(DateTimeFormatter.ofPattern("yyyyMMddHH")); |
|
||||||
return timeStamp; |
|
||||||
} |
|
||||||
|
|
||||||
private String getClientId() { |
|
||||||
return deviceId + "_0_0_" + getTimeStamp(); |
|
||||||
} |
|
||||||
|
|
||||||
private String getPassword() { |
|
||||||
return sha256_mac(secret, getTimeStamp()); |
|
||||||
} |
|
||||||
|
|
||||||
private void close() { |
|
||||||
try { |
|
||||||
client.disconnect(); |
|
||||||
client.close(); |
|
||||||
} catch (MqttException e) { |
|
||||||
e.printStackTrace(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
Binary file not shown.
@ -1,4 +1,4 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBeeperRecordMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBeeperRecordMapper"> |
||||||
</mapper> |
</mapper> |
@ -1,4 +1,4 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxCardMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxCardMapper"> |
||||||
</mapper> |
</mapper> |
@ -1,4 +1,4 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxLogMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxLogMapper"> |
||||||
</mapper> |
</mapper> |
||||||
|
@ -1,4 +1,4 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxRecordMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxRecordMapper"> |
||||||
</mapper> |
</mapper> |
@ -1,4 +1,4 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxRfidLogMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxRfidLogMapper"> |
||||||
</mapper> |
</mapper> |
@ -1,6 +1,6 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipTemperatureMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipTemperatureMapper"> |
||||||
|
|
||||||
|
|
||||||
</mapper> |
</mapper> |
||||||
|
@ -1,4 +1,4 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipTemperatureRecordMapper"> |
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipTemperatureRecordMapper"> |
||||||
</mapper> |
</mapper> |
Loading…
Reference in new issue