Browse Source

新增产品代号位数配置,优化代码

huangsanjia 1 year ago
parent
commit
a232134a8d

+ 1 - 0
application/api/config.php

@@ -3,4 +3,5 @@
 //配置文件
 return [
     'exception_handle'        => '\\app\\api\\library\\ExceptionHandle',
+    'product_code_digit'    => 4,//成品编码位数
 ];

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

@@ -15,7 +15,7 @@ class Machine extends Api
     protected $noNeedRight = ['*'];
 
     /**
-     * 首页
+     * 首页-已核查成品编号
      *
      */
     public function index()

+ 6 - 4
application/api/controller/OrderSuperLoss.php

@@ -15,7 +15,7 @@ class OrderSuperLoss extends Api
     protected $noNeedRight = ['*'];
 
     /**
-     * 首页
+     * 首页-已核查成品编号
      *
      */
     public function index()
@@ -31,8 +31,9 @@ class OrderSuperLoss extends Api
         if (Request::instance()->isGet() == false) {
             $this->error('非法请求');
         }
+        $num = config('product_code_digit');
         $sql = "SELECT LEFT(a.jjcp_sj, 7) AS date,RTRIM(b.`编号`) AS 编号,RTRIM(b.`名称`) as 客户名称,COUNT(DISTINCT a.jjcp_gdbh) AS count
-                    FROM `成品入仓` a LEFT JOIN `物料_存货结构` b ON LEFT(a.`成品编码`, 4) = RTRIM(b.`编号`)
+                    FROM `成品入仓` a LEFT JOIN `物料_存货结构` b ON LEFT(a.`成品编码`, $num) = RTRIM(b.`编号`)
                     WHERE LEFT(a.jjcp_sj, 7) >= LEFT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH), 7) AND (a.jjcp_smb = '末 板' OR a.jjcp_smb = '末板') AND a.`成品编码` != ''
                     GROUP BY LEFT(a.jjcp_sj, 7), RTRIM(b.`编号`) ORDER BY date DESC, 编号 ASC";
         $data = Db::query($sql);
@@ -129,13 +130,14 @@ class OrderSuperLoss extends Api
 //        }
 //        $is_have_cache = Cache::get('OrderSuperLoss/getList'.$str);
         $is_have_cache = false;
