119 changed files with 4651 additions and 862 deletions
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
package com.cloud.kicc.equip.api.constant; |
||||
|
||||
/** |
||||
* @Author: TangSheng |
||||
* @Description: 设备常量 |
||||
* @Since 1.0 |
||||
* @Date Created in 15:09 2022/4/18 |
||||
*/ |
||||
public interface EquipConstants { |
||||
|
||||
int NO_CODE = 0; |
||||
int YES_CODE = 1; |
||||
int SECOND_CODE = 2; |
||||
|
||||
/** |
||||
* 中集智冷平台 |
||||
*/ |
||||
/**温控设备请求地址*/ |
||||
String TEMP_URL = "http://ccsc58.com/json/01_00_tb_history_data.php"; |
||||
/**访问前缀*/ |
||||
String ADMIN_PERMIT = "zjly8888"; |
||||
/**固定值*/ |
||||
String USER_P = "A"; |
||||
/**默认账号密码*/ |
||||
String ADMIN_USER = "18569407322"; |
||||
String ADMIN_PWD = "123yjf1992"; |
||||
/**前缀*/ |
||||
String TEMP_NAME_PREFIX = "KLTEMP-"; |
||||
int PERIOD = 5; |
||||
int SUCCESS_CODE = 10000; |
||||
|
||||
String OSS_URL = "https://image.kanglailab.com/"; |
||||
String OSS_UPLOAD_REPORT_PATH = "upload/report/"; // 第三方上传报告结果路径
|
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
package com.cloud.kicc.equip.api.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
@Data |
||||
public class EquipTemperatureRecordParam implements Serializable { |
||||
|
||||
private String etId; |
||||
private String beginTime; |
||||
private String endTime; |
||||
private String status; |
||||
private String reportId; |
||||
private String syUserId; |
||||
|
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
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; |
||||
|
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
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; |
||||
|
||||
} |
@ -0,0 +1,75 @@
@@ -0,0 +1,75 @@
|
||||
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; |
||||
|
||||
} |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
package com.cloud.kicc.equip.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 java.io.Serializable; |
||||
|
||||
@Data |
||||
@TableName("equip_specimen") |
||||
public class EquipSpecimen extends CommonEntity implements Serializable { |
||||
|
||||
/**ID*/ |
||||
@TableId |
||||
private String id; |
||||
/**设备编号*/ |
||||
private String boxCode; |
||||
/**设备名称*/ |
||||
private String boxName; |
||||
/**设备类型*/ |
||||
private String boxType; |
||||
/**温控设备id*/ |
||||
private String etId; |
||||
/**收样员用户id*/ |
||||
private String syUserId; |
||||
/**状态 0:启用,1:禁用*/ |
||||
private String status; |
||||
|
||||
|
||||
} |
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
package com.cloud.kicc.equip.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 java.io.Serializable; |
||||
|
||||
@Data |
||||
@TableName("equip_temperature") |
||||
public class EquipTemperature extends CommonEntity implements Serializable { |
||||
|
||||
/**ID*/ |
||||
@TableId |
||||
private String id; |
||||
/**设备编号*/ |
||||
private String equipCode; |
||||
/**设备名称*/ |
||||
private String equipName; |
||||
/**设备登录账号*/ |
||||
private String adminUser; |
||||
/**设备登录密码*/ |
||||
private String adminPwd; |
||||
/**电量最低警报值*/ |
||||
private String powerMinWarn; |
||||
/**温度最低警报值*/ |
||||
private Integer temperatureMinWarn; |
||||
/**温度最高警报值*/ |
||||
private Integer temperatureMaxWarn; |
||||
/**设备温度*/ |
||||
private String equipTemperature; |
||||
/**设备湿度*/ |
||||
private String equipHumidity; |
||||
/**经度*/ |
||||
private String longitude; |
||||
/**纬度*/ |
||||
private String latitude; |
||||
/**设备位置*/ |
||||
private String equipAddr; |
||||
/**剩余电量*/ |
||||
private String equipPower; |
||||
/**设备状态*/ |
||||
private String equipStatus; |
||||
/**设备类型*/ |
||||
private String equipType; |
||||
/**设备最新上报时间*/ |
||||
private String latestTime; |
||||
/**0:启用,1禁用*/ |
||||
private String status; |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
package com.cloud.kicc.equip.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 java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
@Data |
||||
@TableName("equip_temperature_record") |
||||
public class EquipTemperatureRecord extends CommonEntity implements Serializable { |
||||
|
||||
/**id*/ |
||||
@TableId |
||||
private String id; |
||||
/**et_id 温控设备id*/ |
||||
private String etId; |
||||
/**电量最低警报值*/ |
||||
private String powerMinWarn; |
||||
/**温度最低警报值*/ |
||||
private Integer temperatureMinWarn; |
||||
/**温度最高警报值*/ |
||||
private Integer temperatureMaxWarn; |
||||
/**设备温度*/ |
||||
private String equipTemperature; |
||||
/**设备湿度*/ |
||||
private String equipHumidity; |
||||
/**经度*/ |
||||
private String longitude; |
||||
/**纬度*/ |
||||
private String latitude; |
||||
/**设备位置*/ |
||||
private String equipAddr; |
||||
/**剩余电量*/ |
||||
private String equipPower; |
||||
/**设备状态*/ |
||||
private String equipStatus; |
||||
/**设备最新上报时间*/ |
||||
private String latestTime; |
||||
/**删除标记(0.启用 1.禁用*/ |
||||
private String status; |
||||
|
||||
} |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
public enum BoxStatusEnum { |
||||
//设备状态 (0.未连接 1.已连接 2.已断开 3.已休眠)
|
||||
|
||||
INIT(0,"未连接"), |
||||
|
||||
TELNET(1,"已连接"), |
||||
|
||||
CLOSE(2,"已断开"), |
||||
|
||||
SLEEP(3,"已休眠"), |
||||
|
||||
OTHER(100,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private BoxStatusEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static BoxStatusEnum getEnumByKey(Integer key){ |
||||
for(BoxStatusEnum temp: BoxStatusEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
public enum CmdEnum { |
||||
/** |
||||
* 上行指令 1.连接 2.获取设备配置 3.心跳上报数据 4.开锁 5.关锁 6.元件异常 7.上报变动RFID 8.上报所有RFID |
||||
* |
||||
* 下行指令 100.重置配置 105.语音播报 110.新增指纹 111.删除指纹 112.获取所有指纹 113.删除所有指纹 114.禁用指纹 115.启用指纹 |
||||
* 120.开启数据上报 121.关闭数据上报 122.开启制冷 123.关闭制冷 124.开锁 |
||||
*/ |
||||
|
||||
TELNET_U(1,"连接"), |
||||
|
||||
CONFIG_U(2,"获取设备配置信息"), |
||||
|
||||
DATA_U(3,"心跳上报数据"), |
||||
|
||||
OPEN_U(4,"开锁"), |
||||
|
||||
CLOSE_U(5,"关锁"), |
||||
|
||||
ERROR_U(6,"元件异常"), |
||||
|
||||
RFID_CHANGE_U(7,"上报变动蓝牙"), |
||||
|
||||
RFID_ALL_U(8,"上报所有蓝牙"), |
||||
|
||||
|
||||
RESET_D(100,"更新配置信息"), |
||||
|
||||
VOICE_D(105,"语音播报"), |
||||
|
||||
ADD_FID_D(110,"新增指纹"), |
||||
|
||||
DEL_FID_D(111,"删除指纹"), |
||||
|
||||
ALL_FID_D(112,"获取所有指纹"), |
||||
|
||||
DEL_ALL_FID_D(113,"删除所有指纹"), |
||||
|
||||
DISABLE_FID_D(114,"禁用指纹"), |
||||
|
||||
ENABLE_FID_D(115,"启用指纹"), |
||||
|
||||
OPEN_DATA_D(120,"开启数据上报"), |
||||
|
||||
CLOSE_DATA_D(121,"关闭数据上报"), |
||||
|
||||
OPEN_COLD_D(122,"开启制冷"), |
||||
|
||||
CLOSE_COLD_D(123,"关闭制冷"), |
||||
|
||||
OPEN_D(124,"开锁"), |
||||
|
||||
|
||||
OTHER(1000,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private CmdEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static CmdEnum getEnumByKey(Integer key){ |
||||
for(CmdEnum temp: CmdEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
public enum CmdStatusEnum { |
||||
//指令响应状态(0.未响应 1.成功 2.失败)
|
||||
|
||||
NOT(0,"未响应"), |
||||
|
||||
SUCCESS(1,"成功"), |
||||
|
||||
FAIL(2,"失败"), |
||||
|
||||
OTHER(100,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private CmdStatusEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static CmdStatusEnum getEnumByKey(Integer key){ |
||||
for(CmdStatusEnum temp: CmdStatusEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
public enum WarnStatusEnum { |
||||
//报警状态(0. 正常 1.低温报警 2.高温报警 3.倾斜报警 4.锁未关报警)
|
||||
|
||||
NORMAL(0,"正常"), |
||||
|
||||
TEMP_MIN(1,"低温报警"), |
||||
|
||||
TEMP_MAX(2,"高温报警"), |
||||
|
||||
TILT(3,"倾斜报警"), |
||||
|
||||
CLOSE(4,"锁未关报警"), |
||||
|
||||
OTHER(100,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private WarnStatusEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static WarnStatusEnum getEnumByKey(Integer key){ |
||||
for(WarnStatusEnum temp: WarnStatusEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
package com.cloud.kicc.equip.api.vo; |
||||
|
||||
|
||||
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.已休眠)
|
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.cloud.kicc.equip.api.vo; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 物联网卡管理(EquipBoxCard)表实体类 |
||||
* |
||||
* @author Mak |
||||
* @since 2022-02-13 12:06:29 |
||||
*/ |
||||
@Data |
||||
public class EquipBoxCardVo implements Serializable { |
||||
|
||||
private String id; |
||||
|
||||
private String iccid; |
||||
|
||||
private String card; |
||||
|
||||
|
||||
} |
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
package com.cloud.kicc.equip.api.vo; |
||||
|
||||
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; |
||||
|
||||
} |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
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,35 +0,0 @@
@@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<parent> |
||||
<artifactId>kicc-platform-api</artifactId> |
||||
<groupId>com.cloud</groupId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
|
||||
<artifactId>kicc-equip-api</artifactId> |
||||
|
||||
<packaging>jar</packaging> |
||||
<description>kicc的iot接口api模块</description> |
||||
|
||||
<dependencies> |
||||
<!--断路器依赖--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-feign</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
<!--excel 导入导出--> |
||||
<dependency> |
||||
<groupId>com.pig4cloud.excel</groupId> |
||||
<artifactId>excel-spring-boot-starter</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
</project> |
@ -1,13 +0,0 @@
@@ -1,13 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.constant; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description:设备常量 |
||||
* @Since 1.0 |
||||
* @Date Created in 14:50 2022/6/16 |
||||
*/ |
||||
public interface EquipConstants { |
||||
int NO_CODE = 0; |
||||
int YES_CODE = 1; |
||||
int SECOND_CODE = 2; |
||||
} |
@ -1,26 +0,0 @@
@@ -1,26 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.dto.box; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description:下行指令返回值 |
||||
* @Since 1.0 |
||||
* @Date Created in 14:51 2022/6/16 |
||||
*/ |
||||
@Data |
||||
public class DownCmdParam implements Serializable { |
||||
// 当前指令操作序号
|
||||
private String ts; |
||||
|
||||
// 下行指令
|
||||
private Integer cmd; |
||||
|
||||
// 指令执行的结果状态(0.成功 1.失败)
|
||||
private Integer status; |
||||
|
||||
// 指纹ID / 指纹IDs,多个指纹以英文逗号隔开
|
||||
private String data; |
||||
} |
@ -1,20 +0,0 @@
@@ -1,20 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.dto.box; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description:变动rfids参数 |
||||
* @Since 1.0 |
||||
* @Date Created in 14:52 2022/6/16 |
||||
*/ |
||||
@Data |
||||
public class RfidsParam implements Serializable { |
||||
// 上报的RFID标签
|
||||
private String rfid; |
||||
|
||||
// 变动类型(1.进 2.出)
|
||||
private Integer type; |
||||
} |
@ -1,72 +0,0 @@
@@ -1,72 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.dto.box; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description:上行指令参数 |
||||
* @Since 1.0 |
||||
* @Date Created in 14:53 2022/6/16 |
||||
*/ |
||||
@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,51 +0,0 @@
@@ -1,51 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description: |
||||
* @Since 1.0 |
||||
* @Date Created in 15:25 2022/6/16 |
||||
*/ |
||||
public enum BoxStatusEnum { |
||||
//设备状态 (0.未连接 1.已连接 2.已断开 3.已休眠)
|
||||
|
||||
INIT(0,"未连接"), |
||||
|
||||
TELNET(1,"已连接"), |
||||
|
||||
CLOSE(2,"已断开"), |
||||
|
||||
SLEEP(3,"已休眠"), |
||||
|
||||
OTHER(100,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private BoxStatusEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static BoxStatusEnum getEnumByKey(Integer key){ |
||||
for(BoxStatusEnum temp: BoxStatusEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
} |
@ -1,91 +0,0 @@
@@ -1,91 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description: |
||||
* @Since 1.0 |
||||
* @Date Created in 15:26 2022/6/16 |
||||
*/ |
||||
/** |
||||
* 上行指令 1.连接 2.获取设备配置 3.心跳上报数据 4.开锁 5.关锁 6.元件异常 7.上报变动RFID 8.上报所有RFID |
||||
* |
||||
* 下行指令 100.重置配置 105.语音播报 110.新增指纹 111.删除指纹 112.获取所有指纹 113.删除所有指纹 114.禁用指纹 115.启用指纹 |
||||
* 120.开启数据上报 121.关闭数据上报 122.开启制冷 123.关闭制冷 124.开锁 |
||||
*/ |
||||
public enum CmdEnum { |
||||
TELNET_U(1,"连接"), |
||||
|
||||
CONFIG_U(2,"获取设备配置信息"), |
||||
|
||||
DATA_U(3,"心跳上报数据"), |
||||
|
||||
OPEN_U(4,"开锁"), |
||||
|
||||
CLOSE_U(5,"关锁"), |
||||
|
||||
ERROR_U(6,"元件异常"), |
||||
|
||||
RFID_CHANGE_U(7,"上报变动蓝牙"), |
||||
|
||||
RFID_ALL_U(8,"上报所有蓝牙"), |
||||
|
||||
|
||||
RESET_D(100,"更新配置信息"), |
||||
|
||||
VOICE_D(105,"语音播报"), |
||||
|
||||
ADD_FID_D(110,"新增指纹"), |
||||
|
||||
DEL_FID_D(111,"删除指纹"), |
||||
|
||||
ALL_FID_D(112,"获取所有指纹"), |
||||
|
||||
DEL_ALL_FID_D(113,"删除所有指纹"), |
||||
|
||||
DISABLE_FID_D(114,"禁用指纹"), |
||||
|
||||
ENABLE_FID_D(115,"启用指纹"), |
||||
|
||||
OPEN_DATA_D(120,"开启数据上报"), |
||||
|
||||
CLOSE_DATA_D(121,"关闭数据上报"), |
||||
|
||||
OPEN_COLD_D(122,"开启制冷"), |
||||
|
||||
CLOSE_COLD_D(123,"关闭制冷"), |
||||
|
||||
OPEN_D(124,"开锁"), |
||||
|
||||
|
||||
OTHER(1000,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private CmdEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static CmdEnum getEnumByKey(Integer key){ |
||||
for(CmdEnum temp: CmdEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
} |
@ -1,50 +0,0 @@
@@ -1,50 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description: |
||||
* @Since 1.0 |
||||
* @Date Created in 15:27 2022/6/16 |
||||
*/ |
||||
public enum CmdStatusEnum { |
||||
//指令响应状态(0.未响应 1.成功 2.失败)
|
||||
|
||||
NOT(0,"未响应"), |
||||
|
||||
SUCCESS(1,"成功"), |
||||
|
||||
FAIL(2,"失败"), |
||||
|
||||
OTHER(100,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private CmdStatusEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static CmdStatusEnum getEnumByKey(Integer key){ |
||||
for(CmdStatusEnum temp: CmdStatusEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -1,54 +0,0 @@
@@ -1,54 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.enums; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description: |
||||
* @Since 1.0 |
||||
* @Date Created in 15:27 2022/6/16 |
||||
*/ |
||||
public enum WarnStatusEnum { |
||||
//报警状态(0. 正常 1.低温报警 2.高温报警 3.倾斜报警 4.锁未关报警)
|
||||
|
||||
NORMAL(0,"正常"), |
||||
|
||||
TEMP_MIN(1,"低温报警"), |
||||
|
||||
TEMP_MAX(2,"高温报警"), |
||||
|
||||
TILT(3,"倾斜报警"), |
||||
|
||||
CLOSE(4,"锁未关报警"), |
||||
|
||||
OTHER(100,""); |
||||
private int code; |
||||
private String value; |
||||
|
||||
private WarnStatusEnum(int code, String value) { |
||||
this.setCode(code); |
||||
this.setValue(value); |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
public String getValue() { |
||||
return value; |
||||
} |
||||
public void setValue(String value) { |
||||
this.value = value; |
||||
} |
||||
|
||||
//根据key获取枚举
|
||||
public static WarnStatusEnum getEnumByKey(Integer key){ |
||||
for(WarnStatusEnum temp: WarnStatusEnum.values()){ |
||||
if(temp.getCode() == key.intValue()){ |
||||
return temp; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
} |
@ -1,36 +0,0 @@
@@ -1,36 +0,0 @@
|
||||
package com.cloud.kicc.equip.api.vo.box; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* @Author: lizhi |
||||
* @Description: |
||||
* @Since 1.0 |
||||
* @Date Created in 15:28 2022/6/16 |
||||
*/ |
||||
@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.已休眠)
|
||||
} |
@ -0,0 +1,173 @@
@@ -0,0 +1,173 @@
|
||||
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); |
||||
} |
||||
}; |
||||
|
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
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) { |
||||
|
||||
} |
||||
} |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
package com.cloud.kicc.commonbiz.config; |
||||
|
||||
import lombok.Data; |
||||
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
/** |
||||
* @Author: TangSheng |
||||
* @Description: |
||||
* @Since 1.0 |
||||
* @Date Created in 14:59 2022/4/18 |
||||
*/ |
||||
@Data |
||||
@Configuration |
||||
@ConfigurationProperties("kicc") |
||||
public class KiccProperties { |
||||
|
||||
/**百度地图appKey*/ |
||||
private String mapAk; |
||||
|
||||
} |
@ -0,0 +1,100 @@
@@ -0,0 +1,100 @@
|
||||
package com.cloud.kicc.commonbiz.controller.equip; |
||||
|
||||
|
||||
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 lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.Arrays; |
||||
|
||||
/** |
||||
* 呼叫器设备信息(EquipBeeper)表控制层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:18:38 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/equip/beeper") |
||||
public class EquipBeeperController { |
||||
|
||||
private final EquipBeeperService equipBeeperService; |
||||
|
||||
|
||||
private final EquipBeeperRecordService equipBeeperRecordService; |
||||
|
||||
/** |
||||
* 获取呼叫器信息 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
@GetMapping(value = "/getById") |
||||
public R getEquipBeeperInfo(@RequestParam("id") String id) { |
||||
return R.ok(equipBeeperService.getData(id)); |
||||
} |
||||
|
||||
/** |
||||
* 新增呼叫器信息 |
||||
* @param param |
||||
* @return |
||||
* @throws Exception |
||||
*/ |
||||
@PostMapping(value = "/add") |
||||
public R add(@RequestBody EquipBeeper param) { |
||||
boolean save = equipBeeperService.save(param); |
||||
// 自定义code
|
||||
param.setBeeperCode("H"+ param.getId()); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* 编辑呼叫器信息 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
@PutMapping(value = "/update") |
||||
public R update(@RequestBody EquipBeeper param) { |
||||
equipBeeperService.updateById(param); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* 获取呼叫器列表 |
||||
* @return |
||||
* @throws Exception |
||||
*/ |
||||
@GetMapping(value = "/list") |
||||
public R list(Page page, EquipBeeper equipBeeper) { |
||||
return R.ok(equipBeeperService.pageData(page, equipBeeper)); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 删除呼叫器 |
||||
* @Date: 2021/9/27 |
||||
* @Modified by: |
||||
*/ |
||||
@DeleteMapping(value = "/remove/{id:[\\w,]+}") |
||||
public R remove(@PathVariable("id") String[] id) { |
||||
this.equipBeeperService.removeByIds(Arrays.asList(id)); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询呼叫器呼叫记录列表 |
||||
* @Date: 2021/9/26 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping(value = "/record/list") |
||||
public R listEquipBeeperRecord(@RequestParam("beeperCode") String beeperCode) { |
||||
return R.ok(equipBeeperRecordService.listBeeperRecord(beeperCode)); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,105 @@
@@ -0,0 +1,105 @@
|
||||
package com.cloud.kicc.commonbiz.controller.equip; |
||||
|
||||
|
||||
|
||||
import cn.hutool.core.util.StrUtil; |
||||
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.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.commonbiz.service.box.EquipBoxCardService; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.Arrays; |
||||
|
||||
/** |
||||
* 物联网卡管理(EquipBoxCard)表控制层 |
||||
* |
||||
* @author Mak |
||||
* @since 2022-02-13 12:06:30 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/equip/boxcard") |
||||
public class EquipBoxCardController { |
||||
|
||||
|
||||
private final EquipBoxCardService equipBoxCardService; |
||||
|
||||
/** |
||||
* 分页查询所有数据 |
||||
* @return 所有数据 |
||||
*/ |
||||
@GetMapping("/page") |
||||
public R page(Page page, EquipBoxCard equipBoxCard) { |
||||
LambdaQueryWrapper<EquipBoxCard> queryWrapper = new LambdaQueryWrapper<>(); |
||||
queryWrapper.eq(StrUtil.isNotBlank(equipBoxCard.getStatus()),EquipBoxCard::getCard, equipBoxCard.getStatus()); |
||||
queryWrapper.like(StrUtil.isNotBlank(equipBoxCard.getIccid()),EquipBoxCard::getIccid, equipBoxCard.getIccid()); |
||||
queryWrapper.like(StrUtil.isNotBlank(equipBoxCard.getCard()),EquipBoxCard::getCard, equipBoxCard.getCard()); |
||||
|
||||
IPage<EquipBoxCard> iPage = this.equipBoxCardService.getBaseMapper().selectPage(page, queryWrapper); |
||||
|
||||
return R.ok(iPage.getRecords(), iPage.getSize()); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 获取卡列表,用于下拉选择 |
||||
* @Date: 2022/2/13 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping("/listForSelect") |
||||
public R listCardForSelect(@RequestParam("isUsed") Integer isUsed) throws Exception{ |
||||
return R.ok(equipBoxCardService.listCardForSelect(isUsed)); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 通过主键查询单条数据 |
||||
* |
||||
* @param id 主键 |
||||
* @return 单条数据 |
||||
*/ |
||||
@GetMapping("/getById") |
||||
public R getById(@RequestParam("id") String id) { |
||||
return R.ok(this.equipBoxCardService.getById(id)); |
||||
} |
||||
|
||||
/** |
||||
* 新增数据 |
||||
* @param param 实体对象 |
||||
* @return 新增结果 |
||||
*/ |
||||
@PostMapping("/add") |
||||
public R add(@RequestBody EquipBoxCard param) { |
||||
this.equipBoxCardService.save(param); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* 修改数据 |
||||
* |
||||
* @param param 实体对象 |
||||
* @return 修改结果 |
||||
*/ |
||||
@PutMapping("/update") |
||||
public R update(@RequestBody EquipBoxCard param) { |
||||
return R.ok(this.equipBoxCardService.updateById(param)); |
||||
} |
||||
|
||||
/** |
||||
* 启用、禁用、删除数据 |
||||
* |
||||
* @param id 主键 |
||||
* @return 删除结果 |
||||
*/ |
||||
@DeleteMapping("/remove/{id:[\\w,]+}") |
||||
public R remove(@PathVariable("id") String[] id) { |
||||
this.equipBoxCardService.removeByIds(Arrays.asList(id)); |
||||
return R.ok(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,130 @@
@@ -0,0 +1,130 @@
|
||||
package com.cloud.kicc.commonbiz.controller.equip; |
||||
|
||||
|
||||
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 lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.Arrays; |
||||
|
||||
/** |
||||
* 标本箱设备信息(EquipBox)表控制层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/equip/box") |
||||
public class EquipBoxController { |
||||
|
||||
|
||||
private final EquipBoxService equipBoxService; |
||||
|
||||
private final EquipBoxLogService equipBoxLogService; |
||||
|
||||
private final EquipBoxRecordService equipBoxRecordService; |
||||
|
||||
private final BoxDownCmdService boxDownCmdService; |
||||
|
||||
|
||||
/** |
||||
* 获取标本箱信息 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
@GetMapping("/getById") |
||||
public R getById(@RequestParam("id") String id) { |
||||
return R.ok(equipBoxService.getData(id)); |
||||
} |
||||
|
||||
/** |
||||
* 新增标本箱信息 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
@PostMapping("/add") |
||||
public R add(@RequestBody EquipBox param) { |
||||
return R.ok(equipBoxService.addData(param)); |
||||
} |
||||
|
||||
/** |
||||
* 编辑标本箱信息 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
@PutMapping |
||||
public R update(@RequestBody EquipBox param) { |
||||
return R.ok(equipBoxService.updateById(param)); |
||||
} |
||||
|
||||
/** |
||||
* 获取标本箱列表 |
||||
* @param page |
||||
* @param equipBox |
||||
* @return |
||||
*/ |
||||
@GetMapping(value = "/list") |
||||
public R listEquipBox(Page page, EquipBox equipBox) { |
||||
return R.ok(equipBoxService.pageData(page, equipBox)); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 删除标本箱 |
||||
* @Date: 2021/9/27 |
||||
* @Modified by: |
||||
*/ |
||||
@DeleteMapping("/remove/{id:[\\w,]+}") |
||||
public R remove(@PathVariable String[] id) { |
||||
this.equipBoxService.removeByIds(Arrays.asList(id)); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询标本箱心跳日志列表 |
||||
* @Date: 2021/9/26 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping("/log/list") |
||||
public R listEquipBoxLogs(@RequestParam("boxId") Integer boxId) { |
||||
return R.ok(equipBoxLogService.listBoxLogs(boxId)); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询标本箱操作日志列表 |
||||
* @Date: 2021/9/26 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping(value = "/record/list") |
||||
public R listEquipBoxRecords(@RequestParam("boxId") String boxId) { |
||||
return R.ok(equipBoxRecordService.listBoxRecords(boxId)); |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 统一下发指令接口 |
||||
* @Date: 2021/9/24 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping(value = "/cmd") |
||||
public R cmdToEquipBox(@RequestParam("id") String id, |
||||
@RequestParam("cmd") Integer cmd, |
||||
@RequestParam(value = "data",required = false) String data){ |
||||
boxDownCmdService.downCmdToEquipBox(id, cmd,data); |
||||
return R.ok(); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,93 @@
@@ -0,0 +1,93 @@
|
||||
package com.cloud.kicc.commonbiz.controller.equip; |
||||
|
||||
|
||||
import com.cloud.kicc.common.core.api.R; |
||||
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 lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.Arrays; |
||||
|
||||
|
||||
/** |
||||
* 标本箱设备信息(EquipBox)表控制层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/equip/box/user") |
||||
public class EquipBoxUserController { |
||||
|
||||
|
||||
private final EquipBoxUserService equipBoxUserService; |
||||
|
||||
private final BoxDownCmdService boxDownCmdService; |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 新增标本箱用户 |
||||
* @Date: 2021/9/26 |
||||
* @Modified by: |
||||
*/ |
||||
@PostMapping("/add") |
||||
public R add(@RequestBody EquipBoxUser param) { |
||||
equipBoxUserService.addData(param); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 修改标本箱用户 |
||||
* @Date: 2021/9/26 |
||||
* @Modified by: |
||||
*/ |
||||
@PutMapping("/update") |
||||
public R update(@RequestBody EquipBoxUser param) { |
||||
equipBoxUserService.updateById(param); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询标本箱用户列表 |
||||
* @Date: 2021/9/26 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping("/list") |
||||
public R listEquipBoxUser(@RequestParam("boxId") String boxId, |
||||
@RequestParam(value = "userName", required = false) String userName) { |
||||
return R.ok(equipBoxUserService.listBoxUser(boxId, userName)); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 删除标本箱用户 - 前提是已删除指纹 |
||||
* @Date: 2021/9/27 |
||||
* @Modified by: |
||||
*/ |
||||
@DeleteMapping("/remove/{id:[\\w,]+}") |
||||
public R remove(@PathVariable String[] id) { |
||||
this.equipBoxUserService.removeByIds(Arrays.asList(id)); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 下发添加指纹指令 |
||||
* @Date: 2021/9/24 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping("/changeFid") |
||||
public R changeUserFid(@RequestParam("id") String id, @RequestParam("cmd") Integer cmd) { |
||||
boxDownCmdService.changeEquipUser(id, cmd); |
||||
return R.ok(); |
||||
} |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,99 @@
@@ -0,0 +1,99 @@
|
||||
package com.cloud.kicc.commonbiz.controller.equip; |
||||
|
||||
|
||||
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 lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.Arrays; |
||||
|
||||
@RequiredArgsConstructor |
||||
@RestController |
||||
@RequestMapping("/equip/specimen") |
||||
public class EquipSpecimenController { |
||||
|
||||
|
||||
private final EquipSpecimenService equipSpecimenService; |
||||
|
||||
/** |
||||
* 新增标本箱信息 |
||||
* @param param |
||||
* @return |
||||
* @throws Exception |
||||
*/ |
||||
@PostMapping("/add") |
||||
public R add(@RequestBody EquipSpecimen param) { |
||||
return R.ok(equipSpecimenService.save(param)); |
||||
} |
||||
|
||||
/** |
||||
* 获取标本箱信息 |
||||
* @param esId |
||||
* @return |
||||
*/ |
||||
@GetMapping("/getById") |
||||
public R getEquipSpecimen(@RequestParam("esId") String esId) { |
||||
return R.ok(equipSpecimenService.getById(esId)); |
||||
} |
||||
|
||||
/** |
||||
* 获取标本箱详细信息 |
||||
* @param esId |
||||
* @return |
||||
*/ |
||||
@GetMapping("/specimenDetail") |
||||
public R getEquipSpecimenDetail(@RequestParam("esId") String esId) { |
||||
EquipSpecimenUsageVo equip = equipSpecimenService.getDetailInfo(esId); |
||||
return R.ok(equip); |
||||
} |
||||
|
||||
/** |
||||
* 编辑标本箱信息 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
@PutMapping("/specimen") |
||||
public R updateEquipSpecimen(@RequestBody EquipSpecimen param) { |
||||
return R.ok(equipSpecimenService.saveOrUpdate(param)); |
||||
} |
||||
|
||||
/** |
||||
* 获取标本箱列表 |
||||
* @param page |
||||
* @param specimen |
||||
* @return |
||||
*/ |
||||
@GetMapping("/listSpecimen") |
||||
public R listEquipSpecimen(Page page, EquipSpecimen specimen) { |
||||
return R.ok(equipSpecimenService.pageData(page, specimen)); |
||||
} |
||||
|
||||
/** |
||||
* 查询标本箱当前使用情况 |
||||
* @param syUserId |
||||
* @return |
||||
*/ |
||||
@GetMapping("/specimenUsage") |
||||
public R getEquipSpecimenUsage(@RequestParam("syUserId") String syUserId) { |
||||
EquipSpecimenUsageVo equip = equipSpecimenService.getEquipSpecimenUsage(syUserId); |
||||
return R.ok(equip); |
||||
} |
||||
|
||||
/** |
||||
* 删除 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
@DeleteMapping("/remove/{id:[\\w,]+}") |
||||
public R remove(@PathVariable String[] id) { |
||||
this.equipSpecimenService.removeByIds(Arrays.asList(id)); |
||||
return R.ok(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,126 @@
@@ -0,0 +1,126 @@
|
||||
package com.cloud.kicc.commonbiz.controller.equip; |
||||
|
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
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.EquipTemperatureRecordService; |
||||
import com.cloud.kicc.commonbiz.service.EquipTemperatureService; |
||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
||||
import com.cloud.kicc.equip.api.dto.EquipTemperatureRecordParam; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperature; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
import java.util.Arrays; |
||||
|
||||
@RequiredArgsConstructor |
||||
@RestController |
||||
@RequestMapping("/equip/temperature") |
||||
public class EquipTemperatureController { |
||||
|
||||
|
||||
private final EquipTemperatureService equipTemperatureService; |
||||
|
||||
private final EquipTemperatureRecordService equipTemperatureRecordService; |
||||
|
||||
/** |
||||
* 新增报告单信息 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
@PostMapping(value = "/add") |
||||
public R add(@Valid @RequestBody EquipTemperature param) { |
||||
if (StrUtil.isNotBlank(param.getEquipName())){ |
||||
param.setEquipName(EquipConstants.TEMP_NAME_PREFIX+param.getEquipCode()); |
||||
} |
||||
return R.ok(equipTemperatureService.save(param)); |
||||
} |
||||
|
||||
/** |
||||
* 获取报告单信息 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
@GetMapping("/getById") |
||||
public R getById(@RequestParam("etId") String id) { |
||||
return R.ok(equipTemperatureService.getById(id)); |
||||
} |
||||
|
||||
/** |
||||
* 编辑报告单信息 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
@PutMapping(value = "/update") |
||||
public R update(@RequestBody EquipTemperature param) { |
||||
if (StrUtil.isNotBlank(param.getEquipName())){ |
||||
param.setEquipName(EquipConstants.TEMP_NAME_PREFIX+param.getEquipCode()); |
||||
} |
||||
return R.ok(equipTemperatureService.saveOrUpdate(param)); |
||||
} |
||||
|
||||
/** |
||||
* 获取可选择温控设备下拉列表 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
@GetMapping("/listForSelect") |
||||
public R getEquipTempForSelect(@RequestParam(value = "id",required = false) String id) { |
||||
//List<EquipTempSelectVo> equipTemperature = equipTemperatureService.listEquipTempForSelect(esId);
|
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* 获取温控设备list |
||||
* @param page |
||||
* @param equipTemperature |
||||
* @return |
||||
* @throws Exception |
||||
*/ |
||||
@GetMapping(value = "/list") |
||||
public R listEquipTemperature(Page page, EquipTemperature equipTemperature) { |
||||
IPage<EquipTemperature> iPage = equipTemperatureService.pageData(page, equipTemperature); |
||||
return R.ok(iPage.getRecords(), iPage.getTotal()); |
||||
} |
||||
|
||||
/** |
||||
* 删除温控设备 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
@DeleteMapping("/remove/{id:[\\w,]+}") |
||||
public R remove(@PathVariable("id") String[] id){ |
||||
equipTemperatureService.removeByIds(Arrays.asList(id)); |
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询温控设备记录 |
||||
* @Date: 2021/12/6 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping("/records") |
||||
public R listEquipTemperatureRecord(Page page, EquipTemperatureRecordParam param) { |
||||
//equipTemperatureRecordService.listRecord(page, param)
|
||||
return R.ok(); |
||||
} |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 导出温控设备的数据 |
||||
* @Date: 2021/12/6 |
||||
* @Modified by: |
||||
*/ |
||||
@GetMapping(value = "/export") |
||||
public R listEquipTemperatureRecord(EquipTemperatureRecordParam param) { |
||||
//equipTemperatureRecordService.exportRecordForPfd(param);
|
||||
return R.ok(); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeper; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
/** |
||||
* 呼叫器设备信息(EquipBeeper)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:18:37 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBeeperMapper extends BaseMapper<EquipBeeper> { |
||||
|
||||
/** |
||||
* 查询数据 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
EquipBeeper selectData(@Param("id") String id); |
||||
|
||||
/** |
||||
* 查询分页树 |
||||
* @param page 分页 |
||||
* @param param 查询条件 |
||||
* @return |
||||
*/ |
||||
IPage<EquipBeeper> pageQuery(IPage<EquipBeeper> page, @Param(value = "opm") EquipBeeper param); |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* 呼叫器设备呼叫记录(EquipBeeperRecord)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:20:39 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBeeperRecordMapper extends BaseMapper<EquipBeeperRecord> { |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxCard; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* 物联网卡管理(EquipBoxCard)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2022-02-13 12:06:29 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBoxCardMapper extends BaseMapper<EquipBoxCard> { |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* 标本箱心跳日志记录(EquipBoxLog)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-17 10:25:07 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBoxLogMapper extends BaseMapper<EquipBoxLog> { |
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBox; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
/** |
||||
* 标本箱设备信息(EquipBox)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBoxMapper extends BaseMapper<EquipBox> { |
||||
|
||||
/** |
||||
* 根据标本箱id查询标本箱信息 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
EquipBox selectData(String id); |
||||
|
||||
/** |
||||
* 分页条件查询标本箱信息 |
||||
* @param page |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
IPage<EquipBox> pageQuery(IPage<EquipBox> page, @Param(value = "opm") EquipBox param); |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRecord; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* 标本箱操作记录(EquipBoxRecord)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-15 09:39:47 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBoxRecordMapper extends BaseMapper<EquipBoxRecord> { |
||||
|
||||
} |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-25 15:10:33 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBoxRfidLogMapper extends BaseMapper<EquipBoxRfidLog> { |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 标本箱指纹用户信息(EquipBoxUser)表数据库访问层 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-15 09:40:50 |
||||
*/ |
||||
@Mapper |
||||
public interface EquipBoxUserMapper extends BaseMapper<EquipBoxUser> { |
||||
|
||||
List<EquipBoxUser> listQuery(EquipBoxUser param); |
||||
|
||||
} |
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
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 org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
@Mapper |
||||
public interface EquipSpecimenMapper extends BaseMapper<EquipSpecimen> { |
||||
|
||||
/** |
||||
* 分页条件查询 |
||||
* @param page |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
IPage<EquipSpecimenListVo> pageQuery(IPage<EquipSpecimen> page, @Param(value = "opm") EquipSpecimen param); |
||||
|
||||
/** |
||||
* 根据当前登录用户id获取其标本箱的信息以及温度信息 |
||||
* @param id 用户id |
||||
* @return EquipSpecimenListVo |
||||
*/ |
||||
EquipSpecimenListVo getEquipSpecimenInfo(Integer id); |
||||
} |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperature; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
@Mapper |
||||
public interface EquipTemperatureMapper extends BaseMapper<EquipTemperature> { |
||||
|
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
package com.cloud.kicc.commonbiz.mapper.equip; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperatureRecord; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
|
||||
|
||||
@Mapper |
||||
public interface EquipTemperatureRecordMapper extends BaseMapper<EquipTemperatureRecord> { |
||||
|
||||
} |
@ -0,0 +1,62 @@
@@ -0,0 +1,62 @@
|
||||
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.EquipSpecimen; |
||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenListVo; |
||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenUsageVo; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: |
||||
* @Date: 2020/12/28 |
||||
* @Modified by: |
||||
*/ |
||||
public interface EquipSpecimenService extends IService<EquipSpecimen> { |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询收样员当前使用的标本箱情况 |
||||
* @Date: 2021/1/5 |
||||
* @Modified by: |
||||
*/ |
||||
EquipSpecimenUsageVo getEquipSpecimenUsage(String syUserId); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询当前标本箱使用情况 |
||||
* @Date: 2021/1/5 |
||||
* @Modified by: |
||||
*/ |
||||
EquipSpecimenUsageVo getDetailInfo(String esId); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 查询当前已有标本箱的收样员列表 |
||||
* @Date: 2021/1/5 |
||||
* @Modified by: |
||||
* @return |
||||
*/ |
||||
List<String> listSyUserId(); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 分页 |
||||
* @Date: 2021/1/5 |
||||
* @Modified by: |
||||
*/ |
||||
IPage<EquipSpecimenListVo> pageData(Page page, EquipSpecimen param); |
||||
|
||||
/** |
||||
* 查询当前设备箱的温控设备温度,若温度异常则插入消息 |
||||
* 若消息收样员超过十分钟没有读取消息则通知当前在线的客服 |
||||
* @param remindUserId 当前登录用户的id |
||||
* @param remindUserName 当前登录用户名 |
||||
* @param remindType 类型 |
||||
* @return RemindHourVo |
||||
*/ |
||||
//RemindHourVo equipSpecimenList(String remindUserId,String remindUserName, Integer remindType);
|
||||
} |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
package com.cloud.kicc.commonbiz.service; |
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.equip.api.dto.EquipTemperatureRecordParam; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperatureRecord; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: |
||||
* @Date: 2020/12/28 |
||||
* @Modified by: |
||||
*/ |
||||
public interface EquipTemperatureRecordService extends IService<EquipTemperatureRecord> { |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 获取可选择的温控设备下拉列表 |
||||
* @Date: 2020/12/29 |
||||
* @Modified by: |
||||
*/ |
||||
//List<EquipTemperatureRecord> listRecord(EquipTemperatureRecordParam param);
|
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 导出标本箱温控数据,生成pdf |
||||
* @Date: 2021/12/6 |
||||
* @Modified by: |
||||
*/ |
||||
//String exportRecordForPfd(EquipTemperatureRecordParam param);
|
||||
|
||||
|
||||
} |
@ -0,0 +1,49 @@
@@ -0,0 +1,49 @@
|
||||
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.EquipTemperature; |
||||
import com.cloud.kicc.equip.api.vo.EquipTempSelectVo; |
||||
|
||||
import java.util.List; |
||||
|
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: |
||||
* @Date: 2020/12/28 |
||||
* @Modified by: |
||||
*/ |
||||
public interface EquipTemperatureService extends IService<EquipTemperature> { |
||||
|
||||
|
||||
//EquipTemperature pullEquipmentDataByApi(String etId);
|
||||
|
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 定时拉取温控设备最新数据 |
||||
* @Date: 2020/12/29 |
||||
* @Modified by: |
||||
*/ |
||||
void taskToPullTemperatureEquipData(); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 获取可选择的温控设备下拉列表 |
||||
* @Date: 2020/12/29 |
||||
* @Modified by: |
||||
* @param esId |
||||
*/ |
||||
//List<EquipTempSelectVo> listEquipTempForSelect(String esId) throws Exception;
|
||||
|
||||
/** |
||||
* 分页条件查询 |
||||
* @param page |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
IPage<EquipTemperature> pageData(Page page, EquipTemperature param); |
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
package com.cloud.kicc.commonbiz.service.beeper; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.equip.api.entity.beeper.EquipBeeperRecord; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 呼叫器设备呼叫记录(EquipBeeperRecord)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:20:39 |
||||
*/ |
||||
public interface EquipBeeperRecordService extends IService<EquipBeeperRecord> { |
||||
|
||||
/** |
||||
* 查询呼叫器呼叫记录列表 |
||||
* @param beeperCode 设备编码code |
||||
* @return 记录 |
||||
*/ |
||||
List<EquipBeeperRecord> listBeeperRecord(String beeperCode); |
||||
|
||||
} |
@ -0,0 +1,60 @@
@@ -0,0 +1,60 @@
|
||||
package com.cloud.kicc.commonbiz.service.beeper; |
||||
|
||||
|
||||
|
||||
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 java.util.Map; |
||||
|
||||
/** |
||||
* 呼叫器设备信息(EquipBeeper)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:18:37 |
||||
*/ |
||||
public interface EquipBeeperService extends IService<EquipBeeper> { |
||||
|
||||
/** |
||||
* 根据设备编码查询 |
||||
* @param beeperCode |
||||
* @return |
||||
*/ |
||||
EquipBeeper getByCode(String beeperCode); |
||||
|
||||
/** |
||||
* 根据id查询 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
EquipBeeper getData(String id); |
||||
|
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 分页 |
||||
* @Date: 2021/1/5 |
||||
* @Modified by: |
||||
* @return |
||||
*/ |
||||
IPage<EquipBeeper> pageData(Page page, EquipBeeper param); |
||||
|
||||
/** |
||||
* 获取呼叫器无线 |
||||
* @param beeperCode |
||||
* @return |
||||
*/ |
||||
Map<String,String> getBeeperWifi(String beeperCode); |
||||
|
||||
/** |
||||
* 呼叫器新增呼叫记录 |
||||
* @param beeperCode |
||||
* @return |
||||
*/ |
||||
boolean beeperToCall(String beeperCode); |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
|
||||
import com.cloud.kicc.equip.api.dto.box.DownCmdParam; |
||||
|
||||
/** |
||||
* 标本箱下行指令服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
public interface BoxDownCmdService { |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 发送语音消息给标本箱 |
||||
* @Date: 2021/9/24 |
||||
* @Modified by: |
||||
*/ |
||||
boolean sendVoiceToEquipBox(String boxId, String data); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 新增、删除标本箱指纹 |
||||
* @Date: 2021/9/24 |
||||
* @Modified by: |
||||
*/ |
||||
boolean changeEquipUser(String boxUserId, Integer cmd); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 下行指令给标本箱 - 目前用于 重置标本箱配置信息/获取所有用户指纹/删除所有用户指纹/修改标本箱各种状态 |
||||
* @Date: 2021/9/24 |
||||
* @Modified by: |
||||
*/ |
||||
boolean downCmdToEquipBox(String boxId, Integer cmd, String data); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 统一处理下发指令的返回值 |
||||
* @Date: 2021/9/25 |
||||
* @Modified by: |
||||
*/ |
||||
boolean handleDownCmdResult(DownCmdParam downParam); |
||||
|
||||
|
||||
} |
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
import com.cloud.kicc.equip.api.dto.box.UpCmdParam; |
||||
import com.cloud.kicc.equip.api.vo.box.EquipBoxConfigVo; |
||||
|
||||
/** |
||||
* 标本箱上行指令服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
public interface BoxUpCmdService { |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 开启socket连接 |
||||
* @Date: 2021/9/15 |
||||
* @Modified by: |
||||
*/ |
||||
String beginTelnet(String iccid); |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 获取标本箱配置信息 |
||||
* @Date: 2021/9/15 |
||||
* @Modified by: |
||||
*/ |
||||
EquipBoxConfigVo getBoxConfig(String boxCode) throws Exception; |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 心跳上报标本箱数据 |
||||
* @Date: 2021/9/16 |
||||
* @Modified by: |
||||
*/ |
||||
boolean beatBoxInfo(UpCmdParam param) throws Exception; |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 修改标本箱状态 |
||||
* @Date: 2021/9/17 |
||||
* @Modified by: |
||||
*/ |
||||
boolean updateBoxState(UpCmdParam param) throws Exception; |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 新增标本箱rfid上报记录 |
||||
* @Date: 2021/9/17 |
||||
* @Modified by: |
||||
*/ |
||||
boolean addBoxRfidLog(UpCmdParam param, Integer rfidType) throws Exception; |
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
import com.cloud.kicc.equip.api.vo.box.DownCmdVo; |
||||
|
||||
/** |
||||
* 标本箱下行指令服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
public interface DownCmdService { |
||||
|
||||
/** |
||||
* @Author: Mak |
||||
* @Description: 下行指令给标本箱 |
||||
* @Date: 2021/9/24 |
||||
* @Modified by: |
||||
*/ |
||||
String downCmdToBox(String boxCode, DownCmdVo vo); |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
|
||||
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 java.util.List; |
||||
|
||||
/** |
||||
* 物联网卡管理(EquipBoxCard)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2022-02-13 12:06:30 |
||||
*/ |
||||
public interface EquipBoxCardService extends IService<EquipBoxCard> { |
||||
|
||||
|
||||
List<EquipBoxCardVo> listCardForSelect(Integer isUsed) throws Exception; |
||||
|
||||
EquipBoxCard getByIccid(String iccid); |
||||
} |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxLog; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 标本箱心跳日志记录(EquipBoxLog)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-17 10:25:07 |
||||
*/ |
||||
public interface EquipBoxLogService extends IService<EquipBoxLog> { |
||||
|
||||
List<EquipBoxLog> listBoxLogs(Integer boxId); |
||||
|
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
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 java.util.List; |
||||
|
||||
/** |
||||
* 标本箱操作记录(EquipBoxRecord)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-15 09:39:47 |
||||
*/ |
||||
public interface EquipBoxRecordService extends IService<EquipBoxRecord> { |
||||
|
||||
boolean addData(UpCmdParam param, boolean rtn); |
||||
|
||||
boolean addData(String boxId, DownCmdVo vo, String relationId); |
||||
|
||||
List<EquipBoxRecord> listBoxRecords(String boxId); |
||||
|
||||
} |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxRfidLog; |
||||
|
||||
/** |
||||
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-25 15:10:33 |
||||
*/ |
||||
public interface EquipBoxRfidLogService extends IService<EquipBoxRfidLog> { |
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
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; |
||||
|
||||
|
||||
/** |
||||
* 标本箱设备信息(EquipBox)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-14 19:07:07 |
||||
*/ |
||||
public interface EquipBoxService extends IService<EquipBox> { |
||||
|
||||
EquipBox getByCode(String boxCode); |
||||
|
||||
EquipBox getByIccid(String iccid); |
||||
|
||||
/** |
||||
* 根据id查询标本箱信息 |
||||
* @param id |
||||
* @return |
||||
*/ |
||||
EquipBox getData(String id); |
||||
|
||||
boolean addData(EquipBox param); |
||||
|
||||
boolean updateStatusByCode(String boxCode, Integer boxStatus, Integer openStatus, Integer coldStatus,Integer warnStatus,Integer errorStatus); |
||||
|
||||
IPage<EquipBox> pageData(Page page, EquipBox equip); |
||||
|
||||
} |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
package com.cloud.kicc.commonbiz.service.box; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.equip.api.entity.box.EquipBoxUser; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 标本箱指纹用户信息(EquipBoxUser)表服务接口 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-15 09:40:50 |
||||
*/ |
||||
public interface EquipBoxUserService extends IService<EquipBoxUser> { |
||||
|
||||
boolean addData(EquipBoxUser param); |
||||
|
||||
List<EquipBoxUser> listBoxUser(String boxId, String userName); |
||||
|
||||
|
||||
} |
@ -0,0 +1,190 @@
@@ -0,0 +1,190 @@
|
||||
package com.cloud.kicc.commonbiz.service.impl; |
||||
|
||||
|
||||
import cn.hutool.core.convert.Convert; |
||||
import cn.hutool.core.util.ObjectUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
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.EquipSpecimenMapper; |
||||
import com.cloud.kicc.commonbiz.service.EquipSpecimenService; |
||||
import com.cloud.kicc.commonbiz.service.EquipTemperatureService; |
||||
import com.cloud.kicc.equip.api.entity.EquipSpecimen; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperature; |
||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenListVo; |
||||
import com.cloud.kicc.equip.api.vo.EquipSpecimenUsageVo; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Lazy; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.security.SecureRandom; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
@Service |
||||
@Slf4j |
||||
public class EquipSpecimenServiceImpl extends ServiceImpl<EquipSpecimenMapper, EquipSpecimen> implements EquipSpecimenService { |
||||
|
||||
@Lazy |
||||
@Autowired |
||||
private EquipTemperatureService equipTemperatureService; |
||||
|
||||
//private final RemindService remindService;
|
||||
|
||||
|
||||
@Override |
||||
public EquipSpecimenUsageVo getEquipSpecimenUsage(String syUserId) { |
||||
LambdaQueryWrapper<EquipSpecimen> queryWrapper = new LambdaQueryWrapper<>(); |
||||
queryWrapper.eq(EquipSpecimen::getSyUserId, syUserId); |
||||
EquipSpecimen specimen = baseMapper.selectOne(queryWrapper); |
||||
if (ObjectUtil.isEmpty(specimen) && StrUtil.isNotBlank(specimen.getEtId())) { |
||||
EquipTemperature temperature = equipTemperatureService.getById(specimen.getEtId()); |
||||
if (ObjectUtil.isNotNull(temperature)) { |
||||
EquipSpecimenUsageVo usageVo = Convert.convert(EquipSpecimenUsageVo.class, temperature); |
||||
usageVo.setId(specimen.getId()); |
||||
usageVo.setBoxCode(specimen.getBoxCode()); |
||||
usageVo.setBoxName(specimen.getBoxName()); |
||||
return usageVo; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public EquipSpecimenUsageVo getDetailInfo(String esId) { |
||||
EquipSpecimen specimen = baseMapper.selectById(esId); |
||||
if (ObjectUtil.isEmpty(specimen) && StrUtil.isNotBlank(specimen.getEtId())) { |
||||
EquipTemperature temperature = equipTemperatureService.getById(specimen.getEtId()); |
||||
if (ObjectUtil.isNotNull(temperature)) { |
||||
EquipSpecimenUsageVo usageVo = Convert.convert(EquipSpecimenUsageVo.class, temperature); |
||||
usageVo.setId(specimen.getId()); |
||||
usageVo.setBoxCode(specimen.getBoxCode()); |
||||
usageVo.setBoxName(specimen.getBoxName()); |
||||
usageVo.setSyUserId(specimen.getSyUserId()); |
||||
return usageVo; |
||||
} |
||||
} |
||||
return Convert.convert(EquipSpecimenUsageVo.class, specimen); |
||||
} |
||||
|
||||
@Override |
||||
public List<String> listSyUserId() { |
||||
LambdaQueryWrapper<EquipSpecimen> queryWrapper = new LambdaQueryWrapper<>(); |
||||
queryWrapper.isNotNull(EquipSpecimen::getEtId).isNotNull(EquipSpecimen::getSyUserId); |
||||
List<EquipSpecimen> specimenList = baseMapper.selectList(queryWrapper); |
||||
if (ObjectUtil.isNotEmpty(specimenList)) { |
||||
List<String> list = specimenList.stream().map(EquipSpecimen::getSyUserId).collect(Collectors.toList()); |
||||
return list; |
||||
} |
||||
return new ArrayList<>(); |
||||
} |
||||
|
||||
@Override |
||||
public IPage<EquipSpecimenListVo> pageData(Page page, EquipSpecimen param) { |
||||
IPage<EquipSpecimenListVo> rtn = baseMapper.pageQuery(page, param); |
||||
return rtn; |
||||
} |
||||
|
||||
// @Override
|
||||
// public RemindHourVo equipSpecimenList(String remindUserId, String remindUserName, Integer remindType) {
|
||||
// RemindHourVo rv = new RemindHourVo();
|
||||
// rv.setIsPlay(Constants.NO_CODE);
|
||||
// //未读超时
|
||||
// int overTime = 10;
|
||||
// //查出当前登录的用户的设备etId
|
||||
// QueryWrapper<EquipSpecimen> query = new QueryWrapper<>();
|
||||
// query.select("et_id").eq("sy_user_id", remindUserId);
|
||||
// EquipSpecimen one = equipSpecimenService.getOne(query);
|
||||
// //当前登录用户没有温度设备时返回null,前端根据null判断是否继续监控
|
||||
// if (EmptyUtil.isNullOrEmpty(one)) {
|
||||
// return null;
|
||||
// }
|
||||
// //查询是否有属于当前用户的温度异常未读消息
|
||||
// QueryWrapper<Remind> wrapper = new QueryWrapper<>();
|
||||
// wrapper.eq("is_read", "0")
|
||||
// .eq("remind_user_id", remindUserId)
|
||||
// .eq("remind_type", "3")
|
||||
// .eq("state", "1")
|
||||
// .eq("mark", one.getEtId());
|
||||
// List<Remind> list = remindService.list(wrapper);
|
||||
//
|
||||
// //根据当前登录用户id查出温控设备和标本箱信息
|
||||
// EquipSpecimenListVo es = baseMapper.getEquipSpecimenInfo(remindUserId);
|
||||
// Integer equipTemperature = es.getEquipTemperature();
|
||||
// Integer height = es.getTemperatureMaxWarn();
|
||||
// Integer low = es.getTemperatureMinWarn();
|
||||
// if (equipTemperature > height || equipTemperature < low) {
|
||||
// //若没有插入过消息并温控超标则插入消息
|
||||
// if (list.size() == 0) {
|
||||
// //还没有插入消息的情况
|
||||
// Remind remind = new Remind();
|
||||
// remind.setRemindUserId(es.getSyUserId());
|
||||
// remind.setCreateUserId(remindUserId);
|
||||
// remind.setCreateUserName(remindUserName);
|
||||
// remind.setRemindType(3);
|
||||
// remind.setRemindContent("【" + es.getBoxName() + "】温度异常,当前温度为" + es.getEquipTemperature() + "℃," + "请及时处理!");
|
||||
// remind.setRemindType(RemindTypeEnum.SPECIMEN_BOX.getCode());
|
||||
// remind.setSource(RemindSourceEnum.SPECIMEN_BOX_TEMPERATURE_ERROR.getCode());
|
||||
// remind.setSourceName(RemindSourceEnum.SPECIMEN_BOX_TEMPERATURE_ERROR.getValue());
|
||||
// remind.setMark(es.getEtId());
|
||||
// remindService.sendRemindToUserById(remind, es.getSyUserId());
|
||||
// //只要插入了信息就播报
|
||||
// rv.setIsPlay(Constants.YES_CODE);
|
||||
// rv.setRemindType(3);
|
||||
//
|
||||
// } else {
|
||||
// QueryWrapper<Remind> wrapper1 = new QueryWrapper<>();
|
||||
// wrapper1.eq("is_read", "0")
|
||||
//// .eq("remind_user_id",remindUserId)
|
||||
// .eq("remind_type", "4")
|
||||
// .eq("state", "1")
|
||||
// .eq("mark", one.getEtId());
|
||||
// List<Remind> list1 = remindService.list(wrapper1);
|
||||
// //这里要判断当前已登录的客服,从中随机获取一个
|
||||
// List<Integer> ids = roleService.listUserIdsByIsLogin(3, 1);
|
||||
// ids.forEach(ls -> {
|
||||
// System.out.println("在线客服id = " + ls);
|
||||
// });
|
||||
// SecureRandom random = new SecureRandom();
|
||||
// int n = random.nextInt(ids.size());
|
||||
// Integer randomId = ids.get(n);
|
||||
// System.out.println("随机 = " + randomId);
|
||||
// List<Remind> remindList = new ArrayList<>();
|
||||
// //已经插入过消息了,但是收样员没有已读的情况
|
||||
// //若有属于当前用户的温度异常消息则判断是否以及超过十分钟未读
|
||||
// list.forEach(li -> {
|
||||
// //用当前时间减去入库时间,大于10分钟则提醒客服
|
||||
// long l = System.currentTimeMillis() - li.getCreateDate().getTime();
|
||||
// long minutes = l / 1000 / 60;
|
||||
// //仅当超过十分钟并且没有插入过消息时插入新消息
|
||||
// if (minutes > overTime && list1.size() == 0) {
|
||||
// Remind remind = new Remind();
|
||||
// remind.setRemindUserId(randomId);
|
||||
// remind.setMark(es.getEtId());
|
||||
// remind.setRemindContent("【" + li.getCreateUserName() + "】有标本箱温度异常,请通知其及时处理!");
|
||||
// remind.setCreateUserId(remindUserId);
|
||||
// remind.setCreateUserName(remindUserName);
|
||||
// remind.setSource(RemindSourceEnum.SPECIMEN_BOX_TEMPERATURE_ERROR.getCode());
|
||||
// remind.setSourceName(RemindSourceEnum.SPECIMEN_BOX_TEMPERATURE_ERROR.getValue());
|
||||
// remind.setRemindType(RemindTypeEnum.SPECIMEN_BOX.getCode());
|
||||
// remindList.add(remind);
|
||||
// rv.setIsPlay(Constants.YES_CODE);
|
||||
// rv.setRemindType(RemindTypeEnum.SPECIMEN_BOX.getCode());
|
||||
// }
|
||||
// });
|
||||
// if (CommonUtil.listIsNotNull(remindList)) {
|
||||
// remindService.sendRemindsToUserById(remindList, RemindSourceEnum.SPECIMEN_BOX_TEMPERATURE_ERROR.getCode(), randomId);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return rv;
|
||||
// }
|
||||
|
||||
} |
@ -0,0 +1,109 @@
@@ -0,0 +1,109 @@
|
||||
package com.cloud.kicc.commonbiz.service.impl; |
||||
|
||||
import cn.hutool.core.util.ObjectUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
||||
import com.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipTemperatureRecordMapper; |
||||
import com.cloud.kicc.commonbiz.service.EquipSpecimenService; |
||||
import com.cloud.kicc.commonbiz.service.EquipTemperatureRecordService; |
||||
import com.cloud.kicc.equip.api.dto.EquipTemperatureRecordParam; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperatureRecord; |
||||
|
||||
import com.cloud.kicc.system.api.feign.RemoteUserService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Lazy; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.List; |
||||
|
||||
@RequiredArgsConstructor |
||||
@Service |
||||
@Slf4j |
||||
public class EquipTemperatureRecordServiceImpl extends ServiceImpl<EquipTemperatureRecordMapper, EquipTemperatureRecord> implements EquipTemperatureRecordService { |
||||
|
||||
@Lazy |
||||
@Autowired |
||||
private EquipSpecimenService equipSpecimenService; |
||||
|
||||
//private final ReportInfoService reportInfoService;
|
||||
|
||||
private final RemoteUserService userService; |
||||
|
||||
|
||||
/** |
||||
* 查询温控设备记录列表 |
||||
* @param param |
||||
* @return |
||||
* @throws Exception |
||||
*/ |
||||
// @Override
|
||||
// public List<EquipTemperatureRecord> listRecord(EquipTemperatureRecordParam param) {
|
||||
// // 报告单信息
|
||||
// ReportInfo reportInfo = reportInfoService.getById(param.getReportId());
|
||||
//
|
||||
// // 查询当前收样员关联的设备
|
||||
// EquipSpecimenUsageVo usageVo = equipSpecimenService.getEquipSpecimenUsage(reportInfo.getSyUserId());
|
||||
// if (ObjectUtil.isEmpty(usageVo)){
|
||||
// return null;
|
||||
// }
|
||||
// LambdaQueryWrapper<EquipTemperatureRecord> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// queryWrapper.eq(EquipTemperatureRecord::getEtId,usageVo.getEtId())
|
||||
// .gt(EquipTemperatureRecord::getCreateTime,reportInfo.getReportBeginTime())
|
||||
// .lt(StrUtil.isNotBlank(reportInfo.getReportEndTime()),EquipTemperatureRecord::getCreateTime, reportInfo.getReportEndTime())
|
||||
// .orderByDesc(EquipTemperatureRecord::getId);
|
||||
//
|
||||
// List<EquipTemperatureRecord> list = baseMapper.selectList(queryWrapper);
|
||||
// if (ObjectUtil.isNotEmpty(list) && list.size() > 50){
|
||||
// list = list.subList(0,50);
|
||||
// }
|
||||
// return list;
|
||||
// }
|
||||
|
||||
/** |
||||
* @param param |
||||
* @Author: Mak |
||||
* @Description: 导出标本箱温控数据,生成pdf |
||||
* @Date: 2021/12/6 |
||||
* @Modified by: |
||||
*/ |
||||
// @Override
|
||||
// public String exportRecordForPfd(EquipTemperatureRecordParam param) {
|
||||
// // 获取标本箱温控数据记录
|
||||
// List<EquipTemperatureRecord> list = listRecord(param);
|
||||
// if (ObjectUtil.isNotNull(list)){
|
||||
// return null;
|
||||
// }
|
||||
// // 获取标本箱信息
|
||||
// EquipSpecimenUsageVo vo = equipSpecimenService.getEquipSpecimenUsage(param.getSyUserId());
|
||||
// // 收样员信息
|
||||
// R<User> res = userService.getById(param.getSyUserId());
|
||||
// User user = res.getData();
|
||||
// String[][] strings = new String[list.size()+1][];
|
||||
// strings[0] = new String[]{"序号","上报时间","温度","电量","位置"};
|
||||
// for (int i = 1; i <= list.size(); i++) {
|
||||
// EquipTemperatureRecord record = list.get(i-1);
|
||||
// parseToStringArr(strings, i, record);
|
||||
// }
|
||||
// String pdfUrl = SpirePdfUtil.createTempPdfForPrint(vo.getBoxCode(),user.getUserName(),strings);
|
||||
// return pdfUrl;
|
||||
// }
|
||||
|
||||
/** |
||||
* 数据格式转化 |
||||
* @param strings |
||||
* @param i |
||||
* @param record |
||||
*/ |
||||
private void parseToStringArr(String[][] strings, int i, EquipTemperatureRecord record){ |
||||
//转为前端需要的二维数组格式
|
||||
strings[i] = new String[]{String.valueOf(i),record.getLatestTime(),record.getEquipTemperature(),record.getEquipPower(),record.getEquipAddr()}; |
||||
} |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,179 @@
@@ -0,0 +1,179 @@
|
||||
package com.cloud.kicc.commonbiz.service.impl; |
||||
|
||||
|
||||
import cn.hutool.core.convert.Convert; |
||||
import cn.hutool.core.util.ObjectUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.alibaba.fastjson.JSON; |
||||
import com.alibaba.fastjson.JSONArray; |
||||
import com.alibaba.fastjson.JSONObject; |
||||
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.config.KiccProperties; |
||||
import com.cloud.kicc.commonbiz.mapper.equip.EquipTemperatureMapper; |
||||
import com.cloud.kicc.commonbiz.service.EquipSpecimenService; |
||||
import com.cloud.kicc.commonbiz.service.EquipTemperatureRecordService; |
||||
import com.cloud.kicc.commonbiz.service.EquipTemperatureService; |
||||
import com.cloud.kicc.equip.api.constant.EquipConstants; |
||||
import com.cloud.kicc.equip.api.entity.EquipSpecimen; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperature; |
||||
import com.cloud.kicc.equip.api.entity.EquipTemperatureRecord; |
||||
import com.cloud.kicc.equip.api.vo.EquipTempSelectVo; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Lazy; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
@Service |
||||
@Slf4j |
||||
public class EquipTemperatureServiceImpl extends ServiceImpl<EquipTemperatureMapper, EquipTemperature> implements EquipTemperatureService { |
||||
|
||||
@Lazy |
||||
@Autowired |
||||
private EquipSpecimenService equipSpecimenService; |
||||
|
||||
@Lazy |
||||
@Autowired |
||||
private EquipTemperatureRecordService equipTemperatureRecordService; |
||||
|
||||
@Autowired |
||||
private KiccProperties kiccProperties; |
||||
|
||||
|
||||
|
||||
// @Override
|
||||
// public EquipTemperature pullEquipmentDataByApi(String etId) {
|
||||
// EquipTemperature equip = baseMapper.selectById(etId);
|
||||
// try {
|
||||
// HttpResponse<JsonNode> response = Unirest.post(EquipConstants.TEMP_URL)
|
||||
// .field("admin_permit",EquipConstants.ADMIN_PERMIT)
|
||||
// .field("UserP",EquipConstants.USER_P)
|
||||
// .field("admin_user",EquipConstants.ADMIN_USER)
|
||||
// .field("admin_pass",EquipConstants.ADMIN_PWD)
|
||||
// .field("StartNo","0")
|
||||
// .field("Length","1")
|
||||
// .field("StartTime", DateUtils.getPastMinute(EquipConstants.PERIOD,null))
|
||||
// .field("EndTime",DateUtils.getDateTime())
|
||||
// .field("SheBeiBianHao",equip.getEquipCode())
|
||||
// .asJson();
|
||||
//
|
||||
// JSONObject jsonObject = JSON.parseObject(response.getBody().toPrettyString());
|
||||
// log.info("==拉取温控设备最新数据,设备id:"+etId+",返回值=="+jsonObject.toJSONString());
|
||||
//
|
||||
// int code = jsonObject.getInteger("code");
|
||||
// if (code == EquipConstants.SUCCESS_CODE){
|
||||
// JSONArray dataList = jsonObject.getJSONArray("resultCode");
|
||||
// if (dataList!=null || dataList.isEmpty()){
|
||||
// return equip;
|
||||
// }
|
||||
// JSONObject data = dataList.getJSONObject(0);
|
||||
// equip.setEquipTemperature(data.getString("temperature01"));
|
||||
// equip.setEquipHumidity(data.getString("humidity"));
|
||||
// equip.setEquipPower(data.getString("power"));
|
||||
// // 从拉取的数据结果显示来看,xiangzistate一直都为"close"
|
||||
// //equip.setEquipStatus(data.getString("xiangzistate"));
|
||||
// equip.setEquipStatus("open");
|
||||
// equip.setEquipType(data.getString("shebeineixing"));
|
||||
// equip.setLatestTime(data.getString("servicetime"));
|
||||
//
|
||||
// //根据经纬度转换详细地址
|
||||
// String lng = data.getString("jingdu");
|
||||
// String lat = data.getString("weidu");
|
||||
// if (StrUtil.isNotBlank(lng) && StrUtil.isNotBlank(lat)){
|
||||
// boolean getAddr = false;
|
||||
// if (ObjectUtil.isEmpty(equip.getEquipAddr()) || ObjectUtil.isEmpty(equip.getLongitude())
|
||||
// || ObjectUtil.isEmpty(equip.getLatitude())){
|
||||
// getAddr = true;
|
||||
// }
|
||||
// // 比较之前的经纬度,如果没有变,就不用请求百度api
|
||||
// if (ObjectUtil.isNotEmpty(equip.getLongitude()) && ObjectUtil.isNotEmpty(equip.getLatitude())){
|
||||
// if (!lng.trim().equals(equip.getLongitude()) || !lat.trim().equals(equip.getLatitude())){
|
||||
// getAddr = true;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (getAddr){
|
||||
// String address = BaiduMapUtils.getAddress(lng,lat, kiccProperties.getMapAk());
|
||||
// equip.setEquipAddr(address);
|
||||
// }
|
||||
// equip.setLongitude(lng.trim());
|
||||
// equip.setLatitude(lat.trim());
|
||||
// }
|
||||
// baseMapper.updateById(equip);
|
||||
//
|
||||
// // 插入一条上报记录
|
||||
// try {
|
||||
// EquipTemperatureRecord record = Convert.convert(EquipTemperatureRecord.class, equip);
|
||||
// equipTemperatureRecordService.save(record);
|
||||
// }catch (Exception e){
|
||||
// e.printStackTrace();
|
||||
// log.error("==拉取温控设备最新数据异常==设备id:"+etId+",异常信息:"+e.getMessage());
|
||||
// }
|
||||
// }
|
||||
// }catch (Exception e){
|
||||
// log.error("==拉取温控设备最新数据异常==设备id:"+etId+",异常信息:"+e.getMessage());
|
||||
// }
|
||||
// return equip;
|
||||
// }
|
||||
|
||||
@Override |
||||
public void taskToPullTemperatureEquipData() { |
||||
LambdaQueryWrapper<EquipSpecimen> queryWrapper = new LambdaQueryWrapper<>(); |
||||
queryWrapper.isNotNull(EquipSpecimen::getSyUserId).isNotNull(EquipSpecimen::getEtId); |
||||
List<EquipSpecimen> equipList = equipSpecimenService.list(queryWrapper); |
||||
equipList.stream().forEach(a->{ |
||||
//pullEquipmentDataByApi(a.getEtId());
|
||||
}); |
||||
} |
||||
|
||||
// @Override
|
||||
// public List<EquipTempSelectVo> listEquipTempForSelect(String esId){
|
||||
// List<EquipTempSelectVo> rtn = new ArrayList<>();
|
||||
//
|
||||
// LambdaQueryWrapper<EquipTemperature> query = new LambdaQueryWrapper<>();
|
||||
// query.eq(EquipTemperature::getState,Constants.YES_CODE);
|
||||
// List<EquipTemperature> tempList = baseMapper.selectList(query);
|
||||
// if (CommonUtil.listIsNull(tempList)){
|
||||
// return rtn;
|
||||
// }
|
||||
//
|
||||
// // 查询温控设备已被使用的记录
|
||||
// LambdaQueryWrapper<EquipSpecimen> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// queryWrapper.ne(EquipSpecimen::getState, Constants.DEL_FLAG_DELETE)
|
||||
// .isNotNull(EquipSpecimen::getSyUserId).isNotNull(EquipSpecimen::getEtId);
|
||||
// if (CommonUtil.isNotNull(esId)){
|
||||
// queryWrapper.ne(EquipSpecimen::getEsId,esId);
|
||||
// }
|
||||
// List<EquipSpecimen> equipList = equipSpecimenService.list(queryWrapper);
|
||||
// if (CommonUtil.listIsNotNull(equipList)){
|
||||
// List<Integer> etIdList = equipList.stream().map(EquipSpecimen::getEtId).collect(Collectors.toList());
|
||||
// List<EquipTemperature> temps = tempList.stream().filter(a->!etIdList.contains(a.getEtId())).collect(Collectors.toList());
|
||||
// rtn = Collections3.copyTo(temps,EquipTempSelectVo.class);
|
||||
// }else{
|
||||
// rtn = Collections3.copyTo(tempList,EquipTempSelectVo.class);
|
||||
// }
|
||||
// return rtn;
|
||||
// }
|
||||
|
||||
@Override |
||||
public IPage<EquipTemperature> pageData(Page page, EquipTemperature param) { |
||||
IPage<EquipTemperature> rtn = this.lambdaQuery() |
||||
.eq(StrUtil.isNotBlank(param.getEquipStatus()), EquipTemperature::getEquipStatus, param.getEquipStatus()) |
||||
.eq(StrUtil.isNotBlank(param.getEquipCode()), EquipTemperature::getEquipCode, param.getEquipCode()) |
||||
.eq(StrUtil.isNotBlank(param.getEquipName()), EquipTemperature::getEquipName, param.getEquipName()) |
||||
.orderByDesc(EquipTemperature::getId) |
||||
.page(page); |
||||
return rtn; |
||||
} |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
package com.cloud.kicc.commonbiz.service.impl.beeper; |
||||
|
||||
|
||||
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 lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 呼叫器设备呼叫记录(EquipBeeperRecord)表服务实现类 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:20:39 |
||||
*/ |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
@Slf4j |
||||
public class EquipBeeperRecordServiceImpl extends ServiceImpl<EquipBeeperRecordMapper, EquipBeeperRecord> implements EquipBeeperRecordService { |
||||
|
||||
@Override |
||||
public List<EquipBeeperRecord> listBeeperRecord(String beeperCode) { |
||||
LambdaQueryWrapper<EquipBeeperRecord> wrapper = new LambdaQueryWrapper<>(); |
||||
wrapper.eq(EquipBeeperRecord::getBeeperCode,beeperCode) |
||||
.orderByDesc(EquipBeeperRecord::getId).last("limit 100"); |
||||
return baseMapper.selectList(wrapper); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,90 @@
@@ -0,0 +1,90 @@
|
||||
package com.cloud.kicc.commonbiz.service.impl.beeper; |
||||
|
||||
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 lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 呼叫器设备信息(EquipBeeper)表服务实现类 |
||||
* |
||||
* @author Mak |
||||
* @since 2021-09-06 14:18:38 |
||||
*/ |
||||
@Service |
||||
@RequiredArgsConstructor |
||||
@Slf4j |
||||
public class EquipBeeperServiceImpl extends ServiceImpl<EquipBeeperMapper, EquipBeeper> implements EquipBeeperService { |
||||
|
||||
|
||||
private final EquipBeeperRecordService equipBeeperRecordService; |
||||
|
||||
|
||||
@Override |
||||
public EquipBeeper getByCode(String beeperCode) { |
||||
LambdaQueryWrapper<EquipBeeper> wrapper = new LambdaQueryWrapper<>(); |
||||
wrapper.eq(EquipBeeper::getBeeperCode,beeperCode); |
||||
return baseMapper.selectOne(wrapper); |
||||
} |
||||
|
||||
@Override |
||||
public EquipBeeper getData(String id) { |
||||
return baseMapper.selectData(id); |
||||
} |
||||
|
||||
@Override |
||||
public IPage<EquipBeeper> pageData(Page page, EquipBeeper param) { |
||||
IPage<EquipBeeper> rtn = baseMapper.pageQuery(page,param); |
||||
return rtn; |
||||
} |
||||
|
||||
/** |
||||
* 获取呼叫器wifi |
||||
* @param beeperCode |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Map<String, String> getBeeperWifi(String beeperCode){ |
||||
EquipBeeper beeper = this.getByCode(beeperCode); |
||||
|
||||
// 添加获取wifi记录
|
||||
EquipBeeperRecord record = new EquipBeeperRecord(); |
||||
record.setBeeperCode(beeperCode); |
||||
record.setRecordType(EquipConstants.SECOND_CODE); |
||||
equipBeeperRecordService.save(record); |
||||
|
||||
Map<String,String> map = new HashMap<>(); |
||||
map.put("wifiName",beeper.getWifiName()); |
||||
map.put("wifiPwd",beeper.getWifiPwd()); |
||||
return map; |
||||
} |
||||
|
||||
/** |
||||
* 添加呼叫记录 |
||||
* @param beeperCode |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public boolean beeperToCall(String beeperCode) { |
||||
// 添加呼叫记录
|
||||
EquipBeeperRecord record = new EquipBeeperRecord(); |
||||
record.setBeeperCode(beeperCode); |
||||
record.setRecordType(EquipConstants.YES_CODE); |
||||
return equipBeeperRecordService.save(record); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,224 @@
@@ -0,0 +1,224 @@
|
||||
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); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,164 @@
@@ -0,0 +1,164 @@
|
||||
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); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
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; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
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(); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
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); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
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); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
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 { |
||||
|
||||
} |
@ -0,0 +1,98 @@
@@ -0,0 +1,98 @@
|
||||
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; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
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); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,103 @@
@@ -0,0 +1,103 @@
|
||||
package com.cloud.kicc.commonbiz.util; |
||||
|
||||
import cn.hutool.core.util.StrUtil; |
||||
import cn.hutool.http.HttpResponse; |
||||
import cn.hutool.http.HttpUtil; |
||||
import cn.hutool.json.JSONObject; |
||||
import cn.hutool.json.JSONUtil; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
public class BaiduMapUtils { |
||||
|
||||
|
||||
/** |
||||
* 文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
|
||||
* GET请求 |
||||
* callback 将json格式的返回值通过callback函数返回以实现jsonp功能 |
||||
* 示例:http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation
|
||||
*/ |
||||
public static Map<String, Object> getLngAndLat(String address, String ak) { |
||||
HttpResponse res = null; |
||||
try { |
||||
res = HttpUtil |
||||
.createGet("http://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=json&ak=" + ak) |
||||
.header("Content-Type", "application/json") |
||||
.execute().charset("UTF-8"); |
||||
|
||||
int code = res.getStatus(); |
||||
if (code == 200) { |
||||
String body = res.body(); |
||||
if (StrUtil.isNotBlank(body)) { |
||||
JSONObject jsonObject = JSONUtil.parseObj(body); |
||||
Map<String, Object> resultMap = new HashMap(); |
||||
resultMap.put("longitude", jsonObject.get("lng")); |
||||
resultMap.put("latitude", jsonObject.get("lat")); |
||||
return resultMap; |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
System.out.println("==BaiduMap-Api-getLngAndLat,error==" + e.getMessage()); |
||||
} finally { |
||||
if (res != null) { |
||||
res.close(); |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 根据GPS坐标获取定位位置 |
||||
* 文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
|
||||
* GET请求 |
||||
* coordtype坐标的类型,目前支持的坐标类型包括:bd09ll(百度经纬度坐标)、bd09mc(百度米制坐标)、gcj02ll(国测局经纬度坐标,仅限中国)、wgs84ll( GPS经纬度) 坐标系说明 |
||||
* 示例:http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194
|
||||
*/ |
||||
public static String getAddress(String lng, String lat, String ak) { |
||||
HttpResponse res = null; |
||||
try { |
||||
String location = lat + "," + lng; |
||||
res = HttpUtil |
||||
.createGet("http://api.map.baidu.com/reverse_geocoding/v3/?location=" + location + "&output=json&coordtype=wgs84ll&ak=" + ak) |
||||
.header("Content-Type", "application/json") |
||||
.execute().charset("UTF-8"); |
||||
|
||||
int code = res.getStatus(); |
||||
if (code == 200) { |
||||
String body = res.body(); |
||||
if (StrUtil.isNotBlank(body)) { |
||||
JSONObject jsonObject = JSONUtil.parseObj(body); |
||||
if (jsonObject.getInt("status") == 0) { |
||||
String addr = jsonObject.getJSONObject("result").getStr("formatted_address"); |
||||
return addr; |
||||
} |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
System.out.println("==BaiduMap-Api-getAddress,error==" + e.getMessage()); |
||||
} finally { |
||||
if (res != null) { |
||||
res.close(); |
||||
} |
||||
} |
||||
return null; |
||||
|
||||
} |
||||
|
||||
public static void main(String[] args) { |
||||
//String addr = getAddress("112.917007","28.280622","WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
|
||||
//String addr = getAddress("108.379051", "30.808975", "gIZFKgVkaqGOFTDSSrbklWjesguyrM8H");
|
||||
|
||||
//String addr = getAddress("112.92457569595736", "28.29473945087382", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
|
||||
//String addr = getAddress("112.91276433", "28.29194017", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
|
||||
String addr = getAddress("112.88416317", "28.22842167", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d"); |
||||
|
||||
//String addr = getAddress("11254.76586", "28.21360333", "WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d");
|
||||
System.out.println(addr); |
||||
/*Map<String, Object> address = getLngAndLat("湖南省长沙市望城区梅园路","WpNIUTCTrECQQyrGDv4x3Gx1CdNRCm5d"); |
||||
System.out.println(address.toString());*/ |
||||
} |
||||
} |
||||
|
@ -0,0 +1,200 @@
@@ -0,0 +1,200 @@
|
||||
package com.cloud.kicc.commonbiz.util; |
||||
|
||||
///
|
||||
|
||||
/// 百度 高德 GPS地图坐标转换类
|
||||
|
||||
/// 地球坐标系(GPS坐标):WGS-84
|
||||
|
||||
//中国的火星坐标系:GCJ-02 使用者:高德、谷歌、腾讯搜搜、阿里云地图、灵图51ditu地图
|
||||
|
||||
//百度坐标系:BD-09 使用者:百度
|
||||
|
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
|
||||
public class GpsGaoAndBaidu { |
||||
|
||||
private static final double x_pi = 3.14159265358979324 * 3000.0 / 180.0; |
||||
|
||||
private static final double pi = 3.14159265358979324; |
||||
private static final double a = 6378245.0; |
||||
private static final double ee = 0.00669342162296594323; |
||||
|
||||
/** |
||||
* gg_lat 纬度 |
||||
* gg_lon 经度 |
||||
* GCJ-02转换BD-09 |
||||
* Google地图经纬度转百度地图经纬度 |
||||
* */ |
||||
public static Point google_bd_encrypt(double gg_lat, double gg_lon){ |
||||
Point point=new Point(); |
||||
double x = gg_lon, y = gg_lat; |
||||
double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); |
||||
double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); |
||||
double bd_lon = z * Math.cos(theta) + 0.0065; |
||||
double bd_lat = z * Math.sin(theta) + 0.006; |
||||
point.setLat(bd_lat); |
||||
point.setLng(bd_lon); |
||||
return point; |
||||
} |
||||
|
||||
/** |
||||
* wgLat 纬度 |
||||
* wgLon 经度 |
||||
* BD-09转换GCJ-02 |
||||
* 百度转google |
||||
* */ |
||||
public static Point bd_google_encrypt(double bd_lat, double bd_lon){ |
||||
Point point=new Point(); |
||||
double x = bd_lon - 0.0065, y = bd_lat - 0.006; |
||||
double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi); |
||||
double theta =Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi); |
||||
double gg_lon = z * Math.cos(theta); |
||||
double gg_lat = z * Math.sin(theta); |
||||
point.setLat(gg_lat); |
||||
point.setLng(gg_lon); |
||||
return point; |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* wgLat 纬度 |
||||
* wgLon 经度 |
||||
* WGS-84 到 GCJ-02 的转换(即 GPS 加偏) |
||||
* */ |
||||
public static Point wgs_gcj_encrypts(double wgLat, double wgLon) { |
||||
Point point=new Point(); |
||||
if (outOfChina(wgLat, wgLon)) { |
||||
point.setLat(wgLat); |
||||
point.setLng(wgLon); |
||||
return point; |
||||
} |
||||
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0); |
||||
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0); |
||||
double radLat = wgLat / 180.0 * pi; |
||||
double magic = Math.sin(radLat); |
||||
magic = 1 - ee * magic * magic; |
||||
double sqrtMagic = Math.sqrt(magic); |
||||
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); |
||||
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); |
||||
double lat = wgLat + dLat; |
||||
double lon = wgLon + dLon; |
||||
point.setLat(lat); |
||||
point.setLng(lon); |
||||
return point; |
||||
} |
||||
|
||||
|
||||
public static void transform(double wgLat, double wgLon, double[] latlng) { |
||||
if (outOfChina(wgLat, wgLon)) { |
||||
latlng[0] = wgLat; |
||||
latlng[1] = wgLon; |
||||
return; |
||||
} |
||||
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0); |
||||
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0); |
||||
double radLat = wgLat / 180.0 * pi; |
||||
double magic = Math.sin(radLat); |
||||
magic = 1 - ee * magic * magic; |
||||
double sqrtMagic = Math.sqrt(magic); |
||||
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); |
||||
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); |
||||
latlng[0] = wgLat + dLat; |
||||
latlng[1] = wgLon + dLon; |
||||
} |
||||
|
||||
private static boolean outOfChina(double lat, double lon) { |
||||
if (lon < 72.004 || lon > 137.8347) |
||||
return true; |
||||
if (lat < 0.8293 || lat > 55.8271) |
||||
return true; |
||||
return false; |
||||
} |
||||
|
||||
private static double transformLat(double x, double y) { |
||||
double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x)); |
||||
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; |
||||
ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; |
||||
ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; |
||||
return ret; |
||||
} |
||||
|
||||
private static double transformLon(double x, double y) { |
||||
double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x)); |
||||
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; |
||||
ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; |
||||
ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0; |
||||
return ret; |
||||
} |
||||
|
||||
|
||||
public static Point gpsAddPrecision(String lng, String lat) { |
||||
//进行坐标偏移
|
||||
lng = lng.replace(",E",""); |
||||
lat = lat.replace(",N",""); |
||||
Point p = new Point(); |
||||
p.setLng(gpsCalculate(Double.parseDouble(lng))); |
||||
p.setLat(gpsCalculate(Double.parseDouble(lat))); |
||||
return p; |
||||
} |
||||
|
||||
/** |
||||
* gps转百度坐标 |
||||
* |
||||
* @param gg_lat |
||||
* @param gg_lon |
||||
* @return |
||||
*/ |
||||
public static Point gpsTransformBaidu(double gg_lat, double gg_lon) { |
||||
//进行坐标偏移
|
||||
Point p = wgs_gcj_encrypts(gpsCalculate(gg_lat),gpsCalculate(gg_lon)); |
||||
p = google_bd_encrypt(p.getLat(),p.getLng()); |
||||
System.out.println(p); |
||||
return p; |
||||
} |
||||
|
||||
/** |
||||
* 将经纬度计算得到度分秒格式再转成度格式 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static double gpsCalculate(double num) { |
||||
int a = (int) num / 100; |
||||
double b = (num - a * 100); |
||||
int c = (int) (b); |
||||
double d = (b - c) * 60; |
||||
String e = a + "°" + c + "′" + d + "″"; |
||||
return Dms2D(e); |
||||
} |
||||
|
||||
public static double Dms2D(String dms_data) { |
||||
if (!dms_data.contains("°") || !dms_data.contains("′") || !dms_data.contains("″")) |
||||
return 0; |
||||
double d = Double.parseDouble(dms_data.split("°")[0]); |
||||
double m = Double.parseDouble(dms_data.split("°")[1].split("′")[0]); |
||||
double s = Double.parseDouble(dms_data.split("°")[1].split("′")[1].replace("″", "")); |
||||
return keep8Decimal(d + m / 60 + s / 60 / 60); |
||||
} |
||||
|
||||
//保留8位小数
|
||||
public static double keep8Decimal(double d) { |
||||
BigDecimal bd = new BigDecimal(d); |
||||
double d1 = bd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue(); |
||||
System.out.println(d1); |
||||
return d1; |
||||
} |
||||
|
||||
public static void main(String[] args) { |
||||
//"lg": "11253.92844,E",
|
||||
// "lt": "2813.70530,N",
|
||||
//lg":"11253.04979,E","lt":"2812.81620,N"
|
||||
|
||||
System.out.println(gpsCalculate(11253.04979)); |
||||
System.out.println(gpsCalculate(2812.81620)); |
||||
//GpsGaoAndBaidu.gpsTransformBaidu( 2817.51641,11254.76586);
|
||||
} |
||||
} |
||||
|
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
package com.cloud.kicc.commonbiz.util; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 用于构造地图中的坐标点 |
||||
* |
||||
* @author lw |
||||
**/ |
||||
@Data |
||||
public class Point { |
||||
|
||||
private double lat;// 纬度
|
||||
private double lng;// 经度
|
||||
|
||||
public Point() { |
||||
} |
||||
|
||||
public Point(double lng, double lat) { |
||||
this.lng = lng; |
||||
this.lat = lat; |
||||
} |
||||
|
||||
@Override |
||||
public boolean equals(Object obj) { |
||||
if (obj instanceof Point) { |
||||
Point bmapPoint = (Point) obj; |
||||
return (bmapPoint.getLng() == lng && bmapPoint.getLat() == lat) ? true : false; |
||||
} else { |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return lng + "," + lat; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,305 @@
@@ -0,0 +1,305 @@
|
||||
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.
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
<?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.EquipBeeperMapper"> |
||||
|
||||
<resultMap id="BaseResultMap" type="com.cloud.kicc.equip.api.entity.beeper.EquipBeeper"> |
||||
<result column="id" property="id"/> |
||||
<result column="beeper_name" property="beeperName"/> |
||||
<result column="beeper_code" property="beeperCode"/> |
||||
<result column="beeper_type" property="beeperType"/> |
||||
<result column="wifi_name" property="wifiName"/> |
||||
<result column="wifi_pwd" property="wifiPwd"/> |
||||
<result column="hospital_id" property="hospitalId"/> |
||||
<result column="office_id" property="officeId"/> |
||||
<result column="doctor_id" property="doctorId"/> |
||||
<result column="remarks" property="remarks"/> |
||||
<result column="status" property="status"/> |
||||
<result column="create_by_id" property="createById"/> |
||||
<result column="create_by_name" property="createByName"/> |
||||
<result column="create_time" property="createTime"/> |
||||
<result column="update_by_id" property="updateById"/> |
||||
<result column="update_by_name" property="updateByName"/> |
||||
<result column="update_time" property="updateTime"/> |
||||
<result column="hospital_name" property="hospitalName"/> |
||||
<result column="office_name" property="officeName"/> |
||||
<result column="doctor_name" property="doctorName"/> |
||||
</resultMap> |
||||
|
||||
<sql id="table_name">equip_beeper</sql> |
||||
|
||||
<select id="pageQuery" parameterType="com.cloud.kicc.equip.api.entity.beeper.EquipBeeper" resultMap="BaseResultMap"> |
||||
SELECT |
||||
a.id,a.beeper_name,a.beeper_code,a.beeper_type,a.wifi_name,a.wifi_pwd,a.wifi_pwd,a.status,a.create_time |
||||
,(select ins.hospital_name from t_hospital ins where ins.hospital_id = a.hospital_id) as hospital_name |
||||
,(select o.office_name from t_office o where o.office_id = a.office_id) as office_name |
||||
,(select d.doctor_name from t_doctor d where d.doctor_id = a.doctor_id) as doctor_name |
||||
FROM |
||||
<include refid="table_name"/> a |
||||
<where> |
||||
<if test="opm.beeperName != null and opm.beeperName != ''"> |
||||
AND instr(a.beeper_name,ltrim(rtrim(#{opm.beeperName})))>0 |
||||
</if> |
||||
<if test="opm.beeperCode != null and opm.beeperCode != ''"> |
||||
AND instr(a.beeper_code,ltrim(rtrim(#{opm.beeperCode})))>0 |
||||
</if> |
||||
<if test="opm.status != null"> |
||||
AND a.status = #{opm.status} |
||||
</if> |
||||
<if test="opm.hospitalId != null"> |
||||
AND a.hospital_id = #{opm.hospitalId} |
||||
</if> |
||||
<if test="opm.officeId != null"> |
||||
AND a.office_id = #{opm.officeId} |
||||
</if> |
||||
<if test="opm.doctorId != null"> |
||||
AND a.doctor_id = #{opm.doctorId} |
||||
</if> |
||||
<if test="opm.beeperType != null"> |
||||
AND a.beeper_type = #{opm.beeperType} |
||||
</if> |
||||
</where> |
||||
ORDER BY a.id DESC |
||||
</select> |
||||
|
||||
<select id="selectData" parameterType="com.cloud.kicc.equip.api.entity.beeper.EquipBeeper" resultMap="BaseResultMap"> |
||||
SELECT |
||||
a.id,a.beeper_name,a.beeper_code,a.beeper_type,a.wifi_name,a.wifi_pwd,a.wifi_pwd |
||||
,a.hospital_id,a.office_id,a.doctor_id,a.remarks,a.status,a.create_time |
||||
,(select ins.hospital_name from t_hospital ins where ins.hospital_id = a.hospital_id) as hospital_name |
||||
,(select o.office_name from t_office o where o.office_id = a.office_id) as office_name |
||||
,(select d.doctor_name from t_doctor d where d.doctor_id = a.doctor_id) as doctor_name |
||||
FROM |
||||
<include refid="table_name"/> a |
||||
where a.id=#{id} |
||||
</select> |
||||
|
||||
</mapper> |
@ -0,0 +1,4 @@
@@ -0,0 +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> |
@ -0,0 +1,4 @@
@@ -0,0 +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> |
@ -0,0 +1,4 @@
@@ -0,0 +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> |
@ -0,0 +1,79 @@
@@ -0,0 +1,79 @@
|
||||
<?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.EquipBoxMapper"> |
||||
|
||||
<resultMap id="BaseResultMap" type="com.cloud.kicc.equip.api.entity.box.EquipBox"> |
||||
<result column="id" property="boxId"/> |
||||
<result column="box_name" property="boxName"/> |
||||
<result column="box_code" property="boxCode"/> |
||||
<result column="box_type" property="boxType"/> |
||||
<result column="remarks" property="remarks"/> |
||||
<result column="status" property="status"/> |
||||
<result column="create_by_id" property="createById"/> |
||||
<result column="create_by_name" property="createByName"/> |
||||
<result column="create_time" property="createTime"/> |
||||
<result column="update_by_id" property="updateById"/> |
||||
<result column="update_by_name" property="updateByName"/> |
||||
<result column="update_time" property="updateTime"/> |
||||
<result column="sy_user_name" property="syUserName"/> |
||||
</resultMap> |
||||
|
||||
<sql id="table_name">equip_box</sql> |
||||
<sql id="box_card_table_name">equip_box_card</sql> |
||||
|
||||
<sql id="Base_Column_List"> |
||||
a.id,a.box_name,a.box_code,a.box_type,a.temp,a.damp,a.lng,a.lat,a.addr,a.power,a.tilt,a.card_id |
||||
,a.sy_user_id,a.temp_min,a.temp_max,a.rfid_min,a.beat |
||||
,a.box_status,a.open_status,a.cold_status,a.warn_status,a.error_status |
||||
,a.connect_time,a.close_time,a.latest_time,a.remarks,a.status,a.create_by_id,a.create_by_name,a.create_time,a.status |
||||
</sql> |
||||
|
||||
<select id="pageQuery" parameterType="com.cloud.kicc.equip.api.entity.box.EquipBox" resultType="com.cloud.kicc.equip.api.entity.box.EquipBox"> |
||||
SELECT |
||||
<include refid="Base_Column_List"/> |
||||
,(select s.user_name from t_sys_admin s where s.user_id = a.sy_user_id) as sy_user_name |
||||
FROM |
||||
<include refid="table_name"/> a |
||||
<where> |
||||
<if test="opm.boxName != null and opm.boxName != ''"> |
||||
AND instr(a.box_name,ltrim(rtrim(#{opm.boxName})))>0 |
||||
</if> |
||||
<if test="opm.boxCode != null and opm.boxCode != ''"> |
||||
AND instr(a.box_code,ltrim(rtrim(#{opm.boxCode})))>0 |
||||
</if> |
||||
<if test="opm.boxType != null"> |
||||
AND a.box_type = #{opm.boxType} |
||||
</if> |
||||
<if test="opm.boxStatus != null"> |
||||
AND a.box_status = #{opm.boxStatus} |
||||
</if> |
||||
<if test="opm.openStatus != null"> |
||||
AND a.open_status = #{opm.openStatus} |
||||
</if> |
||||
<if test="opm.coldStatus != null"> |
||||
AND a.cold_status = #{opm.coldStatus} |
||||
</if> |
||||
<if test="opm.warnStatus != null"> |
||||
AND a.warn_status = #{opm.warnStatus} |
||||
</if> |
||||
<if test="opm.errorStatus != null"> |
||||
AND a.error_status = #{opm.errorStatus} |
||||
</if> |
||||
<if test="opm.state != null"> |
||||
AND a.status = #{opm.status} |
||||
</if> |
||||
</where> |
||||
ORDER BY a.id DESC |
||||
</select> |
||||
|
||||
<select id="selectData" parameterType="com.cloud.kicc.equip.api.entity.box.EquipBox" resultType="com.cloud.kicc.equip.api.entity.box.EquipBox"> |
||||
SELECT |
||||
<include refid="Base_Column_List"/> |
||||
,(select s.user_name from t_sys_admin s where s.user_id = a.sy_user_id) as sy_user_name |
||||
,(select c.iccid from <include refid="box_card_table_name"/> c where c.card_id = a.card_id) as iccid |
||||
FROM |
||||
<include refid="table_name"/> a |
||||
where a.id=#{id} |
||||
</select> |
||||
|
||||
</mapper> |
@ -0,0 +1,4 @@
@@ -0,0 +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> |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue