| | |
| | | |
| | | 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.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | 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); |
| | | } |
| | | @Autowired |
| | | private SpecificationsService specificationsService; |
| | | |
| | | @Autowired |
| | | private ProductService productService; |
| | | |
| | | //查询物料信息 |
| | | @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); |
| | | 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); |
| | | 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 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()); |
| | | 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 list; |
| | | return typeMaps; |
| | | } |
| | | } |