+        $num = config('product_code_digit');
         if ($is_have_cache === false){
             if (!empty($params['code'])){
                 $data = db('成品入仓')->alias('a')
                     ->join('工单_基本资料 b', 'a.jjcp_gdbh = b.Gd_gdbh','left')
                     ->join('工单_印件资料 c', 'a.jjcp_gdbh = c.Yj_Gdbh','left')
                     ->where($where)
-                    ->where('LEFT(a.成品编码, 4) = '.$params['code'])
+                    ->where('LEFT(a.成品编码, '.$num.') = '.$params['code'])
                     ->field('DISTINCT(a.jjcp_gdbh) as Gd_gdbh,a.jjcp_yjno,rtrim(a.成品编码) as 成品编码,rtrim(a.成品名称) as 成品名称,a.jjcp_sj,a.jjcp_smb,b.计量单位,
                 b.Gd_khdh, b.实际投料,c.yj_Yjno, c.yj_ls')
                     ->order('b.Gd_khdh,a.成品编码 asc,a.jjcp_sj desc')
@@ -146,7 +148,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)
-                    ->where('LEFT(a.成品编码,4) ='.$params['code'])
+                    ->where('LEFT(a.成品编码,'.$num.') ='.$params['code'])
                     ->count();
             }else{
                 $data = db('成品入仓')->alias('a')

+ 21 - 18
application/api/controller/Product.php

@@ -109,6 +109,7 @@ class Product extends Api
         if (!isset($code)){
             $this->error('参数不能为空');
         }
+        $num = config('product_code_digit');
         //工艺资料
         $option['a.Gy0_cpdh'] = $code;
         $gy_field = 'rtrim(a.Gy0_方案) as 方案,a.Gy0_yjno,a.Gy0_gxh,rtrim(a.gy0_gxmc) as gy0_gxmc,rtrim(a.Add_gxmc) as add_gxmc,a.Gy0_Ks,a.Gy0_ls,rtrim(a.工序备注) as 备注,
@@ -127,9 +128,8 @@ class Product extends Api
         $yb_field = 'rtrim(a.YB_方案) as YB_方案,a.YB_Yjno,rtrim(a.存货编码) as 存货编码,a.考核印数,rtrim(a.Sys_id) as Sys_id,a.Mod_rq,rtrim(b.物料名称) as 印版名称,rtrim(c.名称) as 印版类别,a.UniqID';
         $ybRes = db('产品_印版资料')->alias('a')
             ->join('物料_存货编码 b','a.存货编码 = b.物料代码','left')
-            ->join('物料_存货结构 c','LEFT(a.存货编码,4) = c.编号','left')
+            ->join('物料_存货结构 c','LEFT(a.存货编码,'.$num.') = c.编号','left')
             ->where($filter)->field($yb_field)->order('a.YB_Yjno,a.存货编码')->select();
-        
         //技术附件
         $jsRes = db('产品_技术附件')
             ->where('关联产品','like','%'.$code.'%')
@@ -608,27 +608,28 @@ class Product extends Api
         }
         $params = Request::instance()->get();
         $search = $params['search'];
+        $num = config('product_code_digit');
+        $start_num = $num - 3;
         if (!empty($search)){
             $sql = "SELECT DISTINCT rtrim(a.`物料代码`) as `物料代码`, rtrim(a.`物料名称`) as `物料名称`,rtrim(b.客户编号) as 客户编号,rtrim(b.客户名称) as 客户名称
                 FROM `物料_存货编码` a
                 JOIN `产品_基本资料` b ON SUBSTRING(a.`物料代码`, 5, 2) = SUBSTRING(b.`客户编号`, 3, 2)
-                WHERE LEFT(a.`物料代码`, 4) IN ('1401', '1402') AND a.`物料名称` LIKE '%{$search}%'
+                WHERE SUBSTRING (a.`物料代码`,$start_num,$num) IN ('1401', '1402') AND a.`物料名称` LIKE '%{$search}%'
                 ORDER BY a.`物料代码` ASC;";
         }else{
             $sql = "SELECT DISTINCT rtrim(a.`物料代码`) as `物料代码`, rtrim(a.`物料名称`) as `物料名称`,rtrim(b.客户编号) as 客户编号,rtrim(b.客户名称) as 客户名称
                 FROM `物料_存货编码` a
                 JOIN `产品_基本资料` b ON SUBSTRING(a.`物料代码`, 5, 2) = SUBSTRING(b.`客户编号`, 3, 2)
-                WHERE LEFT(a.`物料代码`, 4) IN ('1401', '1402') 
+                WHERE SUBSTRING(a.`物料代码`,$start_num, $num) IN ('1401', '1402') 
                 ORDER BY a.`物料代码` ASC;";
         }
         $data = Db::query($sql);
         // 初始化一个关联数组,用于存储相同客户编号的数据
         $groupedData = [];
-
         foreach ($data as $row) {
-            $customerCode = substr($row['物料代码'],0,4).substr($row['客户编号'],2,2).'/'.$row['客户名称'];
-            $materialCodePrefix = substr($row['物料代码'], 0, 4);
-            if ($materialCodePrefix == '1401'){
+            $customerCode = substr($row['物料代码'],0,$num).substr($row['客户编号'],2,2).'/'.$row['客户名称'];
+            $materialCodePrefix = substr($row['物料代码'], 0, $num);
+            if ($materialCodePrefix == '1401' || $materialCodePrefix == 'Y1401' ){
                 $materialCodePrefix = $materialCodePrefix.'/糊盒类产品(含贴码)';
             }else{
                 $materialCodePrefix = $materialCodePrefix.'/直接领用产品';
@@ -660,21 +661,22 @@ class Product extends Api
         }
         $params = Request::instance()->get();
         $search = $params['search'];
+        $num = config('product_code_digit');
         if (!empty($search)){
             $sql = "SELECT rtrim(a.`物料代码`) as 物料代码,rtrim(a.`物料名称`) as 物料名称,rtrim(a.`规格`) as 规格,rtrim(b.编号) as oneCode,rtrim(b.名称) as oneName,
                 rtrim(c.`编号`) as twoCode,rtrim(c.`名称`) as twoName,rtrim(d.`编号`) as thrCode,rtrim(d.`名称`) as thrName
                 FROM `物料_存货编码` a
-                LEFT JOIN `物料_存货结构` b ON LEFT(a.物料代码,2) = b.编号
-                LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,4) = c.编号
-                LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,6) = d.编号
+                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}%' AND (a.物料代码 LIKE '00%' or a.物料代码 LIKE '01%' or a.物料代码 LIKE '30%')";
         }else{
             $sql = "SELECT rtrim(a.`物料代码`) as 物料代码,rtrim(a.`物料名称`) as 物料名称,rtrim(a.`规格`) as 规格,rtrim(b.编号) as oneCode,rtrim(b.名称) as oneName,
                 rtrim(c.`编号`) as twoCode,rtrim(c.`名称`) as twoName,rtrim(d.`编号`) as thrCode,rtrim(d.`名称`) as thrName
                 FROM `物料_存货编码` a
-                LEFT JOIN `物料_存货结构` b ON LEFT(a.物料代码,2) = b.编号
-                LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,4) = c.编号
-                LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,6) = d.编号
+                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 '00%' or a.物料代码 LIKE '01%' or a.物料代码 LIKE '30%'";
         }
         $data = Db::query($sql);
@@ -860,19 +862,20 @@ class Product extends Api
         }
         $code = $params['code'];
         $search = $params['search'];
