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();