Browse Source

需求单No.141650

master
wugang 7 years ago
parent
commit
3b1d73db6e
5 changed files with 491 additions and 1 deletions
  1. +13
    -1
      B3_QiLianMuGe.Web/B3_QiLianMuGe.Web.csproj
  2. +175
    -0
      B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.cs
  3. +33
    -0
      B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.xml
  4. +268
    -0
      B3_QiLianMuGe.Web/Pages/Overlays/StockTakeEdit_Ext.cs
  5. +2
    -0
      B3_QiLianMuGe.Web/PluginClass.cs

+ 13
- 1
B3_QiLianMuGe.Web/B3_QiLianMuGe.Web.csproj View File

@ -74,6 +74,10 @@
<HintPath>D:\BwpB3Project\tsref\Debug\B3UnitedInfos.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\B3UnitedInfos.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="B3UnitedInfos.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a04fa581c0f74d43, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\B3UnitedInfos.Web.dll</HintPath>
</Reference>
<Reference Include="Forks.EnterpriseServices, Version=3.1.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL"> <Reference Include="Forks.EnterpriseServices, Version=3.1.0.0, Culture=neutral, PublicKeyToken=7254430f49d10aae, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>D:\BwpB3Project\tsref\Debug\Forks.EnterpriseServices.dll</HintPath> <HintPath>D:\BwpB3Project\tsref\Debug\Forks.EnterpriseServices.dll</HintPath>
@ -136,6 +140,9 @@
<Compile Include="..\..\..\version\Customer_version.cs"> <Compile Include="..\..\..\version\Customer_version.cs">
<Link>Customer_version.cs</Link> <Link>Customer_version.cs</Link>
</Compile> </Compile>
<Compile Include="Pages\B3_QiLianMuGe\Dialogs\QueryBarCode.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3_QiLianMuGe\Test.cs"> <Compile Include="Pages\B3_QiLianMuGe\Test.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
@ -157,6 +164,9 @@
<Compile Include="Pages\Overlays\SaleOutStoreEdit_Ext.cs"> <Compile Include="Pages\Overlays\SaleOutStoreEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\Overlays\StockTakeEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="PluginClass.cs" /> <Compile Include="PluginClass.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TypeIOCs\InputAnalyseReportBeforeAddQueryControls.cs" /> <Compile Include="TypeIOCs\InputAnalyseReportBeforeAddQueryControls.cs" />
@ -180,7 +190,9 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Pages\B3_QiLianMuGe\ToK3Cloud\PayToK3CloudList.xml" /> <EmbeddedResource Include="Pages\B3_QiLianMuGe\ToK3Cloud\PayToK3CloudList.xml" />
</ItemGroup> </ItemGroup>
<ItemGroup />
<ItemGroup>
<EmbeddedResource Include="Pages\B3_QiLianMuGe\Dialogs\QueryBarCode.xml" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.


+ 175
- 0
B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.cs View File

