refactor(job): 优化ERP基础数据同步任务处理逻辑

- 修改ErpBasicDataInformationJob中syncDCPartnerByTimestamp方法参数传递
- 修改SalesBasicDataInformationJob中物料信息同步的数据处理方式
- 修复多个Mapper中查询条件的字段匹配问题
- 在ErpBfPartnerServiceImpl中实现完整的合作伙伴数据处理功能
- 添加对合作伙伴股东、关联关系、控制人、高管等数据的同步处理
- 实现重试机制以提高ERP接口调用的稳定性
- 完善数据同步过程中的错误处理和日志记录
This commit is contained in:
Gjm
2026-05-08 17:25:43 +08:00
parent e2cf38c1cd
commit 726cdb0da6
14 changed files with 4512 additions and 42 deletions

View File

@@ -113,7 +113,7 @@ public class ErpBasicDataInformationJob implements JobHandler {
if (partner.getOfRegion() != null && codeItemsMapping.containsKey(partner.getOfRegion())) {
partner.setOfRegion(codeItemsMapping.get(partner.getOfRegion()));
}
return erpBfPartnerService.syncDCPartnerByTimestamp(partner, time);
return erpBfPartnerService.syncDCPartnerByTimestamp(partner, time,codeItemsMapping);
}
);
@@ -148,12 +148,12 @@ public class ErpBasicDataInformationJob implements JobHandler {
if (materialEntity.getOutboundStrategy() != null && codeItemsMapping.containsKey(materialEntity.getOutboundStrategy())) {
materialEntity.setOutboundStrategy(codeItemsMapping.get(materialEntity.getOutboundStrategy()));
}
return erpMaterialService.syncDCPartnerByTimestamp(data);
return erpMaterialService.syncDCPartnerByTimestamp(data,unitMap,time);
}
);
this.handleMarerialChild(lastSyncTime, unitMap);
// this.handleMarerialChild(lastSyncTime, unitMap);
//
// syncDataWithHandling("计量单位信息(DC->ERP)", lastSyncTime,

View File

@@ -124,12 +124,6 @@ public class SalesBasicDataInformationJob implements JobHandler {
// Map<String, String> itemsMap = itemsMapping();
Map<String, String> unitMap = materialUnitMapping();
syncDataWithHandling("物料信息主数据字段信息(DC->ERP)", lastSyncTime,
time -> salesMaterialService.selectPartnerFromDC(time),
(data, time) -> salesMaterialService.syncDCPartnerByTimestamp(data));
syncDataWithHandling("物料信息主数据字段信息(DC->ERP)", lastSyncTime,
time -> salesMaterialService.selectPartnerFromDC(time),
(data, time) -> {
@@ -152,11 +146,11 @@ public class SalesBasicDataInformationJob implements JobHandler {
if (materialEntity.getOutboundStrategy() != null && codeItemsMapping.containsKey(materialEntity.getOutboundStrategy())) {
materialEntity.setOutboundStrategy(codeItemsMapping.get(materialEntity.getOutboundStrategy()));
}
return salesMaterialService.syncDCPartnerByTimestamp(data);
return salesMaterialService.syncDCPartnerByTimestamp(data,unitMap);
}
);
this.handleMarerialChild(lastSyncTime,unitMap);
// this.handleMarerialChild(lastSyncTime,unitMap);
// syncDataWithHandling("计量单位信息(DC->ERP)", lastSyncTime,

View File

@@ -28,7 +28,7 @@ public interface ErpBfPartnerVersionMapper extends BaseMapper<ErpBfPartnerVersio
}
return this.selectList(new LambdaQueryWrapper<ErpBfPartnerVersionEntity>()
.eq(ErpBfPartnerVersionEntity::getParentId, versions.getParentId())
.eq(ErpBfPartnerVersionEntity::getStateIsEnabled, "0")
.eq(ErpBfPartnerVersionEntity::getStateIsEnabled, "1")
);
}

View File

@@ -17,7 +17,7 @@ public interface ErpMaterialConversionMapper extends BaseMapper<ErpMaterialConve
if (data == null ) {
return new ArrayList<>();
}
return this.selectList(new LambdaQueryWrapper<ErpMaterialConversionEntity>().eq(ErpMaterialConversionEntity::getId, data.getId())
return this.selectList(new LambdaQueryWrapper<ErpMaterialConversionEntity>()
.eq(ErpMaterialConversionEntity::getParentId, data.getParentId())
);
}

View File

@@ -17,7 +17,7 @@ public interface ErpMaterialExtendMapper extends BaseMapper<ErpMaterialExtendEnt
if (data == null ) {
return new ArrayList<>();
}
return this.selectList(new LambdaQueryWrapper<ErpMaterialExtendEntity>().eq(ErpMaterialExtendEntity::getId, data.getId())
return this.selectList(new LambdaQueryWrapper<ErpMaterialExtendEntity>()
.eq(ErpMaterialExtendEntity::getMaterialId, data.getMaterialId()));
}

View File

@@ -18,7 +18,7 @@ public interface ErpMaterialMeasureunitMapper extends BaseMapper<ErpMaterialMeas
if (data == null ) {
return new ArrayList<>();
}
return this.selectList(new LambdaQueryWrapper<ErpMaterialMeasureunitEntity>().eq(ErpMaterialMeasureunitEntity::getMaterialMeasureUnit, data.getMaterialMeasureUnit())
return this.selectList(new LambdaQueryWrapper<ErpMaterialMeasureunitEntity>()
.eq(ErpMaterialMeasureunitEntity::getParentId, data.getParentId())
);
}

View File

@@ -6,12 +6,13 @@ import com.lideeyunji.core.framework.entity.erp.*;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface ErpBfPartnerService {
List<ErpBfPartner> selectPartnerFromDC(Date time) ;
Integer syncDCPartnerByTimestamp(ErpBfPartner data,Date time);
Integer syncDCPartnerByTimestamp(ErpBfPartner data,Date time, Map<String, String> codeItemsMapping);
List<ErpBfPartnerContactEntity> selectPartnerContactFromDC(Date time);

View File

@@ -4,11 +4,12 @@ import com.lideeyunji.core.framework.entity.erp.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface ErpMaterialService {
List<ErpMaterialEntity> selectPartnerFromDC(Date time);
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data);
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data, Map<String, String>unitMap, Date time);
List<ErpMaterialUnitAreaEntity> selectUnitAreaFromDC(Date time);

View File

@@ -4,11 +4,12 @@ import com.lideeyunji.core.framework.entity.erp.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface SalesMaterialService {
List<ErpMaterialEntity> selectPartnerFromDC(Date time);
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data);
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data, Map<String,String> unitMap);
List<ErpMaterialUnitAreaEntity> selectUnitAreaFromDC(Date time);

View File

@@ -303,7 +303,7 @@ public class BomMaterialServiceImpl extends ServiceImpl<BomMaterialMapper, Jsbom
ErpMaterialEntity existData = erpMaterialMapper.selectOne(
new LambdaQueryWrapper<ErpMaterialEntity>()
.eq(ErpMaterialEntity::getCode, data.getCcode())
.eq(ErpMaterialEntity::getStateIsEnabled, "0")
.eq(ErpMaterialEntity::getStateIsEnabled, "1")
);
JsbomEntity jsbom = baseMapper.selectOne(
new LambdaQueryWrapper<JsbomEntity>()

View File

@@ -885,7 +885,7 @@ public class SalesBfPartnerServiceImpl extends ServiceImpl<SalesBfPartnerMapper,
ErpBfPartner targetData = baseMapper.selectOne(
new LambdaQueryWrapper<ErpBfPartner>()
.eq(ErpBfPartner::getCode, data.getCode())
.eq(ErpBfPartner::getStateIsEnabled, "0")
.eq(ErpBfPartner::getStateIsEnabled, "1")
);
if (targetData == null) {
@@ -921,7 +921,7 @@ public class SalesBfPartnerServiceImpl extends ServiceImpl<SalesBfPartnerMapper,
List<ErpBfPartnerBackupEntity> existingBackups = salesBfPartnerBackUpMapper.selectList(
new LambdaQueryWrapper<ErpBfPartnerBackupEntity>()
.eq(ErpBfPartnerBackupEntity::getCode, targetData.getCode())
.eq(ErpBfPartnerBackupEntity::getStateIsEnabled, "0")
.eq(ErpBfPartnerBackupEntity::getStateIsEnabled, "1")
);
if (CollectionUtils.isEmpty(existingBackups)) {
@@ -1213,7 +1213,7 @@ public class SalesBfPartnerServiceImpl extends ServiceImpl<SalesBfPartnerMapper,
ErpBfPartner nowErpData = salesBfPartnerMapper.selectOne(
new LambdaQueryWrapper<ErpBfPartner>()
.eq(ErpBfPartner::getCode, dcEntity.getCode())
.eq(ErpBfPartner::getStateIsEnabled, "0")
.eq(ErpBfPartner::getStateIsEnabled, "1")
.last("LIMIT 1")
);