diff --git a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs index b583d96..678da0e 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/UploadSecondOrder.cs b/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs index c2784db..5c027e7 100644 --- a/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs +++ b/B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs @@ -1,12 +1,16 @@ using BWP.B3ClientService.BO; +using Forks.EnterpriseServices.BusinessInterfaces; using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; +using Forks.EnterpriseServices.SqlDoms; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; +using TSingSoft.WebPluginFramework; +using TSingSoft.WebPluginFramework.BWPClients; namespace BWP.B3ClientService.Tasks.UpdateLoad { @@ -17,14 +21,41 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad var serializer = new JavaScriptSerializer(); //获取所有未上传的数据 var allBill = GetAllNeedSyncBill(); + foreach (var group in allBill.GroupBy(x => x.Item3)) + { + var bwpClient = new BWPClient(uri, group.Key); + foreach (var item in group) + { + using (var context = new TransactionContext()) + { + var sync = serializer.Serialize(new CTuple(item.Item1, item.Item2)); + bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/ButcherOrderRpc/UpdateHotFadeNumber", sync); + SetSyncd(context.Session, item.Item1); + context.Commit(); + } + } + } } - private static List> GetAllNeedSyncBill() + private static List> GetAllNeedSyncBill() { - var query = new DQueryDom(new JoinAlias(typeof(SecondOrder))); + var main = new JoinAlias(typeof(SecondOrder)); + var order = new JoinAlias(typeof(OrderDetail)); + var query = new DQueryDom(main); + 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("")); - return null; + query.Columns.Add(DQSelectColumn.Field("HotFadeNumber")); + 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(); + } + + static void SetSyncd(IDmoSession session, long orderDetailID) + { + var update = new DQUpdateDom(typeof(SecondOrder)); + update.Columns.Add(new DQUpdateColumn("Sync", true)); + update.Where.Conditions.Add(DQCondition.EQ("OrderDetail_ID", orderDetailID)); + session.ExecuteNonQuery(update); } } } diff --git a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs index 82cf524..82e9010 100644 --- a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs +++ b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs @@ -24,6 +24,7 @@ namespace BWP.B3ClientService.Tasks throw new Exception("请配置服务器地址"); UpLoadWeightBill.Execute(serverUri); UploadOrderDetail.Execute(serverUri); + UploadSecondOrder.Execute(serverUri); } public string Name