Browse Source

修改。

master
yibo 8 years ago
parent
commit
f55ca1b61d
5 changed files with 99 additions and 14 deletions
  1. +1
    -0
      B3ClientService/B3ClientService.csproj
  2. +4
    -0
      B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
  3. +18
    -0
      B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs
  4. +4
    -0
      B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
  5. +72
    -14
      B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs

+ 1
- 0
B3ClientService/B3ClientService.csproj View File

@ -78,6 +78,7 @@
<Compile Include="BO\BaseInfo\Supplier.cs" />
<Compile Include="BO\BaseInfo\Zone.cs" />
<Compile Include="BO\Bill\GradeAndWeight\GradeAndWeight_Detail.cs" />
<Compile Include="BO\Bill\GradeAndWeight\OrderGradeFinishRelate.cs" />
<Compile Include="BO\Bill\OrderDetail\OrderDetail.cs" />
<Compile Include="BO\Bill\SecondOrder\SecondOrder.cs" />
<Compile Include="BO\Bill\SecondOrder\SecondOrder_Detail.cs" />


+ 4
- 0
B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs View File

@ -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; }


+ 18
- 0
B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs View File

@ -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; }
}
}

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

@ -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; }
}
}

+ 72
- 14
B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs View File

@ -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;
}
}
}

Loading…
Cancel
Save