Browse Source

Merge branch 'master' of bwpgit:BWPB3/B3ClientService

master
wugang 8 years ago
parent
commit
19094219c4
18 changed files with 551 additions and 271 deletions
  1. +4
    -2
      B3ClientService/B3ClientService.csproj
  2. +5
    -0
      B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
  3. +11
    -3
      B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
  4. +2
    -5
      B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
  5. +1
    -0
      B3ClientService/BO/Bill/SecondOrder/SecondOrder.cs
  6. +3
    -0
      B3ClientService/BO/Bill/WeightBill/WeightBill.cs
  7. +63
    -0
      B3ClientService/BO/Bill/WeightBill/WeightBillCheck.cs
  8. +6
    -6
      B3ClientService/ClientSerializerBo/OrderDetail/SelectHurryList.cs
  9. +2
    -0
      B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs
  10. +27
    -115
      B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
  11. +0
    -62
      B3ClientService/Rpcs/BillRpc/OrderConfirmRpc.cs
  12. +238
    -72
      B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
  13. +1
    -0
      B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
  14. +129
    -0
      B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs
  15. +22
    -2
      B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
  16. +0
    -4
      B3ClientService/Rpcs/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
  17. +35
    -0
      B3ClientService/Tasks/UpdateLoad/DoCheckBills.cs
  18. +2
    -0
      B3ClientService/Tasks/UpdateLoad/UploadTest.cs

+ 4
- 2
B3ClientService/B3ClientService.csproj View File

@ -91,6 +91,7 @@
<Compile Include="BO\Bill\SecondOrder\SecondOrder.cs" />
<Compile Include="BO\Bill\SecondOrder\SecondOrder_Detail.cs" />
<Compile Include="BO\Bill\WeightBill\WeightBill.cs" />
<Compile Include="BO\Bill\WeightBill\WeightBillCheck.cs" />
<Compile Include="BO\Bill\WeightBill\WeightBillShowRelate.cs" />
<Compile Include="BO\Bill\WeightBill\WeightBill_Detail.cs" />
<Compile Include="BO\Bill\WeightBill\WeightBill_FarmerDetail.cs" />
@ -102,7 +103,7 @@
<Compile Include="BO\SyncBO\MinEmployee.cs" />
<Compile Include="BO\SyncBO\MinWPF_User.cs" />
<Compile Include="BO\ServerHost.cs" />
<Compile Include="ClientSerializerBo\OrderDetail\ConfirmOrder.cs" />
<Compile Include="ClientSerializerBo\OrderDetail\SelectHurryList.cs" />
<Compile Include="ClientSerializerBo\WeightBill\HouseAndSanctionEdit.cs" />
<Compile Include="ClientSerializerBo\WeightBill\HouseAndSanctionList.cs" />
<Compile Include="ClientSerializerBo\WeightBill\WeightBillList.cs" />
@ -124,13 +125,14 @@
<Compile Include="Rpcs\BaseInfoRpc.cs" />
<Compile Include="Rpcs\BillRpc\CarcassStateWeightRpc.cs" />
<Compile Include="Rpcs\BillRpc\HouseAndSanctionRpc.cs" />
<Compile Include="Rpcs\BillRpc\OrderConfirmRpc.cs" />
<Compile Include="Rpcs\BillRpc\OrderDetailRpc.cs" />
<Compile Include="Rpcs\BillRpc\SecondOrderRpc.cs" />
<Compile Include="Rpcs\BillRpc\GradeAndWeightRpc.cs" />
<Compile Include="Rpcs\BillRpc\TrunksIousOutInStoreRpc.cs" />
<Compile Include="Rpcs\BillRpc\WeightBillRpc.cs" />
<Compile Include="Rpcs\UserInfoRpc.cs" />
<Compile Include="Tasks\SyncInfoFromServer.cs" />
<Compile Include="Tasks\UpdateLoad\DoCheckBills.cs" />
<Compile Include="Tasks\UpdateLoad\UploadOrderDetail.cs" />
<Compile Include="Tasks\UpdateLoad\UploadSecondOrder.cs" />
<Compile Include="Tasks\UpdateLoad\UploadTest.cs" />


+ 5
- 0
B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs View File

@ -25,14 +25,19 @@ namespace BWP.B3ClientService.BO
public decimal? Nubmber { get; set; }
public decimal? State1Weight { get; set; }
public DateTime? State1WeightTime { get; set; }
public decimal? State2Weight { get; set; }
public DateTime? State2WeightTime { get; set; }
public decimal? State3Weight { get; set; }
public DateTime? State3WeightTime { get; set; }
public decimal? State4Weight { get; set; }
public DateTime? State4WeightTime { get; set; }
public decimal? State5Weight { get; set; }
public DateTime? State5WeightTime { get; set; }
public NamedValue<>? CurrentState { get; set; }


+ 11
- 3
B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs View File

@ -10,12 +10,20 @@ namespace BWP.B3ClientService.BO
[Serializable]
public class HurryRecord : Base
{
public long FromOrderDetail_ID { get; set; }
public long WeightBill_ID { get; set; }
[ReferenceTo(typeof(OrderDetail), "B3WeighBill_ID")]
[Join("FromOrderDetail_ID", "ID")]
[ReferenceTo(typeof(WeightBill), "B3ID")]
[Join("WeightBill_ID", "ID")]
public long? B3WeighBill_ID { get; set; }
[ReferenceTo(typeof(WeightBill), "Supplier_Name")]
[Join("WeightBill_ID", "ID")]
public string Supplier_Name { get; set; }
[ReferenceTo(typeof(WeightBill), "HouseNames")]
[Join("WeightBill_ID", "ID")]
public string LiveColonyHouse_Name { get; set; }
public long? ToOrderDetail_ID { get; set; }
[ReferenceTo(typeof(OrderDetail), "Order")]


+ 2
- 5
B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs View File

@ -30,18 +30,15 @@ namespace BWP.B3ClientService.BO
public int PlanNumber { get; set; }
//public int? HotFadeNumber { get; set; }
//public int? PeelingNumber { get; set; }
public string LiveColonyHouse_Name { get; set; }
public bool IsHurryButcher { get; set; }
public bool SecondarySplit { get; set; }
//0 = 未开始; 10 = 已开始; 20 = 已完毕;
[DbColumn(DefaultValue = 0)]
public bool Confirmed { get; set; }
public int OrderState { get; set; }
[NonDmoProperty]
public int HurryNumber { get; set; }


+ 1
- 0
B3ClientService/BO/Bill/SecondOrder/SecondOrder.cs View File

@ -28,6 +28,7 @@ namespace BWP.B3ClientService.BO
public int HotFadeNumber { get; set; }
//是否可以上传B3
public bool IsOk { get; set; }
[DbColumn(DefaultValue = 1)]


+ 3
- 0
B3ClientService/BO/Bill/WeightBill/WeightBill.cs View File

@ -15,6 +15,9 @@ namespace BWP.B3ClientService.BO
public int RowVersion { get; set; }
#region BasicFile
[DbColumn(DefaultValue = 0)]
public int PrintNumber { get; set; }
public long? AccountingUnit_ID { get; set; }
public long? Department_ID { get; set; }


+ 63
- 0
B3ClientService/BO/Bill/WeightBill/WeightBillCheck.cs View File

@ -0,0 +1,63 @@
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.BO
{
[Serializable]
[BOClass]
public class WeightBillCheck
{
public long ID { get; set; }
[ReferenceTo(typeof(WeightBill), "B3ID")]
[Join("ID", "ID")]
public long? B3ID { get; set; }
/// <summary>
/// 单据创建人用户名
/// </summary>
public string Creator { get; set; }
/// <summary>
/// 同步状态
/// </summary>
public bool Sync { get; set; }
public DateTime ModifyTime { get; set; }
public static void Insert(long id, string creator)
{
if (Exist(id))
return;
var entity = new WeightBillCheck();
entity.ID = id;
entity.Creator = creator;
entity.ModifyTime = DateTime.Now;
using (var session = Dmo.NewSession())
{
session.Insert(entity);
session.Commit();
}
}
static bool Exist(long id)
{
var query = new DQueryDom(new JoinAlias(typeof(WeightBillCheck)));
query.Where.Conditions.Add(DQCondition.EQ("ID", id));
return query.EExists();
}
public static void SetSynced(long b3ID)
{
var update = new DQUpdateDom(typeof(WeightBillCheck));
update.Columns.Add(new DQUpdateColumn("Sync", true));
update.Where.Conditions.Add(DQCondition.EQ("B3ID", b3ID));
update.EExecute();
}
}
}

B3ClientService/ClientSerializerBo/OrderDetail/ConfirmOrder.cs → B3ClientService/ClientSerializerBo/OrderDetail/SelectHurryList.cs View File

@ -5,18 +5,18 @@ using System.Text;
namespace BWP.B3ClientService
{
public class ConfirmOrder
public class SelectHurryList
{
public long ID { get; set; }
public int Order { get; set; }
public long WeightBill_ID { get; set; }
public long? B3WeighBill_ID { get; set; }
public string Supplier_Name { get; set; }
public string LiveColonyHouse_Name { get; set; }
public int Number { get; set; }
public int WeightNumber { get; set; }
public bool Confirmed { get; set; }
public int HurryNumber { get; set; }
}
}

+ 2
- 0
B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs View File

@ -30,5 +30,7 @@ namespace BWP.B3ClientService
public string Remark { get; set; }
public bool FinishWeight { get; set; }
public int PrintNumber { get; set; }
}
}

+ 27
- 115
B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs View File

@ -19,27 +19,23 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
static JavaScriptSerializer serializer = new JavaScriptSerializer();
[Rpc]
public static string GetGradeAndWeightList(DateTime date, long? maxID)
public static string GetGradeAndWeightList(DateTime date, bool isTang)
{
var main = new JoinAlias("_S1", typeof(SecondOrder));
var order = new JoinAlias("_O1", typeof(OrderDetail));
var relate = new JoinAlias(typeof(GradeTemp));
var tech = isTang ? 0 : 1;
var main = new JoinAlias(typeof(SecondOrder));
var order = new JoinAlias(typeof(OrderDetail));
var relate = new JoinAlias(typeof(OrderGradeFinishRelate));
var query = new DQueryDom(main);
query.RegisterQueryTable(typeof(GradeTemp), new string[] { "OrdreID", "Tang", "TangAlready", "Mao", "MaoAlready" }, GradeTemp.Register(date, maxID));
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrdreID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.And(DQCondition.EQ(main, "OrderDetail_ID", relate, "OrderDetail_ID"), DQCondition.EQ(relate, "Technics", tech)));
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Field("Order", order));//1
query.Columns.Add(DQSelectColumn.Field("Order", order));
query.Columns.Add(DQSelectColumn.Field("PlanNumber", order));
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));//3
query.Columns.Add(DQSelectColumn.Field("TangAlready", relate));
query.Columns.Add(DQSelectColumn.Field("MaoAlready", relate));//5
query.Columns.Add(DQSelectColumn.Field("Tang", relate));
query.Columns.Add(DQSelectColumn.Field("Mao", relate));//7
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));
query.Columns.Add(DQSelectColumn.Field("Already", relate));
query.Columns.Add(DQSelectColumn.Field("Finish", relate));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29))));
if (maxID.HasValue)
query.Where.Conditions.Add(DQCondition.GreaterThan("ID", maxID));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "Date", date)));
var list = new List<GradeAndWeight>();
using (var session = Dmo.NewSession())
{
@ -47,31 +43,20 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{
while (reader.Read())
{
var tang = new GradeAndWeight();
tang.OrderDetail_ID = (long)reader[0];
tang.Order = (int)reader[1];
tang.Number = (int)reader[3];
tang.Finish = Convert.ToBoolean(reader[6]);
if (tang.Number != 0)
var entity = new GradeAndWeight();
entity.Number = (int)reader[3];
if (!isTang)
{
tang.Technics = 0;
tang.Technics_Name = "烫褪";
tang.Already = Convert.ToInt32(reader[4]);
list.Add(tang);
var total = (int)reader[2];
entity.Number = total - entity.Number;
}
var lastNumber = (int)reader[2] - tang.Number;
if (lastNumber == 0)
if (entity.Number == 0)
continue;
var mb = new GradeAndWeight();
list.Add(mb);
mb.OrderDetail_ID = tang.OrderDetail_ID;
mb.Order = tang.Order;
mb.Number = lastNumber;
mb.Technics = 1;
mb.Technics_Name = "毛剥";
mb.Already = Convert.ToInt32(reader[5]);
mb.Finish = Convert.ToBoolean(reader[7]);
entity.OrderDetail_ID = (long)reader[0];
entity.Order = (int)reader[1];
entity.Already = (int?)reader[4] ?? 0;
entity.Finish = (bool?)reader[5] ?? false;
list.Add(entity);
}
}
}
@ -79,85 +64,26 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list);
}
class GradeTemp
{
public long OrdreID { get; set; }
public bool Tang { get; set; }
public int TangAlready { get; set; }
public bool Mao { get; set; }
public int MaoAlready { get; set; }
public static DQueryDom Register(DateTime date, long? maxID)
{
var main = new JoinAlias("_S2", typeof(SecondOrder));
var order = new JoinAlias("_O2", typeof(OrderDetail));
var relate = new JoinAlias(typeof(OrderGradeFinishRelate));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Field(relate, "Finish"), DQExpression.Value(0))), "Tang"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Field(relate, "Already"), DQExpression.Value(0))), "TangAlready"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Field(relate, "Finish"), DQExpression.Value(0))), "Mao"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Field(relate, "Already"), DQExpression.Value(0))), "MaoAlready"));
query.GroupBy.Expressions.Add(DQExpression.Field("OrderDetail_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29))));
if (maxID.HasValue)
query.Where.Conditions.Add(DQCondition.GreaterThan("ID", maxID));
return query;
}
}
[Rpc]
public static string GetDetailsList(DateTime date, int top)
{
var query = new DmoQuery(typeof(GradeAndWeight_Detail));
query.Where.Conditions.Add(DQCondition.EQ("Date", date));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Index", true));
query.Range = SelectRange.Top(top);
return serializer.Serialize(query.EExecuteList());
}
[Rpc]
public static long UpdateOrInsertDetail(string json, bool fillTechnics)
public static long UpdateOrInsertDetail(string json)
{
json = json.ESerializeDateTime();
var entity = serializer.Deserialize<GradeAndWeight_Detail>(json);
using (var session = Dmo.NewSession())
{
if (entity.ID == 0)
{
session.Insert(entity);
if (entity.OrderDetail_ID.HasValue)
AddAlready(session, entity.OrderDetail_ID.Value, entity.Technics);
}
else
session.Update(entity);
if (fillTechnics && entity.OrderDetail_ID.HasValue)
AddAlready(session, entity.OrderDetail_ID.Value, entity.Technics);
session.Commit();
return entity.ID;
}
}
[Rpc]
public static int UpdateLivestock(long id, long liveStockID, string liveStockName,short techincs,string technicsName)
{
using (var session = Dmo.NewSession())
{
var update = new DQUpdateDom(typeof(GradeAndWeight_Detail));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("Livestock_ID", liveStockID));
update.Columns.Add(new DQUpdateColumn("Livestock_Name", liveStockName));
update.Columns.Add(new DQUpdateColumn("Technics", techincs));
update.Columns.Add(new DQUpdateColumn("Technics_Name", technicsName));
session.ExecuteNonQuery(update);
session.Commit();
}
return 1;
}
[Rpc]
public static int SetGradeFinish(long orderDetailID, short technics)
{
@ -233,19 +159,5 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
}
return 1;
}
[Rpc]
public static int UpdateWeight(long id, decimal? weight)
{
using (var session = Dmo.NewSession())
{
var update = new DQUpdateDom(typeof(GradeAndWeight_Detail));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("Weight", weight));
session.ExecuteNonQuery(update);
session.Commit();
}
return 1;
}
}
}

+ 0
- 62
B3ClientService/Rpcs/BillRpc/OrderConfirmRpc.cs View File

@ -1,62 +0,0 @@
using BWP.B3ClientService.BO;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs.BillRpc
{
[Rpc]
public static class OrderConfirmRpc
{
static JavaScriptSerializer serializer = new JavaScriptSerializer();
[Rpc]
public static string GetConfirmOrder(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("Order"));
query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID"));
query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name"));
query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
query.Columns.Add(DQSelectColumn.Field("Confirmed"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
var list = new List<ConfirmOrder>();
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new ConfirmOrder();
entity.ID = (long)reader[0];
entity.Order = (int)reader[1];
entity.B3WeighBill_ID = (long?)reader[2];
entity.LiveColonyHouse_Name = (string)reader[3];
entity.Number = (int)reader[4];
entity.Confirmed = (bool)reader[5];
list.Add(entity);
}
}
}
return serializer.Serialize(list);
}
[Rpc]
public static int SetOrderConfirmed(long id)
{
var update = new DQUpdateDom(typeof(OrderDetail));
update.Columns.Add(new DQUpdateColumn("Confirmed", true));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.EExecute();
return 1;
}
}
}

+ 238
- 72
B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs View File

@ -20,25 +20,29 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{
static JavaScriptSerializer serializer = new JavaScriptSerializer();
#region 排宰
[Rpc]
public static string GetNeedOrderWeightBill(DateTime date, bool? showType)
{
var main = new JoinAlias(typeof(WeightBill));
var detail = new JoinAlias(typeof(WeightBill_Detail));
var relate = new JoinAlias(typeof(WeightBillShowRelate));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.And(DQCondition.EQ(main, "ID", detail, "WeightBill_ID"), DQCondition.EQ(detail, "DeleteState", false)));
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "ID", relate, "WeightBill_ID"));
var detail = WeightDetailTemp.Register(query, main);
var already = OrderDetailTemp.Register(query, main);
var hurry = HurryOrderTemp.Register(query, main, true);
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
query.Columns.Add(DQSelectColumn.Field("HouseNames"));
query.Columns.Add(DQSelectColumn.Field("Number", detail));
query.Columns.Add(DQSelectColumn.Field("Number", already));
var alreadyNumber = DQExpression.Add(DQExpression.IfNull(DQExpression.Field(already, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(hurry, "Number"), DQExpression.Value(0)));
query.Columns.Add(DQSelectColumn.Create(alreadyNumber, "Already"));
query.Columns.Add(DQSelectColumn.Field("WeighTime"));
query.Columns.Add(DQSelectColumn.Field("B3ID"));
query.Columns.Add(DQSelectColumn.Field("Show", relate));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29)), DQCondition.InEQ("HouseNames", "")));
query.Where.Conditions.Add(DQCondition.InEQ(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(already, "Number"), DQExpression.Value(0))));
query.Where.Conditions.Add(DQCondition.InEQ(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), alreadyNumber));
if (showType == true)
query.Where.Conditions.Add(DQCondition.Or(DQCondition.IsNull(DQExpression.Field(relate, "Show")), DQCondition.EQ(relate, "Show", true)));
else if (showType == false)
@ -70,7 +74,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(result);
}
class WeightDetailTemp
class OrderDetailTemp
{
public long WeightBill_ID { get; set; }
@ -78,35 +82,35 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias)
{
var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail)));
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
query.Columns.Add(DQSelectColumn.Sum("Number"));
query.Columns.Add(DQSelectColumn.Sum("PlanNumber"));
query.GroupBy.Expressions.Add(DQExpression.Field("WeightBill_ID"));
query.Where.Conditions.Add(DQCondition.EQ("DeleteState", false));
rootQuery.RegisterQueryTable(typeof(WeightDetailTemp), new string[] { "WeightBill_ID", "Number" }, query);
var alias = new JoinAlias(typeof(WeightDetailTemp));
rootQuery.RegisterQueryTable(typeof(OrderDetailTemp), new string[] { "WeightBill_ID", "Number" }, query);
var alias = new JoinAlias(typeof(OrderDetailTemp));
rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "WeightBill_ID"));
return alias;
}
}
class OrderDetailTemp
class HurryOrderTemp
{
public long WeightBill_ID { get; set; }
public int? Number { get; set; }
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias)
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias, bool unOrder, string joinField = "ID")
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
query.Columns.Add(DQSelectColumn.Sum("PlanNumber"));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.GroupBy.Expressions.Add(DQExpression.Field("WeightBill_ID"));
query.Where.Conditions.Add(DQCondition.EQ("DeleteState", false));
rootQuery.RegisterQueryTable(typeof(OrderDetailTemp), new string[] { "WeightBill_ID", "Number" }, query);
var alias = new JoinAlias(typeof(OrderDetailTemp));
rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "WeightBill_ID"));
if (unOrder)
query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field("ToOrderDetail_ID")));
rootQuery.RegisterQueryTable(typeof(HurryOrderTemp), new string[] { "WeightBill_ID", "Number" }, query);
var alias = new JoinAlias(typeof(HurryOrderTemp));
rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, joinField, alias, "WeightBill_ID"));
return alias;
}
}
@ -117,7 +121,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var totalNumber = GetWeightNumber(weightID);
var alreadyNumber = GetAlreadyNumberWithoutBack(weightID, backId);
return totalNumber - alreadyNumber;
return totalNumber - alreadyNumber - HurryRecordUnOrderNumber(weightID);
}
static int GetWeightNumber(long wid)
@ -142,27 +146,33 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return 0;
}
static int HurryRecordUnOrderNumber(long wid)
{
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", wid), DQCondition.IsNull(DQExpression.Field("ToOrderDetail_ID"))));
var rst = query.EExecuteScalar();
if (rst != null)
return Convert.ToInt32(rst);
return 0;
}
[Rpc]
public static string GetOrderDetail(DateTime date, bool onlyNormal)
public static string GetOrderDetail(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
query.Columns.Add(DQSelectColumn.Field("Order"));
query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name"));
query.Columns.Add(DQSelectColumn.Field("IsHurryButcher"));
query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID"));
query.Columns.Add(DQSelectColumn.Field("SecondarySplit"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
query.Columns.Add(DQSelectColumn.Field("OrderState"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
if (onlyNormal)
{
var record = HurryRecordTemp.Register(query, query.From.RootSource.Alias);
query.Columns.Add(DQSelectColumn.Field("Number", record));
query.Where.Conditions.Add(DQCondition.EQ("IsHurryButcher", false));
}
var list = new List<OrderDetail>();
using (var session = Dmo.NewSession())
{
@ -180,11 +190,8 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.B3WeighBill_ID = (long?)reader[6];
entity.SecondarySplit = (bool)reader[7];
entity.Supplier_Name = (string)reader[8];
if (onlyNormal)
{
entity.HurryNumber = Convert.ToInt32(reader[9] ?? 0);
entity.PlanNumber += entity.HurryNumber;
}
entity.OrderState = (int)reader[9];
entity.Date = date;
list.Add(entity);
}
}
@ -192,26 +199,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list);
}
class HurryRecordTemp
{
public long OrderDetail_ID { get; set; }
public int? Number { get; set; }
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias)
{
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Field("FromOrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.GroupBy.Expressions.Add(DQExpression.Field("FromOrderDetail_ID"));
rootQuery.RegisterQueryTable(typeof(HurryRecordTemp), new string[] { "OrderDetail_ID", "Number" }, query);
var alias = new JoinAlias(typeof(HurryRecordTemp));
rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "OrderDetail_ID"));
return alias;
}
}
[Rpc]
public static int GetMaxOrder(DateTime date)
{
@ -223,11 +210,22 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
[Rpc]
public static int GetCurrentOrder(long id)
{
return GetOrderDetailProperty<int>(id, "Order");
}
[Rpc]
public static int GetCurrentOrderPlanNumber(long id)
{
return GetOrderDetailProperty<int>(id, "PlanNumber");
}
static T GetOrderDetailProperty<T>(long id, string property)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Field("Order"));
query.Columns.Add(DQSelectColumn.Field(property));
query.Where.Conditions.Add(DQCondition.EQ("ID", id));
return query.EExecuteScalar<int>();
return (T)query.EExecuteScalar();
}
[Rpc]
@ -237,7 +235,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var entity = serializer.Deserialize<OrderDetail>(insert);
using (var session = Dmo.NewSession())
{
//CheckCanInsert(session, entity.Order, entity.Date.Value);
CheckCanInsert(session, entity.Order, entity.Date.Value);
entity.ModifyTime = DateTime.Now;
UpdateOrder(session, entity.Order - 1, 1, entity.Date);
session.Insert(entity);
@ -251,7 +249,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Range = SelectRange.Top(1);
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("SecondarySplit", true), DQCondition.GreaterThanOrEqual("Order", order)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.GreaterThanOrEqual("OrderState", 10), DQCondition.GreaterThanOrEqual("Order", order)));
if (query.EExecuteScalar(session) != null)
throw new Exception("不允许插入到已进行烫毛计数顺序之前");
}
@ -285,11 +283,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{
using (var session = Dmo.NewSession())
{
var entity = InnerBLUtil.GetSingleDmo<OrderDetail>(session, "ID", id, "Order", "Date", "SecondarySplit");
//if (entity.SecondarySplit)
// throw new Exception("已进行烫毛计数,不能修改");
var entity = InnerBLUtil.GetSingleDmo<OrderDetail>(session, "ID", id, "Order", "Date", "OrderState");
if (entity.OrderState != 0)
throw new Exception("已开始宰杀,不能修改");
UpdateOrder(session, entity.Order, -1, entity.Date);
UpdateOrderDetailPartial(session, id, "DeleteState", true);
ClearHurryRecordToOrderID(session, id);
session.Commit();
}
return 1;
@ -319,46 +318,58 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
session.ExecuteNonQuery(update);
}
#endregion
#region hurryButcher
[Rpc]
public static string GetHurryRecords(long orderId)
public static string GetHurryRecordList(long weightId)
{
var query = new DmoQuery(typeof(HurryRecord));
query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", orderId));
query.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", weightId));
return serializer.Serialize(query.EExecuteList().Cast<HurryRecord>().ToList());
}
[Rpc]
public static int DeleteHurryRecord(long id)
public static long? DeleteHurryRecord(long id)
{
long? orderID;
using (var session = Dmo.NewSession())
{
var hurryNumber = InnerBLUtil.GetDmoPropertyByID<int>(session, typeof(HurryRecord), "HurryNumber", id);
var entity = InnerBLUtil.GetSingleDmo<HurryRecord>(session, "ID", id, "HurryNumber", "WeightBill_ID");
orderID = GetOrderID(entity.WeightBill_ID);
var delete = new DQDeleteDom(typeof(HurryRecord));
delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(delete);
AddOrderNumber(session, id, hurryNumber);
if (orderID > 0)
AddOrderNumber(session, orderID.Value, entity.HurryNumber);
session.Commit();
}
return 1;
return orderID;
}
[Rpc]
public static int InsertHurryRecord(string detail)
public static string InsertHurryRecord(string detail)
{
detail = detail.ESerializeDateTime();
var entity = serializer.Deserialize<HurryRecord>(detail);
long? orderID = GetOrderID(entity.WeightBill_ID);
using (var session = Dmo.NewSession())
{
session.Insert(entity);
AddOrderNumber(session, entity.ID, -entity.HurryNumber);
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", entity.FromOrderDetail_ID));
var r= Convert.ToInt32(query.EExecuteScalar(session) ?? 0);
if (orderID > 0)
AddOrderNumber(session, orderID.Value, -entity.HurryNumber);
session.Commit();
return r;
}
return string.Format("{0}|{1}", orderID, entity.ID);
}
[Rpc]
public static int GetHurryRecordNumber(long weightId)
{
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
query.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", weightId));
return Convert.ToInt32(query.EExecuteScalar() ?? 0);
}
static void AddOrderNumber(IDmoSession session, long ID, int subNumber)
@ -369,5 +380,160 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
update.Columns.Add(new DQUpdateColumn("PlanNumber", DQExpression.Add(DQExpression.Field("PlanNumber"), DQExpression.Value(subNumber))));
session.ExecuteNonQuery(update);
}
static long? GetOrderID(long weightBillId)
{
var detail = new JoinAlias(typeof(WeightBill_Detail));
var order = new JoinAlias(typeof(OrderDetail));
var query = new DQueryDom(detail);
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(order, "WeightBill_ID", weightBillId));
var hurry = GetHurryRecordNumber(weightBillId);
query.Columns.Add(DQSelectColumn.Field("ID", order));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(order, "PlanNumber"), DQExpression.Value(0))), "last"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "IsHurryButcher", false), DQCondition.EQ(detail, "WeightBill_ID", weightBillId)));
long? id = null;
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
if (id.HasValue || Convert.ToInt32(reader[1]) - hurry != 0)
return -1;
id = (long)reader[0];
}
}
}
return id;
}
[Rpc]
public static string GetHurryRecord(long id)
{
var query = new DmoQuery(typeof(HurryRecord));
query.Where.Conditions.Add(DQCondition.EQ("ID", id));
var entity = query.EExecuteScalar<HurryRecord>();
if (entity == null)
throw new Exception(string.Format("急宰单No.{0} 已被删除", id));
return serializer.Serialize(entity);
}
[Rpc]
public static string GetSelectHurryList(DateTime butcherDate)
{
var bill = new JoinAlias(typeof(WeightBill));
var detail = new JoinAlias(typeof(WeightBill_Detail));
var query = new DQueryDom(bill);
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.And(DQCondition.EQ(bill, "ID", detail, "WeightBill_ID"), DQCondition.EQ(detail, "DeleteState", false)));
var hurry = HurryOrderTemp.Register(query, bill, false);
var start = StartOrderTemp.Register(query, bill, butcherDate);
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("B3ID"));
query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
query.Columns.Add(DQSelectColumn.Field("HouseNames"));
query.Columns.Add(DQSelectColumn.Field("Number", detail));
query.Columns.Add(DQSelectColumn.Field("Number", hurry));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.InEQ("HouseNames", "")));
var list = new List<SelectHurryList>();
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new SelectHurryList();
entity.WeightBill_ID = (long)reader[0];
entity.B3WeighBill_ID = (long?)reader[1];
entity.Supplier_Name = (string)reader[2];
entity.LiveColonyHouse_Name = (string)reader[3];
entity.WeightNumber = (int?)reader[4] ?? 0;
entity.HurryNumber = Convert.ToInt32(reader[5] ?? 0);
list.Add(entity);
}
}
}
return serializer.Serialize(list);
}
class StartOrderTemp
{
public long WeightBill_ID { get; set; }
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias, DateTime date)
{
var detail = new JoinAlias(typeof(WeightBill_Detail));
var order = new JoinAlias(typeof(OrderDetail));
var query = new DQueryDom(detail);
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.And(DQCondition.EQ(detail, "WeightBill_ID", order, "WeightBill_ID"), DQCondition.EQ(order, "DeleteState", false)));
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID", detail));
query.GroupBy.Expressions.Add(DQExpression.Field(detail, "WeightBill_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.Or(DQCondition.IsNull(DQExpression.Field(order, "ID")), DQCondition.EQ(order, "Date", date)), DQCondition.EQ(detail, "DeleteState", false)));
rootQuery.RegisterQueryTable(typeof(StartOrderTemp), new string[] { "WeightBill_ID" }, query);
var alias = new JoinAlias(typeof(StartOrderTemp));
rootQuery.From.AddJoin(JoinType.Inner, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "WeightBill_ID"));
return alias;
}
}
#endregion
#region orderConfirm
[Rpc]
public static int SetOrderState(long id, int state)
{
if (!(state == 0 || state == 10 || state == 20))
throw new Exception(string.Format("错误的状态输入 {0}", state));
var update = new DQUpdateDom(typeof(OrderDetail));
update.Columns.Add(new DQUpdateColumn("OrderState", state));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.EExecute();
return 1;
}
[Rpc]
public static long InsertByHurryRecord(string insert, long hurryID)
{
insert = insert.ESerializeDateTime();
var entity = serializer.Deserialize<OrderDetail>(insert);
using (var session = Dmo.NewSession())
{
CheckCanInsert(session, entity.Order, entity.Date.Value);
entity.ModifyTime = DateTime.Now;
UpdateOrder(session, entity.Order - 1, 1, entity.Date);
session.Insert(entity);
SetHurryRecordToOrderID(session, entity.ID, hurryID);
session.Commit();
}
return entity.ID;
}
static void SetHurryRecordToOrderID(IDmoSession session, long orderID, long hurryID)
{
var update = new DQUpdateDom(typeof(HurryRecord));
update.Where.Conditions.Add(DQCondition.EQ("ID", hurryID));
update.Columns.Add(new DQUpdateColumn("ToOrderDetail_ID", orderID));
session.ExecuteNonQuery(update);
}
static void ClearHurryRecordToOrderID(IDmoSession session, long orderID)
{
var update = new DQUpdateDom(typeof(HurryRecord));
update.Where.Conditions.Add(DQCondition.EQ("ToOrderDetail_ID", orderID));
update.Columns.Add(new DQUpdateColumn("ToOrderDetail_ID", DQExpression.NULL));
session.ExecuteNonQuery(update);
}
[Rpc]
public static int GetFinishNumbers(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Sum("PlanNumber"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("Date", date), DQCondition.EQ("OrderState", 20)));
return query.EExecuteScalar<int?>() ?? 0;
}
#endregion
}
}

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

@ -35,6 +35,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber", detail));
query.Columns.Add(DQSelectColumn.Field("IsOk", detail));
query.Columns.Add(DQSelectColumn.Field("Finish", detail));
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("OrderState", 10));
var list = new List<SecondOrder>();
using (var session = Dmo.NewSession())
{


+ 129
- 0
B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs View File

@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;
using BWP.B3ClientService.BO;
using BWP.B3ClientService.NamedValueTemplate;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
namespace BWP.B3ClientService.Rpcs.BillRpc
{
[Rpc]
public static class TrunksIousOutInStoreRpc
{
[Rpc]
public static void UpdateCarcassStateWeight1(string code,decimal weight)
{
using (var session=Dmo.NewSession())
{
var id = GetCarcassStateWeightId(session, code);
var updateDom=new DQUpdateDom(typeof(CarcassStateWeight));
updateDom.Where.Conditions.Add(DQCondition.EQ("ID",id));
updateDom.Columns.Add(new DQUpdateColumn("State1Weight",weight));
updateDom.Columns.Add(new DQUpdateColumn("State1WeightTime", DateTime.Now));
updateDom.Columns.Add(new DQUpdateColumn("CurrentState", .));
updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight));
session.ExecuteNonQuery(updateDom);
session.Commit();
}
}
[Rpc]
public static void UpdateCarcassStateWeight2(string code, decimal weight)
{
using (var session = Dmo.NewSession())
{
var id = GetCarcassStateWeightId(session, code);
var updateDom = new DQUpdateDom(typeof(CarcassStateWeight));
updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
updateDom.Columns.Add(new DQUpdateColumn("State2Weight", weight));
updateDom.Columns.Add(new DQUpdateColumn("State2WeightTime", DateTime.Now));
updateDom.Columns.Add(new DQUpdateColumn("CurrentState", .));
updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight));
session.ExecuteNonQuery(updateDom);
session.Commit();
}
}
[Rpc]
public static void UpdateCarcassStateWeight3(string code, decimal weight)
{
using (var session = Dmo.NewSession())
{
var id = GetCarcassStateWeightId(session, code);
var updateDom = new DQUpdateDom(typeof(CarcassStateWeight));
updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
updateDom.Columns.Add(new DQUpdateColumn("State3Weight", weight));
updateDom.Columns.Add(new DQUpdateColumn("State3WeightTime", DateTime.Now));
updateDom.Columns.Add(new DQUpdateColumn("CurrentState", .));
updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight));
session.ExecuteNonQuery(updateDom);
session.Commit();
}
}
[Rpc]
public static void UpdateCarcassStateWeight4(string code, decimal weight)
{
using (var session = Dmo.NewSession())
{
var id = GetCarcassStateWeightId(session, code);
var updateDom = new DQUpdateDom(typeof(CarcassStateWeight));
updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
updateDom.Columns.Add(new DQUpdateColumn("State4Weight", weight));
updateDom.Columns.Add(new DQUpdateColumn("State4WeightTime", DateTime.Now));
updateDom.Columns.Add(new DQUpdateColumn("CurrentState", .));
updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight));
session.ExecuteNonQuery(updateDom);
session.Commit();
}
}
[Rpc]
public static void UpdateCarcassStateWeight5(string code, decimal weight)
{
using (var session = Dmo.NewSession())
{
var id = GetCarcassStateWeightId(session, code);
var updateDom = new DQUpdateDom(typeof(CarcassStateWeight));
updateDom.Where.Conditions.Add(DQCondition.EQ("ID", id));
updateDom.Columns.Add(new DQUpdateColumn("State5Weight", weight));
updateDom.Columns.Add(new DQUpdateColumn("State5WeightTime", DateTime.Now));
updateDom.Columns.Add(new DQUpdateColumn("CurrentState", .));
updateDom.Columns.Add(new DQUpdateColumn("CurrentWeight", weight));
session.ExecuteNonQuery(updateDom);
session.Commit();
}
}
static long? GetCarcassStateWeightId(IDmoSession session, string code)
{
var list=new List<long>();
var query = new DQueryDom(new JoinAlias(typeof(CarcassStateWeight)));
query.Where.Conditions.Add(DQCondition.EQ("Code", code));
query.Columns.Add(DQSelectColumn.Field("ID"));
using (var reader=session.ExecuteReader(query))
{
while (reader.Read())
{
var id = (long) reader[0];
list.Add(id);
}
}
if (list.Count == 0)
{
throw new Exception("没有找到条码:"+code+" 对应的记录");
}
if(list.Count>1)
{
throw new Exception("找到条码:" + code + " 对应的多条记录");
}
return list[0];
}
}
}

