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 |  237 ++++++++++++++++++++++++++---------------------------------
 1 files changed, 104 insertions(+), 133 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 689b0c9..b0bf5f0 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -190,6 +190,7 @@
                             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,14 +198,15 @@
                         }
                         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;
+                            //}
                         }
-                        if ((info.WorkingProcedureCurrent.Equals("OP05") && isAddWorkPieceInfo == false))
-                        {
+                        if ((loginfo.WorkingProcedure.Equals("OP05") && isAddWorkPieceInfo == false))
+                        {//瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌
                             //濡傛灉鏄疧P05鐨勶紝骞朵笖鏄� 涓嶉渶瑕佹柊澧� 琛╓orkPieceInfo锛岄偅涔堝氨涓嶉渶瑕佹洿鏂拌〃 WorkPieceInfo
                         }
                         else
@@ -222,30 +224,14 @@
 
                             info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
                             info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
-                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
+                            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"))
                         {
@@ -253,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)
@@ -298,112 +304,77 @@
                                 }
                             }
                             db.WorkPieceProcess.Add(new_process);
-
-                            //db.Database.AutoTransactionsEnabled = false;// 鍚屼竴涓猄aveChanges榛樿浜嬪姟锛� 鍏抽棴榛樿浜嬪姟锛�... 濂藉儚涓嶈兘鐢ㄥ晩锛屽悗闈㈠啀鐮旂┒鍚�
-                            if (isAddWorkPieceInfo)
-                            {
-                                db.WorkPieceInfo.Add(info);
-                            }
-                            else
-                            {//涓嶇‘瀹歩nfo鏄洿鎺ヤ細淇敼杩樻槸闇�瑕佸啀娆℃煡璇紝寰呮祴璇�
-                             //info.Remarks = "淇敼锛屽叿浣撲慨鏀归�昏緫寰呭畾";
-                            }
-
-                            #region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC
-                            if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC)
-                            {
-                                bool checkQualityInfoCompleteFlag = false;
-                                bool plcFlag = true;//鍙嶉缁橮LC鐨勬爣璁�
-                                string message = "";
-                                checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, loginfo, type);
-
-                                if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityStateEnum.OK)
-                                {
-                                    plcFlag = false;
-                                    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宸ヤ欢涓嶇鍚堬紝
-                             //鑻ュ伐搴忓悗缁敹闆嗙偣鏀跺埌鐩稿叧宸ヤ欢淇℃伅鍐嶅彉鏇村綋鍓嶅伐搴忥紝  浣嗚川閲忎俊鎭笉鍙�
-
-                                info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
-                            }
-                            #endregion
-
-                            #region 鏇存柊璁惧瀹炴椂琛�
-
-                            bool isAddEquipmentCurrentMonitor = false;
-                            EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor();
-                            equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == loginfo.EquipmentID).FirstOrDefault();
-                            if (equinfo == null || equinfo.Id < 1)
-                            {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
-                                Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
-                                equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo);
-                                equinfo.OnlineTime = DateTime.Now;
-                                isAddEquipmentCurrentMonitor = true;
-                            }
-                            else
-                            {//鏇存柊宸ヤ欢
-                                equinfo.WorkPieceID = loginfo.WorkPieceID;
-                                equinfo.UpdatedUserName = loginfo.MonitoringPoint;
-                                equinfo.UpdatedTime = DateTime.Now;
-                                equinfo.OnlineTime = DateTime.Now;
-                            }
-                            if (isAddEquipmentCurrentMonitor)
-                            {
-                                equinfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-                                db.EquipmentCurrentMonitor.Add(equinfo);
-                            }
-                            #endregion
-                            //db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));
-                            db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
-                            //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭�
+                        }
+                        //db.Database.AutoTransactionsEnabled = false;// 鍚屼竴涓猄aveChanges榛樿浜嬪姟锛� 鍏抽棴榛樿浜嬪姟锛�... 濂藉儚涓嶈兘鐢ㄥ晩锛屽悗闈㈠啀鐮旂┒鍚�
+                        if (isAddWorkPieceInfo)
+                        {
+                            db.WorkPieceInfo.Add(info);
                         }
                         else
