Quellcode durchsuchen

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

fangpy vor 7 Monaten
Ursprung
Commit
7758be6164

+ 4 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -260,6 +260,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             this.update(new LambdaUpdateWrapper<ApsBlankOrderDo>().eq(ApsBlankOrderDo::getId, blankId)
                     .set(ApsBlankOrderDo::getProductstatus, producttStatus)
                     .set(ApsBlankOrderDo::getSchedulingstatus, schedulingstatus));
+            //存储日志
+            apsConflictLogService.recordLog("","更新坯料计划状态为待排程,坯料计划ID为:"+blankId,"",1,null);
         });
 //        // 更新产品明细的生产状态
 //        apsProductDetailDao.publishCancel(blankIds);
@@ -1709,6 +1711,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 .set(ApsProductionOrderDo::getProductionstatus, TO_BE_SCHEDULED));
         // 更新坯料计划的状态
         this.baseMapper.cancelSchedulingUpdate(blankids);
+        //存储日志
+        apsConflictLogService.recordLog("","更新坯料计划状态为待排程,坯料计划ID为:"+blankids,"",1,null);
         //获取坯料计划用到的产品明细ID
         String idStrs = CollUtil.join(blankids, "','");
         idStrs = "'" + idStrs + "'";

+ 2 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquServiceImpl.java

@@ -1163,6 +1163,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                          */
                         if (two.getMinProductionStatus().equals(TO_BE_SCHEDULED)) {
                             blankOrderDo.setSchedulingstatus(SaveConstans.SchedulingStatus.TO_BE_SCHEDULED);
+                            //存储日志
+                            apsConflictLogService.recordLog("","更新坯料计划状态为待排程,坯料计划ID为:"+blankOrderDo.getId(),"",2,null);
                         } else if (two.getMinProductionStatus().equals(TO_BE_PUBLISHED)) {
                             blankOrderDo.setSchedulingstatus(SaveConstans.SchedulingStatus.TO_BE_PUBLISHED);
                         } else {

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -1837,7 +1837,7 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                     && new BigDecimal(item.getActualfinishnumweek()).compareTo(BigDecimal.ZERO) != 0) {
                 //计算比例,保留4位小数,以便百分比保留两位小数
                 item.setActualfinishnumweekhpercent(
-                        new BigDecimal(item.getActualfinishnumweek()).multiply(BigDecimal.valueOf(100)).divide(new BigDecimal(item.getActualordernummonth()), 2, RoundingMode.HALF_UP).toString());
+                        new BigDecimal(item.getActualfinishnumweek()).multiply(BigDecimal.valueOf(100)).divide(new BigDecimal(item.getActualordernumweek()), 2, RoundingMode.HALF_UP).toString());
             } else if (new BigDecimal(item.getActualfinishnumweek()).compareTo(BigDecimal.ZERO) == 0) {
                 item.setActualfinishnumweekhpercent("0");
             } else {

+ 142 - 113
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml

@@ -366,19 +366,19 @@
         IFNULL(ROUND(sum((apope.PLANPROCESSRALL-apope.CANCELROLL)*apoom.PLANPRODROLLNUM/apo.PLANPROCESSRALL*apoom.SINGLEROLLWEIGHT),2),0) AS 'actualordernumyear' -- 实际接单量
         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
-        left join aps_product_detail apd on apoom.ORDERDETAILID = apd.id and apd.DELETED='0' -- 订单产品明细
-        left join aps_production_merge_order apmd on apmd.ORDERNO = apd.MERGEORDERNUMBER and apmd.DELETED='0'
-        where
-        apope.deleted='0' and abo.DELETED='0' and apro.deleted='0'
-        and apo.DELETED='0' and apoom.DELETED='0'
-        and ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) = '客户订单' -- 订单类型为空默认为客户订单
-        and abo.PRODUCTSTATUS in ('30','40','50')
-        and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0
-        and apoom.PLANPRODROLLNUM>0
+            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
+            left join aps_product_detail apd on apoom.ORDERDETAILID = apd.id and apd.DELETED='0'
+            left join aps_product_specs aps on aps.TENANTID=apro.TENANTID and aps.DELETED='0'
+            left join aps_production_merge_order apmd on apmd.ORDERNO = apd.MERGEORDERNUMBER and apmd.DELETED='0'
+        where apope.DELETED='0' and apo.DELETED='0' and abo.DELETED='0' and apro.DELETED='0' and apoom.DELETED='0'
+                  and apoom.THICKNESS > IFNULL(aps.THICKSTR,0) and apoom.THICKNESS &lt;= IFNULL(aps.THICKEND,99999)
+                  and IFNULL(apmd.ORDERTYPE, apro.ORDERTYPE)='客户订单'
+                  and abo.PRODUCTSTATUS in ('30','40','50')
+                  and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0
+                  and apoom.PLANPRODROLLNUM>0
         and YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE)
         GROUP BY apro.TENANTID
     </select>
