客商主数据同步修改
This commit is contained in:
+3
@@ -27,4 +27,7 @@ public class MdmMerchantQueryDTO implements Serializable {
|
||||
|
||||
@ApiModelProperty("一级组织ID,用于读取三方接口配置")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("当前同步组织ID,用于 desc24 为空时判定南光组织体系")
|
||||
private Long syncOrganizationId;
|
||||
}
|
||||
|
||||
+50
-3
@@ -9,6 +9,9 @@ public final class MdmMerchantSyncFilter {
|
||||
|
||||
private static final String MDM_FLAG_YES = "1";
|
||||
|
||||
/** 南光组织 ID,仅南光本组织(2827)同步时 desc24 为空写入该组织 */
|
||||
public static final Long NANGUANG_ORGANIZATION_ID = 2827L;
|
||||
|
||||
private MdmMerchantSyncFilter() {
|
||||
}
|
||||
|
||||
@@ -22,10 +25,44 @@ public final class MdmMerchantSyncFilter {
|
||||
}
|
||||
|
||||
public static boolean belongsToOrg(String recordDesc24, String orgNcCode) {
|
||||
return belongsToOrg(recordDesc24, orgNcCode, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* desc24 与 orgNcCode 一致则匹配;desc24 为空仅当同步组织为南光(2827)时匹配。
|
||||
*/
|
||||
public static boolean belongsToOrg(String recordDesc24, String orgNcCode,
|
||||
Long syncOrganizationId, Long topOrganizationId) {
|
||||
if (StringUtils.isEmpty(orgNcCode)) {
|
||||
return true;
|
||||
}
|
||||
return orgNcCode.equals(trim(recordDesc24));
|
||||
String desc24 = trim(recordDesc24);
|
||||
if (orgNcCode.equals(desc24)) {
|
||||
return true;
|
||||
}
|
||||
if (StringUtils.isEmpty(desc24)) {
|
||||
return isNanguangOrganization(syncOrganizationId);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** 是否南光本组织(不含下级组织) */
|
||||
public static boolean isNanguangOrganization(Long syncOrganizationId) {
|
||||
return NANGUANG_ORGANIZATION_ID.equals(syncOrganizationId);
|
||||
}
|
||||
|
||||
public static boolean isEmptyDesc24(String recordDesc24) {
|
||||
return StringUtils.isEmpty(trim(recordDesc24));
|
||||
}
|
||||
|
||||
/**
|
||||
* desc24 为空且由南光本组织(2827)发起同步时,写入南光组织;否则写入当前同步组织。
|
||||
*/
|
||||
public static Long resolveSaveOrganizationId(MdmMerchantRecordDTO record, Long syncOrganizationId) {
|
||||
if (record != null && isEmptyDesc24(record.getDesc24()) && isNanguangOrganization(syncOrganizationId)) {
|
||||
return NANGUANG_ORGANIZATION_ID;
|
||||
}
|
||||
return syncOrganizationId;
|
||||
}
|
||||
|
||||
public static boolean isCustomer(MdmMerchantRecordDTO record) {
|
||||
@@ -44,10 +81,20 @@ public final class MdmMerchantSyncFilter {
|
||||
* 判断是否应同步到委托方列表
|
||||
*/
|
||||
public static boolean shouldSync(MdmMerchantRecordDTO record, String orgNcCode) {
|
||||
return resolveSkipReason(record, orgNcCode) == null;
|
||||
return resolveSkipReason(record, orgNcCode, null, null) == null;
|
||||
}
|
||||
|
||||
public static boolean shouldSync(MdmMerchantRecordDTO record, String orgNcCode,
|
||||
Long syncOrganizationId, Long topOrganizationId) {
|
||||
return resolveSkipReason(record, orgNcCode, syncOrganizationId, topOrganizationId) == null;
|
||||
}
|
||||
|
||||
public static SkipReason resolveSkipReason(MdmMerchantRecordDTO record, String orgNcCode) {
|
||||
return resolveSkipReason(record, orgNcCode, null, null);
|
||||
}
|
||||
|
||||
public static SkipReason resolveSkipReason(MdmMerchantRecordDTO record, String orgNcCode,
|
||||
Long syncOrganizationId, Long topOrganizationId) {
|
||||
if (record == null || StringUtils.isEmpty(record.getCode())) {
|
||||
return SkipReason.EMPTY_CODE;
|
||||
}
|
||||
@@ -57,7 +104,7 @@ public final class MdmMerchantSyncFilter {
|
||||
if (StringUtils.isNotEmpty(orgNcCode) && orgNcCode.equals(trim(record.getCode()))) {
|
||||
return SkipReason.INTERNAL_ORG;
|
||||
}
|
||||
if (!belongsToOrg(record.getDesc24(), orgNcCode)) {
|
||||
if (!belongsToOrg(record.getDesc24(), orgNcCode, syncOrganizationId, topOrganizationId)) {
|
||||
return SkipReason.ORG_MISMATCH;
|
||||
}
|
||||
if (StringUtils.isEmpty(trim(record.getDesc1()))) {
|
||||
|
||||
Reference in New Issue
Block a user