Browse Source

需求单No.138861 排宰客户端右侧明细每个类别加上头数

master
yibo 7 years ago
parent
commit
53fc10e26d
1 changed files with 38 additions and 0 deletions
  1. +38
    -0
      B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs

+ 38
- 0
B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs View File

@ -74,6 +74,44 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(result); return serializer.Serialize(result);
} }
[Rpc]
public static Tuple<int, int> GetEveryNumberTuple(DateTime date)
{
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 already = OrderDetailTemp.Register(query, main);
var hurry = HurryOrderTemp.Register(query, main, true);
query.Columns.Add(DQSelectColumn.Field("Show", relate));
query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
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(DQExpression.Sum(alreadyNumber), "Already"));
query.GroupBy.Expressions.Add(DQExpression.Field(relate, "Show"));
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)), alreadyNumber));
var n1 = 0;
var n2 = 0;
using (var session = Dmo.NewSession())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var last = Convert.ToInt32(reader[1] ?? 0) - Convert.ToInt32(reader[2] ?? 0);
var type = (bool?)reader[0];
if (type == false)
n2 = last;
else
n1 += last;
}
}
}
return new Tuple<int, int>(n1, n2);
}
class OrderDetailTemp class OrderDetailTemp
{ {
public long WeightBill_ID { get; set; } public long WeightBill_ID { get; set; }


Loading…
Cancel
Save