Browse Source

设备管理

master
lizhi 3 years ago
parent
commit
fa193614fe
  1. 2
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java
  2. 35
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/constant/EquipConstants.java
  3. 17
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/EquipTemperatureRecordParam.java
  4. 30
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/box/DownCmdParam.java
  5. 23
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/box/RfidsParam.java
  6. 75
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/box/UpCmdParam.java
  7. 32
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/EquipSpecimen.java
  8. 55
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/EquipTemperature.java
  9. 46
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/EquipTemperatureRecord.java
  10. 10
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/beeper/EquipBeeper.java
  11. 11
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/beeper/EquipBeeperRecord.java
  12. 12
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBox.java
  13. 10
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxCard.java
  14. 11
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxLog.java
  15. 10
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxRecord.java
  16. 10
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxRfidLog.java
  17. 9
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxUser.java
  18. 46
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/BoxStatusEnum.java
  19. 87
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdEnum.java
  20. 44
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdStatusEnum.java
  21. 48
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/WarnStatusEnum.java
  22. 33
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/DownCmdVo.java
  23. 23
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/EquipBoxCardVo.java
  24. 25
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/EquipBoxConfigVo.java
  25. 33
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/box/DownCmdVo.java
  26. 13
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/box/EquipBoxCardVo.java
  27. 10
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/box/EquipBoxConfigVo.java
  28. 35
      kicc-platform/kicc-platform-api/kicc-equip-api/pom.xml
  29. 13
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/constant/EquipConstants.java
  30. 26
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/dto/box/DownCmdParam.java
  31. 20
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/dto/box/RfidsParam.java
  32. 72
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/dto/box/UpCmdParam.java
  33. 51
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/BoxStatusEnum.java
  34. 91
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdEnum.java
  35. 50
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdStatusEnum.java
  36. 54
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/WarnStatusEnum.java
  37. 36
      kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/vo/box/DownCmdVo.java
  38. 7
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java
  39. 5
      kicc-platform/kicc-platform-api/kicc-template-api/pom.xml
  40. 4
      kicc-platform/kicc-platform-api/pom.xml
  41. 18
      kicc-platform/kicc-platform-biz/kicc-common-biz/pom.xml
  42. 173
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/amqp/AmqpDemo.java
  43. 13
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/amqp/testDemo.java
  44. 21
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/config/KiccProperties.java
  45. 100
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBeeperController.java
  46. 105
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBoxCardController.java
  47. 130
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBoxController.java
  48. 93
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBoxUserController.java
  49. 99
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipSpecimenController.java
  50. 126
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipTemperatureController.java
  51. 34
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBeeperMapper.java
  52. 17
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBeeperRecordMapper.java
  53. 17
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxCardMapper.java
  54. 17
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxLogMapper.java
  55. 34
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxMapper.java
  56. 17
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxRecordMapper.java
  57. 19
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxRfidLogMapper.java
  58. 21
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxUserMapper.java
  59. 28
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipSpecimenMapper.java
  60. 11
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipTemperatureMapper.java
  61. 13
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipTemperatureRecordMapper.java
  62. 62
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/EquipSpecimenService.java
  63. 35
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/EquipTemperatureRecordService.java
  64. 49
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/EquipTemperatureService.java
  65. 24
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/beeper/EquipBeeperRecordService.java
  66. 60
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/beeper/EquipBeeperService.java
  67. 47
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/BoxDownCmdService.java
  68. 54
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/BoxUpCmdService.java
  69. 23
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/DownCmdService.java
  70. 22
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxCardService.java
  71. 18
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxLogService.java
  72. 24
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxRecordService.java
  73. 14
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxRfidLogService.java
  74. 34
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxService.java
  75. 21
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxUserService.java
  76. 190
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipSpecimenServiceImpl.java
  77. 109
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipTemperatureRecordServiceImpl.java
  78. 179
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipTemperatureServiceImpl.java
  79. 35
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/beeper/EquipBeeperRecordServiceImpl.java
  80. 90
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/beeper/EquipBeeperServiceImpl.java
  81. 224
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/BoxDownCmdServiceImpl.java
  82. 164
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/BoxUpCmdServiceImpl.java
  83. 48
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/DownCmdServiceImpl.java
  84. 50
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxCardServiceImpl.java
  85. 38
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxLogServiceImpl.java
  86. 71
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxRecordServiceImpl.java
  87. 24
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxRfidLogServiceImpl.java
  88. 98
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxServiceImpl.java
  89. 53
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxUserServiceImpl.java
  90. 103
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/BaiduMapUtils.java
  91. 200
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/GpsGaoAndBaidu.java
  92. 39
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/Point.java
  93. 305
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/mqtt/MqttDemo.java
  94. BIN
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/ca.jks
  95. 76
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBeeperMapper.xml
  96. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBeeperRecordMapper.xml
  97. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxCardMapper.xml
  98. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxLogMapper.xml
  99. 79
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxMapper.xml
  100. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxRecordMapper.xml
  101. Some files were not shown because too many files have changed in this diff Show More

