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

View File

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

View File

@ -1,10 +1,9 @@
package com.zcloud.primeport.domain.gateway;
import com.zcloud.gbscommon.dahua.cmd.DaHuaAccessRecordCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaCarAddCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaCarPageCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonSyncCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaTempVehicleSaveCmd;
import com.zcloud.primeport.domain.model.DaHuaAccessRecordCmd;
import com.zcloud.primeport.domain.model.DaHuaCarAddCmd;
import com.zcloud.primeport.domain.model.DaHuaCarPageCmd;
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
import java.util.List;
import java.util.Map;
@ -30,10 +29,4 @@ public interface DaHuaGateway {
Map<String, Object> deleteCar(List<String> carNumList);
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_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 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() {
return daHuaApiClient != null;
@ -134,36 +131,4 @@ public class DaHuaPersonApi {
headers.put("Authorization", "bearer " + token);
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);
}
}
}