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 | 1586 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 1,160 insertions(+), 426 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 7d20501..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 WorkPieceLogMiddle GetAddWorkPieceLog(WorkPieceLogMiddle loginfo)
- {
- loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- return loginfo;
- }
+ //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;
+ //}
/// <summary>
/// 缁橶orkPieceLog涓婚敭绛夊叕鍏辩殑鐨勫睘鎬ц祴鍊�
@@ -140,15 +142,16 @@
try
{
var info = db.KnifeToolEquipmentInfo.Where(o => o.EquipmentID.Equals(loginfo.EquipmentID)).ToList();
- foreach(var item in info)
+ foreach (var item in info)
{
item.CurrentLife++;
- item.UpdatedTime= DateTime.Now;
+ item.UpdatedTime = DateTime.Now;
}
- }catch(Exception ex)
+ }
+ catch (Exception ex)
{
- loginfo.Remarks = (loginfo.Remarks ?? "") + $"{loginfo.WorkPieceID ?? "绌�"}鍒�鍏峰鍛芥洿鏂版暟鎹紓甯竰ex.Message}";
+ loginfo.Remarks = $"{loginfo.WorkPieceID ?? "绌�"}鍒�鍏峰鍛芥洿鏂版暟鎹紓甯竰ex.Message}";
}
}
@@ -157,7 +160,7 @@
/// 璇诲彇浜岀淮鐮佹椂閫昏緫
/// 鏍¢獙宸ヤ欢鏄惁璺冲簭锛岃川閲忔槸鍚﹀悎鏍�
/// </summary>
- public static void ReadQRcode(WorkPieceLog loginfo, LogType type,PLCService plcService, int? IsFeedback)
+ public static void ReadQRcode(WorkPieceLog loginfo, LogType type, PLCService plcService, int? IsFeedback)
{//姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛�
using (DbModel db = new DbModel())
{
@@ -175,70 +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 ?? "") + "鍙堜竴娆′笂绾匡紝鏇存柊缁撴潫鏃堕棿";
+ 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}宸ヤ欢涓婄嚎";
}
- //姣忔鎵弿涓婄嚎閮芥彃鍏ヨ拷婧〃
- WorkPieceProcess process = new WorkPieceProcess();
- process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(info);
- process.StartTime = DateTimeHelper.GetDateTime();
- process.QualityState = info.QualityState.HasValue ? info.QualityState.Value : (int)QualityState.OK;
- 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)
{
@@ -250,6 +316,7 @@
}
#region 鍒ゆ柇鏄惁璺冲簭,鎴栬川閲忎笉绗﹀悎 鐒跺悗鍙嶉PLC
+ /*
if (IsFeedback.HasValue && IsFeedback.Value == (int)FeedbackMode.FeedbackPLC)
{
bool checkQualityInfoCompleteFlag = false;
@@ -257,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宸ヤ欢涓嶇鍚堬紝
@@ -307,6 +338,7 @@
info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
}
+ //*/
#endregion
#region 鏇存柊璁惧瀹炴椂琛�
@@ -318,14 +350,14 @@
{//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo);
- equinfo.OnlineTime=DateTime.Now;
+ equinfo.OnlineTime = DateTime.Now;
isAddEquipmentCurrentMonitor = true;
}
else
{//鏇存柊宸ヤ欢
equinfo.WorkPieceID = loginfo.WorkPieceID;
equinfo.UpdatedUserName = loginfo.MonitoringPoint;
- equinfo.UpdatedTime = DateTime.Now;
+ equinfo.UpdatedTime = DateTime.Now;
equinfo.OnlineTime = DateTime.Now;
}
if (isAddEquipmentCurrentMonitor)
@@ -340,20 +372,46 @@
}
else
{
- loginfo.Remarks = (loginfo.Remarks ?? "") + $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
+ loginfo.Remarks = $"涓婄嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}涓婄嚎鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
- catch(Exception e)
+ 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;
+ }
+
+
}
@@ -393,7 +451,7 @@
{
return loginfo;
}
- loginfo.QualityOP40To1 = ((StandardValue + oldvalue*1.0/ cofOP40.DecimalPlaces).ToString());
+ loginfo.QualityOP40To1 = ((StandardValue + oldvalue * 1.0 / cofOP40.DecimalPlaces).ToString());
//+(string.IsNullOrEmpty(cofOP40.Unit) ? "" : cofOP40.Unit)
}
break;
@@ -409,7 +467,7 @@
{
return loginfo;
}
- loginfo.QualityOP20To1 = ((StandardValue + oldvalue * 1.0 / cofOP20.DecimalPlaces).ToString());
+ loginfo.QualityOP20To1 = ((StandardValue + oldvalue * 1.0 / cofOP20.DecimalPlaces).ToString());
}
break;
case "OP60":
@@ -445,7 +503,7 @@
}
}
- catch(Exception ex)
+ catch (Exception ex)
{
}
@@ -455,10 +513,13 @@
/// <summary>
/// 璐ㄩ噺妫�娴嬪畬鎴�
/// </summary>
- /// <param name="loginfo"></param>
+ /// <param name="logMiddle"></param>
/// <param name="type"></param>
- public static void QualityInfoComplete(WorkPieceLogMiddle loginfo, LogType type)
+ public static void QualityInfoComplete(WorkPieceLogMiddle logMiddle, LogType type)
{
+ //鏍规嵁璐ㄩ噺鏁版嵁鍒ゆ柇鏄惁鍚堟牸/涓嶅悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+ WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
+
//姝ゅ鍚屾椂鎻掑叆浜哤orkPieceLog锛學orkPieceInfoLog琛紝骞舵柊澧炴垨淇敼WorkPieceInfo琛�
//鎻掑叆璐ㄩ噺鐩稿叧琛≦ualityDataInfo
@@ -467,79 +528,80 @@
bool isAddWorkPieceInfo = false;
WorkPieceLog loginfo2 = new WorkPieceLog();
- loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo);
+ loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle);
try
{
- if (loginfo.WorkPieceID.Length == 22)
+ if (logMiddle.WorkPieceID.Length == 22)
{//鑾峰彇鍒扮殑宸ヤ欢鍙峰紓甯�
- WorkPieceInfo info = new WorkPieceInfo();
- info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
- if (info == null || info.WorkPieceID.Length < 1)
+ WorkPieceInfo pieceInfo = new WorkPieceInfo();
+ pieceInfo = db.WorkPieceInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
+ if (pieceInfo == null || pieceInfo.WorkPieceID.Length < 1)
{//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
- if (loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003")|| loginfo.MonitoringPoint.Contains("OP2002"))
+ if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
{//OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪
- info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(loginfo);
+ pieceInfo = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLogMiddle>(logMiddle);
//EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
- if (!loginfo.WorkingProcedure.Equals("OP05"))
+ if (!logMiddle.WorkingProcedure.Equals("OP05"))
{//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
- info.QualityState = (int)QualityState.Suspected;
- info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
- info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+ pieceInfo.QualityState = (int)QualityStateEnum.Suspected;
+ pieceInfo.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
+ pieceInfo.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{logMiddle.WorkingProcedure}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
}
else
{
- info.QualityState = (int)QualityState.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊�
- info.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
+ pieceInfo.QualityState = (int)QualityStateEnum.OK;//姝ゅ闇�瑕佹敞鎰忥紝鍒ゆ柇鎵�鏈夊伐搴忚川閲忥紝鐒跺悗鍐嶈祴鍊� //榛樿鍚堟牸锛孫P05榛樿鏄悎鏍�
+ pieceInfo.Remarks = "OP05鏂板宸ヤ欢淇℃伅";
}
- info.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
- info.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
- info.CreatedUserName = loginfo.MonitoringPoint;
- info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();//
- info.WorkingProcedureEndTime = null;
- info = ParseQRCode(info);
+ pieceInfo.WorkPieceinitOnlineTime = DateTimeHelper.GetDateTime();
+ pieceInfo.WorkingProcedurePlan = ConfigHelper.GetConfigString("WorkingProcedureAllStr") ?? "OP05OP10OP20OP30OP35OP40OP50OP60OP70OP80";
+ 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;
+ pieceInfo = ParseQRCode(pieceInfo);
isAddWorkPieceInfo = true;
}
else
{
- loginfo2.Remarks = loginfo2.Remarks??""+$"|宸ヤ欢{loginfo.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡loginfo.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
- Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{loginfo.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡loginfo.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
+ loginfo2.Remarks = $"|宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�";
+ Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 璐ㄩ噺妫�娴嬪畬鎴愬伐搴弡logMiddle.MonitoringPoint} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
return;
}
}
- if (loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002"))
+ if (logMiddle.MonitoringPoint.Equals("OP1002") || logMiddle.MonitoringPoint.Equals("OP1003") || logMiddle.MonitoringPoint.Contains("OP2002"))
{// OP10 娌℃湁涓婄嚎鎵爜鏋紝绾﹀畾鐢ㄦ祴閲忓畬鎴愪俊鍙峰綋涓婄嚎鏍囪锛屾墍浠ヤ笂绾块渶瑕佷慨鏀圭殑瀛楁鏀捐繖閲�
- if (loginfo.WorkingProcedure.Equals("OP10"))
+ if (logMiddle.WorkingProcedure.Equals("OP10"))
{
- var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
+ var WorkingProcedure = (logMiddle.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
loginfo2.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
- loginfo.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ logMiddle.WorkingProcedure = WorkingProcedure;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
}
- info.WorkPieceCurrentPosition = loginfo.WorkingProcedure;
- info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
- info.WorkingProcedureCurrent = loginfo.WorkingProcedure;
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+ pieceInfo.WorkPieceCurrentPosition = logMiddle.WorkingProcedure;
+ pieceInfo.WorkPieceCurrentPositionOrder = pieceInfo.WorkingProcedurePlan.IndexOf(logMiddle.WorkingProcedure) / 2;
+ pieceInfo.WorkingProcedureCurrent = logMiddle.WorkingProcedure;
+ pieceInfo.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
#region 鏇存柊璁惧瀹炴椂琛�
bool isAddEquipmentCurrentMonitor = false;
EquipmentCurrentMonitor equinfo = new EquipmentCurrentMonitor();
- equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == loginfo.EquipmentID).FirstOrDefault();
+ equinfo = db.EquipmentCurrentMonitor.Where(o => o.EquipmentID == logMiddle.EquipmentID).FirstOrDefault();
if (equinfo == null || equinfo.Id < 1)
{//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
- Log4NetHelper.WriteErrorLog(type, $"璁惧{loginfo.EquipmentID} 鍛婅鐩戞帶{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
- equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(loginfo);
+ Log4NetHelper.WriteErrorLog(type, $"璁惧{logMiddle.EquipmentID} 鍛婅鐩戞帶{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒拌澶囩洃鎺т俊鎭紝鐜版柊澧�");
+ equinfo = EntityPropHelper.Mapper<EquipmentCurrentMonitor, WorkPieceLog>(logMiddle);
equinfo.OnlineTime = DateTime.Now;
isAddEquipmentCurrentMonitor = true;
}
else
{//鏇存柊宸ヤ欢
- equinfo.WorkPieceID = loginfo.WorkPieceID;
- equinfo.UpdatedUserName = loginfo.MonitoringPoint;
+ equinfo.WorkPieceID = logMiddle.WorkPieceID;
+ equinfo.UpdatedUserName = ResetUpdatedUserName(logMiddle);
equinfo.UpdatedTime = DateTime.Now;
equinfo.OnlineTime = DateTime.Now;
}
@@ -551,91 +613,133 @@
#endregion
//UpdateKnifeToolLift(db, loginfo);//鏇存柊鍒�鍏峰鍛戒俊鎭�
}
- info.WorkPieceState = (int)WorkPieceState.WIP;//鎺ㄥ嚭鍚庡拰SPC鎶芥鍚� 璐ㄩ噺褰曞叆鏃剁姸鎬佷慨鏀瑰洖鍦ㄥ埗鍝�
- info.EquipmentID = loginfo.EquipmentID;
- info.QualityStateUpdateUser = loginfo.UpdatedUserName;
- info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
- info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
- info.Remarks = info.Remarks??"" + $"{loginfo.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴愪慨鏀�";
- info.UpdatedUserName = loginfo.MonitoringPoint;
- info.UpdatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
- {//宸ュ簭寮�濮嬫椂闂存病鏈夊垯璧嬪��
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
- }
- info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
- if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+ 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 = $"{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")) ? QualityStateEnum.OK : QualityStateEnum.NG);
+ //璧嬪�间笉鍚堟牸鍘熷洜
+ SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
+
+
+ if (!pieceInfo.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
{
- info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納info.QualityState}";
+ pieceInfo.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍納pieceInfo.QualityState}";
}
else
{
- info.QualityErrorInfo = "";
+ pieceInfo.QualityErrorInfo = "";
}
- loginfo.QualityState = info.QualityState;
+ logMiddle.QualityState = pieceInfo.QualityState;
if (isAddWorkPieceInfo)
{
- db.WorkPieceInfo.Add(info);
+ db.WorkPieceInfo.Add(pieceInfo);
}
#region 鏍规嵁鏍囧噯鍊兼洿鏂版渶鏂拌川閲忔暟鎹紙OP10/OP40/OP20/OP60锛�
- var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(loginfo.WorkingProcedure) && o.ParamType!=1 && o.IsDeleted == false).ToList();
- if(qcofig.Count > 0)
+ var qcofig = db.EquipmentQualityConfig.Where(o => o.WorkingProcedure.Equals(logMiddle.WorkingProcedure) && o.ParamType != 1 && o.IsDeleted == false).ToList();
+ if (qcofig.Count > 0)
{
- QualityDataHand(loginfo, qcofig);
+ QualityDataHand(logMiddle, qcofig);
}
#endregion
- var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+ var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
{//鎻掑叆QualityDataInfo琛�
- qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo);
+ qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
}
//淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨�
- EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(loginfo, qualityData, GetQualityDataInfoUpdate(loginfo.WorkingProcedure,loginfo.MonitoringPoint));//鎸囧畾淇敼瀛楁
+ EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁
- qualityData.QualityStateUpdateUser = info.UpdatedUserName;
- qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime;
- qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode;
- if (loginfo.WorkingProcedure.Equals("OP10"))
+ qualityData.QualityStateUpdateUser = pieceInfo.UpdatedUserName;
+ qualityData.QualityReceiveTime = pieceInfo.UpdatedTime.Value.LocalDateTime;
+ qualityData.QualityStateUpdateMode = pieceInfo.QualityStateUpdateMode;
+ if (logMiddle.WorkingProcedure.Equals("OP10"))
{
- qualityData.OP10QualityState = loginfo.QualityState.HasValue? loginfo.QualityState.Value.ToString():"3";
- qualityData.OP10QualityReceiveTime= DateTimeHelper.GetDateTime();
+ qualityData.OP10QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
+ qualityData.OP10QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- else if (loginfo.WorkingProcedure.Equals("OP20"))
+ else if (logMiddle.WorkingProcedure.Equals("OP20"))
{
//Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}璐ㄩ噺淇℃伅銆恵loginfo.QualityStateStr ?? "绌�"}銆�" +
// $"銆恵(loginfo.QualityState.HasValue? loginfo.QualityState.Value:999)}銆戙�恵(info.QualityState.HasValue ? info.QualityState.Value : 888)}銆� 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]");
- qualityData.OP20QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP20QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP20QualityReceiveTime = DateTimeHelper.GetDateTime();
- qualityData.OP20QualityFilePath = loginfo.OP20QualityFilePath;
+ qualityData.OP20QualityFilePath = logMiddle.OP20QualityFilePath;
}
- else if (loginfo.WorkingProcedure.Equals("OP30"))
+ else if (logMiddle.WorkingProcedure.Equals("OP30"))
{
- switch (loginfo.MonitoringPoint)
+ switch (logMiddle.MonitoringPoint)
{
case "OP3002CH3":
- qualityData.OP30QualityFilePathCH3 = loginfo.OP30QualityFilePathCH3;
- qualityData.OP30QualityStateCH3 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
- qualityData.OP30QualityReceiveTimeCH3= DateTimeHelper.GetDateTime();
+ qualityData.OP30QualityFilePathCH3 = logMiddle.OP30QualityFilePathCH3;
+ qualityData.OP30QualityStateCH3 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
+ qualityData.OP30QualityReceiveTimeCH3 = DateTimeHelper.GetDateTime();
+
+ if (qualityData.OP30QualityStateCH3 == ((int)QualityStateEnum.NG).ToString())
+ {
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30娑ㄦ柇宸ヤ綅鍔涚煩瓒呭樊.ToString();
+ //璧嬪�间笉鍚堟牸鍘熷洜
+ SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
+ }
+
break;
case "OP3002CH4":
- qualityData.OP30QualityFilePathCH4 = loginfo.OP30QualityFilePathCH4;
- qualityData.OP30QualityStateCH4 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP30QualityFilePathCH4 = logMiddle.OP30QualityFilePathCH4;
+ qualityData.OP30QualityStateCH4 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH4 = DateTimeHelper.GetDateTime();
+
+ if (qualityData.OP30QualityStateCH4 == ((int)QualityStateEnum.NG).ToString())
+ {
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30棰勬嫥绱у伐浣嶅姏鐭╄秴宸�.ToString();
+ //璧嬪�间笉鍚堟牸鍘熷洜
+ SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
+ }
+
break;
case "OP3002CH5":
- qualityData.OP30QualityFilePathCH5 = loginfo.OP30QualityFilePathCH5;
- qualityData.OP30QualityStateCH5 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP30QualityFilePathCH5 = logMiddle.OP30QualityFilePathCH5;
+ qualityData.OP30QualityStateCH5 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH5 = DateTimeHelper.GetDateTime();
+
+ if (qualityData.OP30QualityStateCH5 == ((int)QualityStateEnum.NG).ToString())
+ {
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30缁堟嫥绱у伐浣嶅姏鐭╄秴宸�.ToString();
+ //璧嬪�间笉鍚堟牸鍘熷洜
+ SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
+ }
+
break;
case "OP3002CH6":
- qualityData.OP30QualityFilePathCH6 = loginfo.OP30QualityFilePathCH6;
- qualityData.OP30QualityStateCH6 = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP30QualityFilePathCH6 = logMiddle.OP30QualityFilePathCH6;
+ qualityData.OP30QualityStateCH6 = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP30QualityReceiveTimeCH6 = DateTimeHelper.GetDateTime();
+
+ if (qualityData.OP30QualityStateCH6 == ((int)QualityStateEnum.NG).ToString())
+ {
+ logMiddle.QualityNoOk = (int)QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�;
+ logMiddle.QualityNoOkReason = QualityNoOkEnum.OP30鍘嬭‖濂楀伐浣嶅姏鐭╄秴宸�.ToString();
+ //璧嬪�间笉鍚堟牸鍘熷洜
+ SetQualityNoOk_WorkPieceInfo(logMiddle, ref pieceInfo);
+ }
+
break;
default:
break;
@@ -643,61 +747,96 @@
//qualityData.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
//qualityData.OP30QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- else if (loginfo.WorkingProcedure.Equals("OP35"))
+ else if (logMiddle.WorkingProcedure.Equals("OP35"))
{
- qualityData.OP35QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP35QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP35QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- else if (loginfo.WorkingProcedure.Equals("OP40"))
+ else if (logMiddle.WorkingProcedure.Equals("OP40"))
{
- qualityData.OP40QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP40QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP40QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- else if (loginfo.WorkingProcedure.Equals("OP60"))
+ else if (logMiddle.WorkingProcedure.Equals("OP60"))
{
- qualityData.OP60QualityFilePath = loginfo.OP60QualityFilePath;
- qualityData.OP60QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP60QualityFilePath = logMiddle.OP60QualityFilePath;
+ qualityData.OP60QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP60QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- else if (loginfo.WorkingProcedure.Equals("OP80"))
+ else if (logMiddle.WorkingProcedure.Equals("OP80"))
{
- qualityData.OP80QualityFilePath = loginfo.OP80QualityFilePath;
- qualityData.OP80QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ qualityData.OP80QualityFilePath = logMiddle.OP80QualityFilePath;
+ qualityData.OP80QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value.ToString() : "3";
qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime();
}
- var pro = db.WorkPieceProcess.Where(o => o.WorkPieceID == loginfo.WorkPieceID && o.WorkingProcedureCurrent == info.WorkingProcedureCurrent && o.OperationType == OperationType.鐢熶骇.ToString()).OrderByDescending(o => o.StartTime).FirstOrDefault();
- if (pro == null || pro.WorkPieceID.Length < 1||loginfo.MonitoringPoint.Equals("OP1002") || loginfo.MonitoringPoint.Equals("OP1003") || loginfo.MonitoringPoint.Contains("OP2002"))
+ 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>(info);
+ process = EntityPropHelper.Mapper<WorkPieceProcess, WorkPieceInfo>(pieceInfo);
+ QualityStateHelper.ResetQualityNoOkForNewProcess(ref process);
process.StartTime = DateTimeHelper.GetDateTime();
- process.QualityState = info.QualityState.HasValue ? info.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 = loginfo.MonitoringPoint;
+ process.CreatedUserName = ResetUpdatedUserName(logMiddle);
+ process.DataCapturePointCname = logMiddle.DataCapturePointCname;
process.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- process.UpdatedUserName = loginfo.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 = loginfo.MonitoringPoint;
+ pro.UpdatedUserName = ResetUpdatedUserName(logMiddle);
+ pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
pro.UpdatedTime = DateTimeHelper.GetDateTime();
- pro.QualityState = info.QualityState.HasValue ? info.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 = ResetUpdatedUserName(logMiddle);
+ pro.DataCapturePointCname = logMiddle.DataCapturePointCname;
+ }
}
- if (loginfo.QualityType!=null&& loginfo.QualityType.Equals(QualityType.SPC.ToString()))
+ if (logMiddle.QualityType != null && logMiddle.QualityType.Equals(QualityType.SPC.ToString()))
{//SPC鍙嶉锛�
- if (loginfo.QualityState != (int)QualityState.OK)
+ if (logMiddle.QualityState != (int)QualityStateEnum.OK)
{
//褰撴煇鍒板伐搴忔娴嬪埌涓嶅悎鏍煎伐浠舵椂锛屼粠璇ュ伐浠跺姞宸ュ畬鎴愭椂鍒诲墠鎸囧畾鏃堕棿璧疯嚦鎶ユ涓嶅悎鏍兼椂闂存锛岀郴缁熷皢璇ュ伐浠剁殑鏈�鍚庡姞宸ュ伐搴忓湪璇ユ椂闂存鍐呭姞宸ョ殑鎵�鏈夊伐浠躲�佹鍦ㄥ姞宸ョ殑宸ヤ欢銆佽宸ュ簭鍏ュ彛澶勭殑绗竴涓伐浠跺叏閮ㄦ爣璁颁负鐤戜技鐘舵�侊紝鐢变汉宸ュ妫�宸ヤ欢骞朵慨鏀圭姸鎬侊紝骞舵敮鎸佹壒閲忓彉鏇淬��
//绛斿锛氬湪绾挎祴閲忎笉闇�瑕佽蛋杩欎釜娴佺▼锛屽彧鏈塖PC鎶芥鎵嶉渶瑕侊紝闇�瑕佹妸杩欐椂闂存鐨勫伐浠跺叏閮ㄧ疆涓虹枒浼硷紝鍝�曟槸宸插畬鎴愬伐浠�
@@ -705,34 +844,117 @@
//鏃堕棿娈电粨鏉熸椂闂达細鎶芥宸ヤ欢璐ㄩ噺缁撴灉鍑虹幇鍚庣殑鏃堕棿
//鎶芥宸ヤ欢宸ュ簭鎵弿鏋鍏ュ彛澶勭殑绗竴涓伐浠� 涔熸妸璐ㄩ噺鐘舵�佺疆涓虹枒浼�
//锛堟瘡涓�宸ュ簭SPC鎶芥鏄缃殑鍥哄畾鐨勶紝姣斿200鎶�4锛岀姸鎬佺疆涓虹枒浼兼椂鑻ュ伐浠惰繕鍦ㄨ澶囧唴锛屼細缁х画鐢熶骇瀹屾瘯鍚庢帓鍑猴級
-
+ //鐩墠杩欏潡閫昏緫鏀惧埌浜� WebAPI涓簡
}
}
- db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(info));
+ db.WorkPieceInfoLog.Add(GetAddWorkPieceInfoLog(pieceInfo));
db.QualityDataInfoLog.Add(GetAddQualityDataInfoLog(qualityData));//鎻掑叆鏃ュ織
}
else
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{loginfo.WorkPieceID ?? "绌�"}寮傚父";
- Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+ loginfo2.Remarks = $"璐ㄩ噺妫�娴嬪畬鎴愯鍙栦簩缁寸爜{logMiddle.WorkPieceID ?? "绌�"}寮傚父";
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
- catch(Exception ex)
+ catch (Exception ex)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺妫�娴嬪畬鎴恵loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{ex.Message}++{ex.StackTrace}";
- Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭鐩戞帶璇荤爜鏍囪 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+ loginfo2.Remarks = $"璐ㄩ噺妫�娴嬪畬鎴�,鏇存柊鏁版嵁寮傚父{ex.Message}";
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}璐ㄩ噺妫�娴嬪畬鎴� 宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細" + ex.Message, ex);
}
finally
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿loginfo.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>
@@ -748,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;
}
- if(loginfo.WorkingProcedure.Equals("OP35"))
+ 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";
@@ -804,29 +1045,55 @@
}
}
//鏇存柊涓婁竴宸ュ簭鐨勭粨鏉熸椂闂�
- 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}";
}
-
+
db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
db.SaveChanges();
@@ -845,14 +1112,15 @@
{
WorkPieceLog loginfo2 = new WorkPieceLog();
loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo);
- try {
- if ((loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22)
+ try
+ {
+ if ((loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22)
//|| !((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} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
@@ -860,166 +1128,231 @@
}
else
{//鏇存柊琛╓orkPieceInfo
- if(loginfo.WorkingProcedure.Equals("OP10"))
+ 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();
- if (pro != null && pro.WorkPieceID.Length >0)
+ 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.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
{
db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
db.SaveChanges();
}
-
+
}
}
+
+
+ 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>
- /// <param name="loginfo"></param>
+ /// <param name="logMiddle"></param>
/// <param name="type"></param>
- public static void WorkingProcedureComplete(WorkPieceLogMiddle loginfo, LogType type)
+ public static void WorkingProcedureComplete(WorkPieceLogMiddle logMiddle, LogType type)
{
using (DbModel db = new DbModel())
{
+ if (logMiddle.WorkingProcedure.Equals("OP70"))
+ {
+ logMiddle.QualityState = (int)QualityStateEnum.OK; //濡傛灉鏄疧P70锛屽垯榛樿鏄悎鏍� 銆怑ditby shaocx,2024-06-25銆�
+ }
+
WorkPieceLog loginfo2 = new WorkPieceLog();
- loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(loginfo);
+ loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(logMiddle);
try
{
- if (loginfo.WorkPieceID != null && loginfo.WorkPieceID.Trim('\0').Length == 22)
+ if (logMiddle.WorkPieceID != null && logMiddle.WorkPieceID.Trim('\0').Length == 22)
{
+
bool isAddWorkPieceInfo = false;
- WorkPieceInfo info = new WorkPieceInfo();
- info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.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, $"宸ヤ欢{loginfo.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{loginfo.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
+ Log4NetHelper.WriteErrorLog(type, $"宸ヤ欢{logMiddle.WorkPieceID} 宸ヤ欢鎺ㄥ嚭宸ュ簭{logMiddle.WorkingProcedure} 娌℃湁鑾峰彇鍒板伐浠朵俊鎭笉鍋氭洿鏂�");
//db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
//db.SaveChanges();
- loginfo2 = CommonManager.Instance.GetWorkPieceID(loginfo, type);
- info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(loginfo);
+ loginfo2 = CommonManager.Instance.GetWorkPieceID(logMiddle, type);
+ db_info = EntityPropHelper.Mapper<WorkPieceInfo, WorkPieceLog>(logMiddle);
//EntityPropHelper<WorkPieceLog, WorkPieceInfo>.CopyProp(loginfo, info, loginfo.GetWorkPieceInfoDict());
- if (!loginfo.WorkingProcedure.Equals("OP05"))
+ if (!logMiddle.WorkingProcedure.Equals("OP05"))
{//褰撳伐浠朵簩缁寸爜绗竴娆″嚭鐜扮殑宸ュ簭涓嶆槸OP05锛屽垯璁剧疆涓哄彲鐤戠姸鎬�
- info.QualityState = (int)QualityState.Suspected;
- info.QualityErrorInfo = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.MonitoringPoint}涓嶆槸OP05,鏁版嵁缂哄け,璇风‘璁ゆ儏鍐靛苟鍋氱浉搴斿鐞嗭紒";
- info.Remarks = $"宸ヤ欢浜岀淮鐮佺涓�娆″嚭鐜扮殑宸ュ簭{loginfo.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 = loginfo.MonitoringPoint;
- info.CreatedTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local);
- info.WorkingProcedureCurrent = loginfo.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 (loginfo.WorkingProcedure.Equals("OP10"))
+ if (logMiddle.WorkingProcedure.Equals("OP10"))
{
//var WorkingProcedure = (loginfo.MonitoringPoint.Equals("OP1002") ? "OP10" : "OP40");
- loginfo2.WorkingProcedure = info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
- loginfo.WorkingProcedure = info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ loginfo2.WorkingProcedure = db_info.WorkingProcedureCurrent;//瑙e喅OP10锛孫P40鍚屼竴涓殑闂
+ logMiddle.WorkingProcedure = db_info.WorkingProcedureCurrent; //瑙e喅OP10锛孫P40鍚屼竴涓殑闂
}
- info.UpdatedUserName = loginfo.MonitoringPoint;
- info.UpdatedTime = DateTimeHelper.GetDateTime();
- info.WorkingProcedureCompleted = info.WorkingProcedureCompleted + loginfo.WorkingProcedure;//宸插畬鎴愬伐搴�
- if (!(info.WorkingProcedureStartTime.HasValue && info.WorkingProcedureStartTime > DateTime.Parse("1900/01/01")))
- {//鑻ヤ竴鐩存病鏈夊伐搴忓紑濮嬫椂闂达紝鍒欒祴鍊煎綋鍓嶆椂闂�
- info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
- }
- info.WorkingProcedureEndTime= DateTimeHelper.GetDateTime();
- info.WorkPieceCurrentPositionOrder = info.WorkingProcedurePlan.IndexOf(loginfo.WorkingProcedure) / 2;
- info.Remarks = $"{loginfo.WorkingProcedure}宸ュ簭瀹屾垚";
- long op80id = 0;
- if (loginfo.WorkingProcedure.Equals("OP80"))
- {
- info.WorkPieceState = (int)WorkPieceState.FinishedProducts;
- info.WorkPieceLastOfflineTime = DateTimeHelper.GetDateTime();
- info.WorkPieceCurrentPosition = "OP80";
- info.CompleteTime = DateTimeHelper.GetDateTime();
- info.OP80NewCode = loginfo.OP80NewCode;
+ 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")))
+ {//鑻ヤ竴鐩存病鏈夊伐搴忓紑濮嬫椂闂达紝鍒欒祴鍊煎綋鍓嶆椂闂�
+ db_info.WorkingProcedureStartTime = DateTimeHelper.GetDateTime();
+ }
+ 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"))
+ {
+ 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銆�
+ /*
info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
loginfo.QualityState = info.QualityState;
info.QualityStateUpdateUser = loginfo.UpdatedUserName;
info.QualityStateUpdateTime = loginfo.UpdatedTime.Value.LocalDateTime;
info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString();
+ //*/
- var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault();
+
+ var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
{//鎻掑叆QualityDataInfo琛�
- qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo);
+ qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(logMiddle);
db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData));
}
//淇敼QualityDataInfo琛� //閲嶅鏀跺埌璐ㄩ噺淇℃伅锛屼細瑕嗙洊涔嬪墠鐨�
- EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(loginfo, qualityData, GetQualityDataInfoUpdate(loginfo.WorkingProcedure, loginfo.MonitoringPoint));//鎸囧畾淇敼瀛楁
+ EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(logMiddle, qualityData, GetQualityDataInfoUpdate(logMiddle, logMiddle.WorkingProcedure, logMiddle.MonitoringPoint));//鎸囧畾淇敼瀛楁
+ //璐ㄦ鏁版嵁鏀逛负 鑾峰彇鏂囦欢鍚庝慨鏀� 銆怑ditby shaocx,2024-06-15銆�
+ /*
qualityData.QualityStateUpdateUser = info.UpdatedUserName;
qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime;
qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode;
@@ -1036,95 +1369,138 @@
{
info.QualityErrorInfo = "";
}
+ //*/
+
+ loginfo2.Remarks = $"娴嬮噺鍚堟牸鐘舵��:{logMiddle.St3_Means_OK},绉伴噸鐘舵��:{logMiddle.St4_Weight_OK}";
}
- else if(loginfo.WorkingProcedure.Equals("OP30"))
+ else if (logMiddle.WorkingProcedure.Equals("OP30"))
{
- info.QualityState = (int)((loginfo.QualityStateStr.Equals("OK") || loginfo.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG);
- loginfo.QualityState = info.QualityState;
- info.QualityStateUpdateUser = loginfo.UpdatedUserName;
- info.QualityStateUpdateTime = loginfo.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 == loginfo.WorkPieceID).FirstOrDefault();
+ var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == logMiddle.WorkPieceID).FirstOrDefault();
if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1)
{//鎻掑叆QualityDataInfo琛�
- qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(loginfo);
+ 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.OP30QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value.ToString() : "3";
+ 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 ?? "") + $"璐ㄩ噺锛歿loginfo.QualityStateStr ?? "绌�"}";
- if (!info.QualityState.Equals(((int)QualityState.OK).ToString()))
+ loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璐ㄩ噺锛歿logMiddle.QualityStateStr ?? "绌�"}";
+ if (!db_info.QualityState.Equals(((int)QualityStateEnum.OK).ToString()))
{
- info.QualityErrorInfo = $"{loginfo.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
+ db_info.QualityErrorInfo = $"{logMiddle.WorkingProcedure}宸ュ簭璐ㄩ噺閲囬泦鏁版嵁涓嶅悎鏍�";
}
else
{
- info.QualityErrorInfo = "";
+ db_info.QualityErrorInfo = "";
}
}
else
{
- info.WorkPieceState = (int)WorkPieceState.WIP;
- if (info.WorkingProcedurePlan.IndexOf(loginfo.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(loginfo.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 == loginfo.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();
- process.QualityState = loginfo.QualityState.HasValue ? loginfo.QualityState.Value : (int)QualityState.OK;
- 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 = "";
- if(op80id>0)
- {
- process.QualityDataInfoID = op80id;
+ 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);
}
- db.WorkPieceProcess.Add(process);
+ else
+ {
+ //涓嶅啀榛樿璧嬪�间负鍚堟牸 銆怑ditby shaocx,2024-08-16銆�
+ //process.QualityState = logMiddle.QualityState.HasValue ? logMiddle.QualityState.Value : (int)QualityState.OK;//榛樿鍚堟牸锛屽凡澶勭悊
+ add_process.QualityState = WorkPieceInfoManager.GetQualityStateValue(logMiddle.QualityState);
+ }
+ 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"))
+ {
+ add_process.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
+ }
+ if (op80id > 0)
+ {
+ add_process.QualityDataInfoID = op80id;
+ }
+ 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 = loginfo.MonitoringPoint;
+ pro.UpdatedUserName = logMiddle.MonitoringPoint;
+ pro.UpdateDataCapturePointCname = logMiddle.DataCapturePointCname;
pro.UpdatedTime = DateTimeHelper.GetDateTime();
+ if (logMiddle.WorkingProcedure.Equals("OP80"))
+ {
+ if (pro.GetQcDataFlag != 0)
+ {
+ pro.GetQcDataFlag = logMiddle.GetQcDataFlag;//璧嬪�兼爣璁� [Editby shaocx,2024-06-15]
+ }
+ }
}
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 ?? "") + $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}寮傚父";
- Log4NetHelper.WriteErrorLog(type, $" {loginfo.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{loginfo.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
+ loginfo2.Remarks = $"涓嬬嚎瀹屾垚璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}寮傚父";
+ Log4NetHelper.WriteErrorLog(type, $" {logMiddle.WorkingProcedure}宸ュ簭涓嬬嚎 璇诲彇宸ヤ欢鐮佹暟鎹甗{logMiddle.WorkPieceID ?? "绌�"}]鏃跺紓甯革細");
}
}
catch (Exception e)
{
- loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"璇诲彇浜岀淮鐮亄loginfo.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
+ loginfo2.Remarks = $"璇诲彇浜岀淮鐮亄logMiddle.WorkPieceID ?? "绌�"}鏇存柊鏁版嵁寮傚父{e.Message}";
}
db.WorkPieceLog.Add(GetAddWorkPieceLog(loginfo2));//鎻掑叆宸ヤ欢閲囬泦鏃ュ織琛�
db.SaveChanges();
@@ -1144,25 +1520,26 @@
using (DbModel db = new DbModel())
{
bool isAddAlert = false;
- try {
+ try
+ {
- var equipmentlist = db.EquipmentBaseInfo.Where(o=>o.IsDeleted==false).ToList();
+ var equipmentlist = db.EquipmentBaseInfo.Where(o => o.IsDeleted == false).ToList();
var alertlist = db.v_get_equipment_alert.Where(o => o.IsDeleted == false).ToList();
var knifetoolbase = db.KnifeToolBaseInfo.Where(o => o.IsDeleted == false).ToList();
- var knifetoolinfo= db.KnifeToolEquipmentInfo.Where(o => o.IsDeleted == false).ToList();
+ var knifetoolinfo = db.KnifeToolEquipmentInfo.Where(o => o.IsDeleted == false).ToList();
//var knifelist = db.KnifeToolEquipmentInfo.GroupJoin(db.KnifeToolBaseInfo.Where(o => o.IsDeleted == false).ToList(), a => a.EquipmentID, b => b.EquipmentID, (a, b) => new { a,b})
- //.SelectMany(ab => ab.b.DefaultIfEmpty(), (ab, b) => new { ab.a, b.KnifeToolChangeAlertThreshold,b.KnifeToolLife })
- //.Where(o => o.a.IsDeleted == false)
- //.ToList();
+ //.SelectMany(ab => ab.b.DefaultIfEmpty(), (ab, b) => new { ab.a, b.KnifeToolChangeAlertThreshold,b.KnifeToolLife })
+ //.Where(o => o.a.IsDeleted == false)
+ //.ToList();
foreach (var item in equipmentlist)
{
try
{
var alert = alertlist.Where(o => o.EquipmentId.Equals(item.EquipmentId)).FirstOrDefault();
- if (alert==null||alert.Id<1)
+ if (alert == null || alert.Id < 1)
{
alert = EntityPropHelper.Mapper<v_get_equipment_alert, EquipmentBaseInfo>(item);
- isAddAlert=true;
+ isAddAlert = true;
}
//if(item.WorkingProcedure.Equals("OP70"))
{
@@ -1191,7 +1568,7 @@
}
//if (!item.WorkingProcedure.Equals("OP05")&& !item.WorkingProcedure.Equals("OP30") && !item.WorkingProcedure.Equals("OP70") && !item.WorkingProcedure.Equals("OP80"))
{
- if(item.CuttingFluidChangeTime.HasValue)
+ if (item.CuttingFluidChangeTime.HasValue)
{
if (item.CuttingFluidChangeTime.Value.AddDays(item.CuttingFluidChangeAlertThreshold).Date <= DateTime.Now.Date)
{//鍒囧墛娑插憡璀�
@@ -1214,10 +1591,10 @@
}
bool flag = false;
string desc = $"璁惧銆恵item.EquipmentName}銆�";
- foreach (var knife in knifetoolinfo.Where(o=>o.EquipmentID.Equals(item.EquipmentId)))
+ foreach (var knife in knifetoolinfo.Where(o => o.EquipmentID.Equals(item.EquipmentId)))
{
var list = knifetoolbase.Where(o => o.KnifeToolID.Equals(knife.KnifeToolID)).FirstOrDefault();
- if(list!=null)
+ if (list != null)
{
if ((knife.CurrentLife + list.KnifeToolChangeAlertThreshold) >= list.KnifeToolLife)
{//鍒�鍏峰憡璀�
@@ -1228,7 +1605,7 @@
}
}
}
- if(!flag)
+ if (!flag)
{//娌℃湁鍒�鍏峰憡璀�
alert.IsAlertKnifeTool = false;
alert.KnifeToolDesc = "";
@@ -1247,7 +1624,7 @@
}
else
{
- if(string.IsNullOrEmpty(info.Alertmsg))
+ if (string.IsNullOrEmpty(info.Alertmsg))
{
alert.IsAlert = false;
alert.AlertDesc = "";
@@ -1262,7 +1639,8 @@
{
db.v_get_equipment_alert.Add(alert);
}
- }catch(Exception ex)
+ }
+ catch (Exception ex)
{
Log4NetHelper.WriteErrorLog(type, $" {item.EquipmentName}璁惧璁$畻鍛婅鏃跺紓甯革細");
@@ -1273,8 +1651,8 @@
{
Log4NetHelper.WriteErrorLog(type, $" 璁惧鍛婅鐩戞帶锛堟竻娲楁恫锛屽垏鍓婃恫锛屽垁鍏峰憡璀︾瓑锛� 璁$畻鏃跺紓甯革細{e.Message} {e.StackTrace}");
}
-
-
+
+
//db.WorkPieceLog.Add(loginfo2);//鎻掑叆璁惧閲囬泦鏃ュ織琛�
db.SaveChanges();
@@ -1335,9 +1713,9 @@
string faultmsg = "";
int i = 1;
foreach (var failues in Failueslist)
- {
+ {
faultall += (failues + "\r\n");
- EquipmentFailureCode codeinfo = codelist.Where(o => o.Code == failues.ToString()).FirstOrDefault();
+ EquipmentFailureCode codeinfo = codelist.Where(o => o.Code == failues.ToString()).FirstOrDefault();
if (codeinfo != null && codeinfo.Code.Length > 0)
{
faultmsg += (i.ToString() + "." + (codeinfo.CodeDesc ?? codeinfo.Code) + "\r\n");
@@ -1377,13 +1755,13 @@
string alertall = "";
string warnmsg = "";
i = 1;
- foreach(var alert in Alertlist)
+ foreach (var alert in Alertlist)
{
- alertall+=(alert+"\r\n");
- var codeinfo=codelist.Where(o => o.Code == alert.ToString()).FirstOrDefault();
- if(codeinfo!=null&&codeinfo.Code.Length>0)
+ alertall += (alert + "\r\n");
+ var codeinfo = codelist.Where(o => o.Code == alert.ToString()).FirstOrDefault();
+ if (codeinfo != null && codeinfo.Code.Length > 0)
{
- warnmsg += (i.ToString()+"."+(codeinfo.CodeDesc ?? codeinfo.Code) + "\r\n");
+ warnmsg += (i.ToString() + "." + (codeinfo.CodeDesc ?? codeinfo.Code) + "\r\n");
}
else
{
@@ -1456,7 +1834,7 @@
info.Warnmsg = warnmsg;//杩欎釜闇�瑕佷唬鐮佸搴斿瓧鍏哥淮鎶や俊鎭墠鐭ラ亾
info.WarnType = alertall;
}
- if (info.EquipmentCurrentState==null||(!info.EquipmentCurrentState.Equals(((int)EnumEquipmentCurrentStateDisplay.绂荤嚎).ToString())))
+ if (info.EquipmentCurrentState == null || (!info.EquipmentCurrentState.Equals(((int)EnumEquipmentCurrentStateDisplay.绂荤嚎).ToString())))
{//濡傛灉璁惧鐘舵�佷负绂荤嚎锛屽垯姝ゅ涓嶉渶瑕佸垽鏂换浣曚俊鎭�
if (loginfo.IsNormalProduction && !loginfo.LackMaterial && !loginfo.FullMaterial)
{//鑷姩杩愯鐘舵��+涓嶇己鏂�+涓嶅牭鏂�
@@ -1504,7 +1882,7 @@
infolog.Remarks = "鍛婅淇℃伅鍑虹幇鍙樻洿3";
infolog.UpdateDesc = (infolog.UpdateDesc ?? "") + $"璁惧鐘舵�佸彉鏇翠负{((EnumEquipmentCurrentStateDisplay)int.Parse(State)).ToString()}\r\n";
isAddEquipmentWorkingLog = true;
- isStatechange=true;
+ isStatechange = true;
}
#endregion
@@ -1538,11 +1916,11 @@
//鏌ユ壘鏄惁鏈夋湭缁撴潫鐨勫憡璀�
var equlogalert = db.EquipmentWorkingLog.Where(o => o.EquipmentID == loginfo.EquipmentID
- && o.WarnStartTime != null && o.WarnStartTime != DateTime.MinValue && (o.WarnEndTime == null|| o.WarnEndTime == DateTime.MinValue))
+ && o.WarnStartTime != null && o.WarnStartTime != DateTime.MinValue && (o.WarnEndTime == null || o.WarnEndTime == DateTime.MinValue))
.OrderByDescending(o => o.WarnStartTime).FirstOrDefault();
if (loginfo.IsMessage)
{//鑻ユ湁鍛婅锛屽鏋滄湁璁惧鐘舵�佸彉鏇达紝鑲畾鎻掑叆锛屾澶勫彧淇敼鍗冲彲
- //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛�
+ //鑻ユ湁鍛婅锛屽鏋滆澶囩姸鎬佹病鏈夊彉鏇达紝鏈夊憡璀︼紝涔熶笉鎻掑叆鏂扮殑锛堥棶棰橈細褰撶姸鎬佹病鏈夋洿鏀癸紝濡備竴鐩存槸鏁呴殰锛屼絾鍛婅淇℃伅鏈夊彉鍖栵紝鎬庝箞鍔� ps锛氭澶勫厛涓嶇锛�
infolog.WarnStartTime = DateTimeHelper.GetDateTime();
infolog.WarnType = alertall;
infolog.Warnmsg = warnmsg;
@@ -1722,14 +2100,14 @@
info.Id = Yitter.IdGenerator.YitIdHelper.NextId();
db.EquipmentCurrentMonitor.Add(info);
}
- if(isAddEquipmentWorkingLog)
+ if (isAddEquipmentWorkingLog)
{
db.EquipmentWorkingLog.Add(infolog);
}
}
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}");
}
@@ -1777,13 +2155,13 @@
info.UpdatedUserName = loginfo.MonitoringPoint;
info.UpdatedTime = DateTime.Now;
info.Alertmsg = "璁惧绂荤嚎";
- info.AlertTime= DateTimeHelper.GetDateTime();
+ info.AlertTime = DateTimeHelper.GetDateTime();
info.FailureType = "";
//鑻ユ病鏈夌绾跨殑淇℃伅锛屽垯鏂板涓�鏉�
var equlog = db.EquipmentWorkingLog.Where(o => o.EquipmentID == loginfo.EquipmentID
- && o.EquipmentStateStartTime != null && o.EquipmentStateStartTime != DateTime.MinValue &&(o.EquipmentStateEndTime==null||o.EquipmentStateEndTime==DateTime.MinValue)
- &&o.EquipmentState.Equals(state)
+ && o.EquipmentStateStartTime != null && o.EquipmentStateStartTime != DateTime.MinValue && (o.EquipmentStateEndTime == null || o.EquipmentStateEndTime == DateTime.MinValue)
+ && o.EquipmentState.Equals(state)
).OrderByDescending(o => o.EquipmentStateStartTime).FirstOrDefault();
if (equlog == null)
@@ -1810,7 +2188,7 @@
}
else
{//鏈�鏂扮姸鎬佷负寮�鏈�
- if(((int)EnumEquipmentCurrentStateDisplay.绂荤嚎).ToString() == info.EquipmentCurrentState)
+ if (((int)EnumEquipmentCurrentStateDisplay.绂荤嚎).ToString() == info.EquipmentCurrentState)
{//鍙湁绂荤嚎鐘舵�侊紝鎵嶈兘鍙樻垚寮�鏈�
state = ((int)EnumEquipmentCurrentStateDisplay.寰呮満).ToString();
info.EquipmentCurrentState = state;
@@ -1821,7 +2199,7 @@
//鏈夌绾跨殑鏁版嵁锛屽垯鏇存柊
var equlog = db.EquipmentWorkingLog.Where(o => o.EquipmentID == loginfo.EquipmentID
- && o.EquipmentStateStartTime != null && o.EquipmentStateStartTime != DateTime.MinValue&& (o.EquipmentStateEndTime == null || o.EquipmentStateEndTime == DateTime.MinValue)
+ && o.EquipmentStateStartTime != null && o.EquipmentStateStartTime != DateTime.MinValue && (o.EquipmentStateEndTime == null || o.EquipmentStateEndTime == DateTime.MinValue)
&& o.EquipmentState.Equals(((int)EnumEquipmentCurrentStateDisplay.绂荤嚎).ToString())
).OrderByDescending(o => o.EquipmentStateStartTime).FirstOrDefault();
if (equlog != null)
@@ -1874,13 +2252,13 @@
using (DbModel db = new DbModel())
{
var info = db.ThreadStatusMonitor.Where(o => o.Threadcode == threadinfo.Threadcode).FirstOrDefault();
- if (info == null || info.Id==0)
+ if (info == null || info.Id == 0)
{//娌℃湁宸ヤ欢淇℃伅锛屼笉鍋氭洿鏂�
threadinfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- threadinfo.CreatedTime= DateTimeHelper.GetDateTime();
+ threadinfo.CreatedTime = DateTimeHelper.GetDateTime();
threadinfo.CreatedUserName = threadinfo.Threadcode;
db.ThreadStatusMonitor.Add(threadinfo);
-
+
}
else
{//鏇存柊琛╓orkPieceInfo
@@ -1892,16 +2270,16 @@
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();
}
}
- catch(Exception ex)
+ catch (Exception ex)
{
}
@@ -1910,11 +2288,11 @@
#region 涓氬姟鏂规硶
/// <summary>
- /// dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄
+ /// 銆愯川閲忔暟鎹洿鏂颁笓鐢ㄣ�� dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄
/// </summary>
/// <param name="WorkingProcedure"></param>
/// <returns></returns>
- public static Dictionary<string, string> GetQualityDataInfoUpdate(string WorkingProcedure="",string MonitoringPoint="")
+ public static Dictionary<string, string> GetQualityDataInfoUpdate(WorkPieceLogMiddle logMiddle, string WorkingProcedure = "", string MonitoringPoint = "")
{
Dictionary<string, string> dict = new Dictionary<string, string>();
@@ -1929,11 +2307,20 @@
{
case "OP10":
dict.Add("QualityOP10To1", "QualityOP10To1");
+
+ dict.Add("QualityNoOk", "QualityNoOk_OP10");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP10");
break;
case "OP20":
dict.Add("QualityOP20To1", "QualityOP20To1");
+
+ dict.Add("QualityNoOk", "QualityNoOk_OP20");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP20");
break;
case "OP30":
+ dict.Add("QualityNoOk", "QualityNoOk_OP30");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP30");
+
switch (MonitoringPoint)
{
case "OP3002CH3":
@@ -1962,13 +2349,24 @@
case "OP35":
dict.Add("QualityOP35To1", "QualityOP35To1");
dict.Add("QualityOP35To2", "QualityOP35To2");
+
+ dict.Add("QualityNoOk", "QualityNoOk_OP35");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP35");
+
break;
case "OP40":
dict.Add("QualityOP40To1", "QualityOP40To1");
+
+ dict.Add("QualityNoOk", "QualityNoOk_OP40");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP40");
break;
case "OP60":
dict.Add("QualityOP60To1", "QualityOP60To1");
dict.Add("QualityOP60To2", "QualityOP60To2");
+
+ dict.Add("QualityNoOk", "QualityNoOk_OP60");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP60");
+
break;
case "OP70":
dict.Add("QualityOP70To1", "QualityOP70To1");
@@ -1987,11 +2385,103 @@
dict.Add("QualityOP80To8", "QualityOP80To8");
dict.Add("QualityOP80To9", "QualityOP80To9");
dict.Add("QualityOP80To10", "QualityOP80To10");
+
+ //鏂板 銆怑ditby shaocx,2024-06-16銆�
+ dict.Add("QualityOP80_Houdu", "QualityOP80_Houdu");
+ dict.Add("QualityOP80_ZXJ", "QualityOP80_ZXJ");
+ dict.Add("QualityOP80_DTKYZD", "QualityOP80_DTKYZD");
+ dict.Add("QualityOP80_XTSMYD", "QualityOP80_XTSMYD");
+ dict.Add("QualityOP80_XTXMYD", "QualityOP80_XTXMYD");
+ dict.Add("QualityOP80_D_TKZJ", "QualityOP80_D_TKZJ");
+ dict.Add("QualityOP80_D_S_X", "QualityOP80_D_S_X");
+ dict.Add("QualityOP80_D_S_Y", "QualityOP80_D_S_Y");
+ dict.Add("QualityOP80_D_X_X", "QualityOP80_D_X_X");
+ dict.Add("QualityOP80_D_X_Y", "QualityOP80_D_X_Y");
+ dict.Add("QualityOP80_X_TKZJ", "QualityOP80_X_TKZJ");
+ dict.Add("QualityOP80_X_S_X", "QualityOP80_X_S_X");
+ dict.Add("QualityOP80_X_S_Y", "QualityOP80_X_S_Y");
+ dict.Add("QualityOP80_X_X_X", "QualityOP80_X_X_X");
+ dict.Add("QualityOP80_X_X_Y", "QualityOP80_X_X_Y");
+
+
+ dict.Add("QualityNoOk", "QualityNoOk_OP80");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason_OP80");
+
break;
default:
break;
}
return dict;
+ }
+
+ /// <summary>
+ /// 銆愬伐浠舵垨宸ュ簭鏁版嵁鏁版嵁鏇存柊涓撶敤銆� dict涓墠闈竴涓槸鍘熷璞★紝鍚庨潰涓�涓槸鐩爣瀵硅薄
+ /// </summary>
+ /// <param name="WorkingProcedure"></param>
+ /// <returns></returns>
+ public static Dictionary<string, string> GetWorkPieceInfoUpdateForQualityNoOk(WorkPieceLogMiddle loginfo)
+ {
+ Dictionary<string, string> dict = new Dictionary<string, string>();
+
+ //if (loginfo.QualityState != null)
+ //{
+ // QualityState qualityState;
+ // bool isRight = Enum.TryParse<QualityState>(loginfo.QualityState.ToString(), out qualityState);
+ // if (isRight && (qualityState == QualityState.NG || qualityState == QualityState.Suspected))
+ // {
+
+ // }
+ //}
+
+ dict.Add("QualityNoOk", "QualityNoOk");
+ dict.Add("QualityNoOkReason", "QualityNoOkReason");
+
+ return dict;
+ }
+
+ 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;
}
@@ -2053,13 +2543,13 @@
}
/// <summary>
/// 瑙f瀽浜岀淮鐮�
-
+
/// </summary>
/// <param name="loginfo"></param>
/// <returns></returns>
public static WorkPieceInfo ParseQRCode(WorkPieceInfo loginfo)
{
- if(string.IsNullOrEmpty(loginfo.WorkPieceID)|| loginfo.WorkPieceID.Length!=22)
+ if (string.IsNullOrEmpty(loginfo.WorkPieceID) || loginfo.WorkPieceID.Length != 22)
{
return loginfo;
}
@@ -2072,6 +2562,250 @@
loginfo.WorkPieceIDTo7 = loginfo.WorkPieceID.Substring(20, 2);
return loginfo;
}
+
+ /// <summary>
+ /// 璁剧疆涓棿鍙橀噺鐨勮川閲忔暟鎹�
+ /// </summary>
+ /// <param name="logMiddle"></param>
+ 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;
+ QualityStateEnum qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
+ logMiddle.QualityState = (int)qualityState;
+ logMiddle.QualityStateStr = qualityState.ToString();
+ if (qualityNoOkEnum != null)
+ {
+ logMiddle.QualityNoOk = (int)qualityNoOkEnum;
+ logMiddle.QualityNoOkReason = qualityNoOkEnum.ToString();
+ }
+ }
+
+ /// <summary>
+ /// 璁$畻OP 璐ㄩ噺鏁版嵁鏄惁鍚堟牸
+ /// </summary>
+ private static QualityStateEnum CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum)
+ {
+ 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;
+ var isPass_QualityOP60To2 = false;
+
+
+ if (_QualityOP60To1 >= (decimal)53.018 && _QualityOP60To1 <= (decimal)53.030)
+ {
+ isPass_QualityOP60To1 = true;
+ }
+ else
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP60澶уご瀛旂洿寰勮秴宸�;
+ }
+ if (_QualityOP60To2 >= (decimal)22.005 && _QualityOP60To2 <= (decimal)22.011)
+ {
+ isPass_QualityOP60To2 = true;
+ }
+ else
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP60灏忓ご瀛旂洿寰勮秴宸�;
+ }
+
+ if (isPass_QualityOP60To1 && isPass_QualityOP60To2)
+ {
+ qualityState = QualityStateEnum.OK;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.NG;
+ }
+ if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0)
+ {
+ qualityState = QualityStateEnum.Suspected;
+ return qualityState;
+ }
+ return qualityState;
+ }
+ else if (logMiddle.WorkingProcedure == "OP80")
+ {//鍚堟牸/涓嶅悎鏍肩敱 OP80 鍒ゆ柇锛孮ualityState 鍜� QualityStateStr 閮藉湪璋冪敤褰撳墠鏂规硶鍓� 鍐欏叆鍊间簡
+ if (logMiddle.QualityState == (int)QualityStateEnum.OK)
+ {
+ qualityState = QualityStateEnum.OK;
+ return qualityState;
+ }
+
+ decimal _QualityOP80_D_TKZJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_D_TKZJ);
+ if (!(_QualityOP80_D_TKZJ >= (decimal)53.018 && _QualityOP80_D_TKZJ <= (decimal)53.03))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛旂洿寰勮秴宸�;
+ }
+
+ decimal _QualityOP80_X_TKZJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_X_TKZJ);
+ if (!(_QualityOP80_X_TKZJ >= (decimal)22.005 && _QualityOP80_X_TKZJ <= (decimal)22.011))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛旂洿寰勮秴宸�;
+ }
+
+ decimal _QualityOP80_ZXJ = SystemHelper.GetDecimal(logMiddle.QualityOP80_ZXJ);
+ if (!(_QualityOP80_ZXJ >= (decimal)144.475 && _QualityOP80_ZXJ <= (decimal)144.525))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80涓績璺濊秴宸�;
+ }
+
+ decimal _QualityOP80_DTKYZD = SystemHelper.GetDecimal(logMiddle.QualityOP80_DTKYZD);
+ if (!(_QualityOP80_DTKYZD >= (decimal)0 && _QualityOP80_DTKYZD <= (decimal)0.005))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛斿渾鏌卞害瓒呭樊;
+ }
+
+ decimal _QualityOP80_XTSMYD = SystemHelper.GetDecimal(logMiddle.QualityOP80_XTSMYD);
+ if (!(_QualityOP80_XTSMYD >= (decimal)0 && _QualityOP80_XTSMYD <= (decimal)0.003))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿渾搴︿笂闈㈣秴宸�;
+ }
+
+ decimal _QualityOP80_XTXMYD = SystemHelper.GetDecimal(logMiddle.QualityOP80_XTXMYD);
+ if (!(_QualityOP80_XTXMYD >= (decimal)0 && _QualityOP80_XTXMYD <= (decimal)0.003))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿渾搴︿笅闈㈣秴宸�;
+ }
+
+ decimal _QualityOP80To4 = SystemHelper.GetDecimal(logMiddle.QualityOP80To4);
+ if (!(_QualityOP80To4 >= (decimal)(-0.075) && _QualityOP80To4 <= (decimal)0.075))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害寮洸瓒呭樊;
+ }
+
+ decimal _QualityOP80To5 = SystemHelper.GetDecimal(logMiddle.QualityOP80To5);
+ if (!(_QualityOP80To5 >= (decimal)(-0.2) && _QualityOP80To5 <= (decimal)0.2))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿钩琛屽害鎵洸瓒呭樊;
+ }
+
+ decimal _QualityOP80To6 = SystemHelper.GetDecimal(logMiddle.QualityOP80To6);
+ if (!(_QualityOP80To6 >= (decimal)0 && _QualityOP80To6 <= (decimal)0.04))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80澶уご瀛斿瀭鐩村害瓒呭樊;
+ }
+
+ decimal _QualityOP80To10 = SystemHelper.GetDecimal(logMiddle.QualityOP80To10);
+ if (!(_QualityOP80To10 >= (decimal)0 && _QualityOP80To10 <= (decimal)0.04))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご瀛斿瀭鐩村害瓒呭樊;
+ }
+
+ decimal _QualityOP80_Houdu = SystemHelper.GetDecimal(logMiddle.QualityOP80_Houdu);
+ if (!(_QualityOP80_Houdu >= (decimal)21.80 && _QualityOP80_Houdu <= (decimal)21.85))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80鍘氬害瓒呭樊;
+ }
+
+ decimal _QualityOP80To1 = SystemHelper.GetDecimal(logMiddle.QualityOP80To1);
+ if (!(_QualityOP80To1 >= (decimal)364 && _QualityOP80To1 <= (decimal)385))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80澶уご绔噸閲忚秴宸�;
+ }
+
+ decimal _QualityOP80To2 = SystemHelper.GetDecimal(logMiddle.QualityOP80To2);
+ if (!(_QualityOP80To2 >= (decimal)143 && _QualityOP80To2 <= (decimal)155))
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP80灏忓ご绔噸閲忚秴宸�;
+ }
+
+
+ return qualityState;
+ }
+ else if (logMiddle.WorkingProcedure == "OP10")
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP10鍘氬害瓒呭樊;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
+ }
+ return qualityState;
+ }
+ else if (logMiddle.WorkingProcedure == "OP20")
+ {//鍚堟牸/涓嶅悎鏍肩敱 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")
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP35婊氬帇鍔涜秴宸�;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
+ }
+ return qualityState;
+ }
+ else if (logMiddle.WorkingProcedure == "OP40")
+ {//鍚堟牸/涓嶅悎鏍肩敱 QualityStateStr鍊煎垽鏂�
+ if (logMiddle.QualityState == (int)QualityStateEnum.NG)
+ {
+ qualityNoOkEnum = QualityNoOkEnum.OP40鍘氬害瓒呭樊;
+ }
+ else
+ {
+ qualityState = QualityStateEnum.OK;
+ }
+ return qualityState;
+ }
+ return qualityState;
+ }
+
+
+ /// <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