生成虚拟包
This commit is contained in:
parent
e605d8c9cc
commit
5cc3e2d6e2
|
|
@ -17,4 +17,9 @@ public enum VirtualPackageTypeEnum implements ValueEnum<Integer>{
|
|||
private final String description;
|
||||
private final String conMaterialName;
|
||||
private final String materialCategoryCode;
|
||||
|
||||
|
||||
public static Integer getAll(){
|
||||
return 1|2|4;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,6 +144,10 @@ public class BomNewEbomParentEntity implements Serializable {
|
|||
@ApiModelProperty(value = "是否跟节点 0-否 1-是")
|
||||
private Integer rootIs;
|
||||
|
||||
@TableField(value = "virtrual_package_enum")
|
||||
@ApiModelProperty("已生成的虚拟包 0-无 1-发货包 2-制作包 4-直发包 8-发货前装配包")
|
||||
private Integer virtrualPackageEnum;
|
||||
|
||||
/**
|
||||
* 是否应该有BOM 0-否 1-是
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nflg.product.bomnew.service.domain.EBom;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
|
|
@ -12,6 +13,7 @@ import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
|
|||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomChildService;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomParentService;
|
||||
import com.nflg.product.bomnew.service.MaterialService;
|
||||
import com.nflg.product.bomnew.util.VersionUtil;
|
||||
|
|
@ -23,6 +25,7 @@ import java.io.IOException;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 生成虚拟包基类
|
||||
|
|
@ -100,6 +103,25 @@ public abstract class VirtualPackageBase {
|
|||
return SpringUtil.getBean(BomNewEbomParentService.class).getChild(bomRowId);
|
||||
}
|
||||
|
||||
protected BomNewEbomParentEntity getParentZhiZuo(){
|
||||
List<BomNewEbomChildEntity> list = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, bomRowId).list();
|
||||
List<BomNewEbomChildEntity> zhiZuo = list.stream().filter(u -> u.getMaterialName().contains("制作")).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(zhiZuo)){
|
||||
String materialNo=zhiZuo.get(0).getMaterialNo();
|
||||
return SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo,materialNo)
|
||||
.eq(BomNewEbomParentEntity::getLastVersionIs,1).one();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取父节点
|
||||
* @return
|
||||
*/
|
||||
protected BomNewEbomParentEntity getParentByRowId(Long rowId){
|
||||
return SpringUtil.getBean(BomNewEbomParentService.class).getById(rowId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成虚拟包
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ import nflg.product.common.constant.STATE;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 31物料生成虚拟包
|
||||
|
|
@ -33,22 +35,27 @@ public class VirtualPackageFor21 extends VirtualPackageBase {
|
|||
@Override
|
||||
public void generateVirtualPackage() throws IOException {
|
||||
|
||||
BomNewEbomParentEntity parent = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getRowId, bomRowId).one();
|
||||
BomNewEbomParentEntity parent = getParentByRowId(bomRowId);
|
||||
BomNewEbomParentEntity makingPackage=null;
|
||||
if((parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.MAKING_PACKAGE.getValue())!=VirtualPackageTypeEnum.MAKING_PACKAGE.getValue()) {
|
||||
//构建构建发货包下制作包
|
||||
BomNewEbomParentEntity makingPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
makingPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
//构建构建发货包下直发
|
||||
BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
|
||||
|
||||
//构建产品-子级为制作包合直发包
|
||||
buildChild(makingPackage, bomRowId, "001", VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
buildChild(directDeliveryPackage, bomRowId, "002", VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
|
||||
}
|
||||
if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!=VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) {
|
||||
//构建构建发货前装配包
|
||||
if(Objects.isNull(makingPackage)){
|
||||
makingPackage=getParentZhiZuo();
|
||||
}
|
||||
BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
|
||||
buildChild(preAssemblyPackage, makingPackage.getRowId(), "001", VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
|
||||
}
|
||||
List<BomNewEbomParentVO> child = getChild();
|
||||
//将产品子级放制作包下
|
||||
for (BomNewEbomParentVO item : child) {
|
||||
|
|
@ -59,6 +66,8 @@ public class VirtualPackageFor21 extends VirtualPackageBase {
|
|||
this.childResult.add(itemUp);
|
||||
|
||||
}
|
||||
parent.setVirtrualPackageEnum(virtualPackageValue.stream().collect(Collectors.summingInt(u->u)));
|
||||
parentResult.add(parent);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity;
|
|||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.util.EnumUtils;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import nflg.product.common.constant.STATE;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -31,7 +32,10 @@ public class VirtualPackageFor31 extends VirtualPackageBase {
|
|||
*/
|
||||
@Override
|
||||
public void generateVirtualPackage() {
|
||||
|
||||
List<BomNewEbomParentVO> child = getChild();
|
||||
BomNewEbomParentEntity parent = getParentByRowId(bomRowId);
|
||||
VUtils.isTure(parent.getVirtrualPackageEnum()>0).throwMessage("已生成虚拟包无需重复生成");
|
||||
try {
|
||||
for (BomNewEbomParentVO item : child) {
|
||||
//构建发货包
|
||||
|
|
@ -55,6 +59,9 @@ public class VirtualPackageFor31 extends VirtualPackageBase {
|
|||
this.childResult.add(itemUp);
|
||||
|
||||
}
|
||||
parent.setVirtrualPackageEnum(VirtualPackageTypeEnum.getAll());
|
||||
this.parentResult.add(parent);
|
||||
|
||||
}catch (Exception ex) {
|
||||
throw new NflgBusinessException(STATE.BusinessError, ex.getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,8 +83,6 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
|||
hanlerDo(childParent);
|
||||
this.hasHandlerParentIds.add(childParent.getBomRowId());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -151,10 +149,7 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
|||
newChild.setParentRowId(parentRowId);
|
||||
this.eBomChildResult.add(newChild);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}}
|
||||
} else {
|
||||
buildEBomParent(parentEnt);
|
||||
}
|
||||
|
|
@ -222,7 +217,6 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 构建EBom父级
|
||||
*/
|
||||
|
|
@ -281,7 +275,7 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
|||
Integer numResult=0;
|
||||
BigDecimal totalWeightResult=BigDecimal.ZERO;
|
||||
for (BomOriginalListVO item : list1) {
|
||||
numResult+= Objects.nonNull(item.getNum()) ? item.getNum() : 0;
|
||||
numResult =Objects.nonNull(item.getNum()) ? item.getNum() : 0;
|
||||
totalWeightResult=NumberUtil.add(totalWeightResult, item.getTotalWeight());
|
||||
}
|
||||
one.setNum(numResult);
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
<result column="project_type" property="projectType" jdbcType="VARCHAR"/>
|
||||
<result column="project_type_input_type" property="projectTypeInputType" jdbcType="INTEGER"/>
|
||||
<result column="root_is" property="rootIs" jdbcType="INTEGER"/>
|
||||
<result column="virtrual_package_enum" property="virtrualPackageEnum" />
|
||||
<result column="should_bom_exist" property="shouldBomExist" jdbcType="INTEGER"/>
|
||||
<result column="super_material_status" property="superMaterialStatus" jdbcType="INTEGER"/>
|
||||
<result column="bom_exist" property="bomExist" jdbcType="INTEGER"/>
|
||||
|
|
@ -55,7 +56,7 @@
|
|||
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
row_id, batch_no, drawing_no, material_no, order_number, material_name, material_desc, material_texture, material_unit, unit_weight, total_weight, current_version, num, source, project_type, project_type_input_type, root_is, should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is, exception_status,virtual_package_is, source_row_id, devise_user_code, devise_name, created_by, created_time, created_job, audit_time, audit_user_name, release_time, release_user_name, revert_time, revert_user_name, expire_end_time, convert_to_ebom_time, remark, dept_name, level_num, change_desc, notice_nums, modify_time </sql>
|
||||
row_id, batch_no, drawing_no, material_no, order_number, material_name, material_desc, material_texture, material_unit, unit_weight, total_weight, current_version, num, source, project_type, project_type_input_type, root_is,virtrual_package_enum, should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is, exception_status,virtual_package_is, source_row_id, devise_user_code, devise_name, created_by, created_time, created_job, audit_time, audit_user_name, release_time, release_user_name, revert_time, revert_user_name, expire_end_time, convert_to_ebom_time, remark, dept_name, level_num, change_desc, notice_nums, modify_time </sql>
|
||||
|
||||
<sql id="whr">
|
||||
<if test="query.drawingNo!=null and query.drawingNo!=''">
|
||||
|
|
|
|||
Loading…
Reference in New Issue