Browse Source

修改支持掉猪业务

master
yibo 8 years ago
parent
commit
ca119e4fda
4 changed files with 121 additions and 5 deletions
  1. +114
    -0
      B3ClientService/Rpcs/BillRpc/DropPigRpc.cs
  2. +1
    -1
      B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
  3. +4
    -4
      B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
  4. +2
    -0
      B3ClientService/Rpcs/RpcBO/Bill/OrderDetail/SOrderDetail.cs

+ 114
- 0
B3ClientService/Rpcs/BillRpc/DropPigRpc.cs View File

@ -1,4 +1,5 @@
using BWP.B3ClientService.BO; using BWP.B3ClientService.BO;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery; using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc; using Forks.EnterpriseServices.JsonRpc;
@ -8,6 +9,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Web.Script.Serialization; using System.Web.Script.Serialization;
using TSingSoft.WebPluginFramework;
namespace BWP.B3ClientService.Rpcs.BillRpc namespace BWP.B3ClientService.Rpcs.BillRpc
{ {
@ -50,5 +52,117 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list); return serializer.Serialize(list);
} }
[Rpc]
public static int InsertDropPig(long orderId, int number, short type)
{
using (var session = Dmo.NewSession())
{
SubtractPlanNumber(session, orderId, number);
SubtractHotFadeNumber(session, orderId, number, type);
return InsertNewOrder(session, orderId, number, type);
}
}
static void SubtractPlanNumber(IDmoSession session, long id, int number)
{
var update = new DQUpdateDom(typeof(OrderDetail));
update.Columns.Add(new DQUpdateColumn("PlanNumber", DQExpression.Subtract(DQExpression.Field("PlanNumber"), DQExpression.Value(number))));
update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(update);
}
static void SubtractHotFadeNumber(IDmoSession session, long orderID, int number, short type)
{
var info = GetSecondOrderInfo(session, orderID);
if (type == 0)
{
if (info == null)
throw new Exception("没有烫褪头数");
else if (info.Item3 < number)
throw new Exception("烫褪头数不足");
var update = new DQUpdateDom(typeof(SecondOrder));
update.Columns.Add(new DQUpdateColumn("HotFadeNumber", DQExpression.Subtract(DQExpression.Field("HotFadeNumber"), DQExpression.Value(number))));
update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now));
update.Where.Conditions.Add(DQCondition.EQ("ID", info.Item1.Value));
session.ExecuteNonQuery(update);
var iDetail = new SecondOrder_Detail();
iDetail.Number = -number;
iDetail.SecondOrder_ID = info.Item1.Value;
iDetail.Time = DateTime.Now;
session.Insert(iDetail);
}
else
{
var mao = 0;
if (info == null)
mao = InnerBLUtil.GetDmoPropertyByID<int>(session, typeof(SecondOrder), "PlanNumber", orderID);
else
mao = info.Item2.Value - info.Item3.Value;
if (mao < number)
throw new Exception("毛剥头数不足");
}
}
static Tuple<long?, int?, int?> GetSecondOrderInfo(IDmoSession session, long orderID)
{
var query = new DQueryDom(new JoinAlias(typeof(SecondOrder)));
query.Where.Conditions.Add(DQCondition.EQ("OrderDetail_ID", orderID));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));
return query.EExecuteScalar<long?, int?, int?>(session);
}
static int InsertNewOrder(IDmoSession session, long orderID, int number, short type)
{
var order = InnerBLUtil.GetSingleDmo<OrderDetail>(session, new Tuple<string, object>("ID", orderID));
var nOrder = new OrderDetail();
DmoUtil.CopyDmoFields(order, nOrder, "B3MainID", "Order", "PlanNumber", "SecondarySplit", "OrderState", "IsDrop", "B3ID", "Sync", "ModifyTime", "ID");
nOrder.Order = GetMaxOrder(nOrder.Date.Value) + 1;
nOrder.PlanNumber = number;
nOrder.SecondarySplit = true;
nOrder.OrderState = 20;
nOrder.IsDrop = true;
nOrder.ModifyTime = DateTime.Now;
session.Insert(nOrder);
var sOrder = new SecondOrder();
sOrder.Sync = false;
sOrder.ModifyTime = DateTime.Now;
sOrder.OrderDetail_ID = nOrder.ID;
sOrder.HotFadeNumber = type == 0 ? number : 0;
sOrder.IsOk = true;
sOrder.Finish = true;
sOrder.FinishGrade = true;
session.Insert(sOrder);
if (type == 0)
{
var detail = new SecondOrder_Detail();
detail.Number = number;
detail.SecondOrder_ID = sOrder.ID;
detail.Time = DateTime.Now;
session.Insert(detail);
}
return nOrder.Order;
}
static int GetMaxOrder(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Field("IsDrop"));
query.Columns.Add(DQSelectColumn.Max("Order"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
query.GroupBy.Expressions.Add(DQExpression.Field("IsDrop"));
var r = query.EExecuteList<bool, int>();
var first = r.FirstOrDefault(x => x.Item1);
if (first == null)
return r.First().Item2;
else
return first.Item2;
}
} }
} }

