From b52018589bf6c7ec1d51ce8ad000a7aa993b0ab5 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 13 四月 2026 16:06:15 +0800
Subject: [PATCH] 优化组盘表获取成品编号、流水号、供方代码

---
 代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs |   95 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 75 insertions(+), 20 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs"
index 34303d0..ed85f36 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs"
@@ -27,7 +27,6 @@
         private readonly IProcessInfoDetailService _processDetailInfoService;
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly IScanStationService _scanStationService;
-        //private readonly string PalletCode = "PL107";
 
         public PLCJob(IBoxingService boxingService,
             IBoxingDetailService boxingDetailService,
@@ -300,13 +299,23 @@
                     {
                         device.SetValue(W_PLCDBName.wboolLocation8ScanDone,true);
                     }
+                    else
+                    {
+                        device.SetValue(W_PLCDBName.wboolLocation8ScanDone, false);
+                    }
+
                     device.SetValue(W_PLCDBName.wrealProductLength, dt_Formula.ProductLength);
                     device.SetValue(W_PLCDBName.wrealProductWidth, dt_Formula.ProductWidth);
-                    device.SetValue(W_PLCDBName.wrealProductHeight, dt_Formula.ProductHeight);
+                    device.SetValue(W_PLCDBName.wrealProductHeight, dt_Formula.ProductHeight + dt_Formula.GasketHeight);
                     device.SetValue(W_PLCDBName.wrealScrewDownsetDistance, dt_Formula.ScrewDownsetDistance);
                     //涓績楂樺害
-                    device.SetValue(W_PLCDBName.wrealScrewTorque, dt_Formula.ScrewTorqueOutput);
+                    device.SetValue(W_PLCDBName.wrealScrewTorque, dt_Formula.ScrewTorqueOutput + dt_Formula.GasketHeight);
                     device.SetValue(W_PLCDBName.wrealAutoScrewProgramNo, dt_Formula.DintAutoScrewOn);
+                    device.SetValue(W_PLCDBName.wrealPressPressure, dt_Formula.PressPressureDiff);
+                    device.SetValue(W_PLCDBName.wrealTighteningTorque, dt_Formula.PressTorqueDiff);
+                    device.SetValue(W_PLCDBName.wrealFastenTorque, dt_Formula.PressFastenTorque);
+
+
                     //鍘嬭鎵爜瀹屾垚
                     device.SetValue(W_PLCDBName.wboolLocation2ScanDone, true);
 
@@ -354,15 +363,13 @@
 
 
                     //鎺ユ敹鏁版嵁
-                    decimal PressHeight = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectPressHeight);
                     decimal ScrewTorque = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectScrewTorque);
                     decimal ScrewAngle = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectScrewAngle);
                     decimal PressPressure = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectPressForce);
-                    bool PressTightenNg = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rrealPressScrewByScrewNG);
                     bool PressTightenOk = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rrealPressScrewByScrewOK);
                     bool PressTightenUnfinished = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rrealPressScrewByProcessUnfinished);
 
-                    
+
 
                     //娣诲姞鍒版暟鎹簱
                     Dt_ProcessInfo dt_ProcessInfo = new Dt_ProcessInfo()
@@ -371,14 +378,22 @@
                         ProductCode = dt_Formula.ProductCode,
                         ProductName = dt_Formula.ProductName,
                         ProductSn = dt_Boxing.BoxingNo,
-                        PressTightenNg = PressTightenNg?1:0,
-                        PressTightenOk = PressTightenOk?1:0,
-                        PressTightenUnfinished = PressTightenUnfinished?1:0,
-                        PressHeight = PressHeight,
+                        ProductStatus = 1,
+                        PressTightenOk = PressTightenOk ? 1 : 0,
+                        PressTightenUnfinished = PressTightenUnfinished ? 1 : 0,
                         ScrewTorque = ScrewTorque,
                         ScrewAngle = ScrewAngle,
                         PressPressure = PressPressure,
                     };
