From 001a03c747ad5ce0fc38ec249845ac0bef10f622 Mon Sep 17 00:00:00 2001 From: liangjunyu <13726812+shifang-tianhua_0@user.noreply.gitee.com> Date: Tue, 28 Oct 2025 17:55:28 +0800 Subject: [PATCH] 1 --- Context/SQL/GetWPLAN_MN.sql | 89 +++++++++++++++++++++++++++++ Controllers/EnpowerApiController.cs | 4 +- Models/FormIDType.cs | 7 +++ 3 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 Context/SQL/GetWPLAN_MN.sql diff --git a/Context/SQL/GetWPLAN_MN.sql b/Context/SQL/GetWPLAN_MN.sql new file mode 100644 index 0000000..c0119df --- /dev/null +++ b/Context/SQL/GetWPLAN_MN.sql @@ -0,0 +1,89 @@ +USE [AIS20220929093310] +GO +/****** Object: UserDefinedFunction [dbo].[GetWPLAN_MN] Script Date: 2025-10-27 11:50:09 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +-- ============================================= +-- Author: +-- Create date: +-- Description: +-- ============================================= +ALTER FUNCTION [dbo].[GetWPLAN_MN] +( + @ERP_MO varchar(255), + @orgid int +) +RETURNS TABLE +AS +RETURN +( + /*dialect*/ + SELECT * FROM ( + SELECT DISTINCT P1.FBILLNO WPLAN_MO,P1.FMOBILLNO ERP_MO_ID,P1.FMOENTRYSEQ MO_SEQ,M1.FNUMBER PROD_ID,P1.FQty P_QTY + ,M2.FNUMBER MTRL_ID,CASE WHEN P3.FPARENTROWID='' THEN 'Y' ELSE 'N' END IS_MAIN + ,CASE WHEN P3.FPARENTROWID='' THEN M2.FNUMBER ELSE (SELECT M.FNUMBER FROM T_PRD_PPBOMENTRY C1 + INNER JOIN T_PRD_PPBOMENTRY_C C3 ON C3.FID=C1.FID AND C3.FENTRYID=C1.FENTRYID AND C3.FROWID=P3.FPARENTROWID + INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID=C1.FMATERIALID + WHERE C1.FID=P2.FID) END MAIN_ID + ,CASE WHEN P3.FISSUETYPE = '7' AND CHARINDEX('93',M2.FNUMBER) = 0 AND CHARINDEX('94',M2.FNUMBER) = 0 AND CHARINDEX('95',M2.FNUMBER) = 0 THEN 0 + ELSE ISNULL(t2e.DOSAGE, + CASE P2.FMUSTQTY WHEN 0 THEN ISNULL(t3e.DOSAGE,ISNULL(( + SELECT ROUND(SUM(t4e.FNUMERATOR) / AVG(t4e.FDENOMINATOR),6) DOSAGE FROM T_PRD_PPBOMENTRY t4e + WHERE 1 = 1 AND t4e.FID = P2.FID AND t4e.FREPLACEGROUP = P2.FREPLACEGROUP AND t4e.FDENOMINATOR != 1 AND t4e.FUSERATE > 0 AND t4e.FMUSTQTY > 0 GROUP BY t4e.FREPLACEGROUP + ),0)) + ELSE ROUND(P2.FNUMERATOR/P2.FDENOMINATOR,6) END + ) END AS DOSAGE --2024/11/27 + ,CASE WHEN P3.FISSUETYPE = '7' AND CHARINDEX('93',M2.FNUMBER) = 0 AND CHARINDEX('94',M2.FNUMBER) = 0 AND CHARINDEX('95',M2.FNUMBER) = 0 THEN 0 ELSE (CASE WHEN P2.FMUSTQTY = 0 THEN 0 ELSE P2.FBASESTDQTY END) END NN_QTY + ,CASE WHEN P3.FISSUETYPE = '7' AND CHARINDEX('93',M2.FNUMBER) = 0 AND CHARINDEX('94',M2.FNUMBER) = 0 AND CHARINDEX('95',M2.FNUMBER) = 0 THEN 0 ELSE P2.FMUSTQTY END TN_QTY + ,P2.FSEQ SEQ,P3.FPOSITIONNO POINT_STR + ,CASE P2.FMATERIALTYPE WHEN 2 THEN 'Y' ELSE 'N' END IS_BACK + --,P2.FNUMERATOR AS '分子',P2.FDENOMINATOR AS '分母',P2.FUSERATE AS '使用比例',P2.FREPLACEGROUP + FROM T_PRD_PPBOM P1 + INNER JOIN T_PRD_PPBOMENTRY P2 ON P2.FID=P1.FID + OUTER APPLY ( + SELECT ROUND(SUM(t2e.FNUMERATOR)/AVG(t2e.FDENOMINATOR),6) DOSAGE + FROM T_PRD_PPBOMENTRY t2e + WHERE 1 = 1 + AND t2e.FID = P2.FID AND t2e.FREPLACEGROUP = P2.FREPLACEGROUP + AND t2e.FUSERATE > 0 AND t2e.FMUSTQTY > 0 + AND t2e.FDENOMINATOR = P1.FQTY + GROUP BY t2e.FREPLACEGROUP + ) t2e + OUTER APPLY ( + SELECT ROUND(SUM(t3e.FNUMERATOR)/AVG(t3e.FDENOMINATOR),6) DOSAGE + FROM T_PRD_PPBOMENTRY t3e + WHERE 1 = 1 + AND t3e.FID = P2.FID AND t3e.FREPLACEGROUP = P2.FREPLACEGROUP + AND t3e.FDENOMINATOR = 1 + AND t3e.FUSERATE > 0 AND t3e.FMUSTQTY > 0 + GROUP BY t3e.FREPLACEGROUP + ) t3e + INNER JOIN T_PRD_PPBOMENTRY_C P3 ON P3.FID=P2.FID AND P3.FENTRYID=P2.FENTRYID + INNER JOIN T_BD_MATERIAL M1 ON M1.FMATERIALID=P1.FMATERIALID + INNER JOIN T_BD_MATERIAL M2 ON M2.FMATERIALID=P2.FMATERIALID + --INNER JOIN T_PRD_MOENTRY MO2 ON MO2.FID=P2.FMOID AND MO2.FENTRYID=P2.FMOENTRYID + WHERE P1.FMOBILLNO=@ERP_MO AND P1.FPrdOrgId=@orgid + UNION + SELECT DISTINCT P1.FBILLNO WPLAN_MO,P1.FSUBBILLNO ERP_MO_ID,P1.FSUBREQENTRYSEQ MO_SEQ,M1.FNUMBER PROD_ID,P1.FQty P_QTY + ,M2.FNUMBER MTRL_ID,CASE WHEN P3.FPARENTROWID='' THEN 'Y' ELSE 'N' END IS_MAIN + ,CASE WHEN P3.FPARENTROWID='' THEN M2.FNUMBER ELSE (SELECT M.FNUMBER FROM T_SUB_PPBOMENTRY C1 + INNER JOIN T_SUB_PPBOMENTRY_C C3 ON C3.FID=C1.FID AND C3.FENTRYID=C1.FENTRYID AND C3.FROWID=P3.FPARENTROWID + INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID=C1.FMATERIALID + WHERE C1.FID=P2.FID) END MAIN_ID + --,CASE P4.FNOPICKEDQTY WHEN 0 THEN 0 ELSE ROUND(P2.FNUMERATOR/P2.FDENOMINATOR,6) END DOSAGE + ,ROUND(P2.FNUMERATOR/P2.FDENOMINATOR,6) DOSAGE + ,P2.FSTDQTY NN_QTY,P4.FNOPICKEDQTY TN_QTY,P2.FSEQ SEQ,P3.FPOSITIONNO POINT_STR + ,CASE P2.FMATERIALTYPE WHEN 2 THEN 'Y' ELSE 'N' END IS_BACK--,'' REMARK + FROM T_SUB_PPBOM P1 + INNER JOIN T_SUB_PPBOMENTRY P2 ON P2.FID=P1.FID + INNER JOIN T_SUB_PPBOMENTRY_C P3 ON P3.FID=P2.FID AND P3.FENTRYID=P2.FENTRYID + INNER JOIN T_SUB_PPBOMENTRY_Q P4 ON P4.FID=P2.FID AND P4.FENTRYID=P2.FENTRYID + INNER JOIN T_BD_MATERIAL M1 ON M1.FMATERIALID=P1.FMATERIALID + INNER JOIN T_BD_MATERIAL M2 ON M2.FMATERIALID=P2.FMATERIALID + WHERE P1.FSUBBILLNO=@ERP_MO AND P1.FSubOrgId=@orgid + ) A +) + diff --git a/Controllers/EnpowerApiController.cs b/Controllers/EnpowerApiController.cs index f38f9a8..5495123 100644 --- a/Controllers/EnpowerApiController.cs +++ b/Controllers/EnpowerApiController.cs @@ -1966,6 +1966,8 @@ namespace RB_MES_API.Controllers return JsonConvert.SerializeObject(breakData); } + string logGuid = Guid.NewGuid().ToString("N"); + Stopwatch checkQueueIdHasFlagWatch = new Stopwatch(); // 寮濮嬭鏃 checkQueueIdHasFlagWatch.Start(); @@ -1975,7 +1977,7 @@ namespace RB_MES_API.Controllers // 鍋滄璁℃椂 checkQueueIdHasFlagWatch.Stop(); // 鑾峰彇鎵ц鏃堕棿 - LogHelper.WriteLog($"{DocType}:妫娴嬫槸鍚﹀凡缁忔帹閫佽繃鎴栬呮鍦ㄦ帹閫佷腑 鎵ц鏃堕棿: {checkQueueIdHasFlagWatch.Elapsed.TotalMilliseconds} 姣"); + LogHelper.WriteLog($"{DocType}:妫娴嬫槸鍚﹀凡缁忔帹閫佽繃鎴栬呮鍦ㄦ帹閫佷腑{{{logGuid}}}鎵ц鏃堕棿: {checkQueueIdHasFlagWatch.Elapsed.TotalMilliseconds} 姣"); if (checkQueueIdHasFlag) { diff --git a/Models/FormIDType.cs b/Models/FormIDType.cs index d765793..9dc13d1 100644 --- a/Models/FormIDType.cs +++ b/Models/FormIDType.cs @@ -74,5 +74,12 @@ namespace RB_MES_API.Models /// [ForeignKey("FFunctionID")] public virtual FunctionList functions { get; set; } //姝ゅ涓嶈兘 = new FunctionList()锛屽惁鍒欎慨鏀规椂涔熶細澶氫竴寮犲崟鎹 + + /// + /// 浣跨敤鏃ュ織鐨勫敮涓鏍囪瘑瀛楁鍚 + /// + [NotMapped] + public string LogGuid { get; set; } = string.Empty; + } }