From 018a9b80015b5d10acc5baee5add5b52c0f0064f Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 03 9月 2024 10:57:34 +0800
Subject: [PATCH] db_info.WorkingProcedureCurrent = logMiddle.WorkingProcedure;//赋值最新工序 【Editby shaocx,2024-09-03】
---
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 146 +++++++++++++++++++++++++-----------------------
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs | 27 +++++++++
2 files changed, 102 insertions(+), 71 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 b47a36f..a4f5988 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -1246,63 +1246,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)QualityState.Suspected;
+ db_info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+ db_info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
}
else
{
- info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
- info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
+ db_info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
+ db_info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
}
- info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();//WorkPieceInitOnlineTime
- info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
- info.CreatedUserName = logMiddle.MonitoringPoint;
- SystemBussinessHelper.SetWorkPieceInfoMiddleForCreatedUserName(ref info, logMiddle.DataCapturePointCname);
- 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;
- SystemBussinessHelper.SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref info, logMiddle.DataCapturePointCname);
- 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銆�
/*
@@ -1346,11 +1348,11 @@
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")) ? QualityState.OK : QualityState.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)
@@ -1358,81 +1360,83 @@
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)QualityState.OK).ToString()))
{
- info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
+ db_info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
}
else
{
- info.QualityErrorInfo = "";
+ db_info.QualityErrorInfo = "";
}
}
else
{
//杩欓噷淇OP10銆丱P40 鍥犱负PLC鍏堟帹 SPC鎺ㄥ嚭銆佸啀鎺� 浜у搧涓嬬嚎闂锛屽鑷� 浜у搧涓嬬嚎鏇存柊鏁版嵁鏃讹紝鎶奡PC鏁版嵁瑕嗙洊鐨勯棶棰� 銆怑ditby shaocx,2024-08-27銆�
- var isAlow = SystemBussinessHelper.IsAllowUpdateWorkPieceStateToWip(info, db, logMiddle);
+ var isAlow = SystemBussinessHelper.IsAllowUpdateWorkPieceStateToWip(db_info, db, logMiddle);
if (isAlow)
{
- info.WorkPieceState = (int)WorkPieceState.WIP;
+ db_info.WorkPieceState = (int)WorkPieceState.WIP;
}
- if (info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= info.WorkingProcedurePlan.Length)
+ if (db_info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) + 4 <= db_info.WorkingProcedurePlan.Length)
{
- info.WorkPieceCurrentPosition = info.WorkingProcedurePlan.Substring(info.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure), 8);
+ 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);
- QualityStateHelper.ResetQualityNoOkForNewProcess(ref process);
- 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 info, ref process);
+ QualityStateHelper.SetQualityStateForOP80(logMiddle, ref db_info, ref add_process);
}
else
{
//涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
//process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊
- process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState);
+ add_process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState);
}
- process.CreatedUserName = logMiddle.MonitoringPoint;
- process.DataCapturePointCname = logMiddle.DataCapturePointCname;
- process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.UpdatedUserName = logMiddle.MonitoringPoint;
- process.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
- 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 = "";
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 info, ref pro);
+ QualityStateHelper.SetQualityStateForOP80(logMiddle, ref db_info, ref pro);
}
if (op80id > 0)
{
@@ -1454,9 +1458,9 @@
if (isAddWorkPieceInfo)
{
- db.WorkPieceInfo.Add(info);
+ db.WorkPieceInfo.Add(db_info);
}
- db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+ db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(db_info));
}
else
{
diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs
index 854b9bb..e80b66e 100644
--- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs
+++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/Utils/SystemBussinessHelper.cs
@@ -17,6 +17,33 @@
{
/// <summary>
+ /// 妯℃嫙鏃堕棿锛堣繑鍥炵锛�
+ /// </summary>
+ /// <param name="workingProcedure"></param>
+ /// <returns></returns>
+ public static int MoNiTimeForWorkingProcedure(string workingProcedure)
+ {
+ switch (workingProcedure)
+ {
+ case "OP10":
+ case "OP40":
+ return 4;
+ case "OP20":
+ return 2 * 60;
+ case "OP30":
+ return 2 * 60;
+ case "OP35":
+ return 1 * 60;
+ case "OP50":
+ return 3 * 60;
+ case "OP60":
+ return 4 * 60;
+ default:
+ return 1 * 60;
+ }
+ }
+
+ /// <summary>
/// 鏍¢獙璇诲彇鐨勪簩缁寸爜鏄惁姝g‘
/// </summary>
/// <param name="workPieceID"></param>
--
Gitblit v1.9.3