package com.yuanchu.limslaboratory.service.impl;
|
|
|
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.mapper.ProductModelMapper;
|
import com.yuanchu.limslaboratory.pojo.*;
|
import com.yuanchu.limslaboratory.mapper.MaterialMapper;
|
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.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 江苏鵷雏网络科技有限公司
|
* @since 2023-07-17
|
*/
|
@Service
|
public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> implements MaterialService {
|
|
@Resource
|
private MaterialMapper materialMapper;
|
|
@Autowired
|
private StandardService standardService;
|
|
@Autowired
|
private SpecificationsService specificationsService;
|
|
@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);
|
}
|
|
|
@Override
|
public Integer deleteMaterialInformation(Integer materialId) {
|
LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>();
|
updateWrapper.eq(Material::getId, materialId);
|
updateWrapper.set(Material::getState, 0);
|
int isDeleteSuccess = materialMapper.update(new Material(), updateWrapper);
|
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
|
@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<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));
|
}
|
|
|
}
|