506583276@qq.com 2 years ago
parent
commit
9f9a4084bc
  1. 4
      BBWYB.Client/GlobalContext.cs
  2. 26
      BBWYB.Client/Models/Enums.cs
  3. 8
      BBWYB.Client/Views/Order/OrderList.xaml
  4. 7
      BBWYB.Client/Views/WebB/WebB.xaml.cs
  5. 34
      BBWYB.Server.API/Controllers/DataRepairController.cs
  6. 18
      BBWYB.Server.API/Controllers/OrderController.cs
  7. 71
      BBWYB.Server.API/Controllers/PurchaseOrderController.cs
  8. 10
      BBWYB.Server.API/Controllers/VenderController.cs
  9. 1
      BBWYB.Server.API/Program.cs
  10. 10
      BBWYB.Server.Business/BBWYB.Server.Business.csproj
  11. 27
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  12. 62
      BBWYB.Server.Business/DingDingBusiness.cs
  13. 195
      BBWYB.Server.Business/Extensions/OrderStateExtension.cs
  14. 1400
      BBWYB.Server.Business/KuaiDi100ExpressCompany.txt
  15. 121
      BBWYB.Server.Business/KuaiDi100Manager.cs
  16. 170
      BBWYB.Server.Business/Order/OrderBusiness.cs
  17. 1409
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  18. 118
      BBWYB.Server.Business/QiKuManager.cs
  19. 26
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  20. 15
      BBWYB.Server.Business/Vender/VenderBusiness.cs
  21. 3
      BBWYB.Server.Model/Db/MDS/Shops.cs
  22. 70
      BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs
  23. 25
      BBWYB.Server.Model/Db/Order/OrderPurchaseSkuInfo.cs
  24. 84
      BBWYB.Server.Model/Db/Order/PurchaseExpressOrder.cs
  25. 2
      BBWYB.Server.Model/Dto/Request/Order/OutStockRequest.cs
  26. 8
      BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs
  27. 25
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs
  28. 2
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssociationPurchaseOrderRequest.cs
  29. 20
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseExpressOrderRequest.cs
  30. 30
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualDeliveryRequest.cs
  31. 15
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs
  32. 1
      BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs
  33. 10
      BBWYB.Server.Model/Dto/Response/Order/OrderPurchaseInfoResponse.cs
  34. 8
      BBWYB.Server.Model/Dto/Response/Order/OrderPurchaseSkuInfoResponse.cs
  35. 2
      BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
  36. 8
      BBWYB.Server.Model/Dto/Response/Order/PurchaseExpressOrderResponse.cs
  37. 5
      BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs
  38. 37
      BBWYB.Server.Model/Enums.cs
  39. 46
      SDKAdapter/ExpressCompanyNameConverter.cs
  40. 2
      SDKAdapter/PurchasePlatform/Client/Base/PP_PlatformClient.cs
  41. 24
      SDKAdapter/PurchasePlatform/Client/Impl/PP_1688Client.cs
  42. 4
      SDKAdapter/PurchasePlatform/Models/Response/Order/PP_QueryOrderLogisticsResponse.cs
  43. 5
      WebTest/GlobalContext.cs
  44. 12
      WebTest/MainWindow.xaml.cs
  45. 2
      WebTest/Models/APIModel/Shop/ShopResponse.cs
  46. 4
      WebTest/Models/MappingProfile.cs
  47. 2
      WebTest/Models/Shop/Shop.cs
  48. 877
      doc/.back_bbwyB端库/bbwyB端库-backup-202366012903.pdma.json
  49. 839
      doc/.back_bbwyB端库/bbwyB端库-backup-202366012946.pdma.json
  50. 888
      doc/.back_bbwyB端库/bbwyB端库-backup-202367000716.pdma.json
  51. 6750
      doc/bbwyB端库-backup-20230607013642.chnr.json
  52. 916
      doc/bbwyB端库.pdma.json

4
BBWYB.Client/GlobalContext.cs

@ -20,7 +20,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
BBWYBApiVersion = "10023";
BBWYBApiVersion = "10024";
}
private User user;
@ -52,7 +52,7 @@ namespace BBWYB.Client
return JsonConvert.SerializeObject(User);
}
public string GetBBWYBApiVersion()
public string GetClientApiVersion()
{
return BBWYBApiVersion;
}

26
BBWYB.Client/Models/Enums.cs

@ -81,21 +81,41 @@
= 6
}
/// <summary>
/// 订单状态
/// 订单状态
/// <para>待付款 = 0</para>
/// <para>等待采购 = 1, 部分采购 = 110</para>
/// <para>待发货 = 2, 部分发货 = 120</para>
/// <para>待收货 = 3, 部分收货 = 130</para>
/// <para>已完成 = 4</para>
/// <para>锁定 = 5</para>
/// <para>已取消 = 6</para>
/// <para>暂停 = 7</para>
/// <para>已退款 = 8</para>
/// <para>Unknow = 100</para>
/// <para>打包中 = 140</para>
/// <para>待完结 = 150</para>
/// </summary>
public enum OrderState
{
= 0,
= 1,
= 2,
= 110,
= 2,
= 120,
= 3,
= 130,
= 4,
= 5,
= 6,
= 7,
退 = 8,
= 101,
Unknow = 100,
= 140,
= 150
//待配置 = 101,
}
/// <summary>

8
BBWYB.Client/Views/Order/OrderList.xaml

@ -189,12 +189,12 @@
</c:BButton.Content>
</c:BButton>
<c:BButton Width="100"
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待出库:#8080FF:#F2F2F2}"
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待出库:White:#4A4A4A}"
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.待出库}">
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待发货:#8080FF:#F2F2F2}"
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待发货:White:#4A4A4A}"
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.待发货}">
<c:BButton.Content>
<TextBlock>
<Run Text="待出库"/>
<Run Text="待发货"/>
<!--<Run Text="{Binding WaitOutStoreCount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
Foreground="{StaticResource Text.Pink}"/>-->
</TextBlock>

7
BBWYB.Client/Views/WebB/WebB.xaml.cs

@ -52,7 +52,6 @@ namespace BBWYB.Client.Views.WebB
//w2m.wb2.Dispose();
w2m.Close();
WeakReferenceMessenger.Default.UnregisterAll(this);
}
private void WebB_Loaded(object sender, System.Windows.RoutedEventArgs e)
@ -67,15 +66,15 @@ namespace BBWYB.Client.Views.WebB
}
#if DEBUG
var url = "http://192.168.1.2:8080";
var url = "http://192.168.1.8:8080";
//var url = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "s.html");
#else
var url = "http://qtbbwy.qiyue666.com";
var url = "http://qtbbwy.qiyue666.com";
#endif
//var url = "http://qtbbwy.qiyue666.com";
w2m.CoreWebView2InitializationCompleted = (e) =>
{
w2m.wb2.CoreWebView2.AddHostObjectToScript("qtbbwybContext", this.globalContext);
w2m.wb2.CoreWebView2.AddHostObjectToScript("webContext", this.globalContext);
isNavigated = true;
w2m.wb2.CoreWebView2.Navigate(url);
};

34
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -0,0 +1,34 @@
using BBWYB.Server.Business;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers
{
public class DataRepairController : BaseApiController
{
private DataRepairBusiness dataRepairBusiness;
public DataRepairController(IHttpContextAccessor httpContextAccessor, DataRepairBusiness dataRepairBusiness) : base(httpContextAccessor)
{
this.dataRepairBusiness = dataRepairBusiness;
}
[HttpPost]
public void RepairPurchaseExpressOrder()
{
dataRepairBusiness.RepairPurchaseExpressOrder();
}
/// <summary>
/// 手动订阅快递100
/// </summary>
/// <param name="waybillNo"></param>
/// <param name="targetCompanyCode"></param>
[HttpPost("{waybillNo}/{targetCompanyCode}")]
public void SubscribeKD100([FromRoute] string waybillNo, [FromRoute] string targetCompanyCode)
{
dataRepairBusiness.SubscribeKD100(waybillNo, targetCompanyCode);
}
}
}

18
BBWYB.Server.API/Controllers/OrderController.cs

@ -30,15 +30,15 @@ namespace BBWYB.Server.API.Controllers
/// <summary>
/// 出库
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void OutStock([FromBody] OutStockRequest request)
{
orderBusiness.OutStock(request);
}
///// <summary>
///// 出库
///// </summary>
///// <param name="request"></param>
//[HttpPost]
//public void OutStock([FromBody] OutStockRequest request)
//{
// orderBusiness.OutStock(request);
//}
/// <summary>
/// 取消订单

71
BBWYB.Server.API/Controllers/PurchaseOrderController.cs

@ -1,4 +1,6 @@
using BBWYB.Server.Business;
using BBWYB.Common.Models;
using BBWYB.Server.API.Filters;
using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
@ -58,6 +60,27 @@ namespace BBWYB.Server.API.Controllers
purchaseOrderBusiness.AssociatePurchaseOrder(request);
}
/// <summary>
/// 预览关联采购单 (自动匹配订单sku与采购金额) (不支持关联预览的采购平台将返回null)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public AssociationPurchaseOrderResponse PreviewAssocationPurchaseOrder([FromBody] AssocationPurchaseOrderPreviewRequest request)
{
return purchaseOrderBusiness.PreviewAssocationPurchaseOrder(request);
}
/// <summary>
/// 修改采购快递单
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void EditPurchaseExpressOrder([FromBody] EditPurchaseExpressOrderRequest request)
{
purchaseOrderBusiness.EditPurchaseExpressOrder(request);
}
/// <summary>
/// 设置历史采购单
/// </summary>
@ -73,9 +96,30 @@ namespace BBWYB.Server.API.Controllers
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void SignPurchaseOrder([FromBody]SignPurchaseOrderRequest request)
public void SignPurchaseOrder([FromBody] SignPurchaseOrderRequest request)
{
purchaseOrderBusiness.SignPurchaseOrder(request);
throw new BusinessException("SignPurchaseOrder接口已经停用");
//purchaseOrderBusiness.SignPurchaseOrder(request);
}
/// <summary>
/// 手动发货
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void ManualDelivery([FromBody] ManualDeliveryRequest request)
{
purchaseOrderBusiness.ManualDelivery(request);
}
/// <summary>
/// 手动收货
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void ManualSign([FromBody] ManualSignRequest request)
{
purchaseOrderBusiness.ManualSign(request);
}
/// <summary>
@ -89,5 +133,26 @@ namespace BBWYB.Server.API.Controllers
{
purchaseOrderBusiness.CallbackFrom1688(message);
}
[Consumes("application/x-www-form-urlencoded")]
[HttpPost]
[AllowAnonymous]
public IActionResult KuaiDi100Publish([FromForm] string sign, [FromForm] string param)
{
#region 去掉本次请求的DTO格式
var filters = ControllerContext.ActionDescriptor.FilterDescriptors;
var filterToRemove = filters.FirstOrDefault(f => f.Filter.GetType() == typeof(ResultFilter));
if (filterToRemove != null)
filters.Remove(filterToRemove);
#endregion
purchaseOrderBusiness.KuaiDi100Publish(param);
return new JsonResult(new
{
result = true,
returnCode = "200",
message = "成功"
});
}
}
}

