From 1d8809bbdf4d09d1d7798e43903dce3f17b7d744 Mon Sep 17 00:00:00 2001 From: zhangxiongfeng Date: Mon, 27 Jul 2026 19:08:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B0=E5=A2=9E=E4=BA=BA?= =?UTF-8?q?=E5=91=98id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zcloud/primeport/web/DaHuaController.java | 2 +- .../primeport/service/DaHuaServiceImpl.java | 9 +++--- .../zcloud/primeport/api/DaHuaServiceI.java | 2 +- .../gatewayimpl/DaHuaGatewayImpl.java | 30 +++++++++++++++++-- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/DaHuaController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/DaHuaController.java index dd09935..56beda7 100644 --- a/web-adapter/src/main/java/com/zcloud/primeport/web/DaHuaController.java +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/DaHuaController.java @@ -35,7 +35,7 @@ public class DaHuaController { @ApiOperation("同步人员到大华平台-新增") @PostMapping("/person/sync") - public SingleResponse syncPerson(@Validated @RequestBody DaHuaPersonSyncCmd cmd) { + public SingleResponse syncPerson(@Validated @RequestBody DaHuaPersonSyncCmd cmd) { if (daHuaService == null) { throw new RuntimeException("大华服务未配置"); 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 5f7adac..7e29ce8 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 @@ -28,7 +28,7 @@ public class DaHuaServiceImpl implements DaHuaServiceI { } @Override - public SingleResponse syncPerson(DaHuaPersonSyncCmd cmd) { + public SingleResponse syncPerson(DaHuaPersonSyncCmd cmd) { Long personId = daHuaGateway.generatePersonId(); System.out.println("大华自动生成人员ID: " + personId); cmd.setId(personId); @@ -37,12 +37,13 @@ public class DaHuaServiceImpl implements DaHuaServiceI { Boolean dhSuccess = (Boolean) syncResult.get("success"); String dhCode = (String) syncResult.get("code"); String dhErrMsg = (String) syncResult.get("errMsg"); - SingleResponse resp = new SingleResponse<>(); + Object dhData = syncResult.get("dhData"); + SingleResponse resp = new SingleResponse<>(); resp.setSuccess(dhSuccess != null ? dhSuccess : passed); resp.setErrCode(dhCode); resp.setErrMessage(dhErrMsg); - resp.setData(passed); - System.out.println("大华同步人员最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + resp.getData()); + resp.setData(dhData); + System.out.println("大华同步人员最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data(dhData):" + dhData); return resp; } diff --git a/web-client/src/main/java/com/zcloud/primeport/api/DaHuaServiceI.java b/web-client/src/main/java/com/zcloud/primeport/api/DaHuaServiceI.java index e1c22a4..af2ef8a 100644 --- a/web-client/src/main/java/com/zcloud/primeport/api/DaHuaServiceI.java +++ b/web-client/src/main/java/com/zcloud/primeport/api/DaHuaServiceI.java @@ -15,7 +15,7 @@ public interface DaHuaServiceI { SingleResponse generatePersonId(); - SingleResponse syncPerson(DaHuaPersonSyncCmd cmd); + SingleResponse syncPerson(DaHuaPersonSyncCmd cmd); SingleResponse updatePerson(DaHuaPersonSyncCmd cmd); 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..70d0c4f 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 @@ -91,19 +91,44 @@ public class DaHuaGatewayImpl implements DaHuaGateway { resultMap.put("success", false); resultMap.put("code", "SYSTEM_ERROR"); resultMap.put("errMsg", "response为null"); + resultMap.put("dhData", null); return resultMap; } JSONObject jsonObject = JSONUtil.parseObj(responseJson); Boolean dhSuccess = jsonObject.getBool("success", false); String dhCode = jsonObject.getStr("code", response.getCode()); String dhErrMsg = jsonObject.getStr("errMsg", ""); - String dhResult = jsonObject.getStr("result", ""); + Object dhResultObj = jsonObject.get("result"); + Object dhData = jsonObject.get("data"); + if (dhResultObj != null) { + try { + JSONObject bizObj; + if (dhResultObj instanceof String) { + bizObj = JSONUtil.parseObj((String) dhResultObj); + } else if (dhResultObj instanceof JSONObject) { + bizObj = (JSONObject) dhResultObj; + } else { + bizObj = JSONUtil.parseObj(JSONUtil.toJsonStr(dhResultObj)); + } + dhSuccess = bizObj.getBool("success", dhSuccess); + dhCode = bizObj.getStr("code", dhCode); + dhErrMsg = bizObj.getStr("errMsg", dhErrMsg); + Object tmpData = bizObj.get("data"); + if (tmpData != null) { + dhData = tmpData; + } + } catch (Exception e) { + log.warn("大华同步人员解析result字段失败: {}", e.getMessage()); + } + } boolean passed = "0".equals(dhCode); resultMap.put("passed", passed); resultMap.put("success", dhSuccess); resultMap.put("code", dhCode); resultMap.put("errMsg", dhErrMsg); - resultMap.put("result", dhResult); + resultMap.put("result", dhResultObj); + resultMap.put("dhData", dhData); + System.out.println("大华同步人员返回dhData: " + dhData); if (!passed) { log.error("大华同步人员失败: code={}, errMsg={}, response={}", dhCode, dhErrMsg, responseJson); System.out.println("大华同步人员失败: code=" + dhCode + ", errMsg=" + dhErrMsg); @@ -115,6 +140,7 @@ public class DaHuaGatewayImpl implements DaHuaGateway { resultMap.put("success", false); resultMap.put("code", "CLIENT_EXCEPTION"); resultMap.put("errMsg", e.getMessage()); + resultMap.put("dhData", null); return resultMap; } }