diff --git a/BBWYB.Server.API/Controllers/JDController.cs b/BBWYB.Server.API/Controllers/JDController.cs
new file mode 100644
index 0000000..ef06731
--- /dev/null
+++ b/BBWYB.Server.API/Controllers/JDController.cs
@@ -0,0 +1,25 @@
+using BBWYB.Server.Business.JD;
+using Microsoft.AspNetCore.Mvc;
+
+namespace BBWYB.Server.API.Controllers
+{
+
+ public class JDController : BaseApiController
+ {
+ private JDBusiness jdBusiness;
+
+ public JDController(IHttpContextAccessor httpContextAccessor, JDBusiness jdBusiness) : base(httpContextAccessor)
+ {
+ this.jdBusiness = jdBusiness;
+ }
+
+ ///
+ /// 检查入仓采购单
+ ///
+ [HttpPost]
+ public void CheckInStoreOrder()
+ {
+ jdBusiness.CheckInStoreOrder();
+ }
+ }
+}
diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
index 1834f9c..9b5c861 100644
--- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
+++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
@@ -13,18 +13,13 @@ namespace BBWYB.Server.Business
///
///
///
- /// 是否在入库单验证失败后通知钉钉
///
///
- ///
public static void CalculationOrderState(this Order order,
IFreeSql fsql,
- out bool IsNotifyDingDingWhenInStoreOrderFail,
IList orderSkuList = null,
- IList orderPurchaseInfoList = null,
- IList jdInStoreOrderDetailList = null)
+ IList orderPurchaseInfoList = null)
{
- IsNotifyDingDingWhenInStoreOrderFail = false;
if (order.OrderState == Enums.OrderState.已取消 ||
order.OrderState == Enums.OrderState.已完成 ||
order.OrderState == Enums.OrderState.待付款)
@@ -120,13 +115,15 @@ namespace BBWYB.Server.Business
}
else if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓)
{
- if (jdInStoreOrderDetailList == null || jdInStoreOrderDetailList.Count() == 0 || jdInStoreOrderDetailList.Any(x => x.storageStatus != "2"))
- {
+ if (order.OrderState != Enums.OrderState.待核算)
order.OrderState = Enums.OrderState.待验收;
- IsNotifyDingDingWhenInStoreOrderFail = true;
- }
- else
- order.OrderState = Enums.OrderState.待核算;
+ //if (jdInStoreOrderDetailList == null || jdInStoreOrderDetailList.Count() == 0 || jdInStoreOrderDetailList.Any(x => x.storageStatus != "2"))
+ //{
+ // order.OrderState = Enums.OrderState.待验收;
+ // IsNotifyDingDingWhenInStoreOrderFail = true;
+ //}
+ //else
+ // order.OrderState = Enums.OrderState.待核算;
}
return;
}
diff --git a/BBWYB.Server.Business/JD/JDBusiness.cs b/BBWYB.Server.Business/JD/JDBusiness.cs
index d00139d..5b2f1ba 100644
--- a/BBWYB.Server.Business/JD/JDBusiness.cs
+++ b/BBWYB.Server.Business/JD/JDBusiness.cs
@@ -1,8 +1,10 @@
using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
+using BBWYB.Server.Model.Db;
using JD.Dto;
using Newtonsoft.Json;
+using System.Text;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business.JD
@@ -11,14 +13,20 @@ namespace BBWYB.Server.Business.JD
{
private RestApiService restApiService;
private VenderBusiness venderBusiness;
+ private DingDingBusiness dingDingBusiness;
+ private TaskSchedulerManager taskSchedulerManager;
public JDBusiness(IFreeSql fsql,
NLogManager nLogManager,
IIdGenerator idGenerator,
RestApiService restApiService,
- VenderBusiness venderBusiness) : base(fsql, nLogManager, idGenerator)
+ VenderBusiness venderBusiness,
+ DingDingBusiness dingDingBusiness,
+ TaskSchedulerManager taskSchedulerManager) : base(fsql, nLogManager, idGenerator)
{
this.restApiService = restApiService;
this.venderBusiness = venderBusiness;
+ this.dingDingBusiness = dingDingBusiness;
+ this.taskSchedulerManager = taskSchedulerManager;
}
public ApiResponse> GetJDInStoreOrderDetailList(string sourceShopName, IList poOrderNos)
@@ -50,5 +58,143 @@ namespace BBWYB.Server.Business.JD
return new ApiResponse>() { Code = 0, Msg = ex.Message };
}
}
+
+ public void CheckInStoreOrder()
+ {
+ List orderIds = null;
+
+ try
+ {
+ var checkTaskList = fsql.Select().Where(x => x.IsChecked == false).ToList();
+ if (checkTaskList.Count() == 0)
+ return;
+ orderIds = checkTaskList.Select(x => x.OrderId).ToList();
+ var orderPurchaseInfoList = fsql.Select().Where(opi => orderIds.Contains(opi.PurchaseOrderId) && opi.IsEnabled == true).ToList();
+
+ var waitCheckInStoreOrderList = fsql.Select()
+ .InnerJoin((io, o) => io.OrderId == o.Id)
+ .Where((io, o) => orderIds.Contains(io.OrderId) && !string.IsNullOrEmpty(o.SourceShopName))
+ .ToList((io, o) => new
+ {
+ io.Id,
+ io.PurchaseOrderId,
+ io.CreateTime,
+ io.InStorePurchaseOrderId,
+ io.OrderId,
+ io.ShopId,
+ io.WaybillNo,
+ o.SourceShopName
+ });
+ var shopIds = checkTaskList.Select(x => x.ShopId.ToString()).ToList();
+ var shopList = venderBusiness.GetShopList(shopIds);
+
+ foreach (var checkTask in checkTaskList)
+ {
+ var dingdingMsg = new StringBuilder();
+ var inStoreOrderRelationList = waitCheckInStoreOrderList.Where(x => x.OrderId == checkTask.OrderId).ToList();
+ var currentPurchaseOrderList = orderPurchaseInfoList.Where(opi => opi.OrderId == checkTask.OrderId).ToList();
+ var shop = shopList.FirstOrDefault(s => s.ShopId == checkTask.ShopId.ToString());
+ if (inStoreOrderRelationList == null || inStoreOrderRelationList.Count() == 0)
+ {
+ if (currentPurchaseOrderList.Count() > 0)
+ {
+ foreach (var opi in currentPurchaseOrderList)
+ {
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine("缺少入仓采购单号");
+ dingdingMsg.AppendLine();
+ }
+ }
+ }
+ else
+ {
+ var poOrderNos = inStoreOrderRelationList.Select(i => i.InStorePurchaseOrderId).Distinct().ToList();
+ //查询京东
+ var inStoreResponse = GetJDInStoreOrderDetailList(inStoreOrderRelationList.FirstOrDefault().SourceShopName, poOrderNos);
+ if (!inStoreResponse.Success)
+ {
+ if (currentPurchaseOrderList.Count() > 0)
+ {
+ foreach (var opi in currentPurchaseOrderList)
+ {
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine($"{inStoreResponse.Msg}");
+ dingdingMsg.AppendLine();
+ }
+ }
+ }
+ else
+ {
+ foreach (var inStoreOrderRelation in inStoreOrderRelationList)
+ {
+ var jdInStore = inStoreResponse.Data.FirstOrDefault(x => x.poOrderNo == inStoreOrderRelation.InStorePurchaseOrderId);
+ if (jdInStore == null || jdInStore.storageStatus == "2")
+ continue;
+ var opi = currentPurchaseOrderList.FirstOrDefault(opi => opi.PurchaseOrderId == inStoreOrderRelation.PurchaseOrderId);
+ if (opi == null)
+ continue;
+
+ var stateText = "";
+ switch (jdInStore.storageStatus)
+ {
+ case "1":
+ stateText = "有差异待确认";
+ break;
+ case "3":
+ stateText = "待确认";
+ break;
+ case "4":
+ stateText = "有差异已确认";
+ break;
+ }
+
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}");
+ dingdingMsg.AppendLine($"入仓采购单状态:{jdInStore.storageStatus} {stateText}");
+ dingdingMsg.AppendLine();
+ }
+ }
+ }
+
+ if (dingdingMsg.Length > 0)
+ {
+ Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ nLogManager.Default().Error(ex, "CheckInStoreOrder");
+ }
+ finally
+ {
+ try
+ {
+ if (orderIds != null && orderIds.Count() > 0)
+ fsql.Update().Set(x => x.IsChecked, true).Where(x => orderIds.Contains(x.OrderId)).ExecuteAffrows();
+ }
+ catch { }
+ }
+ }
+
+ private void SendDingDing(string content)
+ {
+ try
+ {
+ dingDingBusiness.SendDingDingBotMessage("SEC5f08a3dd6813e50bf9a3b81350ec12a8086c64b9e29ef858a17f5cc7887906d7",
+ "https://oapi.dingtalk.com/robot/send?access_token=7ce472411bb8dde0c3ff503fcca9ead84d39950ee3c4c65c808dbc58981eb929",
+ content);
+ }
+ catch { }
+ }
}
}
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index f3a3ff8..dab1f9a 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -726,7 +726,7 @@ namespace BBWYB.Server.Business
updateOrderSku = fsql.Update(orderSku.Id).Set(osku => osku.IsCheck, true);
var oldOrderState = dbOrder.OrderState;
- dbOrder.CalculationOrderState(fsql, out _, orderSkuList, null);
+ dbOrder.CalculationOrderState(fsql, orderSkuList);
if (oldOrderState != dbOrder.OrderState)
updateOrder = fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState);
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 8068d69..ee612b7 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -541,7 +541,7 @@ namespace BBWYB.Server.Business
#endregion
#region 订单状态
- dbOrder.CalculationOrderState(fsql, out _, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList());
+ dbOrder.CalculationOrderState(fsql, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList());
#endregion
#region 通知C端状态
@@ -1041,7 +1041,7 @@ namespace BBWYB.Server.Business
#endregion
#region 订单状态
- dbOrder.CalculationOrderState(fsql, out _, dbOrderSkuList, dbPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList());
+ dbOrder.CalculationOrderState(fsql, dbOrderSkuList, dbPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList());
#endregion
#region 通知C端状态
@@ -1296,7 +1296,7 @@ namespace BBWYB.Server.Business
#endregion
orderPurchaseInfoList.Remove(historyPurchaseOrder);
- dbOrder.CalculationOrderState(fsql, out _, orderPurchaseInfoList: orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, orderPurchaseInfoList: orderPurchaseInfoList);
fsql.Transaction(() =>
{
@@ -1339,7 +1339,6 @@ namespace BBWYB.Server.Business
});
}
-
///
/// 修改采购快递单
///
@@ -1489,7 +1488,7 @@ namespace BBWYB.Server.Business
#region 计算订单状态
var oldOrderState = dbOrder.OrderState;
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
if (oldOrderState != dbOrder.OrderState)
{
updateOrder = fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState);
@@ -1704,7 +1703,7 @@ namespace BBWYB.Server.Business
#endregion
#region 计算订单状态
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
updateOrder = fsql.Update(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState);
#endregion
@@ -1913,7 +1912,7 @@ namespace BBWYB.Server.Business
#endregion
#region 计算订单状态
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
updateOrder = fsql.Update(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState);
#endregion
@@ -1965,7 +1964,6 @@ namespace BBWYB.Server.Business
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
-
/////
///// 手动收货
/////
@@ -2371,7 +2369,7 @@ namespace BBWYB.Server.Business
#endregion
#region 计算订单状态
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
updateOrder = fsql.Update(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState);
#endregion
@@ -2481,6 +2479,7 @@ namespace BBWYB.Server.Business
List> updateOrderPurchaseList = new List>();
List> updateOrderList = new List>();
List insertTimeLimitTaskList = new List();
+ List insertInStoreOrderCheckTaskList = new List();
#region 查询该笔快递单
var tpeo = fsql.Select(wayBillNo).ToOne();
@@ -2566,9 +2565,9 @@ namespace BBWYB.Server.Business
#endregion
#region 查询入库单信息
- IList inStoreOrderRelationList = null;
+ IList inStoreOrderCheckTaskList = null;
if (orderList.Any(o => o.IntoStoreType == Enums.IntoStoreType.厂商代发入仓) && state == "QianShou")
- inStoreOrderRelationList = fsql.Select().Where(i => orderIds.Contains(i.OrderId)).ToList();
+ inStoreOrderCheckTaskList = fsql.Select().Where(i => orderIds.Contains(i.OrderId)).ToList();
#endregion
#region 计算订单状态和采购单状态
@@ -2607,93 +2606,22 @@ namespace BBWYB.Server.Business
}
var oldOrderState = order.OrderState;
+ order.CalculationOrderState(fsql, currentOrderSkuList, currentPurchaseOrderList);
- if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 && state == "QianShou")
+ if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 &&
+ state == "QianShou" &&
+ order.OrderState == Enums.OrderState.待验收 &&
+ !inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
{
- #region 检查入库采购单状态
- var isNotifyDingDingWhenInOrderFail = false;
- var currentOrder_InStoreOrderRelationList = inStoreOrderRelationList.Where(i => i.OrderId == order.Id).ToList();
- ApiResponse> inStoreResponse = null;
- if (currentOrder_InStoreOrderRelationList.Count() > 0)
- {
- var poOrderNos = currentOrder_InStoreOrderRelationList.Select(i => i.InStorePurchaseOrderId).Distinct().ToList();
- //查询京东
- inStoreResponse = jdBusiness.GetJDInStoreOrderDetailList(order.SourceShopName, poOrderNos);
- }
- order.CalculationOrderState(fsql, out isNotifyDingDingWhenInOrderFail, currentOrderSkuList, currentPurchaseOrderList, inStoreResponse?.Data);
-
- if (isNotifyDingDingWhenInOrderFail && inStoreResponse != null)
+ insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask()
{
- #region 入库单查询有误,通知钉钉
- var shop = venderBusiness.GetShopList(order.ShopId).FirstOrDefault();
- var dingdingMsg = new StringBuilder();
- if (!inStoreResponse.Success)
- {
- foreach (var opi in currentPurchaseOrderList)
- {
- dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
- dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine($"{inStoreResponse.Msg}");
- dingdingMsg.AppendLine();
- }
- }
- else if (inStoreResponse.Data == null || inStoreResponse.Data.Count() == 0)
- {
- foreach (var opi in currentPurchaseOrderList)
- {
- dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
- dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine("缺少入仓采购单号");
- dingdingMsg.AppendLine();
- }
- }
- else
- {
- foreach (var inStoreOrderRelation in currentOrder_InStoreOrderRelationList)
- {
- var jdInStore = inStoreResponse.Data.FirstOrDefault(x => x.poOrderNo == inStoreOrderRelation.InStorePurchaseOrderId);
- if (jdInStore == null || jdInStore.storageStatus == "2")
- continue;
- var opi = currentPurchaseOrderList.FirstOrDefault(opi => opi.PurchaseOrderId == inStoreOrderRelation.PurchaseOrderId);
- if (opi == null)
- continue;
-
- var stateText = "";
- switch (jdInStore.storageStatus)
- {
- case "1":
- stateText = "有差异待确认";
- break;
- case "3":
- stateText = "待确认";
- break;
- case "4":
- stateText = "有差异已确认";
- break;
- }
-
- dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
- dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}");
- dingdingMsg.AppendLine($"入仓采购单状态:{jdInStore.storageStatus} {stateText}");
- dingdingMsg.AppendLine();
- }
- }
-
- Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
- #endregion
- }
- #endregion
- }
- else
- {
- order.CalculationOrderState(fsql, out _, currentOrderSkuList, currentPurchaseOrderList);
+ Id = idGenerator.NewLong(),
+ CreateTime = DateTime.Now,
+ IsChecked = false,
+ OrderId = order.Id,
+ ShopId = order.ShopId,
+ OrderSn = order.OrderSn
+ });
}
if (order.OrderState != oldOrderState)
@@ -2747,6 +2675,8 @@ namespace BBWYB.Server.Business
}
if (insertTimeLimitTaskList.Count() > 0)
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows();
+ if (insertInStoreOrderCheckTaskList.Count() > 0)
+ fsql.Insert(insertInStoreOrderCheckTaskList).ExecuteAffrows();
});
#endregion
}
diff --git a/BBWYB.Server.Business/Vender/VenderBusiness.cs b/BBWYB.Server.Business/Vender/VenderBusiness.cs
index 1f55d66..a07ca3e 100644
--- a/BBWYB.Server.Business/Vender/VenderBusiness.cs
+++ b/BBWYB.Server.Business/Vender/VenderBusiness.cs
@@ -32,6 +32,13 @@ namespace BBWYB.Server.Business
.ToList();
}
+ public IList GetShopList(List shopIds)
+ {
+ return fsqlManager.MDSfsql.Select().Where(s => !string.IsNullOrEmpty(s.ShopId) &&
+ shopIds.Contains(s.ShopId))
+ .ToList();
+ }
+
public long SaveShopSetting(ShopSettingRequest shopSettingRequest)
{
diff --git a/BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs b/BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs
new file mode 100644
index 0000000..8bde073
--- /dev/null
+++ b/BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs
@@ -0,0 +1,29 @@
+using FreeSql.DataAnnotations;
+
+namespace BBWYB.Server.Model.Db
+{
+
+ [Table(Name = "instoreorderchecktask", DisableSyncStructure = true)]
+ public partial class InStoreOrderCheckTask
+ {
+
+ [Column(IsPrimary = true)]
+ public long Id { get; set; }
+
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+
+ public bool? IsChecked { get; set; } = false;
+
+ [Column(StringLength = 50)]
+ public string OrderId { get; set; }
+
+ [Column(StringLength = 50)]
+ public string OrderSn { get; set; }
+
+ public long? ShopId { get; set; }
+
+ }
+
+}
diff --git a/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs b/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs
index 1a67e40..ecf27e7 100644
--- a/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs
+++ b/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs
@@ -7,29 +7,29 @@ namespace BBWYB.Server.Model.Db
/// 入库采购单关系表
///
[Table(Name = "instorepurchaseorderrelationinfo", DisableSyncStructure = true)]
- public partial class InStorePurchaseOrdeRrelationInfo
+ public partial class InStorePurchaseOrdeRrelationInfo
{
- [Column(IsPrimary = true)]
- public long Id { get; set; }
+ [Column(IsPrimary = true)]
+ public long Id { get; set; }
- [Column(DbType = "datetime")]
- public DateTime? CreateTime { get; set; }
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
- [Column(StringLength = 100)]
- public string InStorePurchaseOrderId { get; set; }
+ [Column(StringLength = 100)]
+ public string InStorePurchaseOrderId { get; set; }
- [Column(StringLength = 100)]
- public string OrderId { get; set; }
+ [Column(StringLength = 100)]
+ public string OrderId { get; set; }
- [Column(StringLength = 100)]
- public string PurchaseOrderId { get; set; }
+ [Column(StringLength = 100)]
+ public string PurchaseOrderId { get; set; }
- public long? ShopId { get; set; }
+ public long? ShopId { get; set; }
- [Column(StringLength = 100)]
- public string WaybillNo { get; set; }
+ [Column(StringLength = 100)]
+ public string WaybillNo { get; set; }
- }
+ }
}