Ver código fonte

系统优化

qiuenguang 1 ano atrás
pai
commit
1d76bd779e

+ 1 - 1
application/api/controller/Facility.php

@@ -2539,6 +2539,6 @@ class Facility extends Api
 //        if (empty($param)){
 //            $this->error('参数错误');
 //        }
-//        $filed = "工单编号,产品名称,流程单号,印件号,工序号,机台编号,日期,工序产量,工序名称,机长工号,机长名称,";
+//        $filed = "工单编号,产品名称,流程单号,印件号,工序号,机台编号,日期,工序产量,工序名称,机长工号,机长名称,组员工号1,组员姓名1,";
 //    }
 }

+ 33 - 27
application/api/controller/FinishedProductWarehousing.php

@@ -118,10 +118,8 @@ class FinishedProductWarehousing extends Api
         $req = $this->request->param();
         if (!isset($req['date'])) $this->error('参数缺失');
 
-        $page = 1;
-        $limit = 15;
-        if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
-        if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
+//        if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
+//        if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
 
         if(strpos($req['date'],'-')){
             $where = ['c.Sys_rq'=>['like',$req['date'].'%']];
@@ -147,7 +145,7 @@ class FinishedProductWarehousing extends Api
             ->where('g.Gd_cpdh=c.jjcp_cpdh')
             ->join('工单_基本资料 g','g.Gd_gdbh=c.jjcp_gdbh')
             ->order('c.UniqId desc')
-            ->page($page,$limit)
+//            ->page($page,$limit)
             ->select();
 
         $total = db('成品入仓')->where($option)->count();
@@ -1070,24 +1068,25 @@ class FinishedProductWarehousing extends Api
             ')
             ->where('sczl_rq','>=',$date)
             ->select();
-
         $data1 = [];
         foreach ($arr1 as $k=>$v){
             for ($i=1;$i<=6;$i++){
-                if(array_key_exists($v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i],$data1)){
-                    $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] += $v['sczl_cls'.$i];
-                }else{
-                    $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] = $v['sczl_cls'.$i];
+                if (!empty($v['sczl_gdbh'.$i])){
+                    $v['sczl_gdbh'.$i] = strtoupper($v['sczl_gdbh'.$i]);
+                    if(array_key_exists($v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i],$data1)){
+                        $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] += $v['sczl_cls'.$i];
+                    }else{
+                        $data1[$v['sczl_gdbh'.$i].'-'.$v['sczl_yjGx'.$i]] = $v['sczl_cls'.$i];
+                    }
                 }
             }
         }
         krsort($data1);
-        
         //成品入仓中jjcp_smb不为空的工单
-        $rows1 = db('成品入仓')
-            ->where('jjcp_smb','<>','')
-            ->order('jjcp_gdbh desc')
-            ->column("CONCAT(jjcp_gdbh, '-', jjcp_yjno) AS gdyj, UniqId");
+//        $rows1 = db('成品入仓')
+//            ->where('jjcp_smb','<>','')
+//            ->order('jjcp_gdbh desc')
+//            ->column("CONCAT(jjcp_gdbh, '-', jjcp_yjno) AS gdyj, UniqId");
 
         $rows2 = db('成品入仓')
             ->where('jjcp_sj','>=',$date)