+ 22
- 2
B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs View File

@ -40,6 +40,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Columns.Add(DQSelectColumn.Field("Number", detail));
query.Columns.Add(DQSelectColumn.Field("Weight", detail));
query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field(detail, "PiWeight")), DQCondition.IsNotNull(DQExpression.Field(detail, "MaoWeight"))), DQExpression.Value(1), DQExpression.Value(0)), "FinishWeight"));
query.Columns.Add(DQSelectColumn.Field("PrintNumber"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false)));
if (carID.HasValue)
query.Where.Conditions.Add(DQCondition.EQ("Car_ID", carID));
@ -65,6 +66,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.Number = (int?)reader[9];
entity.Weight = (decimal?)reader[10];
entity.FinishWeight = Convert.ToBoolean(reader[11]);
entity.PrintNumber = (int)reader[12];
list.Add(entity);
}
}
@ -145,13 +147,14 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
static void FillServerUpdateFields(IDmoSession session, WeightBill dmo)
{
var min = InnerBLUtil.GetSingleDmo<WeightBill>(session, "ID", dmo.ID, "B3ID", "DeleteState", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionMoney");
var min = InnerBLUtil.GetSingleDmo<WeightBill>(session, "ID", dmo.ID, "B3ID", "DeleteState", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionMoney", "PrintNumber");
dmo.B3ID = min.B3ID;
dmo.DeleteState = min.DeleteState;
dmo.Inspector_ID = min.Inspector_ID;
dmo.Inspector_Name = min.Inspector_Name;
dmo.HouseNames = min.HouseNames;
dmo.SanctionMoney = min.SanctionMoney;
dmo.PrintNumber = min.PrintNumber;
dmo.Sync = false;
dmo.ModifyTime = DateTime.Now;
}
@ -226,6 +229,10 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(update);
var delete = new DQDeleteDom(typeof(WeightBillCheck));
delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(delete);
session.Commit();
}
@ -250,8 +257,9 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("B3ID"));
query.Columns.Add(DQSelectColumn.Field("SanctionMoney"));
query.Columns.Add(DQSelectColumn.Field("HouseNames"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29))));
var result = query.EExecuteList<long, long?, decimal?>().Select(x => new CTuple<long, long?, decimal?>(x.Item1, x.Item2, x.Item3));
var result = query.EExecuteList<long, long?, decimal?, string>().Select(x => new CTuple<long, long?, decimal?, string>(x.Item1, x.Item2, x.Item3, x.Item4));
return serializer.Serialize(result.ToList());
}
@ -301,5 +309,17 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.Details = s.Select(x => new PWeightBill_SanctionDetail { AbnormalItem_Name = x.Item1, Number = x.Item2, Money = x.Item3 }).ToList();
return serializer.Serialize(entity);
}
[Rpc]
public static int DoCheck(long id, string creator)
{
var update = new DQUpdateDom(typeof(WeightBill));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("PrintNumber", DQExpression.Add(DQExpression.Field("PrintNumber"), DQExpression.Value(1))));
update.EExecute();
WeightBillCheck.Insert(id, creator);
return 1;
}
}
}