-                        {
-                            loginfo.Remarks = $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
-                            Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
-
+                        {//涓嶇‘瀹歩nfo鏄洿鎺ヤ細淇敼杩樻槸闇�瑕佸啀娆℃煡璇紝寰呮祴璇�
+                         //info.Remarks = "淇敼锛屽叿浣撲慨鏀归�昏緫寰呭畾";
                         }
+
+                        #region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC
+                        /*
+                        if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC)
+                        {
+                            bool checkQualityInfoCompleteFlag = false;
+                            bool plcFlag = true;//鍙嶉缁橮LC鐨勬爣璁�
+                            string message = "";
+                            checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, loginfo, type);
+
+                            if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityStateEnum.OK)
+                            {
+                                plcFlag = false;
+                                message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : "";
+                                message += info.QualityState != (int)QualityStateEnum.OK ? "璐ㄩ噺涓嶇鍚�" : "";
+                            }
+                            
+                        }
+                        else
+                        {//璇荤爜瀹屾垚鑻ュ伐浠惰川閲忎笉绗﹀悎鎴栧彂鐢熻烦搴忥紝涓嶇敤绠¤澶囨槸鍚︽妸宸ヤ欢鏀捐繃鍘伙紝鏁伴噰绯荤粺閮戒笉鍙樻洿褰撳墠宸ュ簭锛屽弽棣堣澶嘝LC宸ヤ欢涓嶇鍚堬紝
+                         //鑻ュ伐搴忓悗缁敹闆嗙偣鏀跺埌鐩稿叧宸ヤ欢淇℃伅鍐嶅彉鏇村綋鍓嶅伐搴忥紝  浣嗚川閲忎俊鎭笉鍙�
+
+                            info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
+                        }
+                        //*/
+                        #endregion
+
+                        #region 鏇存柊璁惧瀹炴椂琛�
+
+                        bool isAddEquipmentCurrentMonitor = false;
+                        EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor();
+                        equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == loginfo.EquipmentID).FirstOrDefault();
+                        if (equinfo == null || equinfo.Id < 1)
+                        {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
+                            Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
+                            equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo);
+                            equinfo.OnlineTime = DateTime.Now;
+                            isAddEquipmentCurrentMonitor = true;
+                        }
+                        else
+                        {//鏇存柊宸ヤ欢
+                            equinfo.WorkPieceID = loginfo.WorkPieceID;
+                            equinfo.UpdatedUserName = loginfo.MonitoringPoint;
+                            equinfo.UpdatedTime = DateTime.Now;
+                            equinfo.OnlineTime = DateTime.Now;
+                        }
+                        if (isAddEquipmentCurrentMonitor)
+                        {
+                            equinfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+                            db.EquipmentCurrentMonitor.Add(equinfo);
+                        }
+                        #endregion
+                        //db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));
+                        db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+                        //UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭�
+                    }
+                    else
+                    {
+                        loginfo.Remarks = $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
+                        Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+
                     }
                 }
                 catch (Exception e)
@@ -1949,7 +1920,7 @@
                         .OrderByDescending(o => o.WarnStartTime).FirstOrDefault();
                     if (loginfo.IsMessage)
                     {//鑻ユ湁鍛婅锛屽鏋滄湁璁惧鐘舵�佸彉鏇达紝鑲畾鎻掑叆锛屾澶勫彧淇敼鍗冲彲
-                        //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔�  ps锛氭澶勫厛涓嶇锛�
+                     //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔�  ps锛氭澶勫厛涓嶇锛�
                         infolog.WarnStartTime = DateTimeHelper.GetDateTime();
                         infolog.WarnType = alertall;
                         infolog.Warnmsg = warnmsg;
@@ -2299,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