From 61734fc304e8d890a6bf8715bee9be203e0af9f0 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 06 9月 2024 10:21:05 +0800
Subject: [PATCH] 入库优化
---
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 961 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 668 insertions(+), 293 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 058cdcd..b0bf5f0 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -1,4 +1,5 @@
-锘縰sing iWare_SCADA_BusinessLogical.Utils;
+锘縰sing HslCommunication.BasicFramework;
+using iWare_SCADA_BusinessLogical.Utils;
using iWare_SCADA_Model;
using iWare_SCADA_Model.MiddleModel;
using iWare_SCADA_Model.TableModel;
@@ -7,6 +8,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using System.Data.Entity.Validation;
using System.Diagnostics;
//using System.Data.Entity.Infrastructure;
using System.Linq;
@@ -21,32 +23,32 @@
{
public class WorkPieceInfoManager
{
- public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID)
- {
- using (DbModel db = new DbModel())
- {
- //鏌ヨ鎵�鏈�
- var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault();
- return query;
- }
- }
+ //public static WorkPieceInfo GetWorkPieceInfo(string WorkPieceID)
+ //{
+ // using (DbModel db = new DbModel())
+ // {
+ // //鏌ヨ鎵�鏈�
+ // var query = db.WorkPieceInfo.Where(o => o.WorkPieceID == WorkPieceID).FirstOrDefault();
+ // return query;
+ // }
+ //}
- public static long InsertWorkPieceInfo(WorkPieceInfo workPiece)
- {
- using (DbModel db = new DbModel())
- {
- db.WorkPieceInfo.Add(workPiece);
- db.SaveChanges();
- return workPiece.Id;
- }
- }
+ //public static long InsertWorkPieceInfo(WorkPieceInfo workPiece)
+ //{
+ // using (DbModel db = new DbModel())
+ // {
+ // db.WorkPieceInfo.Add(workPiece);
+ // db.SaveChanges();
+ // return workPiece.Id;
+ // }
+ //}
- public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
- {
- loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- return loginfo;
- }
+ //public static WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
+ //{
+ // loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+ // return loginfo;
+ //}
/// <summary>
/// 缁橶orkPieceLog涓婚敭绛夊叕鍏辩殑鐨勫睘鎬ц祴鍊�
@@ -149,7 +151,7 @@
}
catch (Exception ex)
{
- loginfo.Remarks = (loginfo.Remarks ?? "") + $"{loginfo.WorkPieceID ?? "绌�"}鍒�鍏峰鍛芥洿鏂版暟鎹紓甯竰ex.Message}";
+ loginfo.Remarks = $"{loginfo.WorkPieceID ?? "绌�"}鍒�鍏峰鍛芥洿鏂版暟鎹紓甯竰ex.Message}";
}
}
@@ -176,77 +178,133 @@
//EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
if (!loginfo.WorkingProcedure.Equals("OP05"))
{//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
- info.QualityState = (int)QualityState.Suspected;
+ info.QualityState = (int)QualityStateEnum.Suspected;
info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
}
else
- {
- info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊�
+ {//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);
isAddWorkPieceInfo = true;
}
else
{
- if (info.WorkingProcedureCurrent.Equals("OP05"))
- {
- loginfo.Remarks = (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;
- 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.Remarks ?? "" + $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎";
-
- 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 ((loginfo.WorkingProcedure.Equals("OP05") && isAddWorkPieceInfo == false))
+ {//瀛樺湪 琛� WorkPieceInfo鏈夛紝浣嗘槸 WorkPieceProcess杩欎釜宸ュ簭涓嶅瓨鍦ㄧ殑鎯呭喌
+ //濡傛灉鏄疧P05鐨勶紝骞朵笖鏄� 涓嶉渶瑕佹柊澧� 琛╓orkPieceInfo锛岄偅涔堝氨涓嶉渶瑕佹洿鏂拌〃 WorkPieceInfo
+ }
+ else
{
- pro.EndTime = DateTimeHelper.GetDateTime();
- pro.UpdatedUserName = loginfo.MonitoringPoint;
- pro.UpdatedTime = DateTimeHelper.GetDateTime();
- pro.Remarks = (pro.Remarks ?? "") + "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
- }
- //姣忔鎵弿涓婄嚎閮芥彃鍏ヨ拷婧〃
- WorkPieceProcess process = new WorkPieceProcess();
- process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
- process.StartTime = DateTimeHelper.GetDateTime();
+ 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);
- process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;
-
- if (process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString())
- { //鐗规畩澶勭悊OP70锛屽洜涓篛P70娌℃湁娴嬮噺锛岄粯璁ゅ悎鏍� [Editby shaocx,2024-07-03]
- process.QualityState = (int)QualityState.OK;
+ info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
+ info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
+ info.WorkingProcedureCurrent = loginfo.WorkingProcedure;//宸ュ簭璧嬪��
+ info.Remarks = $"{info.WorkingProcedureCurrent}宸ヤ欢涓婄嚎";
}
- process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- process.CreatedUserName = loginfo.MonitoringPoint;
- process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.UpdatedUserName = loginfo.MonitoringPoint;
- process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.OperationType = OperationType.鐢熶骇.ToString();
- process.Remarks = "";
+
+ //淇涓� op35 鍚屼竴涓欢 涓嬬嚎鏃堕棿璺熶笅涓�涓笂绾挎椂闂翠竴妯′竴鏍风殑闂 銆怑ditby shaocx,2024-08-27銆�
+ var isNeedAddNewProcess = true;
+
+ //鐗规畩澶勭悊OP05涓婄嚎锛屽洜涓轰粬鏄牴鎹枃鏈垪琛ㄥ唴瀹逛笂绾跨殑 銆怑ditby shaocx,2024-09-03銆�
if (loginfo.WorkingProcedure.Equals("OP05"))
{
- process.EndTime = process.StartTime;
+ var op05Proccss = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure).FirstOrDefault();
+ if (op05Proccss != null)
+ {
+ isNeedAddNewProcess = false;//涓嶉渶瑕佹柊澧炰簡
+ }
}
- db.WorkPieceProcess.Add(process);
+ 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)
+ {
+ //姣忔鎵弿涓婄嚎閮芥彃鍏ヨ拷婧〃
+ WorkPieceProcess new_process = new WorkPieceProcess();
+ new_process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
+ QualityStateHelper.ResetQualityNoOkForNewProcess(ref new_process);
+ new_process.StartTime = DateTimeHelper.GetDateTime();
+ //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+ //process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊
+ new_process.QualityState = GetQualityStateValue(info.QualityState);
+
+ if (new_process.WorkingProcedureCurrent == WorkingProcedureForHMI.OP70.ToString())
+ { //鐗规畩澶勭悊OP70锛屽洜涓篛P70娌℃湁娴嬮噺锛岄粯璁ゅ悎鏍� [Editby shaocx,2024-07-03]
+ new_process.QualityState = (int)QualityStateEnum.OK;//榛樿鍚堟牸锛孫P70榛樿鏄悎鏍�
+ }
+
+ new_process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+ new_process.CreatedUserName = loginfo.MonitoringPoint;
+ new_process.DataCapturePointCname = loginfo.DataCapturePointCname;
+ new_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ new_process.UpdatedUserName = loginfo.MonitoringPoint;
+ new_process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
+ new_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ new_process.OperationType = OperationType.鐢熶骇.ToString();
+ 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)
{
@@ -258,6 +316,7 @@
}
#region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC
+ /*
if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC)
{
bool checkQualityInfoCompleteFlag = false;
@@ -265,49 +324,13 @@
string message = "";
checkQualityInfoCompleteFlag = WorkPieceInfoManager.CheckQualityInfoComplete(info, loginfo, type);
- if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityState.OK)
+ if (!checkQualityInfoCompleteFlag || info.QualityState != (int)QualityStateEnum.OK)
{
plcFlag = false;
message = !checkQualityInfoCompleteFlag ? "璺冲簭锛�" : "";
- message += info.QualityState != (int)QualityState.OK ? "璐ㄩ噺涓嶇鍚�" : "";
+ 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宸ヤ欢涓嶇鍚堬紝
@@ -315,6 +338,7 @@
info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
}
+ //*/
#endregion
#region 鏇存柊璁惧瀹炴椂琛�
@@ -348,20 +372,46 @@
}
else
{
- loginfo.Remarks = (loginfo.Remarks ?? "") + $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
+ loginfo.Remarks = $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
catch (Exception e)
{
- loginfo.Remarks = (loginfo.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+ loginfo.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+ Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細", e);
}
finally
{
loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
db.WorkPieceLog.Add(loginfo);
- db.SaveChanges();
+
+ //淇濆瓨鏁版嵁搴撶殑寮傚父鎹曟崏 [Editby shaocx,2024-08-29]
+ try
+ {
+ db.SaveChanges();
+ }
+ catch (DbEntityValidationException exception)
+ {
+ var errorMessages =
+ exception.EntityValidationErrors
+ .SelectMany(validationResult => validationResult.ValidationErrors)
+ .Select(m => m.ErrorMessage);
+ var fullErrorMessage = string.Join(", ", errorMessages);
+ var exceptionMessage = string.Concat(exception.Message, " 楠岃瘉寮傚父娑堟伅鏄細", fullErrorMessage);
+
+ Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}],淇濆瓨鏁版嵁搴撴椂寮傚父锛�" + exceptionMessage, exception);
+
+ throw new DbEntityValidationException(exceptionMessage, exception.EntityValidationErrors);
+ }
+ catch (Exception)
+ {
+
+ throw;
+ }
+
+
}
@@ -467,6 +517,9 @@
/// <param name="type"></param>
public static void QualityInfoComplete(WorkPieceLogMiddle logMiddle, LogType type)
{
+ //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+ WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
+
//姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛�
//鎻掑叆璐ㄩ噺鐩稿叧琛≦ualityDataInfo
@@ -491,18 +544,19 @@
//EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
if (!logMiddle.WorkingProcedure.Equals("OP05"))
{//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
- pieceInfo.QualityState = (int)QualityState.Suspected;
+ pieceInfo.QualityState = (int)QualityStateEnum.Suspected;
pieceInfo.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
pieceInfo.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
}
else
{
- pieceInfo.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊�
+ pieceInfo.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
}
pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
- pieceInfo.CreatedUserName = logMiddle.MonitoringPoint;
+ pieceInfo.CreatedUserName = ResetUpdatedUserName(logMiddle);
+ SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref pieceInfo, logMiddle.DataCapturePointCname);
pieceInfo.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
pieceInfo.WorkingProcedureEndTime = null;
@@ -513,7 +567,7 @@
}
else
{
- loginfo2.Remarks = loginfo2.Remarks ?? "" + $"|宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
+ loginfo2.Remarks = $"|宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
return;
}
@@ -547,7 +601,7 @@
else
{//鏇存柊宸ヤ欢
equinfo.WorkPieceID = logMiddle.WorkPieceID;
- equinfo.UpdatedUserName = logMiddle.MonitoringPoint;
+ equinfo.UpdatedUserName = ResetUpdatedUserName(logMiddle);
equinfo.UpdatedTime = DateTime.Now;
equinfo.OnlineTime = DateTime.Now;
}
@@ -559,24 +613,27 @@
#endregion
//UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭�
}
+
+ pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure;//鏇存柊褰撳墠宸ュ簭 銆怑ditby shaocx,2024-09-03銆�
pieceInfo.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝�
pieceInfo.EquipmentID = logMiddle.EquipmentID;
pieceInfo.QualityStateUpdateUser = logMiddle.UpdatedUserName;
pieceInfo.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
pieceInfo.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
- pieceInfo.Remarks = pieceInfo.Remarks ?? "" + $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�";
- pieceInfo.UpdatedUserName = logMiddle.MonitoringPoint;
+ pieceInfo.Remarks = $"{logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�";
+ pieceInfo.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+ SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref pieceInfo, logMiddle.DataCapturePointCname);
pieceInfo.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
if (!(pieceInfo.WorkingProcedureStartTime.HasValue && pieceInfo.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
{//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪��
pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
}
- pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
+ pieceInfo.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
- if (!pieceInfo.QualityState.Equals(((int)QualityState.OK).ToString()))
+ if (!pieceInfo.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
{
pieceInfo.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納pieceInfo.QualityState}";
}
@@ -633,10 +690,10 @@
qualityData.OP30QualityStateCH3 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH3 = DateTimeHelper.GetDateTime();
- if (qualityData.OP30QualityStateCH3 == ((int)QualityState.NG).ToString())
+ if (qualityData.OP30QualityStateCH3 == ((int)QualityStateEnum.NG).ToString())
{
- logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩澶�;
- logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩澶�.ToString();
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊.ToString();
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
}
@@ -647,10 +704,10 @@
qualityData.OP30QualityStateCH4 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH4 = DateTimeHelper.GetDateTime();
- if (qualityData.OP30QualityStateCH4 == ((int)QualityState.NG).ToString())
+ if (qualityData.OP30QualityStateCH4 == ((int)QualityStateEnum.NG).ToString())
{
- logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╁ぇ;
- logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╁ぇ.ToString();
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�.ToString();
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
}
@@ -661,10 +718,10 @@
qualityData.OP30QualityStateCH5 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH5 = DateTimeHelper.GetDateTime();
- if (qualityData.OP30QualityStateCH5 == ((int)QualityState.NG).ToString())
+ if (qualityData.OP30QualityStateCH5 == ((int)QualityStateEnum.NG).ToString())
{
- logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╁ぇ;
- logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╁ぇ.ToString();
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�.ToString();
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
}
@@ -675,10 +732,10 @@
qualityData.OP30QualityStateCH6 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH6 = DateTimeHelper.GetDateTime();
- if (qualityData.OP30QualityStateCH6 == ((int)QualityState.NG).ToString())
+ if (qualityData.OP30QualityStateCH6 == ((int)QualityStateEnum.NG).ToString())
{
- logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╁ぇ;
- logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╁ぇ.ToString();
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�.ToString();
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
}
@@ -713,49 +770,73 @@
qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+ var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID
+ //淇锛氭煡璇㈢殑宸ュ簭鏄綋鍓嶇嚎绋嬬殑宸ュ簭锛岃�屼笉鏄綋鍓嶆暟鎹殑宸ュ簭 銆怑ditby shaocx,2024-09-03銆�
+ //&& o.WorkingProcedureCurrent == pieceInfo.WorkingProcedureCurrent
+ && o.WorkingProcedureCurrent == logMiddle.WorkingProcedure
+ && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
if (pro == null || pro.WorkPieceID.Length < 1 || logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
{// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲�
- //涓婄嚎鏄瘡娆¢兘鎻掑叆
+ //涓婄嚎鏄瘡娆¢兘鎻掑叆
+
+ WorkPieceProcess process_05 = WorkPieceProcessHelper.CreateWorkPieceProcessForOP05(logMiddle, db, pieceInfo);
+ if (process_05 != null)
+ {//鍒涘缓OP05宸ュ簭锛屽綋娌℃湁05宸ュ簭鏃�,鎵嶅垱寤� 銆怑ditby shaocx,2024-08-29銆�
+ db.WorkPieceProcess.Add(process_05);
+ }
WorkPieceProcess process = new WorkPieceProcess();
process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(pieceInfo);
+ QualityStateHelper.ResetQualityNoOkForNewProcess(ref process);
process.StartTime = DateTimeHelper.GetDateTime();
- process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK;
+
+ //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+ //process.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊
+ process.QualityState = WorkPieceInfoManager.GetQualityStateValue(pieceInfo.QualityState);
+
+
//璁板綍璐ㄩ噺涓嶅悎鏍煎師鍥� 銆怑ditby shaocx,2024-06-26銆�
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceProcess(logMiddle, ref process);
process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- process.CreatedUserName = logMiddle.MonitoringPoint;
+ process.CreatedUserName = ResetUpdatedUserName(logMiddle);
+ process.DataCapturePointCname = logMiddle.DataCapturePointCname;
process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.UpdatedUserName = logMiddle.MonitoringPoint;
+ process.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+ process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
process.OperationType = OperationType.鐢熶骇.ToString();
process.QualityDataInfoID = qualityData.Id;
process.Remarks = "";
+ process.MyRemarks = "璐ㄩ噺妫�娴嬪畬鎴愭椂锛屽鏋滄壘涓嶅埌灏辨柊寤�";
db.WorkPieceProcess.Add(process);
}
else
{//鍏朵粬鐨勯兘鍙槸淇敼
pro.QualityDataInfoID = qualityData.Id;
- pro.UpdatedUserName = logMiddle.MonitoringPoint;
+ pro.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+ pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
pro.UpdatedTime = DateTimeHelper.GetDateTime();
- pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9;
+
+ //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+ //pro.QualityState = pieceInfo.QualityState.HasValue ? pieceInfo.QualityState.Value : 9;
+ pro.QualityState = WorkPieceInfoManager.GetQualityStateValue(pieceInfo.QualityState);
+
//璧嬪�间笉鍚堟牸鍘熷洜
SetQualityNoOk_WorkPieceProcess(logMiddle, ref pro);
//TODO:鍒ゆ柇濡傛灉鏄�60宸ュ簭锛岄偅涔堝氨瑕佹洿鏂皃ro琛ㄧ殑鍒涘缓浜轰负loginfo.MonitoringPoint 銆怑ditby shaocx,2024-06-05銆�
if (logMiddle.WorkingProcedure == "OP60")
{
- pro.CreatedUserName = logMiddle.MonitoringPoint;
-
+ pro.CreatedUserName = ResetUpdatedUserName(logMiddle);
+ pro.DataCapturePointCname = logMiddle.DataCapturePointCname;
}
}
if (logMiddle.QualityType != null && logMiddle.QualityType.Equals(QualityType.SPC.ToString()))
{//SPC鍙嶉锛�
- if (logMiddle.QualityState != (int)QualityState.OK)
+ if (logMiddle.QualityState != (int)QualityStateEnum.OK)
{
//褰撴煇鍒板伐搴忔娴嬪埌涓嶅悎鏍煎伐浠舵椂锛屼粠璇ュ伐浠跺姞宸ュ畬鎴愭椂鍒诲墠鎸囧畾鏃堕棿璧疯嚦鎶ユ涓嶅悎鏍兼椂闂存锛岀郴缁熷皢璇ュ伐浠剁殑鏈�鍚庡姞宸ュ伐搴忓湪璇ユ椂闂存鍐呭姞宸ョ殑鎵�鏈夊伐浠躲�佹鍦ㄥ姞宸ョ殑宸ヤ欢銆佽宸ュ簭鍏ュ彛澶勭殑绗竴涓伐浠跺叏閮ㄦ爣璁颁负鐤戜技鐘舵�侊紝鐢变汉宸ュ妫�宸ヤ欢骞朵慨鏀圭姸鎬侊紝骞舵敮鎸佹壒閲忓彉鏇淬��
//绛斿锛氬湪绾挎祴閲忎笉闇�瑕佽蛋杩欎釜娴佺▼锛屽彧鏈塖PC鎶芥鎵嶉渶瑕侊紝闇�瑕佹妸杩欐椂闂存鐨勫伐浠跺叏閮ㄧ疆涓虹枒浼硷紝鍝�曟槸宸插畬鎴愬伐浠�
@@ -773,24 +854,107 @@
}
else
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{logMiddle.WorkPieceID ?? "绌�"}寮傚父";
+ loginfo2.Remarks = $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{logMiddle.WorkPieceID ?? "绌�"}寮傚父";
Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
catch (Exception ex)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}";
- Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+ loginfo2.Remarks = $"璐ㄩ噺妫�娴嬪畬鎴�,鏇存柊鏁版嵁寮傚父{ex.Message}";
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴� 宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細" + ex.Message, ex);
}
finally
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
+ loginfo2.Remarks = $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
db.SaveChanges();
}
}
}
+
+ /// <summary>
+ /// 璐ㄩ噺妫�娴嬪畬鎴�-OP70涓撶敤
+ /// </summary>
+ /// <param name="logMiddle"></param>
+ /// <param name="type"></param>
+ public static void QualityInfoCompleteForOP70(WorkPieceLogMiddle logMiddle, LogType type)
+ {
+ if (string.IsNullOrEmpty(logMiddle.QualityOP70To1) && string.IsNullOrEmpty(logMiddle.QualityOP70To2) && string.IsNullOrEmpty(logMiddle.QualityOP70To3))
+ {
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶娓呮礂鏈烘暟鎹� 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鑾峰彇鐨勪笁涓�奸兘鏄┖鐨勶紝涓嶅鐞嗚繑鍥�");
+ return;
+ }
+ using (DbModel db = new DbModel())
+ {
+ try
+ {
+ bool isAdd = false;
+ if (logMiddle.WorkPieceID.Length == 22)
+ {
+ var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
+ if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
+ {//鎻掑叆QualityDataInfo琛�
+ isAdd = true;
+ qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
+ }
+
+ qualityData.QualityStateUpdateUser = "OP7009";
+ qualityData.QualityReceiveTime = DateTime.Now;
+
+ //鐗规畩澶勭悊OP70鐨勮川閲忔暟鎹�
+ if (string.IsNullOrEmpty(qualityData.QualityOP70To1) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To1)))
+ {
+ qualityData.QualityOP70To1 = logMiddle.QualityOP70To1;
+ }
+ if (string.IsNullOrEmpty(qualityData.QualityOP70To2) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To2)))
+ {
+ qualityData.QualityOP70To2 = logMiddle.QualityOP70To2;
+ }
+ if (string.IsNullOrEmpty(qualityData.QualityOP70To3) && !string.IsNullOrEmpty(SystemHelper.GetStrForQualityOP70(logMiddle.QualityOP70To3)))
+ {
+ qualityData.QualityOP70To3 = logMiddle.QualityOP70To3;
+ }
+
+
+ db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織
+
+ if (isAdd)
+ {
+ db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
+ }
+ db.SaveChanges();//淇濆瓨鏁版嵁
+ }
+ else
+ {
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶娓呮礂鏈烘暟鎹� 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+
+ }
+ }
+ catch (Exception ex)
+ {
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶娓呮礂鏈烘暟鎹� 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細", ex);
+ }
+ finally
+ {
+ }
+ }
+ }
+
+ /// <summary>
+ /// 璧嬪�� 淇敼浜� 銆怑ditby shaocx,2024-07-05銆�
+ /// </summary>
+ /// <param name="logMiddle"></param>
+ /// <returns></returns>
+ public static string ResetUpdatedUserName(WorkPieceLogMiddle logMiddle)
+ {
+ if (logMiddle.MonitoringPoint.Equals("OP1003"))
+ {//鍥犱负OP10鍜孫P40鏄竴鍙版満鍣紝OP1003涓撻棬鏄疧P40娴嬮噺鐨勩��
+ return "OP4003";
+ }
+ return logMiddle.MonitoringPoint;
+ }
+
/// <summary>
/// 宸ヤ欢鎺ㄥ嚭NOOK
/// </summary>
@@ -806,54 +970,73 @@
{
if (loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22)
{
- WorkPieceInfo info = new WorkPieceInfo();
- info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
- if (info == null || info.WorkPieceID.Length < 1)
+ WorkPieceInfo cur_db_info = new WorkPieceInfo();
+ 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
{//鏇存柊琛╓orkPieceInfo
if (loginfo.WorkingProcedure.Equals("OP10"))
{
+ /*
info.WorkPieceCurrentPosition = info.WorkingProcedureCurrent + "NOOK";
- //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ //*/
+ //淇 閿欒璁板綍鎴怬P05鐨勯棶棰� 銆怑ditby shaocx,2024-08-26銆�
+ var set_WorkingProcedureCurrent = "";
+ if (cur_db_info.WorkingProcedureCurrent != "OP10" && cur_db_info.WorkingProcedureCurrent != "OP40")
+ {
+ SetWorkingProcedureCurrentForOP10(cur_db_info, ref set_WorkingProcedureCurrent);
+ }
+ else
+ {
+ set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent;
+ }
+ cur_db_info.WorkingProcedureCurrent = set_WorkingProcedureCurrent;
+ cur_db_info.WorkPieceCurrentPosition = set_WorkingProcedureCurrent + "NOOK";
+ loginfo2.WorkingProcedure = set_WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ loginfo.WorkingProcedure = set_WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
}
else
{
- info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
- info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "NOOK";
+ cur_db_info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
+ cur_db_info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "NOOK";
}
- info.WorkPieceState = (int)WorkPieceState.NOOKPush;
- info.UpdatedUserName = loginfo.MonitoringPoint;
- info.UpdatedTime = DateTime.Now;
- info.Remarks = "宸ヤ欢NOOK鎺ㄥ嚭";
- if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
+ cur_db_info.WorkPieceState = (int)WorkPieceState.NOOKPush;
+ cur_db_info.UpdatedUserName = loginfo.MonitoringPoint;
+ SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref cur_db_info, loginfo.DataCapturePointCname);
+ cur_db_info.UpdatedTime = DateTime.Now;
+ cur_db_info.Remarks = "宸ヤ欢NOOK鎺ㄥ嚭";
+ loginfo2.Remarks = cur_db_info.Remarks;
+ if (!(cur_db_info.WorkingProcedureStartTime.HasValue && cur_db_info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
{
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+ cur_db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
}
- info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
- info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴�
- info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
+ cur_db_info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
+ cur_db_info.WorkingProcedureCompleted = cur_db_info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴�
+ cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
}
+ QualityDataInfo qualityData = null;
+ qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
if (loginfo.WorkingProcedure.Equals("OP35"))
{//涓轰簡瑙e喅OP35鐨勯噰闆嗗埌鐨勮川閲忎俊鎭槸OK杩楴OOK鐨勬儏鍐碉紝OP35 NOOK鏃舵洿鏂拌川閲忎俊鎭�
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"OP35NOOK鍘熻川閲忎俊鎭瘂(info.QualityState.HasValue ? info.QualityState.Value.ToString() : "绌�")}";
- info.QualityState = (int)QualityState.NG;
- if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+ loginfo2.Remarks = $"OP35NOOK鍘熻川閲忎俊鎭瘂(cur_db_info.QualityState.HasValue ? cur_db_info.QualityState.Value.ToString() : "绌�")}";
+ cur_db_info.QualityState = (int)QualityStateEnum.NG;
+ if (!cur_db_info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
{
- info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺NOOK閲囬泦鏁版嵁涓嶅悎鏍納info.QualityState}";
+ cur_db_info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺NOOK閲囬泦鏁版嵁涓嶅悎鏍納cur_db_info.QualityState}";
}
else
{
- info.QualityErrorInfo = "";
+ cur_db_info.QualityErrorInfo = "";
}
- loginfo.QualityState = info.QualityState;
+ loginfo.QualityState = cur_db_info.QualityState;
- var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+
if (qualityData != null)
{
qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
@@ -862,27 +1045,53 @@
}
}
//鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂�
- var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+ var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID
+ && o.WorkingProcedureCurrent == loginfo.WorkingProcedure && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
if (pro != null && pro.WorkPieceID.Length > 0)
{
pro.EndTime = DateTimeHelper.GetDateTime();
- pro.Remarks = (pro.Remarks ?? "") + "NOOK缁撴潫";
+ pro.Remarks = "NOOK缁撴潫";
pro.UpdatedUserName = loginfo.MonitoringPoint;
+ pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
pro.UpdatedTime = DateTimeHelper.GetDateTime();
}
+ else
+ {//濡傛灉鎵句笉鍒板氨鏂板缓 銆怑ditby shaocx,2024-09-03銆�
+ WorkPieceProcess add_process = new WorkPieceProcess();
+ add_process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(cur_db_info);
+ QualityStateHelper.ResetQualityNoOkForNewProcess(ref add_process);
+ add_process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+ add_process.StartTime = DateTimeHelper.GetDateTime().AddSeconds(-SystemBussinessHelper.MoNiTimeForWorkingProcedure(loginfo.WorkingProcedure));
+ add_process.EndTime = DateTimeHelper.GetDateTime();
+ //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+ add_process.QualityState = WorkPieceInfoManager.GetQualityStateValue(loginfo.QualityState);
- db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+ add_process.CreatedUserName = loginfo.MonitoringPoint;
+ add_process.DataCapturePointCname = loginfo.DataCapturePointCname;
+ add_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ add_process.UpdatedUserName = loginfo.MonitoringPoint;
+ add_process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
+ add_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ add_process.OperationType = OperationType.鐢熶骇.ToString();
+ add_process.Remarks = "NOOK缁撴潫";
+ add_process.MyRemarks = "NOOK缁撴潫鏃讹紝濡傛灉鎵句笉鍒板氨鏂板缓";
+ db.WorkPieceProcess.Add(add_process);
+ }
+
+ QualityStateHelper.SetQualityStateForNoOk(ref cur_db_info, ref pro, ref qualityData);
+
+ db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(cur_db_info));
}
else
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"宸ヤ欢NOOK鎺ㄥ嚭璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
+ loginfo2.Remarks = $"宸ヤ欢NOOK鎺ㄥ嚭璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ヤ欢NOOK鎺ㄥ嚭璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
catch (Exception e)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+ loginfo2.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
}
@@ -909,9 +1118,9 @@
//|| !((loginfo.WorkingProcedure.Equals("OP10") || loginfo.WorkingProcedure.Equals("OP40")) && loginfo.Remarks.Length > 0)
)
{
- WorkPieceInfo info = new WorkPieceInfo();
- info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
- if (info == null || info.WorkPieceID.Length < 1)
+ WorkPieceInfo cur_db_info = new WorkPieceInfo();
+ cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+ if (cur_db_info == null || cur_db_info.WorkPieceID.Length < 1)
{//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
loginfo2.Remarks = $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢SPC鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢SPC鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
@@ -921,66 +1130,84 @@
{//鏇存柊琛╓orkPieceInfo
if (loginfo.WorkingProcedure.Equals("OP10"))
{
- info.WorkPieceCurrentPosition = info.WorkingProcedureCurrent + "SPC";
- //var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
- loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
- loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ //淇 閿欒璁板綍鎴怬P05鐨勯棶棰� 銆怑ditby shaocx,2024-08-26銆�
+ var set_WorkingProcedureCurrent = "";
+ if (cur_db_info.WorkingProcedureCurrent != "OP10" && cur_db_info.WorkingProcedureCurrent != "OP40")
+ {
+ SetWorkingProcedureCurrentForOP10(cur_db_info, ref set_WorkingProcedureCurrent);
+ }
+ else
+ {
+ set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent;
+ }
+ cur_db_info.WorkingProcedureCurrent = set_WorkingProcedureCurrent;
+ cur_db_info.WorkPieceCurrentPosition = set_WorkingProcedureCurrent + "SPC";
+ loginfo2.WorkingProcedure = set_WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ loginfo.WorkingProcedure = set_WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
}
else
{
- info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
- info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "SPC";
+ cur_db_info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
+ cur_db_info.WorkPieceCurrentPosition = loginfo.WorkingProcedure + "SPC";
}
- info.WorkPieceState = (int)WorkPieceState.SPCPush;
- info.UpdatedUserName = loginfo.MonitoringPoint;
- info.UpdatedTime = DateTime.Now;
- info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
- if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
+ cur_db_info.WorkPieceState = (int)WorkPieceState.SPCPush;
+ cur_db_info.UpdatedUserName = loginfo.MonitoringPoint;
+ SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref cur_db_info, loginfo.DataCapturePointCname);
+ cur_db_info.UpdatedTime = DateTime.Now;
+ cur_db_info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
+ if (!(cur_db_info.WorkingProcedureStartTime.HasValue && cur_db_info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
{
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+ cur_db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
}
- info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴�
- info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
+ cur_db_info.WorkingProcedureCompleted = cur_db_info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴�
+ cur_db_info.WorkPieceCurrentPositionOrder = cur_db_info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
}
- info.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭";
+ cur_db_info.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭";
+ loginfo2.Remarks = cur_db_info.Remarks;
//鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂�
- var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+ var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == loginfo.WorkingProcedure
+ && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
if (pro != null && pro.WorkPieceID.Length > 0)
{
pro.EndTime = DateTimeHelper.GetDateTime();
pro.Remarks = (pro.Remarks ?? "") + "SPC鎶芥缁撴潫";
pro.UpdatedUserName = loginfo.MonitoringPoint;
+ pro.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
pro.UpdatedTime = DateTimeHelper.GetDateTime();
}
//姣忔SPC 閮芥彃鍏ヨ拷婧〃
WorkPieceProcess process = new WorkPieceProcess();
- process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
+ process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(cur_db_info);
+ QualityStateHelper.ResetQualityNoOkForNewProcess(ref process);
process.StartTime = DateTimeHelper.GetDateTime();
process.OperationType = OperationType.SPC.ToString();
- process.QualityState = (int)QualityState.Suspected;
+ process.QualityState = (int)QualityStateEnum.Suspected;
process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
process.CreatedUserName = loginfo.MonitoringPoint;
+ process.DataCapturePointCname = loginfo.DataCapturePointCname;
process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
process.UpdatedUserName = loginfo.MonitoringPoint;
+ process.UpdateDataCapturePointCname = loginfo.DataCapturePointCname;
process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
process.Remarks = "宸ヤ欢SPC鎶芥鎺ㄥ嚭";
+ process.MyRemarks = "SPC鏃讹紝鎻掑叆杩芥函琛�";
db.WorkPieceProcess.Add(process);
- db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+ db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(cur_db_info));
}
else
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"宸ヤ欢SPC鎶芥鎺ㄥ嚭璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
+ loginfo2.Remarks = $"宸ヤ欢SPC鎶芥鎺ㄥ嚭璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ヤ欢SPC鎶芥鎺ㄥ嚭璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
catch (Exception e)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+ loginfo2.Remarks = $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
}
finally
{
@@ -990,6 +1217,37 @@
}
}
+
+
+ public static void SetWorkingProcedureCurrentForOP10(WorkPieceInfo cur_db_info, ref string set_WorkingProcedureCurrent)
+ {
+ //鎴柇瀛楃涓�
+ if (cur_db_info.WorkingProcedureCurrent.Length == 4)
+ {
+ try
+ {
+ var bb = cur_db_info.WorkingProcedureCurrent.Substring(2, 2);
+ int ii = Convert.ToInt32(bb);
+ if (ii <= 10)
+ {
+ set_WorkingProcedureCurrent = "OP10";
+ }
+ else
+ {
+ set_WorkingProcedureCurrent = "OP40";
+ }
+ }
+ catch (Exception)
+ {
+ set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent;
+ }
+ }
+ else
+ {
+ set_WorkingProcedureCurrent = cur_db_info.WorkingProcedureCurrent;
+ }
+ }
+
/// <summary>
/// 宸ュ簭瀹屾垚
/// </summary>
@@ -1002,7 +1260,7 @@
{
if (logMiddle.WorkingProcedure.Equals("OP70"))
{
- logMiddle.QualityState = (int)QualityState.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+ logMiddle.QualityState = (int)QualityStateEnum.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆�
}
WorkPieceLog loginfo2 = new WorkPieceLog();
@@ -1014,61 +1272,65 @@
{
bool isAddWorkPieceInfo = false;
- WorkPieceInfo info = new WorkPieceInfo();
- info = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
- if (info == null || info.WorkPieceID.Length < 1)
+ WorkPieceInfo db_info = new WorkPieceInfo();
+ db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
+ if (db_info == null || db_info.WorkPieceID.Length < 1)
{//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂� 锛堜负浜嗘祴璇曞厛鍏堟柊澧烇級
Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
//db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
//db.SaveChanges();
loginfo2 = CommonManager.Instance.GetWorkPieceID(logMiddle, type);
- info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(logMiddle);
+ db_info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(logMiddle);
//EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
if (!logMiddle.WorkingProcedure.Equals("OP05"))
{//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
- info.QualityState = (int)QualityState.Suspected;
- info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
- info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+ db_info.QualityState = (int)QualityStateEnum.Suspected;
+ db_info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+ db_info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
}
else
{
- info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊�
- info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
+ db_info.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
+ db_info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
}
- info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime
- info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
- info.CreatedUserName = logMiddle.MonitoringPoint;
- info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- info.WorkingProcedureCurrent = logMiddle.WorkingProcedure;
- info.WorkingProcedureEndTime = null;
- info = ParseQRCode(info);
+ db_info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime
+ db_info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
+ db_info.CreatedUserName = logMiddle.MonitoringPoint;
+ SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref db_info, logMiddle.DataCapturePointCname);
+ db_info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ db_info.WorkingProcedureCurrent = logMiddle.WorkingProcedure;
+ db_info.WorkingProcedureEndTime = null;
+ db_info = ParseQRCode(db_info);
isAddWorkPieceInfo = true;
}
if (logMiddle.WorkingProcedure.Equals("OP10"))
{
//var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
- loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
- logMiddle.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ loginfo2.WorkingProcedure = db_info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ logMiddle.WorkingProcedure = db_info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
}
- info.UpdatedUserName = logMiddle.MonitoringPoint;
- info.UpdatedTime = DateTimeHelper.GetDateTime();
- info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//宸插畬鎴愬伐搴�
- if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
+
+ db_info.WorkingProcedureCurrent = logMiddle.WorkingProcedure;//璧嬪�兼渶鏂板伐搴� 銆怑ditby shaocx,2024-09-03銆�
+ db_info.UpdatedUserName = logMiddle.MonitoringPoint;
+ SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref db_info, logMiddle.DataCapturePointCname);
+ db_info.UpdatedTime = DateTimeHelper.GetDateTime();
+ db_info.WorkingProcedureCompleted = db_info.WorkingProcedureCompleted + logMiddle.WorkingProcedure;//宸插畬鎴愬伐搴�
+ if (!(db_info.WorkingProcedureStartTime.HasValue && db_info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
{//鑻ヤ竴鐩存病鏈夊伐搴忓紑濮嬫椂闂达紝鍒欒祴鍊煎綋鍓嶆椂闂�
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+ db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
}
- info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
- info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2;
- info.Remarks = $"{logMiddle.WorkingProcedure}宸ュ簭瀹屾垚";
+ db_info.WorkingProcedureEndTime = DateTimeHelper.GetDateTime();
+ db_info.WorkPieceCurrentPositionOrder = db_info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2;
+ db_info.Remarks = $"{logMiddle.WorkingProcedure}宸ュ簭瀹屾垚";
long op80id = 0;
if (logMiddle.WorkingProcedure.Equals("OP80"))
{
- info.WorkPieceState = (int)WorkPieceState.FinishedProducts;
- info.WorkPieceLastOfflineTime = DateTimeHelper.GetDateTime();
- info.WorkPieceCurrentPosition = "OP80";
- info.CompleteTime = DateTimeHelper.GetDateTime();
- info.OP80NewCode = logMiddle.OP80NewCode;
+ db_info.WorkPieceState = (int)WorkPieceState.FinishedProducts;
+ db_info.WorkPieceLastOfflineTime = DateTimeHelper.GetDateTime();
+ db_info.WorkPieceCurrentPosition = "OP80";
+ db_info.CompleteTime = DateTimeHelper.GetDateTime();
+ db_info.OP80NewCode = logMiddle.OP80NewCode;
//璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆�
/*
@@ -1078,6 +1340,7 @@
info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
//*/
+
var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
@@ -1107,15 +1370,17 @@
info.QualityErrorInfo = "";
}
//*/
+
+ loginfo2.Remarks = $"娴嬮噺鍚堟牸鐘舵��:{logMiddle.St3_Means_OK},绉伴噸鐘舵��:{logMiddle.St4_Weight_OK}";
}
else if (logMiddle.WorkingProcedure.Equals("OP30"))
{
- info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
- logMiddle.QualityState = info.QualityState;
- info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
- info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
- info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
+ db_info.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
+ logMiddle.QualityState = db_info.QualityState;
+ db_info.QualityStateUpdateUser = logMiddle.UpdatedUserName;
+ db_info.QualityStateUpdateTime = logMiddle.UpdatedTime.Value.LocalDateTime;
+ db_info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
@@ -1123,69 +1388,92 @@
qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
}
- qualityData.QualityStateUpdateUser = info.UpdatedUserName;
- qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime;
- qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode;
+ qualityData.QualityStateUpdateUser = db_info.UpdatedUserName;
+ qualityData.QualityReceiveTime = db_info.UpdatedTime.Value.LocalDateTime;
+ qualityData.QualityStateUpdateMode = db_info.QualityStateUpdateMode;
qualityData.OP30QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime();
loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
- if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+ if (!db_info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
{
- info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
+ db_info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
}
else
{
- info.QualityErrorInfo = "";
+ db_info.QualityErrorInfo = "";
}
}
else
{
- info.WorkPieceState = (int)WorkPieceState.WIP;
- if (info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length)
+ //杩欓噷淇OP10銆丱P40 鍥犱负PLC鍏堟帹 SPC鎺ㄥ嚭銆佸啀鎺� 浜у搧涓嬬嚎闂锛屽鑷� 浜у搧涓嬬嚎鏇存柊鏁版嵁鏃讹紝鎶奡PC鏁版嵁瑕嗙洊鐨勯棶棰� 銆怑ditby shaocx,2024-08-27銆�
+ var isAlow = SystemBussinessHelper.IsAllowUpdateWorkPieceStateToWip(db_info, db, logMiddle);
+ if (isAlow)
{
- info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure), 8);
+ db_info.WorkPieceState = (int)WorkPieceState.WIP;
+ }
+
+
+ if (db_info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= db_info.WorkingProcedurePlan.Length)
+ {
+ db_info.WorkPieceCurrentPosition = db_info.WorkingProcedurePlan.Substring(db_info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure), 8);
}
}
- var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
+ var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == logMiddle.WorkPieceID
+ && o.WorkingProcedureCurrent == db_info.WorkingProcedureCurrent
+ && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
if (pro == null || pro.WorkPieceID.Length < 1)
{
- WorkPieceProcess process = new WorkPieceProcess();
- process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
- process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- process.StartTime = DateTimeHelper.GetDateTime();
- process.EndTime = DateTimeHelper.GetDateTime();
+ WorkPieceProcess add_process = new WorkPieceProcess();
+ add_process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(db_info);
+ QualityStateHelper.ResetQualityNoOkForNewProcess(ref add_process);
+ add_process.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+ add_process.StartTime = DateTimeHelper.GetDateTime().AddSeconds(-SystemBussinessHelper.MoNiTimeForWorkingProcedure(logMiddle.WorkingProcedure));
+ add_process.EndTime = DateTimeHelper.GetDateTime();
if (logMiddle.WorkingProcedure.Equals("OP80"))
{//OP80鐨勮川閲忔暟鎹槸鍚庢潵鑾峰彇鏂囦欢鎼炵殑
+ //璐ㄦ鏁版嵁锛屽啀鑰冭檻 鍙﹀涓ょ鐘舵�� 銆怑ditby shaocx,2024-08-27銆�
+ QualityStateHelper.SetQualityStateForOP80(logMiddle, ref db_info, ref add_process);
}
else
{
- process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK;
+ //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+ //process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊
+ add_process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState);
}
- process.CreatedUserName = logMiddle.MonitoringPoint;
- process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.UpdatedUserName = logMiddle.MonitoringPoint;
- process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.OperationType = OperationType.鐢熶骇.ToString();
- process.Remarks = "";
+ add_process.CreatedUserName = logMiddle.MonitoringPoint;
+ add_process.DataCapturePointCname = logMiddle.DataCapturePointCname;
+ add_process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ add_process.UpdatedUserName = logMiddle.MonitoringPoint;
+ add_process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
+ add_process.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
+ add_process.OperationType = OperationType.鐢熶骇.ToString();
+ add_process.Remarks = "";
+ add_process.MyRemarks = "宸ュ簭瀹屾垚鏃讹紝濡傛灉鎵句笉鍒板氨鏂板缓";
if (logMiddle.WorkingProcedure.Equals("OP80"))
{
- process.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
+ add_process.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
}
if (op80id > 0)
{
- process.QualityDataInfoID = op80id;
+ add_process.QualityDataInfoID = op80id;
}
- db.WorkPieceProcess.Add(process);
+ db.WorkPieceProcess.Add(add_process);
}
else
{
+ if (logMiddle.WorkingProcedure.Equals("OP80"))
+ {//OP80鐨勮川閲忔暟鎹槸鍚庢潵鑾峰彇鏂囦欢鎼炵殑
+ //璐ㄦ鏁版嵁锛屽啀鑰冭檻 鍙﹀涓ょ鐘舵�� 銆怑ditby shaocx,2024-08-27銆�
+ QualityStateHelper.SetQualityStateForOP80(logMiddle, ref db_info, ref pro);
+ }
if (op80id > 0)
{
pro.QualityDataInfoID = op80id;
}
pro.EndTime = DateTimeHelper.GetDateTime();
pro.UpdatedUserName = logMiddle.MonitoringPoint;
+ pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
pro.UpdatedTime = DateTimeHelper.GetDateTime();
if (logMiddle.WorkingProcedure.Equals("OP80"))
{
@@ -1199,20 +1487,20 @@
if (isAddWorkPieceInfo)
{
- db.WorkPieceInfo.Add(info);
+ db.WorkPieceInfo.Add(db_info);
}
- db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+ db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(db_info));
}
else
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}寮傚父";
+ loginfo2.Remarks = $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}寮傚父";
Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
catch (Exception e)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+ loginfo2.Remarks = $"璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
}
db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
db.SaveChanges();
@@ -1632,7 +1920,7 @@
.OrderByDescending(o => o.WarnStartTime).FirstOrDefault();
if (loginfo.IsMessage)
{//鑻ユ湁鍛婅锛屽鏋滄湁璁惧鐘舵�佸彉鏇达紝鑲畾鎻掑叆锛屾澶勫彧淇敼鍗冲彲
- //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛�
+ //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛�
infolog.WarnStartTime = DateTimeHelper.GetDateTime();
infolog.WarnType = alertall;
infolog.Warnmsg = warnmsg;
@@ -1819,7 +2107,7 @@
}
catch (Exception e)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"{loginfo2.MonitoringPoint}璁惧鐩戞帶鏇存柊鏁版嵁寮傚父{e.Message}.{e.StackTrace}";
+ loginfo2.Remarks = $"{loginfo2.MonitoringPoint}璁惧鐩戞帶鏇存柊鏁版嵁寮傚父{e.Message}.{e.StackTrace}";
Log4NetHelper.WriteErrorLog(type, $"{loginfo2.MonitoringPoint}璁惧鐩戞帶鏇存柊鏁版嵁寮傚父{e.Message}.{e.StackTrace}");
}
@@ -1982,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();
}
@@ -2153,13 +2441,47 @@
public static void SetQualityNoOk_WorkPieceInfo(WorkPieceLogMiddle logMiddle, ref WorkPieceInfo pieceInfo)
{
+ if (!IsWirteQualityNoOk(logMiddle, pieceInfo.QualityNoOk)) return;
+
pieceInfo.QualityNoOk = logMiddle.QualityNoOk;
pieceInfo.QualityNoOkReason = logMiddle.QualityNoOkReason;
}
public static void SetQualityNoOk_WorkPieceProcess(WorkPieceLogMiddle logMiddle, ref WorkPieceProcess pieceProcess)
{
+ if (!IsWirteQualityNoOk(logMiddle, pieceProcess.QualityNoOk)) return;
+
pieceProcess.QualityNoOk = logMiddle.QualityNoOk;
pieceProcess.QualityNoOkReason = logMiddle.QualityNoOkReason;
+ }
+
+ /// <summary>
+ /// 鏄惁闇�瑕侀噸鍐� NOOK鍘熷洜
+ /// </summary>
+ /// <param name="logMiddle"></param>
+ /// <param name="pieceInfo"></param>
+ /// <returns></returns>
+ public static bool IsWirteQualityNoOk(WorkPieceLogMiddle logMiddle, int? qualityNoOk)
+ {
+ if (logMiddle.WorkingProcedure == (WorkingProcedureForHMI.OP30).ToString())
+ {
+ //鐗规畩閫昏緫锛氭寜鐓P30鐨勯『搴忓垽鏂�
+ if (logMiddle.QualityNoOk != null && qualityNoOk != null
+ && (
+ qualityNoOk == (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�
+ || qualityNoOk == (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊
+ || qualityNoOk == (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�
+ || qualityNoOk == (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�
+ )
+ )
+ {
+ if ((int)logMiddle.QualityNoOk > (int)qualityNoOk)
+ {//涓嶉渶瑕侀噸鏂拌祴鍊�
+ return false;
+ }
+ }
+ }
+
+ return true;
}
@@ -2248,9 +2570,11 @@
public static void SetLogMiddleForQuality(ref WorkPieceLogMiddle logMiddle)
{
+ logMiddle.QualityState = (int)((logMiddle.QualityStateStr.Equals("OK") || logMiddle.QualityStateStr.Equals("0K")) ? QualityStateEnum.OK : QualityStateEnum.NG);
+
//鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
QualityNoOkEnum? qualityNoOkEnum = null;
- QualityState qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
+ QualityStateEnum qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
logMiddle.QualityState = (int)qualityState;
logMiddle.QualityStateStr = qualityState.ToString();
if (qualityNoOkEnum != null)
@@ -2263,11 +2587,11 @@
/// <summary>
/// 璁$畻OP 璐ㄩ噺鏁版嵁鏄惁鍚堟牸
/// </summary>
- private static QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum)
+ private static QualityStateEnum CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum)
{
- QualityState qualityState = QualityState.Suspected;
+ QualityStateEnum qualityState = QualityStateEnum.Suspected;
if (logMiddle.WorkingProcedure == "OP60")
- {
+ {//鍚堟牸/涓嶅悎鏍肩敱 WMS鑷鍒ゆ柇
decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1);
decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2);
var isPass_QualityOP60To1 = false;
@@ -2293,24 +2617,24 @@
if (isPass_QualityOP60To1 && isPass_QualityOP60To2)
{
- qualityState = QualityState.OK;
+ qualityState = QualityStateEnum.OK;
}
else
{
- qualityState = QualityState.NG;
+ qualityState = QualityStateEnum.NG;
}
if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0)
{
- qualityState = QualityState.Suspected;
+ qualityState = QualityStateEnum.Suspected;
return qualityState;
}
return qualityState;
}
- if (logMiddle.WorkingProcedure == "OP80")
- {
- if (logMiddle.QualityState == (int)QualityState.OK)
+ else if (logMiddle.WorkingProcedure == "OP80")
+ {//鍚堟牸/涓嶅悎鏍肩敱 OP80 鍒ゆ柇锛孮ualityState 鍜� QualityStateStr 閮藉湪璋冪敤褰撳墠鏂规硶鍓� 鍐欏叆鍊间簡
+ if (logMiddle.QualityState == (int)QualityStateEnum.OK)
{
- qualityState = QualityState.OK;
+ qualityState = QualityStateEnum.OK;
return qualityState;
}
@@ -2396,34 +2720,62 @@
return qualityState;
}
else if (logMiddle.WorkingProcedure == "OP10")
- {
- if (logMiddle.QualityState == (int)QualityState.NG)
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
{
qualityNoOkEnum = QualityNoOkEnum.OP10鍘氬害瓒呭樊;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
}
return qualityState;
}
else if (logMiddle.WorkingProcedure == "OP20")
- {
- if (logMiddle.QualityState == (int)QualityState.NG)
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
{
qualityNoOkEnum = QualityNoOkEnum.OP20灏忓ご瀛旂洿寰勮秴宸�;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
+ }
+ return qualityState;
+ }
+ else if (logMiddle.WorkingProcedure == "OP30")
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityStateStr.Equals("OK"))
+ {
+ qualityState = QualityStateEnum.OK;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.NG;
}
return qualityState;
}
else if (logMiddle.WorkingProcedure == "OP35")
- {
- if (logMiddle.QualityState == (int)QualityState.NG)
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
{
- qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涗笉鍚堟牸;
+ qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涜秴宸�;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
}
return qualityState;
}
else if (logMiddle.WorkingProcedure == "OP40")
- {
- if (logMiddle.QualityState == (int)QualityState.NG)
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
{
qualityNoOkEnum = QualityNoOkEnum.OP40鍘氬害瓒呭樊;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
}
return qualityState;
}
@@ -2431,6 +2783,29 @@
}
+ /// <summary>
+ /// 鑾峰彇璐ㄩ噺鐘舵�佸��
+ /// </summary>
+ /// <param name="qualityState"></param>
+ /// <returns></returns>
+ public static int GetQualityStateValue(int? qualityState)
+ {
+ if (qualityState.HasValue == false)
+ {
+ return (int)QualityStateEnum.Suspected;
+ }
+ if (qualityState.Value == 1)
+ {
+ return (int)QualityStateEnum.OK;
+ }
+ if (qualityState.Value == 2)
+ {
+ return (int)QualityStateEnum.NG;
+ }
+ return (int)QualityStateEnum.Suspected;
+ }
+
+
#endregion
}
}
--
Gitblit v1.9.3