| | |
| | | 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.baomidou.mybatisplus.core.toolkit.IdWorker; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.yuanchu.limslaboratory.pojo.Material; |
| | | 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.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 com.yuanchu.limslaboratory.utils.ArrayListUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务实现类 |
| | | * 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author 江苏鵷雏网络科技有限公司 |
| | |
| | | @Autowired |
| | | private ProductService productService; |
| | | |
| | | @Resource |
| | | ProductModelMapper productModelMapper; |
| | | |
| | | //查询物料信息 |
| | | @Override |
| | | public List<Map> selectMaterialLimit(int pageSize, int countSize, int type) { |
| | | return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize, type); |
| | | return materialMapper.selectMaterialLimit((pageSize - 1) * countSize, pageSize * countSize, type); |
| | | } |
| | | |
| | | //根据物料id查询物料信息 |
| | | @Override |
| | | public Map selectMaterialById(String materialId) { |
| | | return materialMapper.selectMaterialById(materialId); |
| | | } |
| | | |
| | | @Override |
| | | public Integer deleteMaterialInformation(Integer materialId) { |
| | |
| | | updateWrapper.eq(Material::getId, materialId); |
| | | updateWrapper.set(Material::getState, 0); |
| | | int isDeleteSuccess = materialMapper.update(new Material(), updateWrapper); |
| | | if (isDeleteSuccess == 1){ |
| | | if (isDeleteSuccess == 1) { |
| | | List<Integer> isDeleteStandard = standardService.deleteStandardsInformation(materialId); |
| | | if (!ObjectUtils.isEmpty(isDeleteStandard)){ |
| | | if (!ObjectUtils.isEmpty(isDeleteStandard)) { |
| | | List<Integer> idDeleteSpecifications = specificationsService.StandardIdDeleteSpecifications(isDeleteStandard); |
| | | if (!ObjectUtils.isEmpty(idDeleteSpecifications)){ |
| | | if (!ObjectUtils.isEmpty(idDeleteSpecifications)) { |
| | | productService.deleteProductInformation(idDeleteSpecifications); |
| | | } |
| | | } |
| | |
| | | return 0; |
| | | } |
| | | |
| | | //三级新增 |
| | | @Override |
| | | @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){ |
| | | if (isInsertSuccess > 0) { |
| | | Standard standard = new Standard() |
| | | .setMaterialId(material.getId()) |
| | | .setName(addMaterialDto.getStandardName()); |
| | | boolean save = standardService.save(standard); |
| | | if (save){ |
| | | if (save) { |
| | | Specifications specifications = new Specifications() |
| | | .setName(addMaterialDto.getSpecificationsName()) |
| | | .setStandardId(standard.getId()); |
| | | boolean save1 = specificationsService.save(specifications); |
| | | if (save1) |
| | | 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<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<>(); |
| | | 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; |
| | | 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)); |
| | | } |
| | | |
| | | |
| | | } |