临时车辆审批修改

dev_dahua_department
zhangxiongfeng 2026-08-05 14:05:27 +08:00
parent 5ea394a7b4
commit 3274e7e1bd
1 changed files with 43 additions and 12 deletions

View File

@ -5,39 +5,38 @@ 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.gbscommon.dahua.cmd.DaHuaCarAddCmd; import com.zcloud.gbscommon.dahua.cmd.DaHuaCarAddCmd;
import com.zcloud.gbscommon.dahua.cmd.DaHuaTempVehicleSaveCmd;
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;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
*
*/
@Component @Component
@AllArgsConstructor @AllArgsConstructor
@Slf4j
public class DaHuaVehicleSyncExe { public class DaHuaVehicleSyncExe {
private final DaHuaGateway daHuaGateway; private final DaHuaGateway daHuaGateway;
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 (!isRelatedPartyVehicle(vehicle)) { if (vehicle == null) {
return; return;
} }
if (isRelatedPartyVehicle(vehicle)) {
syncAddedVehicle(vehicle); syncAddedVehicle(vehicle);
} else if (isTempVehicle(vehicle)) {
syncTempVehicle(vehicle);
}
} }
/**
*
*/
public void syncDeletedVehicles(List<VehicleApplyE> vehicles) { public void syncDeletedVehicles(List<VehicleApplyE> vehicles) {
if (vehicles == null || vehicles.isEmpty()) { if (vehicles == null || vehicles.isEmpty()) {
return; return;
@ -57,22 +56,54 @@ public class DaHuaVehicleSyncExe {
checkResult(daHuaGateway.addCar(buildCarCmd(vehicle)), "新增大华车辆失败"); checkResult(daHuaGateway.addCar(buildCarCmd(vehicle)), "新增大华车辆失败");
} }
private void syncTempVehicle(VehicleApplyE vehicle) {
log.info("同步临时车辆到大华平台: licenceNo={}, vehicleApplyId={}", vehicle.getLicenceNo(), vehicle.getId());
Map<String, Object> result = daHuaGateway.saveTempVehicle(buildTempVehicleCmd(vehicle));
checkResult(result, "同步临时车辆到大华失败");
log.info("临时车辆同步成功: licenceNo={}", vehicle.getLicenceNo());
}
private DaHuaCarAddCmd buildCarCmd(VehicleApplyE vehicle) { private DaHuaCarAddCmd buildCarCmd(VehicleApplyE vehicle) {
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()));
// 大华车辆类型与本地字典不一致,该字段可选,不能直接透传本地 vehicleType。
cmd.setDepartmentId(1L); cmd.setDepartmentId(1L);
cmd.setDepartmentName(vehicle.getVehicleDepartmentName()); cmd.setDepartmentName(vehicle.getVehicleDepartmentName());
cmd.setService("evo-thirdParty"); cmd.setService("evo-thirdParty");
return cmd; return cmd;
} }
private DaHuaTempVehicleSaveCmd buildTempVehicleCmd(VehicleApplyE vehicle) {
DaHuaTempVehicleSaveCmd cmd = new DaHuaTempVehicleSaveCmd();
cmd.setName(vehicle.getEmployeeVehicleUserName());
cmd.setCode(vehicle.getLsUserIdcard());
cmd.setPaperNumber(vehicle.getLsUserIdcard());
cmd.setPhone(vehicle.getLsUserPhone());
cmd.setService("evo-thirdParty");
cmd.setValidStartTime(vehicle.getVisitStartTime());
cmd.setValidEndTime(vehicle.getVisitEndTime());
if (vehicle.getVehicleCorpId() != null) {
cmd.setDepartmentId(vehicle.getVehicleCorpId());
}
DaHuaTempVehicleSaveCmd.CarItem carItem = new DaHuaTempVehicleSaveCmd.CarItem();
carItem.setCarNum(vehicle.getLicenceNo());
carItem.setCarNumColor(CarEnum.getMenuKeyByPath(vehicle.getLicenceType()));
carItem.setDepartmentId(vehicle.getVehicleCorpId());
carItem.setDepartmentName(vehicle.getVehicleDepartmentName());
cmd.setCars(Collections.singletonList(carItem));
return cmd;
}
private boolean isRelatedPartyVehicle(VehicleApplyE vehicle) { private boolean isRelatedPartyVehicle(VehicleApplyE vehicle) {
return vehicle != null return vehicle != null
&& VehicleBelongTypeEnum.XGF_VEHICLES.getCode().equals(vehicle.getVehicleBelongType()); && VehicleBelongTypeEnum.XGF_VEHICLES.getCode().equals(vehicle.getVehicleBelongType());
} }
private boolean isTempVehicle(VehicleApplyE vehicle) {
return vehicle != null
&& VehicleBelongTypeEnum.TEMP_VEHICLES.getCode().equals(vehicle.getVehicleBelongType());
}
private void checkResult(Map<String, Object> result, String message) { private void checkResult(Map<String, Object> result, String message) {
if (result == null || !Boolean.TRUE.equals(result.get("passed"))) { if (result == null || !Boolean.TRUE.equals(result.get("passed"))) {
Object errorMessage = result == null ? null : result.get("errMsg"); Object errorMessage = result == null ? null : result.get("errMsg");