diff --git a/B3ClientService/BO/Bill/CarcassFullInfo.cs b/B3ClientService/BO/Bill/CarcassFullInfo.cs index a585aca..c32e2ab 100644 --- a/B3ClientService/BO/Bill/CarcassFullInfo.cs +++ b/B3ClientService/BO/Bill/CarcassFullInfo.cs @@ -60,6 +60,9 @@ namespace BWP.B3ClientService.BO #endregion #region 入库信息 + //因为入库是按照条码对应的,如果无码就导致重复插入 + [DbColumn(DefaultValue = 0)] + public long InStoreClientID { get; set; } [LogicName("入库员")] public long? InStoreWorker_ID { get; set; } diff --git a/B3ClientService/OfflinRpc/CarcassInStoreRpc.cs b/B3ClientService/OfflinRpc/CarcassInStoreRpc.cs index 5e5431a..cc06c75 100644 --- a/B3ClientService/OfflinRpc/CarcassInStoreRpc.cs +++ b/B3ClientService/OfflinRpc/CarcassInStoreRpc.cs @@ -146,7 +146,7 @@ namespace BWP.B3ClientService.Rpcs { foreach (var item in list) { - var id = GetID(item.BarCode, session); + var id = GetID(item.BarCode, item.ID, session); if (id.HasValue) Update(id.Value, item, session); else @@ -162,13 +162,13 @@ namespace BWP.B3ClientService.Rpcs return 1; } - static long? GetID(string code, IDmoSession session) + static long? GetID(string code, long id, IDmoSession session) { if (string.IsNullOrEmpty(code)) return null; var query = new DQueryDom(new JoinAlias(typeof(CarcassFullInfo))); query.Columns.Add(DQSelectColumn.Field("ID")); - query.Where.Conditions.Add(DQCondition.EQ("BarCode", code)); + query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("InStoreClientID", id), DQCondition.EQ("BarCode", code))); return query.EExecuteScalar(session); } @@ -181,6 +181,7 @@ namespace BWP.B3ClientService.Rpcs update.Columns.Add(new DQUpdateColumn("InStoreGoods_ID", obj.InStoreGoods_ID)); update.Columns.Add(new DQUpdateColumn("InStoreWeight", obj.InStoreWeight)); update.Columns.Add(new DQUpdateColumn("InStoreTime", obj.InStoreTime)); + update.Columns.Add(new DQUpdateColumn("InStoreClientID", obj.ID)); update.Where.Conditions.Add(DQCondition.EQ("ID", id)); session.ExecuteNonQuery(update); } @@ -195,6 +196,7 @@ namespace BWP.B3ClientService.Rpcs entity.InStoreGoods_ID = obj.InStoreGoods_ID; entity.InStoreWeight = obj.InStoreWeight; entity.InStoreTime = obj.InStoreTime; + entity.InStoreClientID = obj.ID; session.Insert(entity); } @@ -219,6 +221,7 @@ namespace BWP.B3ClientService.Rpcs class CarcassInStoreObj { + public long ID { get; set; } public string BarCode { get; set; } public long? InStoreWorker_ID { get; set; } public long? WorkUnit_ID { get; set; } diff --git a/B3ClientService/Tasks/InStoreCombineCreateB3Bills.cs b/B3ClientService/Tasks/InStoreCombineCreateB3Bills.cs index 5fcf0b6..c979b03 100644 --- a/B3ClientService/Tasks/InStoreCombineCreateB3Bills.cs +++ b/B3ClientService/Tasks/InStoreCombineCreateB3Bills.cs @@ -88,7 +88,7 @@ namespace BWP.B3ClientService.Tasks query.Columns.Add(DQSelectColumn.Field("Worker_Name")); foreach (var c in query.Columns) query.GroupBy.Expressions.Add(c.Expression); - query.Columns.Add(DQSelectColumn.Sum("Weight")); + query.Columns.Add(DQSelectColumn.Sum(detail, "Weight")); query.Columns.Add(DQSelectColumn.Count("C")); query.Where.Conditions.Add(DQCondition.EQ("IsCreated", false)); query.Range = SelectRange.Top(100);