From ad7151b14f2721b0fa40a903c6e65a2c511dd4c5 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期四, 27 七月 2023 15:08:13 +0800 Subject: [PATCH] LIMS管理系统框架-开发7-27第二次标准库完成修改 --- standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 93 insertions(+), 24 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 a373c2a..feb1a9e 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 @@ -2,16 +2,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.yuanchu.limslaboratory.pojo.Material; import com.yuanchu.limslaboratory.mapper.MaterialMapper; +import com.yuanchu.limslaboratory.pojo.Specifications; +import com.yuanchu.limslaboratory.pojo.Standard; +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.service.SpecificationsService; +import com.yuanchu.limslaboratory.service.StandardService; +import com.yuanchu.limslaboratory.utils.MyUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -27,12 +34,21 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> implements MaterialService { @Resource - MaterialMapper materialMapper; + private MaterialMapper materialMapper; + + @Autowired + private StandardService standardService; + + @Autowired + private SpecificationsService specificationsService; + + @Autowired + private ProductService productService; //鏌ヨ鐗╂枡淇℃伅 @Override - public List<Material> selectMaterialLimit(int pageSize, int countSize) { - return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize); + public List<Material> selectMaterialLimit(int pageSize, int countSize, int type) { + return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize, type); } //鏍规嵁鐗╂枡id鏌ヨ鐗╂枡淇℃伅 @@ -41,39 +57,92 @@ return materialMapper.selectMaterialById(materialId); } - @Autowired - private ProductService productService; - @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); + 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 List<String> specificationsIdDeleteMaterial(List<Integer> deleteSpecificationsId) { - List<String> list = new ArrayList<>(); - for (Integer serialNumberId:deleteSpecificationsId){ - LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); - 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()); + 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) + return 1; } } - return list; + return 0; + } + + @Override + public List<Map<String, Object>> getFourLevelInformation(String specificationName) { + LambdaQueryWrapper<Material> typeWrapper = new LambdaQueryWrapper<>(); + typeWrapper.groupBy(Material::getType); + typeWrapper.select(Material::getType); + List<Map<String, Object>> typeMaps = materialMapper.selectMaps(typeWrapper); + for (Map<String, Object> typeMap : typeMaps){ + LambdaQueryWrapper<Material> materialWrapper = new LambdaQueryWrapper<>(); + materialWrapper.eq(Material::getType, typeMap.get("type")); + materialWrapper.select(Material::getId, Material::getName); + List<Map<String, Object>> materialMaps = materialMapper.selectMaps(materialWrapper); + if (!ObjectUtils.isEmpty(materialMaps)){ + for (Map<String, Object> materialMap : materialMaps){ + LambdaQueryWrapper<Standard> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Standard::getMaterialId, materialMap.get("id")); + wrapper.select(Standard::getId, Standard::getName); + List<Map<String, Object>> standardMaps = standardService.listMaps(wrapper); + if (!ObjectUtils.isEmpty(standardMaps)){ + for (Map<String, Object> standardMap : standardMaps){ + LambdaQueryWrapper<Specifications> specificationWrapper = new LambdaQueryWrapper<>(); + MyUtil.PrintLog(standardMap.get("id").toString()); + specificationWrapper.eq(Specifications::getStandardId, standardMap.get("id")); + if (!ObjectUtils.isEmpty(specificationName)){ + specificationWrapper.eq(Specifications::getName, specificationName); + } + specificationWrapper.select(Specifications::getId, Specifications::getName); + List<Map<String, Object>> specificationsMaps = specificationsService.listMaps(specificationWrapper); + if (!ObjectUtils.isEmpty(specificationsMaps)){ + standardMap.put("children", specificationsMaps); + } else { + standardMap.put("children", null); + } + } + materialMap.put("children", standardMaps); + } else { + materialMap.put("children", null); + } + } + typeMap.put("children", materialMaps); + } else { + typeMap.put("children", null); + } + } + return typeMaps; } } -- Gitblit v1.9.3