Merge branch 'feature/DM/nflg-bom' of http://112.74.186.154:3000/nflj/nflg_project into feature/DM/nflg-bom
This commit is contained in:
commit
6748b2b7d0
|
|
@ -105,7 +105,7 @@ public class EbomApi extends BaseApi {
|
|||
public ResultVO<Boolean> generateVirtualPackage(@RequestBody VirtualPackageParamDto paramDto) {
|
||||
VUtils.isTure(CollUtil.isEmpty(paramDto.getVirtualPackageValue())).throwMessage("请选择要生成的虚拟包");
|
||||
|
||||
VUtils.isTure(true).throwMessage("请选择30开头的或200401类型的物料");
|
||||
|
||||
bomNewEbomParentService.generateVirtualPackage(paramDto);
|
||||
return ResultVO.success(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,6 +124,7 @@ public class OriginalBomApi extends BaseApi {
|
|||
*/
|
||||
@PostMapping("convertToEBom")
|
||||
@ApiOperation("原始BOM转Ebom")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResultVO<Boolean> convertToEBom(@RequestBody List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
|
||||
VUtils.isTure(CollUtil.isEmpty(bomRowIds)).throwMessage("请选择要转换的BOM");
|
||||
|
|
|
|||
|
|
@ -276,6 +276,9 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable {
|
|||
@ApiModelProperty("bom层级数")
|
||||
private BigDecimal levelNumber;
|
||||
|
||||
@ApiModelProperty("层级号如:1-1")
|
||||
private String levelNo;
|
||||
|
||||
@ApiModelProperty("来源行-父项物料编码")
|
||||
private String sourceParentMaterialNo;
|
||||
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
EBomDetailTask detailTask = new EBomDetailTask(bomDetail);
|
||||
ForkJoinTask<List<BomNewEbomParentVO>> submit = bomDetailPool.submit(detailTask);
|
||||
|
||||
List<BomNewEbomParentVO> result = submit.get();
|
||||
List<BomNewEbomParentVO> result = submit.join();
|
||||
return result;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
List<BomNewOriginalParentEntity> bomNewOriginalParentEntities = this.getBaseMapper().selectBatchIds(bomRowIds);
|
||||
|
||||
List<BomNewOriginalParentEntity> convertedBom = bomNewOriginalParentEntities.stream().filter(u -> OriginalStatusEnum.OVER_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList());
|
||||
VUtils.isTure(CollUtil.isNotEmpty(convertedBom)).throwMessage("所选BOM中存在已转换的BOM");
|
||||
// VUtils.isTure(CollUtil.isNotEmpty(convertedBom)).throwMessage("所选BOM中存在已转换的BOM");
|
||||
|
||||
//开始转换
|
||||
for (BomNewOriginalParentEntity parent : bomNewOriginalParentEntities) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,8 @@ public class MaterialService {
|
|||
*/
|
||||
public String addMaterial(String drawingNo, String materialName, String materialCategoryCode) throws IOException {
|
||||
|
||||
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().eq(MaterialMainEntity::getMaterialName, materialName).list();
|
||||
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery()
|
||||
.eq(MaterialMainEntity::getMaterialName, materialName).list();
|
||||
if(CollUtil.isNotEmpty(oldMaterialList)){
|
||||
return oldMaterialList.get(0).getMaterialNo();
|
||||
}
|
||||
|
|
@ -78,8 +79,8 @@ public class MaterialService {
|
|||
|
||||
|
||||
HttpUtils httpUtils = new HttpUtils();
|
||||
String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySW5mbyI6IntcImRlcGFydE5hbWVcIjpcIuemj-W7uuWNl-aWuei3r-mdouacuuaisOaciemZkOWFrOWPuFwiLFwiZGVwYXJ0Um93SWRcIjoxNTg1MTk1Njk0ODcyNzg0ODk3LFwiZnVsbERlcHROYW1lXCI6XCJPVT3npo_lu7rljZfmlrnot6_pnaLmnLrmorDmnInpmZDlhazlj7gsREM9bmZsZ1wiLFwicXVlcnlEYXRhXCI6MixcInJlYWxOYW1lXCI6XCJhZG1pblwiLFwicm93SWRcIjoxNTQ3NTEyOTc4MDE2OTE5NTUzLFwidXNlckNvZGVcIjpcImFkbWluXCIsXCJ1c2VyTmFtZVwiOlwiYWRtaW5cIn0iLCJleHAiOjE3MDMwMTEyMzIsImp0aSI6IjQ5NTk3MGY0LTU3NTQtNDc1ZS05NmY0LTdkM2Y3ZTBkYmEwNyJ9.b01YDOG8FzXuWkJTrzI33tf9zwrqXZ2--BfvGN12YEA";
|
||||
// String token = SessionUtil.getSessionKey();
|
||||
// String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySW5mbyI6IntcImRlcGFydE5hbWVcIjpcIuemj-W7uuWNl-aWuei3r-mdouacuuaisOaciemZkOWFrOWPuFwiLFwiZGVwYXJ0Um93SWRcIjoxNTg1MTk1Njk0ODcyNzg0ODk3LFwiZnVsbERlcHROYW1lXCI6XCJPVT3npo_lu7rljZfmlrnot6_pnaLmnLrmorDmnInpmZDlhazlj7gsREM9bmZsZ1wiLFwicXVlcnlEYXRhXCI6MixcInJlYWxOYW1lXCI6XCJhZG1pblwiLFwicm93SWRcIjoxNTQ3NTEyOTc4MDE2OTE5NTUzLFwidXNlckNvZGVcIjpcImFkbWluXCIsXCJ1c2VyTmFtZVwiOlwiYWRtaW5cIn0iLCJleHAiOjE3MDMwMTEyMzIsImp0aSI6IjQ5NTk3MGY0LTU3NTQtNDc1ZS05NmY0LTdkM2Y3ZTBkYmEwNyJ9.b01YDOG8FzXuWkJTrzI33tf9zwrqXZ2--BfvGN12YEA";
|
||||
String token = SessionUtil.getSessionKey();
|
||||
String s = httpUtils.doPost(NacosConfig.getNacosConfig().getAddMaterialUrl(), JSON.toJSONString(materialMainDTO), token);
|
||||
|
||||
AddMaterialResultDTO result = JSON.parseObject(s, AddMaterialResultDTO.class);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public class UserRoleService {
|
|||
* @return
|
||||
*/
|
||||
public Integer getUserJob(){
|
||||
return 1;
|
||||
// return technician()? UserJobEnum.ENGINEER.getValue():UserJobEnum.DESIGNER.getValue();
|
||||
// return 1;
|
||||
return technician()? UserJobEnum.ENGINEER.getValue():UserJobEnum.DESIGNER.getValue();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,14 +3,20 @@ package com.nflg.product.bomnew.service.domain.EBom;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.nflg.product.bomnew.constant.EBomExceptionStatusEnum;
|
||||
import com.nflg.product.bomnew.constant.EBomStatusEnum;
|
||||
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.service.BomNewPbomChildService;
|
||||
import com.nflg.product.bomnew.service.BomNewPbomParentService;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import com.nflg.product.bomnew.util.VersionUtil;
|
||||
import lombok.Getter;
|
||||
|
||||
|
|
@ -44,16 +50,14 @@ public class EBomToPBom {
|
|||
private Map<String, String> generateDrawingNoMap = new HashMap<>();
|
||||
|
||||
|
||||
public EBomToPBom(BomNewEbomParentVO inParent, List<BomNewEbomParentVO> inAllBomDetail ,List<String> inFacCodes) {
|
||||
public EBomToPBom(BomNewEbomParentVO inParent, List<BomNewEbomParentVO> inAllBomDetail, List<String> inFacCodes) {
|
||||
this.parent = inParent;
|
||||
this.allBomDetail = inAllBomDetail;
|
||||
this.facCodes=inFacCodes;
|
||||
this.facCodes = inFacCodes;
|
||||
generateDrawingNo(allBomDetail, inParent.getRowId(), "");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 31項体层
|
||||
*/
|
||||
|
|
@ -66,11 +70,7 @@ public class EBomToPBom {
|
|||
|
||||
for (String facCode : facCodes) {
|
||||
for (BomNewEbomParentVO vo : parentList) {
|
||||
Pair<Integer, BomNewPbomParentEntity> parentPair = buildPBomParent(vo, facCode);
|
||||
//旧版本,无需处理
|
||||
if(parentPair.getKey().equals(0)){
|
||||
continue;
|
||||
}
|
||||
BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode);
|
||||
//子级
|
||||
List<BomNewEbomParentVO> child = result.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(child)) {
|
||||
|
|
@ -78,7 +78,7 @@ public class EBomToPBom {
|
|||
BomNewPbomChildEntity childEnt = new BomNewPbomChildEntity();
|
||||
BeanUtil.copyProperties(eb, childEnt);
|
||||
childEnt.setRowId(IdWorker.getId());
|
||||
childEnt.setParentRowId(parentPair.getValue().getRowId());
|
||||
childEnt.setParentRowId(parentEnt.getRowId());
|
||||
childEnt.setFacCode(facCode);
|
||||
this.pBomChildResult.add(childEnt);
|
||||
}
|
||||
|
|
@ -90,56 +90,53 @@ public class EBomToPBom {
|
|||
/**
|
||||
* 数据效验
|
||||
*/
|
||||
private void check(){
|
||||
|
||||
private void check() {
|
||||
List<BomNewEbomParentVO> collect = allBomDetail.stream().filter(u -> !EBomExceptionStatusEnum.OK.getValue().equals(u.getExceptionStatus())).collect(Collectors.toList());
|
||||
VUtils.isTure(CollUtil.isNotEmpty(collect)).throwMessage("存在异常数据,请处理完再转换");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 构建父
|
||||
*
|
||||
* @param parentVo
|
||||
* @return Pair<Integer, BomNewPbomParentEntity> key, 0-旧 1-新 value:pBomParent
|
||||
*/
|
||||
private Pair<Integer, BomNewPbomParentEntity> buildPBomParent(BomNewEbomParentVO parentVo, String facCode){
|
||||
private BomNewPbomParentEntity buildPBomParent(BomNewEbomParentVO parentVo, String facCode) {
|
||||
BomNewPbomParentEntity oldParent = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery()
|
||||
.eq(BomNewPbomParentEntity::getMaterialNo,parentVo.getMaterialNo())
|
||||
.eq(BomNewPbomParentEntity::getFacCode,facCode).one();
|
||||
.eq(BomNewPbomParentEntity::getMaterialNo, parentVo.getMaterialNo())
|
||||
.eq(BomNewPbomParentEntity::getFacCode, facCode).one();
|
||||
|
||||
if(Objects.nonNull(oldParent) && oldParent.getCurrentVersion().equals(parentVo.getCurrentVersion()) ){
|
||||
//删除原Pbom子级
|
||||
// SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id",oldParent.getRowId()));
|
||||
return new Pair<>(0,oldParent);
|
||||
}
|
||||
else {
|
||||
BomNewPbomParentEntity pBomParent=new BomNewPbomParentEntity();
|
||||
BeanUtil.copyProperties(pBomParent,parentVo);
|
||||
if (Objects.nonNull(oldParent) && !EBomStatusEnum.PUBLISHED.equalsValue(oldParent.getStatus())) {
|
||||
SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId()));
|
||||
oldParent.setCurrentVersion(parentVo.getCurrentVersion());
|
||||
this.pBomParentResult.add(oldParent);
|
||||
return oldParent;
|
||||
} else {
|
||||
BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity();
|
||||
BeanUtil.copyProperties(pBomParent, parentVo);
|
||||
pBomParent.setRowId(IdWorker.getId());
|
||||
pBomParent.setLastVersionIs(1);
|
||||
pBomParent.setCurrentVersion(VersionUtil.getNextVersion(Objects.nonNull(oldParent)? oldParent.getCurrentVersion():""));
|
||||
pBomParent.setFacCode(facCode);
|
||||
if(Objects.nonNull(oldParent)) {
|
||||
oldParent.setLastVersionIs(0);
|
||||
this.pBomParentResult.add(oldParent);
|
||||
}
|
||||
this.pBomParentResult.add(pBomParent);
|
||||
|
||||
return new Pair<>(1, pBomParent);
|
||||
return pBomParent;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 31提层
|
||||
*
|
||||
* @param
|
||||
* @param
|
||||
*/
|
||||
private void liftingLayer(){
|
||||
private void liftingLayer() {
|
||||
for (BomNewEbomParentVO vo : allBomDetail) {
|
||||
if (vo.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) {
|
||||
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackage(vo, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
if (Objects.nonNull(lastVirtualPackage)) {
|
||||
liftingLayerSummary(lastVirtualPackage, vo);
|
||||
vo.setSourceRowId(vo.getParentRowId());
|
||||
vo.setSourceParentMaterialNo(getParentMaterialNo(vo.getBomRowId()));
|
||||
vo.setParentRowId(lastVirtualPackage.getBomRowId());
|
||||
|
|
@ -150,6 +147,7 @@ public class EBomToPBom {
|
|||
if (vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) {
|
||||
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackage(vo, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
if (Objects.nonNull(lastVirtualPackage)) {
|
||||
liftingLayerSummary(lastVirtualPackage, vo);
|
||||
vo.setSourceRowId(vo.getParentRowId());
|
||||
vo.setSourceParentMaterialNo(getParentMaterialNo(vo.getBomRowId()));
|
||||
vo.setParentRowId(lastVirtualPackage.getBomRowId());
|
||||
|
|
@ -161,9 +159,27 @@ public class EBomToPBom {
|
|||
}
|
||||
}
|
||||
|
||||
private String getParentMaterialNo(Long parentRowId){
|
||||
/**
|
||||
* 提层汇总数量
|
||||
*
|
||||
* @param lastVirtualPackage 虚拟包
|
||||
* @param vo 提层项
|
||||
*/
|
||||
private void liftingLayerSummary(BomNewEbomParentVO lastVirtualPackage, BomNewEbomParentVO vo) {
|
||||
BigDecimal sum = vo.getNum();
|
||||
String parentLevelNo = vo.getLevelNo().substring(0, vo.getLevelNo().length() - 2);
|
||||
while (parentLevelNo.length() >= lastVirtualPackage.getLevelNo().length()) {
|
||||
List<BomNewEbomParentVO> parentList = allBomDetail.stream().filter(u -> u.getLevelNo().equals(parentLevelNo)).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(parentList)) {
|
||||
sum = NumberUtil.mul(sum, parentList.get(0).getNum());
|
||||
}
|
||||
}
|
||||
vo.setNum(sum);
|
||||
}
|
||||
|
||||
private String getParentMaterialNo(Long parentRowId) {
|
||||
List<BomNewEbomParentVO> collect = allBomDetail.stream().filter(u -> u.getBomRowId().equals(parentRowId)).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(collect)){
|
||||
if (CollUtil.isNotEmpty(collect)) {
|
||||
return collect.get(0).getMaterialNo();
|
||||
}
|
||||
return "";
|
||||
|
|
@ -178,9 +194,9 @@ public class EBomToPBom {
|
|||
}
|
||||
|
||||
|
||||
private BomNewEbomParentVO getVirtualPackageByName( VirtualPackageTypeEnum virtualPackageTypeEnum) {
|
||||
private BomNewEbomParentVO getVirtualPackageByName(VirtualPackageTypeEnum virtualPackageTypeEnum) {
|
||||
List<BomNewEbomParentVO> list = allBomDetail.stream().filter(u -> u.getMaterialName().contains(virtualPackageTypeEnum.getConMaterialName())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
return list.get(0);
|
||||
}
|
||||
return null;
|
||||
|
|
@ -196,27 +212,24 @@ public class EBomToPBom {
|
|||
* @param parentDrawingNo
|
||||
*/
|
||||
private void generateDrawingNo(List<BomNewEbomParentVO> saveBomDetailParamDTO, Long bomRowID, String parentDrawingNo) {
|
||||
List<BomNewEbomParentVO> firstLevelBoms = saveBomDetailParamDTO.stream().filter(u -> u.getBomRowId().equals(bomRowID)).collect(Collectors.toList());
|
||||
List<BomNewEbomParentVO> firstLevelBoms = saveBomDetailParamDTO.stream().filter(u -> u.getParentRowId().equals(bomRowID)).collect(Collectors.toList());
|
||||
parentDrawingNo = StrUtil.isNotBlank(parentDrawingNo) ? parentDrawingNo : "";
|
||||
Integer gNo = 1;
|
||||
|
||||
String preAssemblyPackageLevelNo =StrUtil.isNotBlank(parentDrawingNo) ? StrUtil.join("-", parentDrawingNo, "1") : "1";
|
||||
String preAssemblyPackageLevelNo = StrUtil.isNotBlank(parentDrawingNo) ? StrUtil.join("-", parentDrawingNo, "1") : "1";
|
||||
for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) {
|
||||
String key = StrUtil.join("-", bomRowID.toString(), firstLevelBom.getMaterialNo());
|
||||
if (generateDrawingNoMap.containsKey(key)) {
|
||||
firstLevelBom.setLevelNumber(levelToNum(generateDrawingNoMap.get(key)));
|
||||
continue;
|
||||
}
|
||||
if(firstLevelBom.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName()) || firstLevelBom.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())){
|
||||
|
||||
if (firstLevelBom.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName()) || firstLevelBom.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())) {
|
||||
firstLevelBom.setLevelNumber(levelToNum(preAssemblyPackageLevelNo));
|
||||
firstLevelBom.setLevelNo(preAssemblyPackageLevelNo);
|
||||
continue;
|
||||
}
|
||||
|
||||
String levelKey = StrUtil.isNotBlank(parentDrawingNo) ? StrUtil.join("-", parentDrawingNo, gNo.toString()) : gNo.toString();
|
||||
firstLevelBom.setLevelNumber(levelToNum(levelKey));
|
||||
firstLevelBom.setLevelNo(levelKey);
|
||||
gNo++;
|
||||
generateDrawingNo(saveBomDetailParamDTO, firstLevelBom.getChildBomRowId(), firstLevelBom.getDrawingNo());
|
||||
|
||||
generateDrawingNoMap.put(key, firstLevelBom.getDrawingNo());
|
||||
generateDrawingNo(saveBomDetailParamDTO, firstLevelBom.getChildBomRowId(), firstLevelBom.getLevelNo());
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ public class EbomInitProjectType {
|
|||
|
||||
//10
|
||||
BomNewEbomParentVO parent = getParent(child.getParentRowId());
|
||||
if (Objects.nonNull(parent) && parent.getProjectType().equals("Q")) {
|
||||
if (Objects.nonNull(parent) && Objects.nonNull(parent.getProjectType()) && parent.getProjectType().equals("Q")) {
|
||||
List<BomNewEbomParentVO> subChild = getChilds(child.getBomRowId());
|
||||
List<BomNewEbomParentVO> collect = subChild.stream().filter(u -> u.getMaterialCategoryCode().startsWith("1004")).collect(Collectors.toList());
|
||||
collect.forEach(u -> u.setProjectType("L"));
|
||||
|
|
@ -155,7 +155,7 @@ public class EbomInitProjectType {
|
|||
resultNo1004 = resultNo1004 & projectTypeEquals(sResult1004, Sets.newHashSet("F", "Q"));
|
||||
}
|
||||
|
||||
sResultProjectL = sameLevelChild1004.stream().filter(u -> u.getProjectType().equals("L")).collect(Collectors.toList());
|
||||
sResultProjectL = sameLevelChild1004.stream().filter(u -> Objects.nonNull(u.getProjectType()) && u.getProjectType().equals("L")).collect(Collectors.toList());
|
||||
|
||||
int lResult = 1;
|
||||
for (BomNewEbomParentVO v : sResultProjectL) {
|
||||
|
|
|
|||
|
|
@ -12,16 +12,20 @@ import com.nflg.product.bomnew.constant.ProjectTypeInputTypeEnum;
|
|||
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.entity.MaterialMainEntity;
|
||||
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.MaterialMainService;
|
||||
import com.nflg.product.bomnew.service.MaterialService;
|
||||
import com.nflg.product.bomnew.util.VersionUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl;
|
||||
import sun.security.krb5.internal.PAData;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -51,7 +55,12 @@ public abstract class VirtualPackageBase {
|
|||
String vDrawingNo = String.join("",drawingNo,"(",virtualPackageType.getConMaterialName(),")" );
|
||||
String vMaterialName = StrUtil.join("",materialName,"(",virtualPackageType.getConMaterialName(),")");
|
||||
String vMaterialDesc = StrUtil.join("", drawingNo ," ", materialName,"(",virtualPackageType.getConMaterialName(),")");
|
||||
BomNewEbomParentEntity oldParent= SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getDrawingNo, vDrawingNo).eq(BomNewEbomParentEntity::getLastVersionIs,1).one();
|
||||
BomNewEbomParentEntity oldParent=null;
|
||||
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().eq(MaterialMainEntity::getMaterialName, vMaterialName)
|
||||
.eq(MaterialMainEntity::getMaterialDesc, vMaterialDesc).list();
|
||||
if(CollUtil.isNotEmpty(oldMaterialList)){
|
||||
oldParent= SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, oldMaterialList.get(0).getMaterialNo()).eq(BomNewEbomParentEntity::getLastVersionIs,1).one();
|
||||
}
|
||||
if(Objects.nonNull(oldParent)){
|
||||
oldParent.setLastVersionIs(0);
|
||||
this.parentResult.add(oldParent);
|
||||
|
|
@ -72,6 +81,7 @@ public abstract class VirtualPackageBase {
|
|||
parent.setBomExist(1);
|
||||
parent.setSourceRowId(0L);
|
||||
parent.setLastVersionIs(1);
|
||||
parent.setNum(new BigDecimal(1));
|
||||
parent.setDeviseName(SessionUtil.getUserCode());
|
||||
parent.setDeviseName(SessionUtil.getRealName());
|
||||
parent.setCreatedBy(SessionUtil.getUserCode());
|
||||
|
|
@ -93,6 +103,7 @@ public abstract class VirtualPackageBase {
|
|||
childEntity.setParentRowId(parentRowId);
|
||||
childEntity.setIdentityNo(parent.getRowId().toString());
|
||||
childEntity.setOrderNumber(orderNo);
|
||||
childEntity.setNum(new BigDecimal(1));
|
||||
childEntity.setEditStatus(EbomEditStatusEnum.HANDLER_CREATED.getValue());
|
||||
childEntity.setSource(EBomSourceEnum.FROM_MDM.getValue());
|
||||
this.childResult.add(childEntity);
|
||||
|
|
@ -109,7 +120,7 @@ public abstract class VirtualPackageBase {
|
|||
|
||||
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());
|
||||
List<BomNewEbomChildEntity> zhiZuo = list.stream().filter(u -> u.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(zhiZuo)){
|
||||
String materialNo=zhiZuo.get(0).getMaterialNo();
|
||||
return SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo,materialNo)
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ public class VirtualPackageFor21 extends VirtualPackageBase {
|
|||
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();
|
||||
//将产品子级放制作包下
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.nflg.product.bomnew.util.VUtils;
|
|||
import nflg.product.common.constant.STATE;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 31物料生成虚拟包
|
||||
|
|
@ -35,28 +36,43 @@ public class VirtualPackageFor31 extends VirtualPackageBase {
|
|||
|
||||
List<BomNewEbomParentVO> child = getChild();
|
||||
BomNewEbomParentEntity parent = getParentByRowId(bomRowId);
|
||||
VUtils.isTure(parent.getVirtrualPackageEnum()>0).throwMessage("已生成虚拟包无需重复生成");
|
||||
|
||||
try {
|
||||
|
||||
for (BomNewEbomParentVO item : child) {
|
||||
BomNewEbomParentEntity makingPackage=null;
|
||||
if((VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue()&parent.getVirtrualPackageEnum())!=VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue()) {
|
||||
//构建发货包
|
||||
BomNewEbomParentEntity deliveryPackage = buildParentVirtualPackage(item.getDrawingNo(), item.getMaterialName(), VirtualPackageTypeEnum.DELIVERY_PACKAGE);
|
||||
//构建构建发货包下制作包
|
||||
BomNewEbomParentEntity makingPackage = buildParentVirtualPackage(item.getDrawingNo(), item.getMaterialName(), VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
makingPackage = buildParentVirtualPackage(item.getDrawingNo(), item.getMaterialName(), VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
//构建构建发货包下直发
|
||||
BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(item.getDrawingNo(), item.getMaterialName(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
|
||||
//构建-产品下发货包-子级
|
||||
buildChild(deliveryPackage, bomRowId,"001",VirtualPackageTypeEnum.DELIVERY_PACKAGE);
|
||||
buildChild(deliveryPackage, bomRowId, "001", VirtualPackageTypeEnum.DELIVERY_PACKAGE);
|
||||
|
||||
//构建发货包-子级
|
||||
buildChild(makingPackage,deliveryPackage.getRowId(),"001",VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
buildChild(directDeliveryPackage,deliveryPackage.getRowId(),"002",VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
buildChild(makingPackage, deliveryPackage.getRowId(), "001", VirtualPackageTypeEnum.MAKING_PACKAGE);
|
||||
buildChild(directDeliveryPackage, deliveryPackage.getRowId(), "002", VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||
|
||||
|
||||
BomNewEbomChildEntity itemUp=new BomNewEbomChildEntity();
|
||||
|
||||
BomNewEbomChildEntity itemUp = new BomNewEbomChildEntity();
|
||||
itemUp.setRowId(item.getRowId());
|
||||
itemUp.setParentRowId(makingPackage.getRowId());
|
||||
this.childResult.add(itemUp);
|
||||
}
|
||||
// 包含发货前装配包
|
||||
if (virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue() & parent.getVirtrualPackageEnum()) != VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) {
|
||||
BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(item.getDrawingNo(), item.getMaterialName(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
//构建构建发货前装配包
|
||||
if(Objects.isNull(makingPackage)){
|
||||
makingPackage=getParentZhiZuo();
|
||||
}
|
||||
buildChild(preAssemblyPackage, makingPackage.getRowId(), "001", VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
parent.setVirtrualPackageEnum(VirtualPackageTypeEnum.getAll());
|
||||
|
|
|
|||
|
|
@ -69,6 +69,8 @@ public class OriginalBomToEBomConvert extends BaseConvert {
|
|||
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(ImmutableList.of(parent));
|
||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(bomDetail);
|
||||
|
||||
SpringUtil.getBean(MaterialMainService.class).initShouldBomExist(bomDetail,BomOriginalListVO::getMaterialCategoryCode, BomOriginalListVO::setShouldBomExist,BomOriginalListVO::getMaterialGetType);
|
||||
//处理父级
|
||||
hanlerDo(parent);
|
||||
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@
|
|||
|
||||
<!--BOM-正式工作表-->
|
||||
<select id="formalWorksheet" resultType="com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO">
|
||||
select row_id as bomRowId, * from t_bom_new_ebom_parent where 1=1
|
||||
select row_id as bomRowId, * from t_bom_new_ebom_parent where status=4
|
||||
<include refid="whr"/>
|
||||
</select>
|
||||
|
||||
|
|
@ -133,7 +133,7 @@
|
|||
|
||||
<select id="getParentChildBatch" resultType="com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO">
|
||||
select *
|
||||
from t_bom_new_original_child
|
||||
from t_bom_new_ebom_child
|
||||
where parent_row_id in
|
||||
<foreach collection="rowIds" item="rowId" open="(" separator="," close=")">
|
||||
#{rowId}
|
||||
|
|
|
|||
Loading…
Reference in New Issue