Merge remote-tracking branch 'origin/dev' into dev
commit
5c96b6d062
|
|
@ -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;
|
||||
}
|
||||
if (isRelatedPartyVehicle(vehicle)) {
|
||||
syncAddedVehicle(vehicle);
|
||||
} else if (isTempVehicle(vehicle)) {
|
||||
syncTempVehicle(vehicle);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除相关方车辆时,同步删除对应的大华车辆。
|
||||
*/
|
||||
public void syncDeletedVehicles(List<VehicleApplyE> 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<String, Object> 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<String, Object> result, String message) {
|
||||
if (result == null || !Boolean.TRUE.equals(result.get("passed"))) {
|
||||
Object errorMessage = result == null ? null : result.get("errMsg");
|
||||
|
|
|
|||
|
|
@ -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<Boolean> 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<String, Object> pageResult = daHuaGateway.pageCar(pageCmd);
|
||||
Boolean pagePassed = (Boolean) pageResult.get("passed");
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> pageDataMap = (Map<String, Object>) 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<Map<String, Object>> pageDataList = (java.util.List<Map<String, Object>>) pageDataObj;
|
||||
for (Map<String, Object> 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<String, Object> 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<Map<String, Object>> pageCar(DaHuaCarPageCmd cmd) {
|
||||
Map<String, Object> 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<Map<String, Object>> queryAccessRecord(DaHuaAccessRecordCmd cmd) {
|
||||
Map<String, Object> queryResult = daHuaGateway.queryAccessRecord(cmd);
|
||||
Boolean passed = (Boolean) queryResult.get("passed");
|
||||
|
|
@ -243,16 +188,6 @@ public class DaHuaServiceImpl implements ZcloudDaHuaFacade {
|
|||
return resp;
|
||||
}
|
||||
|
||||
public SingleResponse<DaHuaAccessRecordSyncResultCO> 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<Object> 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<DaHuaResourceSyncResultCO> 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", "bearer " + token);
|
||||
Map<String, Object> body = new HashMap<>();
|
||||
body.put("faceData", imageBase64);
|
||||
body.put("imageBase64", imageBase64);
|
||||
return daHuaApiClient.postJson(UPLOAD_PERSON_IMG_URL, body, headers);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue