1020分工厂

This commit is contained in:
大米 2024-01-18 11:39:30 +08:00
parent b3b9a85b5f
commit ba97872897
1 changed files with 79 additions and 68 deletions

View File

@ -116,8 +116,8 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
List<String> parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo).stream().collect(Collectors.toList()); List<String> parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo).stream().collect(Collectors.toList());
parentMaterialByMaterialNo.add(materialNo); parentMaterialByMaterialNo.add(materialNo);
if (CollUtil.isNotEmpty(parentMaterialByMaterialNo)) { if (CollUtil.isNotEmpty(parentMaterialByMaterialNo)) {
List<BomNewPbomParentVO> parents = this.getBaseMapper().getParentForMaterialNoSeach(StrUtil.isBlank(userRoleService.getUserFactory())?userRoleService.getUserFactory():query.getFacCode(),parentMaterialByMaterialNo ); List<BomNewPbomParentVO> parents = this.getBaseMapper().getParentForMaterialNoSeach(StrUtil.isBlank(userRoleService.getUserFactory()) ? userRoleService.getUserFactory() : query.getFacCode(), parentMaterialByMaterialNo);
List<BomNewPbomParentVO> childs = this.getBaseMapper().getChildForMaterialNoSeach(StrUtil.isBlank(userRoleService.getUserFactory())?userRoleService.getUserFactory():query.getFacCode(),parentMaterialByMaterialNo, materialNo); List<BomNewPbomParentVO> childs = this.getBaseMapper().getChildForMaterialNoSeach(StrUtil.isBlank(userRoleService.getUserFactory()) ? userRoleService.getUserFactory() : query.getFacCode(), parentMaterialByMaterialNo, materialNo);
List<BomNewPbomParentVO> data = new ArrayList<>(); List<BomNewPbomParentVO> data = new ArrayList<>();
data.addAll(parents); data.addAll(parents);
data.addAll(childs); data.addAll(childs);
@ -125,7 +125,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
return handSeachToTree(parents, childs); return handSeachToTree(parents, childs);
} }
} }
return new Page<BomNewPbomParentVO>() ; return new Page<BomNewPbomParentVO>();
} else { } else {
Page<BomNewPbomParentVO> result = this.getBaseMapper().workDetailsListByPage(new Page<>(query.getPage(), query.getPageSize()), query, userRoleService.getUserFactory()); Page<BomNewPbomParentVO> result = this.getBaseMapper().workDetailsListByPage(new Page<>(query.getPage(), query.getPageSize()), query, userRoleService.getUserFactory());
materialMainService.intiMaterialInfo(result.getRecords(), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); materialMainService.intiMaterialInfo(result.getRecords(), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
@ -160,6 +160,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
/** /**
* 获取物料所有子级 * 获取物料所有子级
*
* @param materialNo * @param materialNo
* @param * @param
* @return * @return
@ -187,7 +188,6 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
} }
/** /**
* *
* *
@ -202,6 +202,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
/** /**
* 导出工作列表 * 导出工作列表
*
* @param query * @param query
* @param response * @param response
* @throws IOException * @throws IOException
@ -209,12 +210,13 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
public void workDetailsExcel(BomNewPbomParentQuery query, HttpServletResponse response) throws IOException { public void workDetailsExcel(BomNewPbomParentQuery query, HttpServletResponse response) throws IOException {
EecExcelUtil.setResponseExcelHeader(response, "bom明细列表"); EecExcelUtil.setResponseExcelHeader(response, "bom明细列表");
List<BomNewPbomWorkExcelVO> result = this.getBaseMapper().workDetailsExcel(userRoleService.getUserFactory()); List<BomNewPbomWorkExcelVO> result = this.getBaseMapper().workDetailsExcel(userRoleService.getUserFactory());
materialMainService.intiMaterialInfo(result,BomNewPbomWorkExcelVO::getMaterialNo,EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); materialMainService.intiMaterialInfo(result, BomNewPbomWorkExcelVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
new Workbook().addSheet(result).writeTo(response.getOutputStream()); new Workbook().addSheet(result).writeTo(response.getOutputStream());
} }
/** /**
* 导出正式工作表 * 导出正式工作表
*
* @param query * @param query
* @param response * @param response
* @throws IOException * @throws IOException
@ -222,7 +224,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
public void releaseListExcel(BomNewPbomParentQuery query, HttpServletResponse response) throws IOException { public void releaseListExcel(BomNewPbomParentQuery query, HttpServletResponse response) throws IOException {
EecExcelUtil.setResponseExcelHeader(response, "bom明细列表"); EecExcelUtil.setResponseExcelHeader(response, "bom明细列表");
List<BomNewPbomWorkExcelVO> result = this.getBaseMapper().releaseListExcel(query); List<BomNewPbomWorkExcelVO> result = this.getBaseMapper().releaseListExcel(query);
materialMainService.intiMaterialInfo(result,BomNewPbomWorkExcelVO::getMaterialNo,EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); materialMainService.intiMaterialInfo(result, BomNewPbomWorkExcelVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
new Workbook().addSheet(result).writeTo(response.getOutputStream()); new Workbook().addSheet(result).writeTo(response.getOutputStream());
} }
@ -444,13 +446,13 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
* @param targetFacCode * @param targetFacCode
* @return * @return
*/ */
public List<BomCopyCheckResultVO> copyBomCheck(Long sourceBomRowId, String targetFacCode,Long rowId) throws ExecutionException, InterruptedException { public List<BomCopyCheckResultVO> copyBomCheck(Long sourceBomRowId, String targetFacCode, Long rowId) throws ExecutionException, InterruptedException {
BomNewPbomParentEntity root = this.getById(sourceBomRowId); BomNewPbomParentEntity root = this.getById(sourceBomRowId);
VUtils.isTure(root.getMaterialNo().startsWith("31")).throwMessage("31码物料不能进行复制"); VUtils.isTure(root.getMaterialNo().startsWith("31")).throwMessage("31码物料不能进行复制");
BomNewPbomChildEntity child = pbomChildService.getById(rowId); BomNewPbomChildEntity child = pbomChildService.getById(rowId);
if(child.getVirtualPartRootMaterialNo().startsWith("31") && child.getVirtualPartType()>0){ if (child.getVirtualPartRootMaterialNo().startsWith("31") && child.getVirtualPartType() > 0) {
VUtils.isTure(true).throwMessage("31下的虚拟包不能删除"); VUtils.isTure(true).throwMessage("31下的虚拟包不能删除");
} }
@ -487,7 +489,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
* @throws ExecutionException * @throws ExecutionException
* @throws InterruptedException * @throws InterruptedException
*/ */
public List<BomNewPbomParentVO> getAllBom(Long rowId, Integer countLevelNum ) throws ExecutionException, InterruptedException { public List<BomNewPbomParentVO> getAllBom(Long rowId, Integer countLevelNum) throws ExecutionException, InterruptedException {
List<BomNewPbomParentVO> bomDetail = this.getBaseMapper().getParentChild(rowId); List<BomNewPbomParentVO> bomDetail = this.getBaseMapper().getParentChild(rowId);
AtomicInteger levelNum = new AtomicInteger(1); AtomicInteger levelNum = new AtomicInteger(1);
PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum); PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum);
@ -498,7 +500,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
} }
public List<BomNewPbomParentVO> getAllBom(Long rowId, Integer countLevelNum ,Boolean generateDrawingNumberFalg) throws ExecutionException, InterruptedException { public List<BomNewPbomParentVO> getAllBom(Long rowId, Integer countLevelNum, Boolean generateDrawingNumberFalg) throws ExecutionException, InterruptedException {
List<BomNewPbomParentVO> bomDetail = this.getBaseMapper().getParentChild(rowId); List<BomNewPbomParentVO> bomDetail = this.getBaseMapper().getParentChild(rowId);
AtomicInteger levelNum = new AtomicInteger(1); AtomicInteger levelNum = new AtomicInteger(1);
PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum); PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum);
@ -506,12 +508,13 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
List<BomNewPbomParentVO> result = submit.join(); List<BomNewPbomParentVO> result = submit.join();
if(generateDrawingNumberFalg){ if (generateDrawingNumberFalg) {
generateDrawingNo(result,rowId,""); generateDrawingNo(result, rowId, "");
} }
return result; return result;
} }
public void generateDrawingNo(List<BomNewPbomParentVO> saveBomDetailParamDTO, Long bomRowID, String parentDrawingNo) { public void generateDrawingNo(List<BomNewPbomParentVO> saveBomDetailParamDTO, Long bomRowID, String parentDrawingNo) {
List<BomNewPbomParentVO> firstLevelBoms = saveBomDetailParamDTO.stream().filter(u -> u.getParentRowId().equals(bomRowID)).collect(Collectors.toList()); List<BomNewPbomParentVO> firstLevelBoms = saveBomDetailParamDTO.stream().filter(u -> u.getParentRowId().equals(bomRowID)).collect(Collectors.toList());
parentDrawingNo = StrUtil.isNotBlank(parentDrawingNo) ? parentDrawingNo : ""; parentDrawingNo = StrUtil.isNotBlank(parentDrawingNo) ? parentDrawingNo : "";
@ -557,7 +560,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
VUtils.isTure(StrUtil.isBlank(params.getRuleGroupCode())).throwMessage("规则编码不能为空"); VUtils.isTure(StrUtil.isBlank(params.getRuleGroupCode())).throwMessage("规则编码不能为空");
List<BomNewPbomParentVO> childrenVO = getAllBom(params.getBomRowId(), 0,true); List<BomNewPbomParentVO> childrenVO = getAllBom(params.getBomRowId(), 0, true);
materialMainService.intiMaterialInfo(childrenVO, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); materialMainService.intiMaterialInfo(childrenVO, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
List<BomFactorySplitRuleEntity> relList = bomFactorySplitRuleService.lambdaQuery().eq(BomFactorySplitRuleEntity::getRuleGroupCode, params.getRuleGroupCode()).list(); List<BomFactorySplitRuleEntity> relList = bomFactorySplitRuleService.lambdaQuery().eq(BomFactorySplitRuleEntity::getRuleGroupCode, params.getRuleGroupCode()).list();
StringBuilder relPattern = new StringBuilder(); StringBuilder relPattern = new StringBuilder();
@ -604,11 +607,19 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
break; break;
} }
} }
}
if(child.getProjectType().equals("Q")){ //Q项
intiQFac(child,childrenVO); List<BomNewPbomParentVO> qList = childrenVO.stream().filter(u -> u.getProjectType().equals("Q")).collect(Collectors.toList());
}else { {
intiNotQFac(child,childrenVO); for (BomNewPbomParentVO qVo : qList) {
intiQFac(qVo, childrenVO);
}
}
//非Q
List<BomNewPbomParentVO> noQList = childrenVO.stream().filter(u -> !u.getProjectType().equals("Q")).collect(Collectors.toList());
{
for (BomNewPbomParentVO noQVo : noQList) {
intiNotQFac(noQVo, childrenVO);
} }
} }
if (CollUtil.isNotEmpty(result)) { if (CollUtil.isNotEmpty(result)) {
@ -617,37 +628,38 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
return true; return true;
} }
//处理Q下子级分工厂 //处理Q下子级分工厂
private void intiQFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child){ private void intiQFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child) {
setSubNodeFac(parentVO, child,parentVO.getProductionFactoryCode() ); setSubNodeFac(parentVO, child, parentVO.getProductionFactoryCode());
} }
//非Q //非Q
private void intiNotQFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child){ private void intiNotQFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child) {
//当为1020时 子级为1020 //当为1020时 子级为1020
if(parentVO.getProductionFactoryCode().equals(EBomConstant.XIAN_TAO_FACTORY_CODE_1020)){ if (parentVO.getProductionFactoryCode().equals(EBomConstant.XIAN_TAO_FACTORY_CODE_1020)) {
setSubNodeFac(parentVO,child, EBomConstant.XIAN_TAO_FACTORY_CODE_1020); setSubNodeFac(parentVO, child, EBomConstant.XIAN_TAO_FACTORY_CODE_1020);
} }
if(parentVO.getProductionFactoryCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)){ if (parentVO.getProductionFactoryCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)) {
//父级 //父级
setParentFac(parentVO,child,EBomConstant.MAIN_FACTORY_CODE_1010); setParentFac(parentVO, child, EBomConstant.MAIN_FACTORY_CODE_1010);
//子级 //子级
setSubNodeFac(parentVO,child, EBomConstant.MAIN_FACTORY_CODE_1010); setSubNodeFac(parentVO, child, EBomConstant.MAIN_FACTORY_CODE_1010);
} }
} }
private void setParentFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child , String facCode){ private void setParentFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child, String facCode) {
List<String> parentByLevel = BomLevelUtil.getParentByLevel(parentVO.getLevelNo()); List<String> parentByLevel = BomLevelUtil.getParentByLevel(parentVO.getLevelNo());
for ( String level: parentByLevel) { for (String level : parentByLevel) {
List<BomNewPbomParentVO> parents = child.stream().filter(u -> u.getLevelNo().equals(level) && u.getVirtualPartIs().equals(0)).collect(Collectors.toList()); List<BomNewPbomParentVO> parents = child.stream().filter(u -> u.getLevelNo().equals(level) && u.getVirtualPartIs().equals(0)).collect(Collectors.toList());
if(CollUtil.isNotEmpty(parents)){ if (CollUtil.isNotEmpty(parents)) {
parents.get(0).setProductionFactoryCode(facCode); parents.get(0).setProductionFactoryCode(facCode);
parents.get(0).setProductionFactoryCodeInputType(ProductionFactoryCodeInputTypeEnum.RULE_MATCH.getValue()); parents.get(0).setProductionFactoryCodeInputType(ProductionFactoryCodeInputTypeEnum.RULE_MATCH.getValue());
} }
@ -655,10 +667,10 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
} }
} }
private void setSubNodeFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child , String facCode){ private void setSubNodeFac(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> child, String facCode) {
String[] numSplit = parentVO.getLevelNumber().toString().split("."); String[] numSplit = parentVO.getLevelNumber().toString().split(".");
String zero ="1"+ StrUtil.padAfter("0", (numSplit.length>1? numSplit[1].length():0), "0"); String zero = "1" + StrUtil.padAfter("0", (numSplit.length > 1 ? numSplit[1].length() : 0), "0");
BigDecimal bNodeLevel = NumberUtil.add(parentVO.getLevelNumber(),(NumberUtil.div ( new BigDecimal(1) , new BigDecimal(zero))) ); BigDecimal bNodeLevel = NumberUtil.add(parentVO.getLevelNumber(), (NumberUtil.div(new BigDecimal(1), new BigDecimal(zero))));
List<BomNewPbomParentVO> subNodes = child.stream().filter(u -> u.getLevelNumber().compareTo(parentVO.getLevelNumber()) > 0 && u.getLevelNumber().compareTo(bNodeLevel) < 0).collect(Collectors.toList()); List<BomNewPbomParentVO> subNodes = child.stream().filter(u -> u.getLevelNumber().compareTo(parentVO.getLevelNumber()) > 0 && u.getLevelNumber().compareTo(bNodeLevel) < 0).collect(Collectors.toList());
for (BomNewPbomParentVO node : subNodes) { for (BomNewPbomParentVO node : subNodes) {
node.setProductionFactoryCode(facCode); node.setProductionFactoryCode(facCode);
@ -667,8 +679,6 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
} }
public void reConvertToMBom(Long bomRowId, List<Long> backRowId) { public void reConvertToMBom(Long bomRowId, List<Long> backRowId) {
@ -699,7 +709,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
List<String> noProductionFactoryCodeList = allChild.stream().filter(u -> StrUtil.isBlank(u.getProductionFactoryCode())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); List<String> noProductionFactoryCodeList = allChild.stream().filter(u -> StrUtil.isBlank(u.getProductionFactoryCode())).map(u -> u.getMaterialNo()).collect(Collectors.toList());
VUtils.isTure(CollUtil.isNotEmpty(noProductionFactoryCodeList)).throwMessage(StrUtil.join(",", noProductionFactoryCodeList) + "物料暂未分工厂,请分完工厂再进行发布"); VUtils.isTure(CollUtil.isNotEmpty(noProductionFactoryCodeList)).throwMessage(StrUtil.join(",", noProductionFactoryCodeList) + "物料暂未分工厂,请分完工厂再进行发布");
ConvertToMBom convertToMBom = new ConvertToMBom(rootParent, allChild); ConvertToMBom convertToMBom = new ConvertToMBom(rootParent, allChild);
convertToMBom.convertToMBom(true,true); convertToMBom.convertToMBom(true, true);
if (CollUtil.isNotEmpty(convertToMBom.getMBomParentResult())) { if (CollUtil.isNotEmpty(convertToMBom.getMBomParentResult())) {
mBomParentService.saveOrUpdateBatch(convertToMBom.getMBomParentResult()); mBomParentService.saveOrUpdateBatch(convertToMBom.getMBomParentResult());
} }
@ -722,6 +732,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
/** /**
* MBOM退回后重新发布调用 * MBOM退回后重新发布调用
*
* @param bomRowId * @param bomRowId
* @return * @return
* @throws ExecutionException * @throws ExecutionException
@ -742,7 +753,7 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
List<String> noProductionFactoryCodeList = allChild.stream().filter(u -> StrUtil.isBlank(u.getProductionFactoryCode())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); List<String> noProductionFactoryCodeList = allChild.stream().filter(u -> StrUtil.isBlank(u.getProductionFactoryCode())).map(u -> u.getMaterialNo()).collect(Collectors.toList());
VUtils.isTure(CollUtil.isNotEmpty(noProductionFactoryCodeList)).throwMessage(StrUtil.join(",", noProductionFactoryCodeList) + "物料暂未分工厂,请分完工厂再进行发布"); VUtils.isTure(CollUtil.isNotEmpty(noProductionFactoryCodeList)).throwMessage(StrUtil.join(",", noProductionFactoryCodeList) + "物料暂未分工厂,请分完工厂再进行发布");
ConvertToMBom convertToMBom = new ConvertToMBom(rootParent, allChild); ConvertToMBom convertToMBom = new ConvertToMBom(rootParent, allChild);
convertToMBom.convertToMBom(false,true); convertToMBom.convertToMBom(false, true);
if (CollUtil.isNotEmpty(convertToMBom.getMBomParentResult())) { if (CollUtil.isNotEmpty(convertToMBom.getMBomParentResult())) {
mBomParentService.saveOrUpdateBatch(convertToMBom.getMBomParentResult()); mBomParentService.saveOrUpdateBatch(convertToMBom.getMBomParentResult());
} }
@ -778,10 +789,10 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
} }
private void saySyncDEMO(){ private void saySyncDEMO() {
ImportToSapDTO result=new ImportToSapDTO(); ImportToSapDTO result = new ImportToSapDTO();
SimpleDateFormat spt=new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat spt = new SimpleDateFormat("yyyy-MM-dd");
ImportToSapParentDTO sapParent=new ImportToSapParentDTO(); ImportToSapParentDTO sapParent = new ImportToSapParentDTO();
sapParent.setWERKS("1010"); sapParent.setWERKS("1010");
sapParent.setMATNR("2100564157"); sapParent.setMATNR("2100564157");
sapParent.setSTLAN("2"); sapParent.setSTLAN("2");
@ -791,8 +802,8 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
sapParent.setDATUV("20240116"); sapParent.setDATUV("20240116");
result.setParent(sapParent); result.setParent(sapParent);
List<ImportToSapChildDTO> childResult=new ArrayList<>(); List<ImportToSapChildDTO> childResult = new ArrayList<>();
ImportToSapChildDTO childEnt =new ImportToSapChildDTO(); ImportToSapChildDTO childEnt = new ImportToSapChildDTO();
childEnt.setIDNRK("1100021745"); childEnt.setIDNRK("1100021745");
childEnt.setPOSNR("045"); childEnt.setPOSNR("045");
childEnt.setPOSTP("F"); childEnt.setPOSTP("F");
@ -803,35 +814,35 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
result.setChildList(childResult); result.setChildList(childResult);
List<ImportToSapDTO> sapParams=new ArrayList<>(); List<ImportToSapDTO> sapParams = new ArrayList<>();
sapParams.add(result); sapParams.add(result);
ResultVO<Boolean> syncResult = sapOpUtilService.importPBomToSap(sapParams); ResultVO<Boolean> syncResult = sapOpUtilService.importPBomToSap(sapParams);
VUtils.isTure(!syncResult.getState().equals(STATE.Success)).throwMessage("同步SAP失败"+syncResult.getMsg()); VUtils.isTure(!syncResult.getState().equals(STATE.Success)).throwMessage("同步SAP失败" + syncResult.getMsg());
} }
private void importSap(BomNewPbomParentEntity parent, List<BomNewPbomParentVO> children){ private void importSap(BomNewPbomParentEntity parent, List<BomNewPbomParentVO> children) {
List<BomNewPbomParentVO> pbom = children.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); List<BomNewPbomParentVO> pbom = children.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList());
List<BomNewPbomParentVO> parentChild = children.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList()); List<BomNewPbomParentVO> parentChild = children.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList());
List<ImportToSapDTO> sapParams=new ArrayList<>(); List<ImportToSapDTO> sapParams = new ArrayList<>();
sapParams.add(buildSapBom(Convert.convert(BomNewPbomParentVO.class, parent), parentChild)); sapParams.add(buildSapBom(Convert.convert(BomNewPbomParentVO.class, parent), parentChild));
for (BomNewPbomParentVO pt :pbom) { for (BomNewPbomParentVO pt : pbom) {
List<BomNewPbomParentVO> pChild = children.stream().filter(u -> u.getParentRowId().equals(pt.getBomRowId())).collect(Collectors.toList()); List<BomNewPbomParentVO> pChild = children.stream().filter(u -> u.getParentRowId().equals(pt.getBomRowId())).collect(Collectors.toList());
sapParams.add(buildSapBom(Convert.convert(BomNewPbomParentVO.class, parent), pChild)); sapParams.add(buildSapBom(Convert.convert(BomNewPbomParentVO.class, parent), pChild));
} }
if(CollUtil.isNotEmpty(sapParams)) { if (CollUtil.isNotEmpty(sapParams)) {
ResultVO<Boolean> booleanResultVO = sapOpUtilService.importPBomToSap(sapParams); ResultVO<Boolean> booleanResultVO = sapOpUtilService.importPBomToSap(sapParams);
VUtils.isTure(!booleanResultVO.getState().equals(STATE.Success)).throwMessage("同步SAP失败"+booleanResultVO.getMsg()); VUtils.isTure(!booleanResultVO.getState().equals(STATE.Success)).throwMessage("同步SAP失败" + booleanResultVO.getMsg());
} }
} }
private ImportToSapDTO buildSapBom(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> children){ private ImportToSapDTO buildSapBom(BomNewPbomParentVO parentVO, List<BomNewPbomParentVO> children) {
ImportToSapDTO result=new ImportToSapDTO(); ImportToSapDTO result = new ImportToSapDTO();
ImportToSapParentDTO sapParent=new ImportToSapParentDTO(); ImportToSapParentDTO sapParent = new ImportToSapParentDTO();
DateTimeFormatter ymd = DateTimeFormatter.ofPattern("yyyyMMdd"); DateTimeFormatter ymd = DateTimeFormatter.ofPattern("yyyyMMdd");
sapParent.setWERKS(parentVO.getFacCode()); sapParent.setWERKS(parentVO.getFacCode());
sapParent.setMATNR(parentVO.getMaterialNo()); sapParent.setMATNR(parentVO.getMaterialNo());
@ -839,11 +850,11 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
sapParent.setBMENG(parentVO.getNum().toString()); sapParent.setBMENG(parentVO.getNum().toString());
sapParent.setBMEIN(parentVO.getMaterialUnit()); sapParent.setBMEIN(parentVO.getMaterialUnit());
sapParent.setSTLST("3"); sapParent.setSTLST("3");
sapParent.setDATUV( parentVO.getCreatedTime().format(ymd)); sapParent.setDATUV(parentVO.getCreatedTime().format(ymd));
List<ImportToSapChildDTO> childResult=new ArrayList<>(); List<ImportToSapChildDTO> childResult = new ArrayList<>();
for (BomNewPbomParentVO child :children) { for (BomNewPbomParentVO child : children) {
ImportToSapChildDTO childEnt =new ImportToSapChildDTO(); ImportToSapChildDTO childEnt = new ImportToSapChildDTO();
childEnt.setIDNRK(child.getMaterialNo()); childEnt.setIDNRK(child.getMaterialNo());
childEnt.setPOSNR(child.getOrderNumber()); childEnt.setPOSNR(child.getOrderNumber());
childEnt.setPOSTP(child.getProjectType()); childEnt.setPOSTP(child.getProjectType());
@ -858,7 +869,6 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
} }
/** /**
* 获取CRM 订单号 * 获取CRM 订单号
* *
@ -872,18 +882,19 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
/** /**
* 发起变更 * 发起变更
*
* @param bomRowId * @param bomRowId
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void upgrade(Long bomRowId) throws ExecutionException, InterruptedException { public void upgrade(Long bomRowId) throws ExecutionException, InterruptedException {
BomNewPbomParentEntity parent = this.getById(bomRowId); BomNewPbomParentEntity parent = this.getById(bomRowId);
VUtils.isTure(parent.getStatus()< PBomStatusEnum.PUBLISH.getValue()).throwMessage("只有已发布的BOM才能发起变更"); VUtils.isTure(parent.getStatus() < PBomStatusEnum.PUBLISH.getValue()).throwMessage("只有已发布的BOM才能发起变更");
PBomUpgrade upgrade=new PBomUpgrade(parent,getAllBom(bomRowId,0)); PBomUpgrade upgrade = new PBomUpgrade(parent, getAllBom(bomRowId, 0));
upgrade.upgrade(); upgrade.upgrade();
if(CollUtil.isNotEmpty(upgrade.getParentResult())){ if (CollUtil.isNotEmpty(upgrade.getParentResult())) {
this.saveOrUpdateBatch(upgrade.getParentResult()); this.saveOrUpdateBatch(upgrade.getParentResult());
} }
if(CollUtil.isNotEmpty(upgrade.getChildResult())){ if (CollUtil.isNotEmpty(upgrade.getChildResult())) {
pbomChildService.saveOrUpdateBatch(upgrade.getChildResult()); pbomChildService.saveOrUpdateBatch(upgrade.getChildResult());
} }