diff --git a/B3ClientService/B3ClientService.csproj b/B3ClientService/B3ClientService.csproj
index 481a678..cd58868 100644
--- a/B3ClientService/B3ClientService.csproj
+++ b/B3ClientService/B3ClientService.csproj
@@ -94,6 +94,9 @@
+
+
+
@@ -108,6 +111,7 @@
+
diff --git a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
index 93a2cc7..759acd7 100644
--- a/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
+++ b/B3ClientService/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
@@ -11,14 +11,9 @@ namespace BWP.B3ClientService.BO
{
public int Index { get; set; }
+ [NonDmoProperty]
public long OrderDetail_ID { get; set; }
- [ReferenceTo(typeof(OrderDetail), "Order")]
- [Join("OrderDetail_ID", "ID")]
- public int? Order { get; set; }
-
- [ReferenceTo(typeof(OrderDetail), "Date")]
- [Join("OrderDetail_ID", "ID")]
public DateTime? Date { get; set; }
public short Technics { get; set; }
diff --git a/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs
index 4600a7a..996669a 100644
--- a/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs
+++ b/B3ClientService/BO/Bill/GradeAndWeight/OrderGradeFinishRelate.cs
@@ -1,4 +1,5 @@
-using System;
+using Forks.EnterpriseServices.DomainObjects2;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -8,11 +9,17 @@ namespace BWP.B3ClientService.BO
{
[BOClass]
[Serializable]
+ [KeyField("OrderDetail_ID", KeyGenType.assigned)]
+ [KeyField("Technics", KeyGenType.assigned)]
public class OrderGradeFinishRelate
{
public long OrderDetail_ID { get; set; }
public short Technics { get; set; }
+ public bool Finish { get; set; }
+
+ public int Already { get; set; }
+
}
}
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs
index f752ddb..2e9a0fe 100644
--- a/B3ClientService/BO/Bill/WeightBill/WeightBill.cs
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBill.cs
@@ -11,6 +11,7 @@ namespace BWP.B3ClientService.BO
[Serializable]
public class WeightBill : SyncBill
{
+ #region BasicFile
public long? AccountingUnit_ID { get; set; }
public long? Department_ID { get; set; }
@@ -37,30 +38,10 @@ namespace BWP.B3ClientService.BO
public string Car_Name { get; set; }
- public long? LiveVarieties_ID { get; set; }
-
- public string LiveVarieties_Name { get; set; }
-
- public long? HogGrade_ID { get; set; }
-
- public string HogGrade_Name { get; set; }
-
public decimal? ShackWeight { get; set; }
public decimal? ShackPrice { get; set; }
- [NonDmoProperty]
- public decimal? ShackMoney
- {
- get
- {
- var v = ShackPrice * ShackWeight;
- if (v.HasValue)
- return decimal.Round(v.Value, 2);
- return null;
- }
- }
-
public decimal? JingJianFee { get; set; }
public decimal? DiscontMoney { get; set; }
@@ -71,38 +52,39 @@ namespace BWP.B3ClientService.BO
public string AnimalTestMan { get; set; }
- public long? Inspector_ID { get; set; }
+ public string Remark { get; set; }
+ #endregion
- public string Inspector_Name { get; set; }
+ #region Special
+ //品种 打算默认 B3 过磅明细上用 其他地方不维护
+ public long? LiveVarieties_ID { get; set; }
- public string Remark { get; set; }
+ public string LiveVarieties_Name { get; set; }
- [DbColumn(DefaultValue = 0)]
- public bool AlreadyHouse { get; set; }
+ //毛猪等级 验质员会填写。 B3过磅单明细上用
+ public long? HogGrade_ID { get; set; }
+
+ public string HogGrade_Name { get; set; }
+ #endregion
- //[NonDmoProperty]
- public int? FirstWeightNumber { get; set; }
+ #region 无需自身维护 便于查看
+ public string HouseNames { get; set; }
- private WeightBill_DetailCollection mDetails = new WeightBill_DetailCollection();
- [OneToMany(typeof(WeightBill_Detail), "ID")]
- [Join("ID", "WeightBill_ID")]
- public WeightBill_DetailCollection Details { get { return mDetails; } set { mDetails = value; } }
+ public int? SanctionNumber { get; set; }
- private WeightBill_FarmerDetailCollection mFarmerDetails = new WeightBill_FarmerDetailCollection();
- [OneToMany(typeof(WeightBill_FarmerDetail), "ID")]
- [Join("ID", "WeightBill_ID")]
- public WeightBill_FarmerDetailCollection FarmerDetails { get { return mFarmerDetails; } set { mFarmerDetails = value; } }
+ public long? Inspector_ID { get; set; }
- private readonly WeightBill_HouseDetailCollection mHouseDetails = new WeightBill_HouseDetailCollection();
- [OneToMany(typeof(WeightBill_HouseDetail), "ID")]
- [Join("ID", "WeightBill_ID")]
- public WeightBill_HouseDetailCollection HouseDetails { get { return mHouseDetails; } }
+ public string Inspector_Name { get; set; }
+ #endregion
- private readonly WeightBill_SanctionDetailCollection mSanctionDetails = new WeightBill_SanctionDetailCollection();
- [OneToMany(typeof(WeightBill_SanctionDetail), "ID")]
- [Join("ID", "WeightBill_ID")]
- public WeightBill_SanctionDetailCollection SanctionDetails { get { return mSanctionDetails; } }
+ #region 明细
+ private List _details = new List();
+ [NonDmoProperty]
+ public List Details { get { return _details; } set { _details = value; } }
- public string HouseNames { get; set; }
+ private List _farmerDetails = new List();
+ [NonDmoProperty]
+ public List FarmerDetails { get { return _farmerDetails; } set { _farmerDetails = value; } }
+ #endregion
}
}
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs
index 61c88d6..ea40708 100644
--- a/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_Detail.cs
@@ -22,8 +22,4 @@ namespace BWP.B3ClientService.BO
public decimal? Weight { get; set; }
}
-
- [Serializable]
- public class WeightBill_DetailCollection : DmoCollection
- { }
}
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs
index 6062509..b3f251b 100644
--- a/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_FarmerDetail.cs
@@ -22,8 +22,4 @@ namespace BWP.B3ClientService.BO
public decimal? Weight { get; set; }
}
-
- [Serializable]
- public class WeightBill_FarmerDetailCollection : DmoCollection
- { }
}
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs
index ef432aa..539508f 100644
--- a/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_HouseDetail.cs
@@ -20,9 +20,4 @@ namespace BWP.B3ClientService.BO
public int? Number { get; set; }
}
-
-
- [Serializable]
- public class WeightBill_HouseDetailCollection : DmoCollection
- { }
}
diff --git a/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs b/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs
index 774cf96..73acf46 100644
--- a/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs
+++ b/B3ClientService/BO/Bill/WeightBill/WeightBill_SanctionDetail.cs
@@ -31,8 +31,4 @@ namespace BWP.B3ClientService.BO
public int? Number { get; set; }
}
-
- [Serializable]
- public class WeightBill_SanctionDetailCollection : DmoCollection
- { }
}
diff --git a/B3ClientService/BO/SyncBase.cs b/B3ClientService/BO/SyncBase.cs
index 22a24c1..9fecf73 100644
--- a/B3ClientService/BO/SyncBase.cs
+++ b/B3ClientService/BO/SyncBase.cs
@@ -10,11 +10,6 @@ namespace BWP.B3ClientService.BO
[Serializable]
public abstract class SyncBase : Base
{
- ///
- /// 对应B3ID
- ///
- public long? B3ID { get; set; }
-
///
/// 删除状态
///
diff --git a/B3ClientService/BO/SyncBill.cs b/B3ClientService/BO/SyncBill.cs
index 2156c96..1491e4c 100644
--- a/B3ClientService/BO/SyncBill.cs
+++ b/B3ClientService/BO/SyncBill.cs
@@ -10,6 +10,11 @@ namespace BWP.B3ClientService.BO
[Serializable]
public abstract class SyncBill : SyncBase
{
+ ///
+ /// 对应B3ID
+ ///
+ public long? B3ID { get; set; }
+
///
/// 单据创建人用户名
///
diff --git a/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs
new file mode 100644
index 0000000..1bc0a07
--- /dev/null
+++ b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionEdit.cs
@@ -0,0 +1,32 @@
+using BWP.B3ClientService.BO;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService
+{
+ public class HouseAndSanctionEdit
+ {
+ public long ID { get; set; }
+
+ public int? Number { get; set; }
+
+ public long? HogGrade_ID { get; set; }
+
+ #region 获取的时候不赋值,只负责接收
+ public string HogGrade_Name { get; set; }
+
+ public long? Inspector_ID { get; set; }
+
+ public string Inspector_Name { get; set; }
+ #endregion
+
+
+ private List _houseDetails = new List();
+ public List HouseDetails { get { return _houseDetails; } set { _houseDetails = value; } }
+
+ private List _sanctionDetails = new List();
+ public List SanctionDetails { get { return _sanctionDetails; } set { _sanctionDetails = value; } }
+ }
+}
diff --git a/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs
new file mode 100644
index 0000000..fc01f71
--- /dev/null
+++ b/B3ClientService/ClientSerializerBo/WeightBill/HouseAndSanctionList.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService
+{
+ public class HouseAndSanctionList
+ {
+ public long ID { get; set; }
+
+ public long? B3ID { get; set; }
+
+ public string Employee_Name { get; set; }
+
+ public string Supplier_Name { get; set; }
+
+ public int? Number { get; set; }
+
+ public string HouseNames { get; set; }
+ }
+}
diff --git a/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs
new file mode 100644
index 0000000..bd783b7
--- /dev/null
+++ b/B3ClientService/ClientSerializerBo/WeightBill/WeightBillList.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BWP.B3ClientService
+{
+ public class WeightBillList
+ {
+ public long ID { get; set; }
+
+ public long? B3ID { get; set; }
+
+ public string Car_Name { get; set; }
+
+ public string Supplier_Name { get; set; }
+
+ public string Employee_Name { get; set; }
+
+ public string PurchaseType_Name { get; set; }
+
+ public int? Number { get; set; }
+
+ public decimal? Weight { get; set; }
+
+ public string HouseNames { get; set; }
+
+ public int? SanctionNumber { get; set; }
+
+ public string Remark { get; set; }
+
+ public bool FinishWeight { get; set; }
+ }
+}
diff --git a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
index ee244fc..77d79ce 100644
--- a/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
+++ b/B3ClientService/RpcBO/Bill/GradeAndWeight/GradeAndWeight.cs
@@ -7,12 +7,12 @@ namespace BWP.B3ClientService.RpcBO
{
public class GradeAndWeight
{
- public long ID { get; set; }
-
public long OrderDetail_ID { get; set; }
public int Order { get; set; }
+ public short Technics { get; set; }
+
public string Technics_Name { get; set; }
public int Number { get; set; }
diff --git a/B3ClientService/Rpcs/BackRpcObj.cs b/B3ClientService/Rpcs/BackRpcObj.cs
index 36e487b..d4576c5 100644
--- a/B3ClientService/Rpcs/BackRpcObj.cs
+++ b/B3ClientService/Rpcs/BackRpcObj.cs
@@ -7,7 +7,6 @@ using System.Threading.Tasks;
namespace BWP.B3ClientService.Rpcs
{
- [RpcObject]
public class BackRpcObj
{
public long ID { get; set; }
@@ -16,6 +15,6 @@ namespace BWP.B3ClientService.Rpcs
private List _detailBack = new List();
- public List DetailBack { get { return _detailBack; } }
+ public List DetailBack { get { return _detailBack; } set { _detailBack = value; } }
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
index 579a31e..6afb589 100644
--- a/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc.cs
@@ -23,29 +23,19 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{
var main = new JoinAlias("_S1", typeof(SecondOrder));
var order = new JoinAlias("_O1", typeof(OrderDetail));
- var detail = new JoinAlias(typeof(GradeAndWeight_Detail));
var relate = new JoinAlias(typeof(GradeTemp));
var query = new DQueryDom(main);
- query.RegisterQueryTable(typeof(GradeTemp), new string[] { "OrdreID", "Tang", "Mao" }, GradeTemp.Register(date, maxID));
+ query.RegisterQueryTable(typeof(GradeTemp), new string[] { "OrdreID", "Tang", "TangAlready", "Mao", "MaoAlready" }, GradeTemp.Register(date, maxID));
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID"));
- query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "OrderDetail_ID", detail, "OrderDetail_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrdreID"));
- query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID"));
- query.Columns.Add(DQSelectColumn.Field("Order", order));
- query.Columns.Add(DQSelectColumn.Field("PlanNumber", order));//3
- query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));//4
- query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang"));//5
- query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ(detail, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao"));//6
+ query.Columns.Add(DQSelectColumn.Field("Order", order));//1
+ query.Columns.Add(DQSelectColumn.Field("PlanNumber", order));
+ query.Columns.Add(DQSelectColumn.Field("HotFadeNumber"));//3
+ query.Columns.Add(DQSelectColumn.Field("TangAlready", relate));
+ query.Columns.Add(DQSelectColumn.Field("MaoAlready", relate));//5
query.Columns.Add(DQSelectColumn.Field("Tang", relate));
- query.Columns.Add(DQSelectColumn.Field("Mao", relate));
- query.GroupBy.Expressions.Add(DQExpression.Field("ID"));
- query.GroupBy.Expressions.Add(DQExpression.Field("OrderDetail_ID"));
- query.GroupBy.Expressions.Add(DQExpression.Field(order, "Order"));
- query.GroupBy.Expressions.Add(DQExpression.Field(order, "PlanNumber"));
- query.GroupBy.Expressions.Add(DQExpression.Field("HotFadeNumber"));
- query.GroupBy.Expressions.Add(DQExpression.Field(relate, "Tang"));
- query.GroupBy.Expressions.Add(DQExpression.Field(relate, "Mao"));
+ query.Columns.Add(DQSelectColumn.Field("Mao", relate));//7
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29))));
if (maxID.HasValue)
@@ -58,30 +48,30 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
while (reader.Read())
{
var tang = new GradeAndWeight();
- tang.ID = (long)reader[0];
- tang.OrderDetail_ID = (long)reader[1];
- tang.Order = (int)reader[2];
- tang.Number = (int)reader[4];
- tang.Finish = Convert.ToBoolean(reader[7]);
+ tang.OrderDetail_ID = (long)reader[0];
+ tang.Order = (int)reader[1];
+ tang.Number = (int)reader[3];
+ tang.Finish = Convert.ToBoolean(reader[6]);
if (tang.Number != 0)
{
+ tang.Technics = 0;
tang.Technics_Name = "烫褪";
- tang.Already = Convert.ToInt32(reader[5]);
+ tang.Already = Convert.ToInt32(reader[4]);
list.Add(tang);
}
- var lastNumber = (int)reader[3] - tang.Number;
+ var lastNumber = (int)reader[2] - tang.Number;
if (lastNumber == 0)
continue;
var mb = new GradeAndWeight();
list.Add(mb);
- mb.ID = tang.ID;
mb.OrderDetail_ID = tang.OrderDetail_ID;
mb.Order = tang.Order;
mb.Number = lastNumber;
+ mb.Technics = 1;
mb.Technics_Name = "毛剥";
- mb.Already = Convert.ToInt32(reader[6]);
- mb.Finish = Convert.ToBoolean(reader[8]);
+ mb.Already = Convert.ToInt32(reader[5]);
+ mb.Finish = Convert.ToBoolean(reader[7]);
}
}
}
@@ -95,8 +85,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
public bool Tang { get; set; }
+ public int TangAlready { get; set; }
+
public bool Mao { get; set; }
+ public int MaoAlready { get; set; }
+
public static DQueryDom Register(DateTime date, long? maxID)
{
var main = new JoinAlias("_S2", typeof(SecondOrder));
@@ -106,8 +100,10 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.EQ(main, "OrderDetail_ID", relate, "OrderDetail_ID"));
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID"));
- query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Value(1), DQExpression.Value(0))), "Tang"));
- query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Value(1), DQExpression.Value(0))), "Mao"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Field(relate, "Finish"), DQExpression.Value(0))), "Tang"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 0), DQExpression.Field(relate, "Already"), DQExpression.Value(0))), "TangAlready"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Field(relate, "Finish"), DQExpression.Value(0))), "Mao"));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.Max(DQExpression.LogicCase(DQCondition.EQ(relate, "Technics", 1), DQExpression.Field(relate, "Already"), DQExpression.Value(0))), "MaoAlready"));
query.GroupBy.Expressions.Add(DQExpression.Field("OrderDetail_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.Between(DQExpression.Field(order, "Date"), date, date + new TimeSpan(23, 59, 29))));
@@ -118,20 +114,17 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
}
[Rpc]
- public static string GetDetailsList(DateTime start, DateTime end, int? order, int type)
+ public static string GetDetailsList(DateTime date, int top)
{
var query = new DmoQuery(typeof(GradeAndWeight_Detail));
- query.Where.Conditions.Add(DQCondition.Between("Date", start, end + new TimeSpan(23, 59, 29)));
- if (type != -1)
- query.Where.Conditions.Add(DQCondition.EQ("Technics", type));
- if (order.HasValue)
- query.Where.Conditions.Add(DQCondition.EQ("Order", order));
+ query.Where.Conditions.Add(DQCondition.EQ("Date", date));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Index", true));
+ query.Range = SelectRange.Top(top);
return serializer.Serialize(query.EExecuteList());
}
[Rpc]
- public static long InsertOrInsertDetail(string json)
+ public static long UpdateOrInsertDetail(string json, bool fillTechnics)
{
json = json.ESerializeDateTime();
var entity = serializer.Deserialize(json);
@@ -141,6 +134,8 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
session.Insert(entity);
else
session.Update(entity);
+ if (fillTechnics)
+ AddAlready(session, entity.OrderDetail_ID, entity.Technics);
session.Commit();
return entity.ID;
}
@@ -166,14 +161,49 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
{
using (var session = Dmo.NewSession())
{
- var entity = new OrderGradeFinishRelate();
+ var entity = GetRelate(orderDetailID, technics);
+ if (entity == null)
+ {
+ entity = new OrderGradeFinishRelate();
+ entity.OrderDetail_ID = orderDetailID;
+ entity.Technics = technics;
+ entity.Finish = true;
+ session.Insert(entity);
+ }
+ else
+ {
+ entity.Finish = true;
+ session.Update(entity);
+ }
+ session.Commit();
+ }
+
+ return 1;
+ }
+
+ static void AddAlready(IDmoSession session, long orderDetailID, short technics)
+ {
+ var entity = GetRelate(orderDetailID, technics);
+ if (entity == null)
+ {
+ entity = new OrderGradeFinishRelate();
entity.OrderDetail_ID = orderDetailID;
entity.Technics = technics;
+ entity.Already = 1;
session.Insert(entity);
- session.Commit();
}
+ else
+ {
+ entity.Already += 1;
+ session.Update(entity);
+ }
+ }
- return 1;
+ static OrderGradeFinishRelate GetRelate(long orderDetailID, short technics)
+ {
+ var query = new DmoQuery(typeof(OrderGradeFinishRelate));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("OrderDetail_ID", orderDetailID), DQCondition.EQ("Technics", technics)));
+ return query.EExecuteScalar();
}
}
}
diff --git a/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs b/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs
new file mode 100644
index 0000000..272ab77
--- /dev/null
+++ b/B3ClientService/Rpcs/BillRpc/HouseAndSanctionRpc.cs
@@ -0,0 +1,227 @@
+using BWP.B3ClientService.BO;
+using BWP.B3Frameworks.Utils;
+using Forks.EnterpriseServices.DomainObjects2;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.JsonRpc;
+using Forks.EnterpriseServices.SqlDoms;
+using Forks.JsonRpc.Client.Data;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Web.Script.Serialization;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3ClientService.Rpcs.BillRpc
+{
+ [Rpc]
+ public static class HouseAndSanctionRpc
+ {
+ static JavaScriptSerializer serializer = new JavaScriptSerializer();
+
+ [Rpc]
+ public static string GetHouseAndSanctionList(DateTime date)
+ {
+ var main = new JoinAlias(typeof(WeightBill));
+ var detail = new JoinAlias(typeof(WeightBill_Detail));
+ var query = new DQueryDom(main);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(main, "ID", detail, "WeightBill_ID")));
+ query.Columns.Add(DQSelectColumn.Field("ID"));
+ query.Columns.Add(DQSelectColumn.Field("B3ID"));
+ query.Columns.Add(DQSelectColumn.Field("Employee_Name"));
+ query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
+ query.Columns.Add(DQSelectColumn.Field("HouseNames"));
+ query.Columns.Add(DQSelectColumn.Field("Number", detail));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false)));
+ var list = new List();
+ using (var session = Dmo.NewSession())
+ {
+ using (var reader = session.ExecuteReader(query))
+ {
+ while (reader.Read())
+ {
+ var entity = new HouseAndSanctionList();
+ entity.ID = (long)reader[0];
+ entity.B3ID = (long?)reader[1];
+ entity.Employee_Name = (string)reader[2];
+ entity.Supplier_Name = (string)reader[3];
+ entity.HouseNames = (string)reader[4];
+ entity.Number = (int?)reader[5];
+ list.Add(entity);
+ }
+ }
+ }
+ return serializer.Serialize(list);
+ }
+
+ [Rpc]
+ public static int GetDetailTotalNumber(DateTime date)
+ {
+ var main = new JoinAlias(typeof(WeightBill));
+ var detail = new JoinAlias(typeof(WeightBill_Detail));
+ var query = new DQueryDom(main);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "WeightBill_ID"));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29)))));
+ query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
+ var result = query.EExecuteScalar();
+
+ if (result == null)
+ return 0;
+ return Convert.ToInt32(result);
+ }
+
+ [Rpc]
+ public static string GetHouseAndSanctionDetail(long id)
+ {
+ var result = new HouseAndSanctionEdit();
+ using (var session = Dmo.NewSession())
+ {
+ result.ID = id;
+ result.HogGrade_ID = InnerBLUtil.GetDmoPropertyByID(session, typeof(WeightBill), "HogGrade_ID", id);
+ result.Number = InnerBLUtil.GetDmoProperty(session, typeof(WeightBill_Detail), "Number", new Tuple("WeightBill_ID", id), new Tuple("DeleteState", false));
+ result.HouseDetails = InnerBLUtil.GetPartialFieldsDmoList(session, (query) =>
+ {
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false)));
+ }, "ID", "LiveColonyHouse_ID").ToList();
+
+ result.SanctionDetails = InnerBLUtil.GetPartialFieldsDmoList(session, (query) =>
+ {
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false)));
+ }, "ID", "AbnormalItem_ID", "Number").ToList();
+ }
+ return serializer.Serialize(result);
+ }
+
+ [Rpc]
+ public static int UpdateInsertHouseAndSanction(string json)
+ {
+ var entity = serializer.Deserialize(json);
+ using (var session = Dmo.NewSession())
+ {
+ //为了节省ID,把传过来的通过栋舍匹配,并到原有明细里。然后从新的集合里把上传的集合里不存在的剔除掉
+ var houseDetail = GetList(entity.ID);
+ foreach (var item in entity.HouseDetails)
+ {
+ var first = houseDetail.FirstOrDefault(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID);
+ if (first == null)
+ houseDetail.Add(item);
+ else
+ first.Index = item.Index;
+ }
+ var delete = new List();
+ var houseNames = new List();
+ foreach (var item in houseDetail)
+ {
+ if (entity.HouseDetails.Any(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID))
+ {
+ UpdateOrInsertHouseDetail(session, item);
+ houseNames.Add(item.LiveColonyHouse_Name);
+ }
+ else
+ delete.Add(item.LiveColonyHouse_ID ?? 0);
+ }
+
+ if (delete.Any())
+ {
+ Delete(session, entity.ID, (dom) =>
+ {
+ dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("LiveColonyHouse_ID"), delete.Select(x => DQExpression.Value(x)).ToArray()));
+ });
+ }
+
+ delete.Clear();
+ var sanctionDetail = GetList(entity.ID);
+ foreach (var item in entity.SanctionDetails)
+ {
+ var first = sanctionDetail.FirstOrDefault(x => x.AbnormalItem_ID == item.AbnormalItem_ID);
+ if (first == null)
+ sanctionDetail.Add(item);
+ else
+ {
+ first.Index = item.Index;
+ first.Number = item.Number;
+ }
+ }
+ foreach (var item in sanctionDetail)
+ {
+ if (entity.SanctionDetails.Any(x => x.AbnormalItem_ID == item.AbnormalItem_ID))
+ UpdateOrInsertSanctionDetail(session, item);
+ else
+ delete.Add(item.AbnormalItem_ID ?? 0);
+ }
+
+ if (delete.Any())
+ {
+ Delete(session, entity.ID, (dom) =>
+ {
+ dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("AbnormalItem_ID"), delete.Select(x => DQExpression.Value(x)).ToArray()));
+ });
+ }
+
+ var dUpdate = new DQUpdateDom(typeof(WeightBill_Detail));
+ dUpdate.Columns.Add(new DQUpdateColumn("Number", entity.Number));
+ dUpdate.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", entity.ID), DQCondition.EQ("DeleteState", false)));
+ session.ExecuteNonQuery(dUpdate);
+
+ var update = new DQUpdateDom(typeof(WeightBill));
+ update.Columns.Add(new DQUpdateColumn("HogGrade_ID", entity.HogGrade_ID));
+ update.Columns.Add(new DQUpdateColumn("HogGrade_Name", entity.HogGrade_Name));
+ update.Columns.Add(new DQUpdateColumn("Inspector_ID", entity.Inspector_ID));
+ update.Columns.Add(new DQUpdateColumn("Inspector_Name", entity.Inspector_Name));
+ update.Columns.Add(new DQUpdateColumn("HouseNames", string.Join(",", houseNames)));
+ update.Columns.Add(new DQUpdateColumn("Sync", false));
+ update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now));
+ update.Where.Conditions.Add(DQCondition.EQ("ID", entity.ID));
+ session.ExecuteNonQuery(update);
+ session.Commit();
+ }
+ return 1;
+ }
+
+ static List GetList(long billID)
+ {
+ var query = new DmoQuery(typeof(T));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", billID)));
+ return query.EExecuteList().Cast().ToList();
+ }
+
+ static void Delete(IDmoSession session, long billID, Action conditions)
+ where T : SyncBase
+ {
+ var delete = new DQUpdateDom(typeof(T));
+ delete.Columns.Add(new DQUpdateColumn("DeleteState", true));
+ delete.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", billID)));
+ conditions(delete);
+ session.ExecuteNonQuery(delete);
+ }
+
+ static void UpdateOrInsertHouseDetail(IDmoSession session, WeightBill_HouseDetail detail)
+ {
+ if (detail.ID == 0)
+ {
+ session.Insert(detail);
+ return;
+ }
+ var update = new DQUpdateDom(typeof(WeightBill_HouseDetail));
+ update.Columns.Add(new DQUpdateColumn("Index", detail.Index));
+ update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("LiveColonyHouse_ID", detail.LiveColonyHouse_ID)));
+ session.ExecuteNonQuery(update);
+ }
+
+ static void UpdateOrInsertSanctionDetail(IDmoSession session, WeightBill_SanctionDetail detail)
+ {
+ if (detail.ID == 0)
+ {
+ session.Insert(detail);
+ return;
+ }
+ var update = new DQUpdateDom(typeof(WeightBill_SanctionDetail));
+ update.Columns.Add(new DQUpdateColumn("Index", detail.Index));
+ update.Columns.Add(new DQUpdateColumn("Number", detail.Number));
+ update.Columns.Add(new DQUpdateColumn("Sanction_ID", detail.Sanction_ID));
+ update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("AbnormalItem_ID", detail.AbnormalItem_ID)));
+ session.ExecuteNonQuery(update);
+ }
+ }
+}
diff --git a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
index 7321fa9..b6e312b 100644
--- a/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
+++ b/B3ClientService/Rpcs/BillRpc/WeightBillRpc.cs
@@ -21,419 +21,210 @@ namespace BWP.B3ClientService.Rpcs.BillRpc
static JavaScriptSerializer serializer = new JavaScriptSerializer();
[Rpc]
- public static BackRpcObj UploadBill(WeightBill dmo, string recordDetail)
+ public static string GetWeightBillList(DateTime date, long? carID, long? supplierID)
{
- recordDetail = recordDetail.ESerializeDateTime();
- var records = serializer.Deserialize>(recordDetail);
- var weightDetails = dmo.Details.ToList();
- dmo.Details = new WeightBill_DetailCollection();
-
+ var main = new JoinAlias(typeof(WeightBill));
+ var detail = new JoinAlias(typeof(WeightBill_Detail));
+ var query = new DQueryDom(main);
+ query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ(main, "ID", detail, "WeightBill_ID")));
+ query.Columns.Add(DQSelectColumn.Field("ID"));
+ query.Columns.Add(DQSelectColumn.Field("B3ID"));
+ query.Columns.Add(DQSelectColumn.Field("Car_Name"));
+ query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
+ query.Columns.Add(DQSelectColumn.Field("Employee_Name"));
+ query.Columns.Add(DQSelectColumn.Field("PurchaseType_Name"));//5
+ query.Columns.Add(DQSelectColumn.Field("HouseNames"));
+ query.Columns.Add(DQSelectColumn.Field("SanctionNumber"));
+ query.Columns.Add(DQSelectColumn.Field("Remark"));
+ query.Columns.Add(DQSelectColumn.Field("Number", detail));
+ query.Columns.Add(DQSelectColumn.Field("Weight", detail));
+ query.Columns.Add(DQSelectColumn.Create(DQExpression.LogicCase(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field(detail, "PiWeight")), DQCondition.IsNotNull(DQExpression.Field(detail, "MaoWeight"))), DQExpression.Value(1), DQExpression.Value(0)), "FinishWeight"));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("WeighTime", date, date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false)));
+ if (carID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ("Car_ID", carID));
+ if (supplierID.HasValue)
+ query.Where.Conditions.Add(DQCondition.EQ("Supplier_ID", supplierID));
+ var list = new List();
using (var session = Dmo.NewSession())
{
- if (dmo.ID == 0)
- session.Insert(dmo);
- else
- {
- foreach (var item in dmo.FarmerDetails)
- {
- if (item.ID == 0)
- session.Insert(item);
- else
- session.Update(item);
- }
- dmo.FarmerDetails = new WeightBill_FarmerDetailCollection();
- FillServerUpdateFields(session, dmo);
- session.Update(dmo);
- }
- InsertWeightDetails(dmo.ID, weightDetails, records, session);
- session.Commit();
- }
- var result = new BackRpcObj();
- result.ID = dmo.ID;
- var details = new BackRpcObj() { Flag = "Details" };
- foreach (var d in weightDetails)
- details.DetailBack.Add(new BackRpcObj() { Flag = d.Index.ToString(), ID = d.ID });
- result.DetailBack.Add(details);
- var farmerDetails = new BackRpcObj() { Flag = "FarmerDetails" };
- foreach (var d in dmo.FarmerDetails)
- farmerDetails.DetailBack.Add(new BackRpcObj() { Flag = d.Index.ToString(), ID = d.ID });
- result.DetailBack.Add(farmerDetails);
- return result;
- }
-
- static void InsertWeightDetails(long id, List details, List records, IDmoSession session)
- {
- foreach (var item in details)
- {
- if (item.ID == 0)
- {
- item.WeightBill_ID = id;
- session.Insert(item);
- }
- else
- session.Update(item);
- foreach (var r in records)
+ using (var reader = session.ExecuteReader(query))
{
- if (r.Delete)
- session.Delete(r);
- else
+ while (reader.Read())
{
- r.WeightBill_Detail_ID = item.ID;
- session.Insert(r);
+ var entity = new WeightBillList();
+ entity.ID = (long)reader[0];
+ entity.B3ID = (long?)reader[1];
+ entity.Car_Name = (string)reader[2];
+ entity.Supplier_Name = (string)reader[3];
+ entity.Employee_Name = (string)reader[4];
+ entity.PurchaseType_Name = (string)reader[5];
+ entity.HouseNames = (string)reader[6];
+ entity.SanctionNumber = (int?)reader[7];
+ entity.Remark = (string)reader[8];
+ entity.Number = (int?)reader[9];
+ entity.Weight = (decimal?)reader[10];
+ entity.FinishWeight = Convert.ToBoolean(reader[11]);
+ list.Add(entity);
}
}
}
- }
-
- static void FillServerUpdateFields(IDmoSession session, WeightBill dmo)
- {
- var min = InnerBLUtil.GetSingleDmo(session, "ID", dmo.ID, "B3ID", "DeleteState", "AlreadyHouse", "Inspector_ID", "Inspector_Name", "HouseNames");
- dmo.B3ID = min.B3ID;
- dmo.DeleteState = min.DeleteState;
- dmo.AlreadyHouse = min.AlreadyHouse;
- dmo.Inspector_ID = min.Inspector_ID;
- dmo.Inspector_Name = min.Inspector_Name;
- dmo.HouseNames = min.HouseNames;
- dmo.Sync = false;
- dmo.ModifyTime = DateTime.Now;
+ return serializer.Serialize(list);
}
[Rpc]
- public static bool DeleteBill(long id)
- {
- using (var session = Dmo.NewSession())
- {
- DeleteEntity(session, "ID", id);
- DeleteEntity(session, "WeightBill_ID", id);
- DeleteEntity(session, "WeightBill_ID", id);
- DeleteEntity(session, "WeightBill_ID", id);
- DeleteEntity(session, "WeightBill_ID", id);
- session.Commit();
- }
- return true;
- }
-
- static void DeleteEntity(IDmoSession session, string property, object value)
- where T : SyncBase
- {
- var update = new DQUpdateDom(typeof(T));
- update.Columns.Add(new DQUpdateColumn("DeleteState", true));
- update.Where.Conditions.Add(DQCondition.EQ(property, value));
- session.ExecuteNonQuery(update);
- }
-
- [Rpc]
- public static List GetWeightBillList(DateTime date, long? carID, long? supplierID)
+ public static string Load(long id)
{
var query = new DmoQuery(typeof(WeightBill));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29))));
- if (carID.HasValue)
- query.Where.Conditions.Add(DQCondition.EQ("Car_ID", carID));
- if (supplierID.HasValue)
- query.Where.Conditions.Add(DQCondition.EQ("Supplier_ID", supplierID));
- return query.EExecuteList().Cast().ToList();
- }
+ query.Where.Conditions.Add(DQCondition.EQ("ID", id));
+ var entity = query.EExecuteScalar();
- [Rpc]
- public static List> SyncBillB3Ids(List ids)
- {
- return GetSyncBaseB3Ids(ids);
- }
+ var dQuery = new DmoQuery(typeof(WeightBill_Detail));
+ dQuery.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id)));
+ entity.Details = dQuery.EExecuteList().Cast().ToList();
- [Rpc]
- public static List> SyncWeightDetailB3Ids(List ids)
- {
- return GetSyncBaseB3Ids(ids);
+ 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();
+ return serializer.Serialize(entity);
}
[Rpc]
- public static List> SyncFarmerDetailB3Ids(List ids)
- {
- return GetSyncBaseB3Ids(ids);
- }
-
- static List> GetSyncBaseB3Ids(List ids)
- where T : SyncBase
- {
- var query = new DQueryDom(new JoinAlias(typeof(T)));
- query.Columns.Add(DQSelectColumn.Field("ID"));
- query.Columns.Add(DQSelectColumn.Field("B3ID"));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("B3ID")), DQCondition.InList(DQExpression.Field("ID"), ids.Select(x => DQExpression.Value(x)).ToArray())));
- return query.EExecuteList();
- }
-
- [Rpc]
- public static List> SyncWeightDetailFirstNumber(List detailIds)
- {
- var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail)));
- query.Columns.Add(DQSelectColumn.Field("WeightBill_ID"));
- query.Columns.Add(DQSelectColumn.Field("ID"));
- query.Columns.Add(DQSelectColumn.Field("Number"));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("Number")), DQCondition.InList(DQExpression.Field("ID"), detailIds.Select(x => DQExpression.Value(x)).ToArray())));
- return query.EExecuteList();
- }
-
- [Rpc]
- public static List GetNoHouseInfoWeightBills(DateTime date)
- {
- var query = new DQueryDom(new JoinAlias(typeof(WeightBill)));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29)))));
- query.Columns.Add(DQSelectColumn.Field("ID"));
- query.Columns.Add(DQSelectColumn.Field("B3ID"));
- query.Columns.Add(DQSelectColumn.Field("Employee_Name"));
- query.Columns.Add(DQSelectColumn.Field("Supplier_Name"));
- query.Columns.Add(DQSelectColumn.Field("AlreadyHouse"));
- var result = query.EExecuteList();
- var list = new List();
- foreach (var item in result)
- {
- var bill = new WeightWithHouseDetail();
- var entity = new WeightBill();
- bill.Bill = entity;
- list.Add(bill);
- entity.ID = item.Item1;
- entity.B3ID = item.Item2;
- entity.Employee_Name = item.Item3;
- entity.Supplier_Name = item.Item4;
- entity.AlreadyHouse = item.Item5;
- entity.FirstWeightNumber = GetWeightDetailFirstNumber(entity.ID);
- }
- var details = GetWeightHouseDetail(list.Select(x => x.Bill.ID));
- foreach (var item in list)
- {
- var tags = details.Where(x => x.WeightBill_ID == item.Bill.ID);
- if (tags.Any())
- item.Detail = tags.ToArray();
- }
- return list;
- }
-
- static int? GetWeightDetailFirstNumber(long id)
- {
- var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail)));
- query.Columns.Add(DQSelectColumn.Field("Number"));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id)));
- query.Range = SelectRange.Top(1);
- query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
- return query.EExecuteScalar();
- }
-
- static IEnumerable GetWeightHouseDetail(IEnumerable billIDs)
- {
- var query = new DmoQuery(typeof(WeightBill_HouseDetail));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.InList(DQExpression.Field("WeightBill_ID"), billIDs.Select(x => DQExpression.Value(x)).ToArray())));
- return query.EExecuteList().Cast();
- }
-
- [Rpc]
- public static int UpdateInsertWeightBillHouseDetail(WeightBill bo)
+ public static string UpdateOrInsert(string json, string recordDetail)
{
+ json = json.ESerializeDateTime();
+ var dmo = serializer.Deserialize(json);
+ recordDetail = recordDetail.ESerializeDateTime();
+ var records = serializer.Deserialize>(recordDetail);
+ var result = new BackRpcObj();
using (var session = Dmo.NewSession())
{
- //因为传过来的明细是不带ID的。
- var houseDetail = GetList(new Tuple("WeightBill_ID", bo.ID), new Tuple("DeleteState", false));
-
- foreach (var item in bo.HouseDetails)
+ if (dmo.ID != 0)
{
- var first = houseDetail.FirstOrDefault(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID);
- if (first == null)
- houseDetail.Add(item);
- else
- first.Index = item.Index;
+ FillServerUpdateFields(session, dmo);
+ session.Update(dmo);
}
- var delete = new List();
- var houseNames = new List();
- foreach (var item in houseDetail)
+ else
{
- if (bo.HouseDetails.Any(x => x.LiveColonyHouse_ID == item.LiveColonyHouse_ID))
- {
- UpdateOrInsertHouseDetail(session, item);
- houseNames.Add(item.LiveColonyHouse_Name);
- }
- else
- delete.Add(item.LiveColonyHouse_ID ?? 0);
+ dmo.ModifyTime = DateTime.Now;
+ session.Insert(dmo);
}
- if (delete.Any())
+ var detailBack = InsertWeightDetails(dmo.ID, dmo.Details, records, session);
+ if (detailBack.Any())
{
- Delete(session, (dom) =>
- {
- dom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", bo.ID)));
- dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("LiveColonyHouse_ID"), delete.Select(x => DQExpression.Value(x)).ToArray()));
- });
+ var details = new BackRpcObj() { Flag = "Details" };
+ details.DetailBack.AddRange(detailBack);
+ result.DetailBack.Add(details);
}
- var sanctionDetail = GetList(new Tuple("WeightBill_ID", bo.ID), new Tuple("DeleteState", false));
-
- foreach (var item in bo.SanctionDetails)
+ var farmerDetails = new BackRpcObj() { Flag = "FarmerDetails" };
+ foreach (var detail in dmo.FarmerDetails)
{
- var first = sanctionDetail.FirstOrDefault(x => x.AbnormalItem_ID == item.AbnormalItem_ID);
- if (first == null)
- sanctionDetail.Add(item);
- else
+ if (detail.ID == 0)
{
- first.Index = item.Index;
- first.Number = item.Number;
+ detail.WeightBill_ID = dmo.ID;
+ session.Insert(detail);
+ farmerDetails.DetailBack.Add(new BackRpcObj() { Flag = detail.Index.ToString(), ID = detail.ID });
}
- }
- delete.Clear();
- foreach (var item in sanctionDetail)
- {
- if (bo.SanctionDetails.Any(x => x.AbnormalItem_ID == item.AbnormalItem_ID))
- UpdateOrInsertSanctionDetail(session, item);
else
- delete.Add(item.AbnormalItem_ID ?? 0);
- }
-
- if (delete.Any())
- {
- Delete(session, (dom) =>
- {
- dom.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", bo.ID)));
- dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("AbnormalItem_ID"), delete.Select(x => DQExpression.Value(x)).ToArray()));
- });
+ session.Update(detail);
}
-
-
-
- var firstID = GetWeightDetailFirstID(bo.ID);
- if (firstID.HasValue)
- {
- var dUpdate = new DQUpdateDom(typeof(WeightBill_Detail));
- dUpdate.Columns.Add(new DQUpdateColumn("Number", bo.FirstWeightNumber));
- dUpdate.Where.Conditions.Add(DQCondition.EQ("ID", firstID));
- session.ExecuteNonQuery(dUpdate);
- }
- var update = new DQUpdateDom(typeof(WeightBill));
- update.Columns.Add(new DQUpdateColumn("HogGrade_ID", bo.HogGrade_ID));
- update.Columns.Add(new DQUpdateColumn("HogGrade_Name", bo.HogGrade_Name));
- update.Columns.Add(new DQUpdateColumn("Inspector_ID", bo.Inspector_ID));
- update.Columns.Add(new DQUpdateColumn("Inspector_Name", bo.Inspector_Name));
- update.Columns.Add(new DQUpdateColumn("HouseNames", string.Join(",", houseNames)));
- update.Columns.Add(new DQUpdateColumn("AlreadyHouse", true));
- update.Columns.Add(new DQUpdateColumn("Sync", false));
- update.Columns.Add(new DQUpdateColumn("ModifyTime", DateTime.Now));
- update.Where.Conditions.Add(DQCondition.EQ("ID", bo.ID));
- session.ExecuteNonQuery(update);
+ if (farmerDetails.DetailBack.Any())
+ result.DetailBack.Add(farmerDetails);
session.Commit();
}
- return 1;
- }
-
- static List GetList(params Tuple[] condition)
- {
- var query = new DmoQuery(typeof(T));
- if (condition.Any())
- query.Where.Conditions.Add(DQCondition.And(condition.Select(x => DQCondition.EQ(x.Item1, x.Item2))));
- return query.EExecuteList().Cast().ToList();
- }
-
- static void Delete(IDmoSession session, Action conditions)
- where T : SyncBase
- {
- var delete = new DQUpdateDom(typeof(T));
- delete.Columns.Add(new DQUpdateColumn("DeleteState", true));
- conditions(delete);
- session.ExecuteNonQuery(delete);
+ result.ID = dmo.ID;
+ return serializer.Serialize(result);
}
- static void UpdateOrInsertHouseDetail(IDmoSession session, WeightBill_HouseDetail detail)
+ static void FillServerUpdateFields(IDmoSession session, WeightBill dmo)
{
- if (detail.ID == 0)
- {
- session.Insert(detail);
- return;
- }
- var update = new DQUpdateDom(typeof(WeightBill_HouseDetail));
- update.Columns.Add(new DQUpdateColumn("Index", detail.Index));
- update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("LiveColonyHouse_ID", detail.LiveColonyHouse_ID)));
- session.ExecuteNonQuery(update);
+ var min = InnerBLUtil.GetSingleDmo(session, "ID", dmo.ID, "B3ID", "Inspector_ID", "Inspector_Name", "HouseNames", "SanctionNumber");
+ dmo.B3ID = min.B3ID;
+ dmo.Inspector_ID = min.Inspector_ID;
+ dmo.Inspector_Name = min.Inspector_Name;
+ dmo.HouseNames = min.HouseNames;
+ dmo.SanctionNumber = min.SanctionNumber;
+ dmo.Sync = false;
+ dmo.ModifyTime = DateTime.Now;
}
- static void UpdateOrInsertSanctionDetail(IDmoSession session, WeightBill_SanctionDetail detail)
+ static List InsertWeightDetails(long id, List details, List records, IDmoSession session)
{
- if (detail.ID == 0)
+ var result = new List();
+ foreach (var item in details)
{
- session.Insert(detail);
- return;
+ if (item.ID == 0)
+ {
+ item.WeightBill_ID = id;
+ session.Insert(item);
+ result.Add(new BackRpcObj() { Flag = item.Index.ToString(), ID = item.ID });
+ }
+ else
+ session.Update(item);
+ if (item.DeleteState)
+ DeleteWeightDetail(session, item.ID);
+ else
+ {
+ foreach (var r in records)
+ {
+ if (r.Delete)
+ session.Delete(r);
+ else
+ {
+ r.WeightBill_Detail_ID = item.ID;
+ session.Insert(r);
+ }
+ }
+ }
}
- var update = new DQUpdateDom(typeof(WeightBill_SanctionDetail));
- update.Columns.Add(new DQUpdateColumn("Index", detail.Index));
- update.Columns.Add(new DQUpdateColumn("Number", detail.Number));
- update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("AbnormalItem_ID", detail.AbnormalItem_ID)));
- session.ExecuteNonQuery(update);
+ return result;
}
- static long? GetWeightDetailFirstID(long id)
+ static void DeleteWeightDetail(IDmoSession session, long detailID)
{
- var query = new DQueryDom(new JoinAlias(typeof(WeightBill_Detail)));
- query.Columns.Add(DQSelectColumn.Field("ID"));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("DeleteState", false), DQCondition.EQ("WeightBill_ID", id)));
- query.Range = SelectRange.Top(1);
- query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
- return query.EExecuteScalar();
+ var delete = new DQDeleteDom(typeof(WeightDetail));
+ delete.Where.Conditions.Add(DQCondition.EQ("WeightBill_Detail_ID", detailID));
+ session.ExecuteNonQuery(delete);
}
[Rpc]
- public static int GetDetailTotalNumber(DateTime date)
+ public static string GetWeightRecord(long id)
{
- var main = new JoinAlias(typeof(WeightBill));
- var detail = new JoinAlias(typeof(WeightBill_Detail));
- var query = new DQueryDom(main);
- query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "WeightBill_ID"));
- query.Where.Conditions.Add(DQCondition.And(DQCondition.And(DQCondition.EQ(detail, "DeleteState", false), DQCondition.EQ("DeleteState", false), DQCondition.Between("WeighTime", date.Date, date.Date + new TimeSpan(23, 59, 29)))));
- query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
- var result = query.EExecuteScalar();
-
- if (result == null)
- return 0;
- return Convert.ToInt32(result);
+ var query = new DmoQuery(typeof(WeightDetail));
+ query.Where.Conditions.Add(DQCondition.EQ("WeightBill_Detail_ID", id));
+ var result = query.EExecuteList();
+ return serializer.Serialize(result);
}
[Rpc]
- public static WeightWithHouseAndSanction GetWeightBillOnHousePage(long id)
+ public static bool DeleteBill(long id)
{
- var result = new WeightWithHouseAndSanction();
using (var session = Dmo.NewSession())
{
- var entity = new WeightBill();
- entity.HogGrade_ID = InnerBLUtil.GetDmoPropertyByID(session, typeof(WeightBill), "HogGrade_ID", id);
- entity.FirstWeightNumber = GetWeightDetailFirstNumber(id);
- result.Bill = entity;
- result.Detail = InnerBLUtil.GetPartialFieldsDmoList(session, (query) =>
- {
- query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false)));
- }, "ID", "LiveColonyHouse_ID").ToArray();
+ var update = new DQUpdateDom(typeof(WeightBill));
+ update.Columns.Add(new DQUpdateColumn("DeleteState", true));
+ update.Columns.Add(new DQUpdateColumn("Sync", false));
+ update.Where.Conditions.Add(DQCondition.EQ("ID", id));
- result.SanctionDetail = InnerBLUtil.GetPartialFieldsDmoList(session, (query) =>
- {
- query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", id), DQCondition.EQ("DeleteState", false)));
- }, "ID", "AbnormalItem_ID", "Number").ToArray();
+ var detailID = InnerBLUtil.GetDmoProperty(session, typeof(WeightBill_Detail), "ID", new Tuple("WeightBill_ID", id), new Tuple("DeleteState", false));
+ if (detailID.HasValue)
+ DeleteWeightDetail(session, detailID.Value);
+ session.Commit();
}
- return result;
+
+ return true;
}
[Rpc]
- public static string GetWeightRecord(long id)
+ public static string SyncBillB3Ids(List ids)
{
- var query = new DmoQuery(typeof(WeightDetail));
- query.Where.Conditions.Add(DQCondition.EQ("WeightBill_Detail_ID", id));
- var result = query.EExecuteList();
- return serializer.Serialize(result);
+ var query = new DQueryDom(new JoinAlias(typeof(WeightBill)));
+ query.Columns.Add(DQSelectColumn.Field("ID"));
+ query.Columns.Add(DQSelectColumn.Field("B3ID"));
+ query.Where.Conditions.Add(DQCondition.And(DQCondition.IsNotNull(DQExpression.Field("B3ID")), DQCondition.InList(DQExpression.Field("ID"), ids.Select(x => DQExpression.Value(x)).ToArray())));
+ var result = query.EExecuteList().Select(x => new CTuple(x.Item1, x.Item2));
+ return serializer.Serialize(result.ToList());
}
}
-
- [RpcObject]
- public class WeightWithHouseDetail
- {
- public WeightBill Bill { get; set; }
-
- public WeightBill_HouseDetail[] Detail { get; set; }
- }
-
- [RpcObject]
- public class WeightWithHouseAndSanction : WeightWithHouseDetail
- {
- public WeightBill_SanctionDetail[] SanctionDetail { get; set; }
- }
}
diff --git a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
index b583d96..9d8b909 100644
--- a/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UpLoadWeightBill.cs
@@ -18,163 +18,163 @@ namespace BWP.B3ClientService.Tasks.UpdateLoad
{
public static class UpLoadWeightBill
{
- public static void Execute(string uri)
- {
- var serializer = new JavaScriptSerializer();
- //获取所有未上传的数据
- var allBill = GetAllNeedSyncBill();
-
- foreach (var item in allBill)
- {
- var bwpClient = new BWPClient(uri, item.Creator);
- using (var context = new TransactionContext())
- {
- #region 删除
- if (item.DeleteState)
- {
- if (item.B3ID.HasValue)
- bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/Delete", item.B3ID.Value);
- context.Session.Delete(item);
- context.Commit();
- continue;
- }
- #endregion
-
- var sync = serializer.Serialize(CreateRpcWeightBill(item));
- var back = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync);
-
- #region 同步完了要清理掉删除的明细(当前实体和数据库)
- ClearDetails(item, context.Session);
-
- #endregion
-
- #region 反填信息
- item.B3ID = back.ID;
- SetBillAsSynced(item.ID, item.B3ID.Value, context.Session);
-
- foreach (var bItem in back.DetailBack)
- {
- switch (bItem.Flag)
- {
- case "Details":
- ExecuteSimpleDetail(bItem, context.Session);
- break;
- case "FarmerDetails":
- ExecuteSimpleDetail(bItem, context.Session);
- break;
- case "SanctionDetails":
- ExecuteSimpleDetail(bItem, context.Session);
- break;
- default:
- break;
- }
- }
- //栋舍明细在B3系统不存在,所以无返回信息
- ExecuteHouseDetial(item.ID, context.Session);
- #endregion
-
- context.Commit();
- }
- }
- }
-
- static IEnumerable GetAllNeedSyncBill()
- {
- var query = new DmoQuery(typeof(WeightBill));
- query.Where.Conditions.Add(DQCondition.EQ("Sync", false));
- query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
- return query.EExecuteList().Cast();
- }
-
- static RpcWeightBill CreateRpcWeightBill(WeightBill bill)
- {
- var result = new RpcWeightBill();
- result.Bill = new SWeightBill();
- DmoUtil.CopyDmoFields(bill, result.Bill);
-
- var d = bill.Details.Where(x => !x.DeleteState);
- result.Details = d.Select(x => { var y = new SWeightBill_Detail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray();
- if (result.Details.Any())
- {
- result.Details.OrderBy(x => x.ID).First().LiveColonyHouse_Name = string.Join(",", bill.HouseDetails.Where(x => !x.DeleteState).Select(x => x.LiveColonyHouse_Name));
- }
-
- result.D_Details = bill.Details.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray();
-
-
- var fd = bill.FarmerDetails.Where(x => !x.DeleteState);
- result.FarmerDetails = fd.Select(x => { var y = new SWeightBill_FarmerDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray();
-
- result.D_FarmerDetails = bill.FarmerDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray();
-
-
- var sd = bill.SanctionDetails.Where(x => !x.DeleteState);
- result.SanctionDetails = sd.Select(x => { var y = new SWeightBill_SanctionDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray();
-
- result.D_SanctionDetails = bill.SanctionDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray();
-
- return result;
- }
-
- private static void ClearDetails(WeightBill bill, IDmoSession session)
- {
- var d = bill.Details.Where(x => x.DeleteState).ToArray();
- foreach (var dd in d)
- bill.Details.Remove(dd);
- DeleteDetail(bill.ID, session);
-
- var f = bill.FarmerDetails.Where(x => x.DeleteState).ToArray();
- foreach (var fd in f)
- bill.FarmerDetails.Remove(fd);
- DeleteDetail(bill.ID, session);
-
- var h = bill.HouseDetails.Where(x => x.DeleteState).ToArray();
- foreach (var hd in h)
- bill.HouseDetails.Remove(hd);
- DeleteDetail(bill.ID, session);
-
- var s = bill.SanctionDetails.Where(x => x.DeleteState).ToArray();
- foreach (var sd in s)
- bill.SanctionDetails.Remove(sd);
- DeleteDetail(bill.ID, session);
-
- }
-
- static void DeleteDetail(long mainID, IDmoSession session)
- where T : SyncBase
- {
- var delete = new DQDeleteDom(typeof(T));
- delete.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", mainID), DQCondition.EQ("DeleteState", true)));
- session.ExecuteNonQuery(delete);
- }
-
- static void ExecuteHouseDetial(long mainID, IDmoSession session)
- {
- var update = new DQUpdateDom(typeof(WeightBill_HouseDetail));
- update.Columns.Add(new DQUpdateColumn("B3ID", -1));
- update.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", mainID));
- session.ExecuteNonQuery(update);
- }
-
- static void ExecuteSimpleDetail(BackRpcObj details, IDmoSession session)
- where T : SyncBase
- {
- foreach (var item in details.DetailBack)
- {
- var update = new DQUpdateDom(typeof(T));
- update.Columns.Add(new DQUpdateColumn("B3ID", item.ID));
- update.Where.Conditions.Add(DQCondition.EQ("ID", long.Parse(item.Flag)));
- session.ExecuteNonQuery(update);
- }
- }
-
- static void SetBillAsSynced(long id, long B3ID, IDmoSession session)
- {
- var update = new DQUpdateDom(typeof(WeightBill));
- update.Columns.Add(new DQUpdateColumn("Sync", true));
- update.Columns.Add(new DQUpdateColumn("B3ID", B3ID));
- update.Where.Conditions.Add(DQCondition.EQ("ID", id));
- session.ExecuteNonQuery(update);
- }
+ //public static void Execute(string uri)
+ //{
+ // var serializer = new JavaScriptSerializer();
+ // //获取所有未上传的数据
+ // var allBill = GetAllNeedSyncBill();
+
+ // foreach (var item in allBill)
+ // {
+ // var bwpClient = new BWPClient(uri, item.Creator);
+ // using (var context = new TransactionContext())
+ // {
+ // #region 删除
+ // if (item.DeleteState)
+ // {
+ // if (item.B3ID.HasValue)
+ // bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/Delete", item.B3ID.Value);
+ // context.Session.Delete(item);
+ // context.Commit();
+ // continue;
+ // }
+ // #endregion
+
+ // var sync = serializer.Serialize(CreateRpcWeightBill(item));
+ // var back = bwpClient.Call("/MainSystem/B3ButcherManage/Rpcs/WeighBillRpc/UpdateOrInsert", sync);
+
+ // #region 同步完了要清理掉删除的明细(当前实体和数据库)
+ // ClearDetails(item, context.Session);
+
+ // #endregion
+
+ // #region 反填信息
+ // item.B3ID = back.ID;
+ // SetBillAsSynced(item.ID, item.B3ID.Value, context.Session);
+
+ // foreach (var bItem in back.DetailBack)
+ // {
+ // switch (bItem.Flag)
+ // {
+ // case "Details":
+ // ExecuteSimpleDetail(bItem, context.Session);
+ // break;
+ // case "FarmerDetails":
+ // ExecuteSimpleDetail(bItem, context.Session);
+ // break;
+ // case "SanctionDetails":
+ // ExecuteSimpleDetail(bItem, context.Session);
+ // break;
+ // default:
+ // break;
+ // }
+ // }
+ // //栋舍明细在B3系统不存在,所以无返回信息
+ // ExecuteHouseDetial(item.ID, context.Session);
+ // #endregion
+
+ // context.Commit();
+ // }
+ // }
+ //}
+
+ //static IEnumerable GetAllNeedSyncBill()
+ //{
+ // var query = new DmoQuery(typeof(WeightBill));
+ // query.Where.Conditions.Add(DQCondition.EQ("Sync", false));
+ // query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
+ // return query.EExecuteList().Cast();
+ //}
+
+ //static RpcWeightBill CreateRpcWeightBill(WeightBill bill)
+ //{
+ // var result = new RpcWeightBill();
+ // result.Bill = new SWeightBill();
+ // DmoUtil.CopyDmoFields(bill, result.Bill);
+
+ // var d = bill.Details.Where(x => !x.DeleteState);
+ // result.Details = d.Select(x => { var y = new SWeightBill_Detail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray();
+ // if (result.Details.Any())
+ // {
+ // result.Details.OrderBy(x => x.ID).First().LiveColonyHouse_Name = string.Join(",", bill.HouseDetails.Where(x => !x.DeleteState).Select(x => x.LiveColonyHouse_Name));
+ // }
+
+ // result.D_Details = bill.Details.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray();
+
+
+ // var fd = bill.FarmerDetails.Where(x => !x.DeleteState);
+ // result.FarmerDetails = fd.Select(x => { var y = new SWeightBill_FarmerDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray();
+
+ // result.D_FarmerDetails = bill.FarmerDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray();
+
+
+ // var sd = bill.SanctionDetails.Where(x => !x.DeleteState);
+ // result.SanctionDetails = sd.Select(x => { var y = new SWeightBill_SanctionDetail(); DmoUtil.CopyDmoFields(x, y); return y; }).ToArray();
+
+ // result.D_SanctionDetails = bill.SanctionDetails.Where(x => x.DeleteState && x.B3ID.HasValue).Select(x => x.B3ID.Value).ToArray();
+
+ // return result;
+ //}
+
+ //private static void ClearDetails(WeightBill bill, IDmoSession session)
+ //{
+ // var d = bill.Details.Where(x => x.DeleteState).ToArray();
+ // foreach (var dd in d)
+ // bill.Details.Remove(dd);
+ // DeleteDetail(bill.ID, session);
+
+ // var f = bill.FarmerDetails.Where(x => x.DeleteState).ToArray();
+ // foreach (var fd in f)
+ // bill.FarmerDetails.Remove(fd);
+ // DeleteDetail(bill.ID, session);
+
+ // var h = bill.HouseDetails.Where(x => x.DeleteState).ToArray();
+ // foreach (var hd in h)
+ // bill.HouseDetails.Remove(hd);
+ // DeleteDetail(bill.ID, session);
+
+ // var s = bill.SanctionDetails.Where(x => x.DeleteState).ToArray();
+ // foreach (var sd in s)
+ // bill.SanctionDetails.Remove(sd);
+ // DeleteDetail(bill.ID, session);
+
+ //}
+
+ //static void DeleteDetail(long mainID, IDmoSession session)
+ // where T : SyncBase
+ //{
+ // var delete = new DQDeleteDom(typeof(T));
+ // delete.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("WeightBill_ID", mainID), DQCondition.EQ("DeleteState", true)));
+ // session.ExecuteNonQuery(delete);
+ //}
+
+ //static void ExecuteHouseDetial(long mainID, IDmoSession session)
+ //{
+ // var update = new DQUpdateDom(typeof(WeightBill_HouseDetail));
+ // update.Columns.Add(new DQUpdateColumn("B3ID", -1));
+ // update.Where.Conditions.Add(DQCondition.EQ("WeightBill_ID", mainID));
+ // session.ExecuteNonQuery(update);
+ //}
+
+ //static void ExecuteSimpleDetail(BackRpcObj details, IDmoSession session)
+ // where T : SyncBase
+ //{
+ // foreach (var item in details.DetailBack)
+ // {
+ // var update = new DQUpdateDom(typeof(T));
+ // update.Columns.Add(new DQUpdateColumn("B3ID", item.ID));
+ // update.Where.Conditions.Add(DQCondition.EQ("ID", long.Parse(item.Flag)));
+ // session.ExecuteNonQuery(update);
+ // }
+ //}
+
+ //static void SetBillAsSynced(long id, long B3ID, IDmoSession session)
+ //{
+ // var update = new DQUpdateDom(typeof(WeightBill));
+ // update.Columns.Add(new DQUpdateColumn("Sync", true));
+ // update.Columns.Add(new DQUpdateColumn("B3ID", B3ID));
+ // update.Where.Conditions.Add(DQCondition.EQ("ID", id));
+ // session.ExecuteNonQuery(update);
+ //}
}
}
diff --git a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
index 82e9010..ac22d25 100644
--- a/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
+++ b/B3ClientService/Tasks/UpdateLoad/UploadTest.cs
@@ -22,7 +22,7 @@ namespace BWP.B3ClientService.Tasks
var serverUri = ServerHost.GetServerUrl();
if (string.IsNullOrEmpty(serverUri))
throw new Exception("请配置服务器地址");
- UpLoadWeightBill.Execute(serverUri);
+ //UpLoadWeightBill.Execute(serverUri);
UploadOrderDetail.Execute(serverUri);
UploadSecondOrder.Execute(serverUri);
}