Browse Source

修改。

master
yibo 7 years ago
parent
commit
7692bed7d5
8 changed files with 295 additions and 13 deletions
  1. +6
    -0
      B3ClientService.Web/B3ClientService.Web.csproj
  2. +8
    -2
      B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs
  3. +152
    -0
      B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInStoreLossAnalyse_/CarcassInStoreLossAnalyse.cs
  4. +112
    -0
      B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInStoreLossAnalyse_/InStoreDetail.cs
  5. +1
    -2
      B3ClientService/OfflinRpc/CarcassSaleOutStoreRpc.cs
  6. +0
    -3
      B3ClientService/OfflinRpc/CarcassTakeOutRpc.cs
  7. +14
    -6
      B3ClientService/Tasks/SyncCarcassInStoreToTrackBack.cs
  8. +2
    -0
      WebFolder/config/plugins/B3ClientService.plugin

+ 6
- 0
B3ClientService.Web/B3ClientService.Web.csproj View File

@ -132,6 +132,12 @@
<Compile Include="Pages\B3ClientService\Reports\CarcassInOutStoreAnalyse_\CarcassInOutStoreAnalyse.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3ClientService\Reports\CarcassInStoreLossAnalyse_\CarcassInStoreLossAnalyse.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3ClientService\Reports\CarcassInStoreLossAnalyse_\InStoreDetail.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3ClientService\Reports\CarcassLossAnalyse_\CarcassLossAnalyse.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>


+ 8
- 2
B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs View File

@ -177,6 +177,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
query.Columns.Add(DQSelectColumn.Field("SaleGoods_ID"));
query.Columns.Add(DQSelectColumn.Field("Name", outGoods));
query.Columns.Add(DQSelectColumn.Field("PickWeight"));
query.Columns.Add(DQSelectColumn.Field("PickType"));
if (butcherDate.Value.HasValue)
query.Where.Conditions.Add(DQCondition.EQ(batch, "Date", butcherDate.Date));
@ -197,6 +198,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
entity.OGoods_ID = (long?)reader[3];
entity.OGoods_Name = (string)reader[4];
entity.OWeight = (decimal?)reader[5];
entity.PickType = (NamedValue<>?)reader[6];
list.Add(entity);
}
}
@ -208,14 +210,16 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
{
var main = new JoinAlias(typeof(CarcassFullInfo));
var livestock = new JoinAlias(typeof(Livestock));
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(batch), DQCondition.EQ(main, "GradeProductBatch_ID", batch, "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));
query.Where.Conditions.Add(DQCondition.EQ(batch, "Date", butcherDate.Date));
if (!batchSelect.IsEmpty)
query.Where.Conditions.Add(DQCondition.EQ("GradeProductBatch_ID", long.Parse(batchSelect.Value)));
var list = new List<TempData>();
@ -273,7 +277,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
n++;
}
var o = inOutInfo.Where(x => x.OGoods_ID.HasValue).GroupBy(x => x.OGoods_ID).OrderBy(x => x.Key);
var o = inOutInfo.Where(x => x.PickType==.).GroupBy(x => x.OGoods_ID).OrderBy(x => x.Key);
n = 0;
foreach (var g in o)
{
@ -357,5 +361,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
public string OGoods_Name { get; set; }
public int ONumber { get; set; }
public decimal? OWeight { get; set; }
public NamedValue<>? PickType { get; set; }
}
}

+ 152
- 0
B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInStoreLossAnalyse_/CarcassInStoreLossAnalyse.cs View File

