refactor(job): 优化ERP基础数据同步任务处理逻辑
- 修改ErpBasicDataInformationJob中syncDCPartnerByTimestamp方法参数传递 - 修改SalesBasicDataInformationJob中物料信息同步的数据处理方式 - 修复多个Mapper中查询条件的字段匹配问题 - 在ErpBfPartnerServiceImpl中实现完整的合作伙伴数据处理功能 - 添加对合作伙伴股东、关联关系、控制人、高管等数据的同步处理 - 实现重试机制以提高ERP接口调用的稳定性 - 完善数据同步过程中的错误处理和日志记录
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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>()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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")
|
||||
);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user