虚拟包图号+转Ebom

This commit is contained in:
大米 2024-01-16 18:39:54 +08:00
parent b1a3a82515
commit df856477cb
4 changed files with 32 additions and 16 deletions

View File

@ -313,7 +313,7 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable {
private Integer virtualPartIs;
@ApiModelProperty("0-非虚拟包 1-发货包 2-制作包 4-直发包 8-发货前装配包")
private Integer virtualPartType;
private Integer virtualPartType=0;
@ApiModelProperty("生成虚拟包的跟节点物料编码")
private String virtualPartRootMaterialNo;

View File

@ -61,11 +61,31 @@ public abstract class VirtualPackageBase {
* @param virtualPackageTypeEnums
* @return
*/
protected void generateVMNo(List<BomNewEbomParentVO> child,VirtualPackageTypeEnum ... virtualPackageTypeEnums){
protected void generateVMNoFor31(String parentDrawingNo, List<BomNewEbomParentVO> child,VirtualPackageTypeEnum ... virtualPackageTypeEnums){
List<AddVirtrualMaterialDTO> params=new ArrayList<>();
for ( BomNewEbomParentVO ch: child ) {
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
params.add(buildAddMaterialParamDo(StrUtil.join("",ch.getRowId().toString(), vpy.getConMaterialName()), ch.getDrawingNo(), ch.getMaterialName(), vpy));
String vDrawingNo = String.join("","(",parentDrawingNo,")","(",ch.getMaterialName(),")","(",vpy.getConMaterialName(),")" );
params.add(buildAddMaterialParamDo(StrUtil.join("",ch.getRowId().toString(), vpy.getConMaterialName()), vDrawingNo, vDrawingNo, vpy));
}
}
List<AddVirtrualMaterialDTO> addM = params.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
vMNos= SpringUtil.getBean(MaterialService.class).batchAddMaterial(addM);
}
/**
* 申请虚拟包
* @param child
* @param virtualPackageTypeEnums
* @return
*/
protected void generateVMNoF21(String materialDesc, List<BomNewEbomParentVO> child,VirtualPackageTypeEnum ... virtualPackageTypeEnums){
List<AddVirtrualMaterialDTO> params=new ArrayList<>();
for ( BomNewEbomParentVO ch: child ) {
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
String vDrawingNo = String.join("","(",materialDesc,")","(",vpy.getConMaterialName(),")" );
params.add(buildAddMaterialParamDo(StrUtil.join("",ch.getRowId().toString(), vpy.getConMaterialName()), vDrawingNo, vDrawingNo, vpy));
}
}
List<AddVirtrualMaterialDTO> addM = params.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
@ -76,16 +96,12 @@ public abstract class VirtualPackageBase {
//申请物料编码
private AddVirtrualMaterialDTO buildAddMaterialParamDo(String key, String drawingNo, String materialName, VirtualPackageTypeEnum virtualPackageType){
String vDrawingNo = String.join("","(",drawingNo,")","(",virtualPackageType.getConMaterialName(),")" );
String vMaterialName = StrUtil.join("","(",materialName,")","(",virtualPackageType.getConMaterialName(),")");
String vMaterialDesc = StrUtil.join("", "(",drawingNo,")" ,"(", materialName,")","(",virtualPackageType.getConMaterialName(),")");
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().eq(MaterialMainEntity::getDrawingNo, vDrawingNo)
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().eq(MaterialMainEntity::getDrawingNo, drawingNo)
.list();
AddVirtrualMaterialDTO ent=new AddVirtrualMaterialDTO();
if(CollUtil.isNotEmpty(oldMaterialList)){
ent.setKey(key);
ent.setDrawingNo(vDrawingNo);
ent.setDrawingNo(drawingNo);
ent.setMaterialNo(oldMaterialList.get(0).getMaterialNo());
ent.setMaterialName(oldMaterialList.get(0).getMaterialName());
ent.setMaterialDesc(oldMaterialList.get(0).getMaterialDesc());
@ -93,9 +109,9 @@ public abstract class VirtualPackageBase {
}
else {
ent.setKey(key);
ent.setDrawingNo(vDrawingNo);
ent.setMaterialName(vMaterialName);
ent.setMaterialDesc(vMaterialDesc);
ent.setDrawingNo(drawingNo);
ent.setMaterialName(materialName);
ent.setMaterialDesc(materialName);
ent.setMaterialCategoryCode(virtualPackageType.getMaterialCategoryCode());
}
return ent;

View File

@ -45,10 +45,10 @@ public class VirtualPackageFor21 extends VirtualPackageBase {
BomNewEbomParentVO vo= Convert.convert(BomNewEbomParentVO.class,parent );
if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!=VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()){
generateVMNo(ImmutableList.of(vo),VirtualPackageTypeEnum.MAKING_PACKAGE, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
generateVMNoF21(parent.getMaterialDesc(), ImmutableList.of(vo),VirtualPackageTypeEnum.MAKING_PACKAGE, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
}
else {
generateVMNo(ImmutableList.of(vo),VirtualPackageTypeEnum.MAKING_PACKAGE, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
generateVMNoF21(parent.getMaterialDesc(),ImmutableList.of(vo),VirtualPackageTypeEnum.MAKING_PACKAGE, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
}

View File

@ -44,11 +44,11 @@ public class VirtualPackageFor31 extends VirtualPackageBase {
//生成虚拟包
if(CollUtil.isNotEmpty(child)) {
if (virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue() & parent.getVirtrualPackageEnum()) != VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()){
generateVMNo(child , VirtualPackageTypeEnum.DELIVERY_PACKAGE,VirtualPackageTypeEnum.MAKING_PACKAGE
generateVMNoFor31(parent.getDrawingNo(), child , VirtualPackageTypeEnum.DELIVERY_PACKAGE,VirtualPackageTypeEnum.MAKING_PACKAGE
,VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
}
else {
generateVMNo(child, VirtualPackageTypeEnum.DELIVERY_PACKAGE, VirtualPackageTypeEnum.MAKING_PACKAGE
generateVMNoFor31(parent.getDrawingNo(),child, VirtualPackageTypeEnum.DELIVERY_PACKAGE, VirtualPackageTypeEnum.MAKING_PACKAGE
, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
}