Browse Source

修改。

master
yibo 8 years ago
parent
commit
8706f89098
2 changed files with 58 additions and 9 deletions
  1. +35
    -6
      B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
  2. +23
    -3
      B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs

+ 35
- 6
B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs View File

@ -153,7 +153,8 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name")); query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name"));
query.Columns.Add(DQSelectColumn.Field("IsHurryButcher")); query.Columns.Add(DQSelectColumn.Field("IsHurryButcher"));
query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID")); query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("SecondarySplit", false)));
query.Columns.Add(DQSelectColumn.Field("SecondarySplit"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
if (minOrder.HasValue) if (minOrder.HasValue)
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Order", minOrder)); query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Order", minOrder));
var list = new List<OrderDetail>(); var list = new List<OrderDetail>();
@ -171,6 +172,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.LiveColonyHouse_Name = (string)reader[4]; entity.LiveColonyHouse_Name = (string)reader[4];
entity.IsHurryButcher = (bool)reader[5]; entity.IsHurryButcher = (bool)reader[5];
entity.B3WeighBill_ID = (long?)reader[6]; entity.B3WeighBill_ID = (long?)reader[6];
entity.SecondarySplit = (bool)reader[7];
list.Add(entity); list.Add(entity);
} }
} }
@ -201,9 +203,10 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{ {
insert = insert.ESerializeDateTime(); insert = insert.ESerializeDateTime();
var entity = serializer.Deserialize<OrderDetail>(insert); var entity = serializer.Deserialize<OrderDetail>(insert);
entity.ModifyTime = DateTime.Now;
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
CheckCanInsert(session, entity.Order, entity.Date.Value);
entity.ModifyTime = DateTime.Now;
UpdateOrder(session, entity.Order - 1, 1, entity.Date); UpdateOrder(session, entity.Order - 1, 1, entity.Date);
session.Insert(entity); session.Insert(entity);
session.Commit(); session.Commit();
@ -211,6 +214,16 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return entity.ID; return entity.ID;
} }
static void CheckCanInsert(IDmoSession session, int order, DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Range = SelectRange.Top(1);
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("SecondarySplit", true), DQCondition.GreaterThanOrEqual("Order", order)));
if (query.EExecuteScalar(session) != null)
throw new Exception("不允许插入到已进行烫毛计数顺序之前");
}
static void UpdateOrderDetailPartial(IDmoSession session, long id, string property, object value) static void UpdateOrderDetailPartial(IDmoSession session, long id, string property, object value)
{ {
var update = new DQUpdateDom(typeof(OrderDetail)); var update = new DQUpdateDom(typeof(OrderDetail));
@ -222,11 +235,25 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
} }
[Rpc] [Rpc]
public static int UpdateOrderProperty(long id, string property, object value)
public static int UpdateNum(long id, int number)
{
using (var session = Dmo.NewSession())
{
var secondSplit = InnerBLUtil.GetDmoPropertyByID<bool>(session, typeof(OrderDetail), "SecondarySplit", id);
if (secondSplit)
throw new Exception("已进行烫毛计数,不能修改");
UpdateOrderDetailPartial(session, id, "PlanNumber", number);
session.Commit();
}
return 1;
}
[Rpc]
public static int UpdateHurryFlag(long id, bool isHurryButcher)
{ {
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
UpdateOrderDetailPartial(session, id, property, value);
UpdateOrderDetailPartial(session, id, "IsHurryButcher", isHurryButcher);
session.Commit(); session.Commit();
} }
return 1; return 1;
@ -237,7 +264,9 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{ {
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
var entity = InnerBLUtil.GetSingleDmo<OrderDetail>(session, "ID", id, "Order", "Date");
var entity = InnerBLUtil.GetSingleDmo<OrderDetail>(session, "ID", id, "Order", "Date", "SecondarySplit");
if (entity.SecondarySplit)
throw new Exception("已进行烫毛计数,不能修改");
UpdateOrder(session, entity.Order, -1, entity.Date); UpdateOrder(session, entity.Order, -1, entity.Date);
UpdateOrderDetailPartial(session, id, "DeleteState", true); UpdateOrderDetailPartial(session, id, "DeleteState", true);
session.Commit(); session.Commit();
@ -265,7 +294,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
update.Columns.Add(new DQUpdateColumn("Order", DQExpression.Add(DQExpression.Field("Order"), DQExpression.Value(offset)))); update.Columns.Add(new DQUpdateColumn("Order", DQExpression.Add(DQExpression.Field("Order"), DQExpression.Value(offset))));
update.Columns.Add(new DQUpdateColumn("Sync", false)); update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now)); update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now));
update.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThan("Order", greaterThanOrder), DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("SecondarySplit", false)));
update.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThan("Order", greaterThanOrder), DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
session.ExecuteNonQuery(update); session.ExecuteNonQuery(update);
} }
} }


