/** 检查判断BOM头是否存在,存在返回1,不存在返回0 */
 @Override
 public <ModelType> int checkEntityBom(ModelType record) throws ServiceException {
   try {
     return basBomListDao.checkEntityBom(record);
   } catch (Exception e) {
     throw new ServiceException(e.getMessage(), e);
   }
 }
  private <ModelType, SizeType> void getAllBomList(
      List<ModelType> allList,
      List<SizeType> sizeList,
      List<ModelType> list,
      ModelType parentModel,
      ModelType root,
      BasBomListOrderIndex orderIndex) {
    short rootOrderNo = 0;
    short maxOrderNo = 0;
    String rootBrandNo = "";
    String rootMaterialNo = "0";
    String rootBomPurpose = "";
    if (root != null) {
      BasBomList basBomList = (BasBomList) root;
      rootOrderNo = basBomList.getOrderNo();
      maxOrderNo = basBomList.getMaxOrderNo();
      rootBrandNo = basBomList.getBrandNo();
      rootMaterialNo = basBomList.getMaterialNo();
      rootBomPurpose = basBomList.getBomPurpose();
    }
    for (ModelType model : list) {
      BasBomList bomList = (BasBomList) model;
      BasBomList parentBomList = (BasBomList) parentModel;

      List<SizeType> bomListSize = null;
      if (sizeList != null) {
        bomListSize = basBomListSizeDao.findBomListSize(bomList);
      }
      orderIndex.setOrderNo((short) (orderIndex.getOrderNo() + 1));
      bomList.setOrderNo((short) (orderIndex.getOrderNo() + maxOrderNo));

      bomList.setParentOrderNo(
          orderIndex.getOrderNo() > 1 ? parentBomList.getOrderNo() : rootOrderNo);
      bomList.setParentBrandNo(
          orderIndex.getOrderNo() > 1 ? parentBomList.getBrandNo() : rootBrandNo);
      bomList.setParentMaterialNo(
          (orderIndex.getOrderNo() > 1 ? parentBomList.getMaterialNo() : rootMaterialNo));
      bomList.setParentBomPurpose(
          orderIndex.getOrderNo() > 1 ? parentBomList.getBomPurpose() : rootBomPurpose);

      if (bomListSize != null) {
        for (SizeType type : bomListSize) {
          BasBomListSize size = (BasBomListSize) type;
          size.setOrderNo(bomList.getOrderNo());
          sizeList.add(type);
        }
      }

      allList.add(model);
      List<ModelType> temp = basBomListDao.findBomList(model);
      if (temp.size() > 0) {
        bomList.setLeaf("false");
        getAllBomList(allList, sizeList, temp, model, root, orderIndex);
      } else {
        bomList.setLeaf("true");
      }
    }
  }