From 5fc3f2edc5a570fc3ba32a31a40d1488a7f19db9 Mon Sep 17 00:00:00 2001
From: XingCheng3 <1773407212@qq.com>
Date: Mon, 1 Jun 2026 15:33:29 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BF=94=E4=BF=AE=E4=B8=8A?=
=?UTF-8?q?=E7=BA=BF=E4=B8=8E=E5=BC=B9=E7=AA=97=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BusinessFacade/MES.Material/Materials.cs | 21 +++++-
.../Function1051/OpcServer/EngineGetOver.cs | 11 ++--
.../Function1052/OpcServer/EngineGetOver.cs | 12 ++--
...发动机在线状态_查询_是否二次确认是否工作.sql | 64 +++++++++++++++++++
4 files changed, 98 insertions(+), 10 deletions(-)
create mode 100644 测量数据发动机在线状态_查询_是否二次确认是否工作.sql
diff --git a/Common/07WebBusinessFacade/BusinessFacade/MES.Material/Materials.cs b/Common/07WebBusinessFacade/BusinessFacade/MES.Material/Materials.cs
index 55ad5f6..3c61a6f 100644
--- a/Common/07WebBusinessFacade/BusinessFacade/MES.Material/Materials.cs
+++ b/Common/07WebBusinessFacade/BusinessFacade/MES.Material/Materials.cs
@@ -1049,6 +1049,25 @@ namespace bizFacade
return dt;
}
+ ///
+ /// 测量数据发动机在线状态_查询_是否二次确认是否工作
+ ///
+ /// 工位号
+ /// 订单号
+ /// 总成号
+ ///
+ public static DataTable EngineIsNeedTwoWorkConfirm(string opName, string OrderForm, string EngineID)
+ {
+ DataTable dt = new DataTable();
+ string produceName = "测量数据发动机在线状态_查询_是否二次确认是否工作";
+ SqlParameter[] thisParms = new SqlParameter[3];
+ thisParms[0] = new System.Data.SqlClient.SqlParameter("@工位号", opName);
+ thisParms[1] = new System.Data.SqlClient.SqlParameter("@订单号", OrderForm);
+ thisParms[2] = new System.Data.SqlClient.SqlParameter("@总成号", EngineID);
+ DataAccess.ExecuteStoredProcedure(produceName, ref thisParms, out dt);
+ return dt;
+ }
+
///
/// 北汽福田_工位是否允许工作_判断
///
@@ -1409,4 +1428,4 @@ namespace bizFacade
}
}
-}
\ No newline at end of file
+}
diff --git a/MisDataFunction/MesServer.Function/Function1051/OpcServer/EngineGetOver.cs b/MisDataFunction/MesServer.Function/Function1051/OpcServer/EngineGetOver.cs
index e91dff1..5dddd32 100644
--- a/MisDataFunction/MesServer.Function/Function1051/OpcServer/EngineGetOver.cs
+++ b/MisDataFunction/MesServer.Function/Function1051/OpcServer/EngineGetOver.cs
@@ -93,14 +93,17 @@ namespace MesServerFunctions
SendMessage.AsyncSendMessage(message);
return;
}
- //判断该订单数据是否已经工作过,有的话则在WEB跳出弹窗选择 并同时禁止工作
- DataTable dt2 = BaseDataSystemMES.EngineIsTwoWork(OpName, OrderForm, EngineID);
+
+ // 判断是否需要二次确认工作(返修线返修优先,其次已工作过)
+ DataTable dt2 = BaseDataSystemMES.EngineIsNeedTwoWorkConfirm(OpName, OrderForm, EngineID);
if (dt2.Rows[0]["result"].ToString() == "1") //已完成s
{
//不允许工作
MIS_BASE.Write_FixAllow(OpName, false);
- //通知WEB校验重新工作还是跳过 点重新工作给允许工作,点跳过给工作完成
- string message = "MES|Engine_Is_TwoWork|" + OpName + "|1";
+ // 通知WEB校验重新工作还是跳过 点重新工作给允许工作,点跳过给工作完成
+ string msg = dt2.Rows[0]["msg"].ToString().Replace("|", " ").Replace("&", " ");
+ string color = dt2.Rows[0]["color"].ToString();
+ string message = "MES|Engine_Is_TwoWork_Msg|" + OpName + "|" + msg + "&" + color;
SendMessage.AsyncSendMessage(message);
}
else
diff --git a/MisDataFunction/MesServer.Function/Function1052/OpcServer/EngineGetOver.cs b/MisDataFunction/MesServer.Function/Function1052/OpcServer/EngineGetOver.cs
index d8add3f..cc8686e 100644
--- a/MisDataFunction/MesServer.Function/Function1052/OpcServer/EngineGetOver.cs
+++ b/MisDataFunction/MesServer.Function/Function1052/OpcServer/EngineGetOver.cs
@@ -97,14 +97,16 @@ namespace MesServerFunctions
//SendMessage.ShowMoby(OpName);
// ET030 无屏幕 不判断是否重复工作过
- //判断该订单数据是否已经工作过,有的话则在WEB跳出弹窗选择 并同时禁止工作
- DataTable dt2 = BaseDataSystemMES.EngineIsTwoWork(OpName, OrderForm, EngineID);
- if (dt2.Rows[0]["result"].ToString() == "1" && isBackWork == 0) //已完成
+ // 判断是否需要二次确认工作(返修线返修优先,其次已工作过)
+ DataTable dt2 = BaseDataSystemMES.EngineIsNeedTwoWorkConfirm(OpName, OrderForm, EngineID);
+ if (dt2.Rows[0]["result"].ToString() == "1") //已完成s
{
//不允许工作
MIS_BASE.Write_FixAllow(OpName, false);
- //通知WEB校验重新工作还是跳过 点重新工作给允许工作,点跳过给工作完成
- string message = "MES|Engine_Is_TwoWork|" + OpName + "|1";
+ // 通知WEB校验重新工作还是跳过 点重新工作给允许工作,点跳过给工作完成
+ string msg = dt2.Rows[0]["msg"].ToString().Replace("|", " ").Replace("&", " ");
+ string color = dt2.Rows[0]["color"].ToString();
+ string message = "MES|Engine_Is_TwoWork_Msg|" + OpName + "|" + msg + "&" + color;
SendMessage.AsyncSendMessage(message);
}
else
diff --git a/测量数据发动机在线状态_查询_是否二次确认是否工作.sql b/测量数据发动机在线状态_查询_是否二次确认是否工作.sql
new file mode 100644
index 0000000..f40d97f
--- /dev/null
+++ b/测量数据发动机在线状态_查询_是否二次确认是否工作.sql
@@ -0,0 +1,64 @@
+IF OBJECT_ID(N'[dbo].[测量数据发动机在线状态_查询_是否二次确认是否工作]', N'P') IS NULL
+BEGIN
+ EXEC(N'CREATE PROCEDURE [dbo].[测量数据发动机在线状态_查询_是否二次确认是否工作] AS BEGIN SET NOCOUNT ON; END')
+END
+GO
+
+ALTER PROCEDURE [dbo].[测量数据发动机在线状态_查询_是否二次确认是否工作]
+@工位号 nvarchar(50) = null,
+@订单号 nvarchar(50) = null,
+@总成号 nvarchar(50) = null
+AS
+BEGIN
+SET NOCOUNT ON;
+
+declare @返修工位号 nvarchar(100) = N''
+declare @故障文本 nvarchar(1000) = N''
+declare @弹窗文本 nvarchar(1200) = N''
+
+-- 返修线返修优先:当前 MA 工位,且该工件存在 ET 工位返工记录。
+IF (@工位号 LIKE N'J07MA%')
+BEGIN
+ SELECT TOP 1
+ @返修工位号 = ISNULL([工位号], N''),
+ @故障文本 = ISNULL([故障文本], N'')
+ FROM [dbo].[北汽福田返工_记录]
+ WHERE [总成号] = @总成号
+ AND [工位号] LIKE N'J07ET%'
+ ORDER BY [操作时间] DESC, [ID] DESC
+
+ IF (@返修工位号 != N'')
+ BEGIN
+ SET @弹窗文本 = N'该工件在' + @返修工位号 + N'工位不合格,不合格故障文本:' + @故障文本 + N',请选择操作方式'
+
+ SELECT
+ 1 AS result,
+ REPLACE(REPLACE(@弹窗文本, N'|', N' '), N'&', N' ') AS msg,
+ N'#ff0000' AS color,
+ N'测试线返修' AS reasonType
+ RETURN
+ END
+END
+
+IF EXISTS (
+ SELECT 1
+ FROM [dbo].[测量数据发动机在线状态]
+ WHERE [工位号] = @工位号
+ AND [订单号] = @订单号
+ AND [发动机号] = @总成号
+)
+BEGIN
+ SELECT
+ 1 AS result,
+ N'该工件已工作完成 请选择操作方式' AS msg,
+ N'#ffcc00' AS color,
+ N'已工作' AS reasonType
+ RETURN
+END
+
+SELECT
+ 2 AS result,
+ N'' AS msg,
+ N'#ff0000' AS color,
+ N'' AS reasonType
+END