diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index 62b6918..449aa3f 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -77,6 +77,7 @@
+
@@ -85,8 +86,6 @@
-
-
@@ -94,6 +93,7 @@
+
@@ -107,8 +107,8 @@
+
-
diff --git a/B3ClientService/BO/BaseInfo/Livestock.cs b/B3ClientService/BO/BaseInfo/Livestock.cs
index 9f8a857..46f14ae 100644
--- a/B3ClientService/BO/BaseInfo/Livestock.cs
+++ b/B3ClientService/BO/BaseInfo/Livestock.cs
@@ -1,13 +1,23 @@
-using System;
+using Forks.EnterpriseServices.DomainObjects2;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.BO
{
- [Serializable]
- public class Livestock : BaseInfo
+ [Serializable, BOClass]
+ [KeyField("ID", KeyGenType.assigned)]
+ public class Livestock
{
+ public long ID { get; set; }
+
+ public string Name { get; set; }
+
+ public short Technics { get; set; }
+
+ public int? SortNum { get; set; }
}
}
diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
new file mode 100644
index 0000000..bdd09cb
--- /dev/null
+++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
@@ -0,0 +1,32 @@
+using BWP.B3Frameworks.BO;
+using Forks.EnterpriseServices.DomainObjects2;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService.BO
+{
+ public class GradeAndWeight_Detail : Base
+ {
+ public int Index { get; set; }
+
+ public long OrderDetail_ID { get; set; }
+
+ [ReferenceTo(typeof(OrderDetail), "Order")]
+ [Join("OrderDetail_ID", "ID")]
+ public int? Order { get; set; }
+
+ public short Technics { get; set; }
+
+ public string Technics_Name { get; set; }
+
+ public long Livestock_ID { get; set; }
+
+ public string Livestock_Name { get; set; }
+
+ public decimal? Weight { get; set; }
+
+ public DateTime Time { get; set; }
+ }
+}
diff --git a/B3ClientService/BO/ButcherOrder/ButcherOrder.cs b/B3ClientService/BO/ButcherOrder/ButcherOrder.cs
deleted file mode 100644
index e111426..0000000
--- a/B3ClientService/BO/ButcherOrder/ButcherOrder.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using BWP.B3Frameworks.BO;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace BWP.B3ClientService.BO
-{
- [Serializable]
- public class ButcherOrder : Base
- {
- public long BillID { get; set; }
-
- public long BillDetailID { get; set; }
-
- public int Order { get; set; }
-
- public int PlanNumber { get; set; }
-
- public DateTime Date { get; set; }
-
- public int HotFadeNumber { get; set; }
-
- public bool Sync { get; set; }
-
- public bool UpLoad { get; set; }
- }
-}
diff --git a/B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs b/B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs
deleted file mode 100644
index 5feabea..0000000
--- a/B3ClientService/BO/ButcherOrder/ButcherOrder_Detail.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using BWP.B3Frameworks.BO;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace BWP.B3ClientService.BO
-{
- [Serializable]
- public class ButcherOrder_Detail : Base
- {
- public long ButcherOrder_ID { get; set; }
-
- public DateTime Date { get; set; }
-
- public int Number { get; set; }
- }
-}
diff --git a/B3ClientService/CTuple.cs b/B3ClientService/CTuple.cs
index be1ce1a..cb2ec88 100644
--- a/B3ClientService/CTuple.cs
+++ b/B3ClientService/CTuple.cs
@@ -39,4 +39,24 @@ namespace BWP.B3ClientService
Item3 = t3;
}
}
+
+ public class CTuple
+ {
+ public T1 Item1 { get; set; }
+
+ public T2 Item2 { get; set; }
+
+ public T3 Item3 { get; set; }
+ public T4 Item4 { get; set; }
+ public CTuple()
+ { }
+
+ public CTuple(T1 t1, T2 t2, T3 t3, T4 t4)
+ {
+ Item1 = t1;
+ Item2 = t2;
+ Item3 = t3;
+ Item4 = t4;
+ }
+ }
}
diff --git a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
new file mode 100644
index 0000000..2918a21
--- /dev/null
+++ b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService.RpcBO
+{
+ public class GradeAndWeight
+ {
+ public long OrderDetail_ID { get; set; }
+
+ public int Order { get; set; }
+
+ public string Technics_Name { get; set; }
+
+ public int Number { get; set; }
+
+ public int Already { get; set; }
+ }
+}
diff --git a/B3ClientService/Rpcs/BaseInfoRpc.cs b/B3ClientService/Rpcs/BaseInfoRpc.cs
index 4e1328c..e081f6e 100644
--- a/B3ClientService/Rpcs/BaseInfoRpc.cs
+++ b/B3ClientService/Rpcs/BaseInfoRpc.cs
@@ -9,6 +9,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Web.Script.Serialization;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs
@@ -16,18 +17,14 @@ namespace BWP.B3ClientService.Rpcs
[Rpc]
public static class BaseInfoRpc
{
+ static JavaScriptSerializer serializer = new JavaScriptSerializer();
+
[Rpc]
public static List GetCarList(string input, string args, int top)
{
return GetBaseInfoList(input, args, top);
}
- [Rpc]
- public static List GetLivestockList(string input, string args, int top)
- {
- return GetBaseInfoList(input, args, top);
- }
-
[Rpc]
public static List GetSupplierList(string input, string args, int top)
{
@@ -134,6 +131,18 @@ namespace BWP.B3ClientService.Rpcs
return dmo.EExecuteList().Cast().ToList();
}
+ [Rpc]
+ public static string GetLivestock()
+ {
+ var query = new DQueryDom(new JoinAlias(typeof(Livestock)));
+ query.Columns.Add(DQSelectColumn.Field("ID"));
+ query.Columns.Add(DQSelectColumn.Field("Name"));
+ query.Columns.Add(DQSelectColumn.Field("Technics"));
+ query.OrderBy.Expressions.Add(DQOrderByExpression.Create("SortNum", false));
+ var list = query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2, x.Item3)).ToList();
+ return serializer.Serialize(list);
+ }
+
[Rpc]
public static List GetLiveVarietiesList(string input, string args, int top)
{
diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
new file mode 100644
index 0000000..adbaf2d
--- /dev/null
+++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
@@ -0,0 +1,117 @@
+using BWP.B3ClientService.BO;
+using BWP.B3ClientService.RpcBO;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.JsonRpc;
+using Forks.EnterpriseServices.SqlDoms;
+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 GradeAndWeightRpc
+ {
+ static JavaScriptSerializer serializer = new JavaScriptSerializer();
+
+ [Rpc]
+ public static string GetGradeAndWeightList(DateTime date)
+ {
+ var main = new JoinAlias(typeof(SecondOrder));
+ var order = new JoinAlias(typeof(OrderDetail));
+ var detail = new JoinAlias(typeof(GradeAndWeight_Detail));
+ 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(detail), DQCondition.EQ(main, "OrderDetail_ID", detail, "OrderDetail_ID"));
+ query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Order", order));
+ query.Columns.Add(DQSelectColumn.Field("PlanNumber", order));
+ query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao"));
+ query.GroupBy.Expressions.Add(DQExpression.Field("OrderDetail_ID"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(order, "Order"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(order, "PlanNumber"));
+ query.GroupBy.Expressions.Add(DQExpression.Field("HotFadeNumber"));
+
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29))));
+ var list = new List();
+ using (var session = Dmo.NewSession())
+ {
+ using (var reader = session.ExecuteReader(query))
+ {
+ while (reader.Read())
+ {
+ var tang = new GradeAndWeight();
+ tang.OrderDetail_ID = (long)reader[0];
+ tang.Order = (int)reader[1];
+ tang.Number = (int)reader[3];
+ if (tang.Number != 0)
+ {
+ tang.Technics_Name = "烫褪";
+ tang.Already = Convert.ToInt32(reader[4]);
+ list.Add(tang);
+ }
+
+ var lastNumber = (int)reader[2] - tang.Number;
+ if (lastNumber == 0)
+ continue;
+ var mb = new GradeAndWeight();
+ list.Add(mb);
+ mb.OrderDetail_ID = tang.OrderDetail_ID;
+ mb.Order = tang.Order;
+ mb.Number = lastNumber;
+ mb.Technics_Name = "毛剥";
+ mb.Already = Convert.ToInt32(reader[5]);
+ }
+ }
+ }
+
+ return serializer.Serialize(list);
+ }
+
+ [Rpc]
+ public static string GetDetailsList(DateTime start, DateTime end, int? order, int type)
+ {
+ var query = new DmoQuery(typeof(GradeAndWeight_Detail));
+ query.Where.Conditions.Add(DQCondition.Between("Time", start, end + new TimeSpan(23, 59, 29)));
+ if (type != -1)
+ query.Where.Conditions.Add(DQCondition.EQ("Technics", type));
+ if (order.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ("Order", order));
+ query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Time"));
+ return serializer.Serialize(query.EExecuteList());
+ }
+
+ [Rpc]
+ public static long InsertDetail(string json)
+ {
+ json = json.ESerializeDateTime();
+ var entity = serializer.Deserialize(json);
+ using (var session = Dmo.NewSession())
+ {
+ session.Insert(entity);
+ session.Commit();
+ return entity.ID;
+ }
+ }
+
+ [Rpc]
+ public static int FillWeight(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/ButcherOrderRpc.cs b/B3ClientService/Rpcs/ButcherOrderRpc.cs
deleted file mode 100644
index 3fce921..0000000
--- a/B3ClientService/Rpcs/ButcherOrderRpc.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using BWP.B3ClientService.BO;
-using BWP.B3Frameworks.Utils;
-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.Threading.Tasks;
-using TSingSoft.WebPluginFramework;
-
-namespace BWP.B3ClientService.Rpcs
-{
- [Rpc]
- public static class ButcherOrderRpc
- {
- [Rpc]
- public static List GetButcherOrder(DateTime date)
- {
- var query = new DmoQuery(typeof(ButcherOrder));
- query.Where.Conditions.Add(DQCondition.EQ("Date", date));
- return query.EExecuteList().Cast().ToList();
- }
-
- [Rpc]
- public static List GetOrderDetail(long orderID)
- {
- var query = new DmoQuery(typeof(ButcherOrder_Detail));
- query.Where.Conditions.Add(DQCondition.EQ("ButcherOrder_ID", orderID));
- query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
- return query.EExecuteList().Cast().ToList();
- }
-
- static void UpdateButcherOrder(IDmoSession session, long id, int hotFadeNumber)
- {
- var order = InnerBLUtil.GetSingleDmo(session, "ID", id, "HotFadeNumber", "Sync");
- order.HotFadeNumber += hotFadeNumber;
- if (hotFadeNumber < 0 && order.Sync)
- order.Sync = false;
- var update = new DQUpdateDom(typeof(ButcherOrder));
- update.Where.Conditions.Add(DQCondition.EQ("HotFadeNumber", order.HotFadeNumber));
- update.Where.Conditions.Add(DQCondition.EQ("Sync", order.Sync));
- update.Where.Conditions.Add(DQCondition.EQ("ID", id));
- session.ExecuteNonQuery(update);
- }
-
- [Rpc]
- public static void InsertOrderDetail(long orderID, int number)
- {
- using (var session = Dmo.NewSession())
- {
- var detail = new ButcherOrder_Detail();
- detail.Number = number;
- detail.Date = DateTime.Now;
- detail.ButcherOrder_ID = orderID;
- session.Insert(detail);
- UpdateButcherOrder(session, orderID, detail.Number);
- session.Commit();
- }
- }
-
- [Rpc]
- public static void DeleteOrderDetail(long id)
- {
- using (var session = Dmo.NewSession())
- {
- var detail = InnerBLUtil.GetSingleDmo(session, "ID", id, "ButcherOrder_ID", "Number");
- UpdateButcherOrder(session, detail.ButcherOrder_ID, -detail.Number);
- session.Commit();
- }
- }
- }
-}
diff --git a/B3ClientService/Tasks/SyncInfoFromServer.cs b/B3ClientService/Tasks/SyncInfoFromServer.cs
index 6a345d9..ff0b361 100644
--- a/B3ClientService/Tasks/SyncInfoFromServer.cs
+++ b/B3ClientService/Tasks/SyncInfoFromServer.cs
@@ -12,6 +12,7 @@ using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Web.Script.Serialization;
using TSingSoft.WebPluginFramework;
using TSingSoft.WebPluginFramework.TimerTasks;
@@ -19,6 +20,8 @@ namespace BWP.B3ClientService.Tasks
{
public class SyncInfoFromServer : ITimerTask
{
+ static JavaScriptSerializer serializer = new JavaScriptSerializer();
+
public void Execute()
{
var serverUri = ServerHost.GetServerUrl();
@@ -158,7 +161,23 @@ namespace BWP.B3ClientService.Tasks
void SyncLivestock()
{
- SyncBaseInfo("GetLivestock");
+ var result = RpcFacade.Call("/MainSystem/B3ButcherManage/Rpcs/TouchScreenRpcs/GetLivestock");
+ var list = serializer.Deserialize>>(result);
+ using (var context = new TransactionContext())
+ {
+ var sql1 = @"truncate table [B3ClientService_Livestock];";
+ context.Session.ExecuteSqlNonQuery(sql1);
+ foreach (var item in list)
+ {
+ var entity = new Livestock();
+ entity.ID = item.Item1;
+ entity.Name = item.Item2;
+ entity.Technics = item.Item3;
+ entity.SortNum = item.Item4;
+ context.Session.Insert(entity);
+ }
+ context.Commit();
+ }
}
void SyncPurchaseType()