客商主数据查询BUG修改1
This commit is contained in:
+4
@@ -15,6 +15,7 @@ public final class MdmMerchantSyncFilter {
|
|||||||
public enum SkipReason {
|
public enum SkipReason {
|
||||||
EMPTY_CODE,
|
EMPTY_CODE,
|
||||||
NOT_CUSTOMER,
|
NOT_CUSTOMER,
|
||||||
|
INTERNAL_ORG,
|
||||||
ORG_MISMATCH,
|
ORG_MISMATCH,
|
||||||
DISABLED,
|
DISABLED,
|
||||||
MISSING_NAME
|
MISSING_NAME
|
||||||
@@ -53,6 +54,9 @@ public final class MdmMerchantSyncFilter {
|
|||||||
if (!isCustomer(record)) {
|
if (!isCustomer(record)) {
|
||||||
return SkipReason.NOT_CUSTOMER;
|
return SkipReason.NOT_CUSTOMER;
|
||||||
}
|
}
|
||||||
|
if (StringUtils.isNotEmpty(orgNcCode) && orgNcCode.equals(trim(record.getCode()))) {
|
||||||
|
return SkipReason.INTERNAL_ORG;
|
||||||
|
}
|
||||||
if (!belongsToOrg(record.getDesc24(), orgNcCode)) {
|
if (!belongsToOrg(record.getDesc24(), orgNcCode)) {
|
||||||
return SkipReason.ORG_MISMATCH;
|
return SkipReason.ORG_MISMATCH;
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-2
@@ -1378,7 +1378,7 @@ public class UserShipperApplicationService {
|
|||||||
authShipper(userShipperDO);
|
authShipper(userShipperDO);
|
||||||
|
|
||||||
UserShipperEntity shipperEntity = userShipperDomainService.findShipperByUserId(user.getUserId());
|
UserShipperEntity shipperEntity = userShipperDomainService.findShipperByUserId(user.getUserId());
|
||||||
wlhyDomainService.addShipperUserInfo(shipperEntity);
|
syncWlhyShipperSafely(shipperEntity, record.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -1388,7 +1388,34 @@ public class UserShipperApplicationService {
|
|||||||
userShipperDO.setDataSource(1);
|
userShipperDO.setDataSource(1);
|
||||||
userShipperDO.setShipperId(existing.getShipperId());
|
userShipperDO.setShipperId(existing.getShipperId());
|
||||||
userShipperDO.setUserId(existing.getUserId());
|
userShipperDO.setUserId(existing.getUserId());
|
||||||
updateShipper(userShipperDO);
|
updateShipperFromMasterData(userShipperDO, record.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MDM 同步:本地更新成功后同步网货,网货失败仅记日志,不阻断主数据同步。
|
||||||
|
*/
|
||||||
|
private void updateShipperFromMasterData(UserShipperDO userShipperDO, String customerCode) {
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
|
if (ObjectUtil.isNull(loginUser)) {
|
||||||
|
throw new DigitalLogisticsException(UserError.TIMEOUT);
|
||||||
|
}
|
||||||
|
UserPo loginUserPo = loginUser.getUserPo();
|
||||||
|
userShipperDO.setUpdateBy(loginUserPo.getUserId());
|
||||||
|
userShipperDO.setUpdateByName(loginUserPo.getUserName());
|
||||||
|
userShipperDO.setUpdateTime(new Date());
|
||||||
|
updateUserInformation(userShipperDO);
|
||||||
|
userShipperDomainService.saveUserShipper(userShipperDO);
|
||||||
|
UserShipperEntity shipperEntity = userShipperDomainService.findShipperByUserId(userShipperDO.getUserId());
|
||||||
|
syncWlhyShipperSafely(shipperEntity, customerCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void syncWlhyShipperSafely(UserShipperEntity shipperEntity, String customerCode) {
|
||||||
|
try {
|
||||||
|
wlhyDomainService.addShipperUserInfo(shipperEntity);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("MDM同步委托方本地保存成功,同步网货失败(不影响主数据同步), CODE={}, userId={}, msg={}",
|
||||||
|
customerCode, shipperEntity.getUserId(), e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserShipperDO buildShipperDOFromMasterData(MdmMerchantRecordDTO record, LoginUser loginUser) {
|
private UserShipperDO buildShipperDOFromMasterData(MdmMerchantRecordDTO record, LoginUser loginUser) {
|
||||||
|
|||||||
+9
-4
@@ -136,6 +136,7 @@ public class UserShipperMasterDataSyncService {
|
|||||||
String maxModifyTime = lastModifyRecordTime;
|
String maxModifyTime = lastModifyRecordTime;
|
||||||
int skipOrgMismatch = 0;
|
int skipOrgMismatch = 0;
|
||||||
int skipNotCustomer = 0;
|
int skipNotCustomer = 0;
|
||||||
|
int skipInternalOrg = 0;
|
||||||
int skipDisabled = 0;
|
int skipDisabled = 0;
|
||||||
int skipOther = 0;
|
int skipOther = 0;
|
||||||
int currentPage = 1;
|
int currentPage = 1;
|
||||||
@@ -157,6 +158,9 @@ public class UserShipperMasterDataSyncService {
|
|||||||
case NOT_CUSTOMER:
|
case NOT_CUSTOMER:
|
||||||
skipNotCustomer++;
|
skipNotCustomer++;
|
||||||
break;
|
break;
|
||||||
|
case INTERNAL_ORG:
|
||||||
|
skipInternalOrg++;
|
||||||
|
break;
|
||||||
case DISABLED:
|
case DISABLED:
|
||||||
skipDisabled++;
|
skipDisabled++;
|
||||||
break;
|
break;
|
||||||
@@ -201,7 +205,7 @@ public class UserShipperMasterDataSyncService {
|
|||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
resultVo.setLastSyncTime(now);
|
resultVo.setLastSyncTime(now);
|
||||||
saveSyncWatermark(organizationId, orgNcCode, maxModifyTime, now, resultVo,
|
saveSyncWatermark(organizationId, orgNcCode, maxModifyTime, now, resultVo,
|
||||||
skipOrgMismatch, skipNotCustomer, skipDisabled, skipOther);
|
skipOrgMismatch, skipNotCustomer, skipInternalOrg, skipDisabled, skipOther);
|
||||||
return resultVo;
|
return resultVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,7 +229,8 @@ public class UserShipperMasterDataSyncService {
|
|||||||
|
|
||||||
private void saveSyncWatermark(Long organizationId, String orgNcCode, String maxModifyTime, Date syncTime,
|
private void saveSyncWatermark(Long organizationId, String orgNcCode, String maxModifyTime, Date syncTime,
|
||||||
ShipperMasterDataSyncResultVo resultVo,
|
ShipperMasterDataSyncResultVo resultVo,
|
||||||
int skipOrgMismatch, int skipNotCustomer, int skipDisabled, int skipOther) {
|
int skipOrgMismatch, int skipNotCustomer, int skipInternalOrg,
|
||||||
|
int skipDisabled, int skipOther) {
|
||||||
UserShipperMdmSyncEntity entity = userShipperMdmSyncMapper.selectByOrganizationId(organizationId);
|
UserShipperMdmSyncEntity entity = userShipperMdmSyncMapper.selectByOrganizationId(organizationId);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
entity = new UserShipperMdmSyncEntity();
|
entity = new UserShipperMdmSyncEntity();
|
||||||
@@ -238,9 +243,9 @@ public class UserShipperMasterDataSyncService {
|
|||||||
entity.setLastSyncTime(syncTime);
|
entity.setLastSyncTime(syncTime);
|
||||||
entity.setSyncStatus(resultVo.getFailCount() > 0 ? 2 : 1);
|
entity.setSyncStatus(resultVo.getFailCount() > 0 ? 2 : 1);
|
||||||
String syncMessage = String.format(
|
String syncMessage = String.format(
|
||||||
"新增%d,更新%d,跳过%d,失败%d;组织NC=%s;跳过明细[组织不匹配:%d,非客户:%d,停用:%d,其他:%d]",
|
"新增%d,更新%d,跳过%d,失败%d;组织NC=%s;跳过明细[组织不匹配:%d,非客户:%d,内部单位:%d,停用:%d,其他:%d]",
|
||||||
resultVo.getAddCount(), resultVo.getUpdateCount(), resultVo.getSkipCount(), resultVo.getFailCount(),
|
resultVo.getAddCount(), resultVo.getUpdateCount(), resultVo.getSkipCount(), resultVo.getFailCount(),
|
||||||
orgNcCode, skipOrgMismatch, skipNotCustomer, skipDisabled, skipOther);
|
orgNcCode, skipOrgMismatch, skipNotCustomer, skipInternalOrg, skipDisabled, skipOther);
|
||||||
if (resultVo.getFailCount() > 0 && !resultVo.getErrorMessages().isEmpty()) {
|
if (resultVo.getFailCount() > 0 && !resultVo.getErrorMessages().isEmpty()) {
|
||||||
syncMessage += ";" + resultVo.getErrorMessages().get(0);
|
syncMessage += ";" + resultVo.getErrorMessages().get(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user