From 940918d2b8897f8a0abb6b6e992324d566097c60 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Tue, 4 Mar 2025 22:24:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor(factoryinfo):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=B7=A5=E5=8E=82=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2=20SQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了 SQL 查询的结构,优化了表的连接方式 - 将结算月份参数化,提高查询灵活性 - 调整了工厂信息的获取方式,直接使用 sf_factory_info 表 - 优化了计算逻辑,使配件和支出的计算更加清晰 --- .../mapper/factoryinfo/FactoryInfoMapper.xml | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml index d9fc41f4..3d898a4f 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factoryinfo/FactoryInfoMapper.xml @@ -44,9 +44,9 @@ system_customer_settlement scs ) SELECT - scs.customer_id AS factoryId, - factory.short_name AS factoryName, - scs.settlement_month,-- 收入明细 + sf.id AS factoryId, + sf.short_name AS factoryName, + #{month} AS settlementMonth,-- 收入明细 SUM( CASE WHEN ssi.business_type = 1 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS forkliftRevenue,-- 叉车收入 SUM( CASE WHEN ssi.business_type = 2 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS packageRevenue,-- 打包收入 SUM( CASE WHEN ssi.business_type = 3 THEN COALESCE(ssi.settlement_amount, ssi.pre_settlement_amount) ELSE 0 END ) AS porterageRevenue,-- 搬运收入 @@ -63,19 +63,19 @@ COALESCE ( sss.porterageSalary, 0.00 ) AS porterageSalary,-- 搬运实发工资 COALESCE ( sss.transportSalary, 0.00 ) AS transportSalary,-- 运输实发工资 COALESCE ( sss.otherSalary, 0.00 ) AS otherSalary,-- 其他实发工资 - COALESCE ( iii.forkliftAccessories + sac.forklift_accessories, 0.00 ) AS forkliftAccessories, -- 叉车配件 - COALESCE ( iii.packageAccessories + sac.package_accessories, 0.00 ) AS packageAccessories, -- 打包配件 - COALESCE ( iii.transportationAmount + sac.transportation_amount, 0.00 ) AS transportationAmount, -- 搬运劳保 + COALESCE ( iii.forkliftAccessories, 0.00 ) + COALESCE ( sac.forklift_accessories, 0.00 ) AS forkliftAccessories, -- 叉车配件 + COALESCE ( iii.packageAccessories, 0.00 ) + COALESCE ( sac.package_accessories, 0.00 ) AS packageAccessories, -- 打包配件 + COALESCE ( iii.transportationAmount, 0.00 ) + COALESCE ( sac.transportation_amount, 0.00 ) AS transportationAmount, -- 搬运劳保 COALESCE ( iii.injuryAmount, 0.00 ) AS injuryAmount, -- 工伤赔偿 COALESCE ( loan.loanAmount, 0.00 ) AS loanAmount, -- 工资及借支 COALESCE ( iii.travelExpenses, 0.00 ) AS travelExpenses, -- 差旅费用 COALESCE ( iii.otherAmount, 0.00 ) AS otherAmount, -- 其他 - COALESCE ( iii.forkliftExpenses + sac.forklift_accessories, 0.00 ) AS forkliftExpenses, -- 叉车支出 - COALESCE ( iii.packageExpenses + sac.package_accessories, 0.00 ) AS packageExpenses, -- 打包支出 - COALESCE ( iii.transportationExpenses + sac.transportation_amount, 0.00 ) AS transportationExpenses -- 搬运支出 + COALESCE ( iii.forkliftExpenses, 0.00 ) + COALESCE ( sac.forklift_accessories, 0.00 ) AS forkliftExpenses, -- 叉车支出 + COALESCE ( iii.packageExpenses, 0.00 ) + COALESCE ( sac.package_accessories, 0.00 ) AS packageExpenses, -- 打包支出 + COALESCE ( iii.transportationExpenses, 0.00 ) + COALESCE ( sac.transportation_amount, 0.00 ) AS transportationExpenses -- 搬运支出 FROM - system_customer_settlement scs - LEFT JOIN sf_factory_info factory ON scs.customer_id = factory.id + sf_factory_info sf + LEFT JOIN system_customer_settlement scs ON sf.id = scs.customer_id AND scs.settlement_month = #{month} LEFT JOIN system_settlement_item ssi ON scs.id = ssi.settlement_id LEFT JOIN json_extracted je ON scs.id = je.settlement_id LEFT JOIN ( @@ -95,8 +95,8 @@ GROUP BY s.factory_id, ss.month - ) sss ON scs.customer_id = sss.factory_id - AND scs.settlement_month = sss.month + ) sss ON sf.id = sss.factory_id + AND sss.month = #{month} LEFT JOIN ( SELECT boei.dept_id, @@ -120,8 +120,8 @@ GROUP BY boei.dept_id, DATE_FORMAT( bp.end_time, '%Y-%m' ) - ) iii ON scs.customer_id = iii.dept_id - AND scs.settlement_month = iii.MONTH + ) iii ON sf.id = iii.dept_id + AND iii.MONTH = #{month} LEFT JOIN ( SELECT oaLoan.total_money as loanAmount, @@ -134,18 +134,20 @@ oaLoan.process_instance_id = bp.process_instance_id AND oaLoan.deleted = 0 AND oaLoan.result = 2 - ) loan ON scs.customer_id = loan.factoryId - AND scs.settlement_month = loan.endTime - LEFT JOIN sf_accessories_collar sac ON sac.factory_id = scs.customer_id - AND scs.settlement_month = sac.month + ) loan ON sf.id = loan.factoryId + AND loan.endTime = #{month} + LEFT JOIN sf_accessories_collar sac ON sac.factory_id = sf.id + AND sac.month = #{month} AND sac.status = 1 AND sac.deleted = 0 WHERE - scs.settlement_month = #{month} + sf.type = 3 + AND sf.deleted = 0 + AND sf.status = 0 - AND scs.customer_id = #{factoryId} + AND sf.id = #{factoryId} GROUP BY - scs.id; + sf.id; \ No newline at end of file