From d2ce4553e18131b9a60d7be53c496f0cbce699ca Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期五, 08 九月 2023 14:47:47 +0800 Subject: [PATCH] 修改bug --- standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java | 152 +++++++++++++++++++++++++++++--------------------- 1 files changed, 89 insertions(+), 63 deletions(-) diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java index a7839fe..96d6a64 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java @@ -1,29 +1,32 @@ package com.yuanchu.limslaboratory.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.yuanchu.limslaboratory.pojo.Material; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.yuanchu.limslaboratory.mapper.ProductModelMapper; +import com.yuanchu.limslaboratory.pojo.*; import com.yuanchu.limslaboratory.mapper.MaterialMapper; -import com.yuanchu.limslaboratory.pojo.Specifications; -import com.yuanchu.limslaboratory.pojo.dto.UpdateMaterialInformation; +import com.yuanchu.limslaboratory.pojo.dto.AddMaterialDto; import com.yuanchu.limslaboratory.service.MaterialService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.limslaboratory.service.ProductService; -import com.yuanchu.limslaboratory.utils.JackSonUtil; -import com.yuanchu.limslaboratory.utils.MyUtil; -import org.springframework.beans.factory.annotation.Autowired; +import com.yuanchu.limslaboratory.service.SpecificationsService; +import com.yuanchu.limslaboratory.service.StandardService; +import com.yuanchu.limslaboratory.utils.ArrayListUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.ObjectUtils; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * <p> - * 鏈嶅姟瀹炵幇绫� + * 鏈嶅姟瀹炵幇绫� * </p> * * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 @@ -33,82 +36,105 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> implements MaterialService { @Resource - MaterialMapper materialMapper; + private MaterialMapper materialMapper; - @Override - public List<Material> selectMaterialLimit(int pageSize, int countSize) { - return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize); - } + @Autowired + private StandardService standardService; - @Override - public Map selectMaterialById(String materialId) { - return materialMapper.selectMaterialById(materialId); - } - - @Override - public Material ListIdMaterialInformation(String materialId) { - LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Material::getId, materialId); - wrapper.select(Material::getId, Material::getName, Material::getSupplier, Material::getLocation, Material::getNum, Material::getBatch, - Material::getReelNumber); - return materialMapper.selectOne(wrapper); - } + @Autowired + private SpecificationsService specificationsService; @Autowired private ProductService productService; + @Resource + ProductModelMapper productModelMapper; + + //鏌ヨ鐗╂枡淇℃伅 @Override - public Integer addMaterialInformation(Material material) { - return materialMapper.insert(material); + public List<Map> selectMaterialLimit(int pageSize, int countSize, int type) { + return materialMapper.selectMaterialLimit((pageSize - 1) * countSize, pageSize * countSize, type); } - @Override - public List<Map<String, Object>> getListMaterialInformation(String specificationsId) { - LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Material::getSpecificationsId, specificationsId); - wrapper.select(Material::getId, Material::getName); - return materialMapper.selectMaps(wrapper); - } @Override - public Integer deleteMaterialInformation(String materialId) { + public Integer deleteMaterialInformation(Integer materialId) { LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(Material::getId, materialId); updateWrapper.set(Material::getState, 0); - List<String> list = new ArrayList<>(); - list.add(materialId); int isDeleteSuccess = materialMapper.update(new Material(), updateWrapper); - if (isDeleteSuccess == 1){ - productService.MaterialIdDeleteProduct(list); + if (isDeleteSuccess == 1) { + List<Integer> isDeleteStandard = standardService.deleteStandardsInformation(materialId); + if (!ObjectUtils.isEmpty(isDeleteStandard)) { + List<Integer> idDeleteSpecifications = specificationsService.StandardIdDeleteSpecifications(isDeleteStandard); + if (!ObjectUtils.isEmpty(idDeleteSpecifications)) { + productService.deleteProductInformation(idDeleteSpecifications); + } + } return 1; } return 0; } + //涓夌骇鏂板 @Override - public Integer updateMaterialInformation(Material material) { - LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(Material::getId, material.getId()); - materialMapper.updateById(material); - return materialMapper.update(material, updateWrapper); + @Transactional(rollbackFor = Exception.class) + public Integer addMaterialInformation(AddMaterialDto addMaterialDto) { + Material material = new Material() + .setCode("BZ" + IdWorker.getIdStr()) + .setName(addMaterialDto.getMaterialName()) + .setType(addMaterialDto.getType()); + int isInsertSuccess = materialMapper.insert(material); + if (isInsertSuccess > 0) { + Standard standard = new Standard() + .setMaterialId(material.getId()) + .setName(addMaterialDto.getStandardName()); + boolean save = standardService.save(standard); + if (save) { + Specifications specifications = new Specifications() + .setName(addMaterialDto.getSpecificationsName()) + .setStandardId(standard.getId()); + boolean save1 = specificationsService.save(specifications); + if (save1) { + //娣诲姞鍨嬪彿涔嬪悗娣诲姞椤圭洰 + List<Map<String, Object>> productModel = productModelMapper.seleMode(addMaterialDto.getMaterialName()); + List<Product> productList = productModel.stream().map(stringObjectMap -> { + Product product = new Product(); + product.setName(stringObjectMap.get("name").toString()); + if (ObjectUtils.isNotEmpty(stringObjectMap.get("father"))) { + product.setFather(stringObjectMap.get("father").toString()); + } + if (ObjectUtils.isNotEmpty(stringObjectMap.get("unit"))) { + product.setUnit(stringObjectMap.get("unit").toString()); + } + product.setSpecifications_id(specifications.getId()); + return product; + }).collect(Collectors.toList()); + productService.saveBatch(productList); + return 1; + } + } + } + return 0; } @Override - public List<String> specificationsIdDeleteMaterial(List<Integer> deleteSpecificationsId) { - List<String> list = new ArrayList<>(); - for (Integer serialNumberId:deleteSpecificationsId){ - LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Material::getSpecificationsId, serialNumberId); - wrapper.select(Material::getId); - List<Material> maps1 = materialMapper.selectList(wrapper); - for (Material material:maps1){ - LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(Material::getId, material.getId()); - updateWrapper.set(Material::getState, 0); - materialMapper.update(new Material(), updateWrapper); - list.add(material.getId()); - } - } - return list; + public List<Map<String, Object>> getFourLevelInformation() { + return materialMapper.FourTree(); } + + //娣诲姞鎸囨爣-->閫夋嫨鏍峰搧鍚嶇О + @Override + public List<String> selectmater() { + return productModelMapper.selectmater(); + } + + @Override + public List<ProductModel> getSample() { + QueryWrapper<ProductModel>queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().select(ProductModel::getMaterial,ProductModel::getId).eq(ProductModel::getState,1); + return ArrayListUtil.oneObjectsDistinctByProperty(ProductModel::getMaterial,productModelMapper.selectList(queryWrapper)); + } + + } -- Gitblit v1.9.3