@ -0,0 +1,175 @@
using BWP.B3UnitedInfos.BO;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
using Forks.Utils.Collections;
using TSingSoft.WebControls2;
using BWP.Web.WebControls;
using BWP.Web.Layout;
using Forks.EnterpriseServices.DomainObjects2;
using BWP.B3Frameworks.Utils;
using BWP.B3UnitedInfos;
using BWP.Web.Utils;
using BWP.B3CowButcherManage.BO;
using Forks.EnterpriseServices.SqlDoms;
using System.Web.UI;
namespace BWP.Web.Pages.B3_QiLianMuGe.Dialogs
{
class QueryBarCode : DmoMultiSelectDialog<StockTakeCEUploadBarCode, BWP.B3CowButcherManage.BO.Goods>
{
protected override void SetResultFromDFDataRow(BWP.B3CowButcherManage.BO.Goods dmo, DFDataRow row)
{
//dmo.Goods_ID = (long)row["ID"];
//dmo.Number = (Money<decimal>?)row["数量"];
//dmo.SecondNumber = (Money<decimal>?)row["辅数量"];
//dmo.BrandItem_ID = (long?)row["品牌项"];
//if (dmo.BrandItem_ID != null)
// dmo.BrandItem_Name = WebBLUtil.GetDmoPropertyByID<string>(typeof(BrandItem), "Name", dmo.BrandItem_ID.Value);
}
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
{
base.InitForm(form);
//form.Controls.Add(new GoodsEditGridScriptManager(base.queryGrid, "数量", "辅数量", "UnitConvertDirection", "MainUnitRatio", "SecondUnitRatio"));
}
protected override void CreateQuery(VLayoutPanel vPanel)
{
var layoutManager = new LayoutManager("", mDFInfo, mQueryContainer);
//layoutManager.Add("GoodsPropertyCatalog_ID");
//layoutManager["GoodsPropertyCatalog_ID"].ExtDmoType = typeof(GoodsProperty);
layoutManager.Add("ScanTime", new SimpleLabel("扫描时间"), QueryCreator.TimeRange(mDFInfo.Fields["ScanTime"],mQueryContainer, "MinScanTime", "MaxScanTime"));
layoutManager.Add("UploadTime", new SimpleLabel("上传时间"), QueryCreator.TimeRange(mDFInfo.Fields["UploadTime"], mQueryContainer, "MinUploadTime", "MaxUploadTime"));
var config = new AutoLayoutConfig();
config.Add("BarCode");
config.Add("ScanTime");
config.Add("UploadTime");
layoutManager.Config = config;
vPanel.Add(layoutManager.CreateLayout());
base.CreateQuery(vPanel);
}
protected override void AddSelectButtons(Control parent)
{
}
protected override void CreateQueryGridColumns(DFBrowseGrid grid)
{
grid.Columns.Add(new DFBrowseGridColumn("BarCode") { HeaderText = "条码"});
grid.Columns.Add(new DFBrowseGridColumn("goodsName") { HeaderText = "存货名称"});
grid.Columns.Add(new DFBrowseGridColumn("MainUnit") { HeaderText = "主单位"});
grid.Columns.Add(new DFBrowseGridColumn("PWeight") { HeaderText = "主数量"});
grid.Columns.Add(new DFBrowseGridColumn("SecondUnit") { HeaderText = "辅单位"});
grid.Columns.Add(new DFBrowseGridColumn("Num") { HeaderText = "辅数量"});
grid.Columns.Add(new DFBrowseGridColumn("ScanTime") { HeaderText = "扫描时间" });
grid.Columns.Add(new DFBrowseGridColumn("UploadTime") { HeaderText = "上传时间" });
}
protected override Forks.EnterpriseServices.DomainObjects2.DQuery.DQueryDom GetQueryDom()
{
var ceBarCode = new JoinAlias("_s",typeof(StockTakeCEUploadBarCode));
var barCode = new JoinAlias("_l",typeof(BarCodeProductionInfo));
var rightBarCode = new JoinAlias("_r",typeof(BarCodeProductionInfo));
var goods = new JoinAlias("_g",typeof(BWP.B3CowButcherManage.BO.Goods));
var query = new DQueryDom(ceBarCode);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(barCode),DQCondition.And(DQCondition.EQ(barCode,"BarType",3),DQCondition.EQ(ceBarCode, "BarCode", barCode, "BarCode")));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods),DQCondition.EQ(barCode, "Goods_ID", goods, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(rightBarCode), DQCondition.EQ(barCode, "ID", rightBarCode, "PackageID"));
query.Columns.Add(DQSelectColumn.Field("BarCode", ceBarCode));
query.Columns.Add(DQSelectColumn.Field("ScanTime", ceBarCode));
query.Columns.Add(DQSelectColumn.Field("UploadTime", ceBarCode));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(goods, "Name"), "goodsName"));
query.Columns.Add(DQSelectColumn.Field("MainUnit", goods));
query.Columns.Add(DQSelectColumn.Field("SecondUnit", goods));
query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.IsNull(DQExpression.Field(goods, "PackageWeight")),DQExpression.Sum(DQExpression.Field(rightBarCode,"Weight")), DQExpression.Field(goods, "PackageWeight")), "PWeight"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Count(DQExpression.Field(rightBarCode,"ID")), "Num"));
if (!string.IsNullOrEmpty(Request.QueryString["Store_ID"]))
{
query.Where.Conditions.Add(DQCondition.Like(barCode, "Store_ID", Request.QueryString["Store_ID"]));
}
var txtbarCode = mQueryContainer.GetControl<DFTextBox>("BarCode");
if (!txtbarCode.IsEmpty)
{
query.Where.Conditions.Add(DQCondition.Like(ceBarCode,"BarCode",txtbarCode.Text));
}
var minScanTime = mQueryContainer.GetControl<DFDateTimeInput>("MinScanTime");
var maxScanTime = mQueryContainer.GetControl<DFDateTimeInput>("MaxScanTime");
var minUploadTime = mQueryContainer.GetControl<DFDateTimeInput>("MinUploadTime");
var maxUploadTime = mQueryContainer.GetControl<DFDateTimeInput>("MaxUploadTime");
if (!minScanTime.IsEmpty)
{
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(ceBarCode, "ScanTime", minScanTime.Value));
}
if (!maxScanTime.IsEmpty)
{
query.Where.Conditions.Add(DQCondition.LessThanOrEqual(ceBarCode, "ScanTime", maxScanTime.Value));
}
if (!minUploadTime.IsEmpty)
{
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(ceBarCode, "UploadTime", minUploadTime.Value));
}
if (!maxUploadTime.IsEmpty)
{
query.Where.Conditions.Add(DQCondition.LessThanOrEqual(ceBarCode, "UploadTime", maxUploadTime.Value));
}
query.GroupBy.Expressions.Add(DQExpression.Field("BarCode"));
query.GroupBy.Expressions.Add(DQExpression.Field("ScanTime"));
query.GroupBy.Expressions.Add(DQExpression.Field("UploadTime"));
query.GroupBy.Expressions.Add(DQExpression.Field(goods,"Name"));
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "MainUnit"));
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "SecondUnit"));
query.GroupBy.Expressions.Add(DQExpression.Field(goods, "PackageWeight"));
var ceBarCode2 = new JoinAlias("_s2",typeof(StockTakeCEUploadBarCode));
var barCode2 = new JoinAlias("_l2",typeof(BarCodeProductionInfo));
var goods2 = new JoinAlias("_g2",typeof(BWP.B3CowButcherManage.BO.Goods));
var query2 = new DQueryDom(ceBarCode2);
query2.From.AddJoin(JoinType.Inner, new DQDmoSource(barCode2), DQCondition.And(DQCondition.InEQ(barCode2, "BarType", 3), DQCondition.EQ(ceBarCode2, "BarCode", barCode2, "BarCode")));
query2.From.AddJoin(JoinType.Left, new DQDmoSource(goods2), DQCondition.EQ(barCode2, "Goods_ID", goods2, "ID"));
query2.Columns.Add(DQSelectColumn.Field("BarCode", ceBarCode2));
query2.Columns.Add(DQSelectColumn.Field("ScanTime", ceBarCode2));
query2.Columns.Add(DQSelectColumn.Field("UploadTime", ceBarCode2));
query2.Columns.Add(DQSelectColumn.Create(DQExpression.Field(goods2, "Name"), "goodsName"));
query2.Columns.Add(DQSelectColumn.Field("MainUnit", goods2));
query2.Columns.Add(DQSelectColumn.Field("SecondUnit", goods2));
query2.Columns.Add(DQSelectColumn.Field("Weight", barCode2, "PWeight"));
query2.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<int>("1"), "Num"));
if (!txtbarCode.IsEmpty)
{
query2.Where.Conditions.Add(DQCondition.Like(ceBarCode2, "BarCode", txtbarCode.Text));
}
if (!minScanTime.IsEmpty)
{
query2.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(ceBarCode2, "ScanTime", minScanTime.Value));
}
if (!maxScanTime.IsEmpty)
{
query2.Where.Conditions.Add(DQCondition.LessThanOrEqual(ceBarCode2, "ScanTime", maxScanTime.Value));
}
if (!minUploadTime.IsEmpty)
{
query2.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(ceBarCode2, "UploadTime", minUploadTime.Value));
}
if (!maxUploadTime.IsEmpty)
{
query2.Where.Conditions.Add(DQCondition.LessThanOrEqual(ceBarCode2, "UploadTime", maxUploadTime.Value));
}
if (!string.IsNullOrEmpty(Request.QueryString["Store_ID"]))
{
query2.Where.Conditions.Add(DQCondition.EQ(barCode2, "Store_ID", long.Parse(Request.QueryString["Store_ID"].ToString())));
}
query.UnionNext.Select = query2;
query.UnionNext.Type = UnionType.Default;
return query;
}
}
}

