package com.ruoyi.basic.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.basic.enums.StandardProductListChcekTypeEnums;
|
import com.ruoyi.basic.mapper.StandardProductListMapper;
|
import com.ruoyi.basic.mapper.StandardProductListSupplierAskBackupRelMapper;
|
import com.ruoyi.basic.pojo.StandardProductList;
|
import com.ruoyi.basic.pojo.StandardProductListSupplierAskBackupRel;
|
import com.ruoyi.common.exception.base.BaseException;
|
import com.ruoyi.basic.mapper.StandardProductListSupplierAskMapper;
|
import com.ruoyi.basic.pojo.StandardProductListSupplierAsk;
|
import com.ruoyi.basic.service.StandardProductListSupplierAskService;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 检验项目厂家密度绑定表
|
*
|
* @author zhuo
|
* @since 2024-09-23
|
*/
|
@Service
|
public class StandardProductListSupplierAskServiceImpl extends ServiceImpl<StandardProductListSupplierAskMapper, StandardProductListSupplierAsk> implements StandardProductListSupplierAskService {
|
|
@Autowired
|
private StandardProductListSupplierAskBackupRelMapper standardProductListSupplierAskBackupRelMapper;
|
|
@Autowired
|
private StandardProductListMapper standardProductListMapper;
|
|
/**
|
* 查询厂家要求值绑定
|
* @param supplierAsk
|
* @return
|
*/
|
@Override
|
public List<StandardProductListSupplierAsk> selectByProductId(StandardProductListSupplierAsk supplierAsk) {
|
if (supplierAsk.getProductListId() == null) {
|
throw new BaseException("缺少检验项id");
|
}
|
return baseMapper.selectList(Wrappers.<StandardProductListSupplierAsk>lambdaQuery()
|
.eq(StandardProductListSupplierAsk::getProductListId, supplierAsk.getProductListId()));
|
}
|
|
/**
|
* 新增厂家要求值绑定
|
* @param supplierAsk
|
* @return
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Integer addProductSupplierAsk(StandardProductListSupplierAsk supplierAsk) {
|
if (supplierAsk.getProductListId() == null) {
|
throw new BaseException("缺少产品对象id");
|
}
|
// 新增前备份
|
backupSupplierAsk(supplierAsk);
|
// 修改状态为待提交
|
StandardProductList standardProductList = new StandardProductList();
|
standardProductList.setId(supplierAsk.getProductListId());
|
standardProductList.setCheckStatus(StandardProductListChcekTypeEnums.WAIT_CHECK.getCode());
|
standardProductListMapper.updateById(standardProductList);
|
// 查询改厂家是否绑定过
|
Long count = baseMapper.selectCount(Wrappers.<StandardProductListSupplierAsk>lambdaQuery()
|
.eq(StandardProductListSupplierAsk::getProductListId, supplierAsk.getProductListId())
|
.eq(StandardProductListSupplierAsk::getSupplierName, supplierAsk.getSupplierName()));
|
if (count > 0){
|
throw new BaseException("该产品已绑定过该厂家");
|
}
|
baseMapper.insert(supplierAsk);
|
return supplierAsk.getSupplierAskId();
|
}
|
|
/**
|
* 修改厂家要求值绑定
|
* @param supplierAsk
|
* @return
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Integer updateProductSupplierAsk(StandardProductListSupplierAsk supplierAsk) {
|
if (supplierAsk.getProductListId() == null) {
|
throw new BaseException("缺少检验项id");
|
}
|
// 修改前备份
|
backupSupplierAsk(supplierAsk);
|
// 修改状态为待提交
|
StandardProductList standardProductList = new StandardProductList();
|
standardProductList.setId(supplierAsk.getProductListId());
|
standardProductList.setCheckStatus(StandardProductListChcekTypeEnums.WAIT_CHECK.getCode());
|
standardProductListMapper.updateById(standardProductList);
|
// 查询改厂家是否绑定过
|
Long count = baseMapper.selectCount(Wrappers.<StandardProductListSupplierAsk>lambdaQuery()
|
.ne(StandardProductListSupplierAsk::getSupplierAskId, supplierAsk.getSupplierAskId())
|
.eq(StandardProductListSupplierAsk::getProductListId, supplierAsk.getProductListId())
|
.eq(StandardProductListSupplierAsk::getSupplierName, supplierAsk.getSupplierName()));
|
if (count > 0){
|
throw new BaseException("该检验项已绑定过该厂家");
|
}
|
baseMapper.updateById(supplierAsk);
|
return supplierAsk.getSupplierAskId();
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void deleteProductSupplierAsk(Integer supplierAskId) {
|
StandardProductListSupplierAsk supplierAsk = baseMapper.selectById(supplierAskId);
|
// 删除前备份
|
backupSupplierAsk(supplierAsk);
|
// 修改状态为待提交
|
StandardProductList standardProductList = new StandardProductList();
|
standardProductList.setId(supplierAsk.getProductListId());
|
standardProductList.setCheckStatus(StandardProductListChcekTypeEnums.WAIT_CHECK.getCode());
|
standardProductListMapper.updateById(standardProductList);
|
baseMapper.deleteById(supplierAskId);
|
}
|
|
/**
|
* 检验项目厂家密度绑定备份表表备份
|
*
|
* @param supplierAsk
|
*/
|
@Override
|
public void backupSupplierAsk(StandardProductListSupplierAsk supplierAsk) {
|
// 查询备份数据是否存在,如果有不做备份
|
QueryWrapper<StandardProductListSupplierAskBackupRel> backupQueryWrapper = new QueryWrapper<>();
|
backupQueryWrapper.eq("product_list_id", supplierAsk.getProductListId());
|
List<StandardProductListSupplierAskBackupRel> standardProductListSupplierAskBackupRels = standardProductListSupplierAskBackupRelMapper.selectList(backupQueryWrapper);
|
// 查询原数据进行备份
|
if(CollectionUtils.isEmpty(standardProductListSupplierAskBackupRels)){
|
QueryWrapper<StandardProductListSupplierAsk> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("product_list_id", supplierAsk.getProductListId());
|
List<StandardProductListSupplierAsk> standardProductListSupplierAskList = baseMapper.selectList(queryWrapper);
|
List<StandardProductListSupplierAskBackupRel> supplierAskBackupRelInsertList = new ArrayList<>();
|
for (StandardProductListSupplierAsk standardProductListSupplierAsk : standardProductListSupplierAskList) {
|
StandardProductListSupplierAskBackupRel standardProductListSupplierAskBackupRel = new StandardProductListSupplierAskBackupRel();
|
BeanUtils.copyProperties(standardProductListSupplierAsk, standardProductListSupplierAskBackupRel);
|
supplierAskBackupRelInsertList.add(standardProductListSupplierAskBackupRel);
|
}
|
if(!CollectionUtils.isEmpty(supplierAskBackupRelInsertList)){
|
standardProductListSupplierAskBackupRelMapper.batchInsertSupplierAskBackUpRel(supplierAskBackupRelInsertList);
|
}
|
}
|
}
|
}
|