Browse Source

成品入库上传;。

master
yibo 8 years ago
parent
commit
0b5321001e
5 changed files with 104 additions and 86 deletions
  1. +1
    -0
      B3ClientService/B3ClientService.csproj
  2. +9
    -6
      B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs
  3. +29
    -79
      B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs
  4. +1
    -1
      B3ClientService/Tasks/UpdateLoad/UploadTest.cs
  5. +64
    -0
      B3ClientService/Tasks/UpdateLoad/UploadTrunksIousOutInStoreRecord.cs

+ 1
- 0
B3ClientService/B3ClientService.csproj View File

@ -177,6 +177,7 @@
<Compile Include="Tasks\UpdateLoad\UploadOrderDetail.cs" /> <Compile Include="Tasks\UpdateLoad\UploadOrderDetail.cs" />
<Compile Include="Tasks\UpdateLoad\UploadSecondOrder.cs" /> <Compile Include="Tasks\UpdateLoad\UploadSecondOrder.cs" />
<Compile Include="Tasks\UpdateLoad\UploadTest.cs" /> <Compile Include="Tasks\UpdateLoad\UploadTest.cs" />
<Compile Include="Tasks\UpdateLoad\UploadTrunksIousOutInStoreRecord.cs" />
<Compile Include="Tasks\UpdateLoad\UpLoadWeightBill.cs" /> <Compile Include="Tasks\UpdateLoad\UpLoadWeightBill.cs" />
<Compile Include="ClientServiceUtils.cs" /> <Compile Include="ClientServiceUtils.cs" />
<Compile Include="Utils\SegmentationByPproductTraceBL.cs" /> <Compile Include="Utils\SegmentationByPproductTraceBL.cs" />


+ 9
- 6
B3ClientService/BO/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecord.cs View File

@ -9,7 +9,7 @@ namespace BWP.B3ClientService.BO
{ {
[Serializable] [Serializable]
[DFClass] [DFClass]
public class TrunksIousOutInStoreRecord: ClientSyncBase
public class TrunksIousOutInStoreRecord : SyncBill
{ {
public string BarCode { get; set; } public string BarCode { get; set; }
public long? Goods_ID { get; set; } public long? Goods_ID { get; set; }
@ -28,17 +28,20 @@ namespace BWP.B3ClientService.BO
public decimal? Weight { get; set; } public decimal? Weight { get; set; }
public string CarcassStatus { get; set; }// 胴体状态
public bool? IsSubmited { get; set; }//界面有2个状态 待提交 已提交 , 有条码有重量为已提交 public bool? IsSubmited { get; set; }//界面有2个状态 待提交 已提交 , 有条码有重量为已提交
public decimal? LossWeight{ get; set; }//损耗
public long? WorkShop_ID { get; set; }
public long? WorkUnit_ID { get; set; }
public long? Store_ID { get; set; }
public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的
public long? ProductBatch_ID { get; set; }
public string Store { get; set; }
public string ProductBatch { get; set; }
public int RowVersion { get; set; }
public DateTime? CreateTime { get; set; }
} }
} }

+ 29
- 79
B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs View File

@ -1,5 +1,4 @@

