|
@@ -485,4 +485,405 @@
|
|
|
and MONTH(apope.ACTUALFINISHDATE) = MONTH(CURRENT_DATE)
|
|
|
GROUP BY apro.TENANTID
|
|
|
</select>
|
|
|
+ <select id="selectOrderTable" resultType="com.rongwei.bsentity.domain.ApsReportOrderFinishTable">
|
|
|
+ with plan as (
|
|
|
+ -- 本月计划完成订单量
|
|
|
+ select
|
|
|
+ apope.PROCESSWORKSHOPID,
|
|
|
+ max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
|
|
|
+ sum((apope.PLANPROCESSRALL-apope.CANCELROLL)*apoom.PLANPRODROLLNUM/apo.PLANPROCESSRALL*apoom.SINGLEROLLWEIGHT) PLANPRODUCEVOLUME -- 本月计划完成订单量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_out_mater apoom on apo.id=apoom.MAINID-- 作业输出物料
|
|
|
+ join aps_blank_order abo on apo.BLANKID = abo.id
|
|
|
+ join aps_production_order apro on apro.ID = abo.PRODUCTIONORDERID
|
|
|
+ join aps_product_detail apd on apoom.ORDERDETAILID = apd.id -- 订单产品明细
|
|
|
+ left join aps_product_specs aps on apoom.THICKNESS > aps.THICKSTR and apoom.THICKNESS <= aps.THICKEND
|
|
|
+ left join aps_production_merge_order apmd on apmd.ID = apd.MERGEORDERNUMBER and apmd.DELETED='0'
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and abo.DELETED='0' and apro.deleted='0'
|
|
|
+ and apd.DELETED='0' and apoom.DELETED='0' and aps.DELETED='0'
|
|
|
+ and (ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) in ('客户订单','')) -- 订单类型为空默认为客户订单
|
|
|
+ and abo.PRODUCTSTATUS in ('30','40','50')
|
|
|
+ and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0
|
|
|
+ and apoom.PLANPRODROLLNUM>0
|
|
|
+ and YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE)
|
|
|
+ and MONTH(apope.PLANENDDATE) = MONTH(CURRENT_DATE)
|
|
|
+ and apro.TENANTID=#{tenantId}
|
|
|
+ group by
|
|
|
+ apope.PROCESSWORKSHOPID
|
|
|
+ ),
|
|
|
+ actual as (
|
|
|
+ -- 本月和昨日实际已完成订单
|
|
|
+ select
|
|
|
+ apope.PROCESSWORKSHOPID,
|
|
|
+ max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
|
|
|
+ sum(if(YEAR(apope.ACTUALFINISHDATE) = YEAR(CURRENT_DATE) and MONTH(apope.ACTUALFINISHDATE) = MONTH(CURRENT_DATE), -- 本月
|
|
|
+ aro.WEIGHT,null)) ACTUALPRODUCEVOLUME, -- 本月实际完成订单量
|
|
|
+ sum(if(DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
+ aro.WEIGHT,null)) YACTUALPRODUCEVOLUME -- 昨日实际完成订单量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_out_mater apoom on apo.id=apoom.MAINID-- 作业输出物料
|
|
|
+ join aps_blank_order abo on apo.BLANKID = abo.id
|
|
|
+ join aps_production_order apro on apro.ID = abo.PRODUCTIONORDERID
|
|
|
+ join aps_product_detail apd on apoom.ORDERDETAILID = apd.id -- 订单产品明细
|
|
|
+ join aps_report_records arr on apope.id=arr.PROCESSEQUID
|
|
|
+ join aps_report_output aro on arr.id=aro.mainid
|
|
|
+ left join aps_production_merge_order apmd on apmd.ID = apd.MERGEORDERNUMBER and apmd.DELETED='0'
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and abo.DELETED='0' and apro.deleted='0'
|
|
|
+ and apd.DELETED='0' and arr.deleted='0' and aro.DELETED='0'
|
|
|
+ and (ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) in ('客户订单','')) -- 订单类型为空默认为客户订单
|
|
|
+ and arr.CHECKSTATUS='已检验'
|
|
|
+ and aro.QUALIFIED='是'
|
|
|
+ and apoom.PLANPRODROLLNUM>0
|
|
|
+ and (YEAR(apope.ACTUALFINISHDATE) = YEAR(CURRENT_DATE) and MONTH(apope.ACTUALFINISHDATE) = MONTH(CURRENT_DATE)
|
|
|
+ or DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
|
|
|
+ and apro.TENANTID=#{tenantId}
|
|
|
+ group by
|
|
|
+ apope.PROCESSWORKSHOPID
|
|
|
+ )
|
|
|
+ select
|
|
|
+ plan.PROCESSWORKSHOPID
|
|
|
+ ,plan.PROCESSWORKSHOP
|
|
|
+ ,IFNULL(plan.PLANPRODUCEVOLUME,0) AS 'PLANPRODUCEVOLUME' -- 本月计划完成(吨)
|
|
|
+ ,IFNULL(actual.ACTUALPRODUCEVOLUME,0) AS 'ACTUALPRODUCEVOLUME' -- 本月实际已完成(吨)
|
|
|
+ ,IFNULL(actual.YACTUALPRODUCEVOLUME,0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已完成(吨)
|
|
|
+ ,if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
|
|
|
+ 1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME) COMPLETIONRATIO -- 本月实际已完成比例
|
|
|
+ from
|
|
|
+ plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID
|
|
|
+ union -- mysql 该版本不支持full join,通过left join 和right join配合
|
|
|
+ select
|
|
|
+ plan.PROCESSWORKSHOPID
|
|
|
+ ,plan.PROCESSWORKSHOP
|
|
|
+ ,IFNULL(plan.PLANPRODUCEVOLUME,0) AS 'PLANPRODUCEVOLUME' -- 本月计划完成(吨)
|
|
|
+ ,IFNULL(actual.ACTUALPRODUCEVOLUME,0) AS 'ACTUALPRODUCEVOLUME' -- 本月实际已完成(吨)
|
|
|
+ ,IFNULL(actual.YACTUALPRODUCEVOLUME,0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已完成(吨)
|
|
|
+ ,if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
|
|
|
+ 1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME) COMPLETIONRATIO -- 本月实际已完成比例
|
|
|
+ from
|
|
|
+ plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID
|
|
|
+ </select>
|
|
|
+ <select id="selectOrderFinishPhotoAvg" resultType="com.rongwei.bsentity.domain.ApsReportOrderFinishPhoto">
|
|
|
+ with months as (
|
|
|
+ -- 12个月
|
|
|
+ SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
|
|
|
+ ),
|
|
|
+ plan as (
|
|
|
+ -- 近12个月计划完成订单量
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.PLANENDDATE, '%Y-%m') month_year,
|
|
|
+ sum((apope.PLANPROCESSRALL-apope.CANCELROLL)*apoom.PLANPRODROLLNUM/apo.PLANPROCESSRALL*apoom.SINGLEROLLWEIGHT) PLANPRODUCEVOLUME -- 当月计划完成订单量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_out_mater apoom on apo.id=apoom.MAINID-- 作业输出物料
|
|
|
+ join aps_blank_order abo on apo.BLANKID = abo.id
|
|
|
+ join aps_production_order apro on apro.ID = abo.PRODUCTIONORDERID
|
|
|
+ join aps_product_detail apd on apoom.ORDERDETAILID = apd.id -- 订单产品明细
|
|
|
+ left join aps_product_specs aps on apoom.THICKNESS > aps.THICKSTR and apoom.THICKNESS <= aps.THICKEND
|
|
|
+ left join aps_production_merge_order apmd on apmd.ID = apd.MERGEORDERNUMBER and apmd.DELETED='0'
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and abo.DELETED='0' and apro.deleted='0'
|
|
|
+ and apd.DELETED='0' and apoom.DELETED='0' and aps.DELETED='0'
|
|
|
+ and (ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) in ('客户订单','')) -- 订单类型为空默认为客户订单
|
|
|
+ and abo.PRODUCTSTATUS in ('30','40','50')
|
|
|
+ and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0
|
|
|
+ and apoom.PLANPRODROLLNUM>0
|
|
|
+ and apope.PLANENDDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apro.TENANTID=#{tenantId}
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ ),
|
|
|
+ actual as (
|
|
|
+ -- 近12个月实际已完成订单
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
+ sum(aro.WEIGHT) ACTUALPRODUCEVOLUME -- 当月实际完成订单量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_out_mater apoom on apo.id=apoom.MAINID-- 作业输出物料
|
|
|
+ join aps_blank_order abo on apo.BLANKID = abo.id
|
|
|
+ join aps_production_order apro on apro.ID = abo.PRODUCTIONORDERID
|
|
|
+ join aps_product_detail apd on apoom.ORDERDETAILID = apd.id -- 订单产品明细
|
|
|
+ join aps_report_records arr on apope.id=arr.PROCESSEQUID
|
|
|
+ join aps_report_output aro on arr.id=aro.mainid
|
|
|
+ left join aps_production_merge_order apmd on apmd.ID = apd.MERGEORDERNUMBER and apmd.DELETED='0'
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and abo.DELETED='0' and apro.deleted='0'
|
|
|
+ and apd.DELETED='0' and arr.deleted='0' and aro.DELETED='0'
|
|
|
+ and (ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) in ('客户订单','')) -- 订单类型为空默认为客户订单
|
|
|
+ and arr.CHECKSTATUS='已检验'
|
|
|
+ and aro.QUALIFIED='是'
|
|
|
+ and apoom.PLANPRODROLLNUM>0
|
|
|
+ and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apro.TENANTID=#{tenantId}
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ )
|
|
|
+ -- 计划完成订单量月平均值,实际已完成订单量月平均值
|
|
|
+ select
|
|
|
+ IFNULL(AVG(plan.PLANPRODUCEVOLUME),0) AVGPLANPRODUCEVOLUME, -- 计划完成订单量月平均
|
|
|
+ IFNULL(AVG(actual.ACTUALPRODUCEVOLUME),0) AVGACTUALPRODUCEVOLUME -- 实际已完成订单量月平均
|
|
|
+ from
|
|
|
+ months
|
|
|
+ LEFT JOIN plan ON plan.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m')
|
|
|
+ LEFT JOIN actual ON actual.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m') limit 1
|
|
|
+ </select>
|
|
|
+ <select id="selectOrderFinishPhotoByMonth"
|
|
|
+ resultType="com.rongwei.bsentity.domain.ApsReportOrderFinishPhoto">
|
|
|
+ with months as (
|
|
|
+ -- 12个月
|
|
|
+ SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
|
|
|
+ ),
|
|
|
+ plan as (
|
|
|
+ -- 近12个月计划完成订单量
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.PLANENDDATE, '%Y-%m') month_year,
|
|
|
+ sum((apope.PLANPROCESSRALL-apope.CANCELROLL)*apoom.PLANPRODROLLNUM/apo.PLANPROCESSRALL*apoom.SINGLEROLLWEIGHT) PLANPRODUCEVOLUME -- 当月计划完成订单量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_out_mater apoom on apo.id=apoom.MAINID-- 作业输出物料
|
|
|
+ join aps_blank_order abo on apo.BLANKID = abo.id
|
|
|
+ join aps_production_order apro on apro.ID = abo.PRODUCTIONORDERID
|
|
|
+ join aps_product_detail apd on apoom.ORDERDETAILID = apd.id -- 订单产品明细
|
|
|
+ left join aps_product_specs aps on apoom.THICKNESS > aps.THICKSTR and apoom.THICKNESS <= aps.THICKEND
|
|
|
+ left join aps_production_merge_order apmd on apmd.ID = apd.MERGEORDERNUMBER and apmd.DELETED='0'
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and abo.DELETED='0' and apro.deleted='0'
|
|
|
+ and apd.DELETED='0' and apoom.DELETED='0' and aps.DELETED='0'
|
|
|
+ and (ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) in ('客户订单','')) -- 订单类型为空默认为客户订单
|
|
|
+ and abo.PRODUCTSTATUS in ('30','40','50')
|
|
|
+ and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0
|
|
|
+ and apoom.PLANPRODROLLNUM>0
|
|
|
+ and apope.PLANENDDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apro.TENANTID=#TENANTID
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ ),
|
|
|
+ actual as (
|
|
|
+ -- 近12个月实际已完成订单
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
+ sum(aro.WEIGHT) ACTUALPRODUCEVOLUME -- 当月实际完成订单量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_out_mater apoom on apo.id=apoom.MAINID-- 作业输出物料
|
|
|
+ join aps_blank_order abo on apo.BLANKID = abo.id
|
|
|
+ join aps_production_order apro on apro.ID = abo.PRODUCTIONORDERID
|
|
|
+ join aps_product_detail apd on apoom.ORDERDETAILID = apd.id -- 订单产品明细
|
|
|
+ join aps_report_records arr on apope.id=arr.PROCESSEQUID
|
|
|
+ join aps_report_output aro on arr.id=aro.mainid
|
|
|
+ left join aps_production_merge_order apmd on apmd.ID = apd.MERGEORDERNUMBER and apmd.DELETED='0'
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and abo.DELETED='0' and apro.deleted='0'
|
|
|
+ and apd.DELETED='0' and arr.deleted='0' and aro.DELETED='0'
|
|
|
+ and (ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) in ('客户订单','')) -- 订单类型为空默认为客户订单
|
|
|
+ and arr.CHECKSTATUS='已检验'
|
|
|
+ and aro.QUALIFIED='是'
|
|
|
+ and apoom.PLANPRODROLLNUM>0
|
|
|
+ and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apro.TENANTID=#TENANTID
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ )
|
|
|
+ select
|
|
|
+ DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m') month_year,
|
|
|
+ IFNULL(plan.PLANPRODUCEVOLUME,0) AS 'PLANPRODUCEVOLUME', -- 计划完成订单量
|
|
|
+ IFNULL(actual.ACTUALPRODUCEVOLUME,0) AS 'ACTUALPRODUCEVOLUME' -- 实际已完成订单量
|
|
|
+ from
|
|
|
+ months
|
|
|
+ LEFT JOIN plan ON plan.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m')
|
|
|
+ LEFT JOIN actual ON actual.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m')
|
|
|
+ ORDER BY
|
|
|
+ month_year
|
|
|
+ </select>
|
|
|
+ <select id="selectCastRollData" resultType="com.rongwei.bsentity.domain.ApsReportCastRollTable">
|
|
|
+ with plan as (
|
|
|
+ -- 按照车间分组统计本月铸轧工序类别计划加工量
|
|
|
+ select
|
|
|
+ apo.TENANTID,
|
|
|
+ apope.PROCESSWORKSHOPID,
|
|
|
+ max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
|
|
|
+ sum(if(YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE) and MONTH(apope.PLANENDDATE) = MONTH(CURRENT_DATE), -- 本月
|
|
|
+ (apope.PLANPROCESSRALL-apope.CANCELROLL)*apo.SINGLEROLLWEIGHT,null)) PLANPRODUCEVOLUME, -- 本月计划加工量
|
|
|
+ sum(if(DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
+ (apope.PLANPROCESSRALL-apope.CANCELROLL)*apo.SINGLEROLLWEIGHT,null)) YPLANPRODUCEVOLUME -- 昨日计划加工量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_production_processes app on app.PRODUCTPROCESSNAME=apo.PROCESS
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0'
|
|
|
+ and app.PROCESSCATEGORY='10' -- 铸轧
|
|
|
+ and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
|
+ and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0 -- 计划加工卷数- 已取消卷数合计
|
|
|
+ and (YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE) and MONTH(apope.PLANENDDATE) = MONTH(CURRENT_DATE) -- 本月
|
|
|
+ or DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
|
|
|
+ and apo.TENANTID=#{tenantId}
|
|
|
+ group by
|
|
|
+ apope.PROCESSWORKSHOPID
|
|
|
+ ),
|
|
|
+ actual as (
|
|
|
+ -- 按照车间分组统计本月铸轧工序类别实际加工量
|
|
|
+ select
|
|
|
+ apo.TENANTID,
|
|
|
+ apope.PROCESSWORKSHOPID,
|
|
|
+ max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
|
|
|
+ sum(if(YEAR(apope.ACTUALFINISHDATE) = YEAR(CURRENT_DATE) and MONTH(apope.ACTUALFINISHDATE) = MONTH(CURRENT_DATE), -- 本月
|
|
|
+ apo.SINGLEROLLWEIGHT,null)) ACTUALPRODUCEVOLUME, -- 本月实际已加工量
|
|
|
+ sum(if(DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
+ apo.SINGLEROLLWEIGHT,null)) YACTUALPRODUCEVOLUME -- 昨日实际已加工量
|
|
|
+ from
|
|
|
+ aps_report_records arr
|
|
|
+ join aps_process_operation_process_equ apope on apope.id=arr.PROCESSEQUID
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_production_processes app on app.PRODUCTPROCESSNAME=apo.PROCESS
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
|
|
|
+ and app.PROCESSCATEGORY='10' -- 铸轧
|
|
|
+ and arr.REPORTWORKSTATUS='已报工'
|
|
|
+ and (YEAR(apope.ACTUALFINISHDATE) = YEAR(CURRENT_DATE) and MONTH(apope.ACTUALFINISHDATE) = MONTH(CURRENT_DATE) -- 本月
|
|
|
+ or DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
|
|
|
+ and apo.TENANTID=#{tenantId}
|
|
|
+ group by
|
|
|
+ apope.PROCESSWORKSHOPID
|
|
|
+ )
|
|
|
+ select
|
|
|
+ plan.PROCESSWORKSHOPID
|
|
|
+ ,plan.PROCESSWORKSHOP
|
|
|
+ ,IFNULL(plan.PLANPRODUCEVOLUME,0) AS 'PLANPRODUCEVOLUME' -- 本月计划加工(吨)
|
|
|
+ ,IFNULL(plan.YPLANPRODUCEVOLUME,0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
|
|
|
+ ,IFNULL(actual.ACTUALPRODUCEVOLUME,0) AS 'ACTUALPRODUCEVOLUME' -- 本月实际已加工(吨)
|
|
|
+ ,IFNULL(actual.YACTUALPRODUCEVOLUME,0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
|
|
|
+ ,if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
|
|
|
+ 1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME) COMPLETIONRATIO -- 本月实际已完成比例
|
|
|
+ from
|
|
|
+ plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID
|
|
|
+ union -- mysql 该版本不支持full join,通过left join 和right join配合
|
|
|
+ select
|
|
|
+ plan.PROCESSWORKSHOPID
|
|
|
+ ,plan.PROCESSWORKSHOP
|
|
|
+ ,IFNULL(plan.PLANPRODUCEVOLUME,0) AS 'PLANPRODUCEVOLUME' -- 本月计划加工(吨)
|
|
|
+ ,IFNULL(plan.YPLANPRODUCEVOLUME,0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
|
|
|
+ ,IFNULL(actual.ACTUALPRODUCEVOLUME,0) AS 'ACTUALPRODUCEVOLUME' -- 本月实际已加工(吨)
|
|
|
+ ,IFNULL(actual.YACTUALPRODUCEVOLUME,0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
|
|
|
+ ,if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
|
|
|
+ 1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME) COMPLETIONRATIO -- 本月实际已完成比例
|
|
|
+ from
|
|
|
+ plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID
|
|
|
+ </select>
|
|
|
+ <select id="selectCastRollPhotoAvg" resultType="com.rongwei.bsentity.domain.ApsReportCastRollPhoto">
|
|
|
+ with months as (
|
|
|
+ -- 12个月
|
|
|
+ SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
|
|
|
+ ),
|
|
|
+ plan as (
|
|
|
+ -- 近12个月铸轧计划加工量
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.PLANENDDATE, '%Y-%m') month_year,
|
|
|
+ sum((apope.PLANPROCESSRALL-apope.CANCELROLL)*apo.SINGLEROLLWEIGHT) PLANPRODUCEVOLUME -- 当月计划加工量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_production_processes app on app.PRODUCTPROCESSNAME=apo.PROCESS
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0'
|
|
|
+ and app.PROCESSCATEGORY='10' -- 铸轧
|
|
|
+ and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
|
+ and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0 -- 计划加工卷数- 已取消卷数合计
|
|
|
+ and apope.PLANENDDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apo.TENANTID='0001S31000000000J0TR'
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ ),
|
|
|
+ actual as (
|
|
|
+ -- 近12个月铸轧实际加工量
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
+ sum(apo.SINGLEROLLWEIGHT) ACTUALPRODUCEVOLUME -- 当月实际已加工量
|
|
|
+ from
|
|
|
+ aps_report_records arr
|
|
|
+ join aps_process_operation_process_equ apope on apope.id=arr.PROCESSEQUID
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_production_processes app on app.PRODUCTPROCESSNAME=apo.PROCESS
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
|
|
|
+ and app.PROCESSCATEGORY='10' -- 铸轧
|
|
|
+ and arr.REPORTWORKSTATUS='已报工'
|
|
|
+ and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apo.TENANTID='0001S31000000000J0TR'
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ )
|
|
|
+ -- 计划加工量月平均值,实际已加工量月平均值
|
|
|
+ select
|
|
|
+ IFNULL(AVG(plan.PLANPRODUCEVOLUME),0) AVGPLANPRODUCEVOLUME, -- 计划加工量月平均
|
|
|
+ IFNULL(AVG(actual.ACTUALPRODUCEVOLUME),0) AVGACTUALPRODUCEVOLUME -- 实际已加工量月平均
|
|
|
+ from
|
|
|
+ months
|
|
|
+ LEFT JOIN plan ON plan.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m')
|
|
|
+ LEFT JOIN actual ON actual.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m') limit 1
|
|
|
+ </select>
|
|
|
+ <select id="selectCastRollPhoto" resultType="com.rongwei.bsentity.domain.ApsReportCastRollPhoto">
|
|
|
+ with months as (
|
|
|
+ -- 12个月
|
|
|
+ SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11
|
|
|
+ ),
|
|
|
+ plan as (
|
|
|
+ -- 近12个月铸轧计划加工量
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.PLANENDDATE, '%Y-%m') month_year,
|
|
|
+ sum((apope.PLANPROCESSRALL-apope.CANCELROLL)*apo.SINGLEROLLWEIGHT) PLANPRODUCEVOLUME -- 当月计划加工量
|
|
|
+ from
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_production_processes app on app.PRODUCTPROCESSNAME=apo.PROCESS
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0'
|
|
|
+ and app.PROCESSCATEGORY='10' -- 铸轧
|
|
|
+ and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
|
+ and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0 -- 计划加工卷数- 已取消卷数合计
|
|
|
+ and apope.PLANENDDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apo.TENANTID='0001S31000000000J0TR'
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ ),
|
|
|
+ actual as (
|
|
|
+ -- 近12个月铸轧实际加工量
|
|
|
+ select
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
+ sum(apo.SINGLEROLLWEIGHT) ACTUALPRODUCEVOLUME -- 当月实际已加工量
|
|
|
+ from
|
|
|
+ aps_report_records arr
|
|
|
+ join aps_process_operation_process_equ apope on apope.id=arr.PROCESSEQUID
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_production_processes app on app.PRODUCTPROCESSNAME=apo.PROCESS
|
|
|
+ where
|
|
|
+ apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
|
|
|
+ and app.PROCESSCATEGORY='10' -- 铸轧
|
|
|
+ and arr.REPORTWORKSTATUS='已报工'
|
|
|
+ and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
|
+ and apo.TENANTID='0001S31000000000J0TR'
|
|
|
+ group by
|
|
|
+ month_year
|
|
|
+ )
|
|
|
+ select
|
|
|
+ DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m') month_year,
|
|
|
+ IFNULL(plan.PLANPRODUCEVOLUME,0) AS 'PLANPRODUCEVOLUME', -- 计划加工量
|
|
|
+ IFNULL(actual.ACTUALPRODUCEVOLUME,0) AS 'ACTUALPRODUCEVOLUME' -- 实际已加工量
|
|
|
+ from
|
|
|
+ months
|
|
|
+ LEFT JOIN plan ON plan.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m')
|
|
|
+ LEFT JOIN actual ON actual.month_year = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m')
|
|
|
+ ORDER BY
|
|
|
+ month_year
|
|
|
+ </select>
|
|
|
</mapper>
|