Browse Source

调整。

master
yibo 7 years ago
parent
commit
06e0d049fe
11 changed files with 218 additions and 103 deletions
  1. +1
    -2
      B3ClientService/B3ClientService.csproj
  2. +2
    -0
      B3ClientService/BO/ClientGoodsSet_/ClientGoodsSet_Detail.cs
  3. +28
    -14
      B3ClientService/BO/MaterialRequisitionRecord_/MaterialRequisitionRecord.cs
  4. +1
    -0
      B3ClientService/Rpcs/BillRpc/ClientGoodsSetRpc.cs
  5. +0
    -27
      B3ClientService/Rpcs/BillRpc/MaterialRequisitionRecordRpc_/MaterialRequisitionRecordDto.cs
  6. +103
    -29
      B3ClientService/Rpcs/BillRpc/MaterialRequisitionRecordRpc_/MaterialRequisitionRecordRpc.cs
  7. +0
    -29
      B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordDto.cs
  8. +17
    -2
      B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs
  9. +1
    -0
      B3ClientService/Rpcs/RpcBO/Bill/ClientGoodsSetDto.cs
  10. +64
    -0
      B3ClientService/Tasks/UpdateLoad/UploadMaterialRequisitionRecord.cs
  11. +1
    -0
      B3ClientService/Tasks/UpdateLoad/UploadTest.cs

+ 1
- 2
B3ClientService/B3ClientService.csproj View File

@ -139,7 +139,6 @@
<Compile Include="Rpcs\BillRpc\ByProductWeightRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\ClientGoodsSetRpc.cs" />
<Compile Include="Rpcs\BillRpc\DropPigRpc.cs" />
<Compile Include="Rpcs\BillRpc\MaterialRequisitionRecordRpc_\MaterialRequisitionRecordDto.cs" />
<Compile Include="Rpcs\BillRpc\MaterialRequisitionRecordRpc_\MaterialRequisitionRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\ProductTaskRpc.cs" />
<Compile Include="Rpcs\BillRpc\SaleOutStoreRpc.cs" />
@ -147,7 +146,6 @@
<Compile Include="Rpcs\BillRpc\SegmentationInStoreRecordRpc_\SegmentationInStoreRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\SegmentationWeightRecord_\SegmentationWeightRecordDto.cs" />
<Compile Include="Rpcs\BillRpc\SegmentationWeightRecord_\SegmentationWeightRecordRpc.cs" />
<Compile Include="Rpcs\BillRpc\TrunksIousOutInStoreRecord_\TrunksIousOutInStoreRecordDto.cs" />
<Compile Include="Rpcs\BillRpc\TrunksIousOutInStoreRecord_\TrunksIousOutInStoreRecordRpc.cs" />
<Compile Include="Rpcs\RpcBO\Bill\ClientGoodsSetDto.cs" />
<Compile Include="Rpcs\RpcBO\Bill\GradeAndWeight\DataConfirmList.cs" />
@ -174,6 +172,7 @@
<Compile Include="Tasks\SyncInfoFromServer.cs" />
<Compile Include="Tasks\SyncBillFromServer.cs" />
<Compile Include="Tasks\UpdateLoad\DoCheckBills.cs" />
<Compile Include="Tasks\UpdateLoad\UploadMaterialRequisitionRecord.cs" />
<Compile Include="Tasks\UpdateLoad\UploadOrderDetail.cs" />
<Compile Include="Tasks\UpdateLoad\UploadSecondOrder.cs" />
<Compile Include="Tasks\UpdateLoad\UploadTest.cs" />


+ 2
- 0
B3ClientService/BO/ClientGoodsSet_/ClientGoodsSet_Detail.cs View File

@ -28,6 +28,8 @@ namespace BWP.B3ClientService.BO
public string Goods_Spell { get; set; }
public string Goods_MainUnit { get; set; }
[LogicName("主辅换算主单位比例")]
public Money<decimal>? Goods_MainUnitRatio { get; set; }


+ 28
- 14
B3ClientService/BO/MaterialRequisitionRecord_/MaterialRequisitionRecord.cs View File

