原始BOM列表

This commit is contained in:
大米 2023-11-25 20:02:15 +08:00
parent 171121c609
commit 47eef9d27b
3 changed files with 34 additions and 18 deletions

View File

@ -74,25 +74,17 @@ public class OriginalBomApi extends BaseApi {
originalParentService.pullFromPlm(SessionUtil.getUserCode()); originalParentService.pullFromPlm(SessionUtil.getUserCode());
//计算树的层级数 originalParentService.computeLevelNumAndRootState();
CompletableFuture.runAsync(()->{
try {
originalParentService.compucteLevelNum();
originalParentService.getBaseMapper().updateRootState();
} catch (ExecutionException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
});
return ResultVO.success(true); return ResultVO.success(true);
} }
@GetMapping("del") @GetMapping("del")
@ApiOperation("删除BOM") @ApiOperation("删除BOM")
public ResultVO<Boolean> del(@RequestParam("parentRowId") Long parentRowId) throws ExecutionException, InterruptedException { public ResultVO<Boolean> del(@RequestParam("bomRowId") Long bomRowId) throws ExecutionException, InterruptedException {
return ResultVO.success(originalParentService.del(parentRowId)); originalParentService.del(bomRowId);
originalParentService.computeLevelNumAndRootState();
return ResultVO.success(true);
} }

View File

@ -31,6 +31,8 @@ import java.sql.Struct;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask; import java.util.concurrent.ForkJoinTask;
@ -240,20 +242,40 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
} }
} }
/**
* 计算层级数和根节点状态
*/
public void computeLevelNumAndRootState() {
//计算树的层级数
CompletableFuture.runAsync(()->{
try {
this.compucteLevelNum();
this.getBaseMapper().updateRootState();
} catch (ExecutionException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
});
}
/** /**
* 删除BOM * 删除BOM
* *
* @param parentRowId * @param bomRowId
*/ */
public Boolean del(Long parentRowId) throws ExecutionException, InterruptedException { public Boolean del(Long bomRowId) throws ExecutionException, InterruptedException {
BomNewOriginalParentEntity parentEntity = this.getBaseMapper().selectById(bomRowId);
VUtils.isTure(Objects.isNull(parentEntity) ).throwMessage("该节点不存在,请检查参数是否正确");
VUtils.isTure(!parentEntity.getCreatedBy().equals(SessionUtil.getUserCode())).throwMessage("该节点不属于你,你无权删除");
List<BomOriginalListVO> bomTree = getBomTree(bomRowId);
List<BomOriginalListVO> bomTree = getBomTree(parentRowId);
List<Long> parentDel = new ArrayList<>();
List<Long> delParentRowId = bomTree.stream().filter(u -> u.getCreatedBy().equals(SessionUtil.getUserCode()) && OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus())).map(u -> u.getParentRowId()).collect(Collectors.toList()); List<Long> delParentRowId = bomTree.stream().filter(u -> u.getCreatedBy().equals(SessionUtil.getUserCode()) && OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus())).map(u -> u.getParentRowId()).collect(Collectors.toList());
delParentRowId.add(bomRowId);
if (CollUtil.isNotEmpty(delParentRowId)) { if (CollUtil.isNotEmpty(delParentRowId)) {
this.getBaseMapper().delBatch(delParentRowId); this.getBaseMapper().delBatch(delParentRowId);
} }

View File

@ -112,6 +112,8 @@
</update> </update>
<update id="updateRootState"> <update id="updateRootState">
update t_bom_new_original_parent set root_is=0,user_root_is=0 where last_version_is=1;
update t_bom_new_original_parent a join ( update t_bom_new_original_parent a join (
select a.row_id from t_bom_new_original_parent a select a.row_id from t_bom_new_original_parent a
left join t_bom_new_original_child b left join t_bom_new_original_child b