using System;
using System;
using System.Linq; using System.Linq;
using BWP.B3ClientService.BO; using BWP.B3ClientService.BO;
using BWP.B3ClientService.Utils; using BWP.B3ClientService.Utils;
@ -11,11 +10,10 @@ using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms; using Forks.EnterpriseServices.SqlDoms;
using Newtonsoft.Json; using Newtonsoft.Json;
using TSingSoft.WebPluginFramework; using TSingSoft.WebPluginFramework;
using System.Web;
namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
{ {
[Rpc] [Rpc]
public static class TrunksIousOutInStoreRecordRpc public static class TrunksIousOutInStoreRecordRpc
{ {
@ -25,8 +23,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord))); var query = new DQueryDom(new JoinAlias(typeof(TrunksIousOutInStoreRecord)));
query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("IsSubmited")), DQCondition.EQ("IsSubmited", false))); query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field("IsSubmited")), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
var list = query.EExecuteDmoList<TrunksIousOutInStoreRecord>("ID", "BarCode", "Goods_Name", "Number", "Weight", "LossWeight");
var list = query.EExecuteDmoList<TrunksIousOutInStoreRecord>("ID", "BarCode", "Goods_Name", "Number", "Weight");
return JsonConvert.SerializeObject(list); return JsonConvert.SerializeObject(list);
} }
@ -38,68 +35,45 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Range = SelectRange.Top(50); query.Range = SelectRange.Top(50);
var list = query.EExecuteDmoList<TrunksIousOutInStoreRecord>("ID", "BarCode", "Goods_Name", "Number","BeforeWeight", "Weight", "LossWeight");
var list = query.EExecuteDmoList<TrunksIousOutInStoreRecord>("ID", "BarCode", "Goods_Name", "Number", "BeforeWeight", "Weight");
return JsonConvert.SerializeObject(list); return JsonConvert.SerializeObject(list);
} }
[Rpc] [Rpc]
public static long SetWeight(long id,decimal weight,string biaoshi,string store)
{
var query = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
query.Columns.Add(new DQUpdateColumn("Weight", weight));
query.Columns.Add(new DQUpdateColumn("IsSubmited", true));
if (!string.IsNullOrWhiteSpace(biaoshi))
{
query.Columns.Add(new DQUpdateColumn("BiaoShi", biaoshi));
}
if (!string.IsNullOrWhiteSpace(store))
{
query.Columns.Add(new DQUpdateColumn("Store", store));
}
// query.Columns.Add(new DQUpdateColumn("LossWeight", ));
//todo 这里要算损耗
query.Where.Conditions.Add(DQCondition.EQ("ID", id));
query.EExecute();
return id;
}
[Rpc]
public static long Insert(string json)
public static long SetWeight(string json)
{ {
var clientRecord = JsonConvert.DeserializeObject<TrunksIousOutInStoreRecordDto>(json);
var entity = JsonConvert.DeserializeObject<TrunksIousOutInStoreRecord>(json);
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
var record = new TrunksIousOutInStoreRecord();
DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID", "CreateTime");
session.Insert(record);
var update = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
update.Columns.Add(new DQUpdateColumn("Creator", entity.Creator));
update.Columns.Add(new DQUpdateColumn("Weight", entity.Weight));
update.Columns.Add(new DQUpdateColumn("WorkShop_ID", entity.WorkShop_ID));
update.Columns.Add(new DQUpdateColumn("WorkUnit_ID", entity.WorkUnit_ID));
update.Columns.Add(new DQUpdateColumn("Store_ID", entity.Store_ID));
update.Columns.Add(new DQUpdateColumn("ProductBatch_ID", entity.ProductBatch_ID));
update.Columns.Add(new DQUpdateColumn("ProductBatch", entity.ProductBatch));
update.Columns.Add(new DQUpdateColumn("IsSubmited", true));
update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("CreateTime", DateTime.Now));
update.Columns.Add(new DQUpdateColumn("RowVersion", DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.Value(1))));
update.Where.Conditions.Add(DQCondition.EQ("ID", entity.ID));
session.ExecuteNonQuery(update);
session.Commit(); session.Commit();
return record.ID;
} }
return 0;
} }
[Rpc] [Rpc]
public static string GetFinalCode(string barCode) public static string GetFinalCode(string barCode)
{ {
var netUrl=new B3ClientServiceOnLineConfig().OutNetUrl;
barCode = barCode.Replace(netUrl+"?", "");
var code = UrlUtil.GetValueByKey("code", barCode);
if (string.IsNullOrWhiteSpace(code))
{
code = UrlUtil.GetValueByKey("CODE", barCode);
}
if (string.IsNullOrWhiteSpace(code))
{
code = barCode;
}
return code;
var uri = new Uri(barCode);
return HttpUtility.ParseQueryString(uri.Query)["code"];
} }
[Rpc] [Rpc]
public static long SimpleInsertOrUpdate(long goodsId,string goodsName,string barCode)
public static long SimpleInsertOrUpdate(long goodsId, string goodsName, string barCode)
{ {
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
@ -112,23 +86,25 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
record.Goods_Name = goodsName; record.Goods_Name = goodsName;
record.BarCode = barCode; record.BarCode = barCode;
record.IsSubmited = false; record.IsSubmited = false;
record.ModifyTime = DateTime.Now;
session.Insert(record); session.Insert(record);
} }
else else
{ {
record.Goods_ID = goodsId; record.Goods_ID = goodsId;
record.Goods_Name = goodsName; record.Goods_Name = goodsName;
record.Sync = false;
record.RowVersion += 1;
session.Update(record); session.Update(record);
} }
session.Commit(); session.Commit();
return record.ID; return record.ID;
} }
} }
private static TrunksIousOutInStoreRecord GetExist(IDmoSession session, string barCode)
private static TrunksIousOutInStoreRecord GetExist(IDmoSession session, string barCode)
{ {
var query=new DmoQuery(typeof(TrunksIousOutInStoreRecord));
var query = new DmoQuery(typeof(TrunksIousOutInStoreRecord));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode)); query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
var res = session.ExecuteList(query).Cast<TrunksIousOutInStoreRecord>().ToList(); var res = session.ExecuteList(query).Cast<TrunksIousOutInStoreRecord>().ToList();
if (res.Count > 0) if (res.Count > 0)
@ -138,31 +114,5 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
//throw new Exception("存在多条记录,请找管理员"); //throw new Exception("存在多条记录,请找管理员");
return null; return null;
} }
[Rpc]
public static int Update(string json)
{
var clientRecord = JsonConvert.DeserializeObject<TrunksIousOutInStoreRecordDto>(json);
using (var session = Dmo.NewSession())
{
var record = session.Load(new DmoIdentity(typeof(TrunksIousOutInStoreRecord), clientRecord.Service_ID ?? 0));
DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID", "CreateTime");
session.Update(record);
}
return 1;
}
[Rpc]
public static int Delete(long id)
{
var delDom = new DQDeleteDom(typeof(TrunksIousOutInStoreRecord));
delDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
using (var session = Dmo.NewSession())
{
session.Update(delDom);
}
return 1;
}
} }
} }

