Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom
This commit is contained in:
commit
d5615be227
|
|
@ -3,6 +3,7 @@ package com.nflg.product.bomnew.pojo.dto;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||||
|
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.ttzero.excel.annotation.ExcelColumn;
|
import org.ttzero.excel.annotation.ExcelColumn;
|
||||||
|
|
@ -71,4 +72,26 @@ public class BomNewEBomImportExcelDTO {
|
||||||
|
|
||||||
@ApiModelProperty("物料状态")
|
@ApiModelProperty("物料状态")
|
||||||
private Integer materialStatus;
|
private Integer materialStatus;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty("0-非虚拟包 1-发货包 2-制作包 4-直发包 8-发货前装配包")
|
||||||
|
private Integer virtualPartType;
|
||||||
|
|
||||||
|
public Integer getVirtualPartType() {
|
||||||
|
if( drawingNo.contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else if( drawingNo.contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.MAKING_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else if( drawingNo.contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else if( drawingNo.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public class BaseMaterialVO {
|
||||||
private Integer materialState;
|
private Integer materialState;
|
||||||
|
|
||||||
@ApiModelProperty("图号")
|
@ApiModelProperty("图号")
|
||||||
private String drawingNo;
|
protected String drawingNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 材料
|
* 材料
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.nflg.product.bomnew.pojo.vo;
|
||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -181,6 +182,27 @@ public class BomOriginalListVO extends BaseMaterialVO {
|
||||||
@ApiModelProperty("转换后Ebom行ID")
|
@ApiModelProperty("转换后Ebom行ID")
|
||||||
private Long eBomRowId=0L;
|
private Long eBomRowId=0L;
|
||||||
|
|
||||||
|
@ApiModelProperty("0-非虚拟包 1-发货包 2-制作包 4-直发包 8-发货前装配包")
|
||||||
|
private Integer virtualPartType;
|
||||||
|
|
||||||
|
public Integer getVirtualPartType() {
|
||||||
|
if( drawingNo.contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else if( drawingNo.contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.MAKING_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else if( drawingNo.contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else if( drawingNo.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())){
|
||||||
|
return VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private List<BomOriginalListVO> childNodes = Collections.emptyList();
|
private List<BomOriginalListVO> childNodes = Collections.emptyList();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
@ -580,6 +581,45 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void checkAndInitVirtualPackageEnum(VirtualPackageParamDto paramDto, BomNewEbomParentEntity root) {
|
||||||
|
if (root.getVirtrualPackageEnum() <= 0) {
|
||||||
|
if (root.getMaterialNo().startsWith("31")) {
|
||||||
|
|
||||||
|
List<BomNewEbomParentVO> list = getChild(root.getRowId());
|
||||||
|
List<BomNewEbomParentVO> deliveryList = list.stream().filter(u -> VirtualPackageTypeEnum.DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(deliveryList)) {
|
||||||
|
Integer virtualPartTypeEnum = VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue() | VirtualPackageTypeEnum.MAKING_PACKAGE.getValue() | VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue();
|
||||||
|
List<BomNewEbomChildEntity> preList = ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, deliveryList.get(0).getBomRowId())
|
||||||
|
.eq(BomNewEbomChildEntity::getVirtualPartType, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()).list();
|
||||||
|
if (CollUtil.isNotEmpty(preList)) {
|
||||||
|
virtualPartTypeEnum = virtualPartTypeEnum | VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
root.setVirtrualPackageEnum(virtualPartTypeEnum);
|
||||||
|
this.updateById(root);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (root.getMaterialNo().startsWith("21")) {
|
||||||
|
|
||||||
|
List<BomNewEbomParentVO> list = getChild(root.getRowId());
|
||||||
|
List<BomNewEbomParentVO> makeList = list.stream().filter(u -> VirtualPackageTypeEnum.MAKING_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(makeList)) {
|
||||||
|
Integer virtualPartTypeEnum = VirtualPackageTypeEnum.MAKING_PACKAGE.getValue() | VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue();
|
||||||
|
List<BomNewEbomChildEntity> preList = ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, makeList.get(0).getBomRowId())
|
||||||
|
.eq(BomNewEbomChildEntity::getVirtualPartType, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()).list();
|
||||||
|
if (CollUtil.isNotEmpty(preList)) {
|
||||||
|
virtualPartTypeEnum = virtualPartTypeEnum | VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue();
|
||||||
|
}
|
||||||
|
root.setVirtrualPackageEnum(virtualPartTypeEnum);
|
||||||
|
this.updateById(root);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成虚拟包
|
* 生成虚拟包
|
||||||
|
|
@ -588,7 +628,11 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
*/
|
*/
|
||||||
public void generateVirtualPackage(VirtualPackageParamDto paramDto) {
|
public void generateVirtualPackage(VirtualPackageParamDto paramDto) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
BomNewEbomParentEntity root = this.getById(paramDto.getBomRowId());
|
BomNewEbomParentEntity root = this.getById(paramDto.getBomRowId());
|
||||||
|
//初始化虚拟包-判断枚举(不是手工生成虚拟包的情况)
|
||||||
|
checkAndInitVirtualPackageEnum(paramDto,root);
|
||||||
Boolean flag = true;
|
Boolean flag = true;
|
||||||
for (Integer f : paramDto.getVirtualPackageValue()) {
|
for (Integer f : paramDto.getVirtualPackageValue()) {
|
||||||
flag = flag & ((root.getVirtrualPackageEnum() & f) == f);
|
flag = flag & ((root.getVirtrualPackageEnum() & f) == f);
|
||||||
|
|
@ -656,8 +700,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
virtualPackageCompositionService.getBaseMapper().delByVnoAndParentNo(split[0], split[1]);
|
virtualPackageCompositionService.getBaseMapper().delByVnoAndParentNo(split[0], split[1]);
|
||||||
}
|
}
|
||||||
virtualPackageCompositionService.saveOrUpdateBatch(eBomToPBom.getVirtualPackageCompositionResult());
|
virtualPackageCompositionService.saveOrUpdateBatch(eBomToPBom.getVirtualPackageCompositionResult());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
//记录变更影响
|
//记录变更影响
|
||||||
if (CollUtil.isNotEmpty(eBomToPBom.getUpgradeChangeResult())) {
|
if (CollUtil.isNotEmpty(eBomToPBom.getUpgradeChangeResult())) {
|
||||||
|
|
||||||
|
|
@ -866,21 +909,17 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
|
|
||||||
for (BomNewEbomChildEntity childEntities : eBomEdit.childEntities) {
|
for (BomNewEbomChildEntity childEntities : eBomEdit.childEntities) {
|
||||||
childEntities.setOrderNumber(OrderNoUtil.orderNo2Str(orderNo));
|
childEntities.setOrderNumber(OrderNoUtil.orderNo2Str(orderNo));
|
||||||
if(childEntities.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName()))
|
if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) {
|
||||||
{
|
|
||||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue());
|
childEntities.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue());
|
||||||
childEntities.setVirtualPartIs(1);
|
childEntities.setVirtualPartIs(1);
|
||||||
|
|
||||||
}
|
} else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())) {
|
||||||
else if(childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())){
|
|
||||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue());
|
childEntities.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue());
|
||||||
childEntities.setVirtualPartIs(1);
|
childEntities.setVirtualPartIs(1);
|
||||||
}
|
} else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())) {
|
||||||
else if(childEntities.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())){
|
|
||||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue());
|
childEntities.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue());
|
||||||
childEntities.setVirtualPartIs(1);
|
childEntities.setVirtualPartIs(1);
|
||||||
}
|
} else if (childEntities.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())) {
|
||||||
else if(childEntities.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())){
|
|
||||||
childEntities.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
|
childEntities.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
|
||||||
childEntities.setVirtualPartIs(1);
|
childEntities.setVirtualPartIs(1);
|
||||||
}
|
}
|
||||||
|
|
@ -1258,7 +1297,6 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(materialMainList)) {
|
if (CollUtil.isNotEmpty(materialMainList)) {
|
||||||
MaterialMainEntity materialMainEntity = materialMainList.get(0);
|
MaterialMainEntity materialMainEntity = materialMainList.get(0);
|
||||||
BomNewEbomParentVO baseMaterialVO = new BomNewEbomParentVO();
|
BomNewEbomParentVO baseMaterialVO = new BomNewEbomParentVO();
|
||||||
|
|
@ -1299,12 +1337,9 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
&& (MaterialGetEnum.MaterialStateEnum.STATE_NO_4.equalsValue(baseMaterialVO.getMaterialState())
|
&& (MaterialGetEnum.MaterialStateEnum.STATE_NO_4.equalsValue(baseMaterialVO.getMaterialState())
|
||||||
|| MaterialGetEnum.MaterialStateEnum.STATE_NO_5.equalsValue(baseMaterialVO.getMaterialState()))) {
|
|| MaterialGetEnum.MaterialStateEnum.STATE_NO_5.equalsValue(baseMaterialVO.getMaterialState()))) {
|
||||||
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue());
|
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue());
|
||||||
}
|
} else if (StrUtil.isBlank(baseMaterialVO.getMaterialNo()) || Objects.isNull(baseMaterialVO.getNum()) || BigDecimal.ZERO.compareTo(baseMaterialVO.getNum()) >= 0) {
|
||||||
else if (StrUtil.isBlank(baseMaterialVO.getMaterialNo()) || Objects.isNull(baseMaterialVO.getNum()) || BigDecimal.ZERO.compareTo(baseMaterialVO.getNum()) >= 0) {
|
|
||||||
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_4.getValue());
|
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_4.getValue());
|
||||||
}
|
} else if (StrUtil.isNotBlank(baseMaterialVO.getMaterialNo()) && Objects.isNull(baseMaterialVO.getMaterialState())) {
|
||||||
|
|
||||||
else if (StrUtil.isNotBlank(baseMaterialVO.getMaterialNo()) && Objects.isNull(baseMaterialVO.getMaterialState())) {
|
|
||||||
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_7.getValue());
|
baseMaterialVO.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_7.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1530,7 +1565,6 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
CheckEBomException.checkMaterialNoInMain(dto.getDatas());
|
CheckEBomException.checkMaterialNoInMain(dto.getDatas());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<BomNewEbomParentVO> childList = getChild(dto.getParent().getBomRowId());
|
List<BomNewEbomParentVO> childList = getChild(dto.getParent().getBomRowId());
|
||||||
|
|
||||||
List<BomNewEbomParentVO> tmp1 = dto.getDatas().stream().filter(item -> (Objects.nonNull(item.getRowId()) && item.getRowId() > 0)).collect(Collectors.toList());
|
List<BomNewEbomParentVO> tmp1 = dto.getDatas().stream().filter(item -> (Objects.nonNull(item.getRowId()) && item.getRowId() > 0)).collect(Collectors.toList());
|
||||||
|
|
@ -1544,8 +1578,6 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//相同rowid 相同物料号
|
//相同rowid 相同物料号
|
||||||
List<BomNewEbomParentVO> union2 = tmp1.stream().filter(u -> {
|
List<BomNewEbomParentVO> union2 = tmp1.stream().filter(u -> {
|
||||||
return childList.stream().filter(e ->
|
return childList.stream().filter(e ->
|
||||||
|
|
@ -1566,7 +1598,6 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(unionEdit, "projectType");
|
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(unionEdit, "projectType");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String[] ignore = new String[]{
|
String[] ignore = new String[]{
|
||||||
"projectType",
|
"projectType",
|
||||||
"procureType",
|
"procureType",
|
||||||
|
|
@ -1610,7 +1641,6 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(tmp2)) {
|
if (CollectionUtil.isNotEmpty(tmp2)) {
|
||||||
for (BomNewEbomParentVO vo :
|
for (BomNewEbomParentVO vo :
|
||||||
tmp2) {
|
tmp2) {
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
order by created_time desc
|
order by created_time desc
|
||||||
</if>
|
</if>
|
||||||
<if test="job==1">
|
<if test="job==1">
|
||||||
select * ,row_id as bomRowId from t_bom_new_ebom_parent where ( user_root_is= 1 or root_is=1) and status=2
|
select * ,row_id as bomRowId from t_bom_new_ebom_parent where ( (user_root_is= 1 and created_by=#{createdBy} ) or root_is=1) and status=2
|
||||||
<include refid="whr"/>
|
<include refid="whr"/>
|
||||||
order by created_time desc
|
order by created_time desc
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,7 @@
|
||||||
<foreach collection="drawingNos" item="item" open="(" separator="," close=")">
|
<foreach collection="drawingNos" item="item" open="(" separator="," close=")">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
order by created_time desc
|
||||||
</select>
|
</select>
|
||||||
<!--物料编码搜索-子级-->
|
<!--物料编码搜索-子级-->
|
||||||
<select id="getChildForDrawingNoSeach" resultType="com.nflg.product.bomnew.pojo.vo.BomOriginalListVO">
|
<select id="getChildForDrawingNoSeach" resultType="com.nflg.product.bomnew.pojo.vo.BomOriginalListVO">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue