From e4f89a92209ebca77240edaa3b78f66eb6e4b3d5 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 06 9月 2024 08:58:43 +0800
Subject: [PATCH] 修复为null的问题

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs |  153 ++++++++++++++++++++++++---------------------------
 1 files changed, 72 insertions(+), 81 deletions(-)

diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
index 0a641a4..b0bf5f0 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -183,13 +183,14 @@
                                 info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                             }
                             else
-                            {
+                            {//OP05宸ュ簭
                                 info.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
                                 info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
                             }
                             info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
                             info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
                             info.CreatedUserName = loginfo.MonitoringPoint;
+                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//宸ュ簭璧嬪��
                             SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref info, loginfo.DataCapturePointCname);
                             info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
                             info = ParseQRCode(info);
@@ -197,46 +198,40 @@
                         }
                         else
                         {
-                            if (info.WorkingProcedureCurrent.Equals("OP05"))
-                            {
-                                loginfo.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"} OP05宸ュ簭閲嶅璇诲彇浜�";
-                                return;
-                            }
+                            //瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌 銆怑ditby shaocx,2024-09-06銆�
+                            //if (info.WorkingProcedureCurrent.Equals("OP05"))
+                            //{
+                            //    loginfo.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"} OP05宸ュ簭閲嶅璇诲彇浜�";
+                            //    return;
+                            //}
                         }
-                        info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
-                        info.WorkingProcedureEndTime = null;
-                        info.WorkPieceState = (int)WorkPieceState.WIP;
-                        info.EquipmentID = loginfo.EquipmentID;
-                        info.QualityStateUpdateUser = loginfo.UpdatedUserName;
-                        info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
-                        info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
-                        info.UpdatedUserName = loginfo.MonitoringPoint;
-                        SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, loginfo.DataCapturePointCname);
-                        info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
-                        info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
-                        info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
-                        info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
-                        info.Remarks = $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎";
+                        if ((loginfo.WorkingProcedure.Equals("OP05") && isAddWorkPieceInfo == false))
+                        {//瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌
+                            //濡傛灉鏄疧P05鐨勶紝骞朵笖鏄� 涓嶉渶瑕佹柊澧� 琛╓orkPieceInfo锛岄偅涔堝氨涓嶉渶瑕佹洿鏂拌〃 WorkPieceInfo
+                        }
+                        else
+                        {
+                            info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
+                            info.WorkingProcedureEndTime = null;
+                            info.WorkPieceState = (int)WorkPieceState.WIP;
+                            info.EquipmentID = loginfo.EquipmentID;
+                            info.QualityStateUpdateUser = loginfo.UpdatedUserName;
+                            info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
+                            info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
+                            info.UpdatedUserName = loginfo.MonitoringPoint;
+                            SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, loginfo.DataCapturePointCname);
+                            info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+
+                            info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
+                            info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
+                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//宸ュ簭璧嬪��
+                            info.Remarks = $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎";
+                        }
+
 
                         //淇涓� op35 鍚屼竴涓欢 涓嬬嚎鏃堕棿璺熶笅涓�涓笂绾挎椂闂翠竴妯′竴鏍风殑闂  銆怑ditby shaocx,2024-08-27銆�
                         var isNeedAddNewProcess = true;