@ -0,0 +1,152 @@
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;
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 BWP.B3Frameworks.BO.MoneyTemplate;
using Forks.Utils;
using System.Web;
namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInStoreLossAnalyse_
{
class CarcassInStoreLossAnalyse : 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());
mBrowseGrid.OnDetailDataBound = (tr, obj, index) =>
{
var row = obj as DFDataRow;
var lid = string.Format("{0}", row["Livestock_ID"]);
var url = BuildUrl(string.Format("{0}", lid));
url = WpfPageUrl.ToGlobal(url);
SetCellAtt(tr.Cells[4], url, "入库明细");
};
}
string BuildUrl(string livestockID)
{
var url = "~/B3ClientService/Reports/CarcassInStoreLossAnalyse_/InStoreDetail.aspx";
url = AspUtil.AddParamToUrl(url, "Date", dateInput.Text);
url = AspUtil.AddParamToUrl(url, "ProductBatchID", batchSelect.Value);
url = AspUtil.AddParamToUrl(url, "Livestock_ID", livestockID);
return url;
}
void SetCellAtt(HtmlTableCell cell, string url, string title)
{
cell.Attributes["onclick"] = "OpenUrlInTopTab('" + url + "','" + title + "');";
cell.Style.Add("color", "blue");
cell.Style.Add("text-decoration", "underline");
cell.Style.Add("cursor", "pointer");
}
ChoiceBox batchSelect;
DFDateInput dateInput;
private void AddQueryControl(Panel queryPanel)
{
var hp = queryPanel.EAdd(new Panel());
hp.Style.Add("float", "right");
hp.EAdd(new SimpleLabel("生产日期"));
dateInput = hp.EAdd(new DFDateInput() { Date = DateTime.Today });
hp.EAdd(new SimpleLabel("生产批次"));
batchSelect = hp.EAdd(new ChoiceBox(B3ClientServiceConsts.DataSources.) { EnableInputArgument = true, EnableTopItem = true, AutoPostBack = true, Width = Unit.Pixel(180) });
hp.EAdd(new TSButton("开始查询", delegate { StartQuery(); }));
}
private TitlePanel CreateResultTab()
{
var result = new TitlePanel("查询结果");
mBrowseGrid = result.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) });
mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn("Livestock_ID"));
var hPanel = result.EAdd(new HLayoutPanel());
PageUtil.AddExcelExportPanel(hPanel, mBrowseGrid, "白条损耗");
return result;
}
void StartQuery()
{
var main = new JoinAlias(typeof(CarcassFullInfo));
var livestock = new JoinAlias(typeof(Livestock));
var gradeBatch = new JoinAlias("gBatch", typeof(ProductBatch));
var inBatch = new JoinAlias("iBatch", 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(gradeBatch), DQCondition.EQ(main, "GradeProductBatch_ID", gradeBatch, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(inBatch), DQCondition.EQ(main, "ProductBatch_ID", inBatch, "ID"));
query.Columns.Add(DQSelectColumn.Field("Livestock_ID"));
query.GroupBy.Expressions.Add(DQExpression.Field("Livestock_ID"));
query.Columns.Add(DQSelectColumn.Field("Name", livestock, "胴体级别"));
query.GroupBy.Expressions.Add(DQExpression.Field(livestock, "Name"));
var gNumber = DQExpression.Sum(DQExpression.LogicCase(DQCondition.IsNotNull(DQExpression.Field("Livestock_ID")), DQExpression.Value(1), DQExpression.Value(0)));
query.Columns.Add(DQSelectColumn.Create(gNumber.ECastType<int?>(), "头数"));
var gWeight=DQExpression.Subtract(DQExpression.Field("GradeWeight"),DQExpression.Value(4.2m));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(gWeight).ECastType<decimal?>(), "胴体重量"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Sum(gWeight), DQExpression.NullIfZero(gNumber)).ECastType<Money<>?>(), "胴体均重"));
var iNumber = DQExpression.Sum(DQExpression.LogicCase(DQCondition.IsNotNull(DQExpression.Field("InStoreGoods_ID")), DQExpression.Value(1), DQExpression.Value(0)));
query.Columns.Add(DQSelectColumn.Create(iNumber.ECastType<int?>(), "入库头数"));
query.Columns.Add(DQSelectColumn.Sum("InStoreWeight", "入库重量"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Sum(DQExpression.Field("InStoreWeight")), DQExpression.NullIfZero(iNumber)).ECastType<Money<>?>(), "入库均重"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(gNumber, iNumber).ECastType<int?>(), "差异头数"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Subtract(DQExpression.IfNull(gWeight, DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field("InStoreWeight"), DQExpression.Value(0)))).ECastType<decimal?>(), "差异重量"));
if (!batchSelect.IsEmpty)
query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("GradeProductBatch_ID", long.Parse(batchSelect.Value)), DQCondition.EQ("ProductBatch_ID", long.Parse(batchSelect.Value))));
if (!dateInput.IsEmpty)
query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ(gradeBatch, "Date", dateInput.Date), DQCondition.EQ(inBatch, "Date", dateInput.Date)));
var args = new LoadArguments(query);
for (var i = 0; i < query.Columns.Count; i++)
{
if (i <= 1)
continue;
args.SumColumns.Add(i);
args.GroupSumColumns.Add(i);
}
mBrowseGrid.LoadArguments = args;
mBrowseGrid.DataBind();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
StartQuery();
}
}
}

+ 112
- 0
B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInStoreLossAnalyse_/InStoreDetail.cs View File

