This commit is contained in:
梁骏愉
2025-02-10 09:24:44 +08:00
parent 3d15fd4b7e
commit 17bb7e4131
56 changed files with 15484 additions and 502 deletions

View File

@@ -26,8 +26,8 @@ namespace GZ.LJY000.Enpower.POSH_W5WagonPlan.BillConvertPlugInEx
{
var sqlL = $@"/*dialect*/
WITH #W5预测单 AS (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSTARTDATE,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID
;WITH #W5预测单 AS (
SELECT t0.FBILLNO,t0.FID,t0e.FEntryID,t0e.FSTARTDATE,t0e.FYEAR,t0e.FMATERIALID,t0e.FUNITID,t0e.FCUSTID
,FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9,FD10,FD11,FD12,FD13,FD14,FD15,FD16,FD17,FD18,FD19,FD20,FD21,FD22,FD23,FD24,FD25,FD26,FD27,FD28,FD29,FD30,FD31,FD32,FD33,FD34,FD35,FD36,FD37,FD38,FD39,FD40,FD41,FD42
FROM T_PLN_FORECAST2W5 t0 --表头
INNER JOIN T_PLN_FORECAST2W5ENTRY t0e on t0.FID = t0e.FID --表体
@@ -45,7 +45,7 @@ WITH #W5预测单 AS (
) AS t1
)
, #数据二次处理 AS (
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID
,t0.FQTY
,t0.RN
,CASE t0.初始周天 WHEN 1 THEN 7 ELSE t0.初始周天 - 1 END '初始周天'
@@ -55,7 +55,8 @@ WITH #W5预测单 AS (
,DATEADD(SECOND,-1,DATEADD(DAY, 1, t0.日期)) AS 'endDate'
FROM #W5装车计划 t0
)
SELECT *
SELECT t0.*
INTO #table1
FROM (
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t1.groupby
FROM #W5预测单 t0 ,
@@ -64,15 +65,38 @@ FROM (
) tt
CROSS APPLY (
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID
,SUM(t0.FQTY) '最终数量'
,MIN(t0.日期) minDate
,MAX(t0.endDate) maxDate
FROM #数据二次处理 t0
WHERE tt.FEntryID = t0.FEntryID AND (t0.初始周天 + t0.RN - 1) > (tt.groupby -1) * 7 AND (t0.初始周天 + t0.RN-1) <= tt.groupby * 7
GROUP BY t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR
GROUP BY t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID
) t0
ORDER BY t0.minDate ASC
declare @startDate date,@endDate date
SELECT @startDate = MIN(t0.minDate),@endDate = MAX(t0.maxDate)
FROM #table1 t0
;WITH #发货通知单 AS (
SELECT t0.FBILLNO,t0.FDATE,t0.FCUSTOMERID,t0e.FMATERIALID,t0e.FQTY,t0e.F_PNDR_BASEQTY3 '2次调拨'
FROM T_SAL_DELIVERYNOTICE t0
INNER JOIN T_SAL_DELIVERYNOTICEENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
AND t0.FDATE between @startDate AND @endDate
)
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FYEAR,t0.FCUSTID,t0.minDate,t0.maxDate
,CASE WHEN t0.最终数量 < (ISNULL(t1.FQTY,0) + ISNULL(t1.[2次调拨],0)) THEN 0 ELSE t0.最终数量 - (ISNULL(t1.FQTY,0) + ISNULL(t1.[2次调拨],0)) END AS '最终数量'
FROM #table1 t0
OUTER APPLY (
SELECT SUM(t1.FQTY) FQTY ,SUM(t1.[2次调拨]) [2次调拨]
FROM #发货通知单 t1
WHERE 1 = 1 AND t1.FMATERIALID = t0.FMATERIALID
AND t0.FCUSTID = t1.FCUSTOMERID
AND t1.FDATE BETWEEN t0.minDate AND t0.maxDate
) t1
ORDER BY t0.minDate ASC
DROP TABLE #table1
";
//throw new Exception(sqlL);
var dataList = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL);
@@ -91,8 +115,11 @@ ORDER BY t0.minDate ASC
var unitFId = e.TargetBusinessInfo.GetField("FUnitID") as BaseDataField;
var unitBaseFId = e.TargetBusinessInfo.GetField("FBaseUnitID") as BaseDataField;
//仓库
var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
////仓库
//var stockFid = e.TargetBusinessInfo.GetField("FStockId") as BaseDataField;
//客户
var custFid = e.TargetBusinessInfo.GetField("FCustId") as BaseDataField;
foreach (var item in dataList)
{
@@ -127,6 +154,14 @@ ORDER BY t0.minDate ASC
// entity["FOwnerId"] = ownerObj;
//}
var custId = item["FCUSTID"].Long2Int();
if(custId > 0)
{
var custObj = BusinessDataServiceHelper.LoadSingle(this.Context, custId, custFid.RefFormDynamicObjectType);
entity["CustID_Id"] = custId;
entity["CustID"] = custObj;
}
//# 计量单位
var unitId = item["FUNITID"].Long2Int();
if (unitId > 0)