From b605864b0813086ba9f50959bcf50984923131bb Mon Sep 17 00:00:00 2001 From: luoliming Date: Sun, 10 Dec 2023 07:13:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/api/user/OriginalBomApi.java | 30 ++++++++++++- .../pojo/dto/BomNewOriginalExcelDTO.java | 2 +- .../service/BomNewOriginalParentService.java | 44 +++++++++++++++++++ 3 files changed, 73 insertions(+), 3 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java index 1aba0dc3..602671b5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java @@ -151,8 +151,8 @@ public class OriginalBomApi extends BaseApi { } - @ApiOperation("testaddMaterial") - @GetMapping("新增物料") + @ApiOperation("新增物料") + @GetMapping("testaddMaterial") @Transactional(rollbackFor = Exception.class) public ResultVO testaddMaterial(@RequestParam(value = "drawingNo" ,required = false)String drawingNo, @RequestParam(value = "materialName" ,required = false)String materialName, @@ -163,6 +163,32 @@ public class OriginalBomApi extends BaseApi { } + @ApiOperation("获取sessionKey") + @GetMapping("getSessionKey") + public ResultVO getSessionKey() { + + + return ResultVO.success(SessionUtil.getSessionKey()); + } + + + @ApiOperation("测试导入") + @PostMapping("testImportBom") + @Transactional(rollbackFor = Exception.class) + public ResultVO testImportBom() throws IOException { + InputStream inputStream=new FileInputStream("C:\\Users\\admin\\Desktop\\西卡印尼烘干线总站BOM.xlsx"); + originalParentService.importBomTest(inputStream); + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void afterCommit() { + originalParentService.computeLevelNumAndRootState(); + } + }); + + return ResultVO.success(true); + } + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewOriginalExcelDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewOriginalExcelDTO.java index 31de5528..7d65549d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewOriginalExcelDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewOriginalExcelDTO.java @@ -32,7 +32,7 @@ public class BomNewOriginalExcelDTO extends BaseImportExcelDTO { private String materialName; @ExcelColumn("材料") - private String excelMaterial; + private String material; @ExcelColumn(value = "数量") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java index 16d60044..90323146 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java @@ -433,4 +433,48 @@ public class BomNewOriginalParentService extends ServiceImpl()); + String uuid = IdUtil.simpleUUID(); + EecExcelUtil.handlerExcel(file, BomNewOriginalExcelDTO.class, BomNewOriginalParentService::handlerExcelRow); + List excelContext = excelContextTL.get(); + List noLevelNo = excelContext.stream().filter(u -> Objects.isNull(u.getLevelNo())).map(u->u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noLevelNo)).throwMessage(StrUtil.join(",",noLevelNo )+"层次为空"); + List noDrawingNo = excelContext.stream().filter(u -> StrUtil.isBlank(u.getChartNo())).map(u->u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noDrawingNo)).throwMessage(StrUtil.join(",",noDrawingNo )+"图号为空"); + List noNum = excelContext.stream().filter(u -> Objects.isNull(u.getQty())).map(u->u.getRowNum()).collect(Collectors.toList()); + VUtils.isTure(CollUtil.isNotEmpty(noNum)).throwMessage( StrUtil.join(",",noNum )+"数量为空"); + + for (BomNewOriginalExcelDTO data : excelContext) { + List parentData = excelContext.stream().filter(u -> u.getLevelNo().equals(data.getLevelNo() - 1) && u.getRowNum() < data.getRowNum()) + .sorted(Comparator.comparing(BomNewOriginalExcelDTO::getRowNum).reversed()).limit(1).collect(Collectors.toList()); + data.setParentKey(CollUtil.isNotEmpty(parentData) ? StrUtil.join("-", parentData.get(0).getLevelNo(), parentData.get(0).getRowNum()) : "0"); + data.setUuid(uuid); + } + //转换 + for (BomNewOriginalExcelDTO data : excelContext) { + PlmBomToOriginalConvert convert = new PlmBomToOriginalConvert(); + List chileds = excelContext.stream().filter(u -> u.getParentKey().equals(data.getLevelNo() + "-" + data.getRowNum())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(chileds)) { + int i=1; + for (BomNewOriginalExcelDTO ch : chileds) { + ch.setOrderNo(i); + i++; + } + convert.convertOriginalBomFromExcel(Convert.convert(BomOriginalPlmBomVO.class, data), Convert.toList(BomOriginalPlmBomVO.class, chileds)); + + if (CollUtil.isNotEmpty(convert.getResultParent())) { + this.saveOrUpdateBatch(convert.getResultParent()); + } + if (CollUtil.isNotEmpty(convert.getResultChild())) { + originalChildService.saveOrUpdateBatch(convert.getResultChild()); + } + } + } + excelContextTL.remove(); + } + + }