@ -0,0 +1,112 @@
using BWP.B3ClientService.BO;
using BWP.B3Frameworks.Utils;
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.HtmlControls;
using System.Web.UI.WebControls;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework.Controls;
using TSingSoft.WebPluginFramework.Pages;
using TSingSoft.WebPluginFramework;
using Forks.Utils;
using BWP.B3Frameworks.BO.MoneyTemplate;
using Forks.EnterpriseServices.DataForm;
namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInStoreLossAnalyse_
{
class InStoreDetail : ServerPage
{
long? LiveStockID
{
get
{
if (string.IsNullOrEmpty(Request.QueryString["Livestock_ID"]))
return null;
return long.Parse(Request.QueryString["Livestock_ID"]);
}
}
DateTime? Date
{
get
{
if (string.IsNullOrEmpty(Request.QueryString["Date"]))
return null;
return DateTime.Parse(Request.QueryString["Date"]);
}
}
long? ProductBatchID
{
get
{
if (string.IsNullOrEmpty(Request.QueryString["ProductBatchID"]))
return null;
return long.Parse(Request.QueryString["ProductBatchID"]);
}
}
DFBrowseGrid mBrowseGrid;
protected override void InitForm(HtmlForm form)
{
string lName = string.Empty;
if (LiveStockID.HasValue)
lName = WebBLUtil.GetDmoPropertyByID<string>(typeof(Livestock), "Name", LiveStockID.Value);
form.Controls.Add(new PageTitle(string.Format("{0}入库明细", lName)));
mBrowseGrid = form.EAdd(new DFBrowseGrid(new DFDataTableEditor()) { Width = Unit.Percentage(100) });
mBrowseGrid.Columns.Add(new DFBrowseGridAutoColumn());
}
void StartQuery()
{
var main = new JoinAlias(typeof(CarcassFullInfo));
var goods = new JoinAlias(typeof(Goods));
var gradeBatch = new JoinAlias("gBatch", typeof(ProductBatch));
var inBatch = new JoinAlias("iBatch", typeof(ProductBatch));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(main, "InStoreGoods_ID", goods, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(gradeBatch), DQCondition.EQ(main, "GradeProductBatch_ID", gradeBatch, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(inBatch), DQCondition.EQ(main, "ProductBatch_ID", inBatch, "ID"));
query.Columns.Add(DQSelectColumn.Field("Name", goods, "存货"));
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "Name"));
var iNumber = DQExpression.Sum(DQExpression.Value(1));
query.Columns.Add(DQSelectColumn.Create(iNumber.ECastType<int?>(), "头数"));
query.Columns.Add(DQSelectColumn.Sum("InStoreWeight", "重量"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Sum(DQExpression.Field("InStoreWeight")), DQExpression.NullIfZero(iNumber)).ECastType<Money<>?>(), "入库均重"));
query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("InStoreGoods_ID")));
if (ProductBatchID.HasValue)
query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("GradeProductBatch_ID", ProductBatchID), DQCondition.EQ("ProductBatch_ID", ProductBatchID)));
if (Date.HasValue)
query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ(gradeBatch, "Date", Date), DQCondition.EQ(inBatch, "Date", Date)));
if (LiveStockID.HasValue)
query.Where.Conditions.Add(DQCondition.EQ("Livestock_ID", LiveStockID));
else
query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field("Livestock_ID")));
var args = new LoadArguments(query);
for (var i = 0; i < query.Columns.Count; i++)
{
if (i <= 0)
continue;
args.SumColumns.Add(i);
args.GroupSumColumns.Add(i);
}
mBrowseGrid.LoadArguments = args;
mBrowseGrid.DataBind();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
StartQuery();
}
}
}

+ 1
- 2
B3ClientService/OfflinRpc/CarcassSaleOutStoreRpc.cs View File

@ -59,8 +59,6 @@ namespace BWP.B3ClientService.Rpcs
update.Columns.Add(new DQUpdateColumn("PickWeight", obj.Weight));
update.Columns.Add(new DQUpdateColumn("PickTime", obj.Time));
update.Columns.Add(new DQUpdateColumn("PickNumber", obj.Number));
if (obj.ProductBatch_ID.HasValue)
update.Columns.Add(new DQUpdateColumn("ProductBatch_ID", obj.ProductBatch_ID));
update.Columns.Add(new DQUpdateColumn("PickType", .));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(update);
@ -73,6 +71,7 @@ namespace BWP.B3ClientService.Rpcs
var entity = new CarcassFullInfo();
entity.BarCode = obj.BarCode;
entity.PickWeight = obj.Weight;
entity.PickNumber = obj.Number;
entity.PickTime = obj.Time;
entity.SaleGoods_ID = GetGoodsID(obj.SaleGoods_Code, session);
if (obj.ProductBatch_ID.HasValue)


+ 0
- 3
B3ClientService/OfflinRpc/CarcassTakeOutRpc.cs View File

@ -71,10 +71,7 @@ namespace BWP.B3ClientService.Rpcs
entity.PickNumber = 1;
entity.PickType = .;
if (string.IsNullOrEmpty(entity.BarCode))
{
entity.InStoreGoods_ID = obj.Goods_ID;
entity.ProductBatch_ID = obj.ProductBatch_ID;
}
session.Insert(entity);
}


