yibo 8 years ago
parent
commit
12144a9e22
8 changed files with 81 additions and 48 deletions
  1. +1
    -0
      B3ClientService/B3ClientService.csproj
  2. +23
    -0
      B3ClientService/ConvertUtil.cs
  3. +4
    -2
      B3ClientService/RpcBO/Bill/OrderDetail/SOrderDetail.cs
  4. +1
    -0
      B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
  5. +2
    -0
      B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
  6. +45
    -45
      B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
  7. +4
    -1
      B3ClientService/Tasks/UpdateLoad/UploadOrderDetail.cs
  8. +1
    -0
      B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs

+ 1
- 0
B3ClientService/B3ClientService.csproj View File

@ -91,6 +91,7 @@
<Compile Include="BO\SyncBO\MinEmployee.cs" />
<Compile Include="BO\SyncBO\MinWPF_User.cs" />
<Compile Include="BO\ServerHost.cs" />
<Compile Include="ConvertUtil.cs" />
<Compile Include="CTuple.cs" />
<Compile Include="RpcBO\Bill\OrderDetail\NeedOrderEntity.cs" />
<Compile Include="RpcBO\Bill\OrderDetail\RpcOrderBill.cs" />


+ 23
- 0
B3ClientService/ConvertUtil.cs View File

@ -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");
});
}
}
}

+ 4
- 2
B3ClientService/RpcBO/Bill/OrderDetail/SOrderDetail.cs View File

@ -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; }


+ 1
- 0
B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs View File

@ -191,6 +191,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
public static long Insert(string update, string insert)
{
var list = serializer.Deserialize<List<CTuple<long, int>>>(update);
insert = insert.ESerializeDateTime();
var entity = serializer.Deserialize<OrderDetail>(insert);
entity.Date = DateTime.Today;
entity.ModifyTime = DateTime.Now;


+ 2
- 0
B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs View File

@ -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<SecondOrder_Detail>(json);
using (var session = Dmo.NewSession())
{
if (detail.SecondOrder_ID == 0)
{
mainJson = mainJson.ESerializeDateTime();
var entity = serializer.Deserialize<SecondOrder>(mainJson);
entity.ModifyTime = DateTime.Now;
session.Insert(entity);


+ 45
- 45
B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs View File

@ -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<int>("/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<int>("/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<BackRpcObj>("/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<WeightBill_Detail>(bItem, context.Session);
// break;
// case "FarmerDetails":
// ExecuteSimpleDetail<WeightBill_FarmerDetail>(bItem, context.Session);
// break;
// case "SanctionDetails":
// ExecuteSimpleDetail<WeightBill_SanctionDetail>(bItem, context.Session);
// break;
// default:
// break;
// }
//}
var back = bwpClient.Call<BackRpcObj>("/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<WeightBill_Detail>(bItem, context.Session);
break;
case "FarmerDetails":
ExecuteSimpleDetail<WeightBill_FarmerDetail>(bItem, context.Session);
break;
case "SanctionDetails":
ExecuteSimpleDetail<WeightBill_SanctionDetail>(bItem, context.Session);
break;
default:
break;
}
}
//栋舍明细在B3系统不存在,所以无返回信息
// ExecuteHouseDetial(item.ID, context.Session);
// #endregion
ExecuteHouseDetial(item.ID, context.Session);
#endregion
// context.Commit();
// }
context.Commit();
}
}
}


+ 4
- 1
B3ClientService/Tasks/UpdateLoad/UploadOrderDetail.cs View File

@ -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<List<CTuple<long, long, long>>>("/MainSystem/B3ButcherManage/Rpcs/ButcherOrderRpc/UpdateOrInsert", sync);
var stringBack = bwpClient.Call<string>("/MainSystem/B3ButcherManage/Rpcs/ButcherOrderRpc/UpdateOrInsert", sync);
var back = serializer.Deserialize<List<CTuple<long, long, long>>>(stringBack);
#region 同步完了要清理掉删除的记录
if (delete.Any())
ClearDetails(delete, context.Session);


+ 1
- 0
B3ClientService/Tasks/UpdateLoad/UploadSecondOrder.cs View File

@ -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<long, int, string>().Select(x => new CTuple<long, int, string>(x.Item1, x.Item2, x.Item3)).ToList();


Loading…
Cancel
Save