@@ -442,15 +442,15 @@
         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_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
-        left join aps_product_detail apd on apoom.ORDERDETAILID = apd.id  and apo.DELETED='0'-- 订单产品明细
+        left join aps_product_detail apd on apoom.ORDERDETAILID = apd.id and apd.DELETED='0'
+        left join aps_product_specs aps on aps.TENANTID=apro.TENANTID and aps.DELETED='0'
         left join aps_production_merge_order apmd on apmd.ORDERNO = apd.MERGEORDERNUMBER and apmd.DELETED='0'
-        where
-        apope.deleted='0' and abo.DELETED='0' and apro.deleted='0'
-        and apd.DELETED='0' and apoom.DELETED='0'
-        and ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) = '客户订单' -- 订单类型为空默认为客户订单
+        where apope.DELETED='0' and apo.DELETED='0' and abo.DELETED='0' and apro.DELETED='0' and apoom.DELETED='0'
+        and apoom.THICKNESS > IFNULL(aps.THICKSTR,0) and apoom.THICKNESS &lt;= IFNULL(aps.THICKEND,99999)
+        and IFNULL(apmd.ORDERTYPE, apro.ORDERTYPE)='客户订单'
         and abo.PRODUCTSTATUS in ('30','40','50')
         and (apope.PLANPROCESSRALL-apope.CANCELROLL)>0
         and apoom.PLANPRODROLLNUM>0
@@ -708,7 +708,7 @@
                 apope.PROCESSWORKSHOPID,
             DATE(apope.PLANENDDATE) PROCESSDAY,
             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            sum(if(YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE) and WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE), -- 本周
