|
@@ -3,7 +3,6 @@ package com.fjhx.sale.service.after.impl;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.fjhx.common.utils.Assert;
|
|
|
import com.fjhx.sale.entity.after.dto.AfterSalesDto;
|
|
|
import com.fjhx.sale.entity.after.po.AfterSales;
|
|
|
import com.fjhx.sale.entity.after.po.AfterSalesDetail;
|
|
@@ -12,17 +11,10 @@ import com.fjhx.sale.mapper.after.AfterSalesMapper;
|
|
|
import com.fjhx.sale.service.after.AfterSalesDetailService;
|
|
|
import com.fjhx.sale.service.after.AfterSalesService;
|
|
|
import com.fjhx.sale.service.contract.ContractProductService;
|
|
|
-import com.fjhx.wms.entity.stock.emums.StockWaitType;
|
|
|
-import com.fjhx.wms.entity.stock.po.StockWait;
|
|
|
-import com.fjhx.wms.entity.stock.po.StockWaitDetails;
|
|
|
-import com.fjhx.wms.service.stock.StockWaitDetailsService;
|
|
|
-import com.fjhx.wms.service.stock.StockWaitService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -41,10 +33,7 @@ import java.util.stream.Collectors;
|
|
|
public class AfterSalesServiceImpl extends ServiceImpl<AfterSalesMapper, AfterSales> implements AfterSalesService {
|
|
|
@Autowired
|
|
|
private AfterSalesDetailService afterSalesDetailService;
|
|
|
- @Autowired
|
|
|
- private StockWaitService stockWaitService;
|
|
|
- @Autowired
|
|
|
- private StockWaitDetailsService stockWaitDetailsService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ContractProductService contractProductService;
|
|
|
|
|
@@ -72,113 +61,4 @@ public class AfterSalesServiceImpl extends ServiceImpl<AfterSalesMapper, AfterSa
|
|
|
afterSalesDetailService.saveBatch(afterSalesDetailList);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void edit(AfterSalesDto afterSalesDto) {
|
|
|
- this.updateById(afterSalesDto);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 退货
|
|
|
- */
|
|
|
- @DSTransactional
|
|
|
- @Override
|
|
|
- public void salesReturn(AfterSalesDto afterSalesDto) {
|
|
|
- Assert.notEmpty(afterSalesDto.getId(), "售后id不能为空");
|
|
|
- AfterSales afterSales = this.getById(afterSalesDto.getId());
|
|
|
- Assert.notEmpty(afterSales, "查询不到售后信息");
|
|
|
-
|
|
|
- //生成售后退货待入库信息
|
|
|
- StockWait stockWait = new StockWait();
|
|
|
- stockWait.setType(1);//入库
|
|
|
- stockWait.setStatus(0);//待入库
|
|
|
- stockWait.setBusinessType(StockWaitType.SALES_RETURN_IN.getDetailType());
|
|
|
- stockWait.setBusinessId(afterSales.getId());
|
|
|
- stockWaitService.save(stockWait);
|
|
|
-
|
|
|
- //生成售后退货待入库明细
|
|
|
- List<AfterSalesDetail> afterSalesDetailList = afterSalesDetailService.list(q -> q.eq(AfterSalesDetail::getAfterSalesId, afterSales.getId()));
|
|
|
- List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
- for (AfterSalesDetail afterSalesDetail : afterSalesDetailList) {
|
|
|
- StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
- stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
- stockWaitDetails.setProductId(afterSalesDetail.getProductId());
|
|
|
- stockWaitDetails.setQuantity(afterSalesDetail.getQuantity());
|
|
|
- stockWaitDetailsList.add(stockWaitDetails);
|
|
|
- }
|
|
|
- stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 销售换货
|
|
|
- */
|
|
|
- @DSTransactional
|
|
|
- @Override
|
|
|
- public void salesReplace(AfterSalesDto afterSalesDto) {
|
|
|
- Assert.notEmpty(afterSalesDto.getId(), "售后id不能为空");
|
|
|
- AfterSales afterSales = this.getById(afterSalesDto.getId());
|
|
|
- Assert.notEmpty(afterSales, "查询不到售后信息");
|
|
|
-
|
|
|
- //生成售后换货待入库信息
|
|
|
- StockWait stockWait = new StockWait();
|
|
|
- stockWait.setType(1);//入库
|
|
|
- stockWait.setStatus(0);//待入库
|
|
|
- stockWait.setBusinessType(StockWaitType.SALES_REPLACE_IN.getDetailType());
|
|
|
- stockWait.setBusinessId(afterSales.getId());
|
|
|
- stockWaitService.save(stockWait);
|
|
|
- //生成售后换货待出库信息
|
|
|
- StockWait stockWait1 = new StockWait();
|
|
|
- stockWait1.setType(2);//出库
|
|
|
- stockWait1.setStatus(0);//待出库
|
|
|
- stockWait1.setBusinessType(StockWaitType.SALES_REPLACE_OUT.getDetailType());
|
|
|
- stockWait1.setBusinessId(afterSales.getId());
|
|
|
- stockWaitService.save(stockWait1);
|
|
|
-
|
|
|
- //生成售后换货待出入库明细
|
|
|
- List<AfterSalesDetail> afterSalesDetailList = afterSalesDetailService.list(q -> q.eq(AfterSalesDetail::getAfterSalesId, afterSales.getId()));
|
|
|
- List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
- List<StockWaitDetails> stockWaitDetailsList1 = new ArrayList<>();
|
|
|
- for (AfterSalesDetail afterSalesDetail : afterSalesDetailList) {
|
|
|
- //生成入库明细
|
|
|
- StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
- stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
- stockWaitDetails.setProductId(afterSalesDetail.getProductId());
|
|
|
- stockWaitDetails.setQuantity(afterSalesDetail.getQuantity());
|
|
|
- stockWaitDetailsList.add(stockWaitDetails);
|
|
|
- //生成出库明细
|
|
|
- StockWaitDetails stockWaitDetails1 = new StockWaitDetails();
|
|
|
- stockWaitDetails.setStockWaitId(stockWait1.getId());
|
|
|
- stockWaitDetails.setProductId(afterSalesDetail.getProductId());
|
|
|
- stockWaitDetails.setQuantity(afterSalesDetail.getQuantity());
|
|
|
- stockWaitDetailsList1.add(stockWaitDetails1);
|
|
|
- }
|
|
|
- stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
- stockWaitDetailsService.saveBatch(stockWaitDetailsList1);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 发起采购
|
|
|
- */
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public void initPurchase(AfterSalesDto afterSalesDto) {
|
|
|
- Assert.notEmpty(afterSalesDto.getId(), "售后id不能为空");
|
|
|
- AfterSales afterSales = this.getById(afterSalesDto.getId());
|
|
|
- Assert.notEmpty(afterSales, "查询不到售后信息");
|
|
|
- List<AfterSalesDetail> afterSalesDetailList = afterSalesDetailService.list(q -> q.eq(AfterSalesDetail::getAfterSalesId, afterSales.getId()));
|
|
|
- //创建交接单
|
|
|
- List<ContractProduct> newContractProductList = new ArrayList<>();
|
|
|
- for (AfterSalesDetail afterSalesDetail : afterSalesDetailList) {
|
|
|
- ContractProduct contractProduct = new ContractProduct();
|
|
|
- contractProduct.setProductId(afterSalesDetail.getProductId());
|
|
|
- contractProduct.setQuantity(afterSalesDetail.getQuantity());
|
|
|
- contractProduct.setExpendQuantity(afterSalesDetail.getQuantity());
|
|
|
- contractProduct.setContractId(afterSales.getContractId());
|
|
|
- contractProduct.setPrice(afterSalesDetail.getPrice());
|
|
|
- contractProduct.setAmount(afterSalesDetail.getAmount());
|
|
|
- contractProduct.setRemark(afterSalesDetail.getRemark());
|
|
|
- newContractProductList.add(contractProduct);
|
|
|
- }
|
|
|
- contractProductService.saveBatch(newContractProductList);
|
|
|
- }
|
|
|
-
|
|
|
}
|