From effa681709e3d1ab1d979fadd329242924344224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Wed, 22 Jul 2026 19:01:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserShipperApplicationService.java | 51 ++++++++++++------- .../MaterialBaseInfoApplicationService.java | 5 +- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java index 5da950d49..0f8202c3a 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java @@ -380,25 +380,38 @@ public class UserShipperApplicationService { if (org.springframework.util.StringUtils.isEmpty(companyName)) continue; total++; try { - UserShipperDO shipperDO = new UserShipperDO(); - shipperDO.setShipperType(2); - shipperDO.setDataSource(2); - shipperDO.setUserAccount(userAccount); - shipperDO.setShipperEnterpriseName(companyName); - String contactName = getCellStr(row.getCell(2)); - String contactPhone = getCellStr(row.getCell(3)); - // 联系人 -> user表 user_name + user_shipper表 user_name_shipper - shipperDO.setUserName(contactName); - shipperDO.setUserNameShipper(contactName); - // 联系电话 -> user表 user_phone - shipperDO.setUserPhone(contactPhone); - // 地址 -> user表 user_area_name,详细地址 -> user表 user_area_address - shipperDO.setUserAreaName(getCellStr(row.getCell(4))); - shipperDO.setUserAreaAddress(getCellStr(row.getCell(5))); - shipperDO.setRemark(getCellStr(row.getCell(6))); - shipperDO.setSettlementCurrency(getCellStr(row.getCell(7))); - addShipper(shipperDO); - success++; + // 先按公司名称查是否已存在委托方 + UserShipperEntity existingShipper = findFirstByShipperEnterpriseNameAcrossOrgs(companyName); + if (existingShipper != null && existingShipper.getShipperId() != null) { + // 已存在:只更新NC客户编码和org_code + appendOrganizationToExistingShipper(existingShipper, + SecurityUtils.getLoginUser().getUserPo().getOrganizationId(), + SecurityUtils.getLoginUser().getUserPo().getOrganizationName(), + userAccount, SecurityUtils.getLoginUser()); + success++; + } else { + UserShipperDO shipperDO = new UserShipperDO(); + shipperDO.setShipperType(2); + shipperDO.setDataSource(2); + shipperDO.setUserAccount(userAccount); + shipperDO.setShipperEnterpriseName(companyName); + // 登录账号同时作为NC客户编码 + shipperDO.setCustomerNcCode(userAccount); + String contactName = getCellStr(row.getCell(2)); + String contactPhone = getCellStr(row.getCell(3)); + // 联系人 -> user表 user_name + user_shipper表 user_name_shipper + shipperDO.setUserName(contactName); + shipperDO.setUserNameShipper(contactName); + // 联系电话 -> user表 user_phone + shipperDO.setUserPhone(contactPhone); + // 地址 -> user表 user_area_name,详细地址 -> user表 user_area_address + shipperDO.setUserAreaName(getCellStr(row.getCell(4))); + shipperDO.setUserAreaAddress(getCellStr(row.getCell(5))); + shipperDO.setRemark(getCellStr(row.getCell(6))); + shipperDO.setSettlementCurrency(getCellStr(row.getCell(7))); + addShipper(shipperDO); + success++; + } } catch (Exception e) { failed++; errors.add("第" + (i + 1) + "行[" + companyName + "]导入失败:" + e.getMessage()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index c30840c5f..401e4e028 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -250,7 +250,10 @@ public class MaterialBaseInfoApplicationService { } } Long shipperId = materialBaseInfoDO.getShipperId(); - String customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString()); + String customerCodeNcJson = null; + if (shipperId != null) { + customerCodeNcJson = materialBaseInfoMapper.getCustomerCodeNcJson(shipperId.toString()); + } if (customerCodeNcJson != null && !customerCodeNcJson.isEmpty()) { ObjectMapper objectMapper = new ObjectMapper(); List> listNc = null;