|
|
|
@ -228,6 +228,38 @@ public class ChanjetSchedule {
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(result.getData())) {
|
|
|
|
|
QueryBomResVO topLayer = result.getData().get(0);
|
|
|
|
|
|
|
|
|
|
// 判断物料编码+物料名称+规格+颜色是否存在
|
|
|
|
|
for (Integer idx = 0; idx < topLayer.getDynamicPropertyValues().size(); idx++) {
|
|
|
|
|
if (topLayer.getDynamicPropertyKeys().get(idx).contains("freeItem0".toLowerCase())
|
|
|
|
|
&& !StringUtils.isEmpty(topLayer.getDynamicPropertyValues().get(idx))) {
|
|
|
|
|
String color = topLayer.getDynamicPropertyValues().get(idx);
|
|
|
|
|
|
|
|
|
|
MaterialDO materialDOWithColor = materialMapper.selectOne(new LambdaQueryWrapper<MaterialDO>() {{
|
|
|
|
|
eq(MaterialDO::getName, topLayer.getName());
|
|
|
|
|
eq(MaterialDO::getCode, topLayer.getCode());
|
|
|
|
|
eq(MaterialDO::getSpec, topLayer.getInventory().getSpecification());
|
|
|
|
|
eq(MaterialDO::getColor, color);
|
|
|
|
|
last("LIMIT 1");
|
|
|
|
|
}});
|
|
|
|
|
if (materialDOWithColor == null) {
|
|
|
|
|
materialDOWithColor = new MaterialDO();
|
|
|
|
|
materialDOWithColor.setCode(topLayer.getCode() + "-" + color);
|
|
|
|
|
materialDOWithColor.setName(topLayer.getName() + "-" + color);
|
|
|
|
|
materialDOWithColor.setShortName(topLayer.getName() + "-" + color);
|
|
|
|
|
materialDOWithColor.setColor(color);
|
|
|
|
|
materialDOWithColor.setSpec(topLayer.getInventory().getSpecification());
|
|
|
|
|
materialDOWithColor.setExternalCode(topLayer.getCode());
|
|
|
|
|
materialDOWithColor.setStatus(ValidStatusEnum.VALID.getCode());
|
|
|
|
|
materialDOWithColor.setUnit(topLayer.getUnit().getCode());
|
|
|
|
|
materialDOWithColor.setMaterialType(topLayer.getInventory().getInventoryClass());
|
|
|
|
|
materialDOWithColor.setInventoryProperty(6);
|
|
|
|
|
|
|
|
|
|
materialMapper.insert(materialDOWithColor);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bomDataList = topLayer.getBOMChildDTOs();
|
|
|
|
|
if (CollUtil.isNotEmpty(bomDataList)) {
|
|
|
|
|
for (BOMChildDTOs dto : bomDataList) {
|
|
|
|
@ -302,6 +334,38 @@ public class ChanjetSchedule {
|
|
|
|
|
.setUnit(stockData.getUnitName());
|
|
|
|
|
resultData.add(bomMaterialVO);
|
|
|
|
|
|
|
|
|
|
//判断物料编码+物料名称+规格+颜色是否存在
|
|
|
|
|
// 判断物料编码+物料名称+规格+颜色是否存在
|
|
|
|
|
for (Integer idx = 0; idx < dto.getDynamicPropertyValues().size(); idx++) {
|
|
|
|
|
if (dto.getDynamicPropertyKeys().get(idx).contains("bomdto_freeitem0".toLowerCase())
|
|
|
|
|
&& !StringUtils.isEmpty(dto.getDynamicPropertyValues().get(idx))) {
|
|
|
|
|
String color = dto.getDynamicPropertyValues().get(idx);
|
|
|
|
|
|
|
|
|
|
MaterialDO materialDOWithColor = materialMapper.selectOne(new LambdaQueryWrapper<MaterialDO>() {{
|
|
|
|
|
eq(MaterialDO::getName, dto.getInventory().getName());
|
|
|
|
|
eq(MaterialDO::getCode, dto.getInventory().getCode());
|
|
|
|
|
eq(MaterialDO::getSpec, dto.getInventory().getSpecification());
|
|
|
|
|
eq(MaterialDO::getColor, color);
|
|
|
|
|
last("LIMIT 1");
|
|
|
|
|
}});
|
|
|
|
|
if (materialDOWithColor == null) {
|
|
|
|
|
materialDOWithColor = new MaterialDO();
|
|
|
|
|
materialDOWithColor.setCode(dto.getInventory().getCode() + "-" + color);
|
|
|
|
|
materialDOWithColor.setName(dto.getInventory().getName() + "-" + color);
|
|
|
|
|
materialDOWithColor.setShortName(dto.getInventory().getName() + "-" + color);
|
|
|
|
|
materialDOWithColor.setColor(color);
|
|
|
|
|
materialDOWithColor.setSpec(dto.getInventory().getSpecification());
|
|
|
|
|
materialDOWithColor.setExternalCode(dto.getInventory().getCode());
|
|
|
|
|
materialDOWithColor.setStatus(ValidStatusEnum.VALID.getCode());
|
|
|
|
|
materialDOWithColor.setUnit(dto.getInventory().getUnitByStock());
|
|
|
|
|
materialDOWithColor.setMaterialType(dto.getInventory().getInventoryClass());
|
|
|
|
|
materialDOWithColor.setInventoryProperty(6);
|
|
|
|
|
|
|
|
|
|
materialMapper.insert(materialDOWithColor);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resultData.addAll(getChildrenBomMaterial(layer+1, dto.getBOMChildDTOs(), warehouseId));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|