+
+                    if (
+                        PressPressure > dt_Formula.ScrewDownsetDistance + dt_Formula.PressPressureDiff || PressPressure < dt_Formula.ScrewDownsetDistance - dt_Formula.PressPressureDiff ||
+                        ScrewTorque > dt_Formula.PressFastenTorque + dt_Formula.PressTorqueDiff || ScrewTorque < dt_Formula.PressFastenTorque - dt_Formula.PressTorqueDiff
+                        )
+                    {
+                        dt_ProcessInfo.ProductStatus = 0;
+                    }
+
                     _processInfoService.Repository.AddData(dt_ProcessInfo);
 
                     // 鍘嬭淇℃伅涓婁紶瀹屾垚
@@ -427,14 +442,27 @@
                         return;
                     }
                     Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == dt_Boxing.ProductCode);
+                    if(dt_Formula.PressNoCheckBottomPlate == 1)
+                    {
+                        device.SetValue(W_PLCDBName.wboolLocation9ScanDone, true);
+                    }
+                    else
+                    {
+                        device.SetValue(W_PLCDBName.wboolLocation9ScanDone, false);
+                    }
+
                     //鍐欏叆PLC
                     device.SetValue(W_PLCDBName.wrealCheckPalletCode, dt_Boxing.Id % 100);
                     device.SetValue(W_PLCDBName.wrealP0P1Width, dt_Formula.P0P1Width);
                     device.SetValue(W_PLCDBName.wrealP0P2Width, dt_Formula.P0P2Width);
                     device.SetValue(W_PLCDBName.wrealP0P3Width, dt_Formula.P0P3Width);
-                    device.SetValue(W_PLCDBName.wrealP0P3Width, dt_Formula.P0P3Width);
-                    device.SetValue(W_PLCDBName.wrealP1P3Height, dt_Formula.P1P3Height);
-                    device.SetValue(W_PLCDBName.wrealP2P3Height, dt_Formula.P2P3Height);
+                    device.SetValue(W_PLCDBName.wrealP1P3Height, dt_Formula.ScrewTorqueOutput + dt_Formula.GasketHeight);
+                    device.SetValue(W_PLCDBName.wrealP2P3Height, dt_Formula.ProductHeight + dt_Formula.GasketHeight);
+                    device.SetValue(W_PLCDBName.wrealProdHeightDiff, dt_Formula.DetectHeightDiff);
+                    device.SetValue(W_PLCDBName.wrealScrewHeight, dt_Formula.ScrewPositionDiff);
+                    
+
+
 
                     //妫�娴嬫壂鐮佸畬鎴�
                     device.SetValue(W_PLCDBName.wboolLocation3ScanDone, true);
@@ -486,7 +514,14 @@
                     decimal Height1 = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight1);//113
                     decimal Height2 = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight2);//92
                     decimal Height3 = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight3);//11
-                    bool CheckUnfinished = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rrealDetectByInspectUnfinished);
+                    if(dt_Formula.PressNoCheckBottomPlate == 1)
+                    {
+                        Height3 = 0;
+                    }
+
+                    //bool CheckUnfinished = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rrealDetectByInspectUnfinished);
+
+                    
 
                     Dt_ProcessInfo dt_ProcessInfo = _processInfoService.Repository.QueryFirst(x => x.PalletCode == dt_Boxing.PalletCode);
                     int id = 0;
@@ -498,7 +533,6 @@
                             ProductCode = dt_Formula.ProductCode,
                             ProductName = dt_Formula.ProductName,
                             ProductSn = dt_Boxing.BoxingNo,
-                            CheckUnfinished = CheckUnfinished?1:0,
                         };
                         id = _processInfoService.Repository.AddData(dt_ProcessInfo);
                     }
@@ -506,10 +540,23 @@
                     {
                         id = dt_ProcessInfo.Id;
                     }
+                    decimal? ThreadPositionHeight = Height1 - Height3 - dt_Formula.GasketHeight;
+                    decimal? ProductCheckHeight = Height2 - Height3 - dt_Formula.GasketHeight;
+
                     dt_ProcessInfo.Id = id;
-                    dt_ProcessInfo.Height1 = Height1 = Height1 - Height3;
-                    dt_ProcessInfo.Height2 = Height2 = Height2 - Height3;
+                    dt_ProcessInfo.ThreadPositionHeight = ThreadPositionHeight;
+                    dt_ProcessInfo.ProductCheckHeight = ProductCheckHeight;
+                    dt_ProcessInfo.Height1 = Height1;
+                    dt_ProcessInfo.Height2 = Height2;
                     dt_ProcessInfo.Height3 = Height3;