2
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java

@ -106,5 +106,5 @@ public interface SecurityConstants { @@ -106,5 +106,5 @@ public interface SecurityConstants {
* 客户端ID
*/
String CLIENT_ID = "clientId";
}

35
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/constant/EquipConstants.java

@ -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/"; // 第三方上传报告结果路径
}

17
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/EquipTemperatureRecordParam.java

@ -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;
}

30
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/box/DownCmdParam.java

@ -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;
}

23
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/box/RfidsParam.java

@ -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;
}

75
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/dto/box/UpCmdParam.java

@ -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;
}

32
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/EquipSpecimen.java

@ -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;
}

55
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/EquipTemperature.java

@ -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;
}

46
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/EquipTemperatureRecord.java

@ -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;
}

10
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/beer/EquipBeeper.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/beeper/EquipBeeper.java

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package com.cloud.kicc.equip.api.entity.beer;
package com.cloud.kicc.equip.api.entity.beeper;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@ -9,11 +9,10 @@ import lombok.Data; @@ -9,11 +9,10 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description: 呼叫器设备信息(EquipBeeper)表实体类
* @Since 1.0
* @Date Created in 14:55 2022/6/16
* 呼叫器设备信息(EquipBeeper)表实体类
*
* @author Mak
* @since 2021-09-06 14:18:37
*/
@Data
@TableName("equip_beeper")
@ -48,4 +47,5 @@ public class EquipBeeper extends CommonEntity implements Serializable { @@ -48,4 +47,5 @@ public class EquipBeeper extends CommonEntity implements Serializable {
/**医生名称*/
@TableField(exist = false)
private String doctorName;
}

11
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/beer/EquipBeeperRecord.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/beeper/EquipBeeperRecord.java

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package com.cloud.kicc.equip.api.entity.beer;
package com.cloud.kicc.equip.api.entity.beeper;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@ -8,10 +8,10 @@ import lombok.Data; @@ -8,10 +8,10 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description:
* @Since 1.0
* @Date Created in 14:56 2022/6/16
* 呼叫器设备呼叫记录(EquipBeeperRecord)表实体类
*
* @author Mak
* @since 2021-09-06 14:20:39
*/
@Data
@TableName("equip_beeper_record")
@ -25,4 +25,5 @@ public class EquipBeeperRecord extends CommonEntity implements Serializable { @@ -25,4 +25,5 @@ public class EquipBeeperRecord extends CommonEntity implements Serializable {
private Integer recordType;
/** 状态:(0.启用 1.禁用) 默认为0启用 */
private String status;
}

12
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBox.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBox.java

@ -9,12 +9,13 @@ import lombok.Data; @@ -9,12 +9,13 @@ import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* @Author: lizhi
* @Description:标本箱设备信息(EquipBox)表实体类
* @Since 1.0
* @Date Created in 14:58 2022/6/16
* 标本箱设备信息(EquipBox)表实体类
*
* @author Mak
* @since 2021-09-14 19:07:07
*/
@Data
@TableName("equip_box")
@ -22,7 +23,7 @@ public class EquipBox extends CommonEntity implements Serializable { @@ -22,7 +23,7 @@ public class EquipBox extends CommonEntity implements Serializable {
/**主键ID*/
@TableId
private String id;
private String boxId;
/**设备名称*/
private String boxName;
/**设备编号*/
@ -93,4 +94,5 @@ public class EquipBox extends CommonEntity implements Serializable { @@ -93,4 +94,5 @@ public class EquipBox extends CommonEntity implements Serializable {
/**物联网卡唯一标识号iccid*/
@TableField(exist = false)
private String iccid;
}

10
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxCard.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxCard.java

@ -8,10 +8,10 @@ import lombok.Data; @@ -8,10 +8,10 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description:物联网卡管理(EquipBoxCard)表实体类
* @Since 1.0
* @Date Created in 15:00 2022/6/16
* 物联网卡管理(EquipBoxCard)表实体类
*
* @author Mak
* @since 2022-02-13 12:06:29
*/
@Data
@TableName("equip_box_card")
@ -31,4 +31,6 @@ public class EquipBoxCard extends CommonEntity implements Serializable { @@ -31,4 +31,6 @@ public class EquipBoxCard extends CommonEntity implements Serializable {
/**卡是否已使用在标本箱上(0.否 1.是)*/
private Integer isUsed;
}

11
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxLog.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxLog.java

@ -8,17 +8,17 @@ import lombok.Data; @@ -8,17 +8,17 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description:标本箱心跳日志记录(EquipBoxLog)表实体类
* @Since 1.0
* @Date Created in 15:02 2022/6/16
* 标本箱心跳日志记录(EquipBoxLog)表实体类
*
* @author Mak
* @since 2021-09-17 10:25:07
*/
@Data
@TableName("equip_box_log")
public class EquipBoxLog extends CommonEntity implements Serializable {
/**主键ID*/
@TableId
private String id;
private String boxLogId;
/**标本箱id*/
private String boxId;
/**设备温度*/
@ -51,4 +51,5 @@ public class EquipBoxLog extends CommonEntity implements Serializable { @@ -51,4 +51,5 @@ public class EquipBoxLog extends CommonEntity implements Serializable {
private Integer errorStatus;
/**状态:(0.启用 1.禁用)*/
private String status;
}

10
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxRecord.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxRecord.java

@ -5,12 +5,13 @@ import com.baomidou.mybatisplus.annotation.TableName; @@ -5,12 +5,13 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author: lizhi
* @Description:标本箱操作记录(EquipBoxRecord)表实体类
* @Since 1.0
* @Date Created in 15:22 2022/6/16
* 标本箱操作记录(EquipBoxRecord)表实体类
*
* @author Mak
* @since 2021-09-15 09:39:47
*/
@Data
@TableName("equip_box_record")
@ -52,4 +53,5 @@ public class EquipBoxRecord implements Serializable { @@ -52,4 +53,5 @@ public class EquipBoxRecord implements Serializable {
private String timestamp;
/**状态:(0.禁用 1.启用)*/
private String status;
}

10
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxRfidLog.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxRfidLog.java

@ -6,12 +6,13 @@ import com.cloud.kicc.common.data.entity.CommonEntity; @@ -6,12 +6,13 @@ import com.cloud.kicc.common.data.entity.CommonEntity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author: lizhi
* @Description:标本箱RFIDj记录信息(EquipBoxRfidLog)表实体类
* @Since 1.0
* @Date Created in 15:23 2022/6/16
* 标本箱RFIDj记录信息(EquipBoxRfidLog)表实体类
*
* @author Mak
* @since 2021-09-25 15:10:33
*/
@Data
@TableName("equip_box_rfid_log")
@ -27,4 +28,5 @@ public class EquipBoxRfidLog extends CommonEntity implements Serializable { @@ -27,4 +28,5 @@ public class EquipBoxRfidLog extends CommonEntity implements Serializable {
private Integer rfidType;
/**状态:(0.启用 1.禁用)*/
private String status;
}

9
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxUser.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/entity/box/EquipBoxUser.java

@ -9,10 +9,10 @@ import lombok.Data; @@ -9,10 +9,10 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description:标本箱指纹用户信息(EquipBoxUser)表实体类
* @Since 1.0
* @Date Created in 15:24 2022/6/16
* 标本箱指纹用户信息(EquipBoxUser)表实体类
*
* @author Mak
* @since 2021-09-15 09:40:50
*/
@Data
@TableName("equip_box_user")
@ -35,4 +35,5 @@ public class EquipBoxUser extends CommonEntity implements Serializable { @@ -35,4 +35,5 @@ public class EquipBoxUser extends CommonEntity implements Serializable {
@TableField(exist = false)
private String boxName;
}

46
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/BoxStatusEnum.java

@ -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;
}
}

87
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdEnum.java

@ -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;
}
}

44
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdStatusEnum.java

@ -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;
}
}

48
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/enums/WarnStatusEnum.java

@ -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;
}
}

33
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/DownCmdVo.java

@ -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.已休眠)
}

23
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/EquipBoxCardVo.java

@ -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;
}

