From 098645ffefdd935aa3cc4ceb33b7a26421a01b0e Mon Sep 17 00:00:00 2001
From: yibo <361071264@qq.com>
Date: Mon, 27 Aug 2018 13:58:29 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=88=86=E5=89=B2=E5=93=81?=
=?UTF-8?q?=E9=A2=86=E6=96=99Rpc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
B3ClientService/B3ClientService.csproj | 1 +
.../BO/Bill/SegmentProductionInfo.cs | 27 +++-
B3ClientService/NamedValueTemplate.cs | 1 +
B3ClientService/OfflinRpc/SegmentPickUpRpc.cs | 122 ++++++++++++++++++
.../config/NamedValue/B3ClientService.xml | 1 +
5 files changed, 149 insertions(+), 3 deletions(-)
create mode 100644 B3ClientService/OfflinRpc/SegmentPickUpRpc.cs
diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index 750e969..221af3d 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -211,6 +211,7 @@
+
diff --git a/B3ClientService/BO/Bill/SegmentProductionInfo.cs b/B3ClientService/BO/Bill/SegmentProductionInfo.cs
index 52f581e..820528a 100644
--- a/B3ClientService/BO/Bill/SegmentProductionInfo.cs
+++ b/B3ClientService/BO/Bill/SegmentProductionInfo.cs
@@ -1,8 +1,10 @@
-using BWP.B3Frameworks.BO;
+using BWP.B3ClientService.NamedValueTemplate;
+using BWP.B3Frameworks.BO;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataDictionary;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
+using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Data;
@@ -73,9 +75,24 @@ namespace BWP.B3ClientService.BO
#endregion
- #region 销售时间
- [LogicName("销售时间")]
+ #region 领用信息
+
+ [LogicName("领用人员")]
+ public long? PickWorker_ID { get; set; }
+
+ [LogicName("领用工作单元")]
+ public long? PickWorkUnit_ID { get; set; }
+
+ [LogicName("领用时间")]
public DateTime? PickTime { get; set; }
+
+ [LogicName("领用类型")]
+ public NamedValue<领用类型>? PickType { get; set; }
+
+ [LogicName("领用数量")]
+ [DbColumn(DefaultValue = 1)]
+ public decimal? PickNumber { get; set; }
+
#endregion
public bool IsSync { get; set; }
@@ -86,5 +103,9 @@ namespace BWP.B3ClientService.BO
public long? BillID { get; set; }
public long? DetailID { get; set; }
+
+ [ReferenceTo(typeof(Goods), "Name")]
+ [Join("Goods_ID", "ID")]
+ public string Goods_Name { get; set; }
}
}
diff --git a/B3ClientService/NamedValueTemplate.cs b/B3ClientService/NamedValueTemplate.cs
index c393724..f65c341 100644
--- a/B3ClientService/NamedValueTemplate.cs
+++ b/B3ClientService/NamedValueTemplate.cs
@@ -21,6 +21,7 @@ namespace BWP.B3ClientService.NamedValueTemplate
public static readonly NamedValue<终端> 白条领用 = new NamedValue<终端>(1);
public static readonly NamedValue<终端> 分割生产 = new NamedValue<终端>(2);
public static readonly NamedValue<终端> 扫码入库 = new NamedValue<终端>(3);
+ public static readonly NamedValue<终端> 分割领用 = new NamedValue<终端>(4);
//51-100供B3用
public static readonly NamedValue<终端> 赶猪确认 = new NamedValue<终端>(103);
public static readonly NamedValue<终端> 上线确认 = new NamedValue<终端>(104);
diff --git a/B3ClientService/OfflinRpc/SegmentPickUpRpc.cs b/B3ClientService/OfflinRpc/SegmentPickUpRpc.cs
new file mode 100644
index 0000000..5cd596d
--- /dev/null
+++ b/B3ClientService/OfflinRpc/SegmentPickUpRpc.cs
@@ -0,0 +1,122 @@
+using BWP.B3ClientService.BO;
+using BWP.B3ClientService.NamedValueTemplate;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.JsonRpc;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3ClientService.Rpcs
+{
+ [Rpc]
+ public static class SegmentPickUpRpc
+ {
+ [Rpc(RpcFlags.SkipAuth)]
+ public static string GetScanInfo(string barCode)
+ {
+ var query = new DQueryDom(new JoinAlias(typeof(SegmentProductionInfo)));
+ query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
+ query.Columns.Add(DQSelectColumn.Field("Weight"));
+ query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
+ var r = query.EExecuteScalar();
+ if (r == null)
+ return null;
+ return JsonConvert.SerializeObject(new ExtensionObj { LongExt1 = r.Item1, StringExt1 = r.Item2, DecimalExt1 = r.Item3 });
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static string GetBeforeInfo(List codeList)
+ {
+ var query = new DQueryDom(new JoinAlias(typeof(SegmentProductionInfo)));
+ query.Columns.Add(DQSelectColumn.Field("BarCode"));
+ query.Columns.Add(DQSelectColumn.Field("Weight"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("Goods_ID")), DQCondition.InList(DQExpression.Field("BarCode"), codeList.Select(x => DQExpression.Value(x)).ToArray())));
+ var result = query.EExecuteList();
+ var back = result.Select(x => new ExtensionObj { StringExt1 = x.Item1, DecimalExt1 = x.Item2, LongExt1 = x.Item3, StringExt2 = x.Item4 });
+ return JsonConvert.SerializeObject(back);
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static int UploadSegmentInfo(string jsonArr)
+ {
+ var list = JsonConvert.DeserializeObject>(jsonArr);
+ using (var session = Dmo.NewSession())
+ {
+ foreach (var item in list)
+ {
+ var id = GetID(item.BarCode, session);
+ if (id.HasValue)
+ Update(id.Value, item, session);
+ else
+ Insert(item, session);
+ }
+ session.Commit();
+ }
+ return 1;
+ }
+
+ static long? GetID(string code, IDmoSession session)
+ {
+ if (string.IsNullOrEmpty(code))
+ return null;
+ var query = new DQueryDom(new JoinAlias(typeof(SegmentProductionInfo)));
+ query.Columns.Add(DQSelectColumn.Field("ID"));
+ query.Where.Conditions.Add(DQCondition.EQ("BarCode", code));
+ return query.EExecuteScalar(session);
+ }
+
+ static void Update(long id, SegmentPickUpObj obj, IDmoSession session)
+ {
+ var update = new DQUpdateDom(typeof(SegmentProductionInfo));
+ update.Columns.Add(new DQUpdateColumn("PickWorker_ID", obj.TakeOutWorker_ID));
+ update.Columns.Add(new DQUpdateColumn("PickWorkUnit_ID", obj.WorkUnit_ID));
+ update.Columns.Add(new DQUpdateColumn("PickTime", obj.Time));
+ update.Columns.Add(new DQUpdateColumn("PickNumber", 1));
+ update.Columns.Add(new DQUpdateColumn("PickType", 领用类型.分割领用));
+ update.Where.Conditions.Add(DQCondition.EQ("ID", id));
+ session.ExecuteNonQuery(update);
+ }
+
+ static void Insert(SegmentPickUpObj obj, IDmoSession session)
+ {
+ var entity = new SegmentProductionInfo();
+ entity.BarCode = obj.BarCode;
+ entity.Goods_ID = obj.Goods_ID;
+ entity.PickWorker_ID = obj.TakeOutWorker_ID;
+ entity.PickWorkUnit_ID = obj.WorkUnit_ID;
+ entity.Weight = obj.Weight;
+ entity.PickTime = obj.Time;
+ entity.PickNumber = obj.Number;
+ entity.PickType = 领用类型.分割领用;
+ if (string.IsNullOrEmpty(entity.BarCode))
+ entity.ProductBatch_ID = obj.ProductBatch_ID;
+ session.Insert(entity);
+ }
+ }
+
+ class SegmentPickUpObj
+ {
+ public string BarCode { get; set; }
+
+ public long TakeOutWorker_ID { get; set; }
+
+ public long? WorkUnit_ID { get; set; }
+
+ public long? ProductBatch_ID { get; set; }
+
+ public long? Goods_ID { get; set; }
+
+ public decimal? Weight { get; set; }
+
+ public DateTime? Time { get; set; }
+
+ public int Number { get; set; }
+ }
+}
diff --git a/WebFolder/config/NamedValue/B3ClientService.xml b/WebFolder/config/NamedValue/B3ClientService.xml
index f511286..07e8444 100644
--- a/WebFolder/config/NamedValue/B3ClientService.xml
+++ b/WebFolder/config/NamedValue/B3ClientService.xml
@@ -12,6 +12,7 @@
+