10
BBWYB.Server.API/Controllers/VenderController.cs

@ -37,5 +37,15 @@ namespace BBWYB.Server.API.Controllers
{
return venderBusiness.GetExpressCompanyList(request);
}
/// <summary>
/// 获取快递100物流公司列表
/// </summary>
/// <returns></returns>
[HttpPost]
public IList<KuaiDi100ExpressCompany> GetKuaiDi100ExpressCompanyList([FromBody]KuaiDi100ExpressSearchRequest request)
{
return venderBusiness.GetKuaiDi100ExpressCompanyList(request);
}
}
}

1
BBWYB.Server.API/Program.cs

@ -62,6 +62,7 @@ services.BatchRegisterServices(new Assembly[] { Assembly.Load("BBWYB.Server.Busi
services.AddSingleton<OP_PlatformClientFactory>();
services.AddSingleton<PP_PlatformClientFactory>();
services.AddSingleton<ExpressCompanyNameConverter>();
services.AddSingleton<KuaiDi100Manager>();
services.AddMapper(new MappingProfiles());
services.Configure<List<ClientVersionValidationModel>>(configuration.GetSection("ApiVersionRequirements"));

10
BBWYB.Server.Business/BBWYB.Server.Business.csproj

@ -7,6 +7,16 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>
<None Remove="KuaiDi100ExpressCompany.txt" />
</ItemGroup>
<ItemGroup>
<Content Include="KuaiDi100ExpressCompany.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="FreeSql" Version="3.2.690" />
<PackageReference Include="FreeSql.Provider.MySql" Version="3.2.690" />

27
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -0,0 +1,27 @@
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model.Db;
using FreeSql;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business
{
public class DataRepairBusiness : BaseBusiness, IDenpendency
{
private KuaiDi100Manager kuaiDi100Manager;
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager) : base(fsql, nLogManager, idGenerator)
{
this.kuaiDi100Manager = kuaiDi100Manager;
}
public void RepairPurchaseExpressOrder()
{
}
public void SubscribeKD100(string waybillNo,string targetCompanyCode)
{
kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish");
}
}
}

62
BBWYB.Server.Business/DingDingBusiness.cs

@ -0,0 +1,62 @@
using BBWYB.Common.Extensions;
using BBWYB.Common.Http;
using BBWYB.Common.Models;
using System.Security.Cryptography;
using System.Text;
namespace BBWYB.Server.Business
{
public class DingDingBusiness : IDenpendency
{
private RestApiService restApiService;
public DingDingBusiness(RestApiService restApiService)
{
this.restApiService = restApiService;
}
public void SendDingDingBotMessage(string secret, string webHook, string content)
{
var timestamp = DateTime.Now.DateTimeToStamp();
var stringToSign = timestamp + "\n" + secret;
var sign = EncryptWithSHA256(stringToSign, secret);
var url = $"{webHook}&timestamp={timestamp}&sign={sign}";
var result = restApiService.SendRequest(url, string.Empty, new
{
msgtype = "text",
text = new
{
content = content
}
}, null, HttpMethod.Post);
if (result.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception($"发送钉钉机器人消息失败 {result.Content}");
}
/// <summary>
/// Base64 SHA256
/// </summary>
/// <param name="data">待加密数据</param>
/// <param name="secret">密钥</param>
/// <returns></returns>
private string EncryptWithSHA256(string data, string secret)
{
secret = secret ?? "";
// 1、string 转换成 utf-8 的byte[]
var encoding = Encoding.UTF8;
byte[] keyByte = encoding.GetBytes(secret);
byte[] dataBytes = encoding.GetBytes(data);
// 2、 HMACSHA256加密
using (var hmac256 = new HMACSHA256(keyByte))
{
byte[] hashData = hmac256.ComputeHash(dataBytes);
// 3、转换成base64
var base64Str = Convert.ToBase64String(hashData);
// 4、urlEncode编码
return System.Web.HttpUtility.UrlEncode(base64Str, Encoding.UTF8);
}
}
}
}

195
BBWYB.Server.Business/Extensions/OrderStateExtension.cs

@ -0,0 +1,195 @@

using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Business
{
public static class OrderStateExtension
{
/// <summary>
/// 计算订单状态
/// </summary>
/// <param name="order"></param>
/// <param name="orderSkuList"></param>
/// <param name="orderPurchaseInfoList"></param>
/// <returns></returns>
public static void CalculationOrderState(this Order order,
IFreeSql fsql,
IList<OrderSku> orderSkuList = null,
IList<OrderPurchaseInfo> orderPurchaseInfoList = null)
{
if (order.OrderState == Enums.OrderState. ||
order.OrderState == Enums.OrderState. ||
order.OrderState == Enums.OrderState. ||
order.OrderState == Enums.OrderState.)
return;
if (orderSkuList == null)
orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == order.Id).ToList();
if (orderPurchaseInfoList == null)
orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == order.Id && opi.IsEnabled == true).ToList();
#region 等待采购
if (orderPurchaseInfoList == null || orderPurchaseInfoList.Count() == 0)
{
order.OrderState = Enums.OrderState.;
return;
}
#endregion
#region 部分采购
foreach (var osku in orderSkuList)
{
if (!orderPurchaseInfoList.Any(opi => opi.BelongSkuIds.Contains(osku.SkuId)))
{
order.OrderState = Enums.OrderState.;
return;
}
}
#endregion
#region 待发货
if (orderPurchaseInfoList.Count() == orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.))
{
order.OrderState = Enums.OrderState.;
return;
}
#endregion
#region 部分发货
if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState. ||
opi.OrderState == Enums.PurchaseOrderState.) &&
orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState. ||
opi.OrderState == Enums.PurchaseOrderState.) < orderPurchaseInfoList.Count())
{
order.OrderState = Enums.OrderState.;
return;
}
#endregion
#region 待收货
if (orderPurchaseInfoList.Count() == orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.))
{
order.OrderState = Enums.OrderState.;
return;
}
#endregion
#region 部分收货
if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState. ||
opi.OrderState == Enums.PurchaseOrderState.) &&
orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState. ||
opi.OrderState == Enums.PurchaseOrderState.) < orderPurchaseInfoList.Count())
{
order.OrderState = Enums.OrderState.;
return;
}
#endregion
#region 打包中
if (orderPurchaseInfoList.Any(opi => opi.OrderState == Enums.PurchaseOrderState.) &&
orderPurchaseInfoList.Count(opi => opi.OrderState == Enums.PurchaseOrderState.) == orderPurchaseInfoList.Count())
{
order.OrderState = Enums.OrderState.;
return;
}
#endregion
}
/// <summary>
/// 计算采购单状态
/// </summary>
/// <param name="orderPurchaseInfo"></param>
/// <param name="fsql"></param>
/// <param name="orderPurchaseSkuList"></param>
/// <param name="purchaseExpressOrderList"></param>
public static void CalculationOrderState(this OrderPurchaseInfo orderPurchaseInfo,
IFreeSql fsql,
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = null,
IList<PurchaseExpressOrder> purchaseExpressOrderList = null)
{
/*
= 0,
= 1,
= 10,
= 11,
= 20,
= 100
*/
if (orderPurchaseInfo.OrderState == Enums.PurchaseOrderState.)
return;
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
{
if (orderPurchaseSkuList == null)
orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(ops => ops.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
}
if (purchaseExpressOrderList == null)
purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(exo => exo.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.) //支持采购sku和关联信息
{
#region 待发货
if (orderPurchaseSkuList.Count() == orderPurchaseSkuList.Count(ops => string.IsNullOrEmpty(ops.WaybillNo)))
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
#region 部分发货
if (orderPurchaseSkuList.Any(ops => string.IsNullOrEmpty(ops.WaybillNo)) &&
orderPurchaseSkuList.Count(ops => string.IsNullOrEmpty(ops.WaybillNo)) < orderPurchaseSkuList.Count())
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
}
else
{
//不支持采购sku和关联信息
#region 待发货
if (purchaseExpressOrderList.Count() == 0)
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
}
#region 待收货
if (purchaseExpressOrderList.Count(exo => exo.ExpressState == "QianShou") == 0)
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
#region 部分收货
if (purchaseExpressOrderList.Any(exo => exo.ExpressState == "QianShou") &&
purchaseExpressOrderList.Count(exo => exo.ExpressState == "QianShou") < purchaseExpressOrderList.Count())
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
#region 已签收
if (purchaseExpressOrderList.Any(exo => exo.ExpressState == "QianShou") &&
purchaseExpressOrderList.Count(exo => exo.ExpressState == "QianShou") == purchaseExpressOrderList.Count())
{
orderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
return;
}
#endregion
}
}
}

1400
BBWYB.Server.Business/KuaiDi100ExpressCompany.txt

File diff suppressed because it is too large

121
BBWYB.Server.Business/KuaiDi100Manager.cs

