diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index 5841870..40bffa7 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -80,8 +80,10 @@
+
+
@@ -103,6 +105,7 @@
+
diff --git a/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs b/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
new file mode 100644
index 0000000..6c360de
--- /dev/null
+++ b/B3ClientService/BO/Bill/CarcassStateWeight/CarcassStateWeight.cs
@@ -0,0 +1,35 @@
+using BWP.B3ClientService.NamedValueTemplate;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.Utils;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3ClientService.BO
+{
+ [Serializable]
+ [BOClass]
+ [KeyField("GradeAndWeight_ID", KeyGenType.assigned)]
+ public class CarcassStateWeight
+ {
+ public long GradeAndWeight_ID { get; set; }
+
+ public string Code { get; set; }
+
+ public decimal? State1Weight { get; set; }
+
+ public decimal? State2Weight { get; set; }
+
+ public decimal? State3Weight { get; set; }
+
+ public decimal? State4Weight { get; set; }
+
+ public decimal? State5Weight { get; set; }
+
+ public NamedValue<胴体状态> CurrentState { get; set; }
+
+ public decimal? CurrentWeight { get; set; }
+ }
+}
diff --git a/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs b/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
new file mode 100644
index 0000000..4ab0efc
--- /dev/null
+++ b/B3ClientService/BO/Bill/OrderDetail/HurryRecord.cs
@@ -0,0 +1,29 @@
+using BWP.B3Frameworks.BO;
+using Forks.EnterpriseServices.DomainObjects2;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService.BO
+{
+ [Serializable]
+ public class HurryRecord : Base
+ {
+ public long FromOrderDetail_ID { get; set; }
+
+ [ReferenceTo(typeof(OrderDetail), "B3WeighBill_ID")]
+ [Join("FromOrderDetail_ID", "ID")]
+ public long? B3WeighBill_ID { get; set; }
+
+ public long? ToOrderDetail_ID { get; set; }
+
+ [ReferenceTo(typeof(OrderDetail), "Order")]
+ [Join("ToOrderDetail_ID", "ID")]
+ public int? Order { get; set; }
+
+ public int HurryNumber { get; set; }
+
+ public DateTime Time { get; set; }
+ }
+}
diff --git a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
index 8403733..cc318e9 100644
--- a/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
+++ b/B3ClientService/BO/Bill/OrderDetail/OrderDetail.cs
@@ -22,6 +22,10 @@ namespace BWP.B3ClientService.BO
[Join("WeightBill_ID", "ID")]
public long? B3WeighBill_ID { get; set; }
+ [ReferenceTo(typeof(WeightBill), "Supplier_Name")]
+ [Join("WeightBill_ID", "ID")]
+ public string Supplier_Name { get; set; }
+
public int Order { get; set; }
public int PlanNumber { get; set; }
@@ -38,5 +42,8 @@ namespace BWP.B3ClientService.BO
[DbColumn(DefaultValue = 0)]
public bool Confirmed { get; set; }
+
+ [NonDmoProperty]
+ public int HurryNumber { get; set; }
}
}
diff --git a/B3ClientService/NamedValueTemplate.cs b/B3ClientService/NamedValueTemplate.cs
new file mode 100644
index 0000000..4c0df60
--- /dev/null
+++ b/B3ClientService/NamedValueTemplate.cs
@@ -0,0 +1,17 @@
+using Forks.Utils;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService.NamedValueTemplate
+{
+ public sealed class 胴体状态
+ {
+ 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<胴体状态>(4);
+ }
+}
diff --git a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
index f425782..94cda1c 100644
--- a/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/OrderDetailRpc.cs
@@ -143,20 +143,26 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
}
[Rpc]
- public static string GetOrderDetail(DateTime date, int? minOrder)
+ public static string GetOrderDetail(DateTime date, bool onlyNormal)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
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("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("Supplier_Name"));
+
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
- if (minOrder.HasValue)
- query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Order", minOrder));
+ if (onlyNormal)
+ {
+ var record = HurryRecordTemp.Register(query, query.From.RootSource.Alias);
+ query.Columns.Add(DQSelectColumn.Field("Number", record));
+ query.Where.Conditions.Add(DQCondition.EQ("IsHurryButcher", false));
+ }
var list = new List();
using (var session = Dmo.NewSession())
{
@@ -173,6 +179,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
entity.IsHurryButcher = (bool)reader[5];
entity.B3WeighBill_ID = (long?)reader[6];
entity.SecondarySplit = (bool)reader[7];
+ entity.Supplier_Name = (string)reader[8];
+ if (onlyNormal)
+ {
+ entity.HurryNumber = Convert.ToInt32(reader[9] ?? 0);
+ entity.PlanNumber += entity.HurryNumber;
+ }
list.Add(entity);
}
}
@@ -180,12 +192,32 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return serializer.Serialize(list);
}
+ class HurryRecordTemp
+ {
+ public long OrderDetail_ID { get; set; }
+
+ public int? Number { get; set; }
+
+ public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias)
+ {
+ var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
+ query.Columns.Add(DQSelectColumn.Field("FromOrderDetail_ID"));
+ query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
+ query.GroupBy.Expressions.Add(DQExpression.Field("FromOrderDetail_ID"));
+ rootQuery.RegisterQueryTable(typeof(HurryRecordTemp), new string[] { "OrderDetail_ID", "Number" }, query);
+
+ var alias = new JoinAlias(typeof(HurryRecordTemp));
+ rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "OrderDetail_ID"));
+ return alias;
+ }
+ }
+
[Rpc]
public static int GetMaxOrder(DateTime date)
{
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail)));
query.Columns.Add(DQSelectColumn.Max("Order"));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("Date", date.Date, date.Date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false)));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date.Date), DQCondition.EQ("DeleteState", false)));
return query.EExecuteScalar() ?? 0;
}
@@ -248,17 +280,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
return 1;
}
- [Rpc]
- public static int UpdateHurryFlag(long id, bool isHurryButcher)
- {
- using (var session = Dmo.NewSession())
- {
- UpdateOrderDetailPartial(session, id, "IsHurryButcher", isHurryButcher);
- session.Commit();
- }
- return 1;
- }
-
[Rpc]
public static int Delete(long id)
{
@@ -297,5 +318,56 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
update.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThan("Order", greaterThanOrder), DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false)));
session.ExecuteNonQuery(update);
}
+
+ [Rpc]
+ public static string GetHurryRecords(long orderId)
+ {
+ var query = new DmoQuery(typeof(HurryRecord));
+ query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", orderId));
+ return serializer.Serialize(query.EExecuteList().Cast().ToList());
+ }
+
+ [Rpc]
+ public static int DeleteHurryRecord(long id)
+ {
+ using (var session = Dmo.NewSession())
+ {
+ var hurryNumber = InnerBLUtil.GetDmoPropertyByID(session, typeof(HurryRecord), "HurryNumber", id);
+ var delete = new DQDeleteDom(typeof(HurryRecord));
+ delete.Where.Conditions.Add(DQCondition.EQ("ID", id));
+ session.ExecuteNonQuery(delete);
+ AddOrderNumber(session, id, hurryNumber);
+ session.Commit();
+ }
+ return 1;
+ }
+
+ [Rpc]
+ public static int InsertHurryRecord(string detail)
+ {
+ detail = detail.ESerializeDateTime();
+ var entity = serializer.Deserialize(detail);
+ using (var session = Dmo.NewSession())
+ {
+ session.Insert(entity);
+ AddOrderNumber(session, entity.ID, -entity.HurryNumber);
+
+ var query = new DQueryDom(new JoinAlias(typeof(HurryRecord)));
+ query.Columns.Add(DQSelectColumn.Sum("HurryNumber"));
+ query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", entity.FromOrderDetail_ID));
+ var r= Convert.ToInt32(query.EExecuteScalar(session) ?? 0);
+ session.Commit();
+ return r;
+ }
+ }
+
+ static void AddOrderNumber(IDmoSession session, long ID, int subNumber)
+ {
+ var update = new DQUpdateDom(typeof(OrderDetail));
+ update.Where.Conditions.Add(DQCondition.EQ("ID", ID));
+ update.Columns.Add(new DQUpdateColumn("Sync", false));
+ update.Columns.Add(new DQUpdateColumn("PlanNumber", DQExpression.Add(DQExpression.Field("PlanNumber"), DQExpression.Value(subNumber))));
+ session.ExecuteNonQuery(update);
+ }
}
}
diff --git a/WebFolder/config/NamedValue/B3ClientService.xml b/WebFolder/config/NamedValue/B3ClientService.xml
new file mode 100644
index 0000000..12b66ce
--- /dev/null
+++ b/WebFolder/config/NamedValue/B3ClientService.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file