From 7b87ebf2a972375c66ebb29bb8e4e2dcc0674538 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 4 Jul 2023 01:08:43 +0800
Subject: [PATCH] =?UTF-8?q?=E9=AA=8C=E6=94=B6=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/OrderController.cs | 14 ++-
.../Extensions/OrderStateExtension.cs | 12 +-
BBWYB.Server.Business/Order/OrderBusiness.cs | 108 +++++------------
.../PurchaseOrder/PurchaseOrderBusiness.cs | 114 +-----------------
.../Dto/Request/Order/CheckSkuRequest.cs | 15 +++
5 files changed, 76 insertions(+), 187 deletions(-)
create mode 100644 BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs
diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs
index 8491317..c0be558 100644
--- a/BBWYB.Server.API/Controllers/OrderController.cs
+++ b/BBWYB.Server.API/Controllers/OrderController.cs
@@ -23,7 +23,7 @@ namespace BBWYB.Server.API.Controllers
///
///
[HttpPost]
- public OrderListResponse GetOrderList([FromBody]QueryOrderRequest request)
+ public OrderListResponse GetOrderList([FromBody] QueryOrderRequest request)
{
return orderBusiness.GetOrderList(request);
}
@@ -34,7 +34,7 @@ namespace BBWYB.Server.API.Controllers
///
///
[HttpPost]
- public IList GetPurchaseExpressOrderList([FromBody]QueryExpressOrderRequest request)
+ public IList GetPurchaseExpressOrderList([FromBody] QueryExpressOrderRequest request)
{
return orderBusiness.GetPurchaseExpressOrderList(request);
}
@@ -93,6 +93,16 @@ namespace BBWYB.Server.API.Controllers
orderBusiness.EditOrderSkuRemark(request);
}
+ ///
+ /// 来源SKU验收
+ ///
+ ///
+ [HttpPost]
+ public void CheckSku([FromBody] CheckSkuRequest request)
+ {
+ orderBusiness.CheckSku(request);
+ }
+
///
/// 齐库推送打包费
///
diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
index 1bf9ad0..9722a24 100644
--- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
+++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
@@ -101,11 +101,19 @@ namespace BBWYB.Server.Business
}
#endregion
- #region 打包中
+ #region 待验收/待核算/已完成
if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState.已签收) &&
orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.已签收) == orderPurchaseInfoList.Count())
{
- order.OrderState = Enums.OrderState.待验收;
+ if (order.IntoStoreType == Enums.IntoStoreType.发回齐越)
+ {
+ if (orderSkuList.Any(osku => osku.IsCheck != true))
+ order.OrderState = Enums.OrderState.待验收;
+ else
+ order.OrderState = Enums.OrderState.待核算;
+ }
+ else
+ order.OrderState = Enums.OrderState.已完成;
return;
}
#endregion
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index b2ba85c..9487dd9 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -313,81 +313,7 @@ namespace BBWYB.Server.Business
return list;
}
- //public void OutStock(OutStockRequest request)
- //{
- // var dbOrder = fsql.Select(request.OrderId).ToOne();
- // if (dbOrder == null)
- // throw new BusinessException($"订单{request.OrderId}不存在");
-
- // var dbOrderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
- // var dbOrderPurchaseInfo = dbOrderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
-
- // dbOrderPurchaseInfo.WaybillNo = request.WayBillNo;
- // dbOrderPurchaseInfo.SourceExpressId = request.SourceExpressId;
- // dbOrderPurchaseInfo.SourceExpressName = request.SourceExpressName;
- // dbOrderPurchaseInfo.TargetExpressId = request.TargetExpressId;
- // dbOrderPurchaseInfo.TargetExpressName = request.TargetExpressName;
- // dbOrderPurchaseInfo.OrderState = Enums.PurchaseOrderState.待收货;
-
- // #region 订单状态
- // dbOrder.CalculationOrderState(fsql, null, dbOrderPurchaseInfoList);
- // #endregion
-
- // if (!string.IsNullOrEmpty(request.TargetExpressId))
- // {
- // #region 订阅快递100
-
- // #endregion
-
- // //try
- // //{
- // // opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform)
- // // .OutStock(new OP_OutStockRequest()
- // // {
- // // AppKey = request.AppKey,
- // // AppSecret = request.AppSecret,
- // // AppToken = request.AppToken,
- // // ExpressId = request.TargetExpressId,
- // // ExpressName = request.TargetExpressName,
- // // OrderId = request.OrderId,
- // // Platform = (AdapterEnums.PlatformType)request.Platform,
- // // WayBillNo = request.WayBillNo
- // // });
- // //}
- // //catch (Exception ex)
- // //{
- // // nLogManager.Default().Error(ex, $"OutStock Request {JsonConvert.SerializeObject(request)}");
- // //}
- // }
-
- // #region 通知C端出库
- // //通知C端
- // try
- // {
- // restApiService.SendRequest("https://bbwy.qiyue666.com",
- // "/Api/PurchaseOrder/QuanTanSendGoodsCallback",
- // new
- // {
- // OrderId = request.OrderId,
- // ExpressId = request.SourceExpressId,
- // ExpressName = request.SourceExpressName,
- // request.WayBillNo
- // },
- // null,
- // HttpMethod.Post);
- // }
- // catch (Exception ex)
- // {
-
- // }
- // #endregion
-
- // fsql.Transaction(() =>
- // {
- // fsql.Update().SetSource(dbOrderPurchaseInfo).ExecuteAffrows();
- // fsql.Update(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
- // });
- //}
+
public void CancelOrder(CancelOrderRequest request, string mdsToken)
{
@@ -516,5 +442,37 @@ namespace BBWYB.Server.Business
{
}
+
+ public void CheckSku(CheckSkuRequest request)
+ {
+ var dbOrder = fsql.Select(request.OrderId).ToOne();
+ if (dbOrder == null)
+ throw new BusinessException($"订单{request.OrderId}不存在");
+ var orderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList();
+ var orderSku = orderSkuList.FirstOrDefault(osku => osku.BelongSkuId == request.SourceSkuId);
+ if (orderSku == null)
+ throw new BusinessException($"订单{request.OrderId}的归属sku中不存在{request.SourceSkuId}");
+
+ if (orderSku.IsCheck == true)
+ throw new BusinessException("已验收,无需重复验收");
+
+
+ IUpdate updateOrder = null;
+ IUpdate updateOrderSku = null;
+
+ orderSku.IsCheck = true;
+ updateOrderSku = fsql.Update(orderSku.Id).Set(osku => osku.IsCheck, true);
+
+ var oldOrderState = dbOrder.OrderState;
+ dbOrder.CalculationOrderState(fsql, orderSkuList, null);
+ if (oldOrderState != dbOrder.OrderState)
+ updateOrder = fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState);
+
+ fsql.Transaction(() =>
+ {
+ updateOrderSku?.ExecuteAffrows();
+ updateOrder?.ExecuteAffrows();
+ });
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 74f7935..f1691b1 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -1210,7 +1210,8 @@ namespace BBWYB.Server.Business
Id = o.Id,
OrderSn = o.OrderSn,
OrderState = o.OrderState,
- ShopId = o.ShopId
+ ShopId = o.ShopId,
+ IntoStoreType = o.IntoStoreType
});
if (dbOrder == null)
throw new BusinessException("未查询到采购单的订单信息");
@@ -1591,7 +1592,8 @@ namespace BBWYB.Server.Business
Id = o.Id,
OrderSn = o.OrderSn,
OrderState = o.OrderState,
- ShopId = o.ShopId
+ ShopId = o.ShopId,
+ IntoStoreType = o.IntoStoreType
});
if (dbOrder == null)
throw new Exception("未查询到采购单的订单信息");
@@ -2195,111 +2197,6 @@ namespace BBWYB.Server.Business
}
}
- private void KuaiDi100PublishCore(string param)
- {
- JObject jobject = JObject.Parse(param);
- var waybillNo = jobject["lastResult"].Value("nu");
- try
- {
- var state = jobject["lastResult"].Value("state");
- var convertState = kuaiDi100Manager.GetExpressState(state);
- if (convertState == "Unknow")
- return;
-
- var dataArray = jobject["lastResult"]["data"].Children().Select(d => new
- {
- context = d.Value("context"),
- ftime = d.Value("ftime"),
- statusCode = d.Value("statusCode")
- }).OrderByDescending(d => d.ftime).ToList();
-
- var lastData = dataArray.FirstOrDefault();
-
- IUpdate updatePurchaseExpressOrder = null;
- IUpdate updateOrderPurchase = null;
- IUpdate updateOrder = null;
-
- #region 查询该笔快递单
- var tpeo = fsql.Select(waybillNo).ToOne();
- if (tpeo == null)
- throw new Exception("未查询到快递单");
- #endregion
-
- #region 查询采购单
- var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == tpeo.OrderId && opi.IsEnabled == true).ToList();
- var orderPurchaseInfo = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == tpeo.PurchaseOrderId);
- if (orderPurchaseInfo == null)
- throw new Exception("未查询到采购单");
- #endregion
-
- #region 查询订单/采购sku/快递单/采购关系
- var dbOrder = fsql.Select(orderPurchaseInfo.OrderId).ToOne(o => new Order
- {
- Id = o.Id,
- ShopId = o.ShopId,
- OrderState = o.OrderState
- });
- if (dbOrder == null)
- throw new Exception("未查询到订单");
-
- IList orderPurchaseSkuList = null;
- IList orderPurchaseRelationList = null;
- if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.阿里巴巴)
- {
- orderPurchaseSkuList = fsql.Select().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
- if (orderPurchaseSkuList.Count() == 0)
- throw new BusinessException("未查询到采购单sku信息");
-
- orderPurchaseRelationList = fsql.Select().Where(opri => opri.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
- if (orderPurchaseRelationList.Count() == 0)
- throw new BusinessException("未查询到采购单的关联信息");
- }
-
- var purchaseExpressOrderList = fsql.Select().Where(x => x.PurchaseOrderId == tpeo.PurchaseOrderId).ToList();
- var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(exo => exo.WaybillNo == waybillNo);
- purchaseExpressOrder.ExpressState = convertState;
- purchaseExpressOrder.ExpressChangedTime = lastData.ftime;
- purchaseExpressOrder.ExpressContent = lastData.context;
- updatePurchaseExpressOrder = fsql.Update().SetSource(purchaseExpressOrder);
-
- #endregion
-
- #region 计算采购单状态
- orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList);
- updateOrderPurchase = fsql.Update(orderPurchaseInfo.Id)
- .Set(opi => opi.OrderState, orderPurchaseInfo.OrderState);
- #endregion
-
- #region 计算订单状态
- dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
- updateOrder = fsql.Update(dbOrder.Id)
- .Set(o => o.OrderState, dbOrder.OrderState);
- #endregion
-
- #region 通知齐库打包落仓情况
- Task.Factory.StartNew(() => qiKuManager.PublishQiKu(orderPurchaseInfo, orderPurchaseRelationList, orderPurchaseSkuList, purchaseExpressOrderList),
- CancellationToken.None,
- TaskCreationOptions.LongRunning,
- taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
- #endregion
-
- #region 通知C端状态
- Task.Factory.StartNew(() => SendPurchaseOrderStateToC(dbOrder.Id, dbOrder.OrderState.Value), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
- #endregion
-
- fsql.Transaction(() =>
- {
- updatePurchaseExpressOrder?.ExecuteAffrows();
- updateOrderPurchase?.ExecuteAffrows();
- updateOrder?.ExecuteAffrows();
- });
- }
- catch (Exception ex)
- {
- nLogManager.GetLogger("快递100").Error(ex, waybillNo);
- }
- }
-
///
/// 快递单信息变更
///
@@ -2336,7 +2233,8 @@ namespace BBWYB.Server.Business
{
Id = o.Id,
ShopId = o.ShopId,
- OrderState = o.OrderState
+ OrderState = o.OrderState,
+ IntoStoreType = o.IntoStoreType
});
if (orderList.Count() == 0)
throw new Exception("未查询到任何订单");
diff --git a/BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs
new file mode 100644
index 0000000..31e00a6
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/Order/CheckSkuRequest.cs
@@ -0,0 +1,15 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class CheckSkuRequest
+ {
+ ///
+ /// 订单Id
+ ///
+ public string OrderId { get; set; }
+
+ ///
+ /// 来源SKUID (JD)
+ ///
+ public string SourceSkuId { get; set; }
+ }
+}