|
|
|
@ -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<GradeAndWeight>(); |
|
|
|
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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |