计算树的高度

This commit is contained in:
大米 2023-11-18 17:49:48 +08:00
parent 1976ac63fd
commit 0ec37f926d
3 changed files with 31 additions and 0 deletions

View File

@ -84,4 +84,11 @@ public class OriginalBomApi extends BaseApi {
}
@GetMapping("computeTreeHeight")
@ApiOperation("计算树的高度(测试用)")
public ResultVO<Boolean> computeTreeHeight() throws ExecutionException, InterruptedException {
return ResultVO.success(originalParentService.compucteLevelNum());
}
}

View File

@ -157,6 +157,28 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
}
/**
* 计算BOM树高度
* @param
*/
public boolean compucteLevelNum() throws ExecutionException, InterruptedException {
List<BomNewOriginalParentEntity> list = this.lambdaQuery().le(BomNewOriginalParentEntity::getLevelNum, 0).list();
if(CollUtil.isNotEmpty(list)) {
for (BomNewOriginalParentEntity bom : list) {
List<BomOriginalListVO> bomDetail = this.getBaseMapper().getParentChild(bom.getRowId());
OriginalBomDetailTask detailTask = new OriginalBomDetailTask(bomDetail);
detailTask.setLevelNum(1);
ForkJoinTask<List<BomOriginalListVO>> submit = bomDetailPool.submit(detailTask);
submit.get();
bom.setLevelNum(detailTask.getLevelNum());
}
this.saveOrUpdateBatch(list);
}
return true;
}
/**
* 从plm 转原始BOM
* @param

View File

@ -8,6 +8,7 @@ import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
import com.nflg.product.bomnew.service.BomNewOriginalParentService;
import com.nflg.product.bomnew.util.ListCommonUtil;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@ -26,6 +27,7 @@ public class OriginalBomDetailTask extends RecursiveTask<List<BomOriginalListVO>
@Getter
@Setter
public static int levelNum=1;
List<BomOriginalListVO> result = new ArrayList<>();