diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index 20fdbbf..2a63910 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -91,6 +91,7 @@
+
@@ -102,7 +103,7 @@
-
+
@@ -124,13 +125,14 @@
-
+
+
diff --git a/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs b/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
index deaddcc..7513cbb 100644
--- a/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
+++ b/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
@@ -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; }
diff --git a/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs b/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
index 4ab0efc..edccaae 100644
--- a/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
+++ b/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
@@ -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")]
diff --git a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
index cc318e9..8f60964 100644
--- a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
+++ b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
@@ -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; }
diff --git a/B3ClientService/BO/Bill/SecondOrder/SecondOrder.cs b/B3ClientService/BO/Bill/SecondOrder/SecondOrder.cs
index 43ce1ed..7dbdf44 100644
--- a/B3ClientService/BO/Bill/SecondOrder/SecondOrder.cs
+++ b/B3ClientService/BO/Bill/SecondOrder/SecondOrder.cs
@@ -28,6 +28,7 @@ namespace BWP.B3ClientService.BO
public int HotFadeNumber { get; set; }
+ //是否可以上传B3
public bool IsOk { get; set; }
[DbColumn(DefaultValue = 1)]
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs
index a66159d..9c1fbfc 100644
--- a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs
@@ -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; }
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBillCheck.cs b/B3ClientService/BO/Bill/WeightBill/WeightBillCheck.cs
new file mode 100644
index 0000000..86c4909
--- /dev/null
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBillCheck.cs
@@ -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; }
+
+ ///
+ /// 单据创建人用户名
+ ///
+ public string Creator { get; set; }
+
+ ///
+ /// 同步状态
+ ///
+ 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();
+ }
+ }
+}
diff --git a/B3ClientService/ClientSerializerBo/OrderDetail/ConfirmOrder.cs b/B3ClientService/ClientSerializerBo/OrderDetail/SelectHurryList.cs
similarity index 53%
rename from B3ClientService/ClientSerializerBo/OrderDetail/ConfirmOrder.cs
rename to B3ClientService/ClientSerializerBo/OrderDetail/SelectHurryList.cs
index 2d36dfb..a612f5e 100644
--- a/B3ClientService/ClientSerializerBo/OrderDetail/ConfirmOrder.cs
+++ b/B3ClientService/ClientSerializerBo/OrderDetail/SelectHurryList.cs
@@ -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; }
}
}
diff --git a/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs
index d920f62..d52148b 100644
--- a/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs
+++ b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs
@@ -30,5 +30,7 @@ namespace BWP.B3ClientService
public string Remark { get; set; }
public bool FinishWeight { get; set; }
+
+ public int PrintNumber { get; set; }
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
index 453a9a7..7da64c6 100644
--- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
@@ -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();
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(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;
- }
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/OrderConfirmRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderConfirmRpc.cs
deleted file mode 100644
index dfb5bfe..0000000
--- a/B3ClientService/Rpcs/BillRpc/OrderConfirmRpc.cs
+++ /dev/null
@@ -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();
- 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;
- }
- }
-}
diff --git a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
index 94cda1c..647fdbe 100644
--- a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
@@ -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();
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(id, "Order");
+ }
+
+ [Rpc]
+ public static int GetCurrentOrderPlanNumber(long id)
+ {
+ return GetOrderDetailProperty(id, "PlanNumber");
+ }
+
+ static T GetOrderDetailProperty(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();
+ return (T)query.EExecuteScalar();
}
[Rpc]
@@ -237,7 +235,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var entity = serializer.Deserialize(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(session, "ID", id, "Order", "Date", "SecondarySplit");
- //if (entity.SecondarySplit)
- // throw new Exception("已进行烫毛计数,不能修改");
+ var entity = InnerBLUtil.GetSingleDmo(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().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(session, typeof(HurryRecord), "HurryNumber", id);
+ var entity = InnerBLUtil.GetSingleDmo(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(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();
+ 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();
+ 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(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() ?? 0;
+ }
+ #endregion
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
index 8ad5b39..5f81562 100644
--- a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
@@ -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();
using (var session = Dmo.NewSession())
{
diff --git a/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs b/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs
new file mode 100644
index 0000000..503959a
--- /dev/null
+++ b/B3ClientService/Rpcs/BillRpc/TrunksIousOutInStoreRpc.cs
@@ -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();
+ 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];
+ }
+ }
+}
diff --git a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
index f3441ed..6cdd418 100644
--- a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
@@ -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(session, "ID", dmo.ID, "B3ID", "DeleteState", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionMoney");
+ var min = InnerBLUtil.GetSingleDmo(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().Select(x => new CTuple(x.Item1, x.Item2, x.Item3));
+ var result = query.EExecuteList().Select(x => new CTuple(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;
+ }
}
}
diff --git a/B3ClientService/Rpcs/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/Rpcs/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
index 77d79ce..9a5f507 100644
--- a/B3ClientService/Rpcs/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
+++ b/B3ClientService/Rpcs/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
@@ -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; }
diff --git a/B3ClientService/Tasks/UpdateLoad/DoCheckBills.cs b/B3ClientService/Tasks/UpdateLoad/DoCheckBills.cs
new file mode 100644
index 0000000..77080d1
--- /dev/null
+++ b/B3ClientService/Tasks/UpdateLoad/DoCheckBills.cs
@@ -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("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/DoCheck", item.Item1);
+ WeightBillCheck.SetSynced(item.Item1);
+ }
+ }
+
+ static List> 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();
+ }
+ }
+}
diff --git a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
index 82e9010..0a455fd 100644
--- a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
@@ -25,6 +25,8 @@ namespace BWP.B3ClientService.Tasks
UpLoadWeightBill.Execute(serverUri);
UploadOrderDetail.Execute(serverUri);
UploadSecondOrder.Execute(serverUri);
+
+ DoCheckBills.Execute(serverUri);
}
public string Name