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