From 0d3602410555dafdb542a377cc1ba1bb60177414 Mon Sep 17 00:00:00 2001 From: shenzhidan Date: Tue, 28 Jul 2026 17:08:43 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=90=8C=E6=AD=A5=E5=A4=A7=E5=8D=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/PersonApplyRemoveExe.java | 20 +++++++++++++++ .../command/PersonApplyUpdateExe.java | 6 +++++ .../command/VehicleApplyRemoveExe.java | 17 +++++++++++++ .../command/VehicleAuditUpdateExe.java | 2 ++ .../domain/gateway/DaHuaGateway.java | 4 ++- .../domain/gateway/PersonApplyGateway.java | 2 ++ .../domain/model/DaHuaPersonSyncCmd.java | 6 ++++- .../primeport/dahua/api/DaHuaPersonApi.java | 15 ++++++++++- .../gatewayimpl/DaHuaGatewayImpl.java | 25 ++++++++++++++++++- .../gatewayimpl/PersonApplyGatewayImpl.java | 11 ++++++++ 10 files changed, 104 insertions(+), 4 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyRemoveExe.java b/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyRemoveExe.java index d580e73..fff4996 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyRemoveExe.java @@ -2,10 +2,15 @@ package com.zcloud.primeport.command; import com.alibaba.cola.exception.BizException; import com.zcloud.primeport.domain.gateway.PersonApplyGateway; +import com.zcloud.primeport.domain.model.PersonApplyE; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + /** * web-app @@ -17,23 +22,38 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class PersonApplyRemoveExe { private final PersonApplyGateway personApplyGateway; + private final DaHuaPersonSyncExe daHuaPersonSyncExe; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { + PersonApplyE person = findPerson(id); boolean res = personApplyGateway.deletedPersonApplyById(id); if (!res) { throw new BizException("删除失败"); } + daHuaPersonSyncExe.syncDeletedPersons(person == null ? Collections.emptyList() : Collections.singletonList(person)); return true; } @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { + List persons = new ArrayList<>(); + for (Long id : ids) { + PersonApplyE person = findPerson(id); + if (person != null) { + persons.add(person); + } + } boolean res = personApplyGateway.deletedPersonApplyByIds(ids); if (!res) { throw new BizException("删除失败"); } + daHuaPersonSyncExe.syncDeletedPersons(persons); return true; } + + private PersonApplyE findPerson(Long id) { + return personApplyGateway.getPersonById(id); + } } diff --git a/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyUpdateExe.java b/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyUpdateExe.java index f25a932..84128a7 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/PersonApplyUpdateExe.java @@ -37,15 +37,18 @@ public class PersonApplyUpdateExe { private final XgfApplyPersonGateway xgfApplyPersonGateway; private final MessageNoticeExe messageNoticeExe; private final MessageTemplateConfig messageTemplateConfig; + private final DaHuaPersonSyncExe daHuaPersonSyncExe; @Transactional(rollbackFor = Exception.class) public void execute(PersonApplyUpdateCmd personApplyUpdateCmd) { + PersonApplyE original = personApplyGateway.getPersonById(personApplyUpdateCmd.getId()); PersonApplyE personApplyE = new PersonApplyE(); BeanUtils.copyProperties(personApplyUpdateCmd, personApplyE); boolean res = personApplyGateway.update(personApplyE); if (!res) { throw new BizException("修改失败"); } + daHuaPersonSyncExe.syncUpdatedPerson(original, personApplyUpdateCmd); } @Transactional(rollbackFor = Exception.class) @@ -56,6 +59,9 @@ public class PersonApplyUpdateExe { .reasonsRefusal(cmd.getReasonsRefusal()).build(); build.setId(cmd.getId()); personApplyGateway.xgfPersonAudit(build); + if (cmd.getAuditFlag().equals(2)) { + daHuaPersonSyncExe.syncApprovedPersons(build.getId()); + } // 完成待办 messageNoticeExe.sendMessageCompleteEvent(build.getId()); diff --git a/web-app/src/main/java/com/zcloud/primeport/command/VehicleApplyRemoveExe.java b/web-app/src/main/java/com/zcloud/primeport/command/VehicleApplyRemoveExe.java index d219c1c..798397c 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/VehicleApplyRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/VehicleApplyRemoveExe.java @@ -3,10 +3,15 @@ package com.zcloud.primeport.command; import com.alibaba.cola.exception.BizException; import com.zcloud.primeport.domain.gateway.VehicleApplyGateway; import com.zcloud.primeport.domain.gateway.VehicleAuditGateway; +import com.zcloud.primeport.domain.model.VehicleApplyE; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + /** * web-app @@ -19,23 +24,35 @@ import org.springframework.transaction.annotation.Transactional; public class VehicleApplyRemoveExe { private final VehicleApplyGateway vehicleApplyGateway; private final VehicleAuditGateway vehicleAuditGateway; + private final DaHuaVehicleSyncExe daHuaVehicleSyncExe; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { + VehicleApplyE vehicle = vehicleApplyGateway.getById(id); boolean res = vehicleApplyGateway.deletedVehicleApplyById(id); vehicleAuditGateway.deletedVehicleAuditByApplyId(id); if (!res) { throw new BizException("删除失败"); } + daHuaVehicleSyncExe.syncDeletedVehicles(vehicle == null + ? Collections.emptyList() : Collections.singletonList(vehicle)); return true; } @Transactional(rollbackFor = Exception.class) public boolean execute(Long[] ids) { + List vehicles = new ArrayList<>(); + for (Long id : ids) { + VehicleApplyE vehicle = vehicleApplyGateway.getById(id); + if (vehicle != null) { + vehicles.add(vehicle); + } + } boolean res = vehicleApplyGateway.deletedVehicleApplyByIds(ids); if (!res) { throw new BizException("删除失败"); } + daHuaVehicleSyncExe.syncDeletedVehicles(vehicles); return true; } } diff --git a/web-app/src/main/java/com/zcloud/primeport/command/VehicleAuditUpdateExe.java b/web-app/src/main/java/com/zcloud/primeport/command/VehicleAuditUpdateExe.java index 0b3a330..c51733e 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/VehicleAuditUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/VehicleAuditUpdateExe.java @@ -36,6 +36,7 @@ public class VehicleAuditUpdateExe { private final CarDockUtil carDockUtil; private final MessageNoticeExe messageNoticeExe; private final MessageTemplateConfig messageTemplateConfig; + private final DaHuaVehicleSyncExe daHuaVehicleSyncExe; @Transactional(rollbackFor = Exception.class) public void execute(VehicleAuditUpdateCmd vehicleAuditUpdateCmd) { @@ -76,6 +77,7 @@ public class VehicleAuditUpdateExe { } else { carDockUtil.executeInternalVehicle(vehicleApplyE1); } + daHuaVehicleSyncExe.syncApprovedVehicle(cmd.getVehicleApplyId()); } // 完成待办 diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/DaHuaGateway.java b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/DaHuaGateway.java index 857d4a8..b050a09 100644 --- a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/DaHuaGateway.java +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/DaHuaGateway.java @@ -12,6 +12,8 @@ public interface DaHuaGateway { Long generatePersonId(); + Long findPersonIdByPaperNumber(String paperNumber); + Map syncPerson(DaHuaPersonSyncCmd cmd); Map updatePerson(DaHuaPersonSyncCmd cmd); @@ -27,4 +29,4 @@ public interface DaHuaGateway { Map deleteCar(List carNumList); Map queryAccessRecord(DaHuaAccessRecordCmd cmd); -} \ No newline at end of file +} diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/PersonApplyGateway.java b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/PersonApplyGateway.java index b4ce97f..eef4eec 100644 --- a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/PersonApplyGateway.java +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/PersonApplyGateway.java @@ -37,6 +37,8 @@ public interface PersonApplyGateway { List personListByxgfApplyPersonId(Long id); + PersonApplyE getPersonById(Long id); + XgfApplyPersonE getXgfApplyPersonById(Long id); } diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/model/DaHuaPersonSyncCmd.java b/web-domain/src/main/java/com/zcloud/primeport/domain/model/DaHuaPersonSyncCmd.java index 6e0bc31..46d71a7 100644 --- a/web-domain/src/main/java/com/zcloud/primeport/domain/model/DaHuaPersonSyncCmd.java +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/model/DaHuaPersonSyncCmd.java @@ -23,6 +23,10 @@ public class DaHuaPersonSyncCmd { private Long departmentId; + private Integer departmentType; + + private Integer type; + private Integer personType; private Integer availableTimes; @@ -74,4 +78,4 @@ public class DaHuaPersonSyncCmd { private String path; private String base64Data; } -} \ 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 e9dacb6..287f346 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 @@ -18,6 +18,7 @@ public class DaHuaPersonApi { private static final String PERSON_ADD_URL = "/evo-apigw/evo-brm/1.2.0/person/subsystem/add"; private static final String PERSON_UPDATE_URL = "/evo-apigw/evo-brm/1.2.0/person/subsystem/update"; private static final String PERSON_GENERATE_ID_URL = "/evo-apigw/evo-brm/1.0.0/person/generate-id"; + private static final String PERSON_GET_BY_PAPER_NUMBER_URL = "/evo-apigw/evo-brm/1.2.0/person/subsystem/get-by-paper-number"; private static final String PERSON_DELETE_URL = "/evo-apigw/evo-brm/1.0.0/person/delete"; private static final String CAR_ADD_URL = "/evo-apigw/evo-brm/1.0.0/car/add"; private static final String CAR_UPDATE_URL = "/evo-apigw/evo-brm/1.0.0/car/update"; @@ -59,6 +60,18 @@ public class DaHuaPersonApi { return daHuaApiClient.getForm(PERSON_GENERATE_ID_URL, null, headers); } + public GeneralResponse getPersonByPaperNumber(String paperNumber) throws ClientException { + if (daHuaApiClient == null) { + return null; + } + String token = daHuaApiClient.getToken(); + Map headers = new HashMap<>(); + headers.put("Authorization", "bearer " + token); + Map params = new HashMap<>(); + params.put("paperNumber", paperNumber); + return daHuaApiClient.getForm(PERSON_GET_BY_PAPER_NUMBER_URL, params, headers); + } + public GeneralResponse deletePerson(Map body) throws ClientException { if (daHuaApiClient == null) { return null; @@ -118,4 +131,4 @@ public class DaHuaPersonApi { headers.put("Authorization", "bearer " + token); return daHuaApiClient.postJson(ACCESS_RECORD_URL, body, headers); } -} \ No newline at end of file +} diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/DaHuaGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/DaHuaGatewayImpl.java index 940669f..fe5f5a6 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/DaHuaGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/DaHuaGatewayImpl.java @@ -71,6 +71,29 @@ public class DaHuaGatewayImpl implements DaHuaGateway { } } + @Override + public Long findPersonIdByPaperNumber(String paperNumber) { + if (daHuaPersonApi == null || !daHuaPersonApi.isConfigured()) { + throw new RuntimeException("大华服务未配置"); + } + try { + GeneralResponse response = daHuaPersonApi.getPersonByPaperNumber(paperNumber); + if (response == null || !"0".equals(response.getCode())) { + return null; + } + JSONObject responseJson = JSONUtil.parseObj(JSONUtil.toJsonStr(response)); + String result = responseJson.getStr("result"); + if (result == null || result.isEmpty()) { + return null; + } + JSONObject resultJson = JSONUtil.parseObj(result); + JSONObject data = resultJson.getJSONObject("data"); + return data == null || data.isEmpty() ? null : data.getLong("id"); + } catch (ClientException e) { + throw new RuntimeException("查询大华人员失败", e); + } + } + @Override public Map syncPerson(DaHuaPersonSyncCmd cmd) { if (daHuaPersonApi == null || !daHuaPersonApi.isConfigured()) { @@ -564,4 +587,4 @@ public class DaHuaGatewayImpl implements DaHuaGateway { return resultMap; } } -} \ No newline at end of file +} diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/PersonApplyGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/PersonApplyGatewayImpl.java index 50744a5..65dba8e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/PersonApplyGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/PersonApplyGatewayImpl.java @@ -207,6 +207,17 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway { return xgfApplyPersonES; } + @Override + public PersonApplyE getPersonById(Long id) { + PersonApplyDO personApplyDO = personApplyRepository.getById(id); + if (personApplyDO == null) { + return null; + } + PersonApplyE personApplyE = new PersonApplyE(); + BeanUtils.copyProperties(personApplyDO, personApplyE); + return personApplyE; + } + @Override public XgfApplyPersonE getXgfApplyPersonById (Long id) { XgfApplyPersonDO byId = xgfApplyPersonRepository.getById(id);