From 90b264c675155d6fb921d256f2de48ad398845c6 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 20 6月 2024 13:25:38 +0800
Subject: [PATCH] 2

---
 iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs |   29 +++++++++++---
 iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs                             |   24 ++++++++++++
 iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs                                |   43 ++++++++++++++++++---
 3 files changed, 83 insertions(+), 13 deletions(-)

diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
index 655cbdd..7aed2ca 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
@@ -447,6 +447,16 @@
                     OP80NewCode = OP80NewCode,
                 };
             }
+
+            //鍒ゆ柇鏄惁宸茬粡鍑哄簱
+            List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.DetachedEntities.Where(w => (w.WorkPieceID == OP80NewCode || w.OP80NewCode == OP80NewCode) && w.IsDeleted == false).ToListAsync();
+            if (db_itemModelList != null && db_itemModelList.Count > 0)
+            {
+                var itemModel = db_itemModelList.First();
+                var createitme = itemModel.CreatedTime == null ? "" : (((DateTimeOffset)itemModel.CreatedTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+                throw Oops.Oh($"宸ヤ欢{itemModel.WorkPieceID}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
+            }
+
             return workPieceInfo;
         }
 
@@ -456,6 +466,7 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("outBoundWorkPiece")]
+        [UnitOfWork]
         public async Task<string> outBoundWorkPiece([FromBody] OutBoundInput input)
         {
 
@@ -474,6 +485,8 @@
 
             var queryWorkPieceIDList = WorkPieceInfoLst.Select(x => x.WorkPieceID).ToList();
             List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
+
+            List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
 
             foreach (var item in WorkPieceInfoLst)
             {
@@ -497,6 +510,17 @@
                     CreatedUserName = CurrentUserInfo.Name,
                 };
                 addOutBoundList.Add(outBoundLog);
+
+                var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID);
+                if (workPiece != null)
+                {
+                    workPiece.OutPerson = CurrentUserInfo.Name;
+                    workPiece.OutRemark = "鎾ら攢宸ヤ欢鍑哄簱";
+                    workPiece.OutTime = DateTime.Now;
+                    workPiece.IsOut = false;
+
+                    await _workPieceInfoRep.UpdateAsync(workPiece);
+                }
             }
             await _workPieceOutboundRep.InsertAsync(addOutBoundList);
             return "鍑哄簱鎴愬姛";
diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
index a3c2b34..141c83c 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
@@ -21,13 +21,15 @@
     [DisableOpLog]
     public class WorkPieceOutboundService : IWorkPieceOutboundService, IDynamicApiController, ITransient
     {
-        private readonly IRepository<WorkPieceOutbound,MasterDbContextLocator> _workPieceOutboundRep;
-
+        private readonly IRepository<WorkPieceOutbound, MasterDbContextLocator> _workPieceOutboundRep;
+        private readonly IRepository<WorkPieceInfo, MasterDbContextLocator> _workPieceInfoRep;
 
         public WorkPieceOutboundService(
-            IRepository<WorkPieceOutbound,MasterDbContextLocator> workPieceOutboundRep
+            IRepository<WorkPieceInfo, MasterDbContextLocator> workPieceInfoRep,
+            IRepository<WorkPieceOutbound, MasterDbContextLocator> workPieceOutboundRep
         )
         {
+            _workPieceInfoRep = workPieceInfoRep;
             _workPieceOutboundRep = workPieceOutboundRep;
         }
 
@@ -86,7 +88,7 @@
             if (!isExist) throw Oops.Oh(ErrorCode.D3000);
 
             var workPieceOutbound = input.Adapt<WorkPieceOutbound>();
-            await _workPieceOutboundRep.UpdateAsync(workPieceOutbound,ignoreNullValues:true);
+            await _workPieceOutboundRep.UpdateAsync(workPieceOutbound, ignoreNullValues: true);
         }
 
         /// <summary>
@@ -117,19 +119,32 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("revoke")]
+        [UnitOfWork]
         public async Task Revoke(List<DeleteWorkPieceOutboundInput> input)
         {
-            foreach (var item in input) {
+            foreach (var item in input)
+            {
                 var workPieceOutbound = await _workPieceOutboundRep.FirstOrDefaultAsync(u => u.Id == item.Id);
                 if (workPieceOutbound == null)
                 {
                     throw Oops.Oh("宸ヤ欢鍑哄簱淇℃伅涓嶅瓨鍦�");
                 }
                 workPieceOutbound.IsDeleted = true;
-                workPieceOutbound.Remark = workPieceOutbound.Remark??""+"鎾ら攢鍙戣揣";
+                workPieceOutbound.Remark = workPieceOutbound.Remark ?? "" + "鎾ら攢鍙戣揣";
                 await _workPieceOutboundRep.UpdateAsync(workPieceOutbound);
+
+                var workPiece = await _workPieceInfoRep.FirstOrDefaultAsync(u => u.WorkPieceID == workPieceOutbound.WorkPieceID);
+                if (workPiece != null)
+                {
+                    workPiece.OutPerson = CurrentUserInfo.Name;
+                    workPiece.OutRemark = "鎾ら攢宸ヤ欢鍑哄簱";
+                    workPiece.OutTime = DateTime.Now;
+                    workPiece.IsOut = false;
+
+                    await _workPieceInfoRep.UpdateAsync(workPiece);
+                }
             }
-            
+
         }
 
     }
diff --git a/iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs b/iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs
index 3003246..d34e15a 100644
--- a/iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs
@@ -79,12 +79,12 @@
         [Comment("宸ュ簭寮�濮嬫椂闂�")]
         public DateTime? WorkingProcedureStartTime { get; set; }
         [Comment("宸ュ簭缁撴潫鏃堕棿")]
-        public DateTime? WorkingProcedureEndTime{get; set;}
+        public DateTime? WorkingProcedureEndTime { get; set; }
 
-            /// <summary>
-            /// 褰撳墠宸ュ簭鍔犲伐鏃堕暱
-            /// </summary>
-            [Comment("褰撳墠宸ュ簭鍔犲伐鏃堕暱")]
+        /// <summary>
+        /// 褰撳墠宸ュ簭鍔犲伐鏃堕暱
+        /// </summary>
+        [Comment("褰撳墠宸ュ簭鍔犲伐鏃堕暱")]
         public int? ProcessingDurationForCurrent { get; set; }
 
         /// <summary>
@@ -103,7 +103,7 @@
         /// 宸ュ簭涓嬬嚎鏃堕棿
         /// </summary>
         [Comment("宸ュ簭涓嬬嚎鏃堕棿")]
-        public DateTime? WorkPieceLastOfflineTime   { get; set; }
+        public DateTime? WorkPieceLastOfflineTime { get; set; }
 
         /// <summary>
         /// 鏁伴噺
@@ -231,5 +231,36 @@
         /// </summary>
         [Comment("瀹屾垚鏃堕棿")]
         public DateTime? CompleteTime { get; set; }
+
+
+        #region 鍑哄簱鐩稿叧
+
+        /// <summary>
+        /// 鏄惁鍑哄簱
+        /// </summary>
+        [Comment("鏄惁鍑哄簱")]
+        public bool? IsOut { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱浜�
+        /// </summary>
+        [Comment("鍑哄簱浜�")]
+        [MaxLength(255)]
+        public string OutPerson { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱澶囨敞
+        /// </summary>
+        [Comment("鍑哄簱澶囨敞")]
+        [MaxLength(255)]
+        public string OutRemark { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鏃堕棿
+        /// </summary>
+        [Comment("鍑哄簱鏃堕棿")]
+        public DateTime? OutTime { get; set; }
+
+        #endregion
     }
 }

--
Gitblit v1.9.3