【BOM】更新带颜色的物料信息

dev
siontion 3 months ago
parent 1d2bcca2d1
commit f6a9045c21

@ -73,4 +73,7 @@ public class BOMChildDTOs {
private Inventory inventory;
private String version;
private List<BOMChildDTOs> BOMChildDTOs;
private List<String> DynamicPropertyKeys;
private List<String> DynamicPropertyValues;
}

@ -20,8 +20,15 @@ public class Inventory {
private String Code;
private String Name;
private Boolean IsPhantom;
private String Specification;
private String InventoryClass;
private String UnitByStock;
public Inventory(String code) {
Code = code;
}

@ -0,0 +1,32 @@
/**
* Copyright 2024 bejson.com
*/
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Auto-generated: 2024-04-20 15:37:29
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InventoryBOM {
private String Code;
private String Specification;
private Boolean IsPhantom;
private String InventoryClass;
public InventoryBOM(String code) {
Code = code;
}
}

@ -3,9 +3,8 @@
*/
package com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.*;
import lombok.Data;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.VoucherState;
import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.dto.BOMChildDTOs;
import java.util.List;
@ -103,5 +102,7 @@ public class QueryBomResVO {
private List<String> DynamicPropertyKeys;
private List<String> DynamicPropertyValues;
private InventoryBOM Inventory;
private UnitByStock Unit;
}

@ -834,7 +834,7 @@ public class ChanjetManager {
resDTO.setMaterialCode(values.get(9));//物料编码
resDTO.setMaterialName(values.get(10));//物料名称
resDTO.setMaterialSpec(values.get(11));//物料规格
resDTO.setMaterialType(values.get(12));
resDTO.setMaterialType(values.get(12));//物料分类
resulDataList.add(resDTO);
}
@ -899,7 +899,7 @@ public class ChanjetManager {
if(saleOrderDetail.getInventory().getCode().equals(mid)) {
for (Integer idx = 0; idx < saleOrderDetail.getDynamicPropertyValues().size(); idx++) {
if (saleOrderDetail.getDynamicPropertyKeys().get(idx).contains("freeItem".toLowerCase())
if (saleOrderDetail.getDynamicPropertyKeys().get(idx).contains("freeItem0".toLowerCase())
&& !StringUtils.isEmpty(saleOrderDetail.getDynamicPropertyValues().get(idx))) {
String color = saleOrderDetail.getDynamicPropertyValues().get(idx);

@ -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));
}
}

Loading…
Cancel
Save