From 12144a9e22028e0604b574cda6d1ede80e2b4c40 Mon Sep 17 00:00:00 2001
From: yibo <361071264@qq.com>
Date: Mon, 18 Sep 2017 21:27:31 +0800
Subject: [PATCH] .
---
B3ClientService/B3ClientService.csproj | 1 +
B3ClientService/ConvertUtil.cs | 23 +++++
.../RpcBO/Bill/OrderDetail/SOrderDetail.cs | 6 +-
.../Rpcs/BillRpc/OrderDetailRpc.cs | 1 +
.../Rpcs/BillRpc/SecondOrderRpc.cs | 2 +
.../Tasks/UpdateLoad/UpLoadWeightBill.cs | 90 +++++++++----------
.../Tasks/UpdateLoad/UploadOrderDetail.cs | 5 +-
.../Tasks/UpdateLoad/UploadSecondOrder.cs | 1 +
8 files changed, 81 insertions(+), 48 deletions(-)
create mode 100644 B3ClientService/ConvertUtil.cs
diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index 422edbc..bda2397 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -91,6 +91,7 @@
+
diff --git a/B3ClientService/ConvertUtil.cs b/B3ClientService/ConvertUtil.cs
new file mode 100644
index 0000000..7e7f7a4
--- /dev/null
+++ b/B3ClientService/ConvertUtil.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace BWP.B3ClientService
+{
+ public static class ConvertUtil
+ {
+ public static string ESerializeDateTime(this string json)
+ {
+ return Regex.Replace(json, @"\\/Date\((\d+)\)\\/", match =>
+ {
+ DateTime dt = new DateTime(1970, 1, 1);
+ dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
+ dt = dt.ToLocalTime();
+ return dt.ToString("yyyy-MM-dd HH:mm:ss");
+ });
+ }
+ }
+}
diff --git a/B3ClientService/RpcBO/Bill/OrderDetail/SOrderDetail.cs b/B3ClientService/RpcBO/Bill/OrderDetail/SOrderDetail.cs
index 55deee6..a91b25b 100644
--- a/B3ClientService/RpcBO/Bill/OrderDetail/SOrderDetail.cs
+++ b/B3ClientService/RpcBO/Bill/OrderDetail/SOrderDetail.cs
@@ -1,4 +1,5 @@
-using System;
+using Forks.EnterpriseServices.DataForm;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -6,13 +7,14 @@ using System.Threading.Tasks;
namespace BWP.B3ClientService.RpcBO
{
+ [DFClass]
public class SOrderDetail
{
public long ID { get; set; }
public long? B3ID { get; set; }
- public long B3WeighBill_ID { get; set; }
+ public long? B3WeighBill_ID { get; set; }
public int Order { get; set; }
diff --git a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
index 54bdf4e..d590a24 100644
--- a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
@@ -191,6 +191,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
public static long Insert(string update, string insert)
{
var list = serializer.Deserialize>>(update);
+ insert = insert.ESerializeDateTime();
var entity = serializer.Deserialize(insert);
entity.Date = DateTime.Today;
entity.ModifyTime = DateTime.Now;
diff --git a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
index 3f5bbeb..2efa5a1 100644
--- a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
@@ -57,12 +57,14 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
[Rpc]
public static long InsertDetail(string json, string mainJson)
{
+ json = json.ESerializeDateTime();
var detail = serializer.Deserialize(json);
using (var session = Dmo.NewSession())
{
if (detail.SecondOrder_ID == 0)
{
+ mainJson = mainJson.ESerializeDateTime();
var entity = serializer.Deserialize(mainJson);
entity.ModifyTime = DateTime.Now;
session.Insert(entity);
diff --git a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
index 678da0e..b583d96 100644
--- a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
@@ -26,55 +26,55 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad
foreach (var item in allBill)
{
- // var bwpClient = new BWPClient(uri, item.Creator);
- //using (var context = new TransactionContext())
- //{
- // #region 删除
- // if (item.DeleteState)
- // {
- // if (item.B3ID.HasValue)
- // // bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/Delete", item.B3ID.Value);
- // context.Session.Delete(item);
- // context.Commit();
- // continue;
- // }
- // #endregion
+ var bwpClient = new BWPClient(uri, item.Creator);
+ using (var context = new TransactionContext())
+ {
+ #region 删除
+ if (item.DeleteState)
+ {
+ if (item.B3ID.HasValue)
+ bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/Delete", item.B3ID.Value);
+ context.Session.Delete(item);
+ context.Commit();
+ continue;
+ }
+ #endregion
var sync = serializer.Serialize(CreateRpcWeightBill(item));
- // var back = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync);
-
- //#region 同步完了要清理掉删除的明细(当前实体和数据库)
- //ClearDetails(item, context.Session);
-
- //#endregion
-
- // #region 反填信息
- //item.B3ID = back.ID;
- //SetBillAsSynced(item.ID, item.B3ID.Value, context.Session);
-
- //foreach (var bItem in back.DetailBack)
- //{
- // switch (bItem.Flag)
- // {
- // case "Details":
- // ExecuteSimpleDetail(bItem, context.Session);
- // break;
- // case "FarmerDetails":
- // ExecuteSimpleDetail(bItem, context.Session);
- // break;
- // case "SanctionDetails":
- // ExecuteSimpleDetail(bItem, context.Session);
- // break;
- // default:
- // break;
- // }
- //}
+ var back = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync);
+
+ #region 同步完了要清理掉删除的明细(当前实体和数据库)
+ ClearDetails(item, context.Session);
+
+ #endregion
+
+ #region 反填信息
+ item.B3ID = back.ID;
+ SetBillAsSynced(item.ID, item.B3ID.Value, context.Session);
+
+ foreach (var bItem in back.DetailBack)
+ {
+ switch (bItem.Flag)
+ {
+ case "Details":
+ ExecuteSimpleDetail(bItem, context.Session);
+ break;
+ case "FarmerDetails":
+ ExecuteSimpleDetail(bItem, context.Session);
+ break;
+ case "SanctionDetails":
+ ExecuteSimpleDetail(bItem, context.Session);
+ break;
+ default:
+ break;
+ }
+ }
//栋舍明细在B3系统不存在,所以无返回信息
- // ExecuteHouseDetial(item.ID, context.Session);
- // #endregion
+ ExecuteHouseDetial(item.ID, context.Session);
+ #endregion
- // context.Commit();
- // }
+ context.Commit();
+ }
}
}
diff --git a/B3ClientService/Tasks/UpdateLoad/UploadOrderDetail.cs b/B3ClientService/Tasks/UpdateLoad/UploadOrderDetail.cs
index fcecf61..bc407d4 100644
--- a/B3ClientService/Tasks/UpdateLoad/UploadOrderDetail.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UploadOrderDetail.cs
@@ -49,10 +49,13 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad
details.Add(detail);
}
}
+ entity.Details = details.ToArray();
+ entity.DeleteIDs = delete.ToArray();
var sync = serializer.Serialize(entity);
- var back = bwpClient.Call>>("/MainSystem/B3ButcherManage/Rpcs/ButcherOrderRpc/UpdateOrInsert", sync);
+ var stringBack = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/ButcherOrderRpc/UpdateOrInsert", sync);
+ var back = serializer.Deserialize>>(stringBack);
#region 同步完了要清理掉删除的记录
if (delete.Any())
ClearDetails(delete, context.Session);
diff --git a/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs b/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs
index 5c027e7..776e2ad 100644
--- a/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs
@@ -45,6 +45,7 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID"));
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));
+ query.Columns.Add(DQSelectColumn.Field("Creator", order));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("OrderDetail_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field(order, "B3ID")), DQCondition.EQ(main, "IsOk", true), DQCondition.EQ(main, "Sync", false)));
return query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2, x.Item3)).ToList();