From c88ed37c41c6eedb8ea3e76dc2ef0c6484602d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 18 Apr 2024 10:51:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20[excel-140]=E5=8E=9F=E5=A7=8Bbom?= =?UTF-8?q?=E8=BD=ACebom=E6=97=B6=EF=BC=8C=E5=A6=82=E6=9E=9C=E7=89=A9?= =?UTF-8?q?=E6=96=99=E5=90=8D=E7=A7=B0=E5=8C=85=E5=90=AB=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E5=8C=85=E7=89=B9=E6=9C=89=E7=9A=84=E5=90=8E=E7=BC=80=EF=BC=8C?= =?UTF-8?q?=E5=88=99=E5=B0=86=E6=94=B9=E7=89=A9=E6=96=99=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=BA=E8=99=9A=E6=8B=9F=E5=8C=85=EF=BC=8C=E4=B8=94=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=A0=B9=E8=8A=82=E7=82=B9=E7=94=9F=E6=88=90=E8=99=9A?= =?UTF-8?q?=E6=8B=9F=E5=8C=85=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewOriginalParentService.java | 57 +++++++++++++++++-- 1 file changed, 51 insertions(+), 6 deletions(-) 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 a7d90f47..930ee888 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 @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -14,13 +15,11 @@ import com.mzt.logapi.context.LogRecordContext; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.mapper.master.BomNewOriginalParentMapper; +import com.nflg.product.bomnew.pojo.dto.AddVirtrualMaterialDTO; import com.nflg.product.bomnew.pojo.dto.BaseImportExcelDTO; import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO; import com.nflg.product.bomnew.pojo.dto.OriginalSaveBomDTO; -import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewOriginalMaterialUseEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; -import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity; +import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; @@ -568,11 +567,10 @@ public class BomNewOriginalParentService extends ServiceImpl datas) { + BomNewEbomParentEntity root = datas.stream() + .filter(d -> d.getRowId().equals(ebomRowId)) + .findFirst() + .orElseThrow(() -> new RuntimeException("未找到根节点")); + root.setVirtrualPackageEnum(handleVirtualPackage(datas, VirtualPackageTypeEnum.DELIVERY_PACKAGE) + & handleVirtualPackage(datas, VirtualPackageTypeEnum.MAKING_PACKAGE) + & handleVirtualPackage(datas, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE) + & handleVirtualPackage(datas, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE)); + } + + private int handleVirtualPackage(List datas, VirtualPackageTypeEnum em) { + List list = datas.stream() + .filter(d -> d.getMaterialName().endsWith("(" + em.getConMaterialName() + ")")) + .collect(Collectors.toList()); + if (CollUtil.isEmpty(list)) return 0; + list.forEach(it -> { + it.setVirtualPackageIs(1); + handleMaterial(it, em); + }); + return em.getValue(); + } + + /** + * 处理主物料,如果主物料不存在则添加 + */ + private void handleMaterial(BomNewEbomParentEntity data, VirtualPackageTypeEnum em) { + if (StrUtil.isBlank(data.getDrawingNo())) return; + MaterialMainEntity material = materialMainService.lambdaQuery().eq(MaterialMainEntity::getDrawingNo, data.getDrawingNo()) + .orderByDesc(MaterialMainEntity::getRowId) + .last(" limit 1") + .one(); + if (material == null) { + AddVirtrualMaterialDTO ent = new AddVirtrualMaterialDTO(); + ent.setKey(StrUtil.join("", data.getRowId(), em.getConMaterialName())); + ent.setDrawingNo(data.getDrawingNo()); + ent.setMaterialName(data.getMaterialName()); + ent.setMaterialDesc(data.getMaterialDesc()); + ent.setMaterialCategoryCode(em.getMaterialCategoryCode()); + + SpringUtil.getBean(MaterialService.class).batchAddMaterial(CollUtil.toList(ent)); + } + } + /** * 同步到历史正式表(只保留最新版) */