+ 23
- 3
B3ClientService/Rpcs/BillRpc/SecondOrderRpc.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;
@ -57,13 +58,14 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
} }
[Rpc] [Rpc]
public static long InsertDetail(string json, string mainJson)
public static long InsertDetail(string json, string mainJson, long orderDetailID)
{ {
json = json.ESerializeDateTime(); json = json.ESerializeDateTime();
var detail = serializer.Deserialize<SecondOrder_Detail>(json); var detail = serializer.Deserialize<SecondOrder_Detail>(json);
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
CheckOrderDelete(session, orderDetailID);
if (detail.SecondOrder_ID == 0) if (detail.SecondOrder_ID == 0)
{ {
mainJson = mainJson.ESerializeDateTime(); mainJson = mainJson.ESerializeDateTime();
@ -72,6 +74,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.IsOk = true; entity.IsOk = true;
session.Insert(entity); session.Insert(entity);
detail.SecondOrder_ID = entity.ID; detail.SecondOrder_ID = entity.ID;
UpdateOrderDetailHasSecondarySplit(session, entity.OrderDetail_ID);
} }
else else
UpdateMainNumber(session, detail.SecondOrder_ID, detail.Number); UpdateMainNumber(session, detail.SecondOrder_ID, detail.Number);
@ -81,8 +84,16 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return detail.SecondOrder_ID; return detail.SecondOrder_ID;
} }
static void UpdateOrderDetailHasSecondarySplit(IDmoSession session, long id)
{
var update = new DQUpdateDom(typeof(OrderDetail));
update.Columns.Add(new DQUpdateColumn("SecondarySplit", true));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(update);
}
[Rpc] [Rpc]
public static int DetailDetail(long id, long mainID, int number)
public static int DeleteDetail(long id, long mainID, int number)
{ {
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
@ -106,10 +117,11 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
} }
[Rpc] [Rpc]
public static long SetFinish(long id, string json)
public static long SetFinish(long id, long orderDetailID, string json)
{ {
using (var session = Dmo.NewSession()) using (var session = Dmo.NewSession())
{ {
CheckOrderDelete(session, orderDetailID);
if (id == 0) if (id == 0)
{ {
var entity = serializer.Deserialize<SecondOrder>(json); var entity = serializer.Deserialize<SecondOrder>(json);
@ -129,6 +141,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
update.Columns.Add(new DQUpdateColumn("Finish", true)); update.Columns.Add(new DQUpdateColumn("Finish", true));
session.ExecuteNonQuery(update); session.ExecuteNonQuery(update);
} }
UpdateOrderDetailHasSecondarySplit(session, orderDetailID);
session.Commit(); session.Commit();
} }
return id; return id;
@ -141,5 +154,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.Where.Conditions.Add(DQCondition.EQ("SecondOrder_ID", id)); query.Where.Conditions.Add(DQCondition.EQ("SecondOrder_ID", id));
return serializer.Serialize(query.EExecuteList().Cast<SecondOrder_Detail>().ToList()); return serializer.Serialize(query.EExecuteList().Cast<SecondOrder_Detail>().ToList());
} }
static void CheckOrderDelete(IDmoSession session, long id)
{
var delete = InnerBLUtil.GetDmoPropertyByID<bool?>(session, typeof(OrderDetail), "DeleteState", id) ?? true;
if (delete)
throw new Exception("您正在操作的排宰顺序已被重新排序");
}
} }
} }

Loading…
Cancel
Save