diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj index 123adc6..9310395 100644 --- a/B3ClientService/B3ClientService.csproj +++ b/B3ClientService/B3ClientService.csproj @@ -139,7 +139,8 @@ - + + diff --git a/B3ClientService/BO/SegmentationByPproductTrace_/SegmentationByPproductTrace.cs b/B3ClientService/BO/SegmentationByPproductTrace_/SegmentationByPproductTrace.cs index 8e2959e..f22a028 100644 --- a/B3ClientService/BO/SegmentationByPproductTrace_/SegmentationByPproductTrace.cs +++ b/B3ClientService/BO/SegmentationByPproductTrace_/SegmentationByPproductTrace.cs @@ -4,6 +4,7 @@ using System.Data; using System.Linq; using System.Text; using BWP.B3Frameworks.BO; +using Forks.EnterpriseServices.DataForm; using Forks.EnterpriseServices.DomainObjects2; namespace BWP.B3ClientService.BO @@ -13,6 +14,7 @@ namespace BWP.B3ClientService.BO /// 分割品入库 /// [Serializable] + [DFClass] public class SegmentationByPproductTrace : Base { private DateTime mCreateTime = DateTime.Now; diff --git a/B3ClientService/BO/SegmentationInStoreRecord_/SegmentationInStoreRecord.cs b/B3ClientService/BO/SegmentationInStoreRecord_/SegmentationInStoreRecord.cs index 5f12d50..61dd747 100644 --- a/B3ClientService/BO/SegmentationInStoreRecord_/SegmentationInStoreRecord.cs +++ b/B3ClientService/BO/SegmentationInStoreRecord_/SegmentationInStoreRecord.cs @@ -4,6 +4,7 @@ using System.Data; using System.Linq; using System.Text; using BWP.B3Frameworks.BO; +using Forks.EnterpriseServices.DataForm; using Forks.EnterpriseServices.DomainObjects2; namespace BWP.B3ClientService.BO @@ -12,6 +13,7 @@ namespace BWP.B3ClientService.BO /// 分割品入库 /// [Serializable] + [DFClass] public class SegmentationInStoreRecord:Base { private DateTime mCreateTime = DateTime.Now; diff --git a/B3ClientService/BO/SegmentationWeightRecord_/SegmentationWeightRecord.cs b/B3ClientService/BO/SegmentationWeightRecord_/SegmentationWeightRecord.cs index c2b3aa2..20bbce7 100644 --- a/B3ClientService/BO/SegmentationWeightRecord_/SegmentationWeightRecord.cs +++ b/B3ClientService/BO/SegmentationWeightRecord_/SegmentationWeightRecord.cs @@ -4,6 +4,7 @@ using System.Data; using System.Linq; using System.Text; using BWP.B3Frameworks.BO; +using Forks.EnterpriseServices.DataForm; using Forks.EnterpriseServices.DomainObjects2; namespace BWP.B3ClientService.BO @@ -13,6 +14,7 @@ namespace BWP.B3ClientService.BO /// 分割品称重 /// [Serializable] + [DFClass] public class SegmentationWeightRecord:Base { private DateTime mCreateTime=DateTime.Now; @@ -26,12 +28,10 @@ namespace BWP.B3ClientService.BO public string Goods_Name { get; set; } public string Goods_Spec { get; set; } + + public decimal Weight { get; set; }//净重 - public decimal PiWeight { get; set; }//皮重 - - public decimal MaoWeight { get; set; }//毛重 - - public decimal JingWeight { get; set; }//净重 + public string ProductBatch { get; set; } public string CardBarCode { get; set; }//放产品的车的条码 diff --git a/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs b/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs index e8e018f..7a5bd48 100644 --- a/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs +++ b/B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs @@ -2,10 +2,12 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using Forks.EnterpriseServices.DataForm; namespace BWP.B3ClientService.BO { [Serializable] + [DFClass] public class TrunksIousOutInStoreRecord: ClientSyncBase { public string BarCode { get; set; } diff --git a/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc.cs b/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc.cs deleted file mode 100644 index 65a152c..0000000 --- a/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecordRpc.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using BWP.B3ClientService.BO; -using BWP.B3ClientService.Utils; -using Forks.EnterpriseServices.DomainObjects2; -using Forks.EnterpriseServices.DomainObjects2.DQuery; -using Forks.EnterpriseServices.JsonRpc; -using Newtonsoft.Json; -using TSingSoft.WebPluginFramework; - -namespace BWP.B3ClientService.Rpcs.BillRpc -{ - [Rpc] - public static class SegmentationWeightRecordRpc - { - [Rpc] - public static long Insert(string json) - { - var record = JsonConvert.DeserializeObject(json); - record.CreateTime=DateTime.Now; - using (var session=Dmo.NewSession()) - { - session.Insert(record); - var segmentationByPproductTrace = GetSegmentationByPproductTrace(record); - SegmentationByPproductTraceBL.Insert(session, segmentationByPproductTrace); - session.Commit(); - } - return record.ID; - } - - private static SegmentationByPproductTrace GetSegmentationByPproductTrace(SegmentationWeightRecord record) - { - var dmo = new SegmentationByPproductTrace(); - dmo.BarCode = record.BarCode; - dmo.Goods_ID = record.Goods_ID; - dmo.Goods_Name = record.Goods_Name; - dmo.Weight = record.JingWeight; - dmo.Goods_Spec = record.Goods_Spec; - dmo.ProductTime = record.CreateTime; - return dmo; - } - - /// - /// 获取为入库的 - /// - /// - [Rpc] - public static string GetNotInStoreList() - { - var query=new DmoQuery(typeof(SegmentationWeightRecord)); - query.Where.Conditions.Add(DQCondition.EQ("IsInStored",false)); - var list = query.EExecuteList().Cast().ToList(); - return JsonConvert.SerializeObject(list); - } - - /// - /// 获取为入库的 - /// - /// - [Rpc] - public static string GetNotInStoreListByMaxId(long id) - { - var query = new DmoQuery(typeof(SegmentationWeightRecord)); - query.Where.Conditions.Add(DQCondition.EQ("IsInStored", false)); - query.Where.Conditions.Add(DQCondition.GreaterThan("ID", id)); - var list = query.EExecuteList().Cast().ToList(); - return JsonConvert.SerializeObject(list); - } - - - /// - /// 批量 设置已入库 - /// - /// - /// - [Rpc] - public static bool SetInStored(string json) - { - var list = JsonConvert.DeserializeObject>(json); - var whereList = list.Select(x => DQExpression.Value(x)).ToArray(); - var updateDom=new DQUpdateDom(typeof(SegmentationWeightRecord)); - updateDom.Columns.Add(new DQUpdateColumn("IsInStored",true)); - updateDom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"),whereList)); - updateDom.EExecute(); - return true; - } - } -} diff --git a/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordDto.cs b/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordDto.cs new file mode 100644 index 0000000..6e3b344 --- /dev/null +++ b/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordDto.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using BWP.B3ClientService.BO; +using Forks.EnterpriseServices.DataForm; + +namespace BWP.B3ClientService.Rpcs.BillRpc.SegmentationWeightRecord_ +{ + [Serializable, DFClass] + public class SegmentationWeightRecordDto : ClientSyncBaseDto + { + public DateTime CreateTime { get; set; } + + public string BarCode { get; set; }//条码 + + public long Goods_ID { get; set; } + + public string Goods_Name { get; set; } + public string Goods_Spec { get; set; } + + public decimal Weight { get; set; }//净重 + + public string ProductBatch { get; set; } + + public string CardBarCode { get; set; }//放产品的车的条码 + + public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的 + public string CreateUserName { get; set; } + + public bool IsInStored { get; set; }//是否已经入库 + } +} diff --git a/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordRpc.cs b/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordRpc.cs new file mode 100644 index 0000000..7640145 --- /dev/null +++ b/B3ClientService/Rpcs/BillRpc/SegmentationWeightRecord_/SegmentationWeightRecordRpc.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using BWP.B3ClientService.BO; +using BWP.B3ClientService.Rpcs.BillRpc.SegmentationWeightRecord_; +using BWP.B3ClientService.Utils; +using BWP.B3Frameworks.Utils; +using Forks.EnterpriseServices.DomainObjects2; +using Forks.EnterpriseServices.DomainObjects2.DQuery; +using Forks.EnterpriseServices.JsonRpc; +using Newtonsoft.Json; +using TSingSoft.WebPluginFramework; + +namespace BWP.B3ClientService.Rpcs.BillRpc +{ + [Rpc] + public static class SegmentationWeightRecordRpc + { + + [Rpc] + public static string GetCountByNameAndBatch(long goodsId, string batch) + { + decimal weight = 0m; + int count = 0; + + var query=new DQueryDom(new JoinAlias(typeof(SegmentationWeightRecord))); + query.Columns.Add(DQSelectColumn.Sum("Weight")); + query.Columns.Add(DQSelectColumn.Count("ID")); + query.Where.Conditions.Add(DQCondition.EQ("Goods_ID",goodsId)); + query.Where.Conditions.Add(DQCondition.EQ("ProductBatch", batch)); + query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("CreateTime",DateTime.Today)); + query.Where.Conditions.Add(DQCondition.LessThan("CreateTime",DateTime.Today.AddDays(1))); +// var dd = query.EExecuteScalar(); + using (var session=Dmo.NewSession()) + { + using (var reader=session.ExecuteReader(query)) + { + if (reader.Read()) + { + weight =Convert.ToDecimal(reader[0]); + count = Convert.ToInt32(reader[1]); + } + } + } + return weight.ToString("#0.##") + "," + count; + } + + private static readonly object _insertObj=new object(); + + [Rpc] + public static long Insert(string json) + { + lock (_insertObj) + { + var record = JsonConvert.DeserializeObject(json); + record.CreateTime = DateTime.Now; + using (var session = Dmo.NewSession()) + { + session.Insert(record); + var segmentationByPproductTrace = GetSegmentationByPproductTrace(record); + SegmentationByPproductTraceBL.Insert(session, segmentationByPproductTrace); + session.Commit(); + } + return record.ID; + } + } + + private static readonly object _updateObj = new object(); + [Rpc] + public static int Update(string json) + { + lock (_updateObj) + { + var clientRecord = JsonConvert.DeserializeObject(json); + using (var session = Dmo.NewSession()) + { + var record = session.Load(new DmoIdentity(typeof(SegmentationWeightRecord), clientRecord.Service_ID ?? 0)); + DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID"); + session.Update(record); + //需要更新大表??? + } + return 1; + } + } + + [Rpc] + public static int Delete(long id) + { + var delDom = new DQDeleteDom(typeof(SegmentationWeightRecord)); + delDom.Where.Conditions.Add(DQCondition.EQ("ID", id)); + using (var session = Dmo.NewSession()) + { + session.ExecuteNonQuery(delDom); + //需要删除大表 + } + return 1; + } + + + private static SegmentationByPproductTrace GetSegmentationByPproductTrace(SegmentationWeightRecord record) + { + var dmo = new SegmentationByPproductTrace(); + dmo.BarCode = record.BarCode; + dmo.Goods_ID = record.Goods_ID; + dmo.Goods_Name = record.Goods_Name; + dmo.Weight = record.Weight; + dmo.Goods_Spec = record.Goods_Spec; + dmo.ProductTime = record.CreateTime; + return dmo; + } + + /// + /// 获取为入库的 + /// + /// + [Rpc] + public static string GetNotInStoreList() + { + var query=new DmoQuery(typeof(SegmentationWeightRecord)); + query.Where.Conditions.Add(DQCondition.EQ("IsInStored",false)); + var list = query.EExecuteList().Cast().ToList(); + return JsonConvert.SerializeObject(list); + } + + /// + /// 获取为入库的 + /// + /// + [Rpc] + public static string GetNotInStoreListByMaxId(long id) + { + var query = new DmoQuery(typeof(SegmentationWeightRecord)); + query.Where.Conditions.Add(DQCondition.EQ("IsInStored", false)); + query.Where.Conditions.Add(DQCondition.GreaterThan("ID", id)); + var list = query.EExecuteList().Cast().ToList(); + return JsonConvert.SerializeObject(list); + } + + + /// + /// 批量 设置已入库 + /// + /// + /// + [Rpc] + public static bool SetInStored(string json) + { + var list = JsonConvert.DeserializeObject>(json); + var whereList = list.Select(x => DQExpression.Value(x)).ToArray(); + var updateDom=new DQUpdateDom(typeof(SegmentationWeightRecord)); + updateDom.Columns.Add(new DQUpdateColumn("IsInStored",true)); + updateDom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"),whereList)); + updateDom.EExecute(); + return true; + } + } +}