+ 33
- 0
B3_QiLianMuGe.Web/Pages/B3_QiLianMuGe/Dialogs/QueryBarCode.xml View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
<Field name="ID"/>
</Columns>
<From>
<DmoClass class="BWP.B3CowButcherManage.BO.StockTakeCEUploadBarCode,B3CowButcherManage"/>
</From>
<Where>
<And>
<GreaterThanOrEqual>
<Field name="ScanTime"/>
<QBE paramName="MinScanTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="ScanTime"/>
<QBE paramName="MaxScanTime"/>
</LessThanOrEqual>
<GreaterThanOrEqual>
<Field name="UploadTime"/>
<QBE paramName="MinUploadTime" />
</GreaterThanOrEqual>
<LessThanOrEqual>
<Field name="UploadTime"/>
<QBE paramName="MaxUploadTime"/>
</LessThanOrEqual>
<Contains>
<Field name="BarCode"/>
<QBE paramName="BarCode"/>
</Contains>
</And>
</Where>
</Select>

+ 268
- 0
B3_QiLianMuGe.Web/Pages/Overlays/StockTakeEdit_Ext.cs View File

@ -0,0 +1,268 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using BWP.B3CowButcherManage.BO;
using BWP.B3Frameworks;
using BWP.Web.Pages.B3UnitedInfos.Bills.StockTake_;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.Overlays
{
class StockTakeEdit_Ext: StockTakeEdit
{
protected override void AddCustomerToolsPanel(HLayoutPanel hPanel)
{
hPanel.Add(new LiteralControl("&nbsp;&nbsp;"));
hPanel.Add(new TSButton("根据条码载入盘点数量", delegate
{
mDFContainer.GetFromUI();
_detailGrid.GetFromUI();
var list = GetBarCodeData();
var dic = new Dictionary<string, Tuple<Money<decimal>, Money<decimal>?>>();
foreach (var detail in Dmo.Details)
{
var results = list.Where(x => x.GoodsBatch_ID == detail.GoodsBatch_ID && x.Goods_ID == detail.Goods_ID);
if (results.Count() > 0)
{
var first = results.First();
detail.TakeNumber = first.Weight;
detail.SecondTakeNumber = first.Num;
}
}
_detailGrid.DataBind();
AspUtil.Alert(this, "操作成功");
}));
var btn_x = hPanel.Add(new DialogButton { Text = "查看本库条码", Url = "~/B3_QiLianMuGe/Dialogs/QueryBarCode.aspx?Store_ID='+__DFContainer.getValue('Store_ID')+'" });
btn_x.Click += delegate
{
};
var deleteBtn = new TSButton("删除盘点条码");
deleteBtn.Click += delegate {
var dom = new DQDeleteDom(typeof(StockTakeCEUploadBarCode));
using (var context = new TransactionContext())
{
context.Session.ExecuteNonQuery(dom);
context.Session.Commit();
}
AspUtil.Alert(this, "操作成功");
};
deleteBtn.Attributes.Add("OnClick", "javascript:return confirm('确认要删除所有仓库盘点的条码吗?请先确认所有仓库是否都盘点完毕后再删除,删除条码后无法恢复')");
hPanel.Add(deleteBtn);
}
class MinSaelBarCode
{
public string PackageBarCode { get; set; }
public string BarCode { get; set; }
public long? Goods_ID { get; set; }
public string Goods_Name { get; set; }
public string Goods_Code { get; set; }
public decimal? Weight { get; set; }
public string Product_Batch { get; set; }
public decimal? PackageWeight { get; set; }
public long? PackageID { get; set; }
public string PackageProduct_Batch { get; set; }
public DateTime? RightInStoreTime { get; set; }
public bool? IsOpen { get; set; }
public long? Store_ID { get; set; }
public string Store_Name { get; set; }
public bool? IsAssignGoods { get; set; }
public long? AssignBillID { get; set; }
public int? PickType { get; set; }
public string RightProduct_Batch { get; set; }
}
private class BarCodeData
{
public long? Goods_ID { get; set; }
public string Product_Batch { get; set; }
public decimal? Weight { get; set; }
public decimal? Num { get; set; }
public long? GoodsBatch_ID { get; set; }
}
private List<BarCodeData> GetBarCodeData()
{
var uploadBarCode = new JoinAlias(typeof(StockTakeCEUploadBarCode));
var left = new JoinAlias("_l", typeof(BarCodeProductionInfo));
var right = new JoinAlias("_r", typeof(BarCodeProductionInfo));
var goods = new JoinAlias("_g", typeof(BWP.B3CowButcherManage.BO.Goods));
var query = new DQueryDom(left);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(uploadBarCode), DQCondition.EQ(left, "BarCode", uploadBarCode, "BarCode"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(right), DQCondition.EQ(left, "ID", right, "PackageID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(left, "Goods_ID", goods, "ID"));
var arr = new string[] { "Goods_ID", "Goods_Name", "Goods_Code", "Weight", "InStoreTime", "Store_ID", "Store_Name", "IsAssignGoods", "AssignBillID", "PickType" };
foreach (var f in arr)
query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.EQ(left, "BarType", 3), DQExpression.Field(right, f), DQExpression.Field(left, f)), f));
query.Columns.Add(DQSelectColumn.Field("PackageWeight", goods));
query.Columns.Add(DQSelectColumn.Field("PackageID", right));
query.Columns.Add(DQSelectColumn.Field("Product_Batch", left));
query.Columns.Add(DQSelectColumn.Field("IsOpen", left));
query.Columns.Add(DQSelectColumn.Field("Product_Batch", right));
var list = new List<MinSaelBarCode>();
using (var contex = new TransactionContext())
{
using (var reader = contex.Session.ExecuteReader(query))
{
while (reader.Read())
{
decimal? packageWeight = null;
var num = (Money<decimal>?)reader[10];
if (num != null)
{
packageWeight = num.Value.Value;
}
var obj = new MinSaelBarCode()
{
Goods_ID = (long?)reader[0],
Goods_Name = (string)reader[1],
Goods_Code = (string)reader[2],
Weight = (decimal?)reader[3],
RightInStoreTime = (DateTime?)reader[4],
Store_ID = (long?)reader[5],
Store_Name = (string)reader[6],
IsAssignGoods = (bool?)reader[7],
AssignBillID = (long?)reader[8],
PickType = (int?)reader[9],
PackageWeight = packageWeight,
PackageID = (long?)reader[11],
Product_Batch = (string)reader[12],
IsOpen = (bool?)reader[13],
RightProduct_Batch = (string)reader[14],
};
list.Add(obj);
}
}
}
var weightList = new List<BarCodeData>();
var results = list.Where(x => x.Goods_ID != null && x.Store_ID == Dmo.Store_ID);
if (results.Count() > 0)
{
var packageGroups = results.Where(x=>x.PackageID!=null).GroupBy(x => x.PackageID);
foreach (var package in packageGroups)
{
var datas = package.Where(x => x.PackageWeight != null);
if (datas.Count() > 0)
{
var result = datas.First();
weightList.Add(new BarCodeData { Goods_ID = result.Goods_ID, Product_Batch = result.Product_Batch, Weight = result.PackageWeight, Num = datas.Count()});
}else
{
foreach (var item in package)
{
weightList.Add(new BarCodeData { Goods_ID = item.Goods_ID, Product_Batch = item.RightProduct_Batch, Weight = item.Weight, Num = 1 });
}
}
}
var items = results.Where(x => x.PackageID == null);
foreach (var item in items)
{
weightList.Add(new BarCodeData { Goods_ID = item.Goods_ID, Product_Batch = item.Product_Batch, Weight = item.Weight, Num = 1 });
}
}
var batchGroups = weightList.GroupBy(x => x.Product_Batch);
foreach (var group in batchGroups)
{
var tuples = new List<Tuple<long,long>>();
var goodsIds = group.Select(x => x.Goods_ID ?? 0).Distinct();
var goodsLists = SplitListWithCount(goodsIds.ToList(), 1000);
foreach (var goodslist in goodsLists)
{
var batchs = QuerytGoodsBatch(group.Key, goodslist);
batchs.ForEach(x => tuples.Add(x));
}
foreach (var item in group)
{
var batch = tuples.Where(x => x.Item1 == item.Goods_ID);
if(batch.Count() > 0)
{
item.GoodsBatch_ID = batch.First().Item2;
}
}
}
var details = new List<BarCodeData>();
var goodsGroups = weightList.GroupBy(x => x.Goods_ID);
foreach (var group in goodsGroups)
{
var goodsBatchGroups = group.GroupBy(x=>x.GoodsBatch_ID);
foreach (var item in goodsBatchGroups)
{
var codeData = new BarCodeData();
codeData.Goods_ID = group.Key;
codeData.GoodsBatch_ID = item.Key;
codeData.Weight = item.Sum(x=>x.Weight);
codeData.Num = item.Sum(x=>x.Num);
details.Add(codeData);
}
}
return details;
}
private List<Tuple<long, long>> QuerytGoodsBatch(string batch, IEnumerable<long> goodsIds)
{
var query = new DQueryDom(new JoinAlias(typeof(BWP.B3UnitedInfos.BO.GoodsBatch)));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.InList(DQExpression.Field("Goods_ID"), goodsIds.Select(x => DQExpression.Value(x)).ToArray()), DQCondition.EQ("Name", batch)));
query.Where.Conditions.Add(DQCondition.EQ("Stopped", false));
query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));
var list = new List<Tuple<long, long>>();
using (var context2 = new TransactionContext())
{
using (var reader = context2.Session.ExecuteReader(query))
{
while (reader.Read())
{
list.Add(new Tuple<long, long>((long)reader[0], (long)reader[1]));
}
}
}
return list;
}
private List<List<T>> SplitListWithCount<T>(IList<T> list, int count)
{
var num = list.Count / count;
var num2 = list.Count % count;
var results = new List<List<T>>();
for (int i = 1; i <= num; i++)
{
var l = new List<T>();
for (int j = (i - 1) * count; j < count * i; j++)
{
l.Add(list[j]);
}
results.Add(l);
}
if (num2 > 0)
{
var l = new List<T>();
for (int i = num * count; i < list.Count; i++)
{
l.Add(list[i]);
}
results.Add(l);
}
return results;
}
}
}

