99 changed files with 175 additions and 1709 deletions
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.constant; |
||||
package com.cloud.kicc.commonbiz.api.constant; |
||||
|
||||
/** |
||||
* @Author: TangSheng |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.dto; |
||||
package com.cloud.kicc.commonbiz.api.dto; |
||||
|
||||
import lombok.Data; |
||||
|
@ -1,4 +1,4 @@
@@ -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.TableId; |
@ -1,4 +1,4 @@
@@ -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.TableName; |
@ -1,4 +1,4 @@
@@ -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.TableName; |
@ -1,4 +1,4 @@
@@ -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.TableName; |
@ -1,11 +1,10 @@
@@ -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.TableName; |
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 标本箱操作记录(EquipBoxRecord)表实体类 |
@ -1,4 +1,4 @@
@@ -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.TableId; |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.entity; |
||||
package com.cloud.kicc.commonbiz.api.entity; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId; |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.entity; |
||||
package com.cloud.kicc.commonbiz.api.entity; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId; |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
package com.cloud.kicc.commonbiz.api.enums; |
||||
|
||||
public enum BoxStatusEnum { |
||||
//设备状态 (0.未连接 1.已连接 2.已断开 3.已休眠)
|
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
package com.cloud.kicc.commonbiz.api.enums; |
||||
|
||||
public enum CmdEnum { |
||||
/** |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
package com.cloud.kicc.commonbiz.api.enums; |
||||
|
||||
public enum CmdStatusEnum { |
||||
//指令响应状态(0.未响应 1.成功 2.失败)
|
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
package com.cloud.kicc.commonbiz.api.enums; |
||||
|
||||
public enum WarnStatusEnum { |
||||
//报警状态(0. 正常 1.低温报警 2.高温报警 3.倾斜报警 4.锁未关报警)
|
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.vo; |
||||
package com.cloud.kicc.commonbiz.api.vo; |
||||
|
||||
|
||||
import lombok.Data; |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
package com.cloud.kicc.equip.api.vo; |
||||
package com.cloud.kicc.commonbiz.api.vo; |
||||
|
||||
|
||||
import lombok.Data; |
@ -1,30 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperRecordService; |
||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperService; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
||||
import com.cloud.kicc.commonbiz.service.EquipBeeperRecordService; |
||||
import com.cloud.kicc.commonbiz.service.EquipBeeperService; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBeeper; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
@ -1,13 +1,13 @@
@@ -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.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.commonbiz.service.box.BoxDownCmdService; |
||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxLogService; |
||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxRecordService; |
||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxService; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
||||
import com.cloud.kicc.commonbiz.service.BoxDownCmdService; |
||||
import com.cloud.kicc.commonbiz.service.EquipBoxLogService; |
||||
import com.cloud.kicc.commonbiz.service.EquipBoxRecordService; |
||||
import com.cloud.kicc.commonbiz.service.EquipBoxService; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBox; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
@ -1,11 +1,11 @@
@@ -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.constant.AppConstants; |
||||
import com.cloud.kicc.commonbiz.service.box.BoxDownCmdService; |
||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxUserService; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
||||
import com.cloud.kicc.commonbiz.service.BoxDownCmdService; |
||||
import com.cloud.kicc.commonbiz.service.EquipBoxUserService; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
@ -1,12 +1,12 @@
@@ -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.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.common.core.constant.AppConstants; |
||||
import com.cloud.kicc.commonbiz.service.EquipSpecimenService; |
||||
import com.cloud.kicc.equip.api.entity.EquipSpecimen; |
||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenUsageVo; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipSpecimen; |
||||
import com.cloud.kicc.commonbiz.api.vo.EquipSpecimenUsageVo; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
@ -1,9 +1,9 @@
@@ -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.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.Param; |
||||
|
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxCard; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxLog; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
@ -1,9 +1,9 @@
@@ -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.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.Param; |
||||
|
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRecord; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRfidLog; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
import java.util.List; |
@ -1,10 +1,10 @@
@@ -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.metadata.IPage; |
||||
import com.cloud.kicc.equip.api.entity.EquipSpecimen; |
||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenListVo; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipSpecimen; |
||||
import com.cloud.kicc.commonbiz.api.vo.EquipSpecimenListVo; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.EquipTemperature; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipTemperature; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
@Mapper |
@ -1,8 +1,8 @@
@@ -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.cloud.kicc.equip.api.entity.EquipTemperatureRecord; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipTemperatureRecord; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
|
@ -1,7 +1,7 @@
@@ -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 @@
@@ -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.equip.api.vo.box.EquipBoxConfigVo; |
||||
import com.cloud.kicc.commonbiz.api.dto.UpCmdParam; |
||||
import com.cloud.kicc.commonbiz.api.vo.EquipBoxConfigVo; |
||||
|
||||
/** |
||||
* 标本箱上行指令服务接口 |
@ -1,6 +1,6 @@
@@ -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 @@
@@ -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.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||
|
||||
import java.util.List; |
||||
|
@ -1,11 +1,11 @@
@@ -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.extension.plugins.pagination.Page; |
||||
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; |
||||
|
@ -1,9 +1,9 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
||||
import com.cloud.kicc.equip.api.vo.box.EquipBoxCardVo; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxCard; |
||||
import com.cloud.kicc.commonbiz.api.vo.EquipBoxCardVo; |
||||
|
||||
import java.util.List; |
||||
|
@ -1,7 +1,7 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxLog; |
||||
|
||||
import java.util.List; |
||||
|
@ -1,9 +1,9 @@
@@ -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.cloud.kicc.equip.api.dto.box.UpCmdParam; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
||||
import com.cloud.kicc.commonbiz.api.dto.UpCmdParam; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRecord; |
||||
import com.cloud.kicc.commonbiz.api.vo.DownCmdVo; |
||||
|
||||
import java.util.List; |
||||
|
@ -1,7 +1,7 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRfidLog; |
||||
|
||||
/** |
||||
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表服务接口 |
@ -1,9 +1,9 @@
@@ -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.extension.plugins.pagination.Page; |
||||
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 @@
@@ -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.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser; |
||||
|
||||
import java.util.List; |
||||
|
@ -1,11 +1,11 @@
@@ -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.extension.service.impl.ServiceImpl; |
||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipBeeperRecordMapper; |
||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperRecordService; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
||||
import com.cloud.kicc.commonbiz.mapper.EquipBeeperRecordMapper; |
||||
import com.cloud.kicc.commonbiz.service.EquipBeeperRecordService; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
@ -1,15 +1,15 @@
@@ -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.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.EquipBeeperMapper; |
||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperRecordService; |
||||
import com.cloud.kicc.commonbiz.service.beeper.EquipBeeperService; |
||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
||||
import com.cloud.kicc.commonbiz.mapper.EquipBeeperMapper; |
||||
import com.cloud.kicc.commonbiz.service.EquipBeeperRecordService; |
||||
import com.cloud.kicc.commonbiz.service.EquipBeeperService; |
||||
import com.cloud.kicc.commonbiz.api.constant.EquipConstants; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBeeper; |
||||
import com.cloud.kicc.commonbiz.api.entity.EquipBeeperRecord; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
@ -1,224 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -1,4 +1,4 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBeeperRecordMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBeeperRecordMapper"> |
||||
</mapper> |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxCardMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxCardMapper"> |
||||
</mapper> |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxLogMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxLogMapper"> |
||||
</mapper> |
||||
|
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxRecordMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxRecordMapper"> |
||||
</mapper> |
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipBoxRfidLogMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipBoxRfidLogMapper"> |
||||
</mapper> |
@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipTemperatureMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipTemperatureMapper"> |
||||
|
||||
|
||||
</mapper> |
||||
|
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
||||
<?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" > |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.equip.EquipTemperatureRecordMapper"> |
||||
<mapper namespace="com.cloud.kicc.commonbiz.mapper.EquipTemperatureRecordMapper"> |
||||
</mapper> |
Loading…
Reference in new issue