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 2c24e056d..4c4d02309 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 @@ -1378,12 +1378,60 @@ public class UserShipperApplicationService { userShipperDO.setUpdateTime(DateUtil.date()); UserShipperEntity userShipperEntity = userShipperDomainService.saveUserShipperByUserId(userShipperDO); userShipperDO.setShipperId(userShipperEntity.getShipperId()); - authShipper(userShipperDO); + authEnterpriseShipperForMasterData(userShipperDO, loginUser); UserShipperEntity shipperEntity = userShipperDomainService.findShipperByUserId(user.getUserId()); syncWlhyShipperSafely(shipperEntity, record.getCode()); } + /** + * MDM 同步专用审核:只更新认证状态,不复制登录人全部角色、不开钱包、不发通知;网货由 syncWlhyShipperSafely 处理。 + */ + private void authEnterpriseShipperForMasterData(UserShipperDO userShipperDO, LoginUser loginUser) { + if (userShipperDO.getAuthType() == null || userShipperDO.getAuthType() != 2) { + throw new ServiceException("MDM同步仅支持企业委托方审核"); + } + if (userShipperDO.getShipperAuthStatus() != 3) { + throw new ServiceException("MDM同步审核状态错误"); + } + Long authUserId; + String authUserName; + if (ObjectUtil.isNotNull(userShipperDO.getAutomaticCheckUserInfo()) + && ObjectUtil.equal(userShipperDO.getAutomaticCheckUserInfo(), 1) + && loginUser.getOrganizationPo() != null + && loginUser.getOrganizationPo().getPrincipalId() != null) { + authUserId = loginUser.getOrganizationPo().getPrincipalId(); + authUserName = loginUser.getOrganizationPo().getPrincipalName(); + } else { + authUserId = loginUser.getUserPo().getUserId(); + authUserName = loginUser.getUserPo().getUserName(); + } + String remark = "MDM主数据自动审核"; + userShipperDO.setShipperFill(userShipperDO.getShipperAuthStatus()); + userShipperDO.setShipperFillAuthId(authUserId); + userShipperDO.setShipperFillAuthName(authUserName); + userShipperDO.setShipperFillTime(DateUtil.date()); + userShipperDO.setShipperFillRemark(remark); + userShipperDO.setShipperEnterpriseFill(userShipperDO.getShipperAuthStatus()); + userShipperDO.setShipperType(2); + userShipperDO.setShipperEnterpriselAuthId(authUserId); + userShipperDO.setShipperEnterpriselAuthName(authUserName); + userShipperDO.setShipperEnterpriseFillTime(DateUtil.date()); + userShipperDO.setShipperEnterpriseFillRemark(remark); + + UserDO userDO = new UserDO(); + userDO.setUserId(userShipperDO.getUserId()); + userDO.setUserAuthStatus(userShipperDO.getShipperAuthStatus()); + userDO.setUserAuthTime(userShipperDO.getShipperFillTime()); + userDO.setUserAuthByUsername(authUserName); + userApplicationService.updateUser(userDO); + + userShipperDO.setUpdateByName(loginUser.getUsername()); + userShipperDO.setUpdateBy(loginUser.getUserid()); + userShipperDO.setUpdateTime(new Date()); + userShipperDomainService.saveUserShipper(userShipperDO); + } + @Transactional(rollbackFor = Exception.class) public void updateEnterpriseShipperFromMasterData(MdmMerchantRecordDTO record, UserShipperPo existing, LoginUser loginUser, Long targetOrganizationId, diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperMasterDataSyncService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperMasterDataSyncService.java index 02754c6d2..b679eb16b 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperMasterDataSyncService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperMasterDataSyncService.java @@ -204,6 +204,11 @@ public class UserShipperMasterDataSyncService { log.error(msg, e); } } + log.info("MDM同步进度 page={}/{}, 本页{}条, 累计新增={}, 更新={}, 跳过={}, 失败={}", + currentPage, pageData.getTotalPages() != null ? pageData.getTotalPages() : "?", + pageData.getDataInfo().size(), + resultVo.getAddCount(), resultVo.getUpdateCount(), + resultVo.getSkipCount(), resultVo.getFailCount()); totalPages = pageData.getTotalPages(); if (totalPages == null || totalPages <= 0) { break;