|
@@ -1,10 +1,14 @@
|
|
|
package org.dromara.backstage.business.lock;
|
|
package org.dromara.backstage.business.lock;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
+import cn.hutool.core.lang.TypeReference;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
+import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
|
|
|
+import cn.hutool.json.JSONString;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -13,11 +17,14 @@ import org.dromara.backstage.basics.domain.vo.PtRoomVo;
|
|
|
import org.dromara.backstage.basics.service.IPtRoomService;
|
|
import org.dromara.backstage.basics.service.IPtRoomService;
|
|
|
import org.dromara.backstage.domain.bo.lock.RoomCardBo;
|
|
import org.dromara.backstage.domain.bo.lock.RoomCardBo;
|
|
|
import org.dromara.backstage.util.LockUtils;
|
|
import org.dromara.backstage.util.LockUtils;
|
|
|
|
|
+import org.dromara.backstage.util.SignatureUtil;
|
|
|
import org.dromara.common.core.constant.DefaultConstants;
|
|
import org.dromara.common.core.constant.DefaultConstants;
|
|
|
import org.dromara.common.core.constant.LockConstants;
|
|
import org.dromara.common.core.constant.LockConstants;
|
|
|
import org.dromara.common.core.domain.R;
|
|
import org.dromara.common.core.domain.R;
|
|
|
|
|
+import org.dromara.hotel.api.domain.bo.RemoteDoorOpenBo;
|
|
|
import org.dromara.hotel.api.domain.bo.RemoteLockPowerBo;
|
|
import org.dromara.hotel.api.domain.bo.RemoteLockPowerBo;
|
|
|
import org.dromara.hotel.api.service.RemoteLockPowerService;
|
|
import org.dromara.hotel.api.service.RemoteLockPowerService;
|
|
|
|
|
+import org.dromara.hotel.api.service.RemoteOpenDoorService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
@@ -42,6 +49,9 @@ public class LockBusiness {
|
|
|
@DubboReference
|
|
@DubboReference
|
|
|
private final RemoteLockPowerService remoteLockPowerService;
|
|
private final RemoteLockPowerService remoteLockPowerService;
|
|
|
|
|
|
|
|
|
|
+ @DubboReference
|
|
|
|
|
+ private final RemoteOpenDoorService remoteOpenDoorService;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取门锁发卡数据
|
|
* 获取门锁发卡数据
|
|
|
*
|
|
*
|
|
@@ -136,6 +146,52 @@ public class LockBusiness {
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public void queryOpenDoorRecord(String lockId) {
|
|
|
|
|
+ Map<String, Object> formMap = new HashMap<>();
|
|
|
|
|
+ formMap.put("KEYLOCKID", lockId);
|
|
|
|
|
+ formMap.put("CARDPSWBIT", "1");
|
|
|
|
|
+ formMap.put("OPERATETYPE", "2");
|
|
|
|
|
+ formMap.put("PAGENO","1");
|
|
|
|
|
+
|
|
|
|
|
+ String result = lockUtils.sendPost(formMap, "operateLockRecord");
|
|
|
|
|
+ String flag = JSONUtil.parseObj(result).getStr("result");
|
|
|
|
|
+ if (ObjectUtil.equals(flag, "0")) {
|
|
|
|
|
+ int totalPage = JSONUtil.parseObj(result).getInt("totalPage");
|
|
|
|
|
+ for (int i = 0; i < totalPage; i++) {
|
|
|
|
|
+ queryOpenDoorRecord(lockId, i + 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void queryOpenDoorRecord(String lockId,int pageNo) {
|
|
|
|
|
+ Map<String, Object> formMap = new HashMap<>();
|
|
|
|
|
+ formMap.put("KEYLOCKID", lockId);
|
|
|
|
|
+ formMap.put("CARDPSWBIT", "1");
|
|
|
|
|
+ formMap.put("OPERATETYPE", "2");
|
|
|
|
|
+ formMap.put("PAGENO",pageNo);
|
|
|
|
|
+
|
|
|
|
|
+ String result = lockUtils.sendPost(formMap, "operateLockRecord");
|
|
|
|
|
+ String flag = JSONUtil.parseObj(result).getStr("result");
|
|
|
|
|
+ if (ObjectUtil.equals(flag, "0")) {
|
|
|
|
|
+ JSONArray pageData = JSONUtil.parseObj(result).getJSONArray("pageData");
|
|
|
|
|
+ pageData.parallelStream().forEach(p->{
|
|
|
|
|
+ JSONObject record = JSONUtil.parseObj(p);
|
|
|
|
|
+ RemoteDoorOpenBo remoteBo = new RemoteDoorOpenBo();
|
|
|
|
|
+ remoteBo.setRoomCode("A604");
|
|
|
|
|
+ remoteBo.setRoomName("A604");
|
|
|
|
|
+ remoteBo.setOpenDoorMode(record.getStr("openWay"));
|
|
|
|
|
+ remoteBo.setOpenTime(DateUtil.parse(record.getStr("operateTime"),DefaultConstants.DATE_TIME_FORMAT));
|
|
|
|
|
+ remoteBo.setOpenResult(record.getStr("openResult"));
|
|
|
|
|
+ if(ObjectUtil.isNotEmpty(record.get("cardId"))) {
|
|
|
|
|
+ remoteBo.setFactoryId(record.getStr("cardId"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ remoteBo.setFactoryId("");
|
|
|
|
|
+ }
|
|
|
|
|
+ remoteBo.setOpenDoorUser(0L);
|
|
|
|
|
+ remoteOpenDoorService.insertOpenDoorByBo(remoteBo);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
/**
|
|
/**
|
|
|
* 门锁电量入库
|
|
* 门锁电量入库
|
|
|
* @param roomVos 门锁列表
|
|
* @param roomVos 门锁列表
|