@ -0,0 +1,121 @@
using BBWYB.Common.Http;
using BBWYB.Common.Models;
using Newtonsoft.Json;
using SDKAdapter;
using System.Collections.Generic;
using System.Reflection;
namespace BBWYB.Server.Business
{
public class KuaiDi100Manager : IDenpendency
{
private RestApiService restApiService;
public IList<int> KuaiDi100PushStateList_ZaiTu = new List<int>() { 0, 1001, 1002, 1003 };
public IList<int> KuaiDi100PushStateList_LanShou = new List<int>() { 1, 101, 102, 103 };
public IList<int> KuaiDi100PushStateList_QianShou = new List<int>() { 3, 301, 302, 303, 304 };
public IList<int> KuaiDi100PushStateList_PaiJian = new List<int>() { 5, 501 };
private IList<KuaiDi100ExpressCompany> kuaiDi100ExpressCompanyList;
public KuaiDi100Manager(RestApiService restApiService)
{
this.restApiService = restApiService;
kuaiDi100ExpressCompanyList = new List<KuaiDi100ExpressCompany>();
var lines = File.ReadAllLines(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "KuaiDi100ExpressCompany.txt"), System.Text.Encoding.UTF8);
foreach (var line in lines)
{
var array = line.Split(',', StringSplitOptions.RemoveEmptyEntries);
if (!array[2].Contains("国内"))
continue;
kuaiDi100ExpressCompanyList.Add(new KuaiDi100ExpressCompany()
{
ExpressId = array[1],
ExpressName = array[0],
Type = array[2]
});
}
}
/// <summary>
/// 订阅快递100
/// </summary>
/// <param name="waybillno"></param>
/// <param name="kuaidi100CompanyCode"></param>
/// <param name="callbackUrl"></param>
public void SubscribeKuaiDi100(string waybillno, string kuaidi100CompanyCode, string callbackUrl)
{
if (string.IsNullOrEmpty(kuaidi100CompanyCode))
throw new Exception("缺少快递100公司编码");
var paramStr = JsonConvert.SerializeObject(new
{
company = kuaidi100CompanyCode,
number = waybillno,
key = "SdcRPzxo8802",
parameters = new
{
callbackurl = callbackUrl,
salt = Guid.NewGuid(),
resultv2 = "4"
}
});
var subscribeResult = restApiService.SendRequest("https://poll.kuaidi100.com", "poll", $"schema=json&param={paramStr}", null, HttpMethod.Post, RestApiService.ContentType_Form);
if (subscribeResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception(subscribeResult.Content);
var subscribeResponse = JsonConvert.DeserializeObject<KuaiDi100SubscribeResponse>(subscribeResult.Content);
if (!subscribeResponse.result)
throw new Exception(subscribeResponse.message);
}
/// <summary>
/// 获取物流状态 ZaiTu LanShou QianShou PaiJian Unknow
/// </summary>
/// <param name="kuaidi100State"></param>
/// <returns></returns>
public string GetExpressState(int kuaidi100State)
{
if (KuaiDi100PushStateList_ZaiTu.Contains(kuaidi100State))
return "ZaiTu";
if (KuaiDi100PushStateList_LanShou.Contains(kuaidi100State))
return "LanShou";
if (KuaiDi100PushStateList_QianShou.Contains(kuaidi100State))
return "QianShou";
if (KuaiDi100PushStateList_PaiJian.Contains(kuaidi100State))
return "PaiJian";
return "Unknow";
}
public IList<KuaiDi100ExpressCompany> GetKuaiDi100ExpressCompanyList(KuaiDi100ExpressSearchRequest request)
{
if (string.IsNullOrEmpty(request.ExpressName))
return kuaiDi100ExpressCompanyList;
else
return kuaiDi100ExpressCompanyList.Where(x => x.ExpressName.Contains(request.ExpressName)).ToList();
}
}
public class KuaiDi100SubscribeResponse
{
public bool result { get; set; }
public int returnCode { get; set; }
public string message { get; set; }
}
public class KuaiDi100ExpressCompany
{
public string ExpressId { get; set; }
public string ExpressName { get; set; }
public string Type { get; set; }
}
public class KuaiDi100ExpressSearchRequest
{
public string ExpressName { get; set; }
}
}

170
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -33,9 +33,9 @@ namespace BBWYB.Server.Business
.LeftJoin((o, ocs, oct) => o.Id == ocs.OrderId)
.LeftJoin((o, ocs, oct) => o.Id == oct.OrderId);
if (!string.IsNullOrEmpty(request.OrderId))
{
select = select.Where((o, ocs, oct) => o.Id == request.OrderId);
}
else if (!string.IsNullOrEmpty(request.OrderSn))
select = select.Where((o, ocs, oct) => o.OrderSn == request.OrderSn);
else
{
if (!string.IsNullOrEmpty(request.Sku) || !string.IsNullOrEmpty(request.SourceSku) || !string.IsNullOrEmpty(request.ProductId))
@ -53,8 +53,18 @@ namespace BBWYB.Server.Business
.Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
select = select.Where((o, ocs, oct) => childSelect.Where(opi => opi.OrderId == o.Id).Any());
}
select = select.WhereIf(request.OrderState != null, (o, ocs, oct) => o.OrderState == request.OrderState)
select = select.WhereIf(request.OrderState == Enums.OrderState. ||
request.OrderState == Enums.OrderState. ||
request.OrderState == Enums.OrderState. ||
request.OrderState == Enums.OrderState. ||
request.OrderState == Enums.OrderState.,
(o, ocs, oct) => o.OrderState == request.OrderState)
.WhereIf(request.OrderState == Enums.OrderState., (o, ocs, oct) => o.OrderState == Enums.OrderState. ||
o.OrderState == Enums.OrderState.)
.WhereIf(request.OrderState == Enums.OrderState., (o, ocs, oct) => o.OrderState == Enums.OrderState. ||
o.OrderState == Enums.OrderState.)
.WhereIf(request.OrderState == Enums.OrderState., (o, ocs, oct) => o.OrderState == Enums.OrderState. ||
o.OrderState == Enums.OrderState.)
.WhereIf(request.IsWaitConfig, (o, ocs, oct) => o.OrderState != Enums.OrderState. && o.IsPurchased == true)
.WhereIf(request.StartDate != null, (o, ocs, oct) => o.StartTime >= request.StartDate)
.WhereIf(request.EndDate != null, (o, ocs, oct) => o.StartTime <= request.EndDate)
@ -153,15 +163,17 @@ namespace BBWYB.Server.Business
#region 处理采购信息
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => orderIdList.Contains(op.OrderId) && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>();
var orderPurchaseSkuInfoList = fsql.Select<OrderPurchaseSkuInfo>().Where(o => orderIdList.Contains(o.OrderId)).ToList();
var orderPurchaseSkuInfoList = fsql.Select<OrderPurchaseSkuInfo>().Where(o => orderIdList.Contains(o.OrderId)).ToList<OrderPurchaseSkuInfoResponse>();
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(peo => orderIdList.Contains(peo.OrderId)).ToList<PurchaseExpressOrderResponse>();
foreach (var order in orderList)
{
order.OrderPurchaseInfoList = orderPurchaseInfoList.Where(op => op.OrderId == order.Id).ToList();
foreach (var purchaseOrder in order.OrderPurchaseInfoList)
foreach (var orderPurchaseInfo in order.OrderPurchaseInfoList)
{
purchaseOrder.ExpressState = orderPurchaseSkuInfoList.FirstOrDefault(x => !string.IsNullOrEmpty(x.ExpressState) &&
x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)?.ExpressState;
orderPurchaseInfo.OrderPurchaseSkuInfoList = orderPurchaseSkuInfoList.Where(opsi => opsi.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
orderPurchaseInfo.PurchaseExpressOrderList = purchaseExpressOrderList.Where(peo => peo.PurchaseOrderId == orderPurchaseInfo.PurchaseOrderId).ToList();
}
}
@ -174,73 +186,81 @@ namespace BBWYB.Server.Business
};
}
public void OutStock(OutStockRequest request)
{
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException($"订单{request.OrderId}不存在");
//if (dbOrder.OrderState != Enums.OrderState.待出库)
// throw new BusinessException($"订单{request.OrderId} 只有在待出库时才允许出库");
if (!string.IsNullOrEmpty(request.TargetExpressId))
{
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<OrderPurchaseInfo>().Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId)
.Set(opi => opi.WaybillNo, request.WayBillNo)
.Set(opi => opi.SourceExpressId, request.SourceExpressId)
.Set(opi => opi.SourceExpressName, request.SourceExpressName)
.Set(opi => opi.TargetExpressId, request.TargetExpressId)
.Set(opi => opi.TargetExpressName, request.TargetExpressName)
.ExecuteAffrows();
if (dbOrder.OrderState == Enums.OrderState.)
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, Enums.OrderState.).ExecuteAffrows();
});
}
//public void OutStock(OutStockRequest request)
//{
// var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
// if (dbOrder == null)
// throw new BusinessException($"订单{request.OrderId}不存在");
// var dbOrderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().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<OrderPurchaseInfo>().SetSource(dbOrderPurchaseInfo).ExecuteAffrows();
// fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
// });
//}
public void CancelOrder(CancelOrderRequest request, string mdsToken)
{

1409
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

File diff suppressed because it is too large

118
BBWYB.Server.Business/QiKuManager.cs

@ -0,0 +1,118 @@
using BBWYB.Common.Http;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Business
{
public class QiKuManager : IDenpendency
{
private RestApiService restApiService;
private IFreeSql fsql;
public QiKuManager(RestApiService restApiService, IFreeSql fsql)
{
this.restApiService = restApiService;
this.fsql = fsql;
}
/// <summary>
/// 通知齐库
/// <para>支持关联的采购平台以来源SKU为单位通知齐库</para>
/// <para>不支持关联的采购平台以采购单为单位通知齐库</para>
/// </summary>
/// <param name="orderPurchaseInfo"></param>
/// <param name="orderPurchaseRelationInfoList"></param>
/// <param name="orderPurchaseSkuInfoList"></param>
/// <param name="purchaseExpressOrderList"></param>
public void PublishQiKu(OrderPurchaseInfo orderPurchaseInfo,
IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList,
IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList,
IList<PurchaseExpressOrder> purchaseExpressOrderList)
{
if (orderPurchaseInfo.PurchasePlatform == Enums.Platform.)
PublishQiKuByRelation(orderPurchaseRelationInfoList, orderPurchaseSkuInfoList, purchaseExpressOrderList);
else
PublishQiKuPurchaseExpressOrder(orderPurchaseInfo, purchaseExpressOrderList);
}
private void PublishQiKuByRelation(IList<OrderPurchaseRelationInfo> orderPurchaseRelationInfoList,
IList<OrderPurchaseSkuInfo> orderPurchaseSkuInfoList,
IList<PurchaseExpressOrder> purchaseExpressOrderList)
{
try
{
var relationGroups = orderPurchaseRelationInfoList.GroupBy(opri => opri.SourceSkuId);
foreach (var relationGroup in relationGroups)
{
bool isSignAll = true;
foreach (var relation in relationGroup)
{
var purchaseSku = orderPurchaseSkuInfoList.FirstOrDefault(x => x.PurchaseSkuId == relation.PurchaseSkuId);
if (purchaseSku == null || string.IsNullOrEmpty(purchaseSku.WaybillNo))
{
isSignAll = false;
continue;
}
var purchaseExpressOrder = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == purchaseSku.WaybillNo);
if (purchaseExpressOrder == null || purchaseExpressOrder.ExpressState != "QianShou")
{
isSignAll = false;
continue;
}
}
restApiService.SendRequest("http://qiku.qiyue666.com",
"/Api/PackPurchaseTask/UpdateAvailabilityState",
new
{
availability = isSignAll ? 0 : 1,
orderId = relationGroup.FirstOrDefault().OrderId,
skuId = relationGroup.Key
},
null,
HttpMethod.Post);
}
}
catch (Exception ex)
{
}
}
private void PublishQiKuPurchaseExpressOrder(OrderPurchaseInfo orderPurchaseInfo, IList<PurchaseExpressOrder> purchaseExpressOrderList)
{
try
{
if (string.IsNullOrEmpty(orderPurchaseInfo.BelongSkuIds))
return;
var orderId = purchaseExpressOrderList.FirstOrDefault().OrderId;
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == orderId).ToList();
var isSignAll = !purchaseExpressOrderList.Any(x => x.ExpressState != "QianShou");
var notifyList = orderSkuList.Where(osku => orderPurchaseInfo.BelongSkuIds.Contains(osku.SkuId)).ToList();
if (notifyList.Count() == 0)
return;
foreach (var notifySku in notifyList)
{
restApiService.SendRequest("http://qiku.qiyue666.com",
"/Api/PackPurchaseTask/UpdateAvailabilityState",
new
{
availability = isSignAll ? 0 : 1,
orderId = notifySku.OrderId,
skuId = notifySku.BelongSkuId
},
null,
HttpMethod.Post);
}
}
catch
{
}
}
}
}

