Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom
This commit is contained in:
commit
4ad663fe6f
|
|
@ -1,23 +1,271 @@
|
||||||
package com.nflg.product.bomnew.service.domain.OptionalEBom;
|
package com.nflg.product.bomnew.service.domain.OptionalEBom;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.TypeReference;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.crypto.digest.MD5;
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||||
|
import com.nflg.product.base.core.exception.NflgBusinessException;
|
||||||
|
import com.nflg.product.bomnew.constant.OptionalBomConstant;
|
||||||
import com.nflg.product.bomnew.pojo.dto.AddVirtrualMaterialDTO;
|
import com.nflg.product.bomnew.pojo.dto.AddVirtrualMaterialDTO;
|
||||||
import com.nflg.product.bomnew.pojo.dto.OptionalEbomPublishAddDTO;
|
import com.nflg.product.bomnew.pojo.dto.OptionalEbomPublishAddDTO;
|
||||||
|
import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity;
|
||||||
|
import com.nflg.product.bomnew.pojo.entity.OptionalMbomCompareEntity;
|
||||||
import com.nflg.product.bomnew.pojo.entity.OptionalMbomMaterialEntity;
|
import com.nflg.product.bomnew.pojo.entity.OptionalMbomMaterialEntity;
|
||||||
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
|
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
|
||||||
|
import com.nflg.product.bomnew.service.OptionalEbomMainService;
|
||||||
|
import com.nflg.product.bomnew.service.OptionalMbomCompareService;
|
||||||
|
import com.nflg.product.bomnew.util.OrderNoUtil;
|
||||||
|
import lombok.Getter;
|
||||||
|
import nflg.product.common.constant.STATE;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class PublisMaterial {
|
public class PublisMaterial {
|
||||||
|
|
||||||
private OptionalEbomPublishAddDTO publishAddDTO;
|
private OptionalEbomPublishAddDTO publishAddDTO;
|
||||||
public PublisMaterial(OptionalEbomPublishAddDTO dto){
|
@Getter
|
||||||
|
private List<OptionalMbomMaterialEntity> materialList ;
|
||||||
|
|
||||||
|
private Long deviceRowId;
|
||||||
|
public PublisMaterial(OptionalEbomPublishAddDTO dto,Long deviceRowId){
|
||||||
this.publishAddDTO=dto;
|
this.publishAddDTO=dto;
|
||||||
|
materialList = new ArrayList<>();
|
||||||
|
this.deviceRowId=deviceRowId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
OptionalMbomMaterialEntity genVirtualPackLevelSend1( List<AddVirtrualMaterialDTO> oaList){
|
||||||
|
//21机型发货
|
||||||
|
OptionalMbomMaterialEntity sendPack = new OptionalMbomMaterialEntity();
|
||||||
|
String sendMaterialName = publishAddDTO.getGoodsDesc().concat("(发货)");
|
||||||
|
sendPack.setRowId(IdWorker.getId());
|
||||||
|
sendPack.setCreatedBy(SessionUtil.getUserCode());
|
||||||
|
sendPack.setRealName(SessionUtil.getRealName());
|
||||||
|
sendPack.setDeptName(SessionUtil.getDepartName());
|
||||||
|
sendPack.setCreatedTime(DateUtil.now());
|
||||||
|
sendPack.setMaterialName(sendMaterialName);
|
||||||
|
sendPack.setMaterialDesc(sendMaterialName);
|
||||||
|
sendPack.setDrawingNo(sendMaterialName);
|
||||||
|
sendPack.setRootRowId(publishAddDTO.getRowId());
|
||||||
|
sendPack.setMaterialNo("");//申请物料号
|
||||||
|
sendPack.setCategoryType(OptionalBomConstant.CategoryTypeEnum.TYPE_1.getValue());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AddVirtrualMaterialDTO toM =new AddVirtrualMaterialDTO();
|
||||||
|
String key=String.valueOf(sendPack.getRowId());
|
||||||
|
toM.setKey(key);
|
||||||
|
toM.setMaterialName(sendPack.getMaterialName() );
|
||||||
|
toM.setDrawingNo(sendPack.getMaterialName() );
|
||||||
|
toM.setMaterialDesc(sendPack.getMaterialName() );
|
||||||
|
toM.setMaterialCategoryCode(OptionalBomConstant.PublishMaterialEnum.OTHER.getCategory());
|
||||||
|
toM.setProjectType(OptionalBomConstant.PublishMaterialEnum.OTHER.getProjectType());
|
||||||
|
|
||||||
|
oaList.add(toM);
|
||||||
|
|
||||||
|
return sendPack;
|
||||||
|
|
||||||
|
}
|
||||||
|
OptionalMbomMaterialEntity genVirtualPackLevelMake1(Long parentRowId,List<AddVirtrualMaterialDTO> oaList){
|
||||||
|
//21机型制作
|
||||||
|
OptionalMbomMaterialEntity makePack = new OptionalMbomMaterialEntity();
|
||||||
|
String makeMaterialName = publishAddDTO.getGoodsDesc().concat("(制作)");
|
||||||
|
makePack.setRowId(IdWorker.getId());
|
||||||
|
makePack.setCreatedBy(SessionUtil.getUserCode());
|
||||||
|
makePack.setRealName(SessionUtil.getRealName());
|
||||||
|
makePack.setDeptName(SessionUtil.getDepartName());
|
||||||
|
makePack.setMaterialName(makeMaterialName);
|
||||||
|
makePack.setMaterialDesc(makeMaterialName);
|
||||||
|
makePack.setDrawingNo(makeMaterialName);
|
||||||
|
makePack.setParentRowId(parentRowId); //父级
|
||||||
|
makePack.setRootRowId(publishAddDTO.getRowId());
|
||||||
|
makePack.setCreatedTime(DateUtil.now());
|
||||||
|
makePack.setMaterialNo("");//申请物料号
|
||||||
|
makePack.setCategoryType(OptionalBomConstant.CategoryTypeEnum.TYPE_2.getValue());
|
||||||
|
|
||||||
|
AddVirtrualMaterialDTO toM =new AddVirtrualMaterialDTO();
|
||||||
|
String key=String.valueOf(makePack.getRowId()) ;
|
||||||
|
toM.setKey(key);
|
||||||
|
toM.setMaterialName(makePack.getMaterialName());
|
||||||
|
toM.setDrawingNo(makePack.getMaterialName());
|
||||||
|
toM.setMaterialDesc(makePack.getMaterialName());
|
||||||
|
toM.setMaterialCategoryCode(OptionalBomConstant.PublishMaterialEnum.OTHER.getCategory());
|
||||||
|
toM.setProjectType(OptionalBomConstant.PublishMaterialEnum.OTHER.getProjectType());
|
||||||
|
oaList.add(toM);
|
||||||
|
return makePack;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电控制作
|
||||||
|
*/
|
||||||
|
void genVirtualPackElectricLevelMake2(Long parentRowId,List<AddVirtrualMaterialDTO> oaList){
|
||||||
|
OptionalMbomMaterialEntity makePack = new OptionalMbomMaterialEntity();
|
||||||
|
String makeMaterialName = StrUtil.format("({})", publishAddDTO.getElectricDesc()).concat("(电控系统)").concat("(制作)");
|
||||||
|
makePack.setRowId(IdWorker.getId());
|
||||||
|
makePack.setParentRowId(parentRowId);
|
||||||
|
makePack.setCreatedBy(SessionUtil.getUserCode());
|
||||||
|
makePack .setRealName(SessionUtil.getRealName());
|
||||||
|
makePack .setDeptName(SessionUtil.getDepartName());
|
||||||
|
makePack.setCreatedTime(DateUtil.now());
|
||||||
|
makePack.setMaterialName(makeMaterialName);
|
||||||
|
makePack.setMaterialDesc(makeMaterialName);
|
||||||
|
makePack.setDrawingNo(makeMaterialName);
|
||||||
|
makePack.setRootRowId(publishAddDTO.getRowId());
|
||||||
|
makePack.setMaterialNo("");//申请物料号
|
||||||
|
makePack.setCategoryType(OptionalBomConstant.CategoryTypeEnum.TYPE_4.getValue());
|
||||||
|
|
||||||
|
AddVirtrualMaterialDTO toM =new AddVirtrualMaterialDTO();
|
||||||
|
String key=String.valueOf(makePack.getRowId()) ;
|
||||||
|
toM.setKey(key);
|
||||||
|
toM.setMaterialName(makePack.getMaterialName());
|
||||||
|
toM.setDrawingNo(makePack.getMaterialName());
|
||||||
|
toM.setMaterialDesc(makePack.getMaterialName());
|
||||||
|
toM.setMaterialCategoryCode(OptionalBomConstant.PublishMaterialEnum.OTHER.getCategory());
|
||||||
|
toM.setProjectType(OptionalBomConstant.PublishMaterialEnum.OTHER.getProjectType());
|
||||||
|
|
||||||
|
oaList.add(toM);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电控发货
|
||||||
|
*/
|
||||||
|
void genVirtualPackElectricLevelSend2(Long parentRowId,List<AddVirtrualMaterialDTO> oaList){
|
||||||
|
|
||||||
|
OptionalMbomMaterialEntity sendPack = new OptionalMbomMaterialEntity();
|
||||||
|
String sendMaterialName = StrUtil.format("({})", publishAddDTO.getElectricDesc()).concat("(电控系统)").concat("(发货)");
|
||||||
|
sendPack.setRowId(IdWorker.getId());
|
||||||
|
sendPack.setParentRowId(parentRowId);
|
||||||
|
sendPack.setCreatedBy(SessionUtil.getUserCode());
|
||||||
|
sendPack .setRealName(SessionUtil.getRealName());
|
||||||
|
sendPack.setDeptName(SessionUtil.getDepartName());
|
||||||
|
sendPack.setCreatedTime(DateUtil.now());
|
||||||
|
sendPack.setMaterialName(sendMaterialName);
|
||||||
|
sendPack.setMaterialDesc(sendMaterialName);
|
||||||
|
sendPack.setDrawingNo(sendMaterialName);
|
||||||
|
sendPack.setRootRowId(publishAddDTO.getRowId());
|
||||||
|
sendPack.setMaterialNo("");//申请物料号
|
||||||
|
sendPack.setCategoryType(OptionalBomConstant.CategoryTypeEnum.TYPE_3.getValue());
|
||||||
|
|
||||||
|
AddVirtrualMaterialDTO toM =new AddVirtrualMaterialDTO();
|
||||||
|
String key=String.valueOf(sendPack.getRowId()) ;
|
||||||
|
toM.setKey(key);
|
||||||
|
toM.setMaterialName(sendPack.getMaterialName());
|
||||||
|
toM.setDrawingNo(sendPack.getMaterialName());
|
||||||
|
toM.setMaterialDesc(sendPack.getMaterialName());
|
||||||
|
toM.setMaterialCategoryCode(OptionalBomConstant.PublishMaterialEnum.OTHER.getCategory());
|
||||||
|
toM.setProjectType(OptionalBomConstant.PublishMaterialEnum.OTHER.getProjectType());
|
||||||
|
oaList.add(toM);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void genVirtualPackMachineLevel2(Long parentRowId , List<OptionalEbomImportChildVO> optionList,List<AddVirtrualMaterialDTO> oaList){
|
||||||
|
// List<Long> materialNoList = optionList.stream().filter(u-> u.getPartType().equals(OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue()) ).map(OptionalEbomImportChildVO::getMaterialNo).map(Long::parseLong).collect(Collectors.toList());
|
||||||
|
// Collections.sort(materialNoList);
|
||||||
|
// String result = materialNoList.stream().map(String::valueOf).collect(Collectors.joining(","));
|
||||||
|
//
|
||||||
|
// String signMd5 = MD5.create().digestHex(result);
|
||||||
|
// QueryWrapper<OptionalMbomCompareEntity> queryWrapper = new QueryWrapper<>();
|
||||||
|
// queryWrapper.lambda().eq(OptionalMbomCompareEntity::getSignMd5, signMd5);
|
||||||
|
// OptionalMbomCompareEntity optionalMbomCompareEntity= SpringUtil.getBean(OptionalMbomCompareService.class).getOne(queryWrapper);
|
||||||
|
// OptionalMbomMaterialEntity material;
|
||||||
|
// if (optionalMbomCompareEntity == null) {
|
||||||
|
// material = new OptionalMbomMaterialEntity();
|
||||||
|
// OptionalEbomMainEntity desc= SpringUtil.getBean(OptionalEbomMainService.class).getById(deviceRowId);
|
||||||
|
//
|
||||||
|
// //物料名称和物料描述=机型+流水号+NF(机械部分)
|
||||||
|
// //图号=机型+流水号+NF
|
||||||
|
// String drawingNo =StrUtil.format("{}-{}",desc.getDeviceNo(), OrderNoUtil.orderNo2Str(desc.getSerialNo())).concat("-NF");
|
||||||
|
// String materialName=drawingNo.concat("(机械部分)");
|
||||||
|
// material.setRowId(IdWorker.getId());
|
||||||
|
//
|
||||||
|
// material.setParentRowId(parentRowId);
|
||||||
|
// material.setRootRowId(publishAddDTO.getRowId());
|
||||||
|
// material.setCreatedBy(SessionUtil.getUserCode());
|
||||||
|
// material.setRealName(SessionUtil.getRealName());
|
||||||
|
// material.setDeptName(SessionUtil.getDepartName());
|
||||||
|
// material.setCreatedTime(DateUtil.now());
|
||||||
|
// material.setMaterialName(materialName);
|
||||||
|
// material.setMaterialDesc(materialName);
|
||||||
|
// material.setDrawingNo(drawingNo);
|
||||||
|
// material.setMaterialNo("");//申请物料号
|
||||||
|
// material.setCategoryType(OptionalBomConstant.CategoryTypeEnum.TYPE_5.getValue());
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// AddVirtrualMaterialDTO toM =new AddVirtrualMaterialDTO();
|
||||||
|
// String key=String.valueOf(material.getRowId()) ;
|
||||||
|
// toM.setKey(key);
|
||||||
|
// toM.setMaterialName(material.getMaterialName());
|
||||||
|
// toM.setDrawingNo(drawingNo);
|
||||||
|
// toM.setMaterialDesc(material.getMaterialName());
|
||||||
|
// toM.setMaterialCategoryCode(OptionalBomConstant.PublishMaterialEnum.MACHINE.getCategory());
|
||||||
|
// toM.setProjectType(OptionalBomConstant.PublishMaterialEnum.MACHINE.getProjectType());
|
||||||
|
// oaList.add(toM);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// try {
|
||||||
|
// //数据不存在保存
|
||||||
|
// if (StrUtil.isNotEmpty(material.getMaterialNo())) {
|
||||||
|
// optionalMbomCompareEntity = Convert.convert(new TypeReference<OptionalMbomCompareEntity>() {
|
||||||
|
// }, material);
|
||||||
|
// optionalMbomCompareEntity.setParentRowId(rootRowId);
|
||||||
|
// optionalMbomCompareEntity.setSignMd5(signMd5);
|
||||||
|
// optionalMbomCompareEntity.setCreatedTime(DateUtil.now());
|
||||||
|
// optionalMbomCompareEntity.setChildRowIds(result);
|
||||||
|
// optionalMbomCompareService.save(optionalMbomCompareEntity);
|
||||||
|
//
|
||||||
|
// //更新序列号
|
||||||
|
// OptionalEbomMainEntity updateDevice=new OptionalEbomMainEntity();
|
||||||
|
// updateDevice.setRowId(desc.getRowId());
|
||||||
|
// updateDevice.setSerialNo(desc.getSerialNo()+1);
|
||||||
|
// SpringUtil.getBean(OptionalEbomMainService.class).updateById(updateDevice);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// } else { //同物料号
|
||||||
|
// material = Convert.convert(new TypeReference<OptionalMbomMaterialEntity>() {
|
||||||
|
// }, optionalMbomCompareEntity);
|
||||||
|
// material.setRowId(IdWorker.getId());
|
||||||
|
// material.setParentRowId(parentRowId);
|
||||||
|
// material.setRootRowId(publishAddDTO.getRowId());
|
||||||
|
// material.setCreatedBy(SessionUtil.getUserCode());
|
||||||
|
// material.setRealName(SessionUtil.getRealName());
|
||||||
|
// material.setDeptName(SessionUtil.getDepartName());
|
||||||
|
// material.setCategoryType(OptionalBomConstant.CategoryTypeEnum.TYPE_5.getValue());
|
||||||
|
// material.setCreatedTime(DateUtil.now());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<OptionalMbomMaterialEntity> buildMaterialList( List<OptionalEbomImportChildVO> optionList ){
|
public List<OptionalMbomMaterialEntity> buildMaterialList( List<OptionalEbomImportChildVO> optionList ){
|
||||||
|
|
||||||
List<OptionalMbomMaterialEntity> materialList = new ArrayList<>();
|
|
||||||
|
|
||||||
List<AddVirtrualMaterialDTO> oaList=new ArrayList<>();
|
List<AddVirtrualMaterialDTO> oaList=new ArrayList<>();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue