From 4422008672f79f74841e11f20430c5e76686e293 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 19 12月 2024 10:33:46 +0800
Subject: [PATCH] 修复 hmid更改合格状态,没清理 不合格原因的问题

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs |   78 +++++++++++++++++++++++++++-----------
 1 files changed, 55 insertions(+), 23 deletions(-)

diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
index 1a242ae..b846ff4 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/OP80QualityDataHandler.cs
@@ -28,6 +28,7 @@
         public static readonly string path = ConfigHelper.GetConfigString("OP80QualityData");//OP80鐨勫湴鍧�
         public static readonly string query_WorkingProcedureCurrent = "OP80";
         public static readonly string _DataCapturePointCode = "OP8002";
+        public static readonly string _DataCapturePointName = "OP80璐ㄩ噺鏁版嵁閲囬泦";
         public static readonly string _EquipmentId = "EOP80";
         public static readonly LogType logType = LogType.PLCOP80_QC;
 
@@ -154,7 +155,8 @@
             }
         }
 
-        private void Do_One(bool isAdd_WorkPieceInfo, bool isAdd_WorkPieceProcess, bool isAdd_QualityDataInfo, List<FileInfo> allFiles, DbModel db, WorkPieceInfo info, WorkPieceProcess pieceProcess, QualityDataInfo qualityData,
+        private void Do_One(bool isAdd_WorkPieceInfo, bool isAdd_WorkPieceProcess, bool isAdd_QualityDataInfo, List<FileInfo> allFiles, DbModel db, WorkPieceInfo info,
+            WorkPieceProcess pieceProcess, QualityDataInfo qualityData,
              List<FileInfo> findFiles)
         {
             try
@@ -174,14 +176,17 @@
                 logMiddle.EquipmentID = _dataCaptureConfig.EquipmentID; ;
                 logMiddle.Remarks = logMiddle.WorkingProcedure;
                 logMiddle.MonitoringPoint = _DataCapturePointCode;
+                //logMiddle.CreatedUserName = _DataCapturePointCode;
+                SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref logMiddle, DataCapturePointCode, DataCapturePointCname);
                 logMiddle.CreatedTime = DateTimeHelper.GetDateTime();
-                logMiddle.CreatedUserName = _DataCapturePointCode;
                 logMiddle.UpdatedTime = DateTimeHelper.GetDateTime();
                 logMiddle.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString();
                 logMiddle.IsDeleted = false;
 
                 WorkPieceLog loginfo2 = new WorkPieceLog();
                 loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle);
+                loginfo2.DataCapturePointCname = "OP80璐ㄩ噺閲囬泦";
+                loginfo2.CreatedUserName = loginfo2.MonitoringPoint;
 
                 var datatable = CSVHelper.ReadCSVList(file.FullName);
                 List<string> rowFirst = new List<string>();
@@ -319,26 +324,35 @@
                 }
                 else
                 {
-                    logMiddle.Remarks = (logMiddle.Remarks ?? "") + $"OP80涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.FullName}寮傚父锛岃鏁颁笉鏄�2琛�";
+                    logMiddle.Remarks = $"OP80涓嬬嚎瀹屾垚璇诲彇鏂囦欢{file.FullName}寮傚父锛岃鏁颁笉鏄�2琛�";
                 }
 
 
                 //鏇存柊WorkPieceInfo琛ㄤ互鍙婃彃鍏orkPieceLog琛ㄥ拰WorkPieceInfoLog琛�
                 info.OP80NewCode = logMiddle.OP80NewCode;//鏇存柊鎴愬搧鍚�
 
-                info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
-                logMiddle.QualityState = info.QualityState;
-                //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
-                WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
+                //濡傛灉OP80涓嬬嚎锛屽凡缁忔洿鏀逛簡璐ㄦ鐘舵�侊紝骞朵笖璐ㄦ鐘舵�佺瓑浜庝笉鍚堟牸锛屽垯杩欓噷灏变笉瑕佺户缁洿鏀硅川妫�鐘舵�佷簡 銆怑ditby shaocx,2024-08-28銆�
+                bool isNeedUpdateQualityState = true;
+                var ooDateTime = Convert.ToDateTime("0001-01-01");
+                if (pieceProcess.EndTime != ooDateTime && pieceProcess.QualityState == (int)QualityStateEnum.NG)
+                {
+                    isNeedUpdateQualityState = false;
+                }
+                if (isNeedUpdateQualityState)
+                {
+                    info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
+                    logMiddle.QualityState = info.QualityState;
+                    //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+                    WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
 
-                //璧嬪�间笉鍚堟牸鍘熷洜
-                //TODO:闇�瑕侀厤缃甇P80璐ㄩ噺涓嶅悎鏍肩殑鍘熷洜鏄暐锛燂紵
-                WorkPieceInfoManager.SetQualityNoOk_WorkPieceInfo(logMiddle, ref info);
+                    //璧嬪�间笉鍚堟牸鍘熷洜
+                    WorkPieceInfoManager.SetQualityNoOk_WorkPieceInfo(logMiddle, ref info);
 
-                info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
-                info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
-                info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
+                    info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
+                    info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
+                    info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
 
+                }
                 //var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == wplog.WorkPieceID).FirstOrDefault();
                 //if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
                 //{//鎻掑叆QualityDataInfo琛�
@@ -348,11 +362,22 @@
                 //淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨�
                 EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, WorkPieceInfoManager.GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁
 
+                //鍗曠嫭澶勭悊 璐ㄩ噺鏁版嵁鐨勭姸鎬�
+                if (isNeedUpdateQualityState)
+                {
+                    qualityData.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
+                }
+                else
+                {//蹇呯劧鏄笉鍚堟牸
+                    qualityData.QualityState = (int)(QualityStateEnum.NG);
+                }
+                qualityData.OP80QualityState = qualityData.QualityState.ToString();
+
                 qualityData.EquipmentID = _EquipmentId;
                 qualityData.QualityStateUpdateUser = info.UpdatedUserName;
                 qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime;
                 qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode;
-                qualityData.OP80QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
+
                 qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime();
                 qualityData.OP80QualityFilePath = logMiddle.OP80QualityFilePath;
                 long op80id = qualityData.Id;
@@ -360,8 +385,8 @@
                 {
                     pieceProcess.QualityDataInfoID = op80id;
                 }
-                loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
-                if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+                loginfo2.Remarks = $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
+                if (!info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
                 {
                     info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
                 }
@@ -374,13 +399,15 @@
                 pieceProcess.GetQcDataFlag_Remark = "鎵惧埌鏂囦欢";
                 pieceProcess.GetQcDataFlag = 1;
 
-                //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
-                //pieceProcess.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊
-                pieceProcess.QualityState = WorkPieceInfoManager.GetQualityStateValue(info.QualityState);
+                if (isNeedUpdateQualityState)
+                {
+                    //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+                    pieceProcess.QualityState = WorkPieceInfoManager.GetQualityStateValue(info.QualityState);
 
-                //璧嬪�间笉鍚堟牸鍘熷洜
-                //TODO:闇�瑕侀厤缃甇P80璐ㄩ噺涓嶅悎鏍肩殑鍘熷洜鏄暐锛燂紵
-                WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess);
+                    //璧嬪�间笉鍚堟牸鍘熷洜
+                    //TODO:闇�瑕侀厤缃甇P80璐ㄩ噺涓嶅悎鏍肩殑鍘熷洜鏄暐锛燂紵
+                    WorkPieceInfoManager.SetQualityNoOk_WorkPieceProcess(logMiddle, ref pieceProcess);
+                }
 
                 pieceProcess.EndTime = file.LastWriteTime;//涓嬬嚎鏃堕棿鏀逛负 鏂囦欢鏈�鍚庝慨鏀规椂闂� 銆怑ditby shaocx,2024-06-17銆�
 
@@ -487,7 +514,8 @@
                             WorkingProcedureCurrent = query_WorkingProcedureCurrent,
                             EquipmentID = _EquipmentId,
                             CreatedTime = DateTime.Now,
-                            CreatedUserName = _DataCapturePointCode
+                            CreatedUserName = _DataCapturePointCode,
+                            DataCapturePointCname = _DataCapturePointName
                         };
                     }
 
@@ -512,13 +540,17 @@
                         isAdd_WorkPieceProcess = true;
                         process = new WorkPieceProcess();
                         process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
+                        QualityStateHelper.ResetQualityNoOkForNewProcess(ref process);
                         process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                         process.WorkingProcedureCurrent = query_WorkingProcedureCurrent;
                         process.StartTime = DateTimeHelper.GetDateTime();
                         process.EndTime = file.LastWriteTime;
                         process.CreatedUserName = _DataCapturePointCode;
+                        process.JiaJuGongWei = "";
+                        process.DataCapturePointCname = DataCapturePointCname;
                         process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                         process.UpdatedUserName = _DataCapturePointCode;
+                        process.UpdateDataCapturePointCname = DataCapturePointCname;
                         process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                         process.OperationType = OperationType.鐢熶骇.ToString();
                         process.Remarks = "";

--
Gitblit v1.9.3