+ 1
- 1
B3ClientService/Tasks/UpdateLoad/UploadTest.cs View File

@ -25,8 +25,8 @@ namespace BWP.B3ClientService.Tasks
UpLoadWeightBill.Execute(serverUri); UpLoadWeightBill.Execute(serverUri);
UploadOrderDetail.Execute(serverUri); UploadOrderDetail.Execute(serverUri);
UploadSecondOrder.Execute(serverUri); UploadSecondOrder.Execute(serverUri);
DoCheckBills.Execute(serverUri); DoCheckBills.Execute(serverUri);
UploadTrunksIousOutInStoreRecord.Execute(serverUri);
} }
public string Name public string Name


+ 64
- 0
B3ClientService/Tasks/UpdateLoad/UploadTrunksIousOutInStoreRecord.cs View File

@ -0,0 +1,64 @@
using BWP.B3ClientService.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 System.Threading.Tasks;
using System.Web.Script.Serialization;
using TSingSoft.WebPluginFramework;
using TSingSoft.WebPluginFramework.BWPClients;
namespace BWP.B3ClientService.Tasks.UpdateLoad
{
public static class UploadTrunksIousOutInStoreRecord
{
public static void Execute(string uri)
{
//获取所有未上传的数据
var allBill = GetAllNeedSyncBill();
foreach (var group in allBill.GroupBy(x => x.Creator))
{
var bwpClient = new BWPClient(uri, group.Key);
foreach (var item in group)
{
using (var context = new TransactionContext())
{
var result = bwpClient.Call<long?>("/MainSystem/B3ButcherManage/Rpcs/ProductInStoreRpc/InsertOrUpdate", JsonConvert.SerializeObject(item));
if (result.HasValue)
SetB3ID(context.Session, item.ID, result.Value);
SetSyncd(context.Session, item.ID, item.RowVersion);
context.Commit();
}
}
}
}
private static IEnumerable<TrunksIousOutInStoreRecord> GetAllNeedSyncBill()
{
var query = new DmoQuery(typeof(TrunksIousOutInStoreRecord));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsSubmited", true), DQCondition.EQ("Sync", false)));
return query.EExecuteList().Cast<TrunksIousOutInStoreRecord>();
}
static void SetB3ID(IDmoSession session, long id, long B3ID)
{
var update = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
update.Columns.Add(new DQUpdateColumn("B3ID", B3ID));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(update);
}
static void SetSyncd(IDmoSession session, long id, int rowVersion)
{
var update = new DQUpdateDom(typeof(TrunksIousOutInStoreRecord));
update.Columns.Add(new DQUpdateColumn("Sync", true));
update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ID", id), DQCondition.EQ("RowVersion", rowVersion)));
session.ExecuteNonQuery(update);
}
}
}

Loading…
Cancel
Save