zss
2023-09-13 a376a001494a12c04b6a2a04bf797cbd7198d1f7
inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -16,6 +16,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
@@ -43,21 +44,22 @@
    //查询销售单列表
    @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);
        return saleMapper.selectSaleList(page, orderNumber, name, type, delTime);
    }
    //新增销售单
    @Override
    public String addSale(String saleman,SaleDto saleDto) {
    @Transactional(rollbackFor = Exception.class)
    public String addSale(String saleman, SaleDto saleDto) {
        Sale sale = new Sale();
        BeanUtils.copyProperties(saleDto,sale);
        BeanUtils.copyProperties(saleDto, sale);
        sale.setSaleman(saleman);
        saleMapper.insert(sale);
        //添加销售产品单
        List<SaleMaterialDto> saleMaterialDtoList = saleDto.getSaleMaterialList();
        for (SaleMaterialDto saleMaterialDto : saleMaterialDtoList) {
            SaleMaterial saleMaterial = new SaleMaterial();
            BeanUtils.copyProperties(saleMaterialDto,saleMaterial);
            BeanUtils.copyProperties(saleMaterialDto, saleMaterial);
            saleMaterial.setSaleId(sale.getId());
            saleMaterialMapper.insert(saleMaterial);
        }
@@ -69,7 +71,7 @@
    public SaleVo selectSaleDatil(Integer id) {
        SaleVo saleVo = new SaleVo();
        Sale sale = saleMapper.selectById(id);
        BeanUtils.copyProperties(sale,saleVo);
        BeanUtils.copyProperties(sale, saleVo);
        List<SaleMaterial> saleMaterialList = saleMaterialMapper.selectSaleDatil(id);//销售单id
        List<SaleMaterialDto> saleMaterialDtoList = saleMaterialList.stream().map(saleMaterial -> {
            SaleMaterialDto saleMaterialDto = new SaleMaterialDto();
@@ -82,6 +84,7 @@
    //根据销售单id删除
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delSale(Integer id) {
        Sale sale = saleMapper.selectById(id);
        sale.setState(0);
@@ -95,60 +98,63 @@
    //根据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);
            }
        }
    @Transactional(rollbackFor = Exception.class)
    public void delAllSale(String ids) {
        //批量删除销售单
        saleMapper.delAllSale(ids);
        //批量删除销售产品单
        saleMaterialMapper.delAllSale(ids);
    }
    //根据销售单id修改信息
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateSaleById(String saleman, Integer id, SaleVo saleVo) {
        Sale sale = saleMapper.selectById(id);
        sale.setSaleman(saleman);
        BeanUtils.copyProperties(saleVo,sale);
        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);
            }
        List<SaleMaterialDto> saleMaterialDtos = saleVo.getSaleMaterialList();
        for (SaleMaterialDto saleMaterialDto : saleMaterialDtos) {
            SaleMaterial saleMaterial = new SaleMaterial();
            BeanUtils.copyProperties(saleMaterialDto, saleMaterial);
            saleMaterialMapper.updateById(saleMaterial);
        }
    }
    //审核
    @Override
    public void check(String checkname,Integer id,Integer type) {
    @Transactional(rollbackFor = Exception.class)
    public void check(String checkname, Integer id, Integer type) {
        Sale sale = saleMapper.selectById(id);
        sale.setType(type);
        sale.setCheckname(checkname);
        sale.setCheckTime(new Date());
        if (type==1) {
            //如果审核通过
            sale.setBianzhiState(1);
        }else {
            //如果审核不通过
            sale.setBianzhiState(null);
        }
        saleMapper.updateById(sale);
        //审核通过的销售单将销售单中的产品的状态改为待编制0
        List<SaleMaterial> saleMaterials = saleMaterialMapper.selectList(Wrappers.<SaleMaterial>query()
                .eq("sale_id", id)
                .eq("state", 1));
        if (type == 1) {
            for (SaleMaterial saleMaterial : saleMaterials) {
                saleMaterial.setType(0);
                saleMaterialMapper.updateById(saleMaterial);
            }
        }
    }
    //根据订单号查询销售信息
    @Override
    public ConsignmentDto1 selSale(String orderNumber) {
        Sale sale = saleMapper.selectOne(Wrappers.<Sale>query().eq("order_number", orderNumber));
        List<SaleMaterial> saleMaterials = saleMaterialMapper.selectList(Wrappers.<SaleMaterial>query().eq("sale_id", sale.getId()));
        Sale sale = saleMapper.selectOne(Wrappers.<Sale>query()
                .eq("order_number", orderNumber)
                .eq("type", 1)
                .eq("state", 1));
        //查询销售单中产品信息
        List<SaleMaterial> saleMaterials = saleMaterialMapper.selectList(Wrappers.<SaleMaterial>query()
                .eq("sale_id", sale.getId())
                .eq("state", 1));
        List<ConsignmentDto2> dto2List = saleMaterials.stream().map(saleMaterial -> {
            ConsignmentDto2 consignmentDto2 = new ConsignmentDto2();
            BeanUtils.copyProperties(saleMaterial, consignmentDto2);