+ 2
- 0
B3_QiLianMuGe.Web/PluginClass.cs View File

@ -4,6 +4,7 @@ using BWP.Web.Pages.B3CowButcherManage.Bills.CostShare_;
using BWP.Web.Pages.B3CowButcherManage.Bills.Output_; using BWP.Web.Pages.B3CowButcherManage.Bills.Output_;
using BWP.Web.Pages.B3CowButcherManage.Bills.Picking_; using BWP.Web.Pages.B3CowButcherManage.Bills.Picking_;
using BWP.Web.Pages.B3Sale.Bills.SaleOutStore_; using BWP.Web.Pages.B3Sale.Bills.SaleOutStore_;
using BWP.Web.Pages.B3UnitedInfos.Bills.StockTake_;
using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework;
using TSingSoft.WebPluginFramework.Pages; using TSingSoft.WebPluginFramework.Pages;
@ -21,6 +22,7 @@ namespace BWP.B3_QiLianMuGe.Web
WpfPageFactory.RegisterPageOverlay(typeof(OutputEdit).FullName, typeof(BWP.Web.Pages.Overlays.OutputEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(OutputEdit).FullName, typeof(BWP.Web.Pages.Overlays.OutputEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(CostShareEdit).FullName, typeof(BWP.Web.Pages.Overlays.CostShareEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(CostShareEdit).FullName, typeof(BWP.Web.Pages.Overlays.CostShareEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(PickingEdit).FullName, typeof(BWP.Web.Pages.Overlays.PickingEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(PickingEdit).FullName, typeof(BWP.Web.Pages.Overlays.PickingEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(StockTakeEdit).FullName, typeof(BWP.Web.Pages.Overlays.StockTakeEdit_Ext).FullName);
} }
} }
} }

Loading…
Cancel
Save