25
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/EquipBoxConfigVo.java

@ -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;
}

33
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/box/DownCmdVo.java

@ -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.已休眠)
}

13
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/vo/box/EquipBoxCardVo.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/box/EquipBoxCardVo.java

@ -5,16 +5,19 @@ import lombok.Data; @@ -5,16 +5,19 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description:物联网卡管理(EquipBoxCard)表实体类
* @Since 1.0
* @Date Created in 15:28 2022/6/16
* 物联网卡管理(EquipBoxCard)表实体类
*
* @author Mak
* @since 2022-02-13 12:06:29
*/
@Data
public class EquipBoxCardVo implements Serializable {
public class EquipBoxCardVo implements Serializable {
private Integer cardId;
private String iccid;
private String card;
}

10
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/vo/box/EquipBoxConfigVo.java → kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/equip/api/vo/box/EquipBoxConfigVo.java

@ -5,13 +5,14 @@ import lombok.Data; @@ -5,13 +5,14 @@ import lombok.Data;
import java.io.Serializable;
/**
* @Author: lizhi
* @Description:
* @Since 1.0
* @Date Created in 15:29 2022/6/16
* 标本箱设备信息(EquipBox)表实体类
*
* @author Mak
* @since 2021-09-14 19:07:07
*/
@Data
public class EquipBoxConfigVo implements Serializable {
//温度最低警报值
private Double tempMin;
//温度最高警报值
@ -20,4 +21,5 @@ public class EquipBoxConfigVo implements Serializable { @@ -20,4 +21,5 @@ public class EquipBoxConfigVo implements Serializable {
private Integer rfidMin;
//每隔多少秒上报一次数据
private Integer beat;
}

35
kicc-platform/kicc-platform-api/kicc-equip-api/pom.xml

@ -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>

13
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/constant/EquipConstants.java

@ -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;
}

26
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/dto/box/DownCmdParam.java

@ -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;
}

20
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/dto/box/RfidsParam.java

@ -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;
}

72
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/dto/box/UpCmdParam.java

@ -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;
}

51
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/BoxStatusEnum.java

@ -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;
}
}

91
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdEnum.java

@ -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;
}
}

50
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/CmdStatusEnum.java

@ -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;
}
}

54
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/enums/WarnStatusEnum.java

@ -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;
}
}

36
kicc-platform/kicc-platform-api/kicc-equip-api/src/main/java/com/cloud/kicc/equip/api/vo/box/DownCmdVo.java

@ -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.已休眠)
}

7
kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java

@ -39,4 +39,11 @@ public interface RemoteUserService { @@ -39,4 +39,11 @@ public interface RemoteUserService {
@GetMapping(AppConstants.APP_SYSTEM + "/user/selectByPhone/{phone}")
R<User> selectByPhone(@PathVariable("phone") String phone, @RequestHeader(SecurityConstants.FROM) String from);
/**
* 通过id查询
* @param userId
* @return
*/
@GetMapping(AppConstants.APP_SYSTEM + "/user/selectByUserName/{userId}")
R<User> getById(@PathVariable("userId") String userId);
}

5
kicc-platform/kicc-platform-api/kicc-template-api/pom.xml

@ -2,14 +2,15 @@ @@ -2,14 +2,15 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<parent>
<groupId>com.cloud</groupId>
<artifactId>kicc-platform-api</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>kicc-template-api</artifactId>
<packaging>jar</packaging>
<packaging>pom</packaging>
<description>kicc 新建api模块模板,只提供基础依赖</description>

4
kicc-platform/kicc-platform-api/pom.xml

@ -19,7 +19,9 @@ @@ -19,7 +19,9 @@
<module>kicc-common-api</module>
<module>kicc-monitor-api</module>
<module>kicc-template-api</module>
<module>kicc-equip-api</module>
</modules>
</project>

18
kicc-platform/kicc-platform-biz/kicc-common-biz/pom.xml

@ -54,6 +54,24 @@ @@ -54,6 +54,24 @@
<groupId>com.cloud</groupId>
<artifactId>kicc-common-mock</artifactId>
</dependency>
<!--MQTT-->
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.1</version>
</dependency>
<!--AMQP-->
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-jms-client</artifactId>
<version>0.50.0</version>
</dependency>
<dependency>
<groupId>com.cloud</groupId>
<artifactId>kicc-equip-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

173
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/amqp/AmqpDemo.java

@ -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);
}
};
}

