浏览代码

aps-大屏

sucheng 4 月之前
父节点
当前提交
c7baf2d7ea
共有 1 个文件被更改,包括 66 次插入68 次删除
  1. 66 68
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml

+ 66 - 68
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml

@@ -1285,70 +1285,68 @@
             select
                 PROCESSWORKSHOPID,
                 max(PROCESSWORKSHOP) PROCESSWORKSHOP,
-            DATE(PLANSTARTDATE) PROCESSDAY,
-            count(if(YEARWEEK(heat.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
-            HEATNUMBER,null)) PLANPRODUCEVOLUME, -- 本周计划加工量=炉次的数量
-            count(if(DATE(heat.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
-            HEATNUMBER,null)) YPLANPRODUCEVOLUME -- 昨日计划加工量=炉次的数量
-        from (
-            -- 按照车间分组统计本周退火工序类别计划加工量
-            select
-            max(apope.PROCESSWORKSHOPID) PROCESSWORKSHOPID,
-            max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            concat(apope.PROCESSDEVICEID,apope.PLANSTARTDATE) HEATNUMBER, -- 炉次(设备ID+计划开工时间)
-            max(apope.PLANSTARTDATE) PROCESSDAY,
-            apope.PLANSTARTDATE
-            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 (YEARWEEK(apope.PLANSTARTDATE,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
-            or DATE(apope.PLANSTARTDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
-            and apo.TENANTID=#{tenantId}
-            group by
-                concat(apope.PROCESSDEVICEID,apope.PLANSTARTDATE) -- 计划炉次
-            ) heat
-        group by PROCESSWORKSHOPID
-            ),
-            actual as (
-        -- 按照车间分组统计本周退火工序类别实际加工量
-        select
-            PROCESSWORKSHOPID,
-            max(PROCESSWORKSHOP) PROCESSWORKSHOP,
-            DATE(STARTWORKTIME) PROCESSDAY,
-            count(if(YEARWEEK(heat.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
-            HEATNUMBER,null)) ACTUALPRODUCEVOLUME, -- 本周实际已加工(炉次)
-            count(if(DATE(heat.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
-            HEATNUMBER,null)) YACTUALPRODUCEVOLUME -- 昨日实际已加工(炉次)
-        from(
-            select
-            concat(apope.PROCESSDEVICEID,arr.STARTWORKTIME,arr.HEATNUMBER) HEATNUMBER, -- 炉次
-            max(DATE(arr.STARTWORKTIME)) PROCESSDAY,
-            max(apope.PROCESSWORKSHOPID) PROCESSWORKSHOPID,
-            max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            arr.STARTWORKTIME
-            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 (YEARWEEK(arr.STARTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
-            or DATE(arr.STARTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
-            and apo.TENANTID=#{tenantId}
-            group by
-            apope.PROCESSDEVICEID,concat(apope.PROCESSDEVICEID,arr.STARTWORKTIME,arr.HEATNUMBER)
-            ) heat
-        group by PROCESSWORKSHOPID
-            )
+                DATE(PROCESSDAY) PROCESSDAY,
+                count(if(YEARWEEK(heat.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
+                         HEATNUMBER,null)) PLANPRODUCEVOLUME, -- 本周计划加工量=炉次的数量
+                count(if(DATE(heat.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
+                         HEATNUMBER,null)) YPLANPRODUCEVOLUME -- 昨日计划加工量=炉次的数量
+            from (
+                     -- 按照车间分组统计本周退火工序类别计划加工量
+                     select
+                         max(apope.PROCESSWORKSHOPID) PROCESSWORKSHOPID,
+                         max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
+                         concat(apope.PROCESSDEVICEID,apope.PLANSTARTDATE) HEATNUMBER, -- 炉次(设备ID+计划开工时间)
+                         max(apope.PLANENDDATE) PROCESSDAY
+                     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 apo.TENANTID=#{tenantId}
+                     group by
+                         concat(apope.PROCESSDEVICEID,apope.PLANSTARTDATE) -- 计划炉次
+                     HAVING (YEARWEEK(PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
+                         or DATE(PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
+                 ) heat
+            group by PROCESSWORKSHOPID,DATE(PROCESSDAY)
+        ),
+             actual as (
+                 -- 按照车间分组统计本周退火工序类别实际加工量
+                 select
+                     PROCESSWORKSHOPID,
+                     max(PROCESSWORKSHOP) PROCESSWORKSHOP,
+                     DATE(PROCESSDAY) PROCESSDAY,
+                     count(if(YEARWEEK(heat.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
+                              HEATNUMBER,null)) ACTUALPRODUCEVOLUME, -- 本周实际已加工(炉次)
+                     count(if(DATE(heat.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
+                              HEATNUMBER,null)) YACTUALPRODUCEVOLUME -- 昨日实际已加工(炉次)
+                 from(
+                         select
+                             concat(apope.PROCESSDEVICEID,arr.STARTWORKTIME,arr.HEATNUMBER) HEATNUMBER, -- 炉次
+                             max(arr.REPORTWORKTIME) PROCESSDAY,
+                             max(apope.PROCESSWORKSHOPID) PROCESSWORKSHOPID,
+                             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP
+                         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 apo.TENANTID=#{tenantId}
+                         group by
+                             apope.PROCESSDEVICEID,concat(apope.PROCESSDEVICEID,arr.STARTWORKTIME,arr.HEATNUMBER)
+                         HAVING (YEARWEEK(PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
+                             or DATE(PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
+                     ) heat
+                 group by PROCESSWORKSHOPID,DATE(PROCESSDAY)
+             )
         select
             plan.PROCESSWORKSHOPID
              ,plan.PROCESSWORKSHOP
@@ -1356,9 +1354,9 @@
              ,IFNULL(ROUND(sum(if(DATE(plan.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),plan.YPLANPRODUCEVOLUME,null)),2),0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
              ,IFNULL(ROUND(sum(if(YEARWEEK(actual.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),actual.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
              ,IFNULL(ROUND(sum(if(DATE(actual.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),actual.YACTUALPRODUCEVOLUME,null)),2),0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
-        --              ,ROUND(if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
+             --              ,ROUND(if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
 --                  1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME),2) COMPLETIONRATIO -- 本周实际已完成比例
-            ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
+             ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
             plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID group by plan.PROCESSWORKSHOPID
         union -- mysql 该版本不支持full join,通过left join 和right join配合
@@ -1369,9 +1367,9 @@
              ,IFNULL(ROUND(sum(if(DATE(plan.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),plan.YPLANPRODUCEVOLUME,null)),2),0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
              ,IFNULL(ROUND(sum(if(YEARWEEK(actual.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),actual.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
              ,IFNULL(ROUND(sum(if(DATE(actual.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),actual.YACTUALPRODUCEVOLUME,null)),2),0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
-        --              ,ROUND(if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
+             --              ,ROUND(if(plan.PLANPRODUCEVOLUME is null or plan.PLANPRODUCEVOLUME = 0,
 --                  1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME),2) COMPLETIONRATIO -- 本周实际已完成比例
-            ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
+             ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
             plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID group by actual.PROCESSWORKSHOPID
     </select>