diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index cdb24f9..d458659 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -148,6 +148,7 @@
+
@@ -160,6 +161,7 @@
+
diff --git a/B3ClientService/BO/Bill/OrderDetail/OrderConfirmDetial.cs b/B3ClientService/BO/Bill/OrderDetail/OrderConfirmDetial.cs
new file mode 100644
index 0000000..ae698e0
--- /dev/null
+++ b/B3ClientService/BO/Bill/OrderDetail/OrderConfirmDetial.cs
@@ -0,0 +1,14 @@
+using BWP.B3Frameworks.BO;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService.BO
+{
+ public class OrderConfirmDetial : Base
+ {
+ public long OrderDetail_ID { get; set; }
+ public int? Number { get; set; }
+ }
+}
diff --git a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
index d55120a..c870919 100644
--- a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
+++ b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
@@ -60,5 +60,8 @@ namespace BWP.B3ClientService.BO
[DbColumn(DefaultValue = 1)]
public bool AlreadyDeath { get; set; }
+
+ [NonDmoProperty]
+ public int? ConfirmNumber { get; set; }
}
}
diff --git a/B3ClientService/BO/Bill/SecondOrder/SecondOrder_Detail.cs b/B3ClientService/BO/Bill/SecondOrder/SecondOrder_Detail.cs
index 4ce7638..8c25cb8 100644
--- a/B3ClientService/BO/Bill/SecondOrder/SecondOrder_Detail.cs
+++ b/B3ClientService/BO/Bill/SecondOrder/SecondOrder_Detail.cs
@@ -14,6 +14,6 @@ namespace BWP.B3ClientService.BO
public int Number { get; set; }
- public DateTime Time { get; set; }
+ public DateTime? Time { get; set; }
}
}
\ No newline at end of file
diff --git a/B3ClientService/BO/Bill/WeightBill/SelfHelpSendMsg.cs b/B3ClientService/BO/Bill/WeightBill/SelfHelpSendMsg.cs
new file mode 100644
index 0000000..d146115
--- /dev/null
+++ b/B3ClientService/BO/Bill/WeightBill/SelfHelpSendMsg.cs
@@ -0,0 +1,25 @@
+using BWP.B3Frameworks.BO;
+using Forks.EnterpriseServices.DomainObjects2;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3ClientService.BO.Bill
+{
+ [Serializable]
+ [KeyField("WeightBill_ID", KeyGenType.assigned)]
+ public class SelfHelpSendMsg : Base
+ {
+ public long WeightBill_ID { get; set; }
+
+ [ReferenceTo(typeof(WeightBill), "Car_Name")]
+ [Join("WeightBill_ID", "ID")]
+ public string Car_Name { get; set; }
+
+ [ReferenceTo(typeof(WeightBill), "Supplier_Name")]
+ [Join("WeightBill_ID", "ID")]
+ public string Supplier_Name { get; set; }
+ }
+}
diff --git a/B3ClientService/NamedValueTemplate.cs b/B3ClientService/NamedValueTemplate.cs
index f2ed0ff..f6bf8a5 100644
--- a/B3ClientService/NamedValueTemplate.cs
+++ b/B3ClientService/NamedValueTemplate.cs
@@ -20,8 +20,10 @@ namespace BWP.B3ClientService.NamedValueTemplate
public static readonly NamedValue<终端> 白条入库 = new NamedValue<终端>(0);
public static readonly NamedValue<终端> 白条领用 = new NamedValue<终端>(1);
public static readonly NamedValue<终端> 分割生产 = new NamedValue<终端>(2);
- public static readonly NamedValue<终端> 分割入库 = new NamedValue<终端>(3);
+ public static readonly NamedValue<终端> 扫码入库 = new NamedValue<终端>(3);
public static readonly NamedValue<终端> 赶猪确认 = new NamedValue<终端>(103);
+ public static readonly NamedValue<终端> 上线确认 = new NamedValue<终端>(104);
+ public static readonly NamedValue<终端> 烫毛分线 = new NamedValue<终端>(105);
}
public sealed class 适用客户端
diff --git a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
index 1313b2f..c8fb1a9 100644
--- a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
@@ -5,6 +5,7 @@ using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -239,7 +240,77 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list);
}
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
+ public static string GetConfirmOrder(DateTime date)
+ {
+ var main = new JoinAlias(typeof(OrderDetail));
+ var detail = new JoinAlias(typeof(OrderConfirmDetial));
+ var query = new DQueryDom(main);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "OrderDetail_ID"));
+ query.Columns.Add(DQSelectColumn.Field("ID"));
+ query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
+ query.Columns.Add(DQSelectColumn.Field("Order"));
+ query.Columns.Add(DQSelectColumn.Field("PlanNumber"));
+ query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name"));
+ query.Columns.Add(DQSelectColumn.Field("IsHurryButcher"));
+ query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID"));
+ query.Columns.Add(DQSelectColumn.Field("SecondarySplit"));
+ query.Columns.Add(DQSelectColumn.Field("OrderState"));
+ foreach (var item in query.Columns)
+ query.GroupBy.Expressions.Add(item.Expression);
+ query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
+
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false), DQCondition.EQ("IsDrop", false)));
+ var list = new List();
+ using (var session = Dmo.NewSession())
+ {
+ using (var reader = session.ExecuteReader(query))
+ {
+ while (reader.Read())
+ {
+ var entity = new OrderDetail();
+ entity.ID = (long)reader[0];
+ entity.WeightBill_ID = (long)reader[1];
+ entity.Order = (int)reader[2];
+ entity.PlanNumber = (int)reader[3];
+ entity.LiveColonyHouse_Name = (string)reader[4];
+ entity.IsHurryButcher = (bool)reader[5];
+ entity.B3WeighBill_ID = (long?)reader[6];
+ entity.SecondarySplit = (bool)reader[7];
+ entity.OrderState = (int)reader[8];
+ entity.ConfirmNumber = (int?)reader[9];
+ list.Add(entity);
+ }
+ }
+ }
+ return JsonConvert.SerializeObject(list);
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static string GetOrderConfirmDetail(long orderID)
+ {
+ var query = new DmoQuery(typeof(OrderConfirmDetial));
+ query.Where.Conditions.Add(DQCondition.EQ("OrderDetail_ID", orderID));
+ query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
+ return JsonConvert.SerializeObject(query.EExecuteList());
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static long SaveConfirmDetail(string obj)
+ {
+ var detail = JsonConvert.DeserializeObject(obj);
+ using (var session = Dmo.NewSession())
+ {
+ if(detail.ID==0)
+ session.Insert(detail);
+ else
+ session.Update(detail);
+ session.Commit();
+ return detail.ID;
+ }
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
public static int GetMaxOrder(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
@@ -248,7 +319,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return query.EExecuteScalar() ?? 0;
}
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static int GetCurrentOrder(long id)
{
return GetOrderDetailProperty(id, "Order");
@@ -376,7 +447,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
#endregion
#region hurryButcher
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static string GetHurryRecordList(long weightId)
{
var query = new DmoQuery(typeof(HurryRecord));
@@ -537,7 +608,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
#endregion
#region orderConfirm
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static int SetOrderState(long id, int state)
{
if (!(state == 0 || state == 10 || state == 20))
@@ -623,7 +694,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return query.EExecuteScalar(session);
}
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static long InsertByHurryRecord(string insert, long hurryID)
{
insert = insert.ESerializeDateTime();
@@ -656,7 +727,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
session.ExecuteNonQuery(update);
}
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static int GetFinishNumbers(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
diff --git a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
index 1836bd2..a17edcd 100644
--- a/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/SecondOrderRpc.cs
@@ -1,9 +1,11 @@
using BWP.B3ClientService.BO;
+using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -17,9 +19,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
[Rpc]
public static class SecondOrderRpc
{
- static JavaScriptSerializer serializer = new JavaScriptSerializer();
-
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static string SyncSecondOrder(DateTime date)
{
var main = new JoinAlias(typeof(OrderDetail));
@@ -55,36 +55,46 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
}
}
}
- return serializer.Serialize(list);
+ return JsonConvert.SerializeObject(list);
}
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static long InsertDetail(string json, string mainJson, long orderDetailID)
{
- json = json.ESerializeDateTime();
- var detail = serializer.Deserialize(json);
-
+ var detail = JsonConvert.DeserializeObject(json);
+ detail.Time = DateTime.Now;
using (var session = Dmo.NewSession())
{
CheckOrderDelete(session, orderDetailID);
if (detail.SecondOrder_ID == 0)
{
- mainJson = mainJson.ESerializeDateTime();
- var entity = serializer.Deserialize(mainJson);
+ var entity = JsonConvert.DeserializeObject(mainJson);
entity.ModifyTime = DateTime.Now;
+ entity.HotFadeNumber = detail.Number;
entity.IsOk = true;
session.Insert(entity);
detail.SecondOrder_ID = entity.ID;
+ UpdateOrInsert(session, detail);
UpdateOrderDetailHasSecondarySplit(session, entity.OrderDetail_ID);
}
else
- UpdateMainNumber(session, detail.SecondOrder_ID, detail.Number);
- session.Insert(detail);
+ {
+ UpdateOrInsert(session, detail);
+ UpdateMainNumber(session, detail.SecondOrder_ID);
+ }
session.Commit();
}
return detail.SecondOrder_ID;
}
+ static void UpdateOrInsert(IDmoSession session, T entity) where T : Base
+ {
+ if (entity.ID == 0)
+ session.Insert(entity);
+ else
+ session.Update(entity);
+ }
+
static void UpdateOrderDetailHasSecondarySplit(IDmoSession session, long id)
{
var update = new DQUpdateDom(typeof(OrderDetail));
@@ -93,7 +103,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
session.ExecuteNonQuery(update);
}
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static int DeleteDetail(long id, long mainID, int number)
{
using (var session = Dmo.NewSession())
@@ -101,24 +111,34 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var delete = new DQDeleteDom(typeof(SecondOrder_Detail));
delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(delete);
- UpdateMainNumber(session, mainID, -number);
+ UpdateMainNumber(session, mainID);
session.Commit();
}
return 1;
}
- static void UpdateMainNumber(IDmoSession session, long id, int number)
+ static void UpdateMainNumber(IDmoSession session, long id)
{
+ var number = GetHotFadeNumber(session, id);
+
var update = new DQUpdateDom(typeof(SecondOrder));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("Sync", false));
update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now));
update.Columns.Add(new DQUpdateColumn("RowVersion", DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.Value(1))));
- update.Columns.Add(new DQUpdateColumn("HotFadeNumber", DQExpression.Add(DQExpression.Field("HotFadeNumber"), DQExpression.Value(number))));
+ update.Columns.Add(new DQUpdateColumn("HotFadeNumber", number));
session.ExecuteNonQuery(update);
}
- [Rpc]
+ static int GetHotFadeNumber(IDmoSession session,long secondOrderID)
+ {
+ var query = new DQueryDom(new JoinAlias(typeof(SecondOrder_Detail)));
+ query.Columns.Add(DQSelectColumn.Sum("Number"));
+ query.Where.Conditions.Add(DQCondition.EQ("SecondOrder_ID", secondOrderID));
+ return query.EExecuteScalar(session) ?? 0;
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
public static long SetFinish(long id, long orderDetailID, string json)
{
using (var session = Dmo.NewSession())
@@ -126,7 +146,7 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
CheckOrderDelete(session, orderDetailID);
if (id == 0)
{
- var entity = serializer.Deserialize(json);
+ var entity = JsonConvert.DeserializeObject(json);
entity.ModifyTime = DateTime.Now;
entity.IsOk = true;
entity.Finish = true;
@@ -148,14 +168,14 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
session.Commit();
}
return id;
- }
+ }
- [Rpc]
+ [Rpc(RpcFlags.SkipAuth)]
public static string GetSecondOrderDetails(long id)
{
var query = new DmoQuery(typeof(SecondOrder_Detail));
query.Where.Conditions.Add(DQCondition.EQ("SecondOrder_ID", id));
- return serializer.Serialize(query.EExecuteList().Cast().ToList());
+ return JsonConvert.SerializeObject(query.EExecuteList().Cast().ToList());
}
static void CheckOrderDelete(IDmoSession session, long id)
diff --git a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
index 95c2da9..39610bc 100644
--- a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
@@ -1,4 +1,5 @@
using BWP.B3ClientService.BO;
+using BWP.B3ClientService.BO.Bill;
using BWP.B3ClientService.Tasks.UpdateLoad;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DomainObjects2;
@@ -6,6 +7,7 @@ using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.JsonRpc;
using Forks.EnterpriseServices.SqlDoms;
using Forks.JsonRpc.Client.Data;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -88,15 +90,34 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var fQuery = new DmoQuery(typeof(WeightBill_FarmerDetail));
fQuery.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id)));
entity.FarmerDetails = fQuery.EExecuteList().Cast().ToList();
+ DeleteMsg(id, null);
return serializer.Serialize(entity);
}
+ static void DeleteMsg(long id, IDmoSession session)
+ {
+ var delete = new DQDeleteDom(typeof(SelfHelpSendMsg));
+ delete.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", id));
+ if (session == null)
+ delete.EExecute();
+ else
+ session.ExecuteNonQuery(delete);
+ }
+
+ [Rpc]
+ public static string GetMsgList()
+ {
+ var query = new DmoQuery(typeof(SelfHelpSendMsg));
+ query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
+ return JsonConvert.SerializeObject(query.EExecuteList());
+ }
+
[Rpc]
public static string UpdateOrInsert(string json, string recordDetail)
{
json = json.ESerializeDateTime();
var dmo = serializer.Deserialize(json);
- var f = dmo.FarmerDetails.FirstOrDefault(x => !x.DeleteState);
+ var f = dmo.FarmerDetails.FirstOrDefault(x => !x.DeleteState);
if (f == null)
dmo.Farmer_ID = null;
else
@@ -239,6 +260,9 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
var delete = new DQDeleteDom(typeof(WeightBillCheck));
delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
session.ExecuteNonQuery(delete);
+
+ DeleteMsg(id, session);
+
session.Commit();
}
diff --git a/B3ClientService/Rpcs/SelfHelpRpc.cs b/B3ClientService/Rpcs/SelfHelpRpc.cs
index 2f603f4..842db33 100644
--- a/B3ClientService/Rpcs/SelfHelpRpc.cs
+++ b/B3ClientService/Rpcs/SelfHelpRpc.cs
@@ -1,4 +1,5 @@
using BWP.B3ClientService.BO;
+using BWP.B3ClientService.BO.Bill;
using BWP.B3Frameworks.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
@@ -146,6 +147,8 @@ namespace BWP.B3ClientService.Rpcs
weight.FarmerDetails.Add(d);
}
FillSendPigWeightID(session, id, weight.ID);
+ var msg = new SelfHelpSendMsg() { WeightBill_ID = weight.ID };
+ session.Insert(msg);
session.Commit();
return JsonConvert.SerializeObject(weight);
}
@@ -190,10 +193,25 @@ namespace BWP.B3ClientService.Rpcs
var f = LoadList(session, new Tuple("WeightBill_ID", id), new Tuple("DeleteState", false));
dmo.Details.AddRange(w);
dmo.FarmerDetails.AddRange(f);
+
+ InsertSelfHelpSendMsg(session, id);
+
return JsonConvert.SerializeObject(dmo);
}
}
+ static void InsertSelfHelpSendMsg(IDmoSessionWithTransaction session, long id)
+ {
+ var q = new DQueryDom(new JoinAlias(typeof(SelfHelpSendMsg)));
+ q.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
+ q.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", id));
+ if (q.EExecuteScalar(session) == null)
+ {
+ session.Insert(new SelfHelpSendMsg { WeightBill_ID = id });
+ session.Commit();
+ }
+ }
+
[Rpc(RpcFlags.SkipAuth)]
public static string GetWeightDetail(long id)
{
diff --git a/WebFolder/config/NamedValue/B3ClientService.xml b/WebFolder/config/NamedValue/B3ClientService.xml
index d035171..4f32519 100644
--- a/WebFolder/config/NamedValue/B3ClientService.xml
+++ b/WebFolder/config/NamedValue/B3ClientService.xml
@@ -11,8 +11,10 @@
-
-
+
+
+
+