|
|
|
@ -506,21 +506,85 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
throw new Exception(string.Format("错误的状态输入 {0}", state)); |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
var orderInfo = InnerBLUtil.GetSingleDmo<OrderDetail>(session, "ID", id, "Technics", "PlanNumber"); |
|
|
|
orderInfo.ID = id; |
|
|
|
|
|
|
|
var update = new DQUpdateDom(typeof(OrderDetail)); |
|
|
|
update.Columns.Add(new DQUpdateColumn("OrderState", state)); |
|
|
|
update.Where.Conditions.Add(DQCondition.EQ("ID", id)); |
|
|
|
session.ExecuteNonQuery(update); |
|
|
|
if (state == 20) |
|
|
|
if (orderInfo.Technics.HasValue) |
|
|
|
{ |
|
|
|
var orderInfo = InnerBLUtil.GetSingleDmo<OrderDetail>(session, "ID", id, "Technics", "PlanNumber"); |
|
|
|
orderInfo.ID = id; |
|
|
|
SecondOrderRpc.OffLineCreateSecondOrder(session, orderInfo); |
|
|
|
if (state == 0) |
|
|
|
update.Columns.Add(new DQUpdateColumn("SecondarySplit", false)); |
|
|
|
else |
|
|
|
update.Columns.Add(new DQUpdateColumn("SecondarySplit", true)); |
|
|
|
} |
|
|
|
update.Where.Conditions.Add(DQCondition.EQ("ID", id)); |
|
|
|
session.ExecuteNonQuery(update); |
|
|
|
if (orderInfo.Technics.HasValue) |
|
|
|
OffLineCreateSecondOrder(session, orderInfo, state); |
|
|
|
session.Commit(); |
|
|
|
} |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
static void OffLineCreateSecondOrder(IDmoSession session, OrderDetail detail, int state) |
|
|
|
{ |
|
|
|
var secondOrderID = GetSecondOrderID(session, detail.ID); |
|
|
|
if (state == 0) |
|
|
|
DeleteSecondOrder(session, secondOrderID, detail.ID); |
|
|
|
else |
|
|
|
{ |
|
|
|
if (secondOrderID.HasValue) |
|
|
|
return; |
|
|
|
var second = new SecondOrder(); |
|
|
|
second.ModifyTime = DateTime.Now; |
|
|
|
second.IsOk = true; |
|
|
|
second.Finish = true; |
|
|
|
second.OrderDetail_ID = detail.ID; |
|
|
|
second.HotFadeNumber = detail.Technics == 0 ? detail.PlanNumber : 0; |
|
|
|
session.Insert(second); |
|
|
|
if (second.HotFadeNumber != 0) |
|
|
|
return; |
|
|
|
var sDetail = new SecondOrder_Detail(); |
|
|
|
sDetail.Number = second.HotFadeNumber; |
|
|
|
sDetail.SecondOrder_ID = second.ID; |
|
|
|
sDetail.Time = DateTime.Now; |
|
|
|
session.Insert(sDetail); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private static void DeleteSecondOrder(IDmoSession session, long? secondOrderID, long orderID) |
|
|
|
{ |
|
|
|
if (secondOrderID == null) |
|
|
|
return; |
|
|
|
BeforeDeleteSecondOrder(session, orderID); |
|
|
|
var delete = new DQDeleteDom(typeof(SecondOrder)); |
|
|
|
delete.Where.Conditions.Add(DQCondition.EQ("ID", secondOrderID)); |
|
|
|
session.ExecuteNonQuery(delete); |
|
|
|
|
|
|
|
var delete2 = new DQDeleteDom(typeof(SecondOrder_Detail)); |
|
|
|
delete2.Where.Conditions.Add(DQCondition.EQ("SecondOrder_ID", secondOrderID)); |
|
|
|
session.ExecuteNonQuery(delete2); |
|
|
|
} |
|
|
|
|
|
|
|
static void BeforeDeleteSecondOrder(IDmoSession session, long orderID) |
|
|
|
{ |
|
|
|
var q = new DQueryDom(new JoinAlias(typeof(GradeAndWeight_Detail))); |
|
|
|
q.Where.Conditions.Add(DQCondition.EQ("OrderDetail_ID", orderID)); |
|
|
|
q.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
q.Range = SelectRange.Top(1); |
|
|
|
if (q.EExecuteScalar() != null) |
|
|
|
throw new Exception("已经开始胴体称重定级,无法取消"); |
|
|
|
} |
|
|
|
|
|
|
|
private static long? GetSecondOrderID(IDmoSession session, long orderDetailID) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(SecondOrder))); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("OrderDetail_ID", orderDetailID)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
return query.EExecuteScalar<long?>(session); |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static long InsertByHurryRecord(string insert, long hurryID) |
|
|
|
{ |
|
|
|
|