+
+                    if(
+                        ProductCheckHeight > dt_Formula.ProductHeight + dt_Formula.DetectHeightDiff || ProductCheckHeight < dt_Formula.ProductHeight - dt_Formula.DetectHeightDiff ||
+                        ThreadPositionHeight > dt_Formula.ScrewTorqueOutput + dt_Formula.ScrewPositionDiff || ThreadPositionHeight < dt_Formula.ScrewTorqueOutput - dt_Formula.ScrewPositionDiff
+                        )
+                    {
+                        dt_ProcessInfo.ProductStatus = 0;
+                    }
 
                     _processInfoService.Repository.UpdateData(dt_ProcessInfo);
                     //妫�娴嬩俊鎭笂浼犲畬鎴�
@@ -551,16 +598,22 @@
                             throw new InvalidOperationException("鎵樼洏涓虹┖");
                         }
                         Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+                        WriteInfo("涓嬬嚎鎵爜缁勭洏鏁版嵁",$"{PalletCode}_boxingService鏌ヨ{dt_Boxing}");
+
                         if (dt_Boxing != null)
                         {
+                            WriteInfo("涓嬬嚎鎵爜缁勭洏鏁版嵁", $"{PalletCode}_boxingService鍒犻櫎{dt_Boxing}");
                             _boxingService.Repository.DeleteData(dt_Boxing);
+                            
                             List<Dt_BoxingDetail> dt_BoxingDetails = _boxingDetailService.Repository.QueryData(x => x.BoxingId == dt_Boxing.Id);
                             if (dt_BoxingDetails != null)
                             {
+                                WriteInfo("涓嬬嚎鎵爜缁勭洏鏁版嵁", $"{PalletCode}_boxingService鍒犻櫎{dt_BoxingDetails}");
                                 _boxingDetailService.Repository.DeleteData(dt_BoxingDetails);
                             }
                         }
                         Dt_ProcessInfo dt_ProcessInfo = _processInfoService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+                        WriteInfo("涓嬬嚎鎵爜缁勭洏鏁版嵁", $"{PalletCode}_processInfoService鏌ヨ{dt_ProcessInfo}");
                         if (dt_ProcessInfo != null)
                         {
                             Dt_ProcessInfoDetail dt_ProcessInfoDetail = new Dt_ProcessInfoDetail()
@@ -569,14 +622,14 @@
                                 ProductCode = dt_ProcessInfo.ProductCode?.ToString() ?? "",
                                 ProductName = dt_ProcessInfo.ProductName?.ToString() ?? "",
                                 ProductSn = dt_ProcessInfo.ProductSn,
-                                PressTightenNg = dt_ProcessInfo.PressTightenNg,
                                 PressTightenOk = dt_ProcessInfo.PressTightenOk,
                                 PressTightenUnfinished = dt_ProcessInfo.PressTightenUnfinished,
-                                CheckUnfinished = dt_ProcessInfo.CheckUnfinished,
-                                PressHeight = dt_ProcessInfo.PressHeight,
+                                ProductStatus = dt_ProcessInfo.ProductStatus,
                                 ScrewTorque = dt_ProcessInfo.ScrewTorque,
                                 ScrewAngle = dt_ProcessInfo.ScrewAngle,
                                 PressPressure = dt_ProcessInfo.PressPressure,
+                                ThreadPositionHeight = dt_ProcessInfo.ThreadPositionHeight,
+                                ProductCheckHeight = dt_ProcessInfo.ProductCheckHeight,
                                 Height1 = dt_ProcessInfo.Height1,
                                 Height2 = dt_ProcessInfo.Height2,
                                 Height3 = dt_ProcessInfo.Height3,
@@ -584,7 +637,9 @@
                                 CreateDate = DateTime.Now
                             };
                             _processDetailInfoService.Repository.AddData(dt_ProcessInfoDetail);
+                            WriteInfo("涓嬬嚎鎵爜缁勭洏鏁版嵁", $"{PalletCode}_processInfoService鍒犻櫎{dt_ProcessInfo}");
                             _processInfoService.DeleteData(dt_ProcessInfo);
+                            
                         }
                         uow.Commit();
                         //涓嬬嚎鎵爜瀹屾垚

--
Gitblit v1.9.3