+ 14
- 6
B3ClientService/Tasks/SyncCarcassInStoreToTrackBack.cs View File

@ -86,8 +86,10 @@ namespace BWP.B3ClientService.Tasks
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "OrderDetail_ID", detail, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.EQ(detail, "WeightBill_ID", weight, "ID"));
var wd = WeightFramerTemp.Register(query, weight);
var wf = new JoinAlias("_farmerQ2", typeof(WeightBill_FarmerDetail));
var farmer = new JoinAlias(typeof(Farmer));
query.From.AddJoin(JoinType.Left, new DQDmoSource(farmer), DQCondition.EQ(wd, "Farmer_ID", farmer, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(wf), DQCondition.EQ(wd, "FID", wf, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(farmer), DQCondition.EQ(wf, "Farmer_ID", farmer, "ID"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("Technics"));
query.Columns.Add(DQSelectColumn.Field("Time"));
@ -97,6 +99,8 @@ namespace BWP.B3ClientService.Tasks
query.Columns.Add(DQSelectColumn.Field("AnimalTestMan", weight));
query.Columns.Add(DQSelectColumn.Field("Name", farmer));
query.Columns.Add(DQSelectColumn.Field("Address", farmer));
query.Columns.Add(DQSelectColumn.Field("Farmer_Name", wf));
query.Columns.Add(DQSelectColumn.Field("Farmer_Address", wf));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Range = SelectRange.Top(500);
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
@ -122,7 +126,11 @@ namespace BWP.B3ClientService.Tasks
info.TestingResult = "合格";
info.Farmer = (string)reader[7];
info.PigFarmAddress = (string)reader[8];
info.ID = (long)reader[9];
if (string.IsNullOrEmpty(info.Farmer))
info.Farmer = (string)reader[9];
if (string.IsNullOrEmpty(info.PigFarmAddress))
info.PigFarmAddress = (string)reader[10];
info.ID = (long)reader[11];
list.Add(info);
}
}
@ -138,18 +146,18 @@ namespace BWP.B3ClientService.Tasks
class WeightFramerTemp
{
public long WeightID { get; set; }
public long? Farmer_ID { get; set; }
public long FID { get; set; }
public static JoinAlias Register(DQueryDom root, JoinAlias weight)
{
var query = new DQueryDom(new JoinAlias(typeof(WeightBill_FarmerDetail)));
var query = new DQueryDom(new JoinAlias("_farmer1", typeof(WeightBill_FarmerDetail)));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
query.Columns.Add(DQSelectColumn.Max("Farmer_ID"));
query.Columns.Add(DQSelectColumn.Max("ID"));
query.GroupBy.Expressions.Add(DQExpression.Field("WeightBill_ID"));
query.Where.Conditions.Add(DQCondition.EQ("DeleteState", false));
var alias = new JoinAlias(typeof(WeightFramerTemp));
root.RegisterQueryTable(typeof(WeightFramerTemp), new string[] { "WeightID", "Farmer_ID" }, query);
root.RegisterQueryTable(typeof(WeightFramerTemp), new string[] { "WeightID", "FID" }, query);
root.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(weight, "ID", alias, "WeightID"));
return alias;
}


+ 2
- 0
WebFolder/config/plugins/B3ClientService.plugin View File

@ -48,6 +48,7 @@
<Function index="5" name="白条进销存"/>
<Function index="6" name="条段进销存"/>
<Function index="7" name="条段损耗"/>
<Function index="8" name="白条入库差异"/>
</FunctionGroup>
<FunctionGroup name ="操作员" roleSchemas="default">
<Function index="0" name="访问" />
@ -135,6 +136,7 @@
<Menu id="0032" name="MES系统/MES报表展示/白条进销存" roles="B3ClientService.报表展示.白条进销存" url="B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.aspx"/>
<Menu id="0033" name="MES系统/MES报表展示/条段进销存" roles="B3ClientService.报表展示.条段进销存" url="B3ClientService/Reports/SectionInOutStoreAnalyse_/SectionInOutStoreAnalyse.aspx"/>
<Menu id="0034" name="MES系统/MES报表展示/条段损耗" roles="B3ClientService.报表展示.条段损耗" url="B3ClientService/Reports/SectionLossAnalyse_/SectionLossAnalyse.aspx"/>
<Menu id="0035" name="MES系统/MES报表展示/白条入库差异" roles="B3ClientService.报表展示.白条入库差异" url="B3ClientService/Reports/CarcassInStoreLossAnalyse_/CarcassInStoreLossAnalyse.aspx"/>
</Menus>
<Features>
</Features>


Loading…
Cancel
Save