|
|
|
@ -1,8 +1,18 @@ |
|
|
|
using BWP.B3ButcherManage.BO; |
|
|
|
using BWP.B3ButcherManage.NamedValueTemplate; |
|
|
|
using BWP.B3Frameworks.BO.NamedValueTemplate; |
|
|
|
using BWP.B3Frameworks.Utils; |
|
|
|
using BWP.Web.Layout; |
|
|
|
using BWP.Web.Utils; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery; |
|
|
|
using Forks.EnterpriseServices.SqlDoms; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Web.UI.WebControls; |
|
|
|
using TSingSoft.WebControls2; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3QingDaoWanFu.Reports |
|
|
|
{ |
|
|
|
@ -10,12 +20,102 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports |
|
|
|
{ |
|
|
|
protected override string AccessRoleName |
|
|
|
{ |
|
|
|
get { throw new NotImplementedException(); } |
|
|
|
get { return "B3QingDaoWanFu.报表.异常猪分析"; } |
|
|
|
} |
|
|
|
|
|
|
|
protected override string Caption |
|
|
|
{ |
|
|
|
get { throw new NotImplementedException(); } |
|
|
|
get { return "异常猪分析"; } |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected override void AddQueryControls(VLayoutPanel vPanel) |
|
|
|
{ |
|
|
|
var layoutManager = new LayoutManager("Main", mDFInfo, mQueryContainer); |
|
|
|
|
|
|
|
DFNamedValueInput<单据状态> input; |
|
|
|
layoutManager.Add("BillState", input = QueryCreator.一般单据状态(mDFInfo.Fields["BillState"], true)); |
|
|
|
input.Value = 单据状态.已审核; |
|
|
|
var config = new AutoLayoutConfig() { Cols = 4 }; |
|
|
|
|
|
|
|
layoutManager.Add("ID", new SimpleLabel("过磅单号"), QueryCreator.DFTextBox(mDFInfo.Fields["ID"])); |
|
|
|
|
|
|
|
config.Add("ID"); |
|
|
|
config.Add("BillState"); |
|
|
|
config.Add("Supplier_ID"); |
|
|
|
config.Add("Employee_ID"); |
|
|
|
config.Add("WeighTime"); |
|
|
|
layoutManager.Config = config; |
|
|
|
vPanel.Add(layoutManager.CreateLayout()); |
|
|
|
} |
|
|
|
|
|
|
|
protected override DQueryDom GetQueryDom() |
|
|
|
{ |
|
|
|
var query = base.GetQueryDom(); |
|
|
|
var main = query.From.RootSource.Alias; |
|
|
|
var detail = DeathPig.Register(query, main); |
|
|
|
var hurry = OrderHurryPig.Register(query, main); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID", "过磅单号")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("BuyNum","总头数")); |
|
|
|
SumColumnNames.Add("BuyNum"); |
|
|
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("HurryNumber", hurry, "急宰头数")); |
|
|
|
SumColumnNames.Add("HurryNumber"); |
|
|
|
|
|
|
|
query.Columns.Add(DQSelectColumn.Field("DeathNumber", detail, "死亡头数")); |
|
|
|
SumColumnNames.Add("DeathNumber"); |
|
|
|
foreach (var c in query.Columns) |
|
|
|
ColumnNames.Add(c.Name); |
|
|
|
OrganizationUtil.AddOrganizationLimit(query, typeof(WeighBill)); |
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
class OrderHurryPig |
|
|
|
{ |
|
|
|
public long Weight_ID { get; set; } |
|
|
|
|
|
|
|
public int? HurryNumber { get; set; } |
|
|
|
|
|
|
|
public static JoinAlias Register(DQueryDom root, JoinAlias alias) |
|
|
|
{ |
|
|
|
var main = new JoinAlias(typeof(ButcherOrder)); |
|
|
|
var detail = new JoinAlias(typeof(ButcherOrder_Detail)); |
|
|
|
var query = new DQueryDom(main); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "ButcherOrder_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("WeighBill_ID", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum(detail,"PlanNumber")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field(detail,"WeighBill_ID")); |
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "IsHurryButcher", true),DQCondition.InEQ("BillState",单据状态.已作废))); |
|
|
|
|
|
|
|
var t = new JoinAlias(typeof(OrderHurryPig)); |
|
|
|
root.RegisterQueryTable(typeof(OrderHurryPig), new string[] { "Weight_ID", "HurryNumber" }, query); |
|
|
|
root.From.AddJoin(JoinType.Left, new DQDmoSource(t), DQCondition.EQ(alias, "ID", t, "Weight_ID")); |
|
|
|
return t; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class DeathPig |
|
|
|
{ |
|
|
|
public long Weight_ID { get; set; } |
|
|
|
|
|
|
|
public int? DeathNumber { get; set; } |
|
|
|
|
|
|
|
public static JoinAlias Register(DQueryDom root, JoinAlias alias){ |
|
|
|
var detail = new JoinAlias(typeof(Weigh_AbnormalRecording)); |
|
|
|
var setting = new JoinAlias(typeof(SanctionSetting)); |
|
|
|
var query = new DQueryDom(detail); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(setting), DQCondition.EQ(detail, "Sanction_ID", setting, "ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Weigh_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("Num")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field("Weigh_ID")); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ(setting, "AbnormalItem_Name","死亡")); |
|
|
|
|
|
|
|
var t = new JoinAlias(typeof(DeathPig)); |
|
|
|
root.RegisterQueryTable(typeof(DeathPig), new string[] { "Weight_ID", "DeathNumber" }, query); |
|
|
|
root.From.AddJoin(JoinType.Left, new DQDmoSource(t), DQCondition.EQ(alias, "ID", t, "Weight_ID")); |
|
|
|
return t; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |