diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java index e89cf39d..dbfca896 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BatchBomApi.java @@ -6,10 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.bomnew.pojo.query.BatchBomQuery; import com.nflg.product.bomnew.pojo.query.PbomImportToSAPQuery; -import com.nflg.product.bomnew.pojo.vo.BaseBomVO; -import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; -import com.nflg.product.bomnew.pojo.vo.BomPageVO; -import com.nflg.product.bomnew.pojo.vo.BomTbHeaderVO; +import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.BatchBomService; import com.nflg.product.bomnew.service.BomNewEbomExportToSAP; import com.nflg.product.bomnew.service.BomNewPbomParentService; @@ -25,10 +22,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.io.IOException; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 批量替代BOM @@ -68,32 +62,34 @@ public class BatchBomApi extends BaseApi { @PostMapping("updateEBom") @ApiOperation("更新EBOM并导入SAP") - public ResultVO> updateEBom(@RequestBody List baseBomVOList) { + public ResultVO> updateEBom(@RequestBody List baseBomVOList) { List addRowIds = batchBomService.updateEBom(baseBomVOList); + List errorMsgVOS = new ArrayList<>(); // 导入SAP if (CollUtil.isNotEmpty(addRowIds)) { addRowIds.forEach(rootRowId -> { BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP(); - exportToSAP.export(rootRowId); + errorMsgVOS.addAll(exportToSAP.export(rootRowId)); }); } - return ResultVO.success(); + return ResultVO.success(errorMsgVOS); } @PostMapping("updatePBom") @ApiOperation("更新PBOM并导入SAP") - public ResultVO> updatePBom(@RequestBody List baseBomVOList) { + public ResultVO> updatePBom(@RequestBody List baseBomVOList) { List addRowIds = batchBomService.updatePBom(baseBomVOList); + List errorMsgVOS = new ArrayList<>(); // 导入SAP if (CollUtil.isNotEmpty(addRowIds)) { addRowIds.forEach(rootRowId -> { PbomImportToSAPQuery query = new PbomImportToSAPQuery(); query.setRootBomRowId(rootRowId); query.setIsForSale(false); - bomNewPbomParentService.importToSAP2(query); + errorMsgVOS.addAll(bomNewPbomParentService.importToSAP2(query)); }); } - return ResultVO.success(); + return ResultVO.success(errorMsgVOS); } @PostMapping("exportExcel") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BatchBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BatchBomService.java index fdbe865d..aab67811 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BatchBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BatchBomService.java @@ -96,7 +96,6 @@ public class BatchBomService { .orderByDesc(BomNewEbomParentEntity::getCreatedTime) .list(); if (CollectionUtil.isNotEmpty(ebomParentEntities)) { - long counter = 0; for (BomNewEbomParentEntity parent : ebomParentEntities) { // 按创建时间过滤 if (ObjectUtil.isNotEmpty(batchBomQuery.getStartDate())) { @@ -112,7 +111,6 @@ public class BatchBomService { } } BaseBomVO baseBomVO = new BaseBomVO(); - baseBomVO.setOrderNum(++counter); baseBomVO.setParentRowId(parent.getRowId()); baseBomVO.setParentMaterialNo(parent.getMaterialNo()); baseBomVO.setParentVersion(parent.getCurrentVersion()); @@ -153,7 +151,6 @@ public class BatchBomService { .orderByDesc(BomNewPbomParentEntity::getCreatedTime) .list(); if (CollectionUtil.isNotEmpty(pbomParentEntities)) { - long counter = 0; for (BomNewPbomParentEntity parent : pbomParentEntities) { // 按创建时间过滤 if (ObjectUtil.isNotEmpty(batchBomQuery.getStartDate())) { @@ -169,7 +166,6 @@ public class BatchBomService { } } BaseBomVO baseBomVO = new BaseBomVO(); - baseBomVO.setOrderNum(++counter); baseBomVO.setParentRowId(parent.getRowId()); baseBomVO.setParentMaterialNo(parent.getMaterialNo()); baseBomVO.setParentVersion(parent.getCurrentVersion()); @@ -198,22 +194,14 @@ public class BatchBomService { if (CollectionUtil.isEmpty(resultList)) { return null; } - // 实时查询物料的物料描述,物料类别等字段 - List tempList = new ArrayList<>(); - resultList.forEach(result -> { - BaseMaterialVO parent = new BaseMaterialVO(); - parent.setMaterialNo(result.getParentMaterialNo()); - tempList.add(parent); - }); - materialMainService.intiMaterialInfo(tempList); - Map materialMp = ListCommonUtil.listToMap(tempList, BaseMaterialVO::getMaterialNo); - resultList.forEach(result -> { - result.setParentMaterialRowId(materialMp.get(result.getParentMaterialNo()).getMaterialRowId()); - result.setParentMaterialDesc(materialMp.get(result.getParentMaterialNo()).getMaterialDesc()); - result.setCategoryCode(materialMp.get(result.getParentMaterialNo()).getMaterialCategoryCode()); - result.setRelCategoryCode(materialMp.get(result.getParentMaterialNo()).getRelCategoryCode()); - result.setCategoryName(materialMp.get(result.getParentMaterialNo()).getCategoryName()); - }); + initMaterialInfoAndFilter(resultList); + if (CollectionUtil.isNotEmpty(resultList)) { + long counter = 0; + for (BaseBomVO result : resultList) { + result.setOrderNum(++counter); + } + } + BomPageVO, BomTbHeaderVO> pageVO = new BomPageVO<>(); List> records = new ArrayList<>(resultList.size()); resultList.forEach(result -> records.add(BeanUtil.beanToMap(result))); @@ -226,6 +214,37 @@ public class BatchBomService { return pageVO; } + /** + * 初始化物料信息,并过滤掉冻结物料 + */ + private void initMaterialInfoAndFilter(List resultList) { + // 实时查询物料的物料描述,物料类别等字段 + List tempList = new ArrayList<>(); + resultList.forEach(result -> { + BaseMaterialVO parent = new BaseMaterialVO(); + parent.setMaterialNo(result.getParentMaterialNo()); + tempList.add(parent); + }); + materialMainService.intiMaterialInfo(tempList); + Map materialMp = ListCommonUtil.listToMap(tempList, BaseMaterialVO::getMaterialNo); + ListIterator listIterator = resultList.listIterator(); + while (listIterator.hasNext()) { + BaseBomVO result = listIterator.next(); + // 过滤掉冻结物料 + if (ObjectUtil.isNotEmpty(materialMp.get(result.getParentMaterialNo())) + && (MaterialGetEnum.MaterialStateEnum.STATE_NO_4.equalsValue(materialMp.get(result.getParentMaterialNo()).getMaterialState()) + || MaterialGetEnum.MaterialStateEnum.STATE_NO_5.equalsValue(materialMp.get(result.getParentMaterialNo()).getMaterialState()))) { + listIterator.remove(); + continue; + } + result.setParentMaterialRowId(materialMp.get(result.getParentMaterialNo()).getMaterialRowId()); + result.setParentMaterialDesc(materialMp.get(result.getParentMaterialNo()).getMaterialDesc()); + result.setCategoryCode(materialMp.get(result.getParentMaterialNo()).getMaterialCategoryCode()); + result.setRelCategoryCode(materialMp.get(result.getParentMaterialNo()).getRelCategoryCode()); + result.setCategoryName(materialMp.get(result.getParentMaterialNo()).getCategoryName()); + } + } + private List getTbHeaders() { List headerVOS = new ArrayList<>(); headerVOS.add(new BomTbHeaderVO("序号", "orderNum"));