13
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/amqp/testDemo.java

@ -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) {
}
}

21
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/config/KiccProperties.java

@ -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;
}

100
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBeeperController.java

@ -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));
}
}

105
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBoxCardController.java

@ -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();
}
}

130
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBoxController.java

@ -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();
}
}

93
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipBoxUserController.java

@ -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();
}
}

99
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipSpecimenController.java

@ -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();
}
}

126
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/equip/EquipTemperatureController.java

@ -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();
}
}

34
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBeeperMapper.java

@ -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);
}

17
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBeeperRecordMapper.java

@ -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> {
}

17
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxCardMapper.java

@ -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> {
}

17
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxLogMapper.java

@ -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> {
}

34
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxMapper.java

@ -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);
}

17
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxRecordMapper.java

@ -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> {
}

19
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxRfidLogMapper.java

@ -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> {
}

21
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipBoxUserMapper.java

@ -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);
}

28
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipSpecimenMapper.java

@ -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);
}

11
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipTemperatureMapper.java

@ -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> {
}

13
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/equip/EquipTemperatureRecordMapper.java

@ -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> {
}

62
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/EquipSpecimenService.java

@ -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);
}

35
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/EquipTemperatureRecordService.java

@ -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);
}

49
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/EquipTemperatureService.java

@ -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);
}

24
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/beeper/EquipBeeperRecordService.java

@ -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);
}

60
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/beeper/EquipBeeperService.java

@ -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);
}

47
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/BoxDownCmdService.java

@ -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);
}

54
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/BoxUpCmdService.java

@ -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;
}

23
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/DownCmdService.java

@ -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);
}

22
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxCardService.java

@ -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);
}

18
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxLogService.java

@ -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);
}

24
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxRecordService.java

@ -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);
}

14
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxRfidLogService.java

@ -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> {
}

34
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxService.java

@ -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);
}

21
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/box/EquipBoxUserService.java

@ -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);
}

190
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipSpecimenServiceImpl.java

@ -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;
// }
}

109
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipTemperatureRecordServiceImpl.java

@ -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()};
}
}

179
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipTemperatureServiceImpl.java

@ -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;
}
}

35
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/beeper/EquipBeeperRecordServiceImpl.java

@ -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);
}
}

90
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/beeper/EquipBeeperServiceImpl.java

@ -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);
}
}

224
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/BoxDownCmdServiceImpl.java

@ -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);
}
}

164
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/BoxUpCmdServiceImpl.java

@ -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);
}
}

48
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/DownCmdServiceImpl.java

@ -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;
}
}

50
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxCardServiceImpl.java

@ -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();
}
}

38
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxLogServiceImpl.java

@ -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);
}
}

71
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxRecordServiceImpl.java

@ -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);
}
}

24
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxRfidLogServiceImpl.java

@ -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 {
}

98
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxServiceImpl.java

@ -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;
}
}

53
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/box/EquipBoxUserServiceImpl.java

@ -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);
}
}

103
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/BaiduMapUtils.java

@ -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());*/
}
}

200
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/GpsGaoAndBaidu.java

@ -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);
}
}

39
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/Point.java

@ -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;
}
}

305
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/mqtt/MqttDemo.java

@ -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 trueMqtts加密连接
* falseMqtt不加密连接
*/
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();
}
}
}

BIN
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/ca.jks

Binary file not shown.

76
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBeeperMapper.xml

@ -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>

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBeeperRecordMapper.xml

@ -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>

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxCardMapper.xml

@ -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>

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxLogMapper.xml

@ -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>

79
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxMapper.xml

@ -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>

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/EquipBoxRecordMapper.xml

@ -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…
Cancel
Save