Browse Source

加后台任务提取发货扫码信息到屠宰系统。

master
yibo 7 years ago
parent
commit
40ee6458d5
2 changed files with 116 additions and 0 deletions
  1. +5
    -0
      B3CowButcherManageToSale/B3CowButcherManageToSale.csproj
  2. +111
    -0
      B3CowButcherManageToSale/TypeIOCs/SaleOutStoreBLTypeIoc.cs

+ 5
- 0
B3CowButcherManageToSale/B3CowButcherManageToSale.csproj View File

@ -54,6 +54,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\BwpB3Project\tsref\Debug\Forks.Utils.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=4.0.3.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
@ -76,6 +80,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TypeIOCs\SaleOutStoreBLTypeIoc.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Rpcs\" />


+ 111
- 0
B3CowButcherManageToSale/TypeIOCs/SaleOutStoreBLTypeIoc.cs View File

@ -0,0 +1,111 @@
using BWP.B3CowButcherManage.Rpcs;
using BWP.B3Frameworks;
using BWP.B3Sale.BL;
using BWP.B3Sale.BO;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
using TSingSoft.WebPluginFramework.QueueTasks;
namespace BWP.B3CowButcherManageToSale.TypeIOCs
{
[TypeIOC(typeof(SaleOutStoreBL), typeof(SaleOutStoreBL.BillBLIOCs.AfterCheck))]
public class SaleOutStoreCheckBLTypeIoc : SaleOutStoreBL.BillBLIOCs.AfterCheck
{
public void Invoke(IDmoContext context, SaleOutStore dmo)
{
var task = new SaleInfoToButcherTask(dmo.ID);
task.AddTaskUser_ID = BLContext.User.ID;
task.DomainUser_ID = DomainContext.Current.DomainUser.ID;
QueueTaskService.Add(task);
}
}
[Serializable]
class SaleInfoToButcherTask : QueueTaskBase
{
public long BillID { get; set; }
public long DomainUser_ID { get; set; }
public SaleInfoToButcherTask(long id)
{
BillID = id;
}
public override bool PersistTask
{
get
{
return true;
}
}
protected override bool SingleTaskInQueue
{
get
{
return true;
}
}
public override void Execute(QueueTaskContext context)
{
using (var scope = new SpecialDomainUserBLScope(DomainUser_ID))
{
using (var session = Dmo.NewSession())
{
var infos = GetBarCodeInfos(session, BillID);
if(infos.Count==0)
return;
var json = JsonConvert.SerializeObject(infos);
BarCodeProductRpc.UploadSaleOutInfo(json);
}
}
}
List<object> GetBarCodeInfos(IDmoSession session, long id)
{
var detail = new JoinAlias(typeof(SaleOutStore_Detail));
var bill = new JoinAlias(typeof(SaleOutStore));
var scan = new JoinAlias(typeof(WeightingInfo_ScanDetail));
var query = new DQueryDom(detail);
query.From.AddJoin(JoinType.Left, new DQDmoSource(bill), DQCondition.EQ(detail, "SaleOutStore_ID", bill, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(scan), DQCondition.EQ(detail, "ID", scan, "Detail_ID"));
query.Columns.Add(DQSelectColumn.Field("LoadTime", bill));
query.Columns.Add(DQSelectColumn.Field("Weight", scan));
query.Columns.Add(DQSelectColumn.Field("Detail_ID", scan));
query.Columns.Add(DQSelectColumn.Field("BarCode", scan));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "SaleOutStore_ID", id), DQCondition.IsNotNull(DQExpression.Field(scan, "ID"))));
query.Where.Conditions.Add(DQCondition.InEQ(scan, "BarCode", ""));
var list = new List<object>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new
{
SaleTime = (DateTime)reader[0],
SaleWeight = (decimal)reader[1],
SaleDetailID = (long)reader[2],
BarCode = (string)reader[3]
};
list.Add(entity);
}
}
return list;
}
public override string Name
{
get { return string.Format("销售出库单No.{0}扫码信息到屠宰系统", BillID); }
}
}
}

Loading…
Cancel
Save