@ -11,27 +11,41 @@ namespace BWP.B3ClientService.BO
{
[Serializable]
[DFClass]
public class MaterialRequisitionRecord : Base
public class MaterialRequisitionRecord : SyncBill
{
public long? B3_ID { get; set; }
public DateTime? SyncToB3DateTime { 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 string Goods_MainUnit { get; set; }
private DateTime mCreateTime = DateTime.Now;
[DbColumn(DbType = SqlDbType.DateTime)]
public DateTime CreateTime { get { return mCreateTime; } set { mCreateTime = value; } }
private int mNumber = 1;
public int Number
{
get { return mNumber; }
set { mNumber = value; }
}
public string BarCode { get; set; }//条码
[ReferenceTo(typeof(TrunksIousOutInStoreRecord), "Weight")]
[Join("BarCode", "BarCode")]
public decimal? BeforeWeight { get; set; }
public long Goods_ID { get; set; }
public decimal? Weight { get; set; }
public string Goods_Name { get; set; }
public string Goods_Spec { get; set; }
public bool IsSubmited { get; set; }//界面有2个状态 待提交已提交 , 有条码有重量为已提交
public long? WorkShop_ID { get; set; }
public long? WorkUnit_ID { get; set; }
public long? Store_ID { get; set; }
public long? ProductBatch_ID { get; set; }
public decimal Weight { get; set; }//净重
public string ProductBatch { get; set; }
public string CardBarCode { get; set; }//放产品的车的条码
public int RowVersion { get; set; }
public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的
public string CreateUserName { get; set; }
public DateTime? CreateTime { get; set; }
}
}

+ 1
- 0
B3ClientService/Rpcs/BillRpc/ClientGoodsSetRpc.cs View File

@ -41,6 +41,7 @@ using TSingSoft.WebPluginFramework;
dto.Goods_Name = setDetail.Goods_Name;
dto.Goods_Code = setDetail.Goods_Code;
dto.Goods_Spec = setDetail.Goods_Spec;
dto.Goods_MainUnit = setDetail.Goods_MainUnit;
dto.StandardWeight = setDetail.StandardWeight;
dto.StandardWeightUp = setDetail.StandardWeightUp;


+ 0
- 27
B3ClientService/Rpcs/BillRpc/MaterialRequisitionRecordRpc_/MaterialRequisitionRecordDto.cs View File

@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3ClientService.BO;
using Forks.EnterpriseServices.DataForm;
namespace BWP.B3ClientService.Rpcs.BillRpc
{
[Serializable, DFClass]
public class MaterialRequisitionRecordDto : ClientSyncBaseDto
{
public string BarCode { get; set; }//条码
public long Goods_ID { get; set; }
public string Goods_Name { get; set; }
public string Goods_Spec { get; set; }
public decimal Weight { get; set; }//净重
public string CardBarCode { get; set; }//放产品的车的条码
public string BiaoShi { get; set; }//用来记录那个工作台或者哪台触摸屏做的
public string CreateUserName { get; set; }
}
}

+ 103
- 29
B3ClientService/Rpcs/BillRpc/MaterialRequisitionRecordRpc_/MaterialRequisitionRecordRpc.cs View File

@ -5,62 +5,136 @@ using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Newtonsoft.Json;
using TSingSoft.WebPluginFramework;
using Forks.EnterpriseServices.SqlDoms;
using System.Collections.Generic;
using System.Linq;
namespace BWP.B3ClientService.Rpcs.BillRpc
{
[Rpc]
public static class MaterialRequisitionRecordRpc
{
private static readonly object _insertObj = new object();
[Rpc]
public static string GetUnSubmitList()
{
var query = new DQueryDom(new JoinAlias(typeof(MaterialRequisitionRecord)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsSubmited", false)));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
var list = query.EExecuteDmoList<MaterialRequisitionRecord>("ID", "BarCode", "Goods_Name", "Goods_Code", "Goods_MainUnit", "Weight");
return JsonConvert.SerializeObject(list);
}
[Rpc]
public static long Insert(string json)
public static string GetSubmitedList()
{
lock (_insertObj)
{
var record = JsonConvert.DeserializeObject<MaterialRequisitionRecord>(json);
record.CreateTime = DateTime.Now;
using (var session = Dmo.NewSession())
{
session.Insert(record);
session.Commit();
}
return record.ID;
}
var query = new DQueryDom(new JoinAlias(typeof(MaterialRequisitionRecord)));
query.Where.Conditions.Add(DQCondition.EQ("IsSubmited", true));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Range = SelectRange.Top(50);
var list = query.EExecuteDmoList<MaterialRequisitionRecord>("ID", "BarCode", "Goods_Name", "Goods_Code", "Goods_MainUnit", "Number", "BeforeWeight", "Weight");
return JsonConvert.SerializeObject(list);
}
private static readonly object _updateObj = new object();
[Rpc]
public static int Update(string json)
public static string GetCodeStoreInfo(string code)
{
lock (_updateObj)
var main = new JoinAlias(typeof(TrunksIousOutInStoreRecord));
var take = new JoinAlias(typeof(MaterialRequisitionRecord));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(take), DQCondition.And(DQCondition.EQ(main, "BarCode", take, "BarCode"), DQCondition.EQ(take, "DeleteState", false)));
query.Columns.Add(DQSelectColumn.Field("ID", main));
query.Columns.Add(DQSelectColumn.Field("Weight", main));
query.Columns.Add(DQSelectColumn.Field("Goods_Name", main));
query.Columns.Add(DQSelectColumn.Field("Store_ID", main));
query.Columns.Add(DQSelectColumn.Field("Goods_ID", main));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(main, "BarCode", code), DQCondition.IsNull(DQExpression.Field(take, "ID"))));
using (var session = Dmo.NewSession())
{
var clientRecord = JsonConvert.DeserializeObject<MaterialRequisitionRecordDto>(json);
using (var session = Dmo.NewSession())
using (var reader = session.ExecuteReader(query))
{
var record = session.Load(new DmoIdentity(typeof(MaterialRequisitionRecord), clientRecord.Service_ID ?? 0));
if (record == null)
while (reader.Read())
{
return 0;
var r = new MaterialRequisitionRecord();
r.ID = (long)reader[0];
r.Weight = (decimal?)reader[1];
r.Goods_Name = (string)reader[2];
r.Store_ID = (long?)reader[3];
r.Goods_ID = (long?)reader[4];
return JsonConvert.SerializeObject(r);
}
DmoUtil.CopyDmoFields(clientRecord, record, "ID", "B3_ID");
session.Update(record);
session.Commit();
}
return 1;
}
return string.Empty;
}
[Rpc]
public static int Delete(long id)
public static string Insert(string json)
{
var delDom = new DQDeleteDom(typeof(MaterialRequisitionRecord));
delDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
var record = JsonConvert.DeserializeObject<MaterialRequisitionRecord>(json);
using (var session = Dmo.NewSession())
{
session.ExecuteNonQuery(delDom);
record.CreateTime = record.ModifyTime = DateTime.Now;
FillGoodsInfo(record, session);
session.Insert(record);
session.Commit();
}
return JsonConvert.SerializeObject(record);
}
static void FillGoodsInfo(MaterialRequisitionRecord record, IDmoSession session)
{
var query = new DQueryDom(new JoinAlias(typeof(ClientGoodsSet_Detail)));
query.Where.Conditions.Add(DQCondition.EQ("Goods_ID", record.Goods_ID));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit"));
query.Columns.Add(DQSelectColumn.Field("Goods_Code"));
query.Range = SelectRange.Top(1);
var r = query.EExecuteScalar<string, string, string>(session);
if (r != null)
{
record.Goods_Name = r.Item1;
record.Goods_MainUnit = r.Item2;
record.Goods_Code = r.Item3;
}
}
[Rpc]
public static int FillWeight(long id, decimal weight)
{
var update = new DQUpdateDom(typeof(MaterialRequisitionRecord));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("Weight", weight));
using (var session = Dmo.NewSession())
{
session.ExecuteNonQuery(update);
session.Commit();
}
return 1;
}
[Rpc]
public static int Submit(List<long> arr)
{
var update = new DQUpdateDom(typeof(MaterialRequisitionRecord));
update.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"), arr.Select(x => DQExpression.Value(x)).ToArray()));
update.Columns.Add(new DQUpdateColumn("IsSubmited", true));
using (var session = Dmo.NewSession())
{
session.ExecuteNonQuery(update);
session.Commit();
}
return 1;
}
[Rpc]
public static int Delete(long id)
{
var delete = new DQDeleteDom(typeof(MaterialRequisitionRecord));
delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
delete.EExecute();
return 1;
}
}


