|
|
|
@ -1,20 +1,18 @@
|
|
|
|
|
package com.ms.api.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.ms.api.consts.PurchaseOrderTagConst;
|
|
|
|
|
import com.ms.api.dsorder.*;
|
|
|
|
|
import com.ms.api.service.DistributionOrderService;
|
|
|
|
|
import com.ms.api.service.OpOrderChildService;
|
|
|
|
|
import com.ms.api.service.OpOrderEncryptService;
|
|
|
|
|
import com.ms.api.service.OpOrderService;
|
|
|
|
|
import com.ms.dal.entity.OpOrder;
|
|
|
|
|
import com.ms.dal.entity.OpOrderEncrypt;
|
|
|
|
|
import com.ms.api.service.*;
|
|
|
|
|
import com.ms.dal.entity.*;
|
|
|
|
|
import io.micrometer.core.lang.Nullable;
|
|
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.http.client.utils.DateUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
@ -29,6 +27,18 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private OpOrderEncryptService opOrderEncryptService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private PurchaseOrderService purchaseOrderService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private PurchaseOrderUpdateLogService purchaseOrderUpdateLogService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private OpOrderExtService opOrderExtService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private PurchaseOrderItemService purchaseOrderItemService;
|
|
|
|
|
|
|
|
|
|
private DsRetDto batchCreateDistributionOrders(Integer shopId, BatchCreateDistributionOrdersDto batchCreateDistributionOrdersDto) {
|
|
|
|
|
checkPurchaseOrders(batchCreateDistributionOrdersDto.getPlatformOrders());
|
|
|
|
|
|
|
|
|
@ -144,7 +154,126 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
|
|
|
|
|
return platformOrders;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void dsRelatePurchaseOrder(DsPurchaseOrderDto $purchaseOrder, OpOrder opOrder) {
|
|
|
|
|
private void dsRelatePurchaseOrder(DsPurchaseOrderDto purchaseOrder, OpOrder opOrder) {
|
|
|
|
|
PurchaseOrder basePurchaseOrder = purchaseOrderService.getByPlatformAndPurchaseOrderSn(purchaseOrder.getPurchasePlatform(), purchaseOrder.getPurchaseOrderSn());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updatePurchaseOrderInfo(DsPurchaseOrderDto purchaseOrder, PurchaseOrder dbPurchaseOrder, OpOrder opOrder) {
|
|
|
|
|
String orderId = purchaseOrder.getPlatformOrderId();
|
|
|
|
|
|
|
|
|
|
Date purchaseOrderSendTime = null;
|
|
|
|
|
Date purchaseOrderStartTime = null;
|
|
|
|
|
if (StringUtils.isNotBlank(purchaseOrder.getPurchaseOrderStartTime())) {
|
|
|
|
|
purchaseOrderStartTime = DateUtils.parseDate(purchaseOrder.getPurchaseOrderStartTime(),["yyyy-MM-dd HH:ii:ss"]);
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotBlank(purchaseOrder.getPurchaseOrderSendTime())) {
|
|
|
|
|
purchaseOrderSendTime = DateUtils.parseDate(purchaseOrder.getPurchaseOrderSendTime(),["yyyy-MM-dd HH:ii:ss"]);
|
|
|
|
|
}
|
|
|
|
|
dbPurchaseOrder.setPurchasePlatform(purchaseOrder.getPurchasePlatform());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderSn(purchaseOrder.getPurchaseOrderSn());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderRefundMoney(new BigDecimal(0));
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderBuyer(purchaseOrder.getPurchaseOrderBuyer());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderSeller(purchaseOrder.getPurchaseOrderSeller());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderStatus(purchaseOrder.getPurchaseOrderStatus());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderLogisticsName(purchaseOrder.getPurchaseOrderLogisticsName());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderWaybillCode(purchaseOrder.getPurchaseOrderWaybillCode());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderStartTime(purchaseOrderStartTime);
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderSendTime(purchaseOrderSendTime);
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderFullname(purchaseOrder.getPurchaseOrderFullname());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderMobile(purchaseOrder.getPurchaseOrderMobile());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderFullAddress(purchaseOrder.getPurchaseOrderFullAddress());
|
|
|
|
|
dbPurchaseOrder.setLogisticsIsAccept(purchaseOrder.getLogisticsIsAccept());
|
|
|
|
|
dbPurchaseOrder.setOperateShopId(opOrder.getShopId());
|
|
|
|
|
dbPurchaseOrder.setCheckReason(purchaseOrder.getCheckReason());
|
|
|
|
|
dbPurchaseOrder.setCheckStatus(purchaseOrder.getCheckStatus());
|
|
|
|
|
dbPurchaseOrder.setGmtLastCheckStatus(new Date());
|
|
|
|
|
dbPurchaseOrder.setGmtModified(new Date());
|
|
|
|
|
purchaseOrderService.updateByPrimaryKey(dbPurchaseOrder);
|
|
|
|
|
|
|
|
|
|
if (purchaseOrder.getPurchaseOrderPayment() != null) {
|
|
|
|
|
BigDecimal purchaseOrderPayment = new BigDecimal(purchaseOrder.getPurchaseOrderPayment());
|
|
|
|
|
dbPurchaseOrder.setPurchaseOrderPayment(purchaseOrderPayment);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
OpOrderExt orderExt = opOrderExtService.getByOrderId(dbPurchaseOrder.getOrderId());
|
|
|
|
|
|
|
|
|
|
if (dbPurchaseOrder.getStatus().equals("normal") && orderExt != null && orderExt.getFilterPurchaseStatus() != null) {
|
|
|
|
|
updateOpOrderFilterPurchaseStatus(opOrder.getOrderId(), orderExt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void comparePurchaseOrderAndAddUpdateLog(DsPurchaseOrderDto purchaseOrder, Long shopId, String action) {
|
|
|
|
|
PurchaseOrderUpdateLog log = new PurchaseOrderUpdateLog();
|
|
|
|
|
log.setOrderId(purchaseOrder.getPlatformOrderId());
|
|
|
|
|
log.setAction(action);
|
|
|
|
|
log.setPurchasePlatform(purchaseOrder.getPurchasePlatform());
|
|
|
|
|
log.setPurchaseOrderSn(purchaseOrder.getPurchaseOrderSn());
|
|
|
|
|
log.setPurchaseOrderBuyer(purchaseOrder.getPurchaseOrderBuyer());
|
|
|
|
|
log.setPurchaseOrderSeller(purchaseOrder.getPurchaseOrderSeller());
|
|
|
|
|
log.setPurchaseOrderLogisticsName(purchaseOrder.getPurchaseOrderLogisticsName());
|
|
|
|
|
log.setPurchaseOrderWaybillCode(purchaseOrder.getPurchaseOrderWaybillCode());
|
|
|
|
|
log.setPurchaseOrderFullname(purchaseOrder.getPurchaseOrderFullname());
|
|
|
|
|
log.setPurchaseOrderMobile(purchaseOrder.getPurchaseOrderMobile());
|
|
|
|
|
log.setPurchaseOrderFullAddress(purchaseOrder.getPurchaseOrderFullAddress());
|
|
|
|
|
log.setOperateShopId(shopId);
|
|
|
|
|
log.setGmtModified(new Date());
|
|
|
|
|
log.setGmtCreate(new Date());
|
|
|
|
|
purchaseOrderUpdateLogService.insert(log);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkPurchaseOrderLogisticsChangeAndAddTag(DsPurchaseOrderDto purchaseOrder, PurchaseOrder oldPurchaseOrderInfo) {
|
|
|
|
|
if (
|
|
|
|
|
StringUtils.isBlank(oldPurchaseOrderInfo.getPurchaseOrderLogisticsName()) ||
|
|
|
|
|
StringUtils.isBlank(oldPurchaseOrderInfo.getPurchaseOrderWaybillCode()) ||
|
|
|
|
|
StringUtils.isBlank(purchaseOrder.getPurchaseOrderLogisticsName()) ||
|
|
|
|
|
StringUtils.isBlank(purchaseOrder.getPurchaseOrderWaybillCode())
|
|
|
|
|
) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (purchaseOrder.getPurchaseOrderLogisticsName().equals(oldPurchaseOrderInfo.getPurchaseOrderLogisticsName()) && purchaseOrder.getPurchaseOrderWaybillCode().equals(oldPurchaseOrderInfo.getPurchaseOrderWaybillCode())) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// PurchaseOrderTag tag = new PurchaseOrderTag();
|
|
|
|
|
// tag.setShopId(oldPurchaseOrderInfo.getShopId());
|
|
|
|
|
// tag.setOrderId(oldPurchaseOrderInfo.getOrderId());
|
|
|
|
|
// tag.setPurchaseOrderId(oldPurchaseOrderInfo.getPurchaseOrderId());
|
|
|
|
|
// tag.setTagField("hasChangedLogistics");
|
|
|
|
|
// tag.setTagValue("1");
|
|
|
|
|
// tag.setGmtModified(new Date());
|
|
|
|
|
// tag.setGmtCreate(new Date());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updateOpOrderFilterPurchaseStatus(String orderId, @Nullable OpOrderExt opOrderExt) {
|
|
|
|
|
if (opOrderExt == null) {
|
|
|
|
|
opOrderExt = opOrderExtService.getByOrderId(orderId);
|
|
|
|
|
}
|
|
|
|
|
List<Integer> historySkuIds = opOrderChildService.getHistorySkuIdsByOrderId(orderId);
|
|
|
|
|
List<Integer> purchaseSkuIds = purchaseOrderItemService.getSkuIdsByOrderId(orderId);
|
|
|
|
|
List<Integer> noPurchaseSkuIds = historySkuIds.stream().filter(i -> !purchaseSkuIds.contains(i)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
Integer filterPurchaseStatus = null;
|
|
|
|
|
if (purchaseSkuIds.isEmpty()) {
|
|
|
|
|
filterPurchaseStatus = 0;
|
|
|
|
|
} else if (!noPurchaseSkuIds.isEmpty() && opOrderExt.getFilterPurchaseStatus() != 3) {
|
|
|
|
|
filterPurchaseStatus = 1;
|
|
|
|
|
} else if (noPurchaseSkuIds.isEmpty()) {
|
|
|
|
|
filterPurchaseStatus = 2;
|
|
|
|
|
}
|
|
|
|
|
if (filterPurchaseStatus == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
opOrderExt.setFilterPurchaseStatus(filterPurchaseStatus);
|
|
|
|
|
opOrderExt.setGmtModified(new Date());
|
|
|
|
|
opOrderExtService.updateByPrimaryKey(opOrderExt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateOpOrderDsFilterStatus(String orderId, String purchasePlatform) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
private void savePurchaseOrderInfo(DsPurchaseOrderDto purchaseOrder, OpOrder opOrder, HashMap<Integer, OpOrderChild> skuIdAndOpOrderChildMap) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|