diff --git a/B3ClientService.Web/B3ClientService.Web.csproj b/B3ClientService.Web/B3ClientService.Web.csproj index 99422f3..656c2f0 100644 --- a/B3ClientService.Web/B3ClientService.Web.csproj +++ b/B3ClientService.Web/B3ClientService.Web.csproj @@ -113,6 +113,9 @@ ASPXCodeBehind + + ASPXCodeBehind + ASPXCodeBehind diff --git a/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs new file mode 100644 index 0000000..b11f34a --- /dev/null +++ b/B3ClientService.Web/Pages/B3ClientService/Reports/CarcassStateAnalyse_/CarcassStateAnalyse.cs @@ -0,0 +1,151 @@ +using BWP.B3ClientService; +using BWP.B3ClientService.BO; +using BWP.B3Frameworks.Utils; +using BWP.Web.WebControls; +using Forks.EnterpriseServices.DataForm; +using Forks.EnterpriseServices.DomainObjects2; +using Forks.EnterpriseServices.DomainObjects2.DQuery; +using Forks.EnterpriseServices.SqlDoms; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security; +using System.Text; +using System.Web.UI.HtmlControls; +using System.Web.UI.WebControls; +using TSingSoft.WebControls2; +using TSingSoft.WebPluginFramework.Controls; +using TSingSoft.WebPluginFramework.Pages; +using TSingSoft.WebPluginFramework; +using System.Web.UI; + +namespace BWP.Web.Pages.B3ClientService.Reports.CarcassStateAnalyse_ +{ + class CarcassStateAnalyse : ServerPage + { + protected override void OnInit(EventArgs e) + { + if (!User.IsInRole("B3ClientService.报表展示.白条状态分析")) + throw new SecurityException(); + base.OnInit(e); + } + + DFBrowseGrid mBrowseGrid; + protected override void InitForm(HtmlForm form) + { + form.EAdd(new PageTitle("白条状态看板")); + + var queryPanel = new Panel(); + queryPanel.Style.Add(HtmlTextWriterStyle.BackgroundColor, "white"); + queryPanel.CssClass = "QueryPanel PrintInVisible"; + form.Controls.Add(queryPanel); + + AddQueryControl(queryPanel); + + var mZone = new TitlePanelZone(); + form.Controls.Add(mZone); + + mZone.Add(CreateResultTab()); + } + + ChoiceBox batchSelect; + DFCheckBox noCodeBox; + DateInput butcherDate; + private void AddQueryControl(Panel queryPanel) + { + var hp = queryPanel.EAdd(new Panel()); + hp.Style.Add("float", "right"); + hp.EAdd(new SimpleLabel("屠宰日期")); + butcherDate = hp.EAdd(new DateInput()); + 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) }); + var batch = GetYesterdayBatch(); + if (!string.IsNullOrEmpty(batch)) + batchSelect.Fill(batch, batch); + noCodeBox.CheckedChanged += delegate + { + StartQuery(); + }; + batchSelect.SelectedValueChanged += delegate + { + StartQuery(); + }; + } + + string GetYesterdayBatch() + { + var dom = new DQueryDom(new JoinAlias(typeof(ProductBatch))); + 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(); + } + + private TitlePanel CreateResultTab() + { + var result = new TitlePanel("查询结果"); + mBrowseGrid = result.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) }); + mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn()); + return result; + } + + void StartQuery() + { + var sumColumns = new List(); + + var main = new JoinAlias(typeof(CarcassFullInfo)); + var livestock = new JoinAlias(typeof(Livestock)); + var batch = new JoinAlias(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(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")); + query.Columns.Add(DQSelectColumn.Field("BarCode")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "头数")); + sumColumns.Add(query.Columns.Count - 1); + var title = "屠宰信息|"; + query.Columns.Add(DQSelectColumn.Field("ButcherDate", 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 + "胴体重量")); + sumColumns.Add(query.Columns.Count - 1); + title = "入库信息|"; + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(batch, "Name"), title + "生产批次")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(inGoods, "Name"), title + "入库白条")); + query.Columns.Add(DQSelectColumn.Field("InStoreWeight", title + "入库重量")); + sumColumns.Add(query.Columns.Count - 1); + query.Columns.Add(DQSelectColumn.Field("InStoreTime", title + "入库时间")); + title = "领用及销售|"; + query.Columns.Add(DQSelectColumn.Field("PickType", title + "类型")); + query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(outGoods, "Name"), title + "销售存货")); + query.Columns.Add(DQSelectColumn.Field("PickWeight", title + "重量")); + sumColumns.Add(query.Columns.Count - 1); + query.Columns.Add(DQSelectColumn.Field("PickTime", title + "出库时间")); + query.Columns.Add(DQSelectColumn.Field("PickGroupID", title + "领用组标识")); + if (!batchSelect.IsEmpty) + query.Where.Conditions.Add(DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))); + if (!butcherDate.IsEmpty) + query.Where.Conditions.Add(DQCondition.EQ("ButcherDate", butcherDate.Value)); + if (noCodeBox.Checked) + 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); + mBrowseGrid.LoadArguments = args; + mBrowseGrid.DataBind(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + if (!IsPostBack) + StartQuery(); + } + } +} diff --git a/B3ClientService/BO/Bill/CarcassFullInfo.cs b/B3ClientService/BO/Bill/CarcassFullInfo.cs index f4ef95c..da944c1 100644 --- a/B3ClientService/BO/Bill/CarcassFullInfo.cs +++ b/B3ClientService/BO/Bill/CarcassFullInfo.cs @@ -95,7 +95,7 @@ namespace BWP.B3ClientService.BO [LogicName("领用重量")] public decimal? PickWeight { get; set; } - [LogicName("领用重量")] + [LogicName("领用组标识")] public long? PickGroupID { get; set; } #endregion diff --git a/WebFolder/config/plugins/B3ClientService.plugin b/WebFolder/config/plugins/B3ClientService.plugin index 35c27d7..e5463ec 100644 --- a/WebFolder/config/plugins/B3ClientService.plugin +++ b/WebFolder/config/plugins/B3ClientService.plugin @@ -42,6 +42,7 @@ + @@ -106,6 +107,8 @@ + +