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