From b821b9e2cbf55d0bced3b148b43bb39fefd950d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Wed, 6 Dec 2023 17:25:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=89=A9=E6=96=99=E5=8F=8ABU?= =?UTF-8?q?G=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/OriginalBomApi.java | 9 ++++++++- .../master/BomNewOriginalChildMapper.java | 6 ++++++ .../service/BomNewOriginalParentService.java | 17 +++++++++++------ .../OriginalBom/OriginalBomDetailTask.java | 2 +- .../mapper/master/BomNewOriginalChildMapper.xml | 7 +++++++ 5 files changed, 33 insertions(+), 8 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 f2ed6365..4eb91c57 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 @@ -19,6 +19,8 @@ import io.swagger.annotations.ApiOperation; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronizationAdapter; +import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.ttzero.excel.entity.ListMapSheet; @@ -135,8 +137,13 @@ public class OriginalBomApi extends BaseApi { return ResultVO.error("请上传Excel文件"); } originalParentService.importBom(file); + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void afterCommit() { + originalParentService.computeLevelNumAndRootState(); + } + }); - originalParentService.computeLevelNumAndRootState(); return ResultVO.success(true); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalChildMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalChildMapper.java index 89feed2f..cbf02c7d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalChildMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalChildMapper.java @@ -2,6 +2,9 @@ package com.nflg.product.bomnew.mapper.master; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * t_bom_new_original_child 表数据库访问层 @@ -11,4 +14,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity; * @since 2023-11-09 09:25:02 */ public interface BomNewOriginalChildMapper extends BaseMapper { + + + void delOriginalChildNotInRowIds(@Param("rowIds")List rowIds); } 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 75e942a4..3b48f4ca 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 @@ -41,6 +41,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.stream.Collectors; +import java.util.stream.Stream; /** @@ -106,8 +107,8 @@ public class BomNewOriginalParentService extends ServiceImpl delRowIds = bom.getBomList().stream().filter(u -> u.getDelIs().equals(1)).map(u -> u.getRowId()).collect(Collectors.toList()); - originalChildService.getBaseMapper().deleteBatchIds(delRowIds); + List delRowIds = bom.getBomList().stream().map(u->u.getRowId()).collect(Collectors.toList()); + originalChildService.getBaseMapper().delOriginalChildNotInRowIds(delRowIds); originalChildService.saveOrUpdateBatch(childEntities); } return true; @@ -164,7 +165,7 @@ public class BomNewOriginalParentService extends ServiceImpl getBomTree(Long rowId) throws ExecutionException, InterruptedException { List bomDetail = this.getBaseMapper().getParentChild(rowId); + BomNewOriginalParentEntity parentEntity = this.getBaseMapper().selectById(rowId); OriginalBomDetailTask detailTask = new OriginalBomDetailTask(bomDetail); ForkJoinTask> submit = bomDetailPool.submit(detailTask); @@ -301,9 +303,12 @@ public class BomNewOriginalParentService extends ServiceImpl bomTree = getBomTree(bomRowId); - - - List delParentRowId = bomTree.stream().filter(u ->OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus()) ).map(u -> u.getParentRowId()).collect(Collectors.toList()); + //需删除的BOM + List delBom = bomTree.stream().filter(u -> u.getBomRowId() > 0 && OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList()); + List delParentRowId=new ArrayList<>(); + for ( BomOriginalListVO bom: delBom) { + delParentRowId.add(bom.getBomRowId()); + } delParentRowId.add(bomRowId); if (CollUtil.isNotEmpty(delParentRowId)) { this.getBaseMapper().delBatch(delParentRowId); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomDetailTask.java index 8a2436ad..6799a0f5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomDetailTask.java @@ -65,7 +65,7 @@ public class OriginalBomDetailTask extends RecursiveTask detailVO.setStatus(OriginalStatusEnum.BORROWED_PARTS.getValue()); } //非本人则为借用件 - if (bomNewOriginalParentEntity.getCreatedBy().equals(SessionUtil.getUserCode()) && OriginalStatusEnum.UN_CONVERT.equalsValue(bomNewOriginalParentEntity.getStatus())) { + if (!bomNewOriginalParentEntity.getCreatedBy().equals(detailVO.getCreatedBy()) && OriginalStatusEnum.UN_CONVERT.equalsValue(bomNewOriginalParentEntity.getStatus())) { detailVO.setStatus(OriginalStatusEnum.REFERENCE.getValue()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalChildMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalChildMapper.xml index ee460c5d..11bc5722 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalChildMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewOriginalChildMapper.xml @@ -26,4 +26,11 @@ row_id, parent_row_id, order_number, drawing_no, material_no, material_name, material_desc, unit_weight, num, total_weight ,remark,created_by,created_time ,edit_status + + delete from t_bom_new_original_child where row_id not in + + #{rowId} + + +