| | |
| | | return deleteCount; |
| | | } |
| | | |
| | | /** 台账手工录入的产品大类/规格型号统一挂到这个大类下 */ |
| | | private static final String TOP_CATEGORY_NAME = "成品"; |
| | | |
| | | @Override |
| | | public ProductModel ensureProductHierarchy(String productName, String material, String modelName, String unit) { |
| | | public ProductModel ensureProductHierarchy(String productName, String modelName, String unit) { |
| | | productName = StringUtils.trim(productName); |
| | | material = StringUtils.trim(material); |
| | | modelName = StringUtils.trim(modelName); |
| | | if (StringUtils.isEmpty(productName) || StringUtils.isEmpty(material) || StringUtils.isEmpty(modelName)) { |
| | | if (StringUtils.isEmpty(productName) || StringUtils.isEmpty(modelName)) { |
| | | return null; |
| | | } |
| | | |
| | | // 品名:一级大类(parentId 为空) |
| | | // 一级大类:固定「成品」(不存在则建) |
| | | LambdaQueryWrapper<Product> categoryWrapper = new LambdaQueryWrapper<>(); |
| | | categoryWrapper.isNull(Product::getParentId) |
| | | .eq(Product::getProductName, productName) |
| | | .eq(Product::getProductName, TOP_CATEGORY_NAME) |
| | | .last("limit 1"); |
| | | Product category = productMapper.selectOne(categoryWrapper); |
| | | if (category == null) { |
| | | category = new Product(); |
| | | category.setProductName(productName); |
| | | category.setProductName(TOP_CATEGORY_NAME); |
| | | productMapper.insert(category); |
| | | } |
| | | |
| | | // 材质:大类下的子类 |
| | | LambdaQueryWrapper<Product> materialWrapper = new LambdaQueryWrapper<>(); |
| | | materialWrapper.eq(Product::getParentId, category.getId()) |
| | | .eq(Product::getProductName, material) |
| | | // 二级:产品大类(成品下的子类) |
| | | LambdaQueryWrapper<Product> nameWrapper = new LambdaQueryWrapper<>(); |
| | | nameWrapper.eq(Product::getParentId, category.getId()) |
| | | .eq(Product::getProductName, productName) |
| | | .last("limit 1"); |
| | | Product materialProduct = productMapper.selectOne(materialWrapper); |
| | | if (materialProduct == null) { |
| | | materialProduct = new Product(); |
| | | materialProduct.setParentId(category.getId()); |
| | | materialProduct.setProductName(material); |
| | | productMapper.insert(materialProduct); |
| | | Product nameProduct = productMapper.selectOne(nameWrapper); |
| | | if (nameProduct == null) { |
| | | nameProduct = new Product(); |
| | | nameProduct.setParentId(category.getId()); |
| | | nameProduct.setProductName(productName); |
| | | productMapper.insert(nameProduct); |
| | | } |
| | | |
| | | // 规格型号:子类下的规格 |
| | | // 三级:规格型号(产品大类下的规格) |
| | | LambdaQueryWrapper<ProductModel> modelWrapper = new LambdaQueryWrapper<>(); |
| | | modelWrapper.eq(ProductModel::getProductId, materialProduct.getId()) |
| | | modelWrapper.eq(ProductModel::getProductId, nameProduct.getId()) |
| | | .eq(ProductModel::getModel, modelName) |
| | | .last("limit 1"); |
| | | ProductModel productModel = productModelMapper.selectOne(modelWrapper); |
| | | if (productModel == null) { |
| | | productModel = new ProductModel(); |
| | | productModel.setProductId(materialProduct.getId()); |
| | | productModel.setProductId(nameProduct.getId()); |
| | | productModel.setModel(modelName); |
| | | productModel.setUnit(unit); |
| | | productModelMapper.insert(productModel); |