-                        var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && !o.OperationType.Equals("SPC") && (o.EndTime == null || o.EndTime <= DateTime.MinValue)).OrderByDescending(o => o.StartTime).FirstOrDefault();
-                        if (pro != null && pro.WorkPieceID.Length > 1)
-                        {
-                            if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure)
-                            {//琛ㄧず宸ュ簭鐩稿悓
-                                isNeedAddNewProcess = false;
-                                pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
-                            }
-                            else
-                            {
-                                pro.EndTime = DateTimeHelper.GetDateTime();
-                                pro.UpdatedUserName = loginfo.MonitoringPoint;
-                                pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
-                                pro.UpdatedTime = DateTimeHelper.GetDateTime();
-                                pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
-                            }
-                        }
+
                         //鐗规畩澶勭悊OP05涓婄嚎锛屽洜涓轰粬鏄牴鎹枃鏈垪琛ㄥ唴瀹逛笂绾跨殑 銆怑ditby shaocx,2024-09-03銆�
                         if (loginfo.WorkingProcedure.Equals("OP05"))
                         {
@@ -244,6 +239,26 @@
                             if (op05Proccss != null)
                             {
                                 isNeedAddNewProcess = false;//涓嶉渶瑕佹柊澧炰簡
+                            }
+                        }
+                        else
+                        {
+                            var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && !o.OperationType.Equals("SPC") && (o.EndTime == null || o.EndTime <= DateTime.MinValue)).OrderByDescending(o => o.StartTime).FirstOrDefault();
+                            if (pro != null && pro.WorkPieceID.Length > 1)
+                            {
+                                if (pro.WorkingProcedureCurrent == loginfo.WorkingProcedure)
+                                {//琛ㄧず宸ュ簭鐩稿悓
+                                    isNeedAddNewProcess = false;
+                                    pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
+                                }
+                                else
+                                {
+                                    pro.EndTime = DateTimeHelper.GetDateTime();
+                                    pro.UpdatedUserName = loginfo.MonitoringPoint;
+                                    pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
+                                    pro.UpdatedTime = DateTimeHelper.GetDateTime();
+                                    pro.Remarks = "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
+                                }
                             }
                         }
                         if (isNeedAddNewProcess)
@@ -274,12 +289,22 @@
                             new_process.Remarks = "";
                             new_process.MyRemarks = "璇荤爜涓婄嚎鏃讹紝姣忔鎵弿涓婄嚎閮芥彃鍏ヨ拷婧〃";
                             if (loginfo.WorkingProcedure.Equals("OP05"))
-                            {
+                            {//鐗规畩澶勭悊OP05宸ュ簭
                                 new_process.EndTime = new_process.StartTime;
+
+                                //濡傛灉宸茬粡瀛樺湪鍏朵粬宸ュ簭锛岄偅涔堝氨蹇呴』瑕佹寜鐓у叾浠栧伐搴忕殑鏃堕棿寰�鍓嶆帹鏁版嵁 銆怑ditby shaocx,2024-09-05銆�
+                                var op05OtherProccss = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID).OrderBy(x => x.StartTime).FirstOrDefault();
+                                if (op05OtherProccss != null)
+                                {//璇存槑鏈夛紝閭d箞鏃堕棿灏辨寜鐓ц繖涓椂闂村線鍓嶆帹
+                                    var _time = op05OtherProccss.StartTime.AddHours(-1);
+                                    new_process.StartTime = _time;
+                                    new_process.EndTime = _time;
+                                    new_process.CreatedTime = _time;
+                                    new_process.UpdatedTime = _time;
+                                }
                             }
                             db.WorkPieceProcess.Add(new_process);
                         }
-
                         //db.Database.AutoTransactionsEnabled = false;// 鍚屼竴涓猄aveChanges榛樿浜嬪姟锛� 鍏抽棴榛樿浜嬪姟锛�... 濂藉儚涓嶈兘鐢ㄥ晩锛屽悗闈㈠啀鐮旂┒鍚�
                         if (isAddWorkPieceInfo)
                         {
@@ -291,6 +316,7 @@
                         }
 
                         #region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC
+                        /*
                         if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC)
                         {
                             bool checkQualityInfoCompleteFlag = false;
@@ -304,43 +330,7 @@
                                 message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : "";
                                 message += info.QualityState != (int)QualityStateEnum.OK ? "璐ㄩ噺涓嶇鍚�" : "";
                             }
-                            ////鍙嶉缁橮LC锛岋紙鍐欏叆鐐瑰緟瀹氾級
-                            //MessageModel fr = null;
-                            //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool"));
-                            //if (fr.result)
-                            //{
-                            //    Log4NetHelper.WriteInfoLog(type, $" 宸ヤ欢{info.WorkPieceID} {loginfo.WorkingProcedure}宸ュ簭鍙嶉缁橮LC 鎴愬姛锛� 鍑虹幇 {message}");
-                            //}
-                            //else
-                            //{
-                            //    Log4NetHelper.WriteErrorLog(type, $" 宸ヤ欢{info.WorkPieceID} {loginfo.WorkingProcedure}宸ュ簭鍙嶉缁橮LC 澶辫触锛� 鍑虹幇 {message} 锛屽け璐ュ師鍥狅細{fr.resMsg}");
-                            //}
-
-                            //#region 鍙嶉PLC
-
-                            //bool checkQualityInfoCompleteFlag = false;
-                            //bool plcFlag = true;//鍙嶉缁橮LC鐨勬爣璁�
-                            //string message = "";
-                            //checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
-
-                            //if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityState.OK)
-                            //{
-                            //    plcFlag = false;
-                            //    message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : "";
-                            //message += info.QualityState != (int)QualityState.OK ? "璐ㄩ噺涓嶇鍚�" : "";
-                            //}
-                            ////鍙嶉缁橮LC锛岋紙鍐欏叆鐐瑰緟瀹氾級
-                            //MessageModel fr = null;
-                            //fr = plcService.WriteValuePoint("", "", plcFlag, PLCManger.GetTypeForString("bool"));
-                            //if (fr.result)
-                            //{
-                            //    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" 宸ヤ欢{wplog.WorkPieceID} {WorkingProcedure}宸ュ簭鍙嶉缁橮LC 鎴愬姛锛� 鍑虹幇 {message}");
-                            //}
-                            //else
-                            //{
-                            //    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" 宸ヤ欢{wplog.WorkPieceID} {WorkingProcedure}宸ュ簭鍙嶉缁橮LC 澶辫触锛� 鍑虹幇 {message} 锛屽け璐ュ師鍥狅細{fr.resMsg}");
-                            //}
-                            //#endregion
+                            
                         }
                         else
                         {//璇荤爜瀹屾垚鑻ュ伐浠惰川閲忎笉绗﹀悎鎴栧彂鐢熻烦搴忥紝涓嶇敤绠¤澶囨槸鍚︽妸宸ヤ欢鏀捐繃鍘伙紝鏁伴噰绯荤粺閮戒笉鍙樻洿褰撳墠宸ュ簭锛屽弽棣堣澶嘝LC宸ヤ欢涓嶇鍚堬紝
@@ -348,6 +338,7 @@
 
                             info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
                         }
+                        //*/
                         #endregion
 
                         #region 鏇存柊璁惧瀹炴椂琛�
@@ -1929,7 +1920,7 @@
                         .OrderByDescending(o => o.WarnStartTime).FirstOrDefault();
                     if (loginfo.IsMessage)
                     {//鑻ユ湁鍛婅锛屽鏋滄湁璁惧鐘舵�佸彉鏇达紝鑲畾鎻掑叆锛屾澶勫彧淇敼鍗冲彲
-                        //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔�  ps锛氭澶勫厛涓嶇锛�
+                     //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔�  ps锛氭澶勫厛涓嶇锛�
                         infolog.WarnStartTime = DateTimeHelper.GetDateTime();
                         infolog.WarnType = alertall;
                         infolog.Warnmsg = warnmsg;
@@ -2279,10 +2270,10 @@
                         info.UpdatedTime = DateTimeHelper.GetDateTime();
                         info.UpdatedUserName = threadinfo.Threadcode;
                         info.Threadlastmodifytime = threadinfo.Threadlastmodifytime > DateTime.MinValue ? threadinfo.Threadlastmodifytime : info.Threadlastmodifytime;//濡傛灉鏈変紶鍙傚垯鏇存柊
-                        //if (info.Threadstatue==1)
-                        //{
-                        //    info.Threadlastmodifytime = DateTimeHelper.GetDateTime();//鏈�鏂拌窇鍒版暟鎹�
-                        //}
+                                                                                                                                                                      //if (info.Threadstatue==1)
+                                                                                                                                                                      //{
+                                                                                                                                                                      //    info.Threadlastmodifytime = DateTimeHelper.GetDateTime();//鏈�鏂拌窇鍒版暟鎹�
+                                                                                                                                                                      //}
                     }
                     db.SaveChanges();
                 }

--
Gitblit v1.9.3