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())) {
|
if (partner.getOfRegion() != null && codeItemsMapping.containsKey(partner.getOfRegion())) {
|
||||||
partner.setOfRegion(codeItemsMapping.get(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())) {
|
if (materialEntity.getOutboundStrategy() != null && codeItemsMapping.containsKey(materialEntity.getOutboundStrategy())) {
|
||||||
materialEntity.setOutboundStrategy(codeItemsMapping.get(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,
|
// syncDataWithHandling("计量单位信息(DC->ERP)", lastSyncTime,
|
||||||
|
|||||||
@@ -124,12 +124,6 @@ public class SalesBasicDataInformationJob implements JobHandler {
|
|||||||
// Map<String, String> itemsMap = itemsMapping();
|
// Map<String, String> itemsMap = itemsMapping();
|
||||||
Map<String, String> unitMap = materialUnitMapping();
|
Map<String, String> unitMap = materialUnitMapping();
|
||||||
|
|
||||||
syncDataWithHandling("物料信息主数据字段信息(DC->ERP)", lastSyncTime,
|
|
||||||
time -> salesMaterialService.selectPartnerFromDC(time),
|
|
||||||
|
|
||||||
(data, time) -> salesMaterialService.syncDCPartnerByTimestamp(data));
|
|
||||||
|
|
||||||
|
|
||||||
syncDataWithHandling("物料信息主数据字段信息(DC->ERP)", lastSyncTime,
|
syncDataWithHandling("物料信息主数据字段信息(DC->ERP)", lastSyncTime,
|
||||||
time -> salesMaterialService.selectPartnerFromDC(time),
|
time -> salesMaterialService.selectPartnerFromDC(time),
|
||||||
(data, time) -> {
|
(data, time) -> {
|
||||||
@@ -152,11 +146,11 @@ public class SalesBasicDataInformationJob implements JobHandler {
|
|||||||
if (materialEntity.getOutboundStrategy() != null && codeItemsMapping.containsKey(materialEntity.getOutboundStrategy())) {
|
if (materialEntity.getOutboundStrategy() != null && codeItemsMapping.containsKey(materialEntity.getOutboundStrategy())) {
|
||||||
materialEntity.setOutboundStrategy(codeItemsMapping.get(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,
|
// syncDataWithHandling("计量单位信息(DC->ERP)", lastSyncTime,
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public interface ErpBfPartnerVersionMapper extends BaseMapper<ErpBfPartnerVersio
|
|||||||
}
|
}
|
||||||
return this.selectList(new LambdaQueryWrapper<ErpBfPartnerVersionEntity>()
|
return this.selectList(new LambdaQueryWrapper<ErpBfPartnerVersionEntity>()
|
||||||
.eq(ErpBfPartnerVersionEntity::getParentId, versions.getParentId())
|
.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 ) {
|
if (data == null ) {
|
||||||
return new ArrayList<>();
|
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())
|
.eq(ErpMaterialConversionEntity::getParentId, data.getParentId())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public interface ErpMaterialExtendMapper extends BaseMapper<ErpMaterialExtendEnt
|
|||||||
if (data == null ) {
|
if (data == null ) {
|
||||||
return new ArrayList<>();
|
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()));
|
.eq(ErpMaterialExtendEntity::getMaterialId, data.getMaterialId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public interface ErpMaterialMeasureunitMapper extends BaseMapper<ErpMaterialMeas
|
|||||||
if (data == null ) {
|
if (data == null ) {
|
||||||
return new ArrayList<>();
|
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())
|
.eq(ErpMaterialMeasureunitEntity::getParentId, data.getParentId())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,13 @@ import com.lideeyunji.core.framework.entity.erp.*;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface ErpBfPartnerService {
|
public interface ErpBfPartnerService {
|
||||||
|
|
||||||
List<ErpBfPartner> selectPartnerFromDC(Date time) ;
|
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);
|
List<ErpBfPartnerContactEntity> selectPartnerContactFromDC(Date time);
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,12 @@ import com.lideeyunji.core.framework.entity.erp.*;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface ErpMaterialService {
|
public interface ErpMaterialService {
|
||||||
List<ErpMaterialEntity> selectPartnerFromDC(Date time);
|
List<ErpMaterialEntity> selectPartnerFromDC(Date time);
|
||||||
|
|
||||||
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data);
|
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data, Map<String, String>unitMap, Date time);
|
||||||
|
|
||||||
List<ErpMaterialUnitAreaEntity> selectUnitAreaFromDC(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.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface SalesMaterialService {
|
public interface SalesMaterialService {
|
||||||
List<ErpMaterialEntity> selectPartnerFromDC(Date time);
|
List<ErpMaterialEntity> selectPartnerFromDC(Date time);
|
||||||
|
|
||||||
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data);
|
Integer syncDCPartnerByTimestamp(ErpMaterialEntity data, Map<String,String> unitMap);
|
||||||
|
|
||||||
List<ErpMaterialUnitAreaEntity> selectUnitAreaFromDC(Date time);
|
List<ErpMaterialUnitAreaEntity> selectUnitAreaFromDC(Date time);
|
||||||
|
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ public class BomMaterialServiceImpl extends ServiceImpl<BomMaterialMapper, Jsbom
|
|||||||
ErpMaterialEntity existData = erpMaterialMapper.selectOne(
|
ErpMaterialEntity existData = erpMaterialMapper.selectOne(
|
||||||
new LambdaQueryWrapper<ErpMaterialEntity>()
|
new LambdaQueryWrapper<ErpMaterialEntity>()
|
||||||
.eq(ErpMaterialEntity::getCode, data.getCcode())
|
.eq(ErpMaterialEntity::getCode, data.getCcode())
|
||||||
.eq(ErpMaterialEntity::getStateIsEnabled, "0")
|
.eq(ErpMaterialEntity::getStateIsEnabled, "1")
|
||||||
);
|
);
|
||||||
JsbomEntity jsbom = baseMapper.selectOne(
|
JsbomEntity jsbom = baseMapper.selectOne(
|
||||||
new LambdaQueryWrapper<JsbomEntity>()
|
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(
|
ErpBfPartner targetData = baseMapper.selectOne(
|
||||||
new LambdaQueryWrapper<ErpBfPartner>()
|
new LambdaQueryWrapper<ErpBfPartner>()
|
||||||
.eq(ErpBfPartner::getCode, data.getCode())
|
.eq(ErpBfPartner::getCode, data.getCode())
|
||||||
.eq(ErpBfPartner::getStateIsEnabled, "0")
|
.eq(ErpBfPartner::getStateIsEnabled, "1")
|
||||||
);
|
);
|
||||||
|
|
||||||
if (targetData == null) {
|
if (targetData == null) {
|
||||||
@@ -921,7 +921,7 @@ public class SalesBfPartnerServiceImpl extends ServiceImpl<SalesBfPartnerMapper,
|
|||||||
List<ErpBfPartnerBackupEntity> existingBackups = salesBfPartnerBackUpMapper.selectList(
|
List<ErpBfPartnerBackupEntity> existingBackups = salesBfPartnerBackUpMapper.selectList(
|
||||||
new LambdaQueryWrapper<ErpBfPartnerBackupEntity>()
|
new LambdaQueryWrapper<ErpBfPartnerBackupEntity>()
|
||||||
.eq(ErpBfPartnerBackupEntity::getCode, targetData.getCode())
|
.eq(ErpBfPartnerBackupEntity::getCode, targetData.getCode())
|
||||||
.eq(ErpBfPartnerBackupEntity::getStateIsEnabled, "0")
|
.eq(ErpBfPartnerBackupEntity::getStateIsEnabled, "1")
|
||||||
);
|
);
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(existingBackups)) {
|
if (CollectionUtils.isEmpty(existingBackups)) {
|
||||||
@@ -1213,7 +1213,7 @@ public class SalesBfPartnerServiceImpl extends ServiceImpl<SalesBfPartnerMapper,
|
|||||||
ErpBfPartner nowErpData = salesBfPartnerMapper.selectOne(
|
ErpBfPartner nowErpData = salesBfPartnerMapper.selectOne(
|
||||||
new LambdaQueryWrapper<ErpBfPartner>()
|
new LambdaQueryWrapper<ErpBfPartner>()
|
||||||
.eq(ErpBfPartner::getCode, dcEntity.getCode())
|
.eq(ErpBfPartner::getCode, dcEntity.getCode())
|
||||||
.eq(ErpBfPartner::getStateIsEnabled, "0")
|
.eq(ErpBfPartner::getStateIsEnabled, "1")
|
||||||
.last("LIMIT 1")
|
.last("LIMIT 1")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user