diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/BOMChildDTOs.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/BOMChildDTOs.java index 6785a524..80f32d7d 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/BOMChildDTOs.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/BOMChildDTOs.java @@ -73,4 +73,7 @@ public class BOMChildDTOs { private Inventory inventory; private String version; private List BOMChildDTOs; + + private List DynamicPropertyKeys; + private List DynamicPropertyValues; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/Inventory.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/Inventory.java index 6ded20c9..bfb225fd 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/Inventory.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/Inventory.java @@ -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; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/InventoryBOM.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/InventoryBOM.java new file mode 100644 index 00000000..cd090dda --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/dto/InventoryBOM.java @@ -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; + } +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/vo/QueryBomResVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/vo/QueryBomResVO.java index 63fecde0..b3a9a4b3 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/vo/QueryBomResVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/vo/QueryBomResVO.java @@ -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 DynamicPropertyKeys; private List DynamicPropertyValues; + private InventoryBOM Inventory; + private UnitByStock Unit; } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java index 22983246..79af38d5 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java @@ -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); diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java index 535a53d2..d9e924e6 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java @@ -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() {{ + 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() {{ + 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)); } }