+ 0
- 4
B3ClientService/Rpcs/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs View File

@ -11,10 +11,6 @@ namespace BWP.B3ClientService.RpcBO
public int Order { get; set; }
public short Technics { get; set; }
public string Technics_Name { get; set; }
public int Number { get; set; }
public int Already { get; set; }


+ 35
- 0
B3ClientService/Tasks/UpdateLoad/DoCheckBills.cs View File

@ -0,0 +1,35 @@
using BWP.B3ClientService.BO;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework.BWPClients;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Tasks.UpdateLoad
{
public static class DoCheckBills
{
public static void Execute(string uri)
{
var weightBills = GetWeightBillCheck();
foreach (var item in weightBills)
{
var bwpClient = new BWPClient(uri, item.Item2);
bwpClient.Call<int>("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/DoCheck", item.Item1);
WeightBillCheck.SetSynced(item.Item1);
}
}
static List<Tuple<long, string>> GetWeightBillCheck()
{
var query = new DQueryDom(new JoinAlias(typeof(WeightBillCheck)));
query.Columns.Add(DQSelectColumn.Field("B3ID"));
query.Columns.Add(DQSelectColumn.Field("Creator"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("B3ID")), DQCondition.EQ("Sync", false)));
return query.EExecuteList<long, string>();
}
}
}

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

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


Loading…
Cancel
Save