26
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -175,21 +175,21 @@ namespace BBWYB.Server.Business.Sync
}
else
{
var updateOrderState = false;
//var updateWaybillNo = false;
//var updateExpressName = false;
Enums.OrderState? updateOrderState = null;
var updateModifyTime = false;
var updateBuyerRemark = false;
var updateVenderRemark = false;
var updateBuyerAccount = false;
var updateOrderSn = false;
if (dbOrder.OrderState != orderState)
updateOrderState = true;
//if (dbOrder.WaybillNo != qtOrder.DeliveryResponse.WayBillNo)
// updateWaybillNo = true;
//if (dbOrder.ExpressName != qtOrder.DeliveryResponse.ExpressName)
// updateExpressName = true;
#region 订单状态脱离拳探 只处理付款和取消
if (dbOrder.OrderState == Enums.OrderState. && orderState != Enums.OrderState.)
updateOrderState = Enums.OrderState.;
if (dbOrder.OrderState != Enums.OrderState. && orderState == Enums.OrderState.)
updateOrderState = Enums.OrderState.;
#endregion
if (dbOrder.ModifyTime != qtOrder.ModifyTime)
updateModifyTime = true;
if (dbOrder.BuyerRemark != qtOrder.BuyerRemark)
@ -201,11 +201,9 @@ namespace BBWYB.Server.Business.Sync
if (dbOrder.OrderSn != qtOrder.OrderSn)
updateOrderSn = true;
if (updateOrderState || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount || updateOrderSn)
if (updateOrderState != null || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount || updateOrderSn)
{
var update = fsql.Update<Model.Db.Order>(dbOrder.Id).SetIf(updateOrderState, o => o.OrderState == orderState)
//.SetIf(updateWaybillNo, o => o.WaybillNo, qtOrder.DeliveryResponse.WayBillNo)
//.SetIf(updateExpressName, o => o.ExpressName, qtOrder.DeliveryResponse.ExpressName)
var update = fsql.Update<Model.Db.Order>(dbOrder.Id).SetIf(updateOrderState != null, o => o.OrderState, orderState)
.SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime)
.SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark)
.SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark)
@ -257,7 +255,7 @@ namespace BBWYB.Server.Business.Sync
{
if (!isPurchased)
return Enums.OrderState.;
return Enums.OrderState.;
return Enums.OrderState.;
}
if (qtOrderState == "1")

15
BBWYB.Server.Business/Vender/VenderBusiness.cs

@ -1,8 +1,7 @@
using BBWY.Server.Model.Db.Mds;
using BBWYB.Common.Log;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.Mds;
using BBWYB.Server.Model.Db.MDS;
using BBWYB.Server.Model.Dto;
using SDKAdapter.OperationPlatform.Client;
@ -15,10 +14,13 @@ namespace BBWYB.Server.Business
{
private OP_PlatformClientFactory opPlatformClientFactory;
private FreeSqlMultiDBManager fsqlManager;
public VenderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager fsqlManager, OP_PlatformClientFactory opPlatformClientFactory) : base(fsql, nLogManager, idGenerator)
private KuaiDi100Manager kuaiDi100Manager;
public VenderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager fsqlManager, OP_PlatformClientFactory opPlatformClientFactory, KuaiDi100Manager kuaiDi100Manager) : base(fsql, nLogManager, idGenerator)
{
this.fsqlManager = fsqlManager;
this.opPlatformClientFactory = opPlatformClientFactory;
this.kuaiDi100Manager = kuaiDi100Manager;
}
public IList<ShopResponse> GetShopList(long? shopId = null, Enums.Platform? platform = null)
@ -82,5 +84,10 @@ namespace BBWYB.Server.Business
Platform = (SDKAdapter.AdapterEnums.PlatformType)request.Platform
});
}
public IList<KuaiDi100ExpressCompany> GetKuaiDi100ExpressCompanyList(KuaiDi100ExpressSearchRequest request)
{
return kuaiDi100Manager.GetKuaiDi100ExpressCompanyList(request);
}
}
}

3
BBWYB.Server.Model/Db/MDS/Shops.cs

@ -1,7 +1,6 @@
using FreeSql.DataAnnotations;
using System;
namespace BBWY.Server.Model.Db.Mds
namespace BBWYB.Server.Model.Db.Mds
{
[Table(Name = "shops", DisableSyncStructure = true)]

70
BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs

@ -56,35 +56,35 @@ namespace BBWYB.Server.Model.Db
/// </summary>
public long? ShopId { get; set; }
/// <summary>
/// 우뒵데뵀
/// </summary>
[Column(StringLength = 100)]
public string WaybillNo { get; set; }
/// <summary>
/// 覩迦우뒵무鱇츰냔
/// </summary>
[Column(StringLength = 100)]
public string SourceExpressName { get; set; }
/// <summary>
/// 覩迦우뒵무鱇Id
/// </summary>
[Column(StringLength = 100)]
public string SourceExpressId { get; set; }
/// <summary>
/// 커깃우뒵무鱇츰냔
/// </summary>
[Column(StringLength = 100)]
public string TargetExpressName { get; set; }
/// <summary>
/// 커깃우뒵무鱇Id
/// </summary>
[Column(StringLength = 100)]
public string TargetExpressId { get; set; }
///// <summary>
///// 우뒵데뵀
///// </summary>
//[Column(StringLength = 100)]
//public string WaybillNo { get; set; }
///// <summary>
///// 覩迦우뒵무鱇츰냔
///// </summary>
//[Column(StringLength = 100)]
//public string SourceExpressName { get; set; }
///// <summary>
///// 覩迦우뒵무鱇Id
///// </summary>
//[Column(StringLength = 100)]
//public string SourceExpressId { get; set; }
///// <summary>
///// 커깃우뒵무鱇츰냔
///// </summary>
//[Column(StringLength = 100)]
//public string TargetExpressName { get; set; }
///// <summary>
///// 커깃우뒵무鱇Id
///// </summary>
//[Column(StringLength = 100)]
//public string TargetExpressId { get; set; }
/// <summary>
/// 백橄땐데Sku
@ -101,11 +101,17 @@ namespace BBWYB.Server.Model.Db
[Column(StringLength = 500)]
public string Remark { get; set; }
///// <summary>
///// 角뤠푯澗
///// </summary>
//[Column(DbType = "bit")]
//public bool? IsSign { get; set; } = false;
/// <summary>
/// 角뤠푯澗
/// 꽃뭔데榴檄
/// </summary>
[Column(DbType = "bit")]
public bool? IsSign { get; set; } = false;
[Column(MapType = typeof(int?))]
public Enums.PurchaseOrderState? OrderState { get; set; }
}
}

25
BBWYB.Server.Model/Db/Order/OrderPurchaseSkuInfo.cs

@ -16,17 +16,17 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 物流变更时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? ExpressChangeTime { get; set; }
///// <summary>
///// 物流变更时间
///// </summary>
//[Column(DbType = "datetime")]
//public DateTime? ExpressChangeTime { get; set; }
/// <summary>
/// 物流状态
/// </summary>
[Column(StringLength = 100)]
public string ExpressState { get; set; }
///// <summary>
///// 物流状态
///// </summary>
//[Column(StringLength = 100)]
//public string ExpressState { get; set; }
/// <summary>
/// 店铺订单Id
@ -57,6 +57,11 @@ namespace BBWYB.Server.Model.Db
/// </summary>
public long? ShopId { get; set; }
/// <summary>
/// 快递单
/// </summary>
[Column(StringLength = 100)]
public string WaybillNo { get; set; }
}
}