+ 0
- 29
B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordDto.cs View File

@ -1,29 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BWP.B3ClientService.BO;
using Forks.EnterpriseServices.DataForm;
namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
{
[Serializable,DFClass]
public class TrunksIousOutInStoreRecordDto: ClientSyncBaseDto
{
public string BarCode { get; set; }
public long? Goods_ID { get; set; }
public string Goods_Name { get; set; }
private int mNumber = 1;
public int Number
{
get { return mNumber; }
set { mNumber = value; }
}
public decimal? Weight { get; set; }
public string CarcassStatus { get; set; }// 胴体状态
}
}

+ 17
- 2
B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRecord_/TrunksIousOutInStoreRecordRpc.cs View File

@ -69,13 +69,18 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
public static string GetFinalCode(string barCode)
{
var uri = new Uri(barCode);
return HttpUtility.ParseQueryString(uri.Query)["code"];
var code = HttpUtility.ParseQueryString(uri.Query)["code"];
if (!string.IsNullOrEmpty(code))
CheckCodeRight(code);
return code;
}
[Rpc]
public static long SimpleInsertOrUpdate(long goodsId, string goodsName, string barCode)
{
if (string.IsNullOrEmpty(barCode))
throw new Exception("条码不能为空");
CheckCodeRight(barCode);
using (var session = Dmo.NewSession())
{
var record = GetExist(session, barCode);
@ -114,5 +119,15 @@ namespace BWP.B3ClientService.Rpcs.BillRpc.TrunksIousOutInStoreRecord_
//throw new Exception("存在多条记录,请找管理员");
return null;
}
static void CheckCodeRight(string barCode)
{
var query = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail)));
query.Where.Conditions.Add(DQCondition.EQ("barCode", barCode));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
query.Range = SelectRange.Top(1);
if (query.EExecuteScalar() == null)
throw new Exception("条码不正确");
}
}
}