+            sum(if(YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
            (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 -- 昨日计划加工量
@@ -721,7 +721,7 @@
           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 WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE) -- 本周
+          and (YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
            or DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
           and apo.TENANTID=#{tenantId}
         group by
@@ -734,7 +734,7 @@
             apope.PROCESSWORKSHOPID,
             DATE(arr.REPORTWORKTIME) PROCESSDAY,
             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            sum(if(YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE), -- 本周
+            sum(if(YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
             apo.SINGLEROLLWEIGHT,null)) ACTUALPRODUCEVOLUME, -- 本周实际已加工量
             sum(if(DATE(arr.REPORTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
             apo.SINGLEROLLWEIGHT,null)) YACTUALPRODUCEVOLUME -- 昨日实际已加工量
@@ -747,37 +747,46 @@
             apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
           and app.PROCESSCATEGORY='10' -- 铸轧
           and arr.REPORTWORKSTATUS='已报工'
-          and (YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE) -- 本周
+          and (YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
            or DATE(arr.REPORTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
           and apo.TENANTID=#{tenantId}
         group by
             apope.PROCESSWORKSHOPID,PROCESSDAY
+            ),
+            total as (
+        select plan.TENANTID,
+            plan.PROCESSWORKSHOPID,
+            plan.PROCESSDAY,
+            plan.PROCESSWORKSHOP,
+            plan.PLANPRODUCEVOLUME, -- 本周计划加工量
+            plan.YPLANPRODUCEVOLUME, -- 昨日计划加工量
+            actual.ACTUALPRODUCEVOLUME,
+            actual.YACTUALPRODUCEVOLUME
+        from plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY = actual.PROCESSDAY
+        union
+        select actual.TENANTID,
+            actual.PROCESSWORKSHOPID,
+            actual.PROCESSDAY,
+            actual.PROCESSWORKSHOP,
+            plan.PLANPRODUCEVOLUME, -- 本周计划加工量
+            plan.YPLANPRODUCEVOLUME, -- 昨日计划加工量
+            actual.ACTUALPRODUCEVOLUME,
+            actual.YACTUALPRODUCEVOLUME
+        from plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY = actual.PROCESSDAY
             )
+
         select
-            plan.PROCESSWORKSHOPID
-             ,plan.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
-             ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),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,
-            ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
-        from
-            plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
-        union -- mysql 该版本不支持full join,通过left join 和right join配合
-        select
-            actual.PROCESSWORKSHOPID
-             ,actual.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
-             ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),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' -- 昨日实际已加工(吨)
+            total.PROCESSWORKSHOPID
+             ,total.PROCESSWORKSHOP
+             ,IFNULL(ROUND(sum(if(YEARWEEK(total.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),total.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
+             ,IFNULL(ROUND(sum(if(DATE(total.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),total.YPLANPRODUCEVOLUME,null)),2),0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
+             ,IFNULL(ROUND(sum(if(YEARWEEK(total.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),total.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
+             ,IFNULL(ROUND(sum(if(DATE(total.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),total.YACTUALPRODUCEVOLUME,null)),2),0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
         --              ,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(total.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
-            plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
+            total  group by total.PROCESSWORKSHOPID
     </select>
     <select id="selectCastRollPhotoAvg" resultType="com.rongwei.bsentity.domain.ApsReportCastRollPhoto">
         with months as (
@@ -893,7 +902,7 @@
                 apope.PROCESSWORKSHOPID,
             DATE(apope.PLANENDDATE) PROCESSDAY,
             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            sum(if(YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE) and WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE), -- 本周
+            sum(if(YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
            (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 -- 昨日计划加工量
@@ -906,7 +915,7 @@
           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 WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE) -- 本周
+          and (YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
            or DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
           and apo.TENANTID=#{tenantId}
         group by
@@ -919,7 +928,7 @@
             apope.PROCESSWORKSHOPID,
             DATE(arr.REPORTWORKTIME) PROCESSDAY,
             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            sum(if(YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE), -- 本周
+            sum(if(YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
             (LENGTH(trim( BOTH ',' FROM arr.BATCHNUMBER))-LENGTH(REPLACE(trim( BOTH ',' FROM arr.BATCHNUMBER), ',', '')) + 1) * IFNULL(arr.ACTUALROLLWEIGHT,apo.SINGLEROLLWEIGHT),null)) ACTUALPRODUCEVOLUME, -- 本周实际已加工量=报工批次号数量*实际输入单卷重
             sum(if(DATE(arr.REPORTWORKTIME) = 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 -- 昨日实际已加工量=报工批次号数量*实际输入单卷重
@@ -932,37 +941,47 @@
             apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
           and app.PROCESSCATEGORY='40' -- 精整
           and arr.REPORTWORKSTATUS='已报工'
-          and (YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE) -- 本周
+          and (YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
            or DATE(arr.REPORTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
           and apo.TENANTID=#{tenantId}
         group by
             apope.PROCESSWORKSHOPID,PROCESSDAY
+            ),
+            total as (
+        select plan.TENANTID,
+            plan.PROCESSWORKSHOPID,
+            plan.PROCESSDAY,
+            plan.PROCESSWORKSHOP,
+            plan.PLANPRODUCEVOLUME, -- 本周计划加工量
+            plan.YPLANPRODUCEVOLUME, -- 昨日计划加工量
+            actual.ACTUALPRODUCEVOLUME,
+            actual.YACTUALPRODUCEVOLUME
+        from plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY = actual.PROCESSDAY
+        union
+        select actual.TENANTID,
+            actual.PROCESSWORKSHOPID,
+            actual.PROCESSDAY,
+            actual.PROCESSWORKSHOP,
+            plan.PLANPRODUCEVOLUME, -- 本周计划加工量
+            plan.YPLANPRODUCEVOLUME, -- 昨日计划加工量
+            actual.ACTUALPRODUCEVOLUME,
+            actual.YACTUALPRODUCEVOLUME
+        from plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY = actual.PROCESSDAY
             )
+
         select
-            plan.PROCESSWORKSHOPID
-             ,plan.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
-             ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),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' -- 昨日实际已加工(吨)
+            total.PROCESSWORKSHOPID
+             ,total.PROCESSWORKSHOP
+             ,IFNULL(ROUND(sum(if(YEARWEEK(total.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),total.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
+             ,IFNULL(ROUND(sum(if(DATE(total.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),total.YPLANPRODUCEVOLUME,null)),2),0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
+             ,IFNULL(ROUND(sum(if(YEARWEEK(total.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),total.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
+             ,IFNULL(ROUND(sum(if(DATE(total.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),total.YACTUALPRODUCEVOLUME,null)),2),0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
         --              ,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 -- 本周日平均
-        from
-            plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
-        union -- mysql 该版本不支持full join,通过left join 和right join配合
-        select
-            actual.PROCESSWORKSHOPID
-             ,actual.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
-             ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),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,
-            ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
+            ,IFNULL(ROUND(AVG(total.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
-            plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
+            total  group by total.PROCESSWORKSHOPID
+
     </select>
     <select id="selectProcessAvg" resultType="com.rongwei.bsentity.domain.ApsReportJzProcessPhoto">
         with months as (
@@ -1078,7 +1097,7 @@
                 apope.PROCESSWORKSHOPID,
             DATE(apope.PLANENDDATE) PROCESSDAY,
             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            sum(if(YEAR(apope.PLANENDDATE) = YEAR(CURRENT_DATE) and WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE), -- 本周
+            sum(if(YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
             apope.PLANPROCESSRALL-apope.CANCELROLL,null)) PLANPRODUCEVOLUME, -- 本周计划加工量
             sum(if(DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), -- 昨日
             apope.PLANPROCESSRALL-apope.CANCELROLL,null)) YPLANPRODUCEVOLUME -- 昨日计划加工量
@@ -1091,7 +1110,7 @@
           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 WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE) -- 本周
+          and (YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
            or DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
           and apo.TENANTID=#{tenantId}
         group by
@@ -1104,7 +1123,7 @@
             apope.PROCESSWORKSHOPID,
             DATE(arr.REPORTWORKTIME) PROCESSDAY,
             max(apope.PROCESSWORKSHOP) PROCESSWORKSHOP,
-            sum(if(YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE), -- 本周
+            sum(if(YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1), -- 本周
             1,null)) ACTUALPRODUCEVOLUME, -- 本周实际已加工量
             sum(if(DATE(arr.REPORTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY), --  昨日
             1,null)) YACTUALPRODUCEVOLUME -- 昨日实际已加工量
@@ -1117,37 +1136,46 @@
             apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
           and app.PROCESSCATEGORY='20' -- 轧机
           and arr.REPORTWORKSTATUS='已报工'
-          and (YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE) -- 本周
+          and (YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
            or DATE(arr.REPORTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
           and apo.TENANTID=#{tenantId}
         group by
             apope.PROCESSWORKSHOPID,PROCESSDAY
+            ),
+            total as (
+        select plan.TENANTID,
+            plan.PROCESSWORKSHOPID,
+            plan.PROCESSDAY,
+            plan.PROCESSWORKSHOP,
+            plan.PLANPRODUCEVOLUME, -- 本周计划加工量
+            plan.YPLANPRODUCEVOLUME, -- 昨日计划加工量
+            actual.ACTUALPRODUCEVOLUME,
+            actual.YACTUALPRODUCEVOLUME
+        from plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY = actual.PROCESSDAY
+        union
+        select actual.TENANTID,
+            actual.PROCESSWORKSHOPID,
+            actual.PROCESSDAY,
+            actual.PROCESSWORKSHOP,
+            plan.PLANPRODUCEVOLUME, -- 本周计划加工量
+            plan.YPLANPRODUCEVOLUME, -- 昨日计划加工量
+            actual.ACTUALPRODUCEVOLUME,
+            actual.YACTUALPRODUCEVOLUME
+        from plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY = actual.PROCESSDAY
             )
+
         select
-            plan.PROCESSWORKSHOPID
-             ,plan.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
-             ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),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,
-            ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
-        from
-            plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
-        union -- mysql 该版本不支持full join,通过left join 和right join配合
-        select
-            actual.PROCESSWORKSHOPID
-             ,actual.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
-             ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),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' -- 昨日实际已加工(吨)
+            total.PROCESSWORKSHOPID
+             ,total.PROCESSWORKSHOP
+             ,IFNULL(ROUND(sum(if(YEARWEEK(total.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),total.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
+             ,IFNULL(ROUND(sum(if(DATE(total.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),total.YPLANPRODUCEVOLUME,null)),2),0) AS 'YPLANPRODUCEVOLUME' -- 昨日计划加工(吨)
+             ,IFNULL(ROUND(sum(if(YEARWEEK(total.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),total.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
+             ,IFNULL(ROUND(sum(if(DATE(total.PROCESSDAY) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY),total.YACTUALPRODUCEVOLUME,null)),2),0) AS 'YACTUALPRODUCEVOLUME' -- 昨日实际已加工(吨)
         --              ,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(total.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
-            plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
+            total  group by total.PROCESSWORKSHOPID
     </select>
     <select id="selectAvgZjProcessPhoto" resultType="com.rongwei.bsentity.domain.ApsReportZjProcessPhoto">
         with months as (
@@ -1263,7 +1291,7 @@
                 PROCESSWORKSHOPID,
                 max(PROCESSWORKSHOP) PROCESSWORKSHOP,
             DATE(PLANENDDATE) PROCESSDAY,
-            count(if(YEAR(heat.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(heat.PROCESSDAY) = WEEK(CURRENT_DATE), -- 本周
+            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 -- 昨日计划加工量=炉次的数量
@@ -1284,13 +1312,13 @@
             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 WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE) -- 本周
+            and (YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
             or DATE(apope.PLANENDDATE) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
             and apo.TENANTID=#{tenantId}
             group by
             HEATNUMBER -- 计划炉次
             ) heat
-        group by PROCESSWORKSHOPID,PROCESSDAY
+        group by PROCESSWORKSHOPID
             ),
             actual as (
         -- 按照车间分组统计本周退火工序类别实际加工量
@@ -1298,7 +1326,7 @@
             PROCESSWORKSHOPID,
             max(PROCESSWORKSHOP) PROCESSWORKSHOP,
             DATE(REPORTWORKTIME) PROCESSDAY,
-            count(if(YEAR(heat.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(heat.PROCESSDAY) = WEEK(CURRENT_DATE), -- 本周
+            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 -- 昨日实际已加工(炉次)
@@ -1318,39 +1346,39 @@
             apope.deleted='0' and apo.DELETED='0' and arr.deleted='0'
             and app.PROCESSCATEGORY='30' -- 退火
             and arr.REPORTWORKSTATUS='已报工'
-            and (YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE) and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE) -- 本周
+            and (YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1) -- 本周
             or DATE(arr.REPORTWORKTIME) = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)) -- 昨日
             and apo.TENANTID=#{tenantId}
             group by
             apope.PROCESSDEVICEID,arr.HEATNUMBER
             ) heat
-        group by PROCESSWORKSHOPID,PROCESSDAY
+        group by PROCESSWORKSHOPID
             )
         select
             plan.PROCESSWORKSHOPID
              ,plan.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
+             ,IFNULL(ROUND(sum(if(YEARWEEK(plan.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
              ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),actual.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
+             ,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,
 --                  1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME),2) COMPLETIONRATIO -- 本周实际已完成比例
             ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
-            plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
+            plan left join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID group by plan.PROCESSWORKSHOPID
         union -- mysql 该版本不支持full join,通过left join 和right join配合
         select
             actual.PROCESSWORKSHOPID
              ,actual.PROCESSWORKSHOP
-             ,IFNULL(ROUND(sum(if(YEAR(plan.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(plan.PROCESSDAY) = WEEK(CURRENT_DATE),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
+             ,IFNULL(ROUND(sum(if(YEARWEEK(plan.PROCESSDAY,1)=YEARWEEK(CURRENT_DATE,1),plan.PLANPRODUCEVOLUME,null)),2),0) AS 'WEEKPLANPRODUCEVOLUME' -- 本周计划加工(吨)
              ,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(YEAR(actual.PROCESSDAY) = YEAR(CURRENT_DATE) and WEEK(actual.PROCESSDAY) = WEEK(CURRENT_DATE),actual.ACTUALPRODUCEVOLUME,null)),2),0) AS 'WEEKACTUALPRODUCEVOLUME' -- 本周实际已加工(吨)
+             ,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,
 --                  1, actual.ACTUALPRODUCEVOLUME/plan.PLANPRODUCEVOLUME),2) COMPLETIONRATIO -- 本周实际已完成比例
             ,IFNULL(ROUND(AVG(actual.ACTUALPRODUCEVOLUME),2),0) COMPLETIONRATIO -- 本周日平均
         from
-            plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID and plan.PROCESSDAY=actual.PROCESSDAY
+            plan right join actual on plan.PROCESSWORKSHOPID=actual.PROCESSWORKSHOPID group by actual.PROCESSWORKSHOPID
     </select>
     <select id="selectAvgThProcessPhoto" resultType="com.rongwei.bsentity.domain.ApsReportThProcessPhoto">
         with months as (
@@ -1497,20 +1525,19 @@
         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_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
-                left join aps_product_detail apd on apoom.ORDERDETAILID = apd.id  and apo.DELETED='0'-- 订单产品明细
+                left join aps_product_detail apd on apoom.ORDERDETAILID = apd.id and apd.DELETED='0'
+                left join aps_product_specs aps on aps.TENANTID=apro.TENANTID and aps.DELETED='0'
                 left join aps_production_merge_order apmd on apmd.ORDERNO = apd.MERGEORDERNUMBER and apmd.DELETED='0'
-        where
-            apope.deleted='0' and abo.DELETED='0' and apro.deleted='0'
-                and apd.DELETED='0' and apoom.DELETED='0'
-                and ifnull(apmd.ORDERTYPE, apro.ORDERTYPE) = '客户订单' -- 订单类型为空默认为客户订单
+            where apope.DELETED='0' and apo.DELETED='0' and abo.DELETED='0' and apro.DELETED='0' and apoom.DELETED='0'
+                and apoom.THICKNESS > IFNULL(aps.THICKSTR,0) and apoom.THICKNESS &lt;= IFNULL(aps.THICKEND,99999)
+                and IFNULL(apmd.ORDERTYPE, apro.ORDERTYPE)='客户订单'
                 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 WEEK(apope.PLANENDDATE) = WEEK(CURRENT_DATE)
+                and YEARWEEK(apope.PLANENDDATE,1)=YEARWEEK(CURRENT_DATE,1)
         GROUP BY apro.TENANTID
     </select>
     <select id="selectNowWeekActualProduceNum" resultType="com.rongwei.bsentity.domain.ApsReportYearAndMonth">
@@ -1534,8 +1561,7 @@
                 and arr.CHECKSTATUS='已检验'
                 and aro.QUALIFIED='是'
                 and apoom.PLANPRODROLLNUM>0
-                and YEAR(arr.REPORTWORKTIME) = YEAR(CURRENT_DATE)
-          and WEEK(arr.REPORTWORKTIME) = WEEK(CURRENT_DATE)
+                and YEARWEEK(arr.REPORTWORKTIME,1)=YEARWEEK(CURRENT_DATE,1)
         GROUP BY apro.TENANTID
     </select>
     <select id="selectPlanMap" resultType="java.util.Map">