@@ -1095,20 +1094,27 @@ class FinishedProductWarehousing extends Api
             ->column("CONCAT( jjcp_gdbh, '-',  jjcp_yjno) AS gdyj, jjcp_smb,
             sum(jjcp_sl) as jjcp_sls, left(max(jjcp_sj),10) as jjcp_sj");
 
-        $rows3 = db('工单_印件资料')->cache(true,86400)
-            ->group('Yj_Gdbh, yj_Yjno')
-            ->column("CONCAT( Yj_Gdbh, '-',  yj_Yjno) AS gdyj, 
-            Yj_Gdbh, yj_Yjno, yj_yjmc, yj_成品数量, yj_实际投料");
+//        $rows3 = db('工单_印件资料')->cache(true,86400)
+//            ->group('Yj_Gdbh, yj_Yjno')
+//            ->column("CONCAT( Yj_Gdbh, '-',  yj_Yjno) AS gdyj,
+//            Yj_Gdbh, yj_Yjno, yj_yjmc, yj_成品数量, yj_实际投料");
         $data = [];
         foreach($data1 as $key=>$value){
-            if(!array_key_exists($key,$rows1)){
+//            if(!array_key_exists($key,$rows1)){
                 $subArray = [];
-                if(array_key_exists($key,$rows3)){
-                    $subArray['Yj_Gdbh'] = $rows3[$key]['Yj_Gdbh'];
-                    $subArray['yj_Yjno'] = $rows3[$key]['yj_Yjno'];
-                    $subArray['yj_yjmc'] = trim($rows3[$key]['yj_yjmc']);
-                    $subArray['yj_成品数量'] = (string)floatval($rows3[$key]['yj_成品数量']*10000);
-                    $subArray['yj_实际投料'] = (string)floatval($rows3[$key]['yj_实际投料']*10000);
+                $gdbh = strtoupper(explode('-',$key)[0]);
+                $yjno = explode('-',$key)[1];
+                $res = db('工单_印件资料')
+                    ->where('Yj_Gdbh',$gdbh)
+                    ->where('yj_Yjno',$yjno)
+                    ->field('Yj_Gdbh, yj_Yjno, yj_yjmc, yj_成品数量, (yj_平张投料 * yj_ks * yj_ls) as 投料')
+                    ->find();
+                if(!empty($res)){
+                    $subArray['Yj_Gdbh'] = $res['Yj_Gdbh'];
+                    $subArray['yj_Yjno'] = $res['yj_Yjno'];
+                    $subArray['yj_yjmc'] = trim($res['yj_yjmc']);
+                    $subArray['yj_成品数量'] = (string)floatval($res['yj_成品数量']*10000);
+                    $subArray['yj_实际投料'] = (string)floatval($res['投料']);
                 }else{
                     $subArray['Yj_Gdbh'] = '';
                     $subArray['yj_Yjno'] = '';
@@ -1129,7 +1135,7 @@ class FinishedProductWarehousing extends Api
                 $subArray['sczl_cls'] = (string)floatval($value);
                 array_push($data,$subArray);
             }
-        }
+//        }
 
 
         // $rows = db('db_包装产量预报')

+ 10 - 9
application/api/controller/MachineProductionReport.php

@@ -199,8 +199,8 @@ class MachineProductionReport extends Api
                             a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时, 
                             a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数, 
                             d.日定额, d.千件工价, d.补产标准, a.sczl_来料少数, NULL AS 拆片联拼系数, NULL AS 拆片条小盒系数, 
-                            rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId, "设备_产量计酬" AS table_type
-                        FROM `设备_产量计酬` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh` ';
+                            rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId,e.yj_yjmc, "设备_产量计酬" AS table_type
+                        FROM `设备_产量计酬` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh` JOIN `工单_印件资料` `e` ON `a`.`sczl_gdbh`=`e`.`Yj_Gdbh` AND `a`.`sczl_yjno`=`e`.`yj_Yjno`';
                 $sql .= strpos($req['date'],'-') ? 'WHERE `a`.`sys_rq` LIKE "'.$req['date'].'%" ' : 'WHERE `a`.`sczl_gdbh` = "'.$req['date'].'" ';
                 $sql .= isset($req['sys_id']) && !empty($req['sys_id']) ? 'AND `a`.`sys_id` = "'.$req['sys_id'].'" ' : '';
                 $sql .= 'UNION ALL
@@ -209,8 +209,8 @@ class MachineProductionReport extends Api
                             a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
                             a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数, 
                             d.日定额, d.千件工价, d.补产标准, NULL AS sczl_来料少数, a.拆片联拼系数, a.拆片条小盒系数,
-                            rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId, "db_sczl" AS table_type
-                        FROM `db_sczl` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh`';
+                            rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId,e.yj_yjmc, "db_sczl" AS table_type
+                        FROM `db_sczl` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh` JOIN `工单_印件资料` `e` ON `a`.`sczl_gdbh`=`e`.`Yj_Gdbh` AND `a`.`sczl_yjno`=`e`.`yj_Yjno`';
                 $sql .= strpos($req['date'],'-') ? 'WHERE `a`.`sys_rq` LIKE "'.$req['date'].'%" ' : 'WHERE `a`.`sczl_gdbh` = "'.$req['date'].'" ';
                 $sql .= isset($req['sys_id']) && !empty($req['sys_id']) ? 'AND `a`.`sys_id` = "'.$req['sys_id'].'" ' : '';
                 $sql .= 'ORDER BY sys_id ASC, sczl_num ASC LIMIT '.($page-1)*$limit.','.$limit;
@@ -230,8 +230,8 @@ class MachineProductionReport extends Api
                         a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时, 
                         a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数, 
                         d.日定额, d.千件工价, d.补产标准, a.sczl_来料少数, NULL AS 拆片联拼系数, NULL AS 拆片条小盒系数, 
-                        rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId, "设备_产量计酬" AS table_type
-                    FROM `设备_产量计酬` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh` ';
+                        rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId,e.yj_yjmc, "设备_产量计酬" AS table_type
+                    FROM `设备_产量计酬` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh` JOIN `工单_印件资料` `e` ON `a`.`sczl_gdbh`=`e`.`Yj_Gdbh` AND `a`.`sczl_yjno`=`e`.`yj_Yjno`';
             $sql .= strpos($req['date'],'-') ? 'WHERE `a`.`sys_rq` LIKE "'.$req['date'].'%" ' : 'WHERE `a`.`sczl_gdbh` = "'.$req['date'].'" ';
             $sql .= isset($req['sys_id']) && !empty($req['sys_id']) ? 'AND `a`.`sys_id` = "'.$req['sys_id'].'" ' : '';
             $sql .= 'UNION ALL
@@ -240,8 +240,8 @@ class MachineProductionReport extends Api
                         a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
                         a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数, 
                         d.日定额, d.千件工价, d.补产标准, NULL AS sczl_来料少数, a.拆片联拼系数, a.拆片条小盒系数,
-                        rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId, "db_sczl" AS table_type
-                    FROM `db_sczl` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh`';
+                        rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId,e.yj_yjmc, "db_sczl" AS table_type
+                    FROM `db_sczl` `a` LEFT JOIN `dic_lzde` `d` ON `a`.`sczl_dedh`=`d`.`sys_bh` JOIN `工单_印件资料` `e` ON `a`.`sczl_gdbh`=`e`.`Yj_Gdbh` AND `a`.`sczl_yjno`=`e`.`yj_Yjno`';
             $sql .= strpos($req['date'],'-') ? 'WHERE `a`.`sys_rq` LIKE "'.$req['date'].'%" ' : 'WHERE `a`.`sczl_gdbh` = "'.$req['date'].'" ';
             $sql .= isset($req['sys_id']) && !empty($req['sys_id']) ? 'AND `a`.`sys_id` = "'.$req['sys_id'].'" ' : '';
             $sql .= 'ORDER BY sys_id ASC, sczl_num ASC LIMIT '.($page-1)*$limit.','.$limit;
@@ -258,7 +258,8 @@ class MachineProductionReport extends Api
         
         foreach ($rows as $key=>$value){
             $rows[$key]['mod_rq'] = $value['mod_rq']=='1900-01-01 00:00:00' ? '' :$value['mod_rq'];
-            $rows[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
+//            $rows[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
+            $rows[$key]['Gd_cpmc'] = $value['yj_yjmc'];
             $rows[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
             for ($i=2;$i<=6;$i++){
                 if ($value['sczl_bh'.$i]){

+ 1 - 2
application/api/controller/Manufacture.php

@@ -261,9 +261,8 @@ class Manufacture extends Api
         $sql = "SELECT rtrim(a.Gy0_gdbh) as 工单编号,a.Gy0_yjno,a.Gy0_gxh,a.Gy0_gxmc,a.Add_gxmc,rtrim(a.Gy0_sbbh) as 设备编号,rtrim(a.Gy0_小时产能) as 小时产能,
                 rtrim(a.工价系数) as 产能系数,rtrim(a.Gy0_生产工时) as 生产工时,rtrim(a.Gy0_辅助工时) as 辅助工时,rtrim(a.Gy0_最早开工时间) as 最早开工时间,
                 rtrim(a.Gy0_sj1) as 计划开工时间,rtrim(a.Gy0_sj2) as 计划完工时间,rtrim(a.Gy0_班次安排) as 班次安排,rtrim(a.工序备注) as 排单备注,
-                rtrim(a.PD_WG) as 工序完工,rtrim(a.UniqId) as UniqId,COALESCE(b.cl, 0) AS 产量, c.设备名称,rtrim(d.计划投料) as 工序产量
+                rtrim(a.PD_WG) as 工序完工,rtrim(a.UniqId) as UniqId,COALESCE(b.cl, 0) AS 产量,rtrim(d.计划投料) as 工序产量
                 FROM `工单_工艺资料` AS a
-                JOIN `设备_基本资料` AS c ON a.Gy0_sbbh = c.设备编号
                 JOIN `工单_基本资料` As d ON a.Gy0_gdbh = d.Gd_Gdbh
                 LEFT JOIN (
                         SELECT sczl_gdbh, sczl_gxh, SUM(sczl_cl) AS cl

+ 3 - 3
application/api/controller/OrderSuperLoss.php

@@ -133,7 +133,7 @@ class OrderSuperLoss extends Api
             }
             $where['a.jjcp_gdbh|a.成品名称|a.jjcp_cpmc'] = array('like','%'.$params['search'].'%');
         }
-        $where['b.行号' ] = 1;
+//        $where['b.行号' ] = 1;
         $where['a.jjcp_smb' ] = array('IN', array('末 板', '末板'));
         $limit = $params['limit'];
         if (empty($limit)){
@@ -179,7 +179,7 @@ class OrderSuperLoss extends Api
                     ->join([$sql => 'd'], 'a.jjcp_gdbh = d.st_gdbh AND a.jjcp_cpdh = d.cpdh', 'left')
                     ->where($where)
                     ->where('d.仓库编号','Y101')
-                    ->whereRaw('LEFT(a.成品编码, ' . $num . ') = "' . $params['code'] . '"')
+                    ->whereRaw('LEFT(a.成品编码, CASE WHEN a.成品编码 REGEXP "[a-zA-Z]" THEN 5 ELSE 4 END) = ?', [$params['code']])
                     ->field('a.jjcp_gdbh as Gd_gdbh, a.jjcp_yjno, rtrim(a.jjcp_cpdh) as 成品编码, rtrim(a.jjcp_cpmc) as 成品名称,
              a.jjcp_sj, a.jjcp_smb, b.计量单位, b.Gd_khdh, d.实际投料, c.yj_Yjno, c.yj_ls, c.yj_ks, c.质量考核')
                     ->group('a.jjcp_gdbh, a.jjcp_yjno')
@@ -192,7 +192,7 @@ class OrderSuperLoss extends Api
                     ->join('工单_基本资料 b', 'a.jjcp_gdbh = b.Gd_gdbh','left')
                     ->join('工单_印件资料 c', 'a.jjcp_gdbh = c.Yj_Gdbh','left')
                     ->where($where)
-                    ->whereRaw('LEFT(a.成品编码, ' . $num . ') = "' . $params['code'] . '"')
+                    ->whereRaw('LEFT(a.成品编码, CASE WHEN a.成品编码 REGEXP "[a-zA-Z]" THEN 5 ELSE 4 END) = ?', [$params['code']])
                     ->count();
             }else{
 //                $data = db('成品入仓')->alias('a')

+ 9 - 2
application/api/controller/PackagingCountDocument.php

@@ -212,7 +212,7 @@ class PackagingCountDocument extends Api
         }else{
             $this->error('参数错误');
         }
-        $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
+//        $gd = db()->table('工单_印件资料')->field('Yj_Gdbh,yj_Yjno,yj_yjmc')->select();
         $rows = db()->table('db_包装计件')
             ->field('LEFT(sczl_rq, 10) as sczl_rq, sczl_bh, sczl_bzdh, sczl_jsss, sczl_冲定额, 
             sczl_gdbh1, sczl_gdbh2, sczl_gdbh3, sczl_gdbh4, sczl_gdbh5, sczl_gdbh6, 
@@ -231,7 +231,14 @@ class PackagingCountDocument extends Api
         $rs = db()->table('人事_基本资料')->field('员工姓名')->where('员工编号',$rows['sczl_bh'])->find();
         $rows['name'] = $rs ? trim($rs['员工姓名']) : '';
         for ($i=1;$i<=6;$i++){
-            $rows['Gd_cpmc'.$i] = array_key_exists($rows['sczl_gdbh'.$i], $gd) ? trim($gd[$rows['sczl_gdbh'.$i]]) : '';
+//            $rows['Gd_cpmc'.$i] = array_key_exists($rows['sczl_gdbh'.$i], $gd) ? trim($gd[$rows['sczl_gdbh'.$i]]) : '';
+            if (!empty($rows['sczl_gdbh'.$i])){
+                $rows['Gd_cpmc'.$i] = db('工单_印件资料')
+                    ->where('Yj_Gdbh',strtoupper($rows['sczl_gdbh'.$i]))
+                    ->where('yj_Yjno',(int)substr($rows['sczl_yjGx'.$i],0,2))
+                    ->find()['yj_yjmc'];
+            }
+
         }
 
         $this->success('成功',$rows);

+ 8 - 2
application/api/controller/PackagingProcessOutput.php

@@ -201,7 +201,7 @@ class PackagingProcessOutput extends Api
         }else{
             $this->error('参数错误');
         }
-        $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
+//        $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
         $rows = db()->table('db_包装产量预报')
             ->field('LEFT(sczl_rq, 10) as sczl_rq, sczl_gdbh1, sczl_gdbh2, sczl_gdbh3, sczl_gdbh4, sczl_gdbh5, sczl_gdbh6, 
             rtrim(sczl_yjGx1) as sczl_yjGx1, rtrim(sczl_yjGx2) as sczl_yjGx2, rtrim(sczl_yjGx3) as sczl_yjGx3, rtrim(sczl_yjGx4) as sczl_yjGx4, rtrim(sczl_yjGx5) as sczl_yjGx5, rtrim(sczl_yjGx6) as sczl_yjGx6, 
@@ -213,7 +213,13 @@ class PackagingProcessOutput extends Api
             ->find();
 
         for ($i=1;$i<=6;$i++){
-            $rows['Gd_cpmc'.$i] = array_key_exists($rows['sczl_gdbh'.$i], $gd) ? trim($gd[$rows['sczl_gdbh'.$i]]) : '';
+//            $rows['Gd_cpmc'.$i] = array_key_exists($rows['sczl_gdbh'.$i], $gd) ? trim($gd[$rows['sczl_gdbh'.$i]]) : '';
+            if (!empty($rows['sczl_gdbh'.$i])){
+                $rows['Gd_cpmc'.$i] = db('工单_印件资料')
+                    ->where('Yj_Gdbh',strtoupper($rows['sczl_gdbh'.$i]))
+                    ->where('yj_Yjno',(int)substr($rows['sczl_yjGx'.$i],0,2))
+                    ->find()['yj_yjmc'];
+            }
         }
 
         $this->success('成功',$rows);

+ 13 - 3
application/api/controller/Product.php

@@ -742,8 +742,17 @@ class Product extends Api
                 LEFT JOIN `物料_存货结构` b ON LEFT(a.物料代码,$num-2) = b.编号
                 LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,$num) = c.编号
                 LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,$num+2) = d.编号
-                WHERE (a.物料名称 LIKE '%{$search}%' or a.物料代码 LIKE '%{$search}%') and 
-                  (a.物料代码 LIKE 'Y00%' or a.物料代码 LIKE 'Y01%' or a.物料代码 LIKE 'Y04%' or a.物料代码 LIKE 'J03%' or a.物料代码 LIKE 'Y14%')";
+                WHERE (a.物料名称 LIKE '%{$search}%' or a.物料代码 LIKE '%{$search}%') 	AND (
+	a.物料代码 LIKE '00%' 
+	OR a.物料代码 LIKE '01%' 
+	OR a.物料代码 LIKE '04%' 
+	OR a.物料代码 LIKE '03%' 
+	OR a.物料代码 LIKE '14%'
+	OR a.物料代码 LIKE 'Y00%' 
+	OR a.物料代码 LIKE 'Y01%' 
+	OR a.物料代码 LIKE 'Y04%' 
+	OR a.物料代码 LIKE 'J03%' 
+	OR a.物料代码 LIKE 'Y14%')";
             $data = Db::query($sql);
         }else{
             $sql = "SELECT rtrim(a.`物料代码`) as 物料代码,rtrim(a.`物料名称`) as 物料名称,rtrim(a.`规格`) as 规格,rtrim(b.编号) as oneCode,rtrim(b.名称) as oneName,
@@ -752,7 +761,8 @@ class Product extends Api
                 LEFT JOIN `物料_存货结构` b ON LEFT(a.物料代码,$num-2) = b.编号
                 LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,$num) = c.编号
                 LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,$num+2) = d.编号
-                WHERE a.物料代码 LIKE 'Y00%' or a.物料代码 LIKE 'Y01%' or a.物料代码 LIKE 'Y04%' or a.物料代码 LIKE 'J03%' or a.物料代码 LIKE 'Y14%'";
+                WHERE 	a.物料代码 LIKE 'Y00%' or a.物料代码 LIKE 'Y01%' or a.物料代码 LIKE 'Y04%' or a.物料代码 LIKE 'J03%' or a.物料代码 LIKE 'Y14%' OR
+	a.物料代码 LIKE '00%' or a.物料代码 LIKE '01%' or a.物料代码 LIKE '04%' or a.物料代码 LIKE '03%' or a.物料代码 LIKE '14%'";
             $data = Db::query($sql);
         }
         $mergedArray = [];

+ 11 - 1
application/api/controller/ReportingWork.php

@@ -272,7 +272,7 @@ class ReportingWork extends Api
         $data['order_info']['yjno'] = $produce['印件号'];
         $data['order_info']['gxh'] = $produce['工序号'];
         $data['order_info']['gxmc'] = $produce['工序名称'];
-        $data['order_info']['dedh'] = \db('dic_lzde')->where('适用机型',$machine)->value('sys_bh');
+//        $data['order_info']['dedh'] = \db('dic_lzde')->where('适用机型',$machine)->value('sys_bh');
         $product = \db('工单_基本资料')->alias('a')
             ->join('工单_工艺资料 b','a.Gd_Gdbh = b.Gy0_gdbh','left')
             ->join('工单_印件资料 c','a.Gd_Gdbh = c.Yj_gdbh','left')
@@ -295,6 +295,16 @@ class ReportingWork extends Api
             $data['order_info']['Gy0_ms'] = rtrim($product[0]['Gy0_ms']);
             $data['order_info']['Gy0_ls'] = rtrim($product[0]['Gy0_ls']);
         }
+        $dedh = \db('dic_lzde')->where('适用机型',$machine)->value('sys_bh');
+        if (strpos($params['machine'],'JP') !== false){
+            if (strpos($data['order_info']['product_name'],'小盒') !== false){
+                $data['order_info']['dedh'] = $dedh.'001';
+            }else{
+                $data['order_info']['dedh'] = $dedh.'002';
+            }
+        }else{
+            $data['order_info']['dedh'] = $dedh;
+        }
         $class = \db('设备_班组资料')->where('UniqId',$produce['班组ID'])->find();
         for ($i=1;$i<11;$i++){
             $name = '';

+ 11 - 4
application/api/controller/StaffSalary.php

@@ -56,7 +56,7 @@ class StaffSalary extends Api
         $options = [
             'host'       => '127.0.0.1',
             'port'       => 6379,
-            'password'   => '123456',
+            'password'   => '',
             'select'     => 15,
             'timeout'    => 0,
             'expire'     => 0,
@@ -96,6 +96,7 @@ class StaffSalary extends Api
         }
         //将起止日期内数据删除
         $delRes = \db('绩效工资汇总')->where('sczl_rq','between',[$startDate,$endDate])->delete();
+        //设备产量计酬报工数据查询
         $where = [];
         $where['a.sczl_rq'] = ['between',[$startDate,$endDate]];
         //查询印刷印后车间的机台,添加搜索条件
@@ -135,7 +136,11 @@ class StaffSalary extends Api
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             //计件产量
             if (substr($value['sczl_jtbh'],0,2) == 'JP'){//检品机
-                $gx_rate = $value['sczl_废品率系数'];
+                if ($value['sczl_废品率系数'] == 0){
+                    $gx_rate = 1;
+                }else{
+                    $gx_rate = $value['sczl_废品率系数'];
+                }
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
                 $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);
             }elseif (substr($value['sczl_jtbh'],0,2) == 'WY' || substr($value['sczl_jtbh'],0,2) == 'DW'){//凹印机
@@ -220,6 +225,7 @@ class StaffSalary extends Api
                 }
             }
         }
+//        halt($data);
         /**
          * 拆片工序数据
         */
@@ -281,7 +287,7 @@ class StaffSalary extends Api
             $item['工时占比'] = floatval($manHourRate);
             array_push($data,$item);
         }
-//        halt($data);
+        halt($data);
         /**
          * 手工检验工序数据
         */
@@ -470,7 +476,7 @@ class StaffSalary extends Api
             }
         }
 //        halt($data);
-        // 用于存储bh对应的工时占比总和
+//         用于存储bh对应的工时占比总和
         $bhTotals = [];
         // 遍历原始数据
         foreach ($data as $row) {
@@ -536,6 +542,7 @@ class StaffSalary extends Api
             $data[$key]['法定天数'] = $params['days'];
             $data[$key]['sczl_type'] = trim($item['sczl_type']);
         }
+//        halt($data);
         // 检查任务是否已经存在于队列中,如果不存在则推送任务到队列
         if (!$redis->has($taskIdentifier)) {
             $job = new InsertDataJob($data); // 创建任务实例

+ 104 - 91
application/api/controller/Synchronization.php

@@ -3,6 +3,7 @@
 namespace app\api\controller;
 
 use app\common\controller\Api;
+use app\common\library\token\driver\Redis;
 use think\Db;
 use Overtrue\Pinyin;
 
@@ -998,98 +999,110 @@ class Synchronization extends Api
      * @throws \think\exception\DbException
      * @throws \think\exception\PDOException
      */
-//    public function ProductionData()
-//    {
-//        if ($this->request->isGet() === false){
-//            $this->error('请求错误');
-//        }
-//        if(is_dir(ROOT_PATH.'public/'.date('Y-m-d',time())) == null)
-//        {
-//            mkdir(ROOT_PATH.'public/'.date('Y-m-d',time()),0777,true);
-//        }
-//        $machineList = \db('设备_基本资料')
-//            ->where('mn_设备编号','<>','')
-//            ->where('sys_sbID','<>','')
-//            ->field('mn_设备编号')
-//            ->select();
-//        $machine = [];
-//        foreach ($machineList as $value){
-//            array_push($machine,$value['mn_设备编号']);
-//        }
-//        $db5 = \db()->connect(config('database.db5'));
-//        $where = [
-//            'sczl_rq' => ['>=','2024-05-01 00:00:00']
-//        ];
-//        $productData = $db5->name('设备_产量计酬')
-//            ->where($where)
-//            ->where('sczl_jtbh','in',$machine)
-//            ->select();
-//        //获取机台信息
-//        $machineData = \db('设备_基本资料')
-//            ->where('mn_设备编号','<>','')
-//            ->where('sys_sbID','<>','')
-//            ->field('rtrim(设备编号) as 设备编号,rtrim(mn_设备编号) as 美浓设备编号')
-//            ->select();
-//        //获取员工资料
-//        $employeeData = \db('人事_基本资料')
-//            ->where('mn_员工编号','<>','')
-//            ->field('rtrim(mn_员工编号) as 美浓员工编号')
-//            ->select();
-//        $employee = array_column($employeeData,'美浓员工编号');
-//        //循环判断机台、员工编号
-//        $j = 0;
-//        $data = [];
-//        foreach ($productData as $key=>$value){
-////            判断机台编号
-//            foreach ($machineData as $v){
-//                if ($value['sczl_jtbh'] === $v['美浓设备编号']){
-//                    $productData[$key]['sczl_jtbh'] = $v['美浓设备编号'];
-//                    array_push($data,$productData[$key]);
-//                }
-//            }
-//        }
-//        if (empty($data)){
-//            $this->error('未找到新的生产数据');
-//        }
-//        foreach ($data as $key=>$value){
-//            $name = [];
-//            //判断员工编号,如果不存在写入日志文件
-//            for($i=1;$i<=10;$i++){
-//                if (in_array($data[$key]['sczl_bh'.$i],$employee)){
-//                    $data[$key]['sczl_bh'.$i] = \db('人事_基本资料')
-//                        ->where('mn_员工编号',$data[$key]['sczl_bh'.$i])
-//                        ->value('员工编号');
-//                }else{
-//                    array_push($name,$value['sczl_bh'.$i]);
-//                    $data[$key]['sczl_bh'.$i] = '';
-//                }
-//
-//            }
-//            $name = array_unique($name);
-//            $filename = ROOT_PATH.'public/'.date('Y-m-d',time()).'/'.$value['sczl_jtbh'].'日志文件.txt';
-//            $handle = fopen($filename, 'w');
-//            foreach ($name as $v){
-//                fwrite($handle, $v);
+    public function ProductionData()
+    {
+        if ($this->request->isGet() === false){
+            $this->error('请求错误');
+        }
+        if(is_dir(ROOT_PATH.'public/'.date('Y-m-d',time())) == null)
+        {
+            mkdir(ROOT_PATH.'public/'.date('Y-m-d',time()),0777,true);
+        }
+        //查询翌星数据库美浓设备编号
+        $machineList = \db('设备_基本资料')
+            ->where('mn_设备编号','<>','')
+            ->where('sys_sbID','<>','')
+            ->column('mn_设备编号');
+        //链接美浓mes数据库
+        $db5 = \db()->connect(config('database.db5'));
+        //获取缓存中最后的id
+        $lastId = cache('MnLastId');
+        //确定美浓设备计酬的查询范围
+        if ($lastId === false){
+            $where = [
+                'sczl_rq' => ['>=','2024-11-01 00:00:00'],
+                'sczl_jtbh' => ['in',$machineList]
+            ];
+        }else{
+            $where = [
+                'sczl_rq' => ['>=','2024-11-01 00:00:00'],
+                'sczl_jtbh' => ['in',$machineList],
+                'UniqId' => ['>',$lastId]
+            ];
+        }
+        //查询美浓数据库时间范围内的产量上报记录
+        $productData = $db5->name('设备_产量计酬')
+            ->where($where)
+            ->limit(1000)
+            ->order('UniqId')
+            ->select();
+        if (!empty($productData)){
+            cache('MnLastId',end($productData)['UniqId']);
+        }
+        //获取美浓和翌星设备编号对照表
+        $machineData = \db('设备_基本资料')
+            ->where('mn_设备编号','<>','')
+            ->where('sys_sbID','<>','')
+            ->field('rtrim(设备编号) as 设备编号,rtrim(mn_设备编号) as 美浓设备编号')
+            ->select();
+        //获取员工资料
+        $employee = \db('人事_基本资料')
+            ->where('mn_员工编号','<>','')
+            ->column('rtrim(mn_员工编号) as 美浓员工编号');
+        //循环判断机台、员工编号
+        $j = 0;
+        $data = [];
+        foreach ($productData as $key=>$value){
+            //判断机台编号
+            foreach ($machineData as $v){
+                if ($value['sczl_jtbh'] === $v['美浓设备编号']){
+                    $productData[$key]['sczl_jtbh'] = $v['美浓设备编号'];
+                    array_push($data,$productData[$key]);
+                }
+            }
+        }
+        if (empty($data)){
+            $this->error('未找到新的生产数据');
+        }
+        foreach ($data as $key=>$value){
+            $name = [];
+            //判断员工编号,如果不存在写入日志文件
+            for($i=1;$i<=10;$i++){
+                if (in_array($data[$key]['sczl_bh'.$i],$employee)){
+                    $data[$key]['sczl_bh'.$i] = \db('人事_基本资料')
+                        ->where('mn_员工编号',$data[$key]['sczl_bh'.$i])
+                        ->value('员工编号');
+                }else{
+                    array_push($name,$value['sczl_bh'.$i]);
+                    $data[$key]['sczl_bh'.$i] = '';
+                }
+
+            }
+            unset($data[$key]['UniqId']);
+            $name = array_unique($name);
+            $filename = ROOT_PATH.'public/'.date('Y-m-d',time()).'/'.$value['sczl_jtbh'].'日志文件.txt';
+            $handle = fopen($filename, 'w');
+            foreach ($name as $v){
+                fwrite($handle, $v);
+            }
+            fclose($handle);
+            //修改工单编号
+//            if (preg_match("/[A-Za-z]/",$value['sczl_gdbh'])){
+//                $workcode = $value['sczl_gdbh'];
+//            }else{
+//                $workcode = 'Y'.$value['sczl_gdbh'];
 //            }
-//            fclose($handle);
-//            //修改工单编号
-////            if (preg_match("/[A-Za-z]/",$value['sczl_gdbh'])){
-////                $workcode = $value['sczl_gdbh'];
-////            }else{
-////                $workcode = 'Y'.$value['sczl_gdbh'];
-////            }
-////            $data[$key]['sczl_gdbh'] = $workcode;
-//        }
-//        //插入设备产量计酬数据
-//        \db('设备_产量计酬')->delete(true);
-//        $sql = \db('设备_产量计酬')->fetchSql(true)->insertAll($data);
-//        $res = \db()->query($sql);
-//        if ($res !== false){
-//            $this->success('同步成功');
-//        }else{
-//            $this->error('同步失败');
-//        }
-//    }
+//            $data[$key]['sczl_gdbh'] = $workcode;
+        }
+        //插入设备产量计酬数据
+        $sql = \db('设备_产量计酬')->fetchSql(true)->insertAll($data);
+        $res = \db()->query($sql);
+        if ($res !== false){
+            $this->success('同步成功');
+        }else{
+            $this->error('同步失败');
+        }
+    }
 
 
 

+ 3 - 0
application/api/controller/WorkOrder.php

@@ -1101,6 +1101,9 @@ class WorkOrder extends Api
         }else{
             $rate = \db('dic_lzsh')->where('sys_bh',$param['Gy0_shdh'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->find();
         }
+        if ($param['备选工序'] == ''){
+            $param['备选工序'] = null;
+        }
         $param['Gy0_Rate0']= isset($rate['rate0'])?$rate['rate0']:0;
         $param['Gy0_Rate1'] = isset($rate['rate1'])?$rate['rate1']:0;
         $param['Mod_rq']  = date('Y-m-d H:i:s',time());

+ 1 - 1
application/api/controller/WorkOrderVerification.php

@@ -143,7 +143,7 @@ class WorkOrderVerification extends Api
             fp_sl1, fp_sl2, fp_sl3, fp_sl4, fp_sl5, fp_sl6, fp_sl7, fp_sl8, fp_sl9, fp_sl10, fp_sl11, fp_sl12, fp_sl13, fp_sl14, fp_sl15, fp_sl16, fp_sl17, 
             rtrim(sys_id) as sys_id,UniqId')
             ->where($where)
-            ->order('UniqId desc')
+            ->order('qczl_gdbh,qczl_yjno,qczl_num')
             ->page($page,$limit)
             ->select();