+ 1
- 0
B3ClientService/Rpcs/RpcBO/Bill/ClientGoodsSetDto.cs View File

@ -15,6 +15,7 @@ namespace BWP.B3ClientService.Rpcs.RpcBO.Bill
public string Goods_Name { get; set; }
public string Goods_Code { get; set; }
public string Goods_Spec { get; set; }
public string Goods_MainUnit { get; set; }
public decimal? StandardWeight { get; set; }
public decimal? StandardWeightUp { get; set; }


+ 64
- 0
B3ClientService/Tasks/UpdateLoad/UploadMaterialRequisitionRecord.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 UploadMaterialRequisitionRecord
{
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/ProductTakeOutRpc/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<MaterialRequisitionRecord> GetAllNeedSyncBill()
{
var query = new DmoQuery(typeof(MaterialRequisitionRecord));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsSubmited", true), DQCondition.EQ("Sync", false)));
return query.EExecuteList().Cast<MaterialRequisitionRecord>();
}
static void SetB3ID(IDmoSession session, long id, long B3ID)
{
var update = new DQUpdateDom(typeof(MaterialRequisitionRecord));
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(MaterialRequisitionRecord));
update.Columns.Add(new DQUpdateColumn("Sync", true));
update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ID", id), DQCondition.EQ("RowVersion", rowVersion)));
session.ExecuteNonQuery(update);
}
}
}

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

@ -27,6 +27,7 @@ namespace BWP.B3ClientService.Tasks
UploadSecondOrder.Execute(serverUri);
DoCheckBills.Execute(serverUri);
UploadTrunksIousOutInStoreRecord.Execute(serverUri);
UploadMaterialRequisitionRecord.Execute(serverUri);
}
public string Name


Loading…
Cancel
Save