优化物料导入

This commit is contained in:
zhou-hongcheng
2026-04-20 14:40:14 +08:00
parent a4129199ee
commit 984f4628c5
@@ -404,6 +404,20 @@ public class MaterialBaseInfoApplicationService {
fillIdsFromExistingMasterData(row);
fillClassifyTypeAndUnit(row);
Object result = systemServiceFeign.getPackList(null, row.getPackName(), row.getOrganizationId());
Map<String, Object> resultMap = JSON.parseObject(JSONObject.toJSONString(result), new TypeReference<Map<String, Object>>() {});
List<Map<String, Object>> rowsPack = extractTableDataRows(resultMap);
Map<String, Object> stringObjectMap = rowsPack.get(0);
if (stringObjectMap != null){
String packCode = stringObjectMap.get("packCode") == null ? "" : String.valueOf(stringObjectMap.get("packCode"));
row.setPackCode(packCode);
String packId = stringObjectMap.get("packId") == null ? "" : String.valueOf(stringObjectMap.get("packId"));
row.setPackId(Long.valueOf(packId));
String unitName = stringObjectMap.get("unitName") == null ? "" : String.valueOf(stringObjectMap.get("unitName"));
row.setUnitCode("EA");
row.setUnitName(unitName);
}
MaterialBaseInfoDO materialBaseInfoDO = new MaterialBaseInfoDO();
BeanUtils.copyProperties(row, materialBaseInfoDO);
materialBaseInfoDO.setMaterialGoodsRule(buildImportMaterialGoodsRule(row));
@@ -411,6 +425,48 @@ public class MaterialBaseInfoApplicationService {
materialBaseInfoDO.setMaterialWarehouseControl(null);
materialBaseInfoDO.setMaterialBarCodeList(buildImportBarCodeList(row));
insert(materialBaseInfoDO);
Long materialBaseInfoId = materialBaseInfoDO.getMaterialBaseInfoId();
//商品规则批次
if (StringUtils.isNotBlank(row.getBatchRuleNameImport())){
MaterialGoodsRuleDO materialGoodsRuleDO = new MaterialGoodsRuleDO();
Object batchListByName = systemServiceFeign.getBatchListByName(row.getBatchRuleNameImport(), row.getOrganizationId());
Map<String, Object> batchListByNameMap = JSON.parseObject(JSONObject.toJSONString(batchListByName), new TypeReference<Map<String, Object>>() {});
Object codeObj = batchListByNameMap.get("code");
Object totalObj = batchListByNameMap.get("total");
List<Map<String, Object>> rowsBatch = extractTableDataRows(batchListByNameMap);
for (Map<String, Object> p : rowsBatch) {
if (p == null) {
continue;
}
String rowBatchName = normalizeBatchKeyword(p.get("batchName") == null ? "" : String.valueOf(p.get("batchName")));
if (StringUtils.equals(row.getBatchRuleNameImport(), rowBatchName)) {
Object idObj = p.get("batchId");
Long.valueOf(String.valueOf(idObj));
materialGoodsRuleDO.setBatchId(Long.valueOf(String.valueOf(idObj)));
materialGoodsRuleDO.setMaterialBaseInfoId(materialBaseInfoId);
materialGoodsRuleDomainService.insert(materialGoodsRuleDO);
}
}
}
//公共信息
MaterialCommonDO materialCommonDO = materialBaseInfoDO.getMaterialCommon();
if (materialCommonDO != null) {
materialCommonDO.setMaterialBaseInfoId(materialBaseInfoId);
materialCommonDomainService.insert(materialCommonDO);
}
//仓库控制信息
MaterialWarehouseControlDO materialWarehouseControlDO = materialBaseInfoDO.getMaterialWarehouseControl();
if (materialWarehouseControlDO != null) {
materialWarehouseControlDO.setMaterialBaseInfoId(materialBaseInfoId);
materialWarehouseControlDomainService.insert(materialWarehouseControlDO);
}
//库存预警
materialInventoryWarningDomainService.batchInsertOrUpdate(materialBaseInfoDO);
//条码信息
materialBarCodeDomainService.batchInsertOrUpdate(materialBaseInfoDO);
successCount++;
}