refactor(): 更新海康设备数据同步字段映射
parent
845c425262
commit
7e693dc8c3
|
|
@ -117,22 +117,18 @@ public class HkAccessRecordSyncXxlJob implements Job {
|
|||
|
||||
private HkAccessRecordDO mapToRecord(JSONObject item) {
|
||||
HkAccessRecordDO record = new HkAccessRecordDO();
|
||||
record.setHkEventId(item.getStr("eventId", item.getStr("id")));
|
||||
record.setHkEventId(item.getStr("eventId"));
|
||||
record.setPersonId(item.getStr("personId"));
|
||||
record.setPersonName(item.getStr("personName"));
|
||||
record.setCertificateNo(item.getStr("certificateNo"));
|
||||
record.setPhoneNo(item.getStr("phoneNo"));
|
||||
record.setCertificateNo(item.getStr("certNo"));
|
||||
record.setOrgIndexCode(item.getStr("orgIndexCode"));
|
||||
record.setOrgPathName(item.getStr("orgPathName"));
|
||||
record.setDoorIndexCode(item.getStr("doorIndexCode", item.getStr("resourceIndexCode")));
|
||||
record.setDoorName(item.getStr("doorName", item.getStr("resourceName")));
|
||||
record.setDoorRegionIndexCode(item.getStr("regionIndexCode"));
|
||||
record.setEnterOrExit(item.getInt("enterOrExit", item.getInt("inOutType")));
|
||||
record.setOpenResult(item.getInt("openResult"));
|
||||
record.setOpenType(item.getInt("openType"));
|
||||
record.setOrgPathName(item.getStr("orgName"));
|
||||
record.setDoorIndexCode(item.getStr("doorIndexCode"));
|
||||
record.setDoorName(item.getStr("doorName"));
|
||||
record.setDoorRegionIndexCode(item.getStr("doorRegionIndexCode"));
|
||||
record.setEnterOrExit(item.getInt("inAndOutType"));
|
||||
record.setCardNo(item.getStr("cardNo"));
|
||||
// 解析事件时间
|
||||
String eventTimeStr = item.getStr("eventTime", item.getStr("swingTime"));
|
||||
String eventTimeStr = item.getStr("eventTime");
|
||||
if (eventTimeStr != null && !eventTimeStr.isEmpty()) {
|
||||
try {
|
||||
record.setEventTime(parseDateTime(eventTimeStr));
|
||||
|
|
@ -140,15 +136,15 @@ public class HkAccessRecordSyncXxlJob implements Job {
|
|||
log.warn("解析eventTime失败: {}", eventTimeStr);
|
||||
}
|
||||
}
|
||||
String createTimeStr = item.getStr("createTime", item.getStr("hkCreateTime"));
|
||||
String createTimeStr = item.getStr("receiveTime");
|
||||
if (createTimeStr != null && !createTimeStr.isEmpty()) {
|
||||
try {
|
||||
record.setHkCreateTime(parseDateTime(createTimeStr));
|
||||
} catch (Exception e) {
|
||||
log.warn("解析createTime失败: {}", createTimeStr);
|
||||
log.warn("解析receiveTime失败: {}", createTimeStr);
|
||||
}
|
||||
}
|
||||
record.setRecordImageUrl(item.getStr("recordImageUrl", item.getStr("picUri")));
|
||||
record.setRecordImageUrl(item.getStr("picUri"));
|
||||
record.setSourceType("PULL");
|
||||
record.setRawData(item.toString());
|
||||
record.setLastSyncTime(LocalDateTime.now());
|
||||
|
|
|
|||
|
|
@ -113,28 +113,27 @@ public class HkVehicleAccessRecordSyncXxlJob implements Job {
|
|||
|
||||
private HkVehicleAccessRecordDO mapToRecord(JSONObject item) {
|
||||
HkVehicleAccessRecordDO record = new HkVehicleAccessRecordDO();
|
||||
record.setHkEventId(item.getStr("eventId", item.getStr("id")));
|
||||
record.setPlateNo(item.getStr("plateNo", item.getStr("carNum")));
|
||||
record.setHkEventId(item.getStr("crossRecordSyscode"));
|
||||
record.setPlateNo(item.getStr("plateNo"));
|
||||
record.setPlateColor(item.getInt("plateColor"));
|
||||
record.setCarType(item.getInt("carType"));
|
||||
record.setCarTypeName(item.getStr("carTypeName"));
|
||||
record.setParkSyscode(item.getStr("parkSyscode", item.getStr("parkIndexCode")));
|
||||
record.setCarType(item.getInt("vehicleType"));
|
||||
record.setCarTypeName(item.getStr("carCategoryName"));
|
||||
record.setParkSyscode(item.getStr("parkSyscode"));
|
||||
record.setParkName(item.getStr("parkName"));
|
||||
record.setLaneIndexCode(item.getStr("laneIndexCode", item.getStr("roadwayIndexCode")));
|
||||
record.setLaneName(item.getStr("laneName", item.getStr("roadwayName")));
|
||||
record.setEntranceIndexCode(item.getStr("entranceIndexCode"));
|
||||
record.setLaneIndexCode(item.getStr("roadwaySyscode"));
|
||||
record.setLaneName(item.getStr("roadwayName"));
|
||||
record.setEntranceIndexCode(item.getStr("entranceSyscode"));
|
||||
record.setEntranceName(item.getStr("entranceName"));
|
||||
record.setEnterOrExit(item.getInt("enterOrExit", item.getInt("inOutType")));
|
||||
// 解析事件时间
|
||||
String eventTimeStr = item.getStr("eventTime", item.getStr("crossTime"));
|
||||
record.setEnterOrExit(item.getInt("vehicleOut"));
|
||||
String eventTimeStr = item.getStr("crossTime");
|
||||
if (eventTimeStr != null && !eventTimeStr.isEmpty()) {
|
||||
try {
|
||||
record.setEventTime(parseDateTime(eventTimeStr));
|
||||
} catch (Exception e) {
|
||||
log.warn("解析eventTime失败: {}", eventTimeStr);
|
||||
log.warn("解析crossTime失败: {}", eventTimeStr);
|
||||
}
|
||||
}
|
||||
String createTimeStr = item.getStr("createTime", item.getStr("hkCreateTime"));
|
||||
String createTimeStr = item.getStr("createTime");
|
||||
if (createTimeStr != null && !createTimeStr.isEmpty()) {
|
||||
try {
|
||||
record.setHkCreateTime(parseDateTime(createTimeStr));
|
||||
|
|
@ -142,7 +141,7 @@ public class HkVehicleAccessRecordSyncXxlJob implements Job {
|
|||
log.warn("解析createTime失败: {}", createTimeStr);
|
||||
}
|
||||
}
|
||||
record.setRecordImageUrl(item.getStr("recordImageUrl", item.getStr("picUri")));
|
||||
record.setRecordImageUrl(item.getStr("vehiclePicUri"));
|
||||
record.setSourceType("PULL");
|
||||
record.setRawData(item.toString());
|
||||
record.setLastSyncTime(LocalDateTime.now());
|
||||
|
|
|
|||
|
|
@ -101,13 +101,12 @@ public class TwoCarUtil {
|
|||
public static void main(String[] args) throws Exception {
|
||||
String testPlateNo = "冀B12345";
|
||||
String testParkSyscode = "";
|
||||
String testLaneIndexCode = "";
|
||||
|
||||
// ====== 测试1: 获取停车场列表 ======
|
||||
System.out.println("===== 测试1: getParkingListInformationList 停车场列表 =====");
|
||||
JSONObject parkResult = HKDeviceUtil.getParkingListInformationList();
|
||||
System.out.println(parkResult);
|
||||
// 从返回结果中获取 parkSyscode,填入 testParkSyscode
|
||||
// 从返回结果中获取 parkSyscode(parkIndexCode 停车场唯一标识),填入 testParkSyscode
|
||||
|
||||
// ====== 测试2: 保存/更新车辆 ======
|
||||
// System.out.println("\n===== 测试2: saveOrUpdCar 保存/更新车辆 =====");
|
||||
|
|
@ -115,14 +114,14 @@ public class TwoCarUtil {
|
|||
// System.out.println(carResult);
|
||||
|
||||
// ====== 测试3: 车辆充值授权 ======
|
||||
// System.out.println("\n===== 测试3: vehicleTopUp 车辆充值 (需填入parkSyscode和laneIndexCode) =====");
|
||||
// if (!testParkSyscode.isEmpty() && !testLaneIndexCode.isEmpty()) {
|
||||
// System.out.println("\n===== 测试3: vehicleTopUp 车辆充值 (需填入parkSyscode) =====");
|
||||
// if (!testParkSyscode.isEmpty()) {
|
||||
// String today = DateUtil.date2Str(new Date(), "yyyy-MM-dd");
|
||||
// JSONObject topUpResult = HKDeviceUtil.vehicleTopUp(
|
||||
// testPlateNo, 0, testLaneIndexCode, testParkSyscode, today, today);
|
||||
// testPlateNo, 0, null, testParkSyscode, today, today);
|
||||
// System.out.println(topUpResult);
|
||||
// } else {
|
||||
// System.out.println("请先从测试1获取 parkSyscode,并填入正确的 laneIndexCode(门禁点indexCode)");
|
||||
// System.out.println("请先从测试1获取 parkSyscode");
|
||||
// }
|
||||
|
||||
// ====== 测试4: 按车牌查询车辆 ======
|
||||
|
|
|
|||
|
|
@ -141,12 +141,43 @@ public class TwoPersonUtil {
|
|||
System.out.println("\n===== 测试3: getUserListByUserCard =====");
|
||||
System.out.println(HKDeviceUtil.getUserListByUserCard(testIdCard));
|
||||
|
||||
System.out.println("\n===== 测试4: authPersonArea (需替换personId和门禁点indexCode) =====");
|
||||
// 先从测试2/3获取personId,再取消下面的注释并填入真实值
|
||||
// JSONObject ri = new JSONObject(); ri.set("resourceIndexCode", "替换"); ri.set("resourceType", "door");
|
||||
// System.out.println(HKDeviceUtil.authPersonArea(Collections.singletonList("personId"),
|
||||
// Collections.singletonList(ri), DateUtil.date2Str(new Date(),"yyyy-MM-dd")+"T00:00:00+08:00",
|
||||
// DateUtil.date2Str(new Date(),"yyyy-MM-dd")+"T23:59:59+08:00"));
|
||||
System.out.println("\n===== 测试4: authPersonArea 授权门禁 =====");
|
||||
// personId 从测试2/3的返回结果 data.list[0].personId 获取(本次查询为 828cf4dc7ff745ac803c702efdf5524c)
|
||||
String testPersonId = "828cf4dc7ff745ac803c702efdf5524c";
|
||||
// 门禁点 indexCode 从 getSubResources() 返回的 data.list[0].indexCode 获取
|
||||
JSONObject subResources = HKDeviceUtil.getSubResources();
|
||||
JSONArray doorList = subResources.getJSONObject("data").getJSONArray("list");
|
||||
System.out.println("查询到门禁点数量: " + doorList.size());
|
||||
String testDoorIndexCode = null;
|
||||
String testDoorName = null;
|
||||
if (!doorList.isEmpty()) {
|
||||
JSONObject door = doorList.getJSONObject(0);
|
||||
if ("door".equals(door.getStr("resourceType"))) {
|
||||
testDoorIndexCode = door.getStr("indexCode");
|
||||
testDoorName = door.getStr("name");
|
||||
}
|
||||
}
|
||||
System.out.println("使用门禁点: " + testDoorName + " (indexCode=" + testDoorIndexCode + ")");
|
||||
// for (int i = 0; i < doorList.size(); i++) {
|
||||
// JSONObject door = doorList.getJSONObject(i);
|
||||
// if ("door".equals(door.getStr("resourceType"))) {
|
||||
// testDoorIndexCode = door.getStr("indexCode");
|
||||
// testDoorName = door.getStr("name");
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// System.out.println("使用门禁点: " + testDoorName + " (indexCode=" + testDoorIndexCode + ")");
|
||||
|
||||
JSONObject ri = new JSONObject();
|
||||
ri.set("resourceIndexCode", testDoorIndexCode);
|
||||
ri.set("resourceType", "door");
|
||||
JSONObject authResult = HKDeviceUtil.authPersonArea(
|
||||
Collections.singletonList(testPersonId),
|
||||
Collections.singletonList(ri),
|
||||
DateUtil.date2Str(new Date(), "yyyy-MM-dd") + "T00:00:00+08:00",
|
||||
DateUtil.date2Str(new Date(), "yyyy-MM-dd") + "T23:59:59+08:00");
|
||||
System.out.println(authResult);
|
||||
}
|
||||
// ========== 以下为原有注释测试代码(保留备用) ==========
|
||||
// TwoPersonUtil twoPersonUtil = new TwoPersonUtil();
|
||||
// twoPersonUtil.dockOneLevelPerson("130324199407282111");
|
||||
|
|
@ -178,7 +209,6 @@ public class TwoPersonUtil {
|
|||
// System.err.println("saveUser 调用失败:" + e.getMessage());
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
}
|
||||
|
||||
public void dockOneLevelPerson(String userCard, String userFaceImages, String userUid, String userName) throws Exception {
|
||||
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||
|
|
|
|||
|
|
@ -8,15 +8,12 @@ CREATE TABLE IF NOT EXISTS `hk_access_record` (
|
|||
`person_id` varchar(128) DEFAULT NULL COMMENT '海康人员ID(personId)',
|
||||
`person_name` varchar(255) DEFAULT NULL COMMENT '人员姓名快照',
|
||||
`certificate_no` varchar(128) DEFAULT NULL COMMENT '证件号码(身份证)',
|
||||
`phone_no` varchar(64) DEFAULT NULL COMMENT '手机号',
|
||||
`org_index_code` varchar(128) DEFAULT NULL COMMENT '海康组织编码',
|
||||
`org_path_name` varchar(512) DEFAULT NULL COMMENT '海康组织路径名称',
|
||||
`door_index_code` varchar(128) DEFAULT NULL COMMENT '门禁点编码(indexCode)',
|
||||
`door_name` varchar(255) DEFAULT NULL COMMENT '门禁点名称',
|
||||
`door_region_index_code` varchar(128) DEFAULT NULL COMMENT '门禁点所属区域编码',
|
||||
`enter_or_exit` int DEFAULT NULL COMMENT '进出方向:1-进,2-出',
|
||||
`open_result` int DEFAULT NULL COMMENT '开门结果:1-成功,0-失败',
|
||||
`open_type` int DEFAULT NULL COMMENT '开门方式',
|
||||
`card_no` varchar(128) DEFAULT NULL COMMENT '卡号',
|
||||
`event_time` datetime DEFAULT NULL COMMENT '事件发生时间(通行时间)',
|
||||
`hk_create_time` datetime DEFAULT NULL COMMENT '记录在海康平台的入库时间',
|
||||
|
|
|
|||
Loading…
Reference in New Issue