84
BBWYB.Server.Model/Db/Order/PurchaseExpressOrder.cs

@ -0,0 +1,84 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 采购快递单表
/// </summary>
[Table(Name = "purchaseexpressorder", DisableSyncStructure = true)]
public partial class PurchaseExpressOrder
{
/// <summary>
/// 快递单号
/// </summary>
[Column(StringLength = 100, IsPrimary = true, IsNullable = false)]
public string WaybillNo { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 变更时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? ExpressChangedTime { get; set; }
/// <summary>
/// 物流内容
/// </summary>
[Column(StringLength = 2000)]
public string ExpressContent { get; set; }
/// <summary>
/// 物流状态 (ZaiTu,LanShou,QianShou,PaiJian,Unknow)
/// </summary>
[Column(StringLength = 100)]
public string ExpressState { get; set; }
[Column(StringLength = 100)]
public string OrderId { get; set; }
[Column(StringLength = 100)]
public string PurchaseOrderId { get; set; }
[Column(StringLength = 100)]
public long ShopId { get; set; }
/// <summary>
/// 原快递公司Id
/// </summary>
[Column(StringLength = 100)]
public string SourceExpressId { get; set; }
/// <summary>
/// 原快递公司名称
/// </summary>
[Column(StringLength = 100)]
public string SourceExpressName { get; set; }
/// <summary>
/// 目标快递公司Id(kuaidi100)
/// </summary>
[Column(StringLength = 100)]
public string TargetExpressId { get; set; }
/// <summary>
/// 目标快递公司名称(kuaidi100)
/// </summary>
[Column(StringLength = 100)]
public string TargetExpressName { get; set; }
/// <summary>
/// 是否订阅快递100
/// </summary>
[Column(DbType = "bit")]
public bool IsSubscribeKD100 { get; set; } = false;
}
}

2
BBWYB.Server.Model/Dto/Request/Order/OutStockRequest.cs

@ -1,6 +1,6 @@
namespace BBWYB.Server.Model.Dto
{
public class OutStockRequest : PlatformRequest
public class OutStockRequest
{
/// <summary>
/// 订单Id

8
BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs

@ -2,10 +2,16 @@
{
public class QueryOrderRequest
{
/// 当订单号有值时会忽略其余所有条件
/// <summary>
/// 订单号,有值时会忽略其余所有条件,OrderId与OrderSn同时有值,优先OrderId
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 订单Sn号,有值时会忽略其余所有条件,OrderId与OrderSn同时有值,优先OrderId
/// </summary>
public string OrderSn { get; set; }
/// <summary>
/// 店铺Id
/// </summary>

25
BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssocationPurchaseOrderPreviewRequest.cs

@ -0,0 +1,25 @@
namespace BBWYB.Server.Model.Dto
{
/// <summary>
/// 预览关联订单信息请求
/// </summary>
public class AssocationPurchaseOrderPreviewRequest
{
/// <summary>
/// 订单Id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
/// <summary>
/// 采购账户
/// </summary>
public PurchaseAccountRequest PurchaseAccount { get; set; }
public Enums.Platform PurchasePlatform { get; set; }
}
}

2
BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssociationPurchaseOrderRequest.cs

@ -35,7 +35,7 @@
public string PurchaserName { get; set; }
/// <summary>
/// 采购金额
/// 采购金额(货款)
/// </summary>
public decimal PurchaseAmount { get; set; }

20
BBWYB.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseExpressOrderRequest.cs

@ -0,0 +1,20 @@
namespace BBWYB.Server.Model.Dto
{
/// <summary>
/// 修改快递单号
/// </summary>
public class EditPurchaseExpressOrderRequest
{
public string OrderId { get; set; }
public string PurchaseOrderId { get; set; }
public string OldWaybillNo { get; set; }
public string NewWaybillNo { get; set; }
public string NewExpressId { get; set;}
public string NewExpressName { get; set; }
}
}

30
BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualDeliveryRequest.cs

@ -0,0 +1,30 @@
namespace BBWYB.Server.Model.Dto
{
public class ManualDeliveryRequest
{
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
/// <summary>
/// 快递公司Id
/// </summary>
public string ExpressId { get; set; }
/// <summary>
/// 快递公司名称
/// </summary>
public string ExpressName { get; set; }
/// <summary>
/// 快递单号
/// </summary>
public string WaybillNo { get; set; }
/// <summary>
/// 订单SkuId (OrderSku对象的SkuId)
/// </summary>
public string SkuId { get; set; }
}
}

15
BBWYB.Server.Model/Dto/Request/PurchaseOrder/ManualSignRequest.cs

@ -0,0 +1,15 @@
namespace BBWYB.Server.Model.Dto
{
public class ManualSignRequest
{
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
/// <summary>
/// 订单SkuId (OrderSku对象的SkuId)
/// </summary>
public string SkuId { get; set; }
}
}

1
BBWYB.Server.Model/Dto/Response/Order/OrderCostResponse.cs

@ -1,4 +1,3 @@
using BBWY.Server.Model.Db;
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Model.Dto

10
BBWYB.Server.Model/Dto/Response/Order/OrderPurchaseInfoResponse.cs

@ -5,9 +5,13 @@ namespace BBWYB.Server.Model.Dto
public class OrderPurchaseInfoResponse : OrderPurchaseInfo
{
/// <summary>
/// 物流状态
/// <para>1688物流状态: 发货(CONSIGN)、揽收(ACCEPT)、运输(TRANSPORT)、派送(DELIVERING)、签收(SIGN)</para>
/// 采购sku列表
/// </summary>
public string ExpressState { get; set; }
public IList<OrderPurchaseSkuInfoResponse> OrderPurchaseSkuInfoList { get; set; }
/// <summary>
/// 快递单列表
/// </summary>
public IList<PurchaseExpressOrderResponse> PurchaseExpressOrderList { get; set; }
}
}

8
BBWYB.Server.Model/Dto/Response/Order/OrderPurchaseSkuInfoResponse.cs

@ -0,0 +1,8 @@
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Model.Dto
{
public class OrderPurchaseSkuInfoResponse: OrderPurchaseSkuInfo
{
}
}

2
BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs

@ -132,7 +132,7 @@
public OrderCostResponse OrderCost { get; set; }
/// <summary>
/// 订单采购信息
/// 采购单列表
/// </summary>
public IList<OrderPurchaseInfoResponse> OrderPurchaseInfoList { get; set; }

8
BBWYB.Server.Model/Dto/Response/Order/PurchaseExpressOrderResponse.cs

@ -0,0 +1,8 @@
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Model.Dto
{
public class PurchaseExpressOrderResponse: PurchaseExpressOrder
{
}
}

5
BBWYB.Server.Model/Dto/Response/PurchaseOrder/AssociationPurchaseOrderResponse.cs

@ -7,6 +7,11 @@
AssocationOrderCostDetailList = new List<AssocationOrderCostDetailResponse>();
}
public AssociationPurchaseOrderResponse(List<AssocationOrderCostDetailResponse> assocationOrderCostDetailList)
{
AssocationOrderCostDetailList = assocationOrderCostDetailList;
}
/// <summary>
/// 采购单号
/// </summary>

37
BBWYB.Server.Model/Enums.cs

@ -72,23 +72,54 @@
}
/// <summary>
/// 订单状态 待付款 = 0,等待采购 = 1,待出库 = 2,待收货 = 3,已完成 = 4,锁定 = 5,已取消 = 6,暂停 = 7,已退款 = 8,Unknow = 100
/// 订单状态
/// <para>待付款 = 0</para>
/// <para>等待采购 = 1, 部分采购 = 110</para>
/// <para>待发货 = 2, 部分发货 = 120</para>
/// <para>待收货 = 3, 部分收货 = 130</para>
/// <para>已完成 = 4</para>
/// <para>锁定 = 5</para>
/// <para>已取消 = 6</para>
/// <para>暂停 = 7</para>
/// <para>已退款 = 8</para>
/// <para>Unknow = 100</para>
/// <para>打包中 = 140</para>
/// <para>待完结 = 150</para>
/// </summary>
public enum OrderState
{
= 0,
= 1,
= 2,
= 110,
= 2,
= 120,
= 3,
= 130,
= 4,
= 5,
= 6,
= 7,
退 = 8,
Unknow = 100
Unknow = 100,
= 140,
= 150
//待配置 = 101,
}
/// <summary>
/// 采购单状态 待发货 = 0, 部分发货=1, 待收货 = 10, 部分收货=11, 已签收 = 20, 已取消 = 100
/// </summary>
public enum PurchaseOrderState
{
= 0,
= 1,
= 10,
= 11,
= 20,
= 100
}
/// <summary>
/// 刷单类型
/// </summary>

46
SDKAdapter/ExpressCompanyNameConverter.cs

@ -86,6 +86,44 @@ namespace SDKAdapter
new LogisticsCompanyRelationship(){SourceName="极兔快递(原百世快递)",TargetName="极兔速递"},
new LogisticsCompanyRelationship(){SourceName="极兔速递-原百世快递",TargetName="极兔速递"}
});
converterDictionary.Add("1688_kuaidi100", new List<LogisticsCompanyRelationship>()
{
new LogisticsCompanyRelationship(){SourceName="中通快递(ZTO)",TargetName="中通快递",TargetCode="zhongtong"},
new LogisticsCompanyRelationship(){SourceName="中通快运",TargetName="中通快运",TargetCode="zhongtongkuaiyun"},
new LogisticsCompanyRelationship(){SourceName="圆通速递(YTO)",TargetName="圆通速递",TargetCode="yuantong"},
new LogisticsCompanyRelationship(){SourceName="圆通速递",TargetName="圆通速递",TargetCode="yuantong"},
new LogisticsCompanyRelationship(){SourceName="圆通",TargetName="圆通速递",TargetCode="yuantong"},
new LogisticsCompanyRelationship(){SourceName="邮政国内小包",TargetName="邮政快递包裹",TargetCode="youzhengguonei"},
new LogisticsCompanyRelationship(){SourceName="韵达快递",TargetName="韵达快递",TargetCode="yunda"},
new LogisticsCompanyRelationship(){SourceName="韵达快运",TargetName="韵达快运",TargetCode="yundakuaiyun"},
new LogisticsCompanyRelationship(){SourceName="申通快递(STO)",TargetName="申通快递",TargetCode="shentong"},
new LogisticsCompanyRelationship(){SourceName="申通",TargetName="申通快递",TargetCode="shentong"},
new LogisticsCompanyRelationship(){SourceName="申通快递",TargetName="申通快递",TargetCode="shentong"},
new LogisticsCompanyRelationship(){SourceName="顺丰速运",TargetName="顺丰快递",TargetCode="shunfeng"},
new LogisticsCompanyRelationship(){SourceName="顺丰快运",TargetName="顺丰快运",TargetCode="shunfengkuaiyun"},
new LogisticsCompanyRelationship(){SourceName="百世快递",TargetName="百世快递",TargetCode="huitongkuaidi"},
new LogisticsCompanyRelationship(){SourceName="百世物流",TargetName="百世快运",TargetCode="baishiwuliu"},
new LogisticsCompanyRelationship(){SourceName="德邦",TargetName="德邦物流",TargetCode="debangwuliu"},
new LogisticsCompanyRelationship(){SourceName="德邦快递",TargetName="德邦快递",TargetCode="debangkuaidi"},
new LogisticsCompanyRelationship(){SourceName="EMS",TargetName="EMS",TargetCode="ems"},
new LogisticsCompanyRelationship(){SourceName="极兔速递",TargetName="极兔速递",TargetCode="jtexpress"},
new LogisticsCompanyRelationship(){SourceName="极兔快递(原百世快递)",TargetName="极兔速递",TargetCode="jtexpress"},
new LogisticsCompanyRelationship(){SourceName="极兔速递-原百世快递",TargetName="极兔速递",TargetCode="jtexpress"},
new LogisticsCompanyRelationship(){SourceName="安能物流",TargetName="安能物流",TargetCode="annengwuliu"},
new LogisticsCompanyRelationship(){SourceName="德坤物流",TargetName="德坤物流",TargetCode="dekuncn"},
new LogisticsCompanyRelationship(){SourceName="壹米滴答",TargetName="壹米滴答",TargetCode="yimidida"},
new LogisticsCompanyRelationship(){SourceName="壹米滴答快运",TargetName="壹米滴答",TargetCode="yimidida"},
new LogisticsCompanyRelationship(){SourceName="优速快递",TargetName="优速快递",TargetCode="youshuwuliu"},
new LogisticsCompanyRelationship(){SourceName="京广速递",TargetName="京广速递",TargetCode="jinguangsudikuaijian"},
new LogisticsCompanyRelationship(){SourceName="丰网速运",TargetName="丰网速运",TargetCode="fengwang"},
new LogisticsCompanyRelationship(){SourceName="顺心捷达",TargetName="顺心捷达",TargetCode="sxjdfreight"},
new LogisticsCompanyRelationship(){SourceName="快捷快递",TargetName="快捷速递",TargetCode="kuaijiesudi"},
new LogisticsCompanyRelationship(){SourceName="优速",TargetName="优速物流",TargetCode="youshuwuliu"},
new LogisticsCompanyRelationship(){SourceName="优速物流",TargetName="优速物流",TargetCode="youshuwuliu"},
new LogisticsCompanyRelationship(){SourceName="加运美速递",TargetName="加运美",TargetCode="jiayunmeiwuliu"},
new LogisticsCompanyRelationship(){SourceName="加运美",TargetName="加运美",TargetCode="jiayunmeiwuliu"}
});
}
/// <summary>
@ -127,6 +165,14 @@ namespace SDKAdapter
}
return expressCompany;
}
public LogisticsCompanyRelationship ConverterToKuaiDi100Company(string sourceName)
{
var key = "1688_kuaidi100";
if (!converterDictionary.TryGetValue(key, out IList<LogisticsCompanyRelationship> companyRelationShips))
return null;
return companyRelationShips.FirstOrDefault(l => l.SourceName == sourceName);
}
}
public class LogisticsCompanyRelationship

