From 79de4dbd6469b3768e8c4dc3dcd0ef945ba7d0ed Mon Sep 17 00:00:00 2001 From: yangkunan Date: Fri, 20 Dec 2024 15:37:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E8=B4=A2=E5=8A=A1=E9=83=A8?= =?UTF-8?q?=E5=88=86+=E5=BA=84=E5=9B=AD=E4=B9=8B=E6=97=85=E5=9F=8E?= =?UTF-8?q?=E5=B8=82=E7=BB=8F=E7=90=86=E6=9D=83=E9=99=90+=E8=B5=84?= =?UTF-8?q?=E9=87=91=E6=97=A5=E6=8A=A5=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FineReport/财务主题/看板/资金管理驾驶舱.sql | 923 +++++++++++++----- FineReport/销售主题/报表/庄园之旅场次.sql | 68 +- FineReport/销售主题/看板/首页.sql | 986 +++++++++++++++++++- 3 files changed, 1711 insertions(+), 266 deletions(-) diff --git a/FineReport/财务主题/看板/资金管理驾驶舱.sql b/FineReport/财务主题/看板/资金管理驾驶舱.sql index 5b152aa..e8330d2 100644 --- a/FineReport/财务主题/看板/资金管理驾驶舱.sql +++ b/FineReport/财务主题/看板/资金管理驾驶舱.sql @@ -774,272 +774,699 @@ ORDER BY to_char(trade_time,'MM') -- 期初余额 斌哥处理 - -- 资金收入/流入 WITH amt_base AS -( + ( -- 映射日报科目对照关系 - SELECT - stat_date -- 统计日期 - -- todo:期初余额 - -- 其中:可用存款 - -- 银行承兑汇票 - -- 香港公司账户资金 - -- 受限资金 + SELECT + stat_date -- 统计日期 + -- todo:期初余额 + -- 其中:可用存款 + -- 银行承兑汇票 + -- 香港公司账户资金 + -- 受限资金 - -- 收入 - ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code <> '0201' THEN amt ELSE 0 END) AS finished_in_amt -- 成品酒销售回款 - ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code = '0201' THEN amt ELSE 0 END) AS loose_in_amt -- 散酒销售回款 - ,SUM(CASE WHEN trade_direction = '收入' AND trade_item IN('共建基金','红包充值费用','转货款','保证金') THEN amt ELSE 0 END) AS redpkg_in_amt -- 红包款/转货款/保证金/共建 - ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('取得贷款','开票') THEN amt ELSE 0 END) AS bank_in_amt -- 银行融资 - ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('搬迁补偿/政府补助') THEN amt ELSE 0 END) AS compen_in_amt -- 政府补助 - ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('对外销售非酒类回款','吸收投资','税费返还','其他收入') AND trade_item not IN('红包充值费用','转货款') THEN amt ELSE 0 END) AS other_in_amt -- 其他零星收款 - -- 支出 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('原材料','辅料','低值易耗') THEN amt ELSE 0 END) AS low_mater_out_amt -- 原辅低耗材料 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('散酒') THEN amt ELSE 0 END) AS loose_liquor_out_amt -- 外购散酒 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('外购包材','外协加工费') THEN amt ELSE 0 END) AS outsourced_out_amt -- 外购包材/外协加工 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它制造费用','水电气费') THEN amt ELSE 0 END) AS make_out_amt -- 制造费用/能源费用 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('广告费','市场活动投入','其它销售费用','委外服务(庄园)','酒店采购','储运费') THEN amt ELSE 0 END) AS ad_out_amt -- 广告/市场活动/庄园采购/储运 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退共建基金','票据变现收入') THEN amt ELSE 0 END) AS build_out_amt -- 共建支出 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退经销商货款') THEN amt ELSE 0 END) AS dealer_out_amt -- 经销商退款 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('职工薪酬及福利') THEN amt ELSE 0 END) AS salary_out_amt -- 薪酬及福利 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('税费') THEN amt ELSE 0 END) AS tax_out_amt -- 税金缴纳 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它管理费用','财务手续费用','研发费用') THEN amt ELSE 0 END) AS manage_out_amt -- 管理费用/研发费用 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土地支出') THEN amt ELSE 0 END) AS land_out_amt -- 土地支出 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土建支出') THEN amt ELSE 0 END) AS land_build_out_amt -- 土建支出 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('设备支出','维修支出') THEN amt ELSE 0 END) AS repair_out_amt -- 设备及维修支出 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('偿还贷款') THEN amt ELSE 0 END) AS repay_out_amt -- 归还贷款 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('利息支出') THEN amt ELSE 0 END) AS interest_out_amt -- 利息支出 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('分配股利') THEN amt ELSE 0 END) AS dividend_out_amt -- 分配股利 - ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退保证金','对外捐赠','支付其他代收代付','其他(含未确认支出)','票据变现支出') THEN amt ELSE 0 END) - + -1 * SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in('票据变现收入') THEN amt ELSE 0 END ) - AS other_out_amt -- 其他(捐赠等) + -- 收入 + ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code <> '0201' THEN amt ELSE 0 END) AS finished_in_amt -- 成品酒销售回款 + ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code = '0201' THEN amt ELSE 0 END) AS loose_in_amt -- 散酒销售回款 + ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in ('保证金','共建基金') THEN amt ELSE 0 END) + + SUM(CASE WHEN trade_direction = '收入' AND trade_item IN('红包充值费用','转货款') THEN amt ELSE 0 END) AS redpkg_in_amt -- 红包款/转货款/保证金/共建 + ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('取得贷款','开票') THEN amt ELSE 0 END) AS bank_in_amt -- 银行融资 + ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('搬迁补偿/政府补助') THEN amt ELSE 0 END) AS compen_in_amt -- 政府补助 + ,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('对外销售非酒类回款','吸收投资','税费返还','其他收入(含未确认收入)','票据变现收入','利息收入') THEN amt ELSE 0 END) + + -1 * SUM(CASE WHEN trade_direction = '收入' AND trade_item IN('红包充值费用','转货款') THEN amt ELSE 0 END) + AS other_in_amt -- 其他零星收款 + -- 支出 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('原材料','辅料','低值易耗') THEN amt ELSE 0 END) AS low_mater_out_amt -- 原辅低耗材料 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('散酒') THEN amt ELSE 0 END) AS loose_liquor_out_amt -- 外购散酒 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('外购包材','外协加工费') THEN amt ELSE 0 END) AS outsourced_out_amt -- 外购包材/外协加工 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它制造费用','水电气费') THEN amt ELSE 0 END) AS make_out_amt -- 制造费用/能源费用 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('广告费','市场活动投入','其它销售费用','委外服务(庄园)','酒店采购','储运费') THEN amt ELSE 0 END) AS ad_out_amt -- 广告/市场活动/庄园采购/储运 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退共建基金') THEN amt ELSE 0 END) + + SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in('票据变现收入') THEN amt ELSE 0 END ) + AS build_out_amt -- 共建支出 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退经销商货款') THEN amt ELSE 0 END) AS dealer_out_amt -- 经销商退款 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('职工薪酬及福利') THEN amt ELSE 0 END) AS salary_out_amt -- 薪酬及福利 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('税费') THEN amt ELSE 0 END) AS tax_out_amt -- 税金缴纳 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它管理费用','财务手续费用','研发费用') THEN amt ELSE 0 END) AS manage_out_amt -- 管理费用/研发费用 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土地支出') THEN amt ELSE 0 END) AS land_out_amt -- 土地支出 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土建支出') THEN amt ELSE 0 END) AS land_build_out_amt -- 土建支出 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('设备支出','维修支出') THEN amt ELSE 0 END) AS repair_out_amt -- 设备及维修支出 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('偿还贷款') THEN amt ELSE 0 END) AS repay_out_amt -- 归还贷款 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('利息支出') THEN amt ELSE 0 END) AS interest_out_amt -- 利息支出 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('分配股利') THEN amt ELSE 0 END) AS dividend_out_amt -- 分配股利 + ,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退保证金','对外捐赠','支付其他代收代付','其他(含未确认支出)','票据变现支出','投资支出') THEN amt ELSE 0 END) + + -1 * SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in('票据变现收入') THEN amt ELSE 0 END ) + AS other_out_amt -- 其他(捐赠等) - -- todo:期末余额 + -- todo:期末余额 - FROM dm.dm_fim_fud_indicator fp - where fp.trade_direction IN('收入','支出') - and fp.indi_type='执行' - AND fp.plan_item_name NOT IN ('内部调拨支出','内部调拨收入') - and EXISTS ( - SELECT - 1 - FROM - dm.dm_bi_user_permisson - WHERE - bi_user = '${fine_username}' - AND per_model IN ('all','fim') - AND ( - is_all = 1 - OR per_code = fp.corp_code - ) - ) + FROM dm.dm_fim_fud_indicator fp + where fp.trade_direction IN('收入','支出') + and fp.indi_type='执行' + AND fp.plan_item_name NOT IN ('内部调拨支出','内部调拨收入') + and EXISTS ( + SELECT + 1 + FROM + dm.dm_bi_user_permisson + WHERE + bi_user = '${fine_username}' + AND per_model IN ('all','fim') + AND ( + is_all = 1 + OR per_code = fp.corp_code + ) + ) - AND stat_date >= date '2023-01-01' -GROUP BY stat_date -),amt_base_class AS -( + AND stat_date >= date '2023-01-01' + GROUP BY stat_date + ),amt_base_class AS + ( -- 为方便计算同环比方便,使用扩展方式,而不是计算所有指标 -- 收入 - SELECT - stat_date - ,'收入' AS fee_class - ,'成品酒销售回款' AS fee_type - ,finished_in_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'收入' AS fee_class - ,'散酒销售回款' as fee_type - ,loose_in_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'收入' AS fee_class - ,'红包款/转货款/保证金/共建' as fee_type - ,redpkg_in_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'收入' AS fee_clas - ,'政府补助' as fee_type - ,compen_in_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'收入' AS fee_class - ,'其他零星收款' as fee_type - ,other_in_amt AS amt - FROM amt_base - UNION ALL - -- 支出 - SELECT - stat_date - ,'支出' AS fee_class - ,'原辅低耗材料' as fee_type - ,low_mater_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'外购散酒' as fee_type - ,loose_liquor_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'外购包材/外协加工' as fee_type - ,outsourced_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'制造费用/能源费用' as fee_type - ,make_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'广告/市场活动/庄园采购/储运' as fee_type - ,ad_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'共建支出' as fee_type - ,build_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'经销商退款' as fee_type - ,dealer_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'薪酬及福利' as fee_type - ,salary_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'税金缴纳' as fee_type - ,tax_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'管理费用/研发费用' as fee_type - ,manage_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'土地支出' as fee_type - ,land_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'土建支出' as fee_type - ,land_build_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'设备及维修支出' as fee_type - ,repair_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'归还贷款' as fee_type - ,repay_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'利息支出' as fee_type - ,interest_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'分配股利' as fee_type - ,dividend_out_amt AS amt - FROM amt_base - UNION ALL - SELECT - stat_date - ,'支出' AS fee_class - ,'其他(捐赠等)' as fee_type - ,other_out_amt AS amt - FROM amt_base -) + SELECT + stat_date + ,'收入' AS fee_class + ,'成品酒销售回款' AS fee_type + ,finished_in_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'收入' AS fee_class + ,'散酒销售回款' as fee_type + ,loose_in_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'收入' AS fee_class + ,'红包款/转货款/保证金/共建' as fee_type + ,redpkg_in_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'收入' AS fee_clas + ,'政府补助' as fee_type + ,compen_in_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'收入' AS fee_clas + ,'银行融资' as fee_type + ,bank_in_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'收入' AS fee_class + ,'其他零星收款' as fee_type + ,other_in_amt AS amt + FROM amt_base + UNION ALL + /*增加资金汇兑损益*/ + select date(concat_ws(',',account_year,account_month,'1')) as stat_date + ,'收入' AS fee_class + ,'其他零星收款' as fee_type + ,losses_amt AS amt + from sdi_hzg.exchange_gains_losses + UNION ALL + -- 支出 + SELECT + stat_date + ,'支出' AS fee_class + ,'原辅低耗材料' as fee_type + ,low_mater_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'外购散酒' as fee_type + ,loose_liquor_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'外购包材/外协加工' as fee_type + ,outsourced_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'制造费用/能源费用' as fee_type + ,make_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'广告/市场活动/庄园采购/储运' as fee_type + ,ad_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'共建支出' as fee_type + ,build_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'经销商退款' as fee_type + ,dealer_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'薪酬及福利' as fee_type + ,salary_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'税金缴纳' as fee_type + ,tax_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'管理费用/研发费用' as fee_type + ,manage_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'土地支出' as fee_type + ,land_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'土建支出' as fee_type + ,land_build_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'设备及维修支出' as fee_type + ,repair_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'归还贷款' as fee_type + ,repay_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'利息支出' as fee_type + ,interest_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'分配股利' as fee_type + ,dividend_out_amt AS amt + FROM amt_base + UNION ALL + SELECT + stat_date + ,'支出' AS fee_class + ,'其他(捐赠等)' as fee_type + ,other_out_amt AS amt + FROM amt_base + ) SELECT -fee_class -,fee_type -,SUM(CASE WHEN to_char(stat_date,'yyyy-MM-dd') = '${FORMAT(today(),"yyyy-MM-dd")}' - THEN amt ELSE 0 END) / 10000 AS today_amt -- 本日 -,SUM(CASE WHEN to_char(stat_date,'yyyy-MM') = '${FORMAT(today(),"yyyy-MM")}' - THEN amt ELSE 0 END) / 10000 AS month_amt -- 本月累计 -,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(today(),"yyyy")}' - THEN amt ELSE 0 END) / 10000 AS year_amt -- 本年累计 -,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(YEARDELTA(today(),-1),"yyyy")}' - THEN amt ELSE 0 END) / 10000 AS last_year_amt -- 去年同期累计 + fee_class + ,fee_type + ,SUM(CASE WHEN to_char(stat_date,'yyyy-MM-dd') = '${FORMAT(today(),"yyyy-MM-dd")}' + THEN amt ELSE 0 END) / 10000 AS today_amt -- 本日 + ,SUM(CASE WHEN to_char(stat_date,'yyyy-MM') = '${FORMAT(today(),"yyyy-MM")}' + THEN amt ELSE 0 END) / 10000 AS month_amt -- 本月累计 + ,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(today(),"yyyy")}' + THEN amt ELSE 0 END) / 10000 AS year_amt -- 本年累计 + ,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(YEARDELTA(today(),-1),"yyyy")}' + THEN amt ELSE 0 END) / 10000 AS last_year_amt -- 去年同期累计 FROM amt_base_class GROUP BY fee_type,fee_class ORDER BY -decode(fee_type -,'成品酒销售回款','a' -,'散酒销售回款','b' -,'红包款/转货款/保证金/共建','c' -,'银行融资','d' -,'政府补助','e' -,'其他零星收款','f' -,'原辅低耗材料','g' -,'外购散酒','h' -,'外购包材/外协加工','i' -,'制造费用/能源费用','j' -,'广告/市场活动/庄园采购/储运','k' -,'共建支出','l' -,'经销商退款','m' -,'薪酬及福利','n' -,'税金缴纳','o' -,'管理费用/研发费用','p' -,'土地支出','q' -,'土建支出','r' -,'设备及维修支出','m' -,'归还贷款','n' -,'利息支出','o' -,'分配股利','v' -,'其他(捐赠等)','w' + decode(fee_type + ,'成品酒销售回款','a' + ,'散酒销售回款','b' + ,'红包款/转货款/保证金/共建','c' + ,'银行融资','d' + ,'政府补助','e' + ,'其他零星收款','f' + ,'原辅低耗材料','g' + ,'外购散酒','h' + ,'外购包材/外协加工','i' + ,'制造费用/能源费用','j' + ,'广告/市场活动/庄园采购/储运','k' + ,'共建支出','l' + ,'经销商退款','m' + ,'薪酬及福利','n' + ,'税金缴纳','o' + ,'管理费用/研发费用','p' + ,'土地支出','q' + ,'土建支出','r' + ,'设备及维修支出','m' + ,'归还贷款','n' + ,'利息支出','o' + ,'分配股利','v' + ,'其他(捐赠等)','w' + ) + + +-- ====================================== +-- 本年期初现金余额 +-- ====================================== + +--本月期初 +with md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date=date'2024-08-01' + and a.trade_time0 +), md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date=date'2024-08-01' + and a.trade_time0 +), md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date= date '${sStart_date}' +and trip_end_date <= date '${sEnd_date}' GROUP BY t1.deal_code, t1.team_name, dmd.fist_dept_code, dmd.fist_dept_name, dmd.secd_dept_code, dmd.secd_dept_name, dmd.thrd_dept_code, dmd.thrd_dept_name, dmd.dept_code, dmd.dept_name diff --git a/FineReport/销售主题/看板/首页.sql b/FineReport/销售主题/看板/首页.sql index 9537319..69cd368 100644 --- a/FineReport/销售主题/看板/首页.sql +++ b/FineReport/销售主题/看板/首页.sql @@ -974,4 +974,988 @@ FROM (SELECT stat_date GROUP BY stat_date )t ${IF(len(sStart_mon) > 0,"where to_char(t.stat_date,'yyyy-MM') <= '"+ FORMAT(sStart_mon,'yyyy-MM') +"'","")} -ORDER BY to_char(t.stat_date,'MM') \ No newline at end of file +ORDER BY to_char(t.stat_date,'MM') + +-- ====================================== +-- 财务 +-- ====================================== +WITH amt_base AS + ( +-- 映射日报科目对照关系 + SELECT + stat_date -- 统计日期 + ,plan_item_name + ,trade_direction + ,SUM(amt) AS amt -- 成品酒销售回款 + FROM dm.dm_fim_fud_indicator fp + where fp.trade_direction IN('收入','支出') + and fp.indi_type='执行' + AND fp.plan_item_name NOT IN ('内部调拨支出','内部调拨收入') + and EXISTS ( + SELECT + 1 + FROM + dm.dm_bi_user_permisson + WHERE + bi_user = '${fine_username}' + AND per_model IN ('all','fim') + AND ( + is_all = 1 + OR per_code = fp.corp_code + ) + ) + ${IF(len(sCorp)=0," ","AND fp.corp_code in ('"+sCorp+"')")} + + AND stat_date >= date '2023-01-01' + GROUP BY stat_date,plan_item_name,trade_direction + UNION ALL + select + date(concat_ws(',',account_year,account_month,'1')) as stat_date + ,'其他收入(含未确认收入)' as plan_item_name + ,'收入' AS trade_direction + ,losses_amt AS amt + from sdi_hzg.exchange_gains_losses + where 1=1 + ${IF(len(sCorp)=0," ","AND corp_code in ('"+sCorp+"')")} + ) + +SELECT + plan_item_name + ,trade_direction as fee_class + ,SUM(amt) / 10000 AS amt -- 本日 +FROM amt_base +WHERE 1=1 + AND to_char(stat_date,'yyyy-MM-dd') = '${sEnd_date}' +GROUP BY plan_item_name,trade_direction + + + + +-- 期初余额 + +-- 年 + ${IF(sPeriod_fin=1,"","/*")} + +--本月期初 +with md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date=date'2024-08-01' + and a.trade_time0 +), md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date '0223' +UNION ALL +select + 0 as free_amt -- 其中:可用存款 + , current_balance*nvl(rto.rate,1)/10000 AS bank_amt -- 银行承兑汇票 + ,0 AS hk_amt -- 香港公司账户资金 + ,0 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) +AND amt_type = '票据' +UNION ALL +select + 0 as free_amt -- 其中:可用存款 + ,0 AS bank_amt -- 银行承兑汇票 + ,0 AS hk_amt -- 香港公司账户资金 + ,current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND is_limit = 1 + AND amt_type = '现金' +UNION ALL +select + 0 as free_amt -- 其中:可用存款 + ,0 AS bank_amt -- 银行承兑汇票 + ,current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金 + ,0 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND is_limit = 0 + AND amt_type = '现金' + AND corp_code = '0223' + + + ${IF(sPeriod_fin=3,"","*/")} + + + + + + +-- 期末 +-- 年 + ${IF(sPeriod_fin=1,"","/*")} + +with tpj as ( + select + a.corp_code, + '收入' as trade_direction, + draftcode, + a.owner_bank_account, + sum(a.amt) as amt + from sdi_oth.fim_draft_balance a + group by a.corp_code, + draftcode, + owner_bank_account + union all + select + a.corp_code, + trade_direction, + a.draftcode, + a.owner_bank_account, + amt + from dwr.fact_fim_draft_flow a + where a.trade_time>=date'2024-08-01' + and a.trade_time< date'${sEnd_date}' + interval '1 day' + and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收') +) ,pj as ( -- 票据余额 + select + a.corp_code, + sum(decode(trade_direction,'支出',-1*amt,amt)) as balance + from tpj a + inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份' + group by a.corp_code + having sum(decode(trade_direction,'支出',-1*amt,amt))>0 +), md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date< date'${sEnd_date}' + interval '1 day' + group by bank_account +),xj as ( + select + a.corp_code, + a.bank_account, + sum(a.current_balance) as amt, + a.currency + from dwi.dwi_fim_bank_account_balance a + where exists ( + select 1 from md + where a.bank_account=md.bank_account and a.report_date=md.max_report_date + ) + and a.account_state='开户' + group by a.corp_code, a.currency ,a.bank_account + union all + select corp_code, + owner_bank_account as bank_account, + sum(decode(trade_direction,'收入',amt,-1*amt)) as amt, + '人民币' as currency + from dm.dm_fim_fud_indicator + where amt_type='现金' + and stat_date=date'${sEnd_date}' + group by corp_code,owner_bank_account +) ,re as ( -- 汇总票据和银行余额 + select + a.corp_code, + sum(a.amt) as current_balance, + a.currency, + '现金' as amt_type, + if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额 + from xj a + inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份' + left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17, + substring(a.bank_account, 3), + a.bank_account)=decode(length(dba.accountnumber), '17', + substring(dba.accountnumber, 3), + dba.accountnumber) + and dba.account_owner_class='langjiu' + group by a.corp_code, + a.currency, + if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) + union all + select + corp_code, + sum(balance) as current_balance, + '人民币' as currency, + '票据' as amt_type, + 0 as is_limit + from pj + group by corp_code), + rto as ( -- 汇率表 + select decode(currency_name,'加拿大元','加元',currency_name) as currency_name, + conversion_price_boc/100 as rate, + date_trunc('day',exchange_publish_time) as rto_date, + row_number() over (partition by currency_name, + date_trunc('day',exchange_publish_time) + order by exchange_publish_time desc) as ridx + from sdi_xdata.boc_exchange_rate + where date_trunc('day',exchange_publish_time)=date'${sEnd_date}' + ) +SELECT 0 AS free_amt -- 其中:可用存款 + , 0 AS bank_amt -- 银行承兑汇票 + , current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金 + , 0 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) +AND corp_code = '0223' +AND amt_type = '现金' +UNION ALL +SELECT 0 AS free_amt -- 其中:可用存款 + , 0 AS bank_amt -- 银行承兑汇票 + , 0 AS hk_amt -- 香港公司账户资金 + , current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND is_limit = 1 + AND amt_type = '现金' +UNION ALL +SELECT + 0 AS free_amt -- 其中:可用存款 + , sum(balance)/10000 AS bank_amt -- 银行承兑汇票 + , 0 AS hk_amt -- 香港公司账户资金 + , 0 AS limit_amt -- 受限资金 +from dwr.ag_fim_fud_draft_balance a +where stat_date=date_trunc('month',date '${sEnd_date}') + ${IF(len(sCorp)=0," ","AND a.corp_code in ('"+sCorp+"')")} + and exists( + select 1 from dwr.dim_corp cp + where a.corp_code=cp.corp_code + and cp.corp_group='股份' +) + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + + ${IF(sPeriod_fin=1,"","*/")} + +-- 月 + ${IF(sPeriod_fin=2,"","/*")} + +with tpj as ( + select + a.corp_code, + '收入' as trade_direction, + draftcode, + a.owner_bank_account, + sum(a.amt) as amt + from sdi_oth.fim_draft_balance a + group by a.corp_code, + draftcode, + owner_bank_account + union all + select + a.corp_code, + trade_direction, + a.draftcode, + a.owner_bank_account, + amt + from dwr.fact_fim_draft_flow a + where a.trade_time>=date'2024-08-01' + and a.trade_time< date'${sEnd_date}' + interval '1 day' + and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收') +) ,pj as ( -- 票据余额 + select + a.corp_code, + sum(decode(trade_direction,'支出',-1*amt,amt)) as balance + from tpj a + inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份' + group by a.corp_code + having sum(decode(trade_direction,'支出',-1*amt,amt))>0 +), md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date< date'${sEnd_date}' + interval '1 day' + group by bank_account +),xj as ( + select + a.corp_code, + a.bank_account, + sum(a.current_balance) as amt, + a.currency + from dwi.dwi_fim_bank_account_balance a + where exists ( + select 1 from md + where a.bank_account=md.bank_account and a.report_date=md.max_report_date + ) + and a.account_state='开户' + group by a.corp_code, a.currency ,a.bank_account + union all + select corp_code, + owner_bank_account as bank_account, + sum(decode(trade_direction,'收入',amt,-1*amt)) as amt, + '人民币' as currency + from dm.dm_fim_fud_indicator + where amt_type='现金' + and stat_date=date'${sEnd_date}' + group by corp_code,owner_bank_account +) ,re as ( -- 汇总票据和银行余额 + select + a.corp_code, + sum(a.amt) as current_balance, + a.currency, + '现金' as amt_type, + if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额 + from xj a + inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份' + left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17, + substring(a.bank_account, 3), + a.bank_account)=decode(length(dba.accountnumber), '17', + substring(dba.accountnumber, 3), + dba.accountnumber) + and dba.account_owner_class='langjiu' + group by a.corp_code, + a.currency, + if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) + union all + select + corp_code, + sum(balance) as current_balance, + '人民币' as currency, + '票据' as amt_type, + 0 as is_limit + from pj + group by corp_code), + rto as ( -- 汇率表 + select decode(currency_name,'加拿大元','加元',currency_name) as currency_name, + conversion_price_boc/100 as rate, + date_trunc('day',exchange_publish_time) as rto_date, + row_number() over (partition by currency_name, + date_trunc('day',exchange_publish_time) + order by exchange_publish_time desc) as ridx + from sdi_xdata.boc_exchange_rate + where date_trunc('day',exchange_publish_time)=date'${sEnd_date}' + ) +SELECT 0 AS free_amt -- 其中:可用存款 + , 0 AS bank_amt -- 银行承兑汇票 + , current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金 + , 0 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND corp_code = '0223' + AND amt_type = '现金' +UNION ALL +SELECT 0 AS free_amt -- 其中:可用存款 + , 0 AS bank_amt -- 银行承兑汇票 + , 0 AS hk_amt -- 香港公司账户资金 + , current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND is_limit = 1 + AND amt_type = '现金' +UNION ALL +SELECT + 0 AS free_amt -- 其中:可用存款 + , sum(balance)/10000 AS bank_amt -- 银行承兑汇票 + , 0 AS hk_amt -- 香港公司账户资金 + , 0 AS limit_amt -- 受限资金 +from dwr.ag_fim_fud_draft_balance a +where stat_date=date_trunc('month',date '${sEnd_date}') + and exists( + select 1 from dwr.dim_corp cp + where a.corp_code=cp.corp_code + and cp.corp_group='股份' +) + ${IF(len(sCorp)=0," ","AND a.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + ${IF(sPeriod_fin=2,"","*/")} + + +-- 日 + ${IF(sPeriod_fin=3,"","/*")} + +with tpj as ( + select + a.corp_code, + '收入' as trade_direction, + draftcode, + a.owner_bank_account, + sum(a.amt) as amt + from sdi_oth.fim_draft_balance a + group by a.corp_code, + draftcode, + owner_bank_account + union all + select + a.corp_code, + trade_direction, + a.draftcode, + a.owner_bank_account, + amt + from dwr.fact_fim_draft_flow a + where a.trade_time>=date'2024-08-01' + and a.trade_time< date'${sEnd_date}' + interval '1 day' + and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收') +) ,pj as ( -- 票据余额 + select + a.corp_code, + sum(decode(trade_direction,'支出',-1*amt,amt)) as balance + from tpj a + inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份' + group by a.corp_code + having sum(decode(trade_direction,'支出',-1*amt,amt))>0 +), md as ( + select + bank_account, + max(report_date) as max_report_date + from dwi.dwi_fim_bank_account_balance + where report_date< date'${sEnd_date}' + interval '1 day' + group by bank_account +),xj as ( + select + a.corp_code, + a.bank_account, + sum(a.current_balance) as amt, + a.currency + from dwi.dwi_fim_bank_account_balance a + where exists ( + select 1 from md + where a.bank_account=md.bank_account and a.report_date=md.max_report_date + ) + and a.account_state='开户' + group by a.corp_code, a.currency ,a.bank_account + union all + select corp_code, + owner_bank_account as bank_account, + sum(decode(trade_direction,'收入',amt,-1*amt)) as amt, + '人民币' as currency + from dm.dm_fim_fud_indicator + where amt_type='现金' + and stat_date=date'${sEnd_date}' + group by corp_code,owner_bank_account +) ,re as ( -- 汇总票据和银行余额 + select + a.corp_code, + sum(a.amt) as current_balance, + a.currency, + '现金' as amt_type, + if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额 + from xj a + inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份' + left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17, + substring(a.bank_account, 3), + a.bank_account)=decode(length(dba.accountnumber), '17', + substring(dba.accountnumber, 3), + dba.accountnumber) + and dba.account_owner_class='langjiu' + group by a.corp_code, + a.currency, + if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) + union all + select + corp_code, + sum(balance) as current_balance, + '人民币' as currency, + '票据' as amt_type, + 0 as is_limit + from pj + group by corp_code), + rto as ( -- 汇率表 + select decode(currency_name,'加拿大元','加元',currency_name) as currency_name, + conversion_price_boc/100 as rate, + date_trunc('day',exchange_publish_time) as rto_date, + row_number() over (partition by currency_name, + date_trunc('day',exchange_publish_time) + order by exchange_publish_time desc) as ridx + from sdi_xdata.boc_exchange_rate + where date_trunc('day',exchange_publish_time)=date'${sEnd_date}' + ) +SELECT 0 AS free_amt -- 其中:可用存款 + , 0 AS bank_amt -- 银行承兑汇票 + , current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金 + , 0 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND corp_code = '0223' + AND amt_type = '现金' +UNION ALL +SELECT 0 AS free_amt -- 其中:可用存款 + , 0 AS bank_amt -- 银行承兑汇票 + , 0 AS hk_amt -- 香港公司账户资金 + , current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金 +from re + left join rto on re.currency=rto.currency_name and rto.ridx=1 +where current_balance!=0 + ${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) + AND is_limit = 1 + AND amt_type = '现金' +UNION ALL +SELECT + 0 AS free_amt -- 其中:可用存款 + , sum(balance)/10000 AS bank_amt -- 银行承兑汇票 + , 0 AS hk_amt -- 香港公司账户资金 + , 0 AS limit_amt -- 受限资金 +from dwr.ag_fim_fud_draft_balance a +where stat_date=date_trunc('month',date '${sEnd_date}') + and exists( + select 1 from dwr.dim_corp cp + where a.corp_code=cp.corp_code + and cp.corp_group='股份' +) + ${IF(len(sCorp)=0," ","AND a.corp_code in ('"+sCorp+"')")} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) +) +${IF(sPeriod_fin=3,"","*/")} \ No newline at end of file