|
@@ -9,18 +9,13 @@ import com.uas.platform.b2c.fa.settlement.model.RefundDetail;
|
|
|
import com.uas.platform.b2c.fa.settlement.service.RefundService;
|
|
import com.uas.platform.b2c.fa.settlement.service.RefundService;
|
|
|
import com.uas.platform.b2c.logistics.dao.InvoiceFPurchaseDao;
|
|
import com.uas.platform.b2c.logistics.dao.InvoiceFPurchaseDao;
|
|
|
import com.uas.platform.b2c.logistics.dao.ReceiptDao;
|
|
import com.uas.platform.b2c.logistics.dao.ReceiptDao;
|
|
|
-import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
|
|
|
|
|
import com.uas.platform.b2c.logistics.model.Receipt;
|
|
import com.uas.platform.b2c.logistics.model.Receipt;
|
|
|
import com.uas.platform.b2c.logistics.model.ReceiptDetail;
|
|
import com.uas.platform.b2c.logistics.model.ReceiptDetail;
|
|
|
import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
|
|
import com.uas.platform.b2c.prod.product.common.service.CreateNumberService;
|
|
|
import com.uas.platform.b2c.trade.aftersale.dao.ReturnFB2cDao;
|
|
import com.uas.platform.b2c.trade.aftersale.dao.ReturnFB2cDao;
|
|
|
import com.uas.platform.b2c.trade.aftersale.dao.ReturnFCustDao;
|
|
import com.uas.platform.b2c.trade.aftersale.dao.ReturnFCustDao;
|
|
|
import com.uas.platform.b2c.trade.aftersale.dao.ReturnFCustDetailDao;
|
|
import com.uas.platform.b2c.trade.aftersale.dao.ReturnFCustDetailDao;
|
|
|
-import com.uas.platform.b2c.trade.aftersale.model.ReturnFB2c;
|
|
|
|
|
-import com.uas.platform.b2c.trade.aftersale.model.ReturnFB2cDetail;
|
|
|
|
|
-import com.uas.platform.b2c.trade.aftersale.model.ReturnFB2cSimpleInfo;
|
|
|
|
|
-import com.uas.platform.b2c.trade.aftersale.model.ReturnFCust;
|
|
|
|
|
-import com.uas.platform.b2c.trade.aftersale.model.ReturnFCustDetail;
|
|
|
|
|
|
|
+import com.uas.platform.b2c.trade.aftersale.model.*;
|
|
|
import com.uas.platform.b2c.trade.aftersale.service.ReturnFCustDetailService;
|
|
import com.uas.platform.b2c.trade.aftersale.service.ReturnFCustDetailService;
|
|
|
import com.uas.platform.b2c.trade.aftersale.service.ReturnService;
|
|
import com.uas.platform.b2c.trade.aftersale.service.ReturnService;
|
|
|
import com.uas.platform.b2c.trade.order.dao.OrderDao;
|
|
import com.uas.platform.b2c.trade.order.dao.OrderDao;
|
|
@@ -51,13 +46,7 @@ import javax.persistence.criteria.CriteriaBuilder;
|
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
import javax.persistence.criteria.CriteriaQuery;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import javax.persistence.criteria.Root;
|
|
import javax.persistence.criteria.Root;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.HashMap;
|
|
|
|
|
-import java.util.HashSet;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
-import java.util.Set;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* The type Return service implementation.
|
|
* The type Return service implementation.
|
|
@@ -240,107 +229,6 @@ public class ReturnServiceImpl implements ReturnService {
|
|
|
return returnFCustDao.save(cust);
|
|
return returnFCustDao.save(cust);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Override
|
|
|
|
|
- @Transactional
|
|
|
|
|
- public ReturnFCust ensureAccept(Long returnid) {
|
|
|
|
|
- ReturnFCust cust = returnFCustDao.findOne(returnid);
|
|
|
|
|
- if (cust == null || !cust.getStatus().equals(Status.INSPECTING.value())) {
|
|
|
|
|
- throw new IllegalOperatorException("退货单状态不为验货中,不可确认收货!");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 在这里生成平台的退货单 和 销售验退单
|
|
|
|
|
- //第1步 生成销售验退单 (平台销售换货单)
|
|
|
|
|
- Receipt receipt = new Receipt(cust);
|
|
|
|
|
- String receiptid = createNumberService.generateOrderNumber(EncodingRulesConstant.RECEIPT_FROMPURCHASE, "trade$receipt", 8);
|
|
|
|
|
- receipt.setReceiptid(receiptid);
|
|
|
|
|
- Set<ReceiptDetail> receiptdetais = new HashSet<>();
|
|
|
|
|
-
|
|
|
|
|
- //根据采购单拆分客户退货单
|
|
|
|
|
- HashMap<String, Set<ReturnFB2cDetail>> map = new HashMap<>();
|
|
|
|
|
- for (ReturnFCustDetail custDetail : cust.getReturnDetails()) {
|
|
|
|
|
- //生成入库单
|
|
|
|
|
- ReceiptDetail reD = new ReceiptDetail(custDetail);
|
|
|
|
|
- String detailid = createNumberService.generateOrderNumber(EncodingRulesConstant.RECEIPT_DETAIL_FROMPURCHASE, "trade$receipt_detail", 9);
|
|
|
|
|
- reD.setDetailid(detailid);
|
|
|
|
|
- reD.setReceipt(receipt);
|
|
|
|
|
- reD.setStatus(Status.NOTSETTLED.value());
|
|
|
|
|
- receiptdetais.add(reD);
|
|
|
|
|
-
|
|
|
|
|
- //第2步 生成平台退货单,根据不同的供应商,产生不用的平台退货单。
|
|
|
|
|
- //根据退货单的明细拆分,如果明细属于同一张采购单生成一张平台退货单(其实就是根据供应商拆分,只不过是管理了对应的采购单)
|
|
|
|
|
- ReturnFB2cDetail b2cDetail = new ReturnFB2cDetail(custDetail);
|
|
|
|
|
- String rfdetailid = createNumberService.generateOrderNumber(EncodingRulesConstant.RETURN_DETAIL_FROMB2C,"trade$return_fmb2c_dt", 9);
|
|
|
|
|
- b2cDetail.setDetailid(rfdetailid);
|
|
|
|
|
- PurchaseDetail pDetail = purchaseDetailDao.findByDetailid(custDetail.getPuid());
|
|
|
|
|
- if(pDetail == null) {
|
|
|
|
|
- throw new IllegalOperatorException("客户退货单对应的采购单明细信息为空");
|
|
|
|
|
- }
|
|
|
|
|
- String purchaseid = pDetail.getPurchase().getPurchaseid();
|
|
|
|
|
- Set<ReturnFB2cDetail> list = map.get(purchaseid);
|
|
|
|
|
- list = list == null ? new HashSet<ReturnFB2cDetail>() : list;
|
|
|
|
|
- b2cDetail.setStatus(Status.TOBESHIPPEDBACK.value());
|
|
|
|
|
- b2cDetail.setPuid(custDetail.getPuid());
|
|
|
|
|
- list.add(b2cDetail);
|
|
|
|
|
- map.put(purchaseid, list);
|
|
|
|
|
-
|
|
|
|
|
- custDetail.setStatus(Status.INSPECTED.value());//修改每个退货单明细状态
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Long uu = SystemSession.getUser().getUserUU();
|
|
|
|
|
- receipt.setStatusAvailable(uu);
|
|
|
|
|
- receipt.setReceiptDetails(receiptdetais);
|
|
|
|
|
- receipt.setSettlement(Status.NOTSETTLED.value());
|
|
|
|
|
- receiptDao.save(receipt);
|
|
|
|
|
-
|
|
|
|
|
- for (String puids : map.keySet()) {
|
|
|
|
|
- Set<ReturnFB2cDetail> set = map.get(puids);
|
|
|
|
|
- Purchase purchase = purchaseDao.findByPurchaseid(puids);
|
|
|
|
|
- ReturnFB2c returnB2c = new ReturnFB2c(cust);
|
|
|
|
|
- returnB2c.setCreatetime(new Date());
|
|
|
|
|
- returnB2c.setSellerenuu(purchase.getSellerenuu());
|
|
|
|
|
- returnB2c.setSellername(purchase.getSellername());
|
|
|
|
|
- returnB2c.setRfcid(cust.getReturnid());
|
|
|
|
|
- // 获取订单对应供应商的地址
|
|
|
|
|
- InvoiceFPurchase inFpu = invoiceFPurchaseDao.findByInvoiceid(purchase.getInid());
|
|
|
|
|
- returnB2c.setJsonAddress(inFpu.getJsonSdAddress());
|
|
|
|
|
- // 生成退货单号
|
|
|
|
|
- String b2cid = createNumberService.generateOrderNumber(EncodingRulesConstant.RETURN_FROMB2C, "trade$return_fmb2c", 8);
|
|
|
|
|
- returnB2c.setReturnid(b2cid);
|
|
|
|
|
- purchase.setReturnPuId(b2cid);
|
|
|
|
|
- purchase.setReturnPuStatus(Status.TOBESHIPPEDBACK.value());
|
|
|
|
|
-
|
|
|
|
|
- returnB2c.setStatusTobeshippedback(SystemSession.getUser().getUserUU());
|
|
|
|
|
- returnB2c.setCurrency(purchase.getCurrency());
|
|
|
|
|
- Double taxes = 0d;
|
|
|
|
|
- Double price = 0d;
|
|
|
|
|
- Double number = 0d;
|
|
|
|
|
- for (ReturnFB2cDetail returnFB2cDetail : set) {
|
|
|
|
|
- returnFB2cDetail.setB2creturn(returnB2c);
|
|
|
|
|
- taxes = DoubleArith.add(taxes, returnFB2cDetail.getTaxes());
|
|
|
|
|
- price = DoubleArith.add(price, returnFB2cDetail.getPrice());
|
|
|
|
|
- number = DoubleArith.add(number, returnFB2cDetail.getNumber());
|
|
|
|
|
- }
|
|
|
|
|
- returnB2c.setReturnDetails(set);
|
|
|
|
|
- returnB2c.setTaxes(taxes);
|
|
|
|
|
- returnB2c.setPuid(puids);
|
|
|
|
|
- returnB2c.setPrice(price);
|
|
|
|
|
- returnB2c.setQty(number);
|
|
|
|
|
- returnB2c.setPaytype(cust.getPaytype());
|
|
|
|
|
- returnB2c.setCustid(cust.getId());
|
|
|
|
|
- returnFB2cDao.save(returnB2c);
|
|
|
|
|
- }
|
|
|
|
|
- // 第3步 回改客户退货单状态
|
|
|
|
|
- cust.setStatusInspected(uu);
|
|
|
|
|
- String orid = cust.getOrid();
|
|
|
|
|
-
|
|
|
|
|
- //修改订单退货单的信息
|
|
|
|
|
- Order orderReturn = orderDao.findByOrderid(orid);
|
|
|
|
|
- orderReturn.setReturnStatus(Status.INSPECTED.value());
|
|
|
|
|
-
|
|
|
|
|
- returnFCustDao.save(cust);
|
|
|
|
|
- return cust;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public String batchSendForVender(List<ReturnFB2c> b2cs) {
|
|
public String batchSendForVender(List<ReturnFB2c> b2cs) {
|
|
|
for (ReturnFB2c b2c : b2cs) {
|
|
for (ReturnFB2c b2c : b2cs) {
|