From 09a12e1094e90fe83c5578de64b56e9237c60507 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 05 9月 2024 14:13:33 +0800
Subject: [PATCH] 代码回归

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs |  246 ++++++++++++++++++++++++++----------------------
 1 files changed, 133 insertions(+), 113 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 8ebde78..689b0c9 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -183,7 +183,7 @@
                                 info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
                             }
                             else
-                            {
+                            {//OP05宸ュ簭
                                 info.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
                                 info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
                             }
@@ -203,20 +203,29 @@
                                 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 ((info.WorkingProcedureCurrent.Equals("OP05") && isAddWorkPieceInfo == false))
+                        {
+                            //濡傛灉鏄疧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;
@@ -274,116 +283,127 @@
                             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)
-                        {
-                            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)
+                            //db.Database.AutoTransactionsEnabled = false;// 鍚屼竴涓猄aveChanges榛樿浜嬪姟锛� 鍏抽棴榛樿浜嬪姟锛�... 濂藉儚涓嶈兘鐢ㄥ晩锛屽悗闈㈠啀鐮旂┒鍚�
+                            if (isAddWorkPieceInfo)
                             {
-                                plcFlag = false;
-                                message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : "";
-                                message += info.QualityState != (int)QualityStateEnum.OK ? "璐ㄩ噺涓嶇鍚�" : "";
+                                db.WorkPieceInfo.Add(info);
                             }
-                            ////鍙嶉缁橮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}");
-                            //}
+                            else
+                            {//涓嶇‘瀹歩nfo鏄洿鎺ヤ細淇敼杩樻槸闇�瑕佸啀娆℃煡璇紝寰呮祴璇�
+                             //info.Remarks = "淇敼锛屽叿浣撲慨鏀归�昏緫寰呭畾";
+                            }
 
-                            //#region 鍙嶉PLC
+                            #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);
 
-                            //bool checkQualityInfoCompleteFlag = false;
-                            //bool plcFlag = true;//鍙嶉缁橮LC鐨勬爣璁�
-                            //string message = "";
-                            //checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
+                                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}");
+                                //}
 
-                            //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
+                                //#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);//鏇存柊鍒�鍏峰鍛戒俊鎭�
                         }
                         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 ?? "绌�"}]鏃跺紓甯革細");
+                            loginfo.Remarks = $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
+                            Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
 
+                        }
                     }
                 }
                 catch (Exception e)
@@ -983,7 +1003,7 @@
                         cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
                         if (cur_db_info == null || cur_db_info.WorkPieceID.Length < 1)
                         {//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
-                            Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
+                            Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢鎺ㄥ嚭NOOK宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
                             return;
                         }
                         else

--
Gitblit v1.9.3