1
This commit is contained in:
@@ -4,6 +4,7 @@ using Kingdee.BOS.Core.Metadata.FieldElement;
|
||||
using Kingdee.BOS.Orm.DataEntity;
|
||||
using Kingdee.BOS.ServiceHelper;
|
||||
using Kingdee.BOS.Util;
|
||||
using Kingdee.BOS.WebApi.FormService;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@@ -26,7 +27,8 @@ namespace GZ.LJY000.Enpower.POSH_Year_Forecast.BillConvertPlugInEx
|
||||
{
|
||||
|
||||
var sqlL = $@"/*dialect*/
|
||||
WITH #年度预测 AS (
|
||||
|
||||
;WITH #年度预测 AS (
|
||||
SELECT t1.FBILLNO,t1.FID,t1.FEntryID,t1.FSEQ,t1.FMATERIALID,t1.FUNITID,t1.FCUSTID
|
||||
,t1.FQTY,t1.FYEAR '年份' ,REPLACE(T1.DATEM,'FMONTH','') '月份'
|
||||
,t1.FYEAR * 100 + REPLACE(T1.DATEM,'FMONTH','') 周期
|
||||
@@ -45,6 +47,8 @@ SELECT tt.*
|
||||
,DATEADD(SECOND,-1,DATEADD(MONTH, 1, tt.startDate)) AS 'endDate'
|
||||
--,t0.FQTY AS 'W5数量'
|
||||
,CASE WHEN ISNULL(t0.FQTY,0) > tt.FQTY THEN 0 ELSE tt.FQTY - ISNULL(t0.FQTY,0) END '最终数量'
|
||||
,tt.FQTY 'F_OriginalQty',t0.FQTY 'W5Qty'
|
||||
INTO #table1
|
||||
FROM #年度预测 tt
|
||||
OUTER APPLY (
|
||||
SELECT t1.FMATERIALID,SUM(t1.FQTY) FQTY
|
||||
@@ -64,7 +68,39 @@ FROM #年度预测 tt
|
||||
GROUP BY t1.FMATERIALID,t1.FYEAR * 100 + DATEPART(MONTH,(DATEADD(DAY,CONVERT(int,REPLACE(T1.DATEM,'FD','')) - 1,t1.FSTARTDATE)))
|
||||
) t0
|
||||
WHERE tt.FBILLNO = '{convertBillNo.ToString()}'
|
||||
ORDER BY tt.startDate,tt.FSEQ
|
||||
|
||||
declare @startDate date,@endDate date
|
||||
SELECT @startDate = MIN(t0.startDate),@endDate = MAX(t0.endDate)
|
||||
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
|
||||
)
|
||||
,#最终数据 AS (
|
||||
SELECT t0.FBILLNO,t0.FID,t0.FEntryID,t0.FMATERIALID,t0.FUNITID,t0.FCUSTID,t0.startDate,t0.endDate,t0.FSEQ
|
||||
,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 '最终数量'
|
||||
,t0.年份,t0.月份
|
||||
,ISNULL(t1.FQTY,0) 'F_DelivQty',ISNULL(t1.[2次调拨],0) 'F_Direct2Qty'
|
||||
,t0.F_OriginalQty,t0.W5Qty
|
||||
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.startDate AND t0.endDate
|
||||
) t1
|
||||
)
|
||||
SELECT t0.*
|
||||
FROM #最终数据 t0
|
||||
WHERE t0.最终数量 > 0
|
||||
ORDER BY t0.startDate,t0.FSEQ
|
||||
|
||||
DROP TABLE #table1
|
||||
";
|
||||
//throw new Exception(sqlL);
|
||||
var dataList = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL);
|
||||
@@ -103,14 +139,22 @@ ORDER BY tt.startDate,tt.FSEQ
|
||||
entity["ReserveType"] = (matObj["MaterialPlan"] as DynamicObjectCollection)[0]["ReserveType"];
|
||||
//均化周期
|
||||
entity["AveraCycle"] = 1;
|
||||
var MaterialBase = (matObj["MaterialBase"] as DynamicObjectCollection)[0] as DynamicObject;
|
||||
var MaterialBase = (matObj["MaterialBase"] as DynamicObjectCollection)[0];
|
||||
|
||||
var baseUnitId_Id = MaterialBase["BaseUnitId_Id"].Long2Int();
|
||||
var qty = decimal.Parse(item["最终数量"].ToString());
|
||||
entity["Qty"] = qty;
|
||||
|
||||
entity["F_DelivQty"] = decimal.Parse(item["F_DelivQty"].ToString());
|
||||
entity["F_Direct2Qty"] = decimal.Parse(item["F_Direct2Qty"].ToString());
|
||||
entity["F_OriginalQty"] = decimal.Parse(item["F_OriginalQty"].ToString());
|
||||
entity["F_W5Qty"] = decimal.Parse(item["W5Qty"].ToString());
|
||||
|
||||
entity["StartDate"] = item["startDate"];
|
||||
entity["EndDate"] = item["endDate"];
|
||||
|
||||
entity["F_Year"] = item["年份"];
|
||||
entity["F_Month"] = item["月份"];
|
||||
entity["FCloseStatus"] = "A";
|
||||
////# 货主类型
|
||||
//entity["FOwnerTypeId"] = item["FOWNERTYPEID"];
|
||||
////# 货主
|
||||
@@ -163,6 +207,23 @@ ORDER BY tt.startDate,tt.FSEQ
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
string jsonData = @"
|
||||
{{
|
||||
""CreateOrgId"": ""{fileName}"",
|
||||
""Numbers"": [],
|
||||
""Ids"": """",
|
||||
""PkEntryIds"": [],
|
||||
""UseOrgId"": {InterId},
|
||||
""NetworkCtrl"": ""{formBillNo}"",
|
||||
""IgnoreInterationFlag"": """",
|
||||
}}";
|
||||
|
||||
WebApiServiceCall.Execute(this.Context, "PLN_FORECAST", "BillClose", jsonData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user