1、ebom-转pBOM

This commit is contained in:
大米 2024-04-18 18:53:59 +08:00
parent 626fe44ce6
commit a01778112d
2 changed files with 14 additions and 5 deletions

View File

@ -23,10 +23,7 @@ import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.constant.*;
import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper; import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper;
import com.nflg.product.bomnew.pojo.dto.*; import com.nflg.product.bomnew.pojo.dto.*;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomMaterialUseEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity;
import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery;
import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery;
import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.pojo.vo.*;
@ -47,6 +44,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Struct;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
@ -836,6 +834,16 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
VUtils.isTure(parents.stream().anyMatch(u -> u.getMaterialNo().startsWith("31") && u.getVirtrualPackageEnum() <= 0)) VUtils.isTure(parents.stream().anyMatch(u -> u.getMaterialNo().startsWith("31") && u.getVirtrualPackageEnum() <= 0))
.throwMessage("31码须有虚拟包"); .throwMessage("31码须有虚拟包");
//检查该版本是否已转换过该工厂的Pbom
for (BomNewEbomParentEntity parent : parents){
List<BomNewPbomParentEntity> list = pBomParentService.lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parent.getMaterialNo()).eq(BomNewPbomParentEntity::getCurrentVersion, parent.getCurrentVersion())
.select(BomNewPbomParentEntity::getFacCode).list();
if(CollUtil.isNotEmpty(list)){
Set<String> dbExistsFac = list.stream().map(u -> u.getFacCode()).collect(Collectors.toSet());
Set<String> checkResultFac = Sets.intersection(dbExistsFac, new HashSet<>(paramDto.getFacCodes()));
VUtils.isTure(CollUtil.isNotEmpty(checkResultFac)).throwMessage("物料:"+parent.getMaterialNo()+"已经转换过"+ StrUtil.join(",", checkResultFac)+"工厂");
}
}
for (Long bomRowId : paramDto.getBomRowIds()) { for (Long bomRowId : paramDto.getBomRowIds()) {
BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, this.getById(bomRowId)); BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, this.getById(bomRowId));

View File

@ -86,7 +86,7 @@ public class EBomToPBom {
//buildPBomParent(parent, facCode); //buildPBomParent(parent, facCode);
for (BomNewEbomParentVO vo : parentList) { for (BomNewEbomParentVO vo : parentList) {
String hasConvertKey=StrUtil.join("-",facCode,vo.getBomRowId()); String hasConvertKey=StrUtil.join("-",facCode,vo.getBomRowId());
if(hasConvert.contains(hasConvertKey)){ if(hasConvert.contains(hasConvertKey) || PBomStatusEnum.PUBLISH.equalsValue(vo.getStatus()) ){
continue; continue;
} }
hasConvert.add(hasConvertKey); hasConvert.add(hasConvertKey);
@ -164,6 +164,7 @@ public class EBomToPBom {
} else { } else {
BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity(); BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity();
BeanUtil.copyProperties(parentVo, pBomParent); BeanUtil.copyProperties(parentVo, pBomParent);
pBomParent.setSourceRowId(parentVo.getBomRowId());
pBomParent.setRowId(IdWorker.getId()); pBomParent.setRowId(IdWorker.getId());
pBomParent.setStatus(PBomStatusEnum.WAIT_PUBLISH.getValue()); pBomParent.setStatus(PBomStatusEnum.WAIT_PUBLISH.getValue());
pBomParent.setLastVersionIs(1); pBomParent.setLastVersionIs(1);