2
SDKAdapter/PurchasePlatform/Client/Base/PP_PlatformClient.cs

@ -53,7 +53,7 @@ namespace SDKAdapter.PurchasePlatform.Client
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public virtual PP_QueryOrderLogisticsResponse QueryOrderLogistics(PP_QueryOrderLogisticsRequest request)
public virtual IList<PP_QueryOrderLogisticsResponse> QueryOrderLogistics(PP_QueryOrderLogisticsRequest request)
{
throw new NotImplementedException();
}

24
SDKAdapter/PurchasePlatform/Client/Impl/PP_1688Client.cs

@ -227,7 +227,7 @@ namespace SDKAdapter.PurchasePlatform.Client
_request.AccessToken = request.AppToken;
var result = client.NewRequest(_request, reqPolicy);
if (result.Value<bool>("success") != true)
throw new Exception(result.Value<string>("errorMessage"));
throw new BusinessException(result.Value<string>("errorMessage"));
return new PP_QueryOrderDetailResponse()
@ -251,7 +251,7 @@ namespace SDKAdapter.PurchasePlatform.Client
};
}
public override PP_QueryOrderLogisticsResponse QueryOrderLogistics(PP_QueryOrderLogisticsRequest request)
public override IList<PP_QueryOrderLogisticsResponse> QueryOrderLogistics(PP_QueryOrderLogisticsRequest request)
{
var client = GetSyncAPIClient(request.AppKey, request.AppSecret);
RequestPolicy reqPolicy = new RequestPolicy();
@ -278,14 +278,22 @@ namespace SDKAdapter.PurchasePlatform.Client
throw new Exception(result.Value<string>("errorMessage"));
//nLogManager.Default().Info($"GetWayBillNoByOrderId QueryOrderWayBillNoRequest {JsonConvert.SerializeObject(queryOrderWayBillNoRequest)} Result {result}");
/*
new PP_QueryOrderLogisticsResponse()
{
ExpressId = logisticsOrderJToken.Value<string>("logisticsCompanyId"),
ExpressName = logisticsOrderJToken.Value<string>("logisticsCompanyName"),
WayBillNo = logisticsOrderJToken.Value<string>("logisticsBillNo")
}
*/
var firstJToken = result["result"].FirstOrDefault();
return new PP_QueryOrderLogisticsResponse()
return result["result"].Children().Select(logisticsOrderJToken => new PP_QueryOrderLogisticsResponse()
{
ExpressId = firstJToken.Value<string>("logisticsCompanyId"),
ExpressName = firstJToken.Value<string>("logisticsCompanyName"),
WayBillNo = firstJToken.Value<string>("logisticsBillNo")
};
ExpressId = logisticsOrderJToken.Value<string>("logisticsCompanyId"),
ExpressName = logisticsOrderJToken.Value<string>("logisticsCompanyName"),
WayBillNo = logisticsOrderJToken.Value<string>("logisticsBillNo"),
OrderEntryIds = logisticsOrderJToken.Value<string>("orderEntryIds").Split(',', StringSplitOptions.RemoveEmptyEntries)
}).ToList();
}
}

4
SDKAdapter/PurchasePlatform/Models/Response/Order/PP_QueryOrderLogisticsResponse.cs

@ -7,5 +7,9 @@
public string ExpressId { get; set; }
public string ExpressName { get; set; }
public IList<string> OrderEntryIds { get; set; }
public IList<string> SkuIds { get; set; }
}
}

5
WebTest/GlobalContext.cs

@ -22,5 +22,10 @@ namespace WebTest
{
return JsonConvert.SerializeObject(User);
}
public string GetClientApiVersion()
{
return "10123";
}
}
}

12
WebTest/MainWindow.xaml.cs

