1
This commit is contained in:
89
Context/SQL/GetWPLAN_MN.sql
Normal file
89
Context/SQL/GetWPLAN_MN.sql
Normal file
@@ -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: <Author,,Name>
|
||||||
|
-- Create date: <Create Date,,>
|
||||||
|
-- Description: <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 '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',P2.FDENOMINATOR AS '<EFBFBD><EFBFBD>ĸ',P2.FUSERATE AS 'ʹ<EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>',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
|
||||||
|
)
|
||||||
|
|
||||||
@@ -1966,6 +1966,8 @@ namespace RB_MES_API.Controllers
|
|||||||
return JsonConvert.SerializeObject(breakData);
|
return JsonConvert.SerializeObject(breakData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string logGuid = Guid.NewGuid().ToString("N");
|
||||||
|
|
||||||
Stopwatch checkQueueIdHasFlagWatch = new Stopwatch();
|
Stopwatch checkQueueIdHasFlagWatch = new Stopwatch();
|
||||||
// 开始计时
|
// 开始计时
|
||||||
checkQueueIdHasFlagWatch.Start();
|
checkQueueIdHasFlagWatch.Start();
|
||||||
@@ -1975,7 +1977,7 @@ namespace RB_MES_API.Controllers
|
|||||||
// 停止计时
|
// 停止计时
|
||||||
checkQueueIdHasFlagWatch.Stop();
|
checkQueueIdHasFlagWatch.Stop();
|
||||||
// 获取执行时间
|
// 获取执行时间
|
||||||
LogHelper.WriteLog($"{DocType}:检测是否已经推送过或者正在推送中 执行时间: {checkQueueIdHasFlagWatch.Elapsed.TotalMilliseconds} 毫秒");
|
LogHelper.WriteLog($"{DocType}:检测是否已经推送过或者正在推送中{{{logGuid}}}执行时间: {checkQueueIdHasFlagWatch.Elapsed.TotalMilliseconds} 毫秒");
|
||||||
|
|
||||||
if (checkQueueIdHasFlag)
|
if (checkQueueIdHasFlag)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,5 +74,12 @@ namespace RB_MES_API.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ForeignKey("FFunctionID")]
|
[ForeignKey("FFunctionID")]
|
||||||
public virtual FunctionList functions { get; set; } //此处不能 = new FunctionList(),否则修改时也会多一张单据
|
public virtual FunctionList functions { get; set; } //此处不能 = new FunctionList(),否则修改时也会多一张单据
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 使用日志的唯一标识字段名
|
||||||
|
/// </summary>
|
||||||
|
[NotMapped]
|
||||||
|
public string LogGuid { get; set; } = string.Empty;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user