+        $num = config('product_code_digit');
         if (!empty($search)){
             $sql = "SELECT rtrim(a.`物料代码`) as 物料代码,rtrim(a.`物料名称`) as 物料名称,rtrim(a.`规格`) as 规格,
                 rtrim(c.`编号`) as twoCode,rtrim(c.`名称`) as twoName,rtrim(d.`编号`) as thrCode,rtrim(d.`名称`) as thrName
                 FROM `物料_存货编码` a
-                LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,4) = c.编号
-                LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,6) = d.编号
+                LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,$num) = c.编号
+                LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,$num+2) = d.编号
                 WHERE  a.物料代码 LIKE '{$code}%' AND a.物料名称 LIKE '%{$search}%'";
         }else{
             $sql = "SELECT rtrim(a.`物料代码`) as 物料代码,rtrim(a.`物料名称`) as 物料名称,rtrim(a.`规格`) as 规格,
                 rtrim(c.`编号`) as twoCode,rtrim(c.`名称`) as twoName,rtrim(d.`编号`) as thrCode,rtrim(d.`名称`) as thrName
                 FROM `物料_存货编码` a
-                LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,4) = c.编号
-                LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,6) = d.编号
+                LEFT JOIN `物料_存货结构` c ON LEFT(a.物料代码,$num) = c.编号
+                LEFT JOIN `物料_存货结构` d ON LEFT(a.物料代码,$num+2) = d.编号
                 WHERE  a.物料代码 LIKE '{$code}%'";
         }
         $data = Db::query($sql);

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

@@ -72,7 +72,7 @@ class StaffSalary extends Api
                 b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数
                 ,d1.员工姓名 as name1,d2.员工姓名 as name2,d3.员工姓名 as name3,d4.员工姓名 as name4,d5.员工姓名 as name5,d6.员工姓名 as name6,d7.员工姓名 as name7,d8.员工姓名 as name8
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
-        $query = Db::connect('db3')->name('设备_产量计酬')->alias('a')->field($fields);
+        $query = Db::connect('db4')->name('设备_产量计酬')->alias('a')->field($fields);
         // 连接 dic_lzde 表
         $query->join('dic_lzde b', 'a.sczl_dedh = b.sys_bh', 'LEFT');
         // 连接 工单_工艺资料 表
@@ -159,7 +159,7 @@ class StaffSalary extends Api
         /**
          * 拆片工序数据
         */
-        $query = Db::connect('db3')->name('db_sczl')->alias('a')
+        $query = Db::connect('db4')->name('db_sczl')->alias('a')
             ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, sczl_type, a.sczl_rq, a.sczl_jtbh, 
             a.sczl_ms, a.sczl_cl as 班组车头产量, a.sczl_fp as sczl_zcfp, a.sczl_装版工时 as 装版工时, a.sczl_保养工时 as 保养工时, 
             a.sczl_打样工时 as 打样工时, a.sczl_异常停机工时 as 异常停机工时, a.sczl_设备运行工时 as 车头产量占用机时, a.sczl_bh1, 
@@ -227,7 +227,7 @@ class StaffSalary extends Api
 	d10.员工姓名 AS name11,d10.员工姓名 AS name12,a.sczl_cl0,a.sczl_cl1,a.sczl_cl2,a.sczl_cl3,a.sczl_cl4,a.sczl_cl5,a.sczl_cl6,
 	a.sczl_cl7,a.sczl_cl8,a.sczl_cl9,a.sczl_cl10,a.sczl_cl11,a.sczl_cl12,a.sczl_fp0,a.sczl_fp1,a.sczl_fp2,a.sczl_fp3,
 	a.sczl_fp4,a.sczl_fp5,a.sczl_fp6,a.sczl_fp7,a.sczl_fp8,a.sczl_fp9,a.sczl_fp10,a.sczl_fp11,a.sczl_fp12";
-        $query = Db::connect('db3')->name('db_手工检验')->alias('a')->field($shoujianfields);
+        $query = Db::connect('db4')->name('db_手工检验')->alias('a')->field($shoujianfields);
         //链接dic_lzde表
         $query->join('dic_lzde b','a.sczl_dedh = b.sys_bh','LEFT');
         //链接人事基本资料表
@@ -293,7 +293,7 @@ class StaffSalary extends Api
         /**
          * 包装计件工序数据
          */
-        $result = Db::connect('db3')->name('db_包装计件')->alias('a')
+        $result = Db::connect('db4')->name('db_包装计件')->alias('a')
             ->field('a.sczl_gdbh1, a.sczl_gdbh2, a.sczl_gdbh3, a.sczl_gdbh4, a.sczl_gdbh5, a.sczl_gdbh6,
                      a.sczl_yjGx1, a.sczl_yjGx2, a.sczl_yjGx3, a.sczl_yjGx4, a.sczl_yjGx5, a.sczl_yjGx6,
                      rtrim(a.sczl_gxmc1) as gxmc1,rtrim(a.sczl_gxmc2) as gxmc2,rtrim(a.sczl_gxmc3) as gxmc3,rtrim(a.sczl_gxmc4) as gxmc4,rtrim(a.sczl_gxmc5) as gxmc5,rtrim(a.sczl_gxmc6) as gxmc6,