From 0b5321001e60da04290473017710c5d230f306c5 Mon Sep 17 00:00:00 2001
From: yibo <361071264@qq.com>
Date: Sun, 4 Feb 2018 19:49:13 +0800
Subject: [PATCH] =?UTF-8?q?=E6=88=90=E5=93=81=E5=85=A5=E5=BA=93=E4=B8=8A?=
=?UTF-8?q?=E4=BC=A0=EF=BC=9B=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
B3ClientService/B3ClientService.csproj | 1 +
.../TrunksIousOutInStoreRecord.cs | 15 ++-
.../TrunksIousOutInStoreRecordRpc.cs | 108 +++++-------------
.../Tasks/UpdateLoad/UploadTest.cs | 2 +-
.../UploadTrunksIousOutInStoreRecord.cs | 64 +++++++++++
5 files changed, 104 insertions(+), 86 deletions(-)
create mode 100644 B3ClientService/Tasks/UpdateLoad/UploadTrunksIousOutInStoreRecord.cs
diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index df12c72..f516619 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -177,6 +177,7 @@
+
diff --git a/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs b/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs
index 52ab2b4..715973b 100644
--- a/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs
+++ b/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs
@@ -9,7 +9,7 @@ namespace BWP.B3ClientService.BO
{
[Serializable]
[DFClass]
- public class TrunksIousOutInStoreRecord: ClientSyncBase
+ public class TrunksIousOutInStoreRecord : SyncBill
{
public string BarCode { get; set; }
public long? Goods_ID { get; set; }
@@ -28,17 +28,20 @@ namespace BWP.B3ClientService.BO
public decimal? Weight { get; set; }
- public string CarcassStatus { get; set; }// 胴体状态
-
public bool? IsSubmited { get; set; }//界面有2个状态 待提交 已提交 , 有条码有重量为已提交
- public decimal? LossWeight{ get; set; }//损耗
+ public long? WorkShop_ID { get; set; }
+
+ public long? WorkUnit_ID { get; set; }
+ public long? Store_ID { get; set; }
- public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的
+ public long? ProductBatch_ID { get; set; }
- public string Store { get; set; }
+ public string ProductBatch { get; set; }
+ public int RowVersion { get; set; }
+ public DateTime? CreateTime { get; set; }
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs b/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs
index ee0f596..fba0402 100644
--- a/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs
@@ -1,5 +1,4 @@
-
-using System;
+using System;
using System.Linq;
using BWP.B3ClientService.BO;
using BWP.B3ClientService.Utils;
@@ -11,11 +10,10 @@ using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms;
using Newtonsoft.Json;
using TSingSoft.WebPluginFramework;
+using System.Web;
namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
{
-
-
[Rpc]
public static class TrunksIousOutInStoreRecordRpc
{
@@ -25,8 +23,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord)));
query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("IsSubmited")), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
- var list = query.EExecuteDmoList("ID", "BarCode", "Goods_Name", "Number", "Weight", "LossWeight");
-
+ var list = query.EExecuteDmoList("ID", "BarCode", "Goods_Name", "Number", "Weight");
return JsonConvert.SerializeObject(list);
}
@@ -38,68 +35,45 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Range = SelectRange.Top(50);
- var list = query.EExecuteDmoList("ID", "BarCode", "Goods_Name", "Number","BeforeWeight", "Weight", "LossWeight");
+ var list = query.EExecuteDmoList("ID", "BarCode", "Goods_Name", "Number", "BeforeWeight", "Weight");
return JsonConvert.SerializeObject(list);
}
[Rpc]
- public static long SetWeight(long id,decimal weight,string biaoshi,string store)
- {
- var query = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
- query.Columns.Add(new DQUpdateColumn("Weight", weight));
- query.Columns.Add(new DQUpdateColumn("IsSubmited", true));
- if (!string.IsNullOrWhiteSpace(biaoshi))
- {
- query.Columns.Add(new DQUpdateColumn("BiaoShi", biaoshi));
- }
- if (!string.IsNullOrWhiteSpace(store))
- {
- query.Columns.Add(new DQUpdateColumn("Store", store));
- }
-// query.Columns.Add(new DQUpdateColumn("LossWeight", ));
-//todo 这里要算损耗
- query.Where.Conditions.Add(DQCondition.EQ("ID", id));
- query.EExecute();
- return id;
- }
-
- [Rpc]
- public static long Insert(string json)
+ public static long SetWeight(string json)
{
- var clientRecord = JsonConvert.DeserializeObject(json);
+ var entity = JsonConvert.DeserializeObject(json);
using (var session = Dmo.NewSession())
{
- var record = new TrunksIousOutInStoreRecord();
- DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID", "CreateTime");
- session.Insert(record);
+ var update = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
+ update.Columns.Add(new DQUpdateColumn("Creator", entity.Creator));
+ update.Columns.Add(new DQUpdateColumn("Weight", entity.Weight));
+ update.Columns.Add(new DQUpdateColumn("WorkShop_ID", entity.WorkShop_ID));
+ update.Columns.Add(new DQUpdateColumn("WorkUnit_ID", entity.WorkUnit_ID));
+ update.Columns.Add(new DQUpdateColumn("Store_ID", entity.Store_ID));
+ update.Columns.Add(new DQUpdateColumn("ProductBatch_ID", entity.ProductBatch_ID));
+ update.Columns.Add(new DQUpdateColumn("ProductBatch", entity.ProductBatch));
+ update.Columns.Add(new DQUpdateColumn("IsSubmited", true));
+ update.Columns.Add(new DQUpdateColumn("Sync", false));
+ update.Columns.Add(new DQUpdateColumn("CreateTime", DateTime.Now));
+ update.Columns.Add(new DQUpdateColumn("RowVersion", DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.Value(1))));
+ update.Where.Conditions.Add(DQCondition.EQ("ID", entity.ID));
+ session.ExecuteNonQuery(update);
session.Commit();
- return record.ID;
}
-
+ return 0;
}
[Rpc]
public static string GetFinalCode(string barCode)
{
- var netUrl=new B3ClientServiceOnLineConfig().OutNetUrl;
- barCode = barCode.Replace(netUrl+"?", "");
-
- var code = UrlUtil.GetValueByKey("code", barCode);
- if (string.IsNullOrWhiteSpace(code))
- {
- code = UrlUtil.GetValueByKey("CODE", barCode);
- }
- if (string.IsNullOrWhiteSpace(code))
- {
- code = barCode;
- }
- return code;
-
+ var uri = new Uri(barCode);
+ return HttpUtility.ParseQueryString(uri.Query)["code"];
}
[Rpc]
- public static long SimpleInsertOrUpdate(long goodsId,string goodsName,string barCode)
+ public static long SimpleInsertOrUpdate(long goodsId, string goodsName, string barCode)
{
using (var session = Dmo.NewSession())
@@ -112,23 +86,25 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
record.Goods_Name = goodsName;
record.BarCode = barCode;
record.IsSubmited = false;
+ record.ModifyTime = DateTime.Now;
session.Insert(record);
}
else
{
record.Goods_ID = goodsId;
record.Goods_Name = goodsName;
+ record.Sync = false;
+ record.RowVersion += 1;
session.Update(record);
}
session.Commit();
return record.ID;
}
-
}
- private static TrunksIousOutInStoreRecord GetExist(IDmoSession session, string barCode)
+ private static TrunksIousOutInStoreRecord GetExist(IDmoSession session, string barCode)
{
- var query=new DmoQuery(typeof(TrunksIousOutInStoreRecord));
+ var query = new DmoQuery(typeof(TrunksIousOutInStoreRecord));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
var res = session.ExecuteList(query).Cast().ToList();
if (res.Count > 0)
@@ -138,31 +114,5 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
//throw new Exception("存在多条记录,请找管理员");
return null;
}
-
- [Rpc]
- public static int Update(string json)
- {
- var clientRecord = JsonConvert.DeserializeObject(json);
- using (var session = Dmo.NewSession())
- {
- var record = session.Load(new DmoIdentity(typeof(TrunksIousOutInStoreRecord), clientRecord.Service_ID ?? 0));
- DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID", "CreateTime");
- session.Update(record);
- }
- return 1;
- }
-
- [Rpc]
- public static int Delete(long id)
- {
- var delDom = new DQDeleteDom(typeof(TrunksIousOutInStoreRecord));
- delDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
- using (var session = Dmo.NewSession())
- {
- session.Update(delDom);
- }
- return 1;
- }
-
}
}
diff --git a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
index 0a455fd..f9ea976 100644
--- a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
@@ -25,8 +25,8 @@ namespace BWP.B3ClientService.Tasks
UpLoadWeightBill.Execute(serverUri);
UploadOrderDetail.Execute(serverUri);
UploadSecondOrder.Execute(serverUri);
-
DoCheckBills.Execute(serverUri);
+ UploadTrunksIousOutInStoreRecord.Execute(serverUri);
}
public string Name
diff --git a/B3ClientService/Tasks/UpdateLoad/UploadTrunksIousOutInStoreRecord.cs b/B3ClientService/Tasks/UpdateLoad/UploadTrunksIousOutInStoreRecord.cs
new file mode 100644
index 0000000..e6f5e10
--- /dev/null
+++ b/B3ClientService/Tasks/UpdateLoad/UploadTrunksIousOutInStoreRecord.cs
@@ -0,0 +1,64 @@
+using BWP.B3ClientService.BO;
+using Forks.EnterpriseServices.BusinessInterfaces;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.SqlDoms;
+using Newtonsoft.Json;
+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
+{
+ public static class UploadTrunksIousOutInStoreRecord
+ {
+ public static void Execute(string uri)
+ {
+ //获取所有未上传的数据
+ var allBill = GetAllNeedSyncBill();
+ foreach (var group in allBill.GroupBy(x => x.Creator))
+ {
+ var bwpClient = new BWPClient(uri, group.Key);
+ foreach (var item in group)
+ {
+ using (var context = new TransactionContext())
+ {
+ var result = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/ProductInStoreRpc/InsertOrUpdate", JsonConvert.SerializeObject(item));
+ if (result.HasValue)
+ SetB3ID(context.Session, item.ID, result.Value);
+ SetSyncd(context.Session, item.ID, item.RowVersion);
+ context.Commit();
+ }
+ }
+ }
+ }
+
+ private static IEnumerable GetAllNeedSyncBill()
+ {
+ var query = new DmoQuery(typeof(TrunksIousOutInStoreRecord));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsSubmited", true), DQCondition.EQ("Sync", false)));
+ return query.EExecuteList().Cast();
+ }
+
+ static void SetB3ID(IDmoSession session, long id, long B3ID)
+ {
+ var update = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
+ update.Columns.Add(new DQUpdateColumn("B3ID", B3ID));
+ update.Where.Conditions.Add(DQCondition.EQ("ID", id));
+ session.ExecuteNonQuery(update);
+ }
+
+ static void SetSyncd(IDmoSession session, long id, int rowVersion)
+ {
+ var update = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
+ update.Columns.Add(new DQUpdateColumn("Sync", true));
+ update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ID", id), DQCondition.EQ("RowVersion", rowVersion)));
+ session.ExecuteNonQuery(update);
+ }
+ }
+}