diff --git a/web-app/src/main/java/com/zcloud/primeport/command/DaHuaVehicleSyncExe.java b/web-app/src/main/java/com/zcloud/primeport/command/DaHuaVehicleSyncExe.java index a5f4e7f..c3d28bf 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/DaHuaVehicleSyncExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/DaHuaVehicleSyncExe.java @@ -5,39 +5,38 @@ import com.zcloud.primeport.domain.enums.VehicleBelongTypeEnum; import com.zcloud.primeport.domain.gateway.DaHuaGateway; import com.zcloud.primeport.domain.gateway.VehicleApplyGateway; 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.plan.mjDevice.dto.CarEnum; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; -/** - * 相关方车辆同步大华平台。 - */ @Component @AllArgsConstructor +@Slf4j public class DaHuaVehicleSyncExe { private final DaHuaGateway daHuaGateway; private final VehicleApplyGateway vehicleApplyGateway; - /** - * 相关方车辆审核通过后,同步新增大华车辆。 - */ public void syncApprovedVehicle(Long vehicleApplyId) { VehicleApplyE vehicle = vehicleApplyGateway.getById(vehicleApplyId); - if (!isRelatedPartyVehicle(vehicle)) { + if (vehicle == null) { return; } - syncAddedVehicle(vehicle); + if (isRelatedPartyVehicle(vehicle)) { + syncAddedVehicle(vehicle); + } else if (isTempVehicle(vehicle)) { + syncTempVehicle(vehicle); + } } - /** - * 删除相关方车辆时,同步删除对应的大华车辆。 - */ public void syncDeletedVehicles(List vehicles) { if (vehicles == null || vehicles.isEmpty()) { return; @@ -57,22 +56,54 @@ public class DaHuaVehicleSyncExe { checkResult(daHuaGateway.addCar(buildCarCmd(vehicle)), "新增大华车辆失败"); } + private void syncTempVehicle(VehicleApplyE vehicle) { + log.info("同步临时车辆到大华平台: licenceNo={}, vehicleApplyId={}", vehicle.getLicenceNo(), vehicle.getId()); + Map result = daHuaGateway.saveTempVehicle(buildTempVehicleCmd(vehicle)); + checkResult(result, "同步临时车辆到大华失败"); + log.info("临时车辆同步成功: licenceNo={}", vehicle.getLicenceNo()); + } + private DaHuaCarAddCmd buildCarCmd(VehicleApplyE vehicle) { DaHuaCarAddCmd cmd = new DaHuaCarAddCmd(); cmd.setCarNum(vehicle.getLicenceNo()); cmd.setCarNumColor(CarEnum.getMenuKeyByPath(vehicle.getLicenceType())); - // 大华车辆类型与本地字典不一致,该字段可选,不能直接透传本地 vehicleType。 cmd.setDepartmentId(1L); cmd.setDepartmentName(vehicle.getVehicleDepartmentName()); cmd.setService("evo-thirdParty"); 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) { return vehicle != null && 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 result, String message) { if (result == null || !Boolean.TRUE.equals(result.get("passed"))) { Object errorMessage = result == null ? null : result.get("errMsg"); diff --git a/web-app/src/main/java/com/zcloud/primeport/service/DaHuaServiceImpl.java b/web-app/src/main/java/com/zcloud/primeport/service/DaHuaServiceImpl.java index 2e0ede3..569dcf7 100644 --- a/web-app/src/main/java/com/zcloud/primeport/service/DaHuaServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/primeport/service/DaHuaServiceImpl.java @@ -11,14 +11,7 @@ import com.zcloud.gbscommon.dahua.cmd.DaHuaPersonSyncCmd; import com.zcloud.gbscommon.dahua.cmd.DaHuaTempVehicleSaveCmd; import com.zcloud.gbscommon.dahua.facade.ZcloudDaHuaFacade; import com.zcloud.primeport.domain.gateway.DaHuaGateway; -import com.zcloud.primeport.domain.model.DaHuaAccessRecordSyncResultE; -import com.zcloud.primeport.domain.model.DaHuaResourceSyncResultE; -import com.zcloud.primeport.dto.DaHuaAccessRecordSyncCmd; -import com.zcloud.primeport.dto.DaHuaResourceSyncCmd; -import com.zcloud.primeport.dto.clientobject.DaHuaAccessRecordSyncResultCO; -import com.zcloud.primeport.dto.clientobject.DaHuaResourceSyncResultCO; import org.apache.dubbo.config.annotation.DubboService; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,12 +25,6 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { @Autowired private DaHuaGateway daHuaGateway; - @Autowired - private DaHuaResourceSyncApplicationService daHuaResourceSyncApplicationService; - - @Autowired - private DaHuaAccessRecordSyncApplicationService daHuaAccessRecordSyncApplicationService; - private Long resolveDahuaDeptId(Long corpId) { if (corpId == null) { return null; @@ -103,7 +90,6 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); resp.setData(passed); - System.out.println("大华修改人员最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + resp.getData()); return resp; } @@ -119,7 +105,6 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); resp.setData(passed); - System.out.println("大华删除人员最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + resp.getData()); return resp; } @@ -136,47 +121,12 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); resp.setData(passed); - System.out.println("大华新增车辆最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + resp.getData()); return resp; } @Override public SingleResponse updateCar(DaHuaCarAddCmd cmd) { cmd.setDepartmentId(resolveDahuaDeptId(cmd.getDepartmentId())); - if ((cmd.getCarCode() == null || cmd.getCarCode().trim().isEmpty()) - && cmd.getCarNum() != null && !cmd.getCarNum().trim().isEmpty()) { - DaHuaCarPageCmd pageCmd = new DaHuaCarPageCmd(); - pageCmd.setCarNumList(java.util.Collections.singletonList(cmd.getCarNum())); - System.out.println("大华修改车辆:carCode为空,尝试根据carNum=" + cmd.getCarNum() + "查询carCode"); - Map pageResult = daHuaGateway.pageCar(pageCmd); - Boolean pagePassed = (Boolean) pageResult.get("passed"); - @SuppressWarnings("unchecked") - Map pageDataMap = (Map) pageResult.get("data"); - if (pagePassed != null && pagePassed && pageDataMap != null) { - Object pageDataObj = pageDataMap.get("pageData"); - if (pageDataObj instanceof java.util.List) { - @SuppressWarnings("unchecked") - java.util.List> pageDataList = (java.util.List>) pageDataObj; - for (Map item : pageDataList) { - Object carNumObj = item.get("carNum"); - if (carNumObj != null && cmd.getCarNum().equals(carNumObj.toString())) { - Object carCodeObj = item.get("carCode"); - if (carCodeObj != null) { - String foundCarCode = carCodeObj.toString(); - cmd.setCarCode(foundCarCode); - System.out.println("大华修改车辆:根据carNum=" + cmd.getCarNum() + "自动匹配到carCode=" + foundCarCode); - if (cmd.getDepartmentId() == null && item.get("departmentId") != null) { - Long deptId = Long.valueOf(item.get("departmentId").toString()); - cmd.setDepartmentId(deptId); - System.out.println("大华修改车辆:自动补充departmentId=" + deptId); - } - break; - } - } - } - } - } - } Map updateResult = daHuaGateway.updateCar(cmd); Boolean passed = (Boolean) updateResult.get("passed"); Boolean dhSuccess = (Boolean) updateResult.get("success"); @@ -187,12 +137,10 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); resp.setData(passed); - System.out.println("大华修改车辆最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + resp.getData()); return resp; } @Override - @SuppressWarnings("unchecked") public SingleResponse> pageCar(DaHuaCarPageCmd cmd) { Map pageResult = daHuaGateway.pageCar(cmd); Boolean passed = (Boolean) pageResult.get("passed"); @@ -205,7 +153,6 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); resp.setData(dhData); - System.out.println("大华车辆分页查询最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + (dhData != null ? "已返回数据" : "null")); return resp; } @@ -221,12 +168,10 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); resp.setData(passed); - System.out.println("大华删除车辆最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + resp.getData()); return resp; } @Override - @SuppressWarnings("unchecked") public SingleResponse> queryAccessRecord(DaHuaAccessRecordCmd cmd) { Map queryResult = daHuaGateway.queryAccessRecord(cmd); Boolean passed = (Boolean) queryResult.get("passed"); @@ -243,16 +188,6 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { return resp; } - public SingleResponse syncAccessRecords(DaHuaAccessRecordSyncCmd cmd) { - int pageSize = cmd.getPageSize() == null ? 1000 : cmd.getPageSize(); - DaHuaAccessRecordSyncResultE result = daHuaAccessRecordSyncApplicationService.sync( - cmd.getStartSwingTime(), cmd.getEndSwingTime(), cmd.getStartCreateTime(), - cmd.getEndCreateTime(), pageSize); - DaHuaAccessRecordSyncResultCO data = new DaHuaAccessRecordSyncResultCO(); - BeanUtils.copyProperties(result, data); - return SingleResponse.of(data); - } - @Override public SingleResponse saveTempVehicle(DaHuaTempVehicleSaveCmd cmd) { cmd.setDepartmentId(resolveDahuaDeptId(cmd.getDepartmentId())); @@ -285,15 +220,4 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade { System.out.println("大华临时车辆全量保存最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data(dhData):" + dhData); return resp; } - - public SingleResponse syncResources(DaHuaResourceSyncCmd cmd) { - DaHuaResourceSyncCmd actualCmd = cmd == null ? new DaHuaResourceSyncCmd() : cmd; - int pageSize = actualCmd.getPageSize() == null ? 200 : actualCmd.getPageSize(); - boolean autoMatchByName = actualCmd.getAutoMatchByName() == null || actualCmd.getAutoMatchByName(); - DaHuaResourceSyncResultE result = daHuaResourceSyncApplicationService.sync( - pageSize, actualCmd.getSubsystem(), autoMatchByName); - DaHuaResourceSyncResultCO data = new DaHuaResourceSyncResultCO(); - BeanUtils.copyProperties(result, data); - return SingleResponse.of(data); - } } \ No newline at end of file diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/dahua/api/DaHuaPersonApi.java b/web-infrastructure/src/main/java/com/zcloud/primeport/dahua/api/DaHuaPersonApi.java index 1d1a0e6..cc7ff78 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/dahua/api/DaHuaPersonApi.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/dahua/api/DaHuaPersonApi.java @@ -25,7 +25,7 @@ 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 UPLOAD_PERSON_IMG_URL = "/evo-apigw/evo-brm/1.0.0/person/uploadFace"; + private static final String UPLOAD_PERSON_IMG_URL = "/evo-apigw/evo-brm/1.0.0/person/subsystem/third/upload/img"; private static final String TEMP_VEHICLE_AUDIT_URL = "/evo-apigw/evo-brm/1.0.0/tempVehicle/saveAudit"; public boolean isConfigured() { @@ -142,7 +142,7 @@ public class DaHuaPersonApi { Map headers = new HashMap<>(); headers.put("Authorization", "bearer " + token); Map body = new HashMap<>(); - body.put("faceData", imageBase64); + body.put("imageBase64", imageBase64); return daHuaApiClient.postJson(UPLOAD_PERSON_IMG_URL, body, headers); } @@ -155,4 +155,4 @@ public class DaHuaPersonApi { headers.put("Authorization", "bearer " + token); return daHuaApiClient.postJson(TEMP_VEHICLE_AUDIT_URL, body, headers); } -} \ No newline at end of file +} diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/plan/DaHuaAccessRecordSyncXxlJob.java b/web-infrastructure/src/main/java/com/zcloud/primeport/plan/DaHuaAccessRecordSyncXxlJob.java index 00c1c97..0a6f0b8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/plan/DaHuaAccessRecordSyncXxlJob.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/plan/DaHuaAccessRecordSyncXxlJob.java @@ -11,7 +11,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -@Component +// @Component @RequiredArgsConstructor @Slf4j public class DaHuaAccessRecordSyncXxlJob implements Job { @@ -40,4 +40,4 @@ public class DaHuaAccessRecordSyncXxlJob implements Job { return ReturnT.FAIL; } } -} +} \ No newline at end of file