From 1dfc04fcffcf5a236f91f11251ceacb4e51e80ad Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Thu, 3 May 2018 19:07:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CarcassGradeAnalyse.cs | 96 ++++++++++--------- .../CarcassStateAnalyse.cs | 27 ++++-- B3ClientService/BO/Bill/CarcassFullInfo.cs | 3 + .../GradeAndWeight/GradeAndWeight_Detail.cs | 2 + B3ClientService/OfflinRpc/GradeAndWeightBL.cs | 2 + B3ClientService/Rpcs/BaseInfoRpc.cs | 40 ++++++-- 6 files changed, 108 insertions(+), 62 deletions(-) diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs index 96d2d7d..a785242 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs @@ -21,6 +21,7 @@ using Forks.EnterpriseServices.SqlDoms; using BWP.B3ClientService.NamedValueTemplate; using Forks.Utils; using TSingSoft.WebPluginFramework.Exports; +using BWP.B3ClientService; namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ { @@ -51,10 +52,13 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ } DateInput butcherDate; + ChoiceBox batchSelect; private void AddQueryControl(Panel queryPanel) { var hp = queryPanel.EAdd(new Panel()); hp.Style.Add("float", "right"); + hp.EAdd(new SimpleLabel("生产批次")); + batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.生产批次) { Width = Unit.Pixel(160), EnableTopItem = true, EnableInputArgument = true }); hp.EAdd(new SimpleLabel("屠宰日期")); butcherDate = hp.EAdd(new DateInput() { Date = DateTime.Today, Width = Unit.Pixel(100) }); butcherDate.Style.Add("margin-right", "30px"); @@ -155,21 +159,16 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ return result; } - List GetAllData() + List GetInOutInfo() { var main = new JoinAlias(typeof(CarcassFullInfo)); - var livestock = new JoinAlias(typeof(Livestock)); var inGoods = new JoinAlias("iGoods", typeof(Goods)); var outGoods = new JoinAlias("oGoods", typeof(Goods)); var batch = new JoinAlias(typeof(ProductBatch)); var query = new DQueryDom(main); - query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(outGoods), DQCondition.EQ(main, "SaleGoods_ID", outGoods, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID")); - query.Columns.Add(DQSelectColumn.Field("Livestock_ID")); - query.Columns.Add(DQSelectColumn.Field("Name", livestock)); - query.Columns.Add(DQSelectColumn.Field("GradeWeight")); query.Columns.Add(DQSelectColumn.Field("InStoreGoods_ID")); query.Columns.Add(DQSelectColumn.Field("Name", inGoods)); @@ -179,12 +178,46 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ query.Columns.Add(DQSelectColumn.Field("Name", outGoods)); query.Columns.Add(DQSelectColumn.Field("PickWeight")); - query.Columns.Add(DQSelectColumn.Field("ButcherDate")); - query.Columns.Add(DQSelectColumn.Field("Date", batch)); - if (butcherDate.Value.HasValue) - query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("ButcherDate", butcherDate.Date), DQCondition.EQ(batch, "Date", butcherDate.Date))); + query.Where.Conditions.Add(DQCondition.EQ(batch, "Date", butcherDate.Date)); + if (!batchSelect.IsEmpty) + query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))); + var list = new List(); + using (var session = Dmo.NewSession()) + { + using (var reader = session.ExecuteReader(query)) + { + while (reader.Read()) + { + var entity = new TempData(); + entity.IGoods_ID = (long?)reader[0]; + entity.IGoods_Name = (string)reader[1]; + entity.IWeight = (decimal?)reader[2]; + entity.OGoods_ID = (long?)reader[3]; + entity.OGoods_Name = (string)reader[4]; + entity.OWeight = (decimal?)reader[5]; + list.Add(entity); + } + } + } + return list; + } + + List GetGradeInfo() + { + var main = new JoinAlias(typeof(CarcassFullInfo)); + var livestock = new JoinAlias(typeof(Livestock)); + var query = new DQueryDom(main); + query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID")); + query.Columns.Add(DQSelectColumn.Field("Livestock_ID")); + query.Columns.Add(DQSelectColumn.Field("Name", livestock)); + query.Columns.Add(DQSelectColumn.Field("GradeWeight")); + + if (butcherDate.Value.HasValue) + query.Where.Conditions.Add(DQCondition.EQ("ButcherDate", butcherDate.Date)); + if (!batchSelect.IsEmpty) + query.Where.Conditions.Add(DQCondition.EQ("GradeProductBatch_ID", long.Parse(batchSelect.Value))); var list = new List(); using (var session = Dmo.NewSession()) { @@ -192,34 +225,10 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ { while (reader.Read()) { - var dt1 = (DateTime?)reader[9]; - var dt2 = (DateTime?)reader[10]; - var isButcherData = butcherDate.Value == null; - var isBatchData = isButcherData; - if (butcherDate.Value.HasValue) - { - if (dt1 == null || dt1 != butcherDate.Date) - isButcherData = false; - if (dt2 == null || dt2 != butcherDate.Date) - isBatchData = false; - } var entity = new TempData(); - if (isButcherData) - { - entity.Livestock_ID = (long?)reader[0]; - entity.Livestock_Name = (string)reader[1]; - entity.LWeight = (decimal?)reader[2]; - } - if (isBatchData) - { - entity.IGoods_ID = (long?)reader[3]; - entity.IGoods_Name = (string)reader[4]; - entity.IWeight = (decimal?)reader[5]; - - entity.OGoods_ID = (long?)reader[6]; - entity.OGoods_Name = (string)reader[7]; - entity.OWeight = (decimal?)reader[8]; - } + entity.Livestock_ID = (long?)reader[0]; + entity.Livestock_Name = (string)reader[1]; + entity.LWeight = (decimal?)reader[2]; list.Add(entity); } } @@ -231,16 +240,16 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ { var table = new DFDataTable(); AddTableHead(table); - var list = GetAllData(); - var combine = CombineList(list); + var combine = CombineList(); FillTable(table, combine); return table; } - private List CombineList(List list) + private List CombineList() { + var gradeInfo = GetGradeInfo(); var combine = new List(); - var l = list.Where(x => x.Livestock_ID.HasValue).GroupBy(x => x.Livestock_ID).OrderBy(x => x.Key); + var l = gradeInfo.GroupBy(x => x.Livestock_ID).OrderBy(x => x.Key); foreach (var g in l) { var e = new TempData(); @@ -250,7 +259,8 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ combine.Add(e); } - var i = list.Where(x => x.IGoods_ID.HasValue).GroupBy(x => x.IGoods_ID).OrderBy(x => x.Key); + var inOutInfo = GetInOutInfo(); + var i = inOutInfo.Where(x => x.IGoods_ID.HasValue).GroupBy(x => x.IGoods_ID).OrderBy(x => x.Key); var n = 0; foreach (var g in i) { @@ -263,7 +273,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_ n++; } - var o = list.Where(x => x.OGoods_ID.HasValue).GroupBy(x => x.OGoods_ID).OrderBy(x => x.Key); + var o = inOutInfo.Where(x => x.OGoods_ID.HasValue).GroupBy(x => x.OGoods_ID).OrderBy(x => x.Key); n = 0; foreach (var g in o) { diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs index 5d943ce..c6e3922 100644 --- a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs @@ -61,10 +61,10 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ noCodeBox = hp.EAdd(new DFCheckBox() { Text = "查看无码", AutoPostBack = true }); noCodeBox.InputAttributes.Add("style", "width:15px;height:15px;"); hp.EAdd(new SimpleLabel("生产批次")); - batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.生产批次) { EnableInputArgument = true, EnableTopItem = true, AutoPostBack = true, Width = Unit.Pixel(180) }); + batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.生产批次) { EnableInputArgument = true, EnableTopItem = true, AutoPostBack = true, Width = Unit.Pixel(160) }); var batch = GetYesterdayBatch(); - if (!string.IsNullOrEmpty(batch)) - batchSelect.Fill(batch, batch); + if (batch != null) + batchSelect.Fill(batch.Item1.ToString(), batch.Item2); noCodeBox.CheckedChanged += delegate { StartQuery(); @@ -75,14 +75,15 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ }; } - string GetYesterdayBatch() + Tuple GetYesterdayBatch() { var dom = new DQueryDom(new JoinAlias(typeof(ProductBatch))); + dom.Columns.Add(DQSelectColumn.Field("ID")); dom.Columns.Add(DQSelectColumn.Field("Name")); dom.OrderBy.Expressions.Add(DQOrderByExpression.Create("Date", true)); dom.Where.Conditions.Add(DQCondition.LessThan("Date", DateTime.Today)); dom.Range = SelectRange.Top(1); - return dom.EExecuteScalar(); + return dom.EExecuteScalar(); } private TitlePanel CreateResultTab() @@ -101,11 +102,13 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ var main = new JoinAlias(typeof(CarcassFullInfo)); var livestock = new JoinAlias(typeof(Livestock)); - var batch = new JoinAlias(typeof(ProductBatch)); + var gbatch = new JoinAlias("_gradeBatch", typeof(ProductBatch)); + var batch = new JoinAlias("_productBatch", typeof(ProductBatch)); var inGoods = new JoinAlias("iGoods", typeof(Goods)); var outGoods = new JoinAlias("oGoods", typeof(Goods)); var query = new DQueryDom(main); query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID")); + query.From.AddJoin(JoinType.Left, new DQDmoSource(gbatch), DQCondition.EQ(main, "GradeProductBatch_ID", gbatch, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(outGoods), DQCondition.EQ(main, "SaleGoods_ID", outGoods, "ID")); @@ -114,6 +117,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ sumColumns.Add(query.Columns.Count - 1); var title = "屠宰信息|"; query.Columns.Add(DQSelectColumn.Field("ButcherDate", title + "屠宰日期")); + query.Columns.Add(DQSelectColumn.Field("Name", gbatch, title + "生产批次")); query.Columns.Add(DQSelectColumn.Field("GradeTime", title + "定级时间")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(livestock, "Name"), title + "胴体级别")); query.Columns.Add(DQSelectColumn.Field("GradeWeight", title + "胴体重量")); @@ -134,11 +138,16 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ sumColumns.Add(query.Columns.Count - 1); query.Columns.Add(DQSelectColumn.Field("PickGroupID", title + "领用组标识")); if (!batchSelect.IsEmpty) - query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))); + { + var v = long.Parse(batchSelect.Value); + query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("GradeProductBatch_ID", v), DQCondition.EQ("ProductBatch_ID", v))); + } if (!butcherDate.IsEmpty) - query.Where.Conditions.Add(DQCondition.EQ("ButcherDate", butcherDate.Value)); + { + query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ(batch, "Date", butcherDate.Value), DQCondition.EQ("ButcherDate", butcherDate.Value))); + } if (noCodeBox.Checked) - query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("BarCode")), DQCondition.EQ("BarCode", "''"))); + query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("BarCode")), DQCondition.EQ("BarCode", ""))); var args = new LoadArguments(query); foreach (var idx in sumColumns) args.SumColumns.Add(idx); diff --git a/B3ClientService/BO/Bill/CarcassFullInfo.cs b/B3ClientService/BO/Bill/CarcassFullInfo.cs index da944c1..9d9ea65 100644 --- a/B3ClientService/BO/Bill/CarcassFullInfo.cs +++ b/B3ClientService/BO/Bill/CarcassFullInfo.cs @@ -50,6 +50,9 @@ namespace BWP.B3ClientService.BO [LogicName("胴体重量")] public decimal? GradeWeight { get; set; } + [LogicName("定级生产批次")] + public long? GradeProductBatch_ID { get; set; } + #endregion #region 入库信息 diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs index da492c0..adb12c7 100644 --- a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs +++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs @@ -39,5 +39,7 @@ namespace BWP.B3ClientService.BO public long SID { get; set; } public string BarCode { get; set; } + + public long? ProductBatch_ID { get; set; } } } diff --git a/B3ClientService/OfflinRpc/GradeAndWeightBL.cs b/B3ClientService/OfflinRpc/GradeAndWeightBL.cs index 6ac661e..7e7e745 100644 --- a/B3ClientService/OfflinRpc/GradeAndWeightBL.cs +++ b/B3ClientService/OfflinRpc/GradeAndWeightBL.cs @@ -36,6 +36,7 @@ namespace BWP.B3ClientService.BL var update = new DQUpdateDom(typeof(CarcassFullInfo)); update.Columns.Add(new DQUpdateColumn("ButcherDate", obj.Date)); update.Columns.Add(new DQUpdateColumn("GradeTime", obj.Time)); + update.Columns.Add(new DQUpdateColumn("GradeProductBatch_ID", obj.ProductBatch_ID)); //update.Columns.Add(new DQUpdateColumn("GradeWorker_ID", obj.Worker_ID)); update.Columns.Add(new DQUpdateColumn("Livestock_ID", obj.Livestock_ID)); update.Columns.Add(new DQUpdateColumn("GradeWeight", obj.Weight)); @@ -49,6 +50,7 @@ namespace BWP.B3ClientService.BL entity.BarCode = obj.BarCode; entity.ButcherDate = obj.Date; entity.GradeTime = obj.Time; + entity.GradeProductBatch_ID = obj.ProductBatch_ID; //entity.GradeWorker_ID = obj.Worker_ID; entity.Livestock_ID = obj.Livestock_ID; entity.GradeWeight = obj.Weight; diff --git a/B3ClientService/Rpcs/BaseInfoRpc.cs b/B3ClientService/Rpcs/BaseInfoRpc.cs index 678c08c..d0a2903 100644 --- a/B3ClientService/Rpcs/BaseInfoRpc.cs +++ b/B3ClientService/Rpcs/BaseInfoRpc.cs @@ -51,15 +51,15 @@ namespace BWP.B3ClientService.Rpcs return JsonConvert.SerializeObject(list); } - [Rpc] - public static string GetProductBatchList() - { - //只查询5天前的批次 - var query = new DmoQuery(typeof(ProductBatch)); - query.Range=SelectRange.Top(5); - var list = query.EExecuteList().Cast().ToList(); - return JsonConvert.SerializeObject(list); - } + //[Rpc] + //public static string GetProductBatchList() + //{ + // //只查询5天前的批次 + // var query = new DmoQuery(typeof(ProductBatch)); + // query.Range=SelectRange.Top(5); + // var list = query.EExecuteList().Cast().ToList(); + // return JsonConvert.SerializeObject(list); + //} [Rpc] @@ -158,7 +158,27 @@ namespace BWP.B3ClientService.Rpcs return GetBaseInfoList(input, args, top); } - + [Rpc] + public static List GetProductBatchList(string input, string args, int top) + { + var query = new DQueryDom(new JoinAlias(typeof(ProductBatch))); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("Name")); + query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Date", DateTime.Today.AddDays(-1))); + query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true)); + if (!string.IsNullOrEmpty(input)) + query.Where.Conditions.Add(DQCondition.Or(DQCondition.Like("Name", input), DQCondition.Like("Spell", input))); + var list = new List(); + using (var session = Dmo.NewSession()) + { + using (var reader = session.ExecuteReader(query)) + { + while (reader.Read()) + list.Add(new WordPair(reader[1].ToString(), reader[0].ToString())); + } + } + return list; + } [Rpc] public static List GetSanctionList()