Merge branch 'dev_dahua_department' into dev

dev
zhangxiongfeng 2026-08-05 10:27:43 +08:00
commit d4a7f92806
4 changed files with 21 additions and 69 deletions

View File

@ -1,10 +1,10 @@
package com.zcloud.primeport.command; package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonSyncCmd;
import com.zcloud.gbscommon.utils.Base64Util; import com.zcloud.gbscommon.utils.Base64Util;
import com.zcloud.primeport.domain.gateway.DaHuaGateway; import com.zcloud.primeport.domain.gateway.DaHuaGateway;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway; import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
import com.zcloud.primeport.domain.model.PersonApplyE; import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE; import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd; import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
@ -53,7 +53,7 @@ public class DaHuaPersonSyncExe {
Long dahuaPersonId = daHuaGateway.findPersonIdByPaperNumber(paperNumber); Long dahuaPersonId = daHuaGateway.findPersonIdByPaperNumber(paperNumber);
DaHuaPersonSyncCmd syncCmd = buildSyncCmd(dahuaPersonId, person.getEmployeePersonUserName(), DaHuaPersonSyncCmd syncCmd = buildSyncCmd(dahuaPersonId, person.getEmployeePersonUserName(),
paperNumber, person.getUserPhone(), person.getUserFaceUrl(), paperNumber, person.getUserPhone(), person.getUserFaceUrl(),
apply.getVisitStartTime(), apply.getVisitEndTime(), person.getPersonCorpId()); apply.getVisitStartTime(), apply.getVisitEndTime());
Map<String, Object> result; Map<String, Object> result;
if (dahuaPersonId == null) { if (dahuaPersonId == null) {
syncCmd.setId(daHuaGateway.generatePersonId()); syncCmd.setId(daHuaGateway.generatePersonId());
@ -80,7 +80,7 @@ public class DaHuaPersonSyncExe {
String updatedPaperNumber = decodeUserCard(updated.getUserCard()); String updatedPaperNumber = decodeUserCard(updated.getUserCard());
DaHuaPersonSyncCmd syncCmd = buildSyncCmd(dahuaPersonId, updated.getEmployeePersonUserName(), DaHuaPersonSyncCmd syncCmd = buildSyncCmd(dahuaPersonId, updated.getEmployeePersonUserName(),
updatedPaperNumber, updated.getUserPhone(), updated.getUserFaceUrl(), updatedPaperNumber, updated.getUserPhone(), updated.getUserFaceUrl(),
updated.getVisitStartTime(), updated.getVisitEndTime(), updated.getPersonCorpId()); updated.getVisitStartTime(), updated.getVisitEndTime());
checkResult(daHuaGateway.updatePerson(syncCmd), "修改大华人员失败"); checkResult(daHuaGateway.updatePerson(syncCmd), "修改大华人员失败");
} }
@ -108,7 +108,7 @@ public class DaHuaPersonSyncExe {
} }
private DaHuaPersonSyncCmd buildSyncCmd(Long id, String name, String paperNumber, String phone, private DaHuaPersonSyncCmd buildSyncCmd(Long id, String name, String paperNumber, String phone,
String faceUrl, String startTime, String endTime, Long corpId) { String faceUrl, String startTime, String endTime) {
DaHuaPersonSyncCmd cmd = new DaHuaPersonSyncCmd(); DaHuaPersonSyncCmd cmd = new DaHuaPersonSyncCmd();
cmd.setService("evo-thirdParty"); cmd.setService("evo-thirdParty");
cmd.setId(id); cmd.setId(id);
@ -116,11 +116,7 @@ public class DaHuaPersonSyncExe {
cmd.setCode("hbqa" + paperNumber); cmd.setCode("hbqa" + paperNumber);
cmd.setPaperType(111); cmd.setPaperType(111);
cmd.setPaperNumber(paperNumber); cmd.setPaperNumber(paperNumber);
Long dahuaDeptId = daHuaGateway.findDahuaDepartmentIdByCorpId(corpId); cmd.setDepartmentId(1L);
if (dahuaDeptId == null) {
throw new BizException("未找到大华部门映射配置, corpId=" + corpId);
}
cmd.setDepartmentId(dahuaDeptId);
cmd.setDepartmentType(2); cmd.setDepartmentType(2);
cmd.setType(3); cmd.setType(3);
cmd.setPhone(phone); cmd.setPhone(phone);
@ -130,6 +126,7 @@ public class DaHuaPersonSyncExe {
DaHuaPersonSyncCmd.PersonBiosignature face = new DaHuaPersonSyncCmd.PersonBiosignature(); DaHuaPersonSyncCmd.PersonBiosignature face = new DaHuaPersonSyncCmd.PersonBiosignature();
face.setType(3); face.setType(3);
face.setIndex(1); face.setIndex(1);
// userFaceUrl 是文件服务器相对路径,读取图片并转换为 Base64 后交给大华网关。
face.setBase64Data(resolveFaceBase64(faceUrl)); face.setBase64Data(resolveFaceBase64(faceUrl));
cmd.setPersonBiosignatures(Collections.singletonList(face)); cmd.setPersonBiosignatures(Collections.singletonList(face));
return cmd; return cmd;

View File

@ -1,10 +1,10 @@
package com.zcloud.primeport.command; package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.gbscommon.dahua.cmd.DaHuaCarAddCmd;
import com.zcloud.primeport.domain.enums.VehicleBelongTypeEnum; import com.zcloud.primeport.domain.enums.VehicleBelongTypeEnum;
import com.zcloud.primeport.domain.gateway.DaHuaGateway; import com.zcloud.primeport.domain.gateway.DaHuaGateway;
import com.zcloud.primeport.domain.gateway.VehicleApplyGateway; import com.zcloud.primeport.domain.gateway.VehicleApplyGateway;
import com.zcloud.primeport.domain.model.DaHuaCarAddCmd;
import com.zcloud.primeport.domain.model.VehicleApplyE; import com.zcloud.primeport.domain.model.VehicleApplyE;
import com.zcloud.primeport.plan.mjDevice.dto.CarEnum; import com.zcloud.primeport.plan.mjDevice.dto.CarEnum;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -25,18 +25,18 @@ public class DaHuaVehicleSyncExe {
private final VehicleApplyGateway vehicleApplyGateway; private final VehicleApplyGateway vehicleApplyGateway;
/** /**
* *
*/ */
public void syncApprovedVehicle(Long vehicleApplyId) { public void syncApprovedVehicle(Long vehicleApplyId) {
VehicleApplyE vehicle = vehicleApplyGateway.getById(vehicleApplyId); VehicleApplyE vehicle = vehicleApplyGateway.getById(vehicleApplyId);
if (vehicle == null) { if (!isRelatedPartyVehicle(vehicle)) {
return; return;
} }
syncAddedVehicle(vehicle); syncAddedVehicle(vehicle);
} }
/** /**
* *
*/ */
public void syncDeletedVehicles(List<VehicleApplyE> vehicles) { public void syncDeletedVehicles(List<VehicleApplyE> vehicles) {
if (vehicles == null || vehicles.isEmpty()) { if (vehicles == null || vehicles.isEmpty()) {
@ -44,7 +44,7 @@ public class DaHuaVehicleSyncExe {
} }
List<String> carNumList = new ArrayList<>(); List<String> carNumList = new ArrayList<>();
for (VehicleApplyE vehicle : vehicles) { for (VehicleApplyE vehicle : vehicles) {
if (vehicle != null && vehicle.getLicenceNo() != null) { if (isRelatedPartyVehicle(vehicle)) {
carNumList.add(vehicle.getLicenceNo()); carNumList.add(vehicle.getLicenceNo());
} }
} }
@ -61,11 +61,8 @@ public class DaHuaVehicleSyncExe {
DaHuaCarAddCmd cmd = new DaHuaCarAddCmd(); DaHuaCarAddCmd cmd = new DaHuaCarAddCmd();
cmd.setCarNum(vehicle.getLicenceNo()); cmd.setCarNum(vehicle.getLicenceNo());
cmd.setCarNumColor(CarEnum.getMenuKeyByPath(vehicle.getLicenceType())); cmd.setCarNumColor(CarEnum.getMenuKeyByPath(vehicle.getLicenceType()));
Long dahuaDeptId = daHuaGateway.findDahuaDepartmentIdByCorpId(vehicle.getVehicleCorpId()); // 大华车辆类型与本地字典不一致,该字段可选,不能直接透传本地 vehicleType。
if (dahuaDeptId == null) { cmd.setDepartmentId(1L);
throw new BizException("未找到大华部门映射配置, corpId=" + vehicle.getVehicleCorpId());
}
cmd.setDepartmentId(dahuaDeptId);
cmd.setDepartmentName(vehicle.getVehicleDepartmentName()); cmd.setDepartmentName(vehicle.getVehicleDepartmentName());
cmd.setService("evo-thirdParty"); cmd.setService("evo-thirdParty");
return cmd; return cmd;

View File

@ -1,10 +1,9 @@
package com.zcloud.primeport.domain.gateway; package com.zcloud.primeport.domain.gateway;
import com.zcloud.gbscommon.dahua.cmd.DaHuaAccessRecordCmd; import com.zcloud.primeport.domain.model.DaHuaAccessRecordCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaCarAddCmd; import com.zcloud.primeport.domain.model.DaHuaCarAddCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaCarPageCmd; import com.zcloud.primeport.domain.model.DaHuaCarPageCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonSyncCmd; import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaTempVehicleSaveCmd;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -30,10 +29,4 @@ public interface DaHuaGateway {
Map<String, Object> deleteCar(List<String> carNumList); Map<String, Object> deleteCar(List<String> carNumList);
Map<String, Object> queryAccessRecord(DaHuaAccessRecordCmd cmd); Map<String, Object> queryAccessRecord(DaHuaAccessRecordCmd cmd);
String uploadPersonImg(String imageBase64);
Map<String, Object> saveTempVehicle(DaHuaTempVehicleSaveCmd cmd);
Long findDahuaDepartmentIdByCorpId(Long corpId);
} }

View File

@ -25,9 +25,6 @@ public class DaHuaPersonApi {
private static final String CAR_PAGE_URL = "/evo-apigw/evo-brm/1.2.0/car/subsystem/page"; private static final String CAR_PAGE_URL = "/evo-apigw/evo-brm/1.2.0/car/subsystem/page";
private static final String CAR_DELETE_URL = "/evo-apigw/evo-brm/1.0.0/car/delete"; private static final String CAR_DELETE_URL = "/evo-apigw/evo-brm/1.0.0/car/delete";
private static final String ACCESS_RECORD_URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combined"; private static final String ACCESS_RECORD_URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combined";
private static final String PERSON_UPLOAD_IMG_URL = "/evo-apigw/evo-brm/1.0.0/person/subsystem/third/upload/img";
private static final String PERSON_SAVE_ALL_URL = "/evo-apigw/evo-brm/1.2.0/person/subsystem/save-person-all";
private static final String TEMP_VEHICLE_AUDIT_SAVE_URL = "/evo-apigw/evo-brm/1.2.0/person/subsystem/temp-vehicle/audit-save";
public boolean isConfigured() { public boolean isConfigured() {
return daHuaApiClient != null; return daHuaApiClient != null;
@ -134,36 +131,4 @@ public class DaHuaPersonApi {
headers.put("Authorization", "bearer " + token); headers.put("Authorization", "bearer " + token);
return daHuaApiClient.postJson(ACCESS_RECORD_URL, body, headers); return daHuaApiClient.postJson(ACCESS_RECORD_URL, body, headers);
} }
public GeneralResponse uploadPersonImg(String imageBase64) throws ClientException {
if (daHuaApiClient == null) {
return null;
}
String token = daHuaApiClient.getToken();
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "bearer " + token);
Map<String, Object> body = new HashMap<>();
body.put("imageBase64", imageBase64);
return daHuaApiClient.postJson(PERSON_UPLOAD_IMG_URL, body, headers);
}
public GeneralResponse savePersonAll(Map<String, Object> body) throws ClientException {
if (daHuaApiClient == null) {
return null;
}
String token = daHuaApiClient.getToken();
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "bearer " + token);
return daHuaApiClient.postJson(PERSON_SAVE_ALL_URL, body, headers);
}
public GeneralResponse saveTempVehicleAudit(Map<String, Object> body) throws ClientException {
if (daHuaApiClient == null) {
return null;
}
String token = daHuaApiClient.getToken();
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "bearer " + token);
return daHuaApiClient.postJson(TEMP_VEHICLE_AUDIT_SAVE_URL, body, headers);
}
} }