|
@@ -800,7 +800,7 @@
|
|
and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0 -- 计划加工卷数- 已取消卷数合计
|
|
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 apope.PLANENDDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
- and apo.TENANTID='0001S31000000000J0TR'
|
|
|
|
|
|
+ and apo.TENANTID=#{tenantId}
|
|
group by
|
|
group by
|
|
month_year
|
|
month_year
|
|
),
|
|
),
|
|
@@ -819,7 +819,7 @@
|
|
and app.PROCESSCATEGORY='10' -- 铸轧
|
|
and app.PROCESSCATEGORY='10' -- 铸轧
|
|
and arr.REPORTWORKSTATUS='已报工'
|
|
and arr.REPORTWORKSTATUS='已报工'
|
|
and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
- and apo.TENANTID='0001S31000000000J0TR'
|
|
|
|
|
|
+ and apo.TENANTID=#{tenantId}
|
|
group by
|
|
group by
|
|
month_year
|
|
month_year
|
|
)
|
|
)
|
|
@@ -852,7 +852,7 @@
|
|
and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
and apo.PROCESSSTATUS in ('30','40','50') -- 已发布
|
|
and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0 -- 计划加工卷数- 已取消卷数合计
|
|
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 apope.PLANENDDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
- and apo.TENANTID='0001S31000000000J0TR'
|
|
|
|
|
|
+ and apo.TENANTID=#{tenantId}
|
|
group by
|
|
group by
|
|
month_year
|
|
month_year
|
|
),
|
|
),
|
|
@@ -871,7 +871,370 @@
|
|
and app.PROCESSCATEGORY='10' -- 铸轧
|
|
and app.PROCESSCATEGORY='10' -- 铸轧
|
|
and arr.REPORTWORKSTATUS='已报工'
|
|
and arr.REPORTWORKSTATUS='已报工'
|
|
and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
and apope.ACTUALFINISHDATE between DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 11 MONTH), '%Y-%m-01') and CURRENT_DATE -- 近12个月计划
|
|
- and apo.TENANTID='0001S31000000000J0TR'
|
|
|
|
|
|
+ and apo.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="selectProcessTable" resultType="com.rongwei.bsentity.domain.ApsReportJzProcessTable">
|
|
|
|
+ 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='40' -- 精整
|
|
|
|
+ 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), -- 本月
|
|
|
|
+ (LENGTH(trim( BOTH ',' FROM arr.BATCHNUMBER))-LENGTH(REPLACE(trim( BOTH ',' FROM arr.BATCHNUMBER), ',', '')) + 1) * IFNULL(arr.ACTUALROLLWEIGHT,apo.SINGLEROLLWEIGHT),null)) ACTUALPRODUCEVOLUME, -- 本月实际已加工量=报工批次号数量*实际输入单卷重
|
|
|
|
+ sum(if(DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
|
+ (LENGTH(trim( BOTH ',' FROM arr.BATCHNUMBER))-LENGTH(REPLACE(trim( BOTH ',' FROM arr.BATCHNUMBER), ',', '')) + 1) * IFNULL(arr.ACTUALROLLWEIGHT,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='40' -- 精整
|
|
|
|
+ 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="selectProcessAvg" resultType="com.rongwei.bsentity.domain.ApsReportJzProcessPhoto">
|
|
|
|
+ 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='40' -- 精整
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ ),
|
|
|
|
+ actual as (
|
|
|
|
+ -- 近12个月精整实际加工量
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
|
+ sum((LENGTH(trim( BOTH ',' FROM arr.BATCHNUMBER))-LENGTH(REPLACE(trim( BOTH ',' FROM arr.BATCHNUMBER), ',', '')) + 1) * IFNULL(arr.ACTUALROLLWEIGHT,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='40' -- 精整
|
|
|
|
+ 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=#{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="selectProcessTrend" resultType="com.rongwei.bsentity.domain.ApsReportJzProcessPhoto">
|
|
|
|
+ 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='40' -- 精整
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ ),
|
|
|
|
+ actual as (
|
|
|
|
+ -- 近12个月精整实际加工量
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
|
+ sum((LENGTH(trim( BOTH ',' FROM arr.BATCHNUMBER))-LENGTH(REPLACE(trim( BOTH ',' FROM arr.BATCHNUMBER), ',', '')) + 1) * IFNULL(arr.ACTUALROLLWEIGHT,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='40' -- 精整
|
|
|
|
+ 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=#{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="selectZjProcessTable" resultType="com.rongwei.bsentity.domain.ApsReportZjProcessTable">
|
|
|
|
+ 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,null)) PLANPRODUCEVOLUME, -- 本月计划加工量
|
|
|
|
+ sum(if(DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
|
+ apope.PLANPROCESSRALL-apope.CANCELROLL,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='20' -- 轧机
|
|
|
|
+ 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), -- 本月
|
|
|
|
+ 1,null)) ACTUALPRODUCEVOLUME, -- 本月实际已加工量
|
|
|
|
+ sum(if(DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
|
+ 1,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='20' -- 轧机
|
|
|
|
+ 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) PLANPRODUCEVOLUME -- 本月计划加工(道次)
|
|
|
|
+ ,ifnull(plan.YPLANPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 昨日计划加工(道次)
|
|
|
|
+ ,ifnull(actual.ACTUALPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 本月实际已加工(道次)
|
|
|
|
+ ,ifnull(actual.YACTUALPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 昨日实际已加工(道次)
|
|
|
|
+ ,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) PLANPRODUCEVOLUME -- 本月计划加工(道次)
|
|
|
|
+ ,ifnull(plan.YPLANPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 昨日计划加工(道次)
|
|
|
|
+ ,ifnull(actual.ACTUALPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 本月实际已加工(道次)
|
|
|
|
+ ,ifnull(actual.YACTUALPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 昨日实际已加工(道次)
|
|
|
|
+ ,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="selectAvgZjProcessPhoto" resultType="com.rongwei.bsentity.domain.ApsReportZjProcessPhoto">
|
|
|
|
+ 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) 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='20' -- 轧机
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ ),
|
|
|
|
+ actual as (
|
|
|
|
+ -- 近12个月轧机实际加工量
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
|
+ count(arr.id) 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='20' -- 轧机
|
|
|
|
+ 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=#{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="selectZjProcessPhoto" resultType="com.rongwei.bsentity.domain.ApsReportZjProcessPhoto">
|
|
|
|
+ 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) 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='20' -- 轧机
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ ),
|
|
|
|
+ actual as (
|
|
|
|
+ -- 近12个月轧机实际加工量
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
|
+ count(arr.id) 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='20' -- 轧机
|
|
|
|
+ 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=#{tenantId}
|
|
group by
|
|
group by
|
|
month_year
|
|
month_year
|
|
)
|
|
)
|
|
@@ -886,4 +1249,185 @@
|
|
ORDER BY
|
|
ORDER BY
|
|
month_year
|
|
month_year
|
|
</select>
|
|
</select>
|
|
|
|
+ <select id="selectThProcessTable" resultType="com.rongwei.bsentity.domain.ApsReportThProcessTable">
|
|
|
|
+ with plan as (
|
|
|
|
+ -- 按照车间分组统计本月退火工序类别计划加工量
|
|
|
|
+ select
|
|
|
|
+ apo.TENANTID,
|
|
|
|
+ apope.PROCESSWORKSHOPID,
|
|
|
|
+ max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
|
|
|
|
+ count(DISTINCT if(YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE) and MONTH(apope.PLANENDDATE) = MONTH(CURRENT_DATE), -- 本月
|
|
|
|
+ apope.PROCESSDEVICEID+apope.PLANENDDATE,0)) PLANPRODUCEVOLUME, -- 本月计划加工量=炉次(设备ID+计划开工时间)的数量
|
|
|
|
+ count(DISTINCT if(DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
|
|
|
|
+ apope.PROCESSDEVICEID+apope.PLANENDDATE,0)) YPLANPRODUCEVOLUME -- 昨日计划加工量=炉次(设备ID+计划开工时间)的数量
|
|
|
|
+ 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='30' -- 退火
|
|
|
|
+ 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,
|
|
|
|
+ count(DISTINCT if(YEAR(apope.ACTUALFINISHDATE) = YEAR(CURRENT_DATE) and MONTH(apope.ACTUALFINISHDATE) = MONTH(CURRENT_DATE),
|
|
|
|
+ arr.HEATNUMBER, null)) ACTUALPRODUCEVOLUME, -- 本月实际已加工量
|
|
|
|
+ count(DISTINCT if(DATE(apope.ACTUALFINISHDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),
|
|
|
|
+ arr.HEATNUMBER, 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='30' -- 退火
|
|
|
|
+ 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) PLANPRODUCEVOLUME -- 本月计划加工(炉次)
|
|
|
|
+ ,IFNULL(plan.YPLANPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 昨日计划加工(炉次)
|
|
|
|
+ ,IFNULL(actual.ACTUALPRODUCEVOLUME,0) ACTUALPRODUCEVOLUME -- 本月实际已加工(炉次)
|
|
|
|
+ ,IFNULL(actual.YACTUALPRODUCEVOLUME,0) 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) PLANPRODUCEVOLUME -- 本月计划加工(炉次)
|
|
|
|
+ ,IFNULL(plan.YPLANPRODUCEVOLUME,0) YPLANPRODUCEVOLUME -- 昨日计划加工(炉次)
|
|
|
|
+ ,IFNULL(actual.ACTUALPRODUCEVOLUME,0) ACTUALPRODUCEVOLUME -- 本月实际已加工(炉次)
|
|
|
|
+ ,IFNULL(actual.YACTUALPRODUCEVOLUME,0) 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="selectAvgThProcessPhoto" resultType="com.rongwei.bsentity.domain.ApsReportThProcessPhoto">
|
|
|
|
+ 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,
|
|
|
|
+ count(DISTINCT apope.PROCESSDEVICEID+apope.PLANENDDATE) PLANPRODUCEVOLUME -- 当月计划加工量=炉次(设备ID+计划开工时间)的数量
|
|
|
|
+ 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='30' -- 退火
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ ),
|
|
|
|
+ actual as (
|
|
|
|
+ -- 近12个月退火实际加工量
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
|
+ count(DISTINCT arr.HEATNUMBER) 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='30' -- 退火
|
|
|
|
+ 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=#{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="selectThProcessPhoto" resultType="com.rongwei.bsentity.domain.ApsReportThProcessPhoto">
|
|
|
|
+ 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,
|
|
|
|
+ count(DISTINCT apope.PROCESSDEVICEID+apope.PLANENDDATE) PLANPRODUCEVOLUME -- 当月计划加工量=炉次(设备ID+计划开工时间)的数量
|
|
|
|
+ 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='30' -- 退火
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ ),
|
|
|
|
+ actual as (
|
|
|
|
+ -- 近12个月退火实际加工量
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(apope.ACTUALFINISHDATE, '%Y-%m') month_year,
|
|
|
|
+ count(DISTINCT arr.HEATNUMBER) 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='30' -- 退火
|
|
|
|
+ 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=#{tenantId}
|
|
|
|
+ group by
|
|
|
|
+ month_year
|
|
|
|
+ )
|
|
|
|
+ select
|
|
|
|
+ DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL months.n MONTH), '%Y-%m') month_year,
|
|
|
|
+ IFNULL(plan.PLANPRODUCEVOLUME,0) PLANPRODUCEVOLUME, -- 计划加工量
|
|
|
|
+ IFNULL(actual.ACTUALPRODUCEVOLUME,0) 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>
|
|
</mapper>
|