+ 1
- 1
B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs View File

@ -35,7 +35,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Columns.Add(DQSelectColumn.Field("Already", relate)); query.Columns.Add(DQSelectColumn.Field("Already", relate));
query.Columns.Add(DQSelectColumn.Field("Finish", relate)); query.Columns.Add(DQSelectColumn.Field("Finish", relate));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "Date", date)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "Date", date), DQCondition.EQ(order, "IsDrop", false)));
var list = new List<GradeAndWeight>(); var list = new List<GradeAndWeight>();
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {


+ 4
- 4
B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs View File

@ -172,7 +172,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
query.Columns.Add(DQSelectColumn.Field("OrderState")); query.Columns.Add(DQSelectColumn.Field("OrderState"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsDrop", false)));
var list = new List<OrderDetail>(); var list = new List<OrderDetail>();
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
@ -204,7 +204,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{ {
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail))); var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Max("Order")); query.Columns.Add(DQSelectColumn.Max("Order"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date.Date), DQCondition.EQ("DeleteState", false)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date.Date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsDrop", false)));
return query.EExecuteScalar<int?>() ?? 0; return query.EExecuteScalar<int?>() ?? 0;
} }
@ -249,7 +249,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail))); var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Range = SelectRange.Top(1); query.Range = SelectRange.Top(1);
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.GreaterThanOrEqual("OrderState", 10), DQCondition.GreaterThanOrEqual("Order", order)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.GreaterThanOrEqual("OrderState", 10), DQCondition.GreaterThanOrEqual("Order", order), DQCondition.EQ("IsDrop", false)));
if (query.EExecuteScalar(session) != null) if (query.EExecuteScalar(session) != null)
throw new Exception("不允许插入到已进行烫毛计数顺序之前"); throw new Exception("不允许插入到已进行烫毛计数顺序之前");
} }
@ -390,7 +390,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var hurry = GetHurryRecordNumber(weightBillId); var hurry = GetHurryRecordNumber(weightBillId);
query.Columns.Add(DQSelectColumn.Field("ID", order)); query.Columns.Add(DQSelectColumn.Field("ID", order));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(order, "PlanNumber"), DQExpression.Value(0))), "last")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Subtract(DQExpression.IfNull(DQExpression.Field(detail, "Number"), DQExpression.Value(0)), DQExpression.IfNull(DQExpression.Field(order, "PlanNumber"), DQExpression.Value(0))), "last"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "IsHurryButcher", false), DQCondition.EQ(detail, "WeightBill_ID", weightBillId)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "IsHurryButcher", false), DQCondition.EQ("IsDrop", false), DQCondition.EQ(detail, "WeightBill_ID", weightBillId)));
long? id = null; long? id = null;
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {


+ 2
- 0
B3ClientService/Rpcs/RpcBO/Bill/OrderDetail/SOrderDetail.cs View File

@ -23,5 +23,7 @@ namespace BWP.B3ClientService.RpcBO
public string LiveColonyHouse_Name { get; set; } public string LiveColonyHouse_Name { get; set; }
public bool IsHurryButcher { get; set; } public bool IsHurryButcher { get; set; }
public bool IsDrop { get; set; }
} }
} }

Loading…
Cancel
Save