refactor(factoryinfo): 重构工厂信息查询 SQL
- 修改了 SQL 查询的结构,优化了表的连接方式 - 将结算月份参数化,提高查询灵活性 - 调整了工厂信息的获取方式,直接使用 sf_factory_info 表 - 优化了计算逻辑,使配件和支出的计算更加清晰
This commit is contained in:
parent
c0d0515fe5
commit
940918d2b8
@ -44,9 +44,9 @@
|
|||||||
system_customer_settlement scs
|
system_customer_settlement scs
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
scs.customer_id AS factoryId,
|
sf.id AS factoryId,
|
||||||
factory.short_name AS factoryName,
|
sf.short_name AS factoryName,
|
||||||
scs.settlement_month,-- 收入明细
|
#{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 = 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 = 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,-- 搬运收入
|
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.porterageSalary, 0.00 ) AS porterageSalary,-- 搬运实发工资
|
||||||
COALESCE ( sss.transportSalary, 0.00 ) AS transportSalary,-- 运输实发工资
|
COALESCE ( sss.transportSalary, 0.00 ) AS transportSalary,-- 运输实发工资
|
||||||
COALESCE ( sss.otherSalary, 0.00 ) AS otherSalary,-- 其他实发工资
|
COALESCE ( sss.otherSalary, 0.00 ) AS otherSalary,-- 其他实发工资
|
||||||
COALESCE ( iii.forkliftAccessories + sac.forklift_accessories, 0.00 ) AS forkliftAccessories, -- 叉车配件
|
COALESCE ( iii.forkliftAccessories, 0.00 ) + COALESCE ( sac.forklift_accessories, 0.00 ) AS forkliftAccessories, -- 叉车配件
|
||||||
COALESCE ( iii.packageAccessories + sac.package_accessories, 0.00 ) AS packageAccessories, -- 打包配件
|
COALESCE ( iii.packageAccessories, 0.00 ) + COALESCE ( sac.package_accessories, 0.00 ) AS packageAccessories, -- 打包配件
|
||||||
COALESCE ( iii.transportationAmount + sac.transportation_amount, 0.00 ) AS transportationAmount, -- 搬运劳保
|
COALESCE ( iii.transportationAmount, 0.00 ) + COALESCE ( sac.transportation_amount, 0.00 ) AS transportationAmount, -- 搬运劳保
|
||||||
COALESCE ( iii.injuryAmount, 0.00 ) AS injuryAmount, -- 工伤赔偿
|
COALESCE ( iii.injuryAmount, 0.00 ) AS injuryAmount, -- 工伤赔偿
|
||||||
COALESCE ( loan.loanAmount, 0.00 ) AS loanAmount, -- 工资及借支
|
COALESCE ( loan.loanAmount, 0.00 ) AS loanAmount, -- 工资及借支
|
||||||
COALESCE ( iii.travelExpenses, 0.00 ) AS travelExpenses, -- 差旅费用
|
COALESCE ( iii.travelExpenses, 0.00 ) AS travelExpenses, -- 差旅费用
|
||||||
COALESCE ( iii.otherAmount, 0.00 ) AS otherAmount, -- 其他
|
COALESCE ( iii.otherAmount, 0.00 ) AS otherAmount, -- 其他
|
||||||
COALESCE ( iii.forkliftExpenses + sac.forklift_accessories, 0.00 ) AS forkliftExpenses, -- 叉车支出
|
COALESCE ( iii.forkliftExpenses, 0.00 ) + COALESCE ( sac.forklift_accessories, 0.00 ) AS forkliftExpenses, -- 叉车支出
|
||||||
COALESCE ( iii.packageExpenses + sac.package_accessories, 0.00 ) AS packageExpenses, -- 打包支出
|
COALESCE ( iii.packageExpenses, 0.00 ) + COALESCE ( sac.package_accessories, 0.00 ) AS packageExpenses, -- 打包支出
|
||||||
COALESCE ( iii.transportationExpenses + sac.transportation_amount, 0.00 ) AS transportationExpenses -- 搬运支出
|
COALESCE ( iii.transportationExpenses, 0.00 ) + COALESCE ( sac.transportation_amount, 0.00 ) AS transportationExpenses -- 搬运支出
|
||||||
FROM
|
FROM
|
||||||
system_customer_settlement scs
|
sf_factory_info sf
|
||||||
LEFT JOIN sf_factory_info factory ON scs.customer_id = factory.id
|
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 system_settlement_item ssi ON scs.id = ssi.settlement_id
|
||||||
LEFT JOIN json_extracted je ON scs.id = je.settlement_id
|
LEFT JOIN json_extracted je ON scs.id = je.settlement_id
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
@ -95,8 +95,8 @@
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
s.factory_id,
|
s.factory_id,
|
||||||
ss.month
|
ss.month
|
||||||
) sss ON scs.customer_id = sss.factory_id
|
) sss ON sf.id = sss.factory_id
|
||||||
AND scs.settlement_month = sss.month
|
AND sss.month = #{month}
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT
|
||||||
boei.dept_id,
|
boei.dept_id,
|
||||||
@ -120,8 +120,8 @@
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
boei.dept_id,
|
boei.dept_id,
|
||||||
DATE_FORMAT( bp.end_time, '%Y-%m' )
|
DATE_FORMAT( bp.end_time, '%Y-%m' )
|
||||||
) iii ON scs.customer_id = iii.dept_id
|
) iii ON sf.id = iii.dept_id
|
||||||
AND scs.settlement_month = iii.MONTH
|
AND iii.MONTH = #{month}
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT
|
||||||
oaLoan.total_money as loanAmount,
|
oaLoan.total_money as loanAmount,
|
||||||
@ -134,18 +134,20 @@
|
|||||||
oaLoan.process_instance_id = bp.process_instance_id
|
oaLoan.process_instance_id = bp.process_instance_id
|
||||||
AND oaLoan.deleted = 0
|
AND oaLoan.deleted = 0
|
||||||
AND oaLoan.result = 2
|
AND oaLoan.result = 2
|
||||||
) loan ON scs.customer_id = loan.factoryId
|
) loan ON sf.id = loan.factoryId
|
||||||
AND scs.settlement_month = loan.endTime
|
AND loan.endTime = #{month}
|
||||||
LEFT JOIN sf_accessories_collar sac ON sac.factory_id = scs.customer_id
|
LEFT JOIN sf_accessories_collar sac ON sac.factory_id = sf.id
|
||||||
AND scs.settlement_month = sac.month
|
AND sac.month = #{month}
|
||||||
AND sac.status = 1
|
AND sac.status = 1
|
||||||
AND sac.deleted = 0
|
AND sac.deleted = 0
|
||||||
WHERE
|
WHERE
|
||||||
scs.settlement_month = #{month}
|
sf.type = 3
|
||||||
|
AND sf.deleted = 0
|
||||||
|
AND sf.status = 0
|
||||||
<if test="factoryId != null">
|
<if test="factoryId != null">
|
||||||
AND scs.customer_id = #{factoryId}
|
AND sf.id = #{factoryId}
|
||||||
</if>
|
</if>
|
||||||
GROUP BY
|
GROUP BY
|
||||||
scs.id;
|
sf.id;
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Loading…
Reference in New Issue
Block a user