Browse Source

🚀 架构重新调整

master
wangxiang 3 years ago
parent
commit
64f7ff3966
  1. 30
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/dto/DownCmdParam.java
  2. 23
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/dto/RfidsParam.java
  3. 75
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/dto/UpCmdParam.java
  4. 33
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/vo/DownCmdVo.java
  5. 23
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/vo/EquipBoxCardVo.java
  6. 25
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/vo/EquipBoxConfigVo.java
  7. 223
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/BoxDownCmdServiceImpl.java
  8. 164
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/BoxUpCmdServiceImpl.java
  9. 44
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/DownCmdServiceImpl.java
  10. 50
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipBoxCardServiceImpl.java
  11. 38
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipBoxLogServiceImpl.java
  12. 71
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipBoxRecordServiceImpl.java
  13. 24
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipBoxRfidLogServiceImpl.java
  14. 98
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipBoxServiceImpl.java
  15. 53
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/EquipBoxUserServiceImpl.java

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

@ -0,0 +1,30 @@
package com.cloud.kicc.commonbiz.api.dto;
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/commonbiz/api/dto/RfidsParam.java

@ -0,0 +1,23 @@
package com.cloud.kicc.commonbiz.api.dto;
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/commonbiz/api/dto/UpCmdParam.java

@ -0,0 +1,75 @@
package com.cloud.kicc.commonbiz.api.dto;
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;
}

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

@ -0,0 +1,33 @@
package com.cloud.kicc.commonbiz.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/commonbiz/api/vo/EquipBoxCardVo.java

@ -0,0 +1,23 @@
package com.cloud.kicc.commonbiz.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 Integer cardId;
private String iccid;
private String card;
}

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

@ -0,0 +1,25 @@
package com.cloud.kicc.commonbiz.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;
}

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

@ -0,0 +1,223 @@
package com.cloud.kicc.commonbiz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cloud.kicc.commonbiz.service.*;
import com.cloud.kicc.commonbiz.api.constant.EquipConstants;
import com.cloud.kicc.commonbiz.api.dto.DownCmdParam;
import com.cloud.kicc.commonbiz.api.entity.EquipBox;
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRecord;
import com.cloud.kicc.commonbiz.api.entity.EquipBoxUser;
import com.cloud.kicc.commonbiz.api.enums.CmdEnum;
import com.cloud.kicc.commonbiz.api.enums.CmdStatusEnum;
import com.cloud.kicc.commonbiz.api.vo.DownCmdVo;
import lombok.AllArgsConstructor;
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/BoxUpCmdServiceImpl.java

@ -0,0 +1,164 @@
package com.cloud.kicc.commonbiz.service.impl;
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.BoxUpCmdService;
import com.cloud.kicc.commonbiz.service.EquipBoxLogService;
import com.cloud.kicc.commonbiz.service.EquipBoxRfidLogService;
import com.cloud.kicc.commonbiz.service.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.commonbiz.api.constant.EquipConstants;
import com.cloud.kicc.commonbiz.api.dto.UpCmdParam;
import com.cloud.kicc.commonbiz.api.entity.EquipBox;
import com.cloud.kicc.commonbiz.api.entity.EquipBoxLog;
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRfidLog;
import com.cloud.kicc.commonbiz.api.enums.BoxStatusEnum;
import com.cloud.kicc.commonbiz.api.enums.CmdEnum;
import com.cloud.kicc.commonbiz.api.vo.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);
}
}

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

@ -0,0 +1,44 @@
package com.cloud.kicc.commonbiz.service.impl;
import com.cloud.kicc.commonbiz.service.DownCmdService;
import com.cloud.kicc.commonbiz.api.vo.DownCmdVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
/**
* 标本箱下行指令服务实现类
*
* @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/EquipBoxCardServiceImpl.java

@ -0,0 +1,50 @@
package com.cloud.kicc.commonbiz.service.impl;
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.EquipBoxCardMapper;
import com.cloud.kicc.commonbiz.service.EquipBoxCardService;
import com.cloud.kicc.commonbiz.api.entity.EquipBoxCard;
import com.cloud.kicc.commonbiz.api.vo.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/EquipBoxLogServiceImpl.java

@ -0,0 +1,38 @@
package com.cloud.kicc.commonbiz.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.commonbiz.mapper.EquipBoxLogMapper;
import com.cloud.kicc.commonbiz.service.EquipBoxLogService;
import com.cloud.kicc.commonbiz.api.entity.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/EquipBoxRecordServiceImpl.java

@ -0,0 +1,71 @@
package com.cloud.kicc.commonbiz.service.impl;
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.EquipBoxRecordMapper;
import com.cloud.kicc.commonbiz.service.EquipBoxRecordService;
import com.cloud.kicc.commonbiz.service.EquipBoxService;
import com.cloud.kicc.commonbiz.api.dto.UpCmdParam;
import com.cloud.kicc.commonbiz.api.entity.EquipBox;
import com.cloud.kicc.commonbiz.api.entity.EquipBoxRecord;
import com.cloud.kicc.commonbiz.api.vo.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/EquipBoxRfidLogServiceImpl.java

@ -0,0 +1,24 @@
package com.cloud.kicc.commonbiz.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.commonbiz.mapper.EquipBoxRfidLogMapper;
import com.cloud.kicc.commonbiz.service.EquipBoxRfidLogService;
import com.cloud.kicc.commonbiz.api.entity.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/EquipBoxServiceImpl.java

@ -0,0 +1,98 @@
package com.cloud.kicc.commonbiz.service.impl;
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.EquipBoxMapper;
import com.cloud.kicc.commonbiz.service.EquipBoxCardService;
import com.cloud.kicc.commonbiz.service.EquipBoxService;
import com.cloud.kicc.commonbiz.api.constant.EquipConstants;
import com.cloud.kicc.commonbiz.api.entity.EquipBox;
import com.cloud.kicc.commonbiz.api.entity.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/EquipBoxUserServiceImpl.java

@ -0,0 +1,53 @@
package com.cloud.kicc.commonbiz.service.impl;
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.EquipBoxUserMapper;
import com.cloud.kicc.commonbiz.service.EquipBoxUserService;
import com.cloud.kicc.commonbiz.api.entity.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);
}
}
Loading…
Cancel
Save