LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单'))
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context,dssql);
stringsqlsa=($@"/*dialect*/SELECT * FROM (SELECT MIN(T1.FSEQ) AS FSEQ,T1.FDate--业务日期
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费
JB.FVOLUME,-- 体积
W.F_ORA_DECIMAL_QTR, -- 仓租单价
W.F_ORA_DECIMAL_83G,-- 装车单价
W.F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, -- 进仓费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee -- 出仓费
FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1) T1
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1,JB.FVOLUME,W.F_ORA_DECIMAL_QTR,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费
JB.FVOLUME,-- 体积
W.F_ORA_DECIMAL_QTR, -- 仓租单价
W.F_ORA_DECIMAL_83G,-- 装车单价
W.F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, -- 进仓费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee -- 出仓费
FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT1) T1
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT1,JB.FVOLUME,W.F_ORA_DECIMAL_QTR,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT1,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单'))
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context,dssql);
#endregion
// 执行SQL查询
stringsqlsa=($@"/*dialect*/SELECT * FROM (SELECT MIN(FSEQ) AS FSEQ,FDate--业务日期
,ISNULL(FORMAT((CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY)), '0.####'), '0') AS F_LQKJ_Totalvolume--总体积
,ISNULL(FORMAT((W.F_ORA_DECIMAL_QTR), '0.####'), '0') AS F_LQKJ_Warehouserent--仓租单价
,ISNULL(FORMAT(((CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY)) * W.F_ORA_DECIMAL_QTR), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloadingfee--卸车费单价
,ISNULL(FORMAT((T1.FSTOCKINQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loadingfee --装车费单价
,ISNULL(FORMAT((T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * T1.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loading--装车费
,ISNULL(FORMAT((W.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloadingfee--卸车费单价
--,ISNULL(FORMAT((T1.FSTOCKINQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * W.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,ISNULL(FORMAT((W.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loadingfee --装车费单价
--,ISNULL(FORMAT((T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * W.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loading--装车费
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loading--装车费
,ISNULL(FORMAT((CS.F_LQKJ_Sortingfees), '0.####'), '0') AS F_LQKJ_Sortingfees--分拣费单价
,ISNULL(FORMAT((T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * CS.F_LQKJ_Sortingfees), '0.####'), '0') AS F_LQKJ_Sorting--分拣费
,ISNULL(FORMAT((SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费