package com.yuanchu.mom.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.yuanchu.mom.mapper.SaleMaterialMapper;
|
import com.yuanchu.mom.pojo.Sale;
|
import com.yuanchu.mom.mapper.SaleMapper;
|
import com.yuanchu.mom.pojo.SaleMaterial;
|
import com.yuanchu.mom.pojo.dto.SaleDto;
|
import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
|
import com.yuanchu.mom.pojo.dto.vo.SaleVo;
|
import com.yuanchu.mom.service.SaleMaterialService;
|
import com.yuanchu.mom.service.SaleService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 销售单 服务实现类
|
* </p>
|
*
|
* @author 江苏鵷雏网络科技有限公司
|
* @since 2023-08-08
|
*/
|
@Service
|
public class SaleServiceImpl extends ServiceImpl<SaleMapper, Sale> implements SaleService {
|
|
@Resource
|
SaleMapper saleMapper;
|
|
@Resource
|
SaleMaterialMapper saleMaterialMapper;
|
|
//查询销售单列表
|
@Override
|
public IPage<Map<String, Object>> selectSaleList(Page<Object> page, String orderNumber, String name, Integer type, String delTime) {
|
return saleMapper.selectSaleList(page,orderNumber,name,type,delTime);
|
}
|
|
//新增销售单
|
@Override
|
public String addSale(String saleman,SaleDto saleDto) {
|
Sale sale = new Sale();
|
BeanUtils.copyProperties(saleDto,sale);
|
sale.setSaleman(saleman);
|
saleMapper.insert(sale);
|
//如果saleMaterialList有值,需要添加销售产品单
|
List<SaleMaterialDto> saleMaterialDtoList = saleDto.getSaleMaterialList();
|
for (SaleMaterialDto saleMaterialDto : saleMaterialDtoList) {
|
SaleMaterial saleMaterial = new SaleMaterial();
|
BeanUtils.copyProperties(saleMaterialDto,saleMaterial);
|
saleMaterial.setSaleId(sale.getId());
|
saleMaterialMapper.insert(saleMaterial);
|
}
|
return "新增成功";
|
}
|
|
//根据销售单id查询销售详情
|
@Override
|
public SaleVo selectSaleDatil(Integer id) {
|
SaleVo saleVo = new SaleVo();
|
Sale sale = saleMapper.selectById(id);
|
BeanUtils.copyProperties(sale,saleVo);
|
List<SaleMaterial> saleMaterialList = saleMaterialMapper.selectSaleDatil(id);//销售单id
|
List<SaleMaterialDto> saleMaterialDtoList = saleMaterialList.stream().map(saleMaterial -> {
|
SaleMaterialDto saleMaterialDto = new SaleMaterialDto();
|
BeanUtils.copyProperties(saleMaterial, saleMaterialDto);
|
return saleMaterialDto;
|
}).collect(Collectors.toList());
|
saleVo.setSaleMaterialList(saleMaterialDtoList);
|
return saleVo;
|
}
|
|
//根据销售单id删除
|
@Override
|
public void delSale(Integer id) {
|
Sale sale = saleMapper.selectById(id);
|
sale.setState(0);
|
saleMapper.updateById(sale);
|
List<SaleMaterial> saleMaterials = saleMaterialMapper.selectSaleDatil(id);
|
for (SaleMaterial saleMaterial : saleMaterials) {
|
saleMaterial.setState(0);
|
saleMaterialMapper.updateById(saleMaterial);
|
}
|
}
|
|
//根据id批量删除
|
@Override
|
public void delAllSale(List<Integer> ids) {
|
List<Sale> sales = saleMapper.selectBatchIds(ids);
|
for (Sale sale : sales) {
|
sale.setState(0);
|
saleMapper.updateById(sale);
|
List<SaleMaterial> saleMaterials = saleMaterialMapper.selectSaleDatil(sale.getId());
|
for (SaleMaterial saleMaterial : saleMaterials) {
|
saleMaterial.setState(0);
|
saleMaterialMapper.updateById(saleMaterial);
|
}
|
}
|
}
|
|
//根据销售单id修改信息
|
@Override
|
public void updateSaleById(String saleman, Integer id, SaleVo saleVo) {
|
Sale sale = saleMapper.selectById(id);
|
sale.setSaleman(saleman);
|
BeanUtils.copyProperties(saleVo,sale);
|
//更新销售单
|
saleMapper.updateById(sale);
|
List<SaleMaterial> saleMaterials = saleMaterialMapper.selectSaleDatil(id);
|
for (SaleMaterial saleMaterial : saleMaterials) {
|
List<SaleMaterialDto> saleMaterialDtos = saleVo.getSaleMaterialList();
|
for (SaleMaterialDto saleMaterialDto : saleMaterialDtos) {
|
BeanUtils.copyProperties(saleMaterialDto,saleMaterial);
|
//更新销售产品单
|
saleMaterialMapper.updateById(saleMaterial);
|
}
|
}
|
}
|
|
//审核
|
@Override
|
public void check(String checkname,Integer id,Integer type) {
|
Sale sale = saleMapper.selectById(id);
|
sale.setType(type);
|
sale.setCheckname(checkname);
|
sale.setCheckTime(new Date());
|
saleMapper.updateById(sale);
|
}
|
}
|