|
|
@@ -22,6 +22,7 @@ import com.zd.common.security.utils.SaveUtil;
|
|
|
|
|
|
import com.zd.common.swagger.config.AppListener;
|
|
|
import com.zd.system.api.camera.RemoteCameraService;
|
|
|
+import com.zd.system.api.laboratory.CabinetV2Lock;
|
|
|
import com.zd.system.api.laboratory.RemoteLaboratoryService;
|
|
|
import com.zd.system.api.laboratory.RemoteSubQueryService;
|
|
|
import com.zd.system.api.laboratory.domain.CabinetLock;
|
|
|
@@ -240,23 +241,86 @@ public class HxpCabinetServiceImpl implements IHxpCabinetService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, Object> openLock(AioCabinetLockVo aioCabinetLockVo) {
|
|
|
- Map<String, Object> result = doLock(aioCabinetLockVo, 1);
|
|
|
- result.put("success", true);
|
|
|
- return result;
|
|
|
+ public CabinetV2Lock openLock(AioCabinetLockVo aioCabinetLockVo) {
|
|
|
+ // 第一版开锁流程
|
|
|
+ // Map<String, Object> result = doLock(aioCabinetLockVo, 1);
|
|
|
+
|
|
|
+ CabinetV2Lock cabinetV2Lock = doLockTwo(aioCabinetLockVo, 1);
|
|
|
+ return cabinetV2Lock;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, Object> closeLock(AioCabinetLockVo aioCabinetLockVo) {
|
|
|
- Map<String, Object> result = doLock(aioCabinetLockVo, 2);
|
|
|
- result.put("success", true);
|
|
|
+ public CabinetV2Lock closeLock(AioCabinetLockVo aioCabinetLockVo) {
|
|
|
+ // 一版关锁流程
|
|
|
+ // Map<String, Object> result = doLock(aioCabinetLockVo, 2);
|
|
|
+
|
|
|
+ CabinetV2Lock result = doLockTwo(aioCabinetLockVo, 2);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private CabinetV2Lock doLockTwo(AioCabinetLockVo aioCabinetLockVo, int type) {
|
|
|
+ CabinetV2Lock result;
|
|
|
+ if(LockTypeEnum.SYSTEM.equals(aioCabinetLockVo.getLockType()) && aioCabinetLockVo.getLockId() != null){
|
|
|
+ result = hxpCabinetMapper.selectIpAddressByLockId(aioCabinetLockVo.getSubId(), aioCabinetLockVo.getLockId());
|
|
|
+ }else {
|
|
|
+ result = hxpCabinetMapper.selectByJoinId(aioCabinetLockVo.getJoinId());
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean success = false;
|
|
|
+ if (type == 1) {
|
|
|
+ // 开锁
|
|
|
+ // 1. 执行开锁命令
|
|
|
+ R r = remoteSubQueryService.cabinetV2OpenLock(result);
|
|
|
+ // 2. 判断执行状态
|
|
|
+ if(r.getCode() == HttpStatus.SUCCESS){
|
|
|
+ success = true;
|
|
|
+ // 3. 调用录像功能
|
|
|
+
|
|
|
+ }
|
|
|
+ }else if(type == 2){
|
|
|
+ // 关锁
|
|
|
+ R r = remoteSubQueryService.cabinetV2CloseLock(result);
|
|
|
+ // 判断执行状态
|
|
|
+ if(r.getCode() == HttpStatus.SUCCESS){
|
|
|
+ success = true;
|
|
|
+ // 结束录像获取地址
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加记录
|
|
|
+ if(success){
|
|
|
+ if(type == 1){
|
|
|
+ HxpCabinetlockLog hxpCabinetlockLog = new HxpCabinetlockLog();
|
|
|
+ hxpCabinetlockLog.setCabinetlockId(Long.parseLong(result.getHardwareId()));
|
|
|
+ hxpCabinetlockLog.setUnLockTime(DateUtils.getNowDate());
|
|
|
+ hxpCabinetlockLog.setOperationType(aioCabinetLockVo.getLockType().getCode());
|
|
|
+ hxpCabinetlockLog.setCreateTime(DateUtils.getNowDate());
|
|
|
+ hxpCabinetlockLog.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ cabinetlockLogService.insertHxpCabinetlockLog(hxpCabinetlockLog);
|
|
|
+
|
|
|
+ }else if(type == 2){
|
|
|
+ // 关锁之后要存储录像
|
|
|
+ /*HxpCabinetlockLog hxpCabinetlockLog = cabinetlockLogMapper.selectByLockId(aioCabinetLockVo.getSubId(), lockId);
|
|
|
+ if(hxpCabinetlockLog != null){
|
|
|
+ hxpCabinetlockLog.setCloseLockTime(DateUtils.getNowDate());
|
|
|
+ hxpCabinetlockLog.setCloseLockVideo(closeLockVideo);
|
|
|
+ cabinetlockLogService.updateHxpCabinetlockLog(hxpCabinetlockLog);
|
|
|
+ }else {
|
|
|
+ logger.error("柜锁关闭修改操作记录失败:" + aioCabinetLockVo.getSubId() + "---------" + lockId);
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ result.setSuccess(success);
|
|
|
+
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- private Map<String, Object> doLock(AioCabinetLockVo aioCabinetLockVo, int type){
|
|
|
- Map<String, Object> result;
|
|
|
+ private CabinetV2Lock doLock(AioCabinetLockVo aioCabinetLockVo, int type){
|
|
|
+ CabinetV2Lock result;
|
|
|
if(LockTypeEnum.SYSTEM.equals(aioCabinetLockVo.getLockType()) && aioCabinetLockVo.getLockId() != null){
|
|
|
result = hxpCabinetMapper.selectIpAddressByLockId(aioCabinetLockVo.getSubId(), aioCabinetLockVo.getLockId());
|
|
|
}else {
|
|
|
@@ -265,7 +329,7 @@ public class HxpCabinetServiceImpl implements IHxpCabinetService {
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
- Integer lockId = Integer.parseInt(result.get("lockId")+ "");
|
|
|
+ Integer lockId = Integer.parseInt(result.getLockId());
|
|
|
if(lockId == null){
|
|
|
logger.error("柜锁参数未设置,执行跳过");
|
|
|
return result;
|
|
|
@@ -284,7 +348,7 @@ public class HxpCabinetServiceImpl implements IHxpCabinetService {
|
|
|
remoteSubQueryService.cabinetLock(cabinetLock);
|
|
|
|
|
|
// 开始录像
|
|
|
- String ipAddress = result.get("ipAddress") + "";
|
|
|
+ String ipAddress = result.getIpAddress();
|
|
|
String closeLockVideo = "";
|
|
|
boolean success = false;
|
|
|
if(org.apache.commons.lang3.StringUtils.isNotBlank(ipAddress)){
|
|
|
@@ -304,7 +368,7 @@ public class HxpCabinetServiceImpl implements IHxpCabinetService {
|
|
|
// 添加记录
|
|
|
if(type == 1){
|
|
|
HxpCabinetlockLog hxpCabinetlockLog = new HxpCabinetlockLog();
|
|
|
- hxpCabinetlockLog.setCabinetlockId(Long.parseLong(result.get("hardwareId")+""));
|
|
|
+ hxpCabinetlockLog.setCabinetlockId(Long.parseLong(result.getHardwareId()));
|
|
|
hxpCabinetlockLog.setUnLockTime(DateUtils.getNowDate());
|
|
|
hxpCabinetlockLog.setOperationType(aioCabinetLockVo.getLockType().getCode());
|
|
|
hxpCabinetlockLog.setCreateTime(DateUtils.getNowDate());
|