@ -50,7 +50,7 @@ namespace WebTest
{
if (!CheckWebview2Runtime())
{
MessageBox.Show("缺少webview2 runtime,请下载安装之后再运行评价助手");
MessageBox.Show("缺少webview2 runtime,请下载安装之后再运行");
//下载webview2 runtime
//Task.Factory.StartNew(DownloadWebview2Runtime);
var webview2RuntimeUrl = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/238fc310-c6c1-4a3e-a806-4a7c3c17b377/MicrosoftEdgeWebView2RuntimeInstallerX64.exe";
@ -82,9 +82,12 @@ namespace WebTest
Login();
w2m.CoreWebView2InitializationCompleted = (e) =>
{
w2m.wb2.CoreWebView2.PermissionRequested += (sender, args) =>
{
if (args.PermissionKind == CoreWebView2PermissionKind.ClipboardRead)
args.State = CoreWebView2PermissionState.Allow;
};
w2m.wb2.CoreWebView2.AddHostObjectToScript("webTestContext", this.globalContext);
//isNavigated = true;
//w2m.wb2.CoreWebView2.Navigate(url);
};
w2m.Init();
@ -92,8 +95,7 @@ namespace WebTest
w2m.wb2.Margin = new Thickness(1, 0, 1, 0);
grid.Children.Add(w2m.wb2);
//if (w2m.IsInitializationCompleted && !isNavigated)
//{
// w2m.wb2.CoreWebView2.Navigate(url);

2
WebTest/Models/APIModel/Shop/ShopResponse.cs

@ -26,7 +26,7 @@ namespace WebTest.Models
public string AppToken2 { get; set; }
//public IList<PurchaseAccountResponse> PurchaseList { get; set; }
public IList<PurchaseAccountResponse> PurchaseList { get; set; }
public string ManagePwd { get; set; }

4
WebTest/Models/MappingProfile.cs

@ -11,8 +11,8 @@ namespace WebTest.Models
.ForMember(t => t.Name, opt => opt.MapFrom(f => f.UserName));
CreateMap<ShopResponse, Shop>().ForMember(t => t.VenderType, opt => opt.MapFrom(f => f.ShopType))
.ForMember(t => t.Platform, opt => opt.MapFrom(f => f.PlatformId));
//.ForMember(t => t.PurchaseAccountList, opt => opt.MapFrom(f => f.PurchaseList));
.ForMember(t => t.Platform, opt => opt.MapFrom(f => f.PlatformId))
.ForMember(t => t.PurchaseAccountList, opt => opt.MapFrom(f => f.PurchaseList));
CreateMap<PurchaseAccountResponse, PurchaseAccount>();
CreateMap<DepartmentResponse, Department>();

2
WebTest/Models/Shop/Shop.cs

@ -38,7 +38,7 @@ namespace WebTest
public string ShopName { get => shopName; set { Set(ref shopName, value); } }
//public IList<PurchaseAccount> PurchaseAccountList { get; set; }
public IList<PurchaseAccount> PurchaseAccountList { get; set; }
public string ManagePwd { get; set; }
/// <summary>

877
doc/.back_bbwyB端库/bbwyB端库-backup-2023517215051.pdma.json → doc/.back_bbwyB端库/bbwyB端库-backup-202366012903.pdma.json

File diff suppressed because it is too large

839
doc/.back_bbwyB端库/bbwyB端库-backup-2023517230151.pdma.json → doc/.back_bbwyB端库/bbwyB端库-backup-202366012946.pdma.json

@ -4,7 +4,7 @@
"avatar": "",
"version": "4.5.1",
"createdTime": "2023-5-12 20:56:05",
"updatedTime": "2023-5-17 21:50:51",
"updatedTime": "2023-6-6 01:29:03",
"dbConns": [],
"profile": {
"default": {
@ -2961,6 +2961,23 @@
"id": "8C3AE7B5-1456-40D2-B7F8-A0040DE2B6D3",
"extProps": {}
},
{
"defKey": "PurchaserId",
"defName": "",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "",
"id": "6BA0DD86-8AC3-4B2F-80EF-3FA9D8082D53"
},
{
"defKey": "PurchaserName",
"defName": "",
@ -3118,116 +3135,12 @@
"extProps": {}
},
{
"defKey": "WaybillNo",
"defName": "",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "0C34D400-F397-427C-87B0-AFECF916E612",
"extProps": {}
},
{
"defKey": "SourceExpressName",
"defName": "",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "2FA383BC-182B-435F-985D-6BEA9D63233D",
"extProps": {}
},
{
"defKey": "SourceExpressId",
"defName": "",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "9568B26B-0575-4F00-B77A-E565C33C093D",
"extProps": {}
},
{
"defKey": "TargetExpressName",
"defName": "",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "4173F07C-FE4D-428D-89EE-237685C1CC11",
"extProps": {}
},
{
"defKey": "TargetExpressId",
"defKey": "CreateTime",
"defName": "",
"comment": "",
"domain": "",
"type": "VARCHAR",
"len": 100,
"domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
"type": "DATETIME",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
@ -3244,15 +3157,14 @@
"attr7": "",
"attr8": "",
"attr9": "",
"id": "A0DCE354-A64C-40D4-AA33-A00994B7E382",
"id": "D68D9A98-589F-4C60-ACB6-BF81B95B5325",
"extProps": {}
},
{
"defKey": "CreateTime",
"defName": "",
"defKey": "OrderState",
"defName": "采购单状态(待发货 = 0, 部分发货=1, 待收货 = 10, 部分收货=11, 已签收 = 20, 已取消 = 100)",
"comment": "",
"domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
"type": "DATETIME",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
@ -3261,17 +3173,9 @@
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "D68D9A98-589F-4C60-ACB6-BF81B95B5325",
"extProps": {}
"extProps": {},
"domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
"id": "A2094D2A-A910-4E4C-9AD6-E70856604538"
}
],
"indexes": [],
@ -5277,8 +5181,8 @@
"id": "3966D419-4D42-4E32-8161-B50C04FDD25C"
},
{
"defKey": "ExpressState",
"defName": "物流状态",
"defKey": "WaybillNo",
"defName": "快递单号",
"comment": "",
"type": "VARCHAR",
"len": 100,
@ -5291,24 +5195,7 @@
"refDict": "",
"extProps": {},
"domain": "",
"id": "E1E7DF2E-8F08-495E-A640-61628027163D"
},
{
"defKey": "ExpressChangeTime",
"defName": "物流变更时间",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
"id": "329B45D7-BCE9-4895-B52D-C953E95DB4B2"
"id": "B133B86C-528B-4238-A33D-277D28AA8F6A"
},
{
"defKey": "CreateTime",
@ -5328,16 +5215,7 @@
"id": "FB279AC5-DB2B-498B-9DC9-5EE05BCED570"
}
],
"correlations": [
{
"myField": "1AC7EBFF-8FCC-40C9-A17B-2BACE1030CAB",
"refEntity": "7DC43BAC-F8BC-4423-96C5-4C770CCD6214",
"refField": "36136AA8-299D-4616-8F98-7172BFB06DDB",
"myRows": "1",
"refRows": "n",
"innerType": ""
}
],
"correlations": [],
"indexes": []
},
{
@ -5567,7 +5445,7 @@
},
{
"defKey": "PurchaseSkuId",
"defName": "采购Sku",
"defName": "采购Sku(1688)",
"comment": "",
"type": "VARCHAR",
"len": 100,
@ -5666,69 +5544,487 @@
"extProps": {},
"domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
"id": "C76F8758-9EEC-4108-9F30-ECE489720FC8"
},
{
"defKey": "SourceSkuId",
"defName": "来源SkuId(JD)",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "",
"id": "96780760-1F86-404C-A2A7-94119182FBF5"
}
],
"correlations": [],
"indexes": []
}
],
"views": [],
"dicts": [],
"viewGroups": [],
"dataTypeMapping": {
"referURL": "",
"mappings": [
{
"defKey": "string",
"id": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
"defName": "字串",
"29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "VARCHAR",
"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "VARCHAR2",
"BFC87171-C74F-494A-B7C2-76B9C55FACC9": "VARCHAR",
"DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "VARCHAR",
"89504F5D-94BF-4C9E-8B2E-44F37305FED5": "VARCHAR",
"0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "VARCHAR2",
"592C7013-143D-4E7B-AF64-0D7BF1E28230": "VARCHAR",
"77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "VARCHAR",
"11D1FB71-A587-4217-89BA-611B8A1F83E0": "STRING",
"B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "TEXT",
"797A1496-D649-4261-89B4-544132EC3F36": "String",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "string",
"81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "string",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "string",
"BDF457FD-9F98-4AC3-A705-7587B00A3BAB": "String",
"56F4B55B-F0B8-4049-9E6B-50B95C1D793A": "VARCHAR",
"483F9346-C99E-4014-A1D2-A554606BD8A3": "VARCHAR"
},
{
"id": "73446503-276D-4398-8476-E340878E9998",
"env": {
"base": {
"nameSpace": "",
"codeRoot": ""
}
},
{
"defKey": "double",
"id": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
"defName": "小数",
"29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "DECIMAL",
"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "DECIMAL",
"BFC87171-C74F-494A-B7C2-76B9C55FACC9": "DECIMAL",
"DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "NUMERIC",
"89504F5D-94BF-4C9E-8B2E-44F37305FED5": "DECIMAL",
"0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "DECIMAL",
"592C7013-143D-4E7B-AF64-0D7BF1E28230": "NUMERIC",
"77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "NUMERIC",
"11D1FB71-A587-4217-89BA-611B8A1F83E0": "DOUBLE",
"B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "REAL",
"797A1496-D649-4261-89B4-544132EC3F36": "Double",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "Double",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Double",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "decimal",
"81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "double",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "*float64",
"BDF457FD-9F98-4AC3-A705-7587B00A3BAB": "f64",
"56F4B55B-F0B8-4049-9E6B-50B95C1D793A": "DECIMAL",
"483F9346-C99E-4014-A1D2-A554606BD8A3": "DECIMAL"
"defKey": "PurchaseExpressOrder",
"defName": "采购快递单表",
"comment": "",
"properties": {
"partitioned by": "(date string)",
"row format delimited": "",
"fields terminated by ','": "",
"collection items terminated by '-'": "",
"map keys terminated by ':'": "",
"store as textfile;": ""
},
{
"defKey": "int",
"id": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
"nameTemplate": "{defKey}[{defName}]",
"notes": {},
"headers": [
{
"refKey": "hideInGraph",
"hideInGraph": true
},
{
"refKey": "defKey",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "defName",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "primaryKey",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "notNull",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "autoIncrement",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "domain",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "type",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "len",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "scale",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "comment",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "refDict",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "defaultValue",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "isStandard",
"freeze": false,
"hideInGraph": false
},
{
"refKey": "uiHint",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "extProps",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr1",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr2",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr3",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr4",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr5",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr6",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr7",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr8",
"freeze": false,
"hideInGraph": true
},
{
"refKey": "attr9",
"freeze": false,
"hideInGraph": true
}
],
"fields": [
{
"defKey": "WaybillNo",
"defName": "快递单号",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": true,
"notNull": true,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"notes": {},
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "2F5F7CE6-3716-4A40-AB49-799B0E5406C5"
},
{
"defKey": "SourceExpressName",
"defName": "原快递公司名称",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"notes": {},
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "0EB0BB06-1FAA-43E3-8FC8-75F1FEB64D45"
},
{
"defKey": "SourceExpressId",
"defName": "原快递公司Id",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"notes": {},
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "2D47643E-34E7-4C06-9CB1-0452235C0C0B"
},
{
"defKey": "TargetExpressName",
"defName": "目标快递公司名称(kuaidi100)",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"notes": {},
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "A3CEEA34-BEB3-4402-B9BF-8B0B2DD72583"
},
{
"defKey": "TargetExpressId",
"defName": "目标快递公司Id(kuaidi100)",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"notes": {},
"attr1": "",
"attr2": "",
"attr3": "",
"attr4": "",
"attr5": "",
"attr6": "",
"attr7": "",
"attr8": "",
"attr9": "",
"id": "365A9F77-0CBB-4DA2-BC46-C1C7DF78EF37"
},
{
"defKey": "ExpressChangedTime",
"defName": "变更时间",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
"id": "DAFC4ABA-700B-4F87-92AD-BCED26BBC5A1"
},
{
"defKey": "ExpressState",
"defName": "物流状态",
"comment": "",
"type": "VARCHAR",
"len": 100,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "",
"id": "D560A0AC-6337-48DE-BB87-53E2F93AD6CB"
},
{
"defKey": "ExpressContent",
"defName": "物流内容",
"comment": "",
"type": "VARCHAR",
"len": 2000,
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "",
"id": "5EC575FD-393B-426D-B036-7538C53BEB45"
},
{
"defKey": "OrderId",
"defName": "",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
"id": "CAF3A8D1-D3CB-48C7-908D-27E155394414"
},
{
"defKey": "ShopId",
"defName": "",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
"id": "48E0FDF8-B79D-4FE9-85C7-4F39D557C9CD"
},
{
"defKey": "PurchaseOrderId",
"defName": "",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
"id": "0EF2B8C0-7851-45D7-8224-E2C07307AE30"
},
{
"defKey": "CreateTime",
"defName": "创建时间",
"comment": "",
"type": "",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"extProps": {},
"domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
"id": "9CB5F1D3-E8FC-4315-9F92-31BE1496C3D8"
}
],
"correlations": [],
"indexes": []
}
],
"views": [],
"dicts": [],
"viewGroups": [],
"dataTypeMapping": {
"referURL": "",
"mappings": [
{
"defKey": "string",
"id": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
"defName": "字串",
"29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "VARCHAR",
"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "VARCHAR2",
"BFC87171-C74F-494A-B7C2-76B9C55FACC9": "VARCHAR",
"DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "VARCHAR",
"89504F5D-94BF-4C9E-8B2E-44F37305FED5": "VARCHAR",
"0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "VARCHAR2",
"592C7013-143D-4E7B-AF64-0D7BF1E28230": "VARCHAR",
"77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "VARCHAR",
"11D1FB71-A587-4217-89BA-611B8A1F83E0": "STRING",
"B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "TEXT",
"797A1496-D649-4261-89B4-544132EC3F36": "String",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "String",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "String",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "string",
"81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "string",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "string",
"BDF457FD-9F98-4AC3-A705-7587B00A3BAB": "String",
"56F4B55B-F0B8-4049-9E6B-50B95C1D793A": "VARCHAR",
"483F9346-C99E-4014-A1D2-A554606BD8A3": "VARCHAR"
},
{
"defKey": "double",
"id": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
"defName": "小数",
"29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "DECIMAL",
"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "DECIMAL",
"BFC87171-C74F-494A-B7C2-76B9C55FACC9": "DECIMAL",
"DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022": "NUMERIC",
"89504F5D-94BF-4C9E-8B2E-44F37305FED5": "DECIMAL",
"0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307": "DECIMAL",
"592C7013-143D-4E7B-AF64-0D7BF1E28230": "NUMERIC",
"77BD85E5-9D0D-4096-8427-CBA306FC9C6A": "NUMERIC",
"11D1FB71-A587-4217-89BA-611B8A1F83E0": "DOUBLE",
"B363BE0B-F852-49B8-9B2E-F6D2174DEAC1": "REAL",
"797A1496-D649-4261-89B4-544132EC3F36": "Double",
"895CFD1D-4273-4D32-A2C4-CAC70200AB5B": "Double",
"A2EE7B4A-CE62-4290-B00C-B26C1BF18073": "Double",
"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30": "decimal",
"81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2": "double",
"B91D99E0-9B7C-416C-8737-B760957DAF09": "*float64",
"BDF457FD-9F98-4AC3-A705-7587B00A3BAB": "f64",
"56F4B55B-F0B8-4049-9E6B-50B95C1D793A": "DECIMAL",
"483F9346-C99E-4014-A1D2-A554606BD8A3": "DECIMAL"
},
{
"defKey": "int",
"id": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
"defName": "整数",
"29D1CE08-4C35-4D2D-AAA9-23D93305B52E": "INT",
"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542": "INT",
@ -5932,34 +6228,24 @@
"originKey": "AF1D8C00-44CE-478C-BBE6-013CF93AF22D"
},
{
"id": "34567615-fdb5-4d1d-b6ee-a8b61faa04b8",
"shape": "table",
"position": {
"x": 1690,
"y": -73.5
},
"count": 0,
"originKey": "474E5807-5650-43BD-8C5C-E16F36D58F85"
},
{
"id": "33443e42-a883-42ec-acc0-46cc1446218d",
"id": "53bec785-6ee3-497e-bfa6-0318b99147db",
"shape": "table",
"position": {
"x": 1690,
"y": 614
"x": -260,
"y": 64.5
},
"count": 0,
"originKey": "1E65E858-7177-4B30-9B39-32A6D1CB104C"
"originKey": "C52E23C2-6CC5-4404-92A5-7CCE77E8AB1E"
},
{
"id": "129cac0b-4f1e-4d05-972f-73b2c710b6e0",
"id": "9afa8d28-f5b8-4c34-8df4-b386c4dd32b9",
"shape": "table",
"position": {
"x": 1690,
"y": 388
"x": -250,
"y": 380
},
"count": 0,
"originKey": "4CDAE2F8-5F79-4A75-8F5A-27226FDD1ACE"
"originKey": "93074B87-BE55-41BF-8358-B0E84C4E249A"
},
{
"id": "c9cd6035-3abe-4d8f-8830-bc876fe240af",
@ -6079,103 +6365,104 @@
}
},
{
"id": "7771087b-7bda-4ec6-a831-c50dc06395e9",
"shape": "erdRelation",
"source": {
"cell": "b968f678-c31b-4396-b761-dd3269ba6fb8",
"port": "1AC7EBFF-8FCC-40C9-A17B-2BACE1030CAB%out"
"id": "ff369484-e2eb-4af8-9b98-6fd2d9f202f9",
"shape": "table",
"position": {
"x": 501,
"y": 587
},
"target": {
"cell": "2c258cf1-71de-432b-835a-7fe52c849443",
"port": "36136AA8-299D-4616-8F98-7172BFB06DDB%out"
"count": 0,
"originKey": "B0921F8C-064A-48FC-A028-C849BD1EAC09"
},
{
"id": "414ef58f-57e8-4362-971a-85af3ea9a44f",
"shape": "table",
"position": {
"x": 390,
"y": -90
},
"relation": "1:n",
"fillColor": "#ACDAFC",
"attrs": {
"line": {
"strokeDasharray": ""
}
}
"count": 0,
"originKey": "3A48F81A-49D5-423B-8A92-228615DCEA6F"
},
{
"id": "53bec785-6ee3-497e-bfa6-0318b99147db",
"id": "6593da18-d55c-47e3-bb4c-cf75fc56702a",
"shape": "table",
"position": {
"x": -260,
"y": 64.5
"x": 2770,
"y": 103
},
"count": 0,
"originKey": "C52E23C2-6CC5-4404-92A5-7CCE77E8AB1E"
"originKey": "03EA3614-C1F5-4909-96A0-0687EDEABD4B"
},
{
"id": "9afa8d28-f5b8-4c34-8df4-b386c4dd32b9",
"id": "34567615-fdb5-4d1d-b6ee-a8b61faa04b8",
"shape": "table",
"position": {
"x": -250,
"y": 380
"x": 2770,
"y": -53.5
},
"count": 0,
"originKey": "93074B87-BE55-41BF-8358-B0E84C4E249A"
"originKey": "474E5807-5650-43BD-8C5C-E16F36D58F85"
},
{
"id": "414ef58f-57e8-4362-971a-85af3ea9a44f",
"id": "33443e42-a883-42ec-acc0-46cc1446218d",
"shape": "table",
"position": {
"x": 390,
"y": -90
"x": 2770,
"y": 634
},
"count": 0,
"originKey": "3A48F81A-49D5-423B-8A92-228615DCEA6F"
"originKey": "1E65E858-7177-4B30-9B39-32A6D1CB104C"
},
{
"id": "6593da18-d55c-47e3-bb4c-cf75fc56702a",
"id": "129cac0b-4f1e-4d05-972f-73b2c710b6e0",
"shape": "table",
"position": {
"x": 1690,
"y": 83
"x": 2770,
"y": 408
},
"count": 0,
"originKey": "03EA3614-C1F5-4909-96A0-0687EDEABD4B"
"originKey": "4CDAE2F8-5F79-4A75-8F5A-27226FDD1ACE"
},
{
"id": "2c258cf1-71de-432b-835a-7fe52c849443",
"id": "471ac35d-30de-48a3-8743-eec20f919eba",
"shape": "table",
"position": {
"x": 1100,
"y": -90
"x": 1818,
"y": 490
},
"count": 0,
"originKey": "7DC43BAC-F8BC-4423-96C5-4C770CCD6214"
"originKey": "1ED24FEC-604E-4B36-9E51-17D572021F0C"
},
{
"id": "ff369484-e2eb-4af8-9b98-6fd2d9f202f9",
"id": "e8ee81ef-5bfc-464d-9154-1464a42dff87",
"shape": "table",
"position": {
"x": 501,
"y": 587
"x": 1262,
"y": 490
},
"count": 0,
"originKey": "B0921F8C-064A-48FC-A028-C849BD1EAC09"
"originKey": "73446503-276D-4398-8476-E340878E9998"
},
{
"id": "b968f678-c31b-4396-b761-dd3269ba6fb8",
"shape": "table",
"position": {
"x": 1100,
"y": 342
"x": 1250,
"y": 245
},
"count": 0,
"originKey": "EE319D46-61D9-47DB-80AD-AD97D460ACB4"
},
{
"id": "471ac35d-30de-48a3-8743-eec20f919eba",
"id": "2c258cf1-71de-432b-835a-7fe52c849443",
"shape": "table",
"position": {
"x": 1100,
"y": 614
"x": 1250,
"y": -100
},
"count": 0,
"originKey": "1ED24FEC-604E-4B36-9E51-17D572021F0C"
"originKey": "7DC43BAC-F8BC-4423-96C5-4C770CCD6214"
}
]
},

888
doc/.back_bbwyB端库/bbwyB端库-backup-2023517191218.pdma.json → doc/.back_bbwyB端库/bbwyB端库-backup-202367000716.pdma.json

File diff suppressed because it is too large

6750
doc/bbwyB端库-backup-20230607013642.chnr.json

File diff suppressed because one or more lines are too long

916
doc/bbwyB端库.pdma.json

File diff suppressed because it is too large
Loading…
Cancel
Save