diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index d5cf850..481a678 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -78,6 +78,7 @@
+
diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
index bdd09cb..93a2cc7 100644
--- a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
+++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
@@ -17,6 +17,10 @@ namespace BWP.B3ClientService.BO
[Join("OrderDetail_ID", "ID")]
public int? Order { get; set; }
+ [ReferenceTo(typeof(OrderDetail), "Date")]
+ [Join("OrderDetail_ID", "ID")]
+ public DateTime? Date { get; set; }
+
public short Technics { get; set; }
public string Technics_Name { get; set; }
diff --git a/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs
new file mode 100644
index 0000000..4600a7a
--- /dev/null
+++ b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3ClientService.BO
+{
+ [BOClass]
+ [Serializable]
+ public class OrderGradeFinishRelate
+ {
+ public long OrderDetail_ID { get; set; }
+
+ public short Technics { get; set; }
+
+ }
+}
diff --git a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
index 2918a21..ee244fc 100644
--- a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
+++ b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
@@ -7,6 +7,8 @@ namespace BWP.B3ClientService.RpcBO
{
public class GradeAndWeight
{
+ public long ID { get; set; }
+
public long OrderDetail_ID { get; set; }
public int Order { get; set; }
@@ -16,5 +18,7 @@ namespace BWP.B3ClientService.RpcBO
public int Number { get; set; }
public int Already { get; set; }
+
+ public bool Finish { get; set; }
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
index d2e09e5..579a31e 100644
--- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
@@ -19,26 +19,37 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
static JavaScriptSerializer serializer = new JavaScriptSerializer();
[Rpc]
- public static string GetGradeAndWeightList(DateTime date)
+ public static string GetGradeAndWeightList(DateTime date, long? maxID)
{
- var main = new JoinAlias(typeof(SecondOrder));
- var order = new JoinAlias(typeof(OrderDetail));
+ var main = new JoinAlias("_S1", typeof(SecondOrder));
+ var order = new JoinAlias("_O1", typeof(OrderDetail));
var detail = new JoinAlias(typeof(GradeAndWeight_Detail));
+ var relate = new JoinAlias(typeof(GradeTemp));
var query = new DQueryDom(main);
+ query.RegisterQueryTable(typeof(GradeTemp), new string[] { "OrdreID", "Tang", "Mao" }, 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(detail), DQCondition.EQ(main, "OrderDetail_ID", detail, "OrderDetail_ID"));
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrdreID"));
+ query.Columns.Add(DQSelectColumn.Field("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.Columns.Add(DQSelectColumn.Field("PlanNumber", order));//3
+ query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));//4
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang"));//5
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao"));//6
+ query.Columns.Add(DQSelectColumn.Field("Tang", relate));
+ query.Columns.Add(DQSelectColumn.Field("Mao", relate));
+ query.GroupBy.Expressions.Add(DQExpression.Field("ID"));
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.GroupBy.Expressions.Add(DQExpression.Field(relate, "Tang"));
+ query.GroupBy.Expressions.Add(DQExpression.Field(relate, "Mao"));
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));
var list = new List();
using (var session = Dmo.NewSession())
{
@@ -47,26 +58,30 @@ 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.ID = (long)reader[0];
+ tang.OrderDetail_ID = (long)reader[1];
+ tang.Order = (int)reader[2];
+ tang.Number = (int)reader[4];
+ tang.Finish = Convert.ToBoolean(reader[7]);
if (tang.Number != 0)
{
tang.Technics_Name = "烫褪";
- tang.Already = Convert.ToInt32(reader[4]);
+ tang.Already = Convert.ToInt32(reader[5]);
list.Add(tang);
}
- var lastNumber = (int)reader[2] - tang.Number;
+ var lastNumber = (int)reader[3] - tang.Number;
if (lastNumber == 0)
continue;
var mb = new GradeAndWeight();
list.Add(mb);
+ mb.ID = tang.ID;
mb.OrderDetail_ID = tang.OrderDetail_ID;
mb.Order = tang.Order;
mb.Number = lastNumber;
mb.Technics_Name = "毛剥";
- mb.Already = Convert.ToInt32(reader[5]);
+ mb.Already = Convert.ToInt32(reader[6]);
+ mb.Finish = Convert.ToBoolean(reader[8]);
}
}
}
@@ -74,11 +89,39 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list);
}
+ class GradeTemp
+ {
+ public long OrdreID { get; set; }
+
+ public bool Tang { get; set; }
+
+ public bool Mao { 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.Value(1), DQExpression.Value(0))), "Tang"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao"));
+ 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 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)));
+ query.Where.Conditions.Add(DQCondition.Between("Date", start, end + new TimeSpan(23, 59, 29)));
if (type != -1)
query.Where.Conditions.Add(DQCondition.EQ("Technics", type));
if (order.HasValue)
@@ -117,5 +160,20 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
}
return 1;
}
+
+ [Rpc]
+ public static int SetGradeFinish(long orderDetailID, short technics)
+ {
+ using (var session = Dmo.NewSession())
+ {
+ var entity = new OrderGradeFinishRelate();
+ entity.OrderDetail_ID = orderDetailID;
+ entity.Technics = technics;
+ session.Insert(entity);
+ session.Commit();
+ }
+
+ return 1;
+ }
}
}