Browse Source

优化工资及新增获取损耗代号

huangsanjia 1 year ago
parent
commit
cb49785432

+ 17 - 0
application/api/controller/Product.php

@@ -927,4 +927,21 @@ class Product extends Api
             $this->error('新增失败');
             $this->error('新增失败');
         }
         }
     }
     }
+    /**
+     * 3.14工艺资料-获取损耗代号
+     * @ApiMethod GET
+     * @params code
+    */
+    public function getLossCode(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->get();
+        if (empty($params) || !isset($params['code'])){
+            $this->error('参数不能为空');
+        }
+        $code = $params['code'];
+        $data = \db('dic_lzsh')->where('sys_bh','like',$code.'%')->field('rtrim(sys_bh) as sys_bh, rtrim(sys_mc) as sys_mc,sys_rate0,sys_rate1')->select();
+        $this->success('请求成功',$data);
+    }
 }
 }

+ 19 - 7
application/api/controller/StaffSalary.php

@@ -99,8 +99,9 @@ class StaffSalary extends Api
         $fields = "a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_gxmc as sczl_type,a.sczl_rq,a.sczl_jtbh,a.sczl_工价系数,a.sczl_ms,a.sczl_cl as 班组车头产量,a.sczl_Pgcl,a.sczl_zcfp,
         $fields = "a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_gxmc as sczl_type,a.sczl_rq,a.sczl_jtbh,a.sczl_工价系数,a.sczl_ms,a.sczl_cl as 班组车头产量,a.sczl_Pgcl,a.sczl_zcfp,
                 a.sczl_装版工时 as 装版工时,a.sczl_保养工时 as 保养工时,a.sczl_打样工时 as 打样工时,a.sczl_异常停机工时 as 异常停机工时,a.sczl_设备运行工时 as 车头产量占用机时,
                 a.sczl_装版工时 as 装版工时,a.sczl_保养工时 as 保养工时,a.sczl_打样工时 as 打样工时,a.sczl_异常停机工时 as 异常停机工时,a.sczl_设备运行工时 as 车头产量占用机时,
                 a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5,a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,
                 a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.sczl_bh5,a.sczl_bh6,a.sczl_bh7,a.sczl_bh8,a.sczl_bh9,a.sczl_bh10,
-                a.sczl_rate1,a.sczl_rate2,a.sczl_rate3,a.sczl_rate4,a.sczl_rate5,a.sczl_rate6,a.sczl_rate7,a.sczl_rate8,a.sczl_rate9,a.sczl_rate10,a.sczl_废品率系数,
-                b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数
+                a.sczl_rate1,a.sczl_rate2,a.sczl_rate3,a.sczl_rate4,a.sczl_rate5,a.sczl_rate6,a.sczl_rate7,a.sczl_rate8,a.sczl_rate9,a.sczl_rate10,
+                a.sczl_废品率系数,
+                b.千件工价,b.日定额,b.补产标准,c.工价系数 as 工序难度系数,c.版距
                 ,d1.员工姓名 as name1,d2.员工姓名 as name2,d3.员工姓名 as name3,d4.员工姓名 as name4,d5.员工姓名 as name5,d6.员工姓名 as name6,d7.员工姓名 as name7,d8.员工姓名 as name8
                 ,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";
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
@@ -129,10 +130,17 @@ class StaffSalary extends Api
         foreach ($list as $value){
         foreach ($list as $value){
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
             //计件产量
             //计件产量
-            if (substr($value['sczl_jtbh'],0,2) == 'JP'){
-                $value['工序难度系数'] = $value['sczl_废品率系数'];
+            if (substr($value['sczl_jtbh'],0,2) == 'JP'){//检品机
+                $gx_rate = $value['sczl_废品率系数'];
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
                 $value['班组车头产量'] = $value['班组车头产量'] * $value['sczl_Pgcl'];
                 $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);
                 $byThePieceYield = round($value['班组车头产量']  * $value['sczl_废品率系数']);
+            }elseif (substr($value['sczl_jtbh'],0,2) == 'WY' || substr($value['sczl_jtbh'],0,2) == 'DW'){//凹印机
+                $gx_rate = $value['工序难度系数'];
+                if ($value['版距'] > 0){
+                    $value['版距'] = $value['版距'] / 1000;
+                    $value['班组车头产量'] = $value['班组车头产量'] * $value['版距'];
+                }
+                $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
             }else{
             }else{
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                     //工序难度系数
                     //工序难度系数
@@ -141,7 +149,11 @@ class StaffSalary extends Api
                         $gx_rate = '1.0000';
                         $gx_rate = '1.0000';
                     }
                     }
                 }else{
                 }else{
-                    $gx_rate = number_format($value['sczl_工价系数'] * $value['工序难度系数'],3);
+                    if (floatval($value['工序难度系数']) > 0 ){
+                        $gx_rate = number_format($value['sczl_工价系数'] * $value['工序难度系数'],3);
+                    }else{
+                        $gx_rate = $value['sczl_工价系数'];
+                    }
                 }
                 }
                 $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
                 $byThePieceYield = round($value['班组车头产量'] * $gx_rate);
             }
             }
@@ -204,7 +216,7 @@ class StaffSalary extends Api
                 }
                 }
             }
             }
         }
         }
-
+//        halt($data);
         /**
         /**
          * 拆片工序数据
          * 拆片工序数据
         */
         */
@@ -520,7 +532,7 @@ class StaffSalary extends Api
             // 推送任务到队列
             // 推送任务到队列
             Queue::push($job,'','default'); // 推送任务到队列
             Queue::push($job,'','default'); // 推送任务到队列
             // 设置任务的标识符到缓存中,并设置有效期,有效期为队列执行时间的两倍
             // 设置任务的标识符到缓存中,并设置有效期,有效期为队列执行时间的两倍
-            $redis->set($taskIdentifier, true,60*5);
+            $redis->set($taskIdentifier, true);
             $this->success('数据正在处理中,请等待...');
             $this->success('数据正在处理中,请等待...');
         }
         }
     }
     }

+ 14 - 0
application/job/InsertDataJob.php

@@ -4,6 +4,7 @@ namespace app\job;
 
 
 use think\Db;
 use think\Db;
 use think\Cache;
 use think\Cache;
+use think\cache\driver\Redis;
 
 
 class InsertDataJob
 class InsertDataJob
 {
 {
@@ -16,6 +17,18 @@ class InsertDataJob
 
 
     public function handle()
     public function handle()
     {
     {
+        $options = [
+            'host'       => '127.0.0.1',
+            'port'       => 6379,
+            'password'   => '',
+            'select'     => 15,
+            'timeout'    => 0,
+            'expire'     => 0,
+            'persistent' => false,
+            'prefix'     => '',
+        ];
+        $redis = new Redis($options);
+        $taskIdentifier = md5(json_encode('date'));
         $handData = [];
         $handData = [];
         foreach ($this->data as $key=>$value){
         foreach ($this->data as $key=>$value){
             $handData[$key]['sczl_gdbh'] = $value['sczl_gdbh'];
             $handData[$key]['sczl_gdbh'] = $value['sczl_gdbh'];
@@ -58,6 +71,7 @@ class InsertDataJob
             $queueKey = 'default';
             $queueKey = 'default';
             // 删除队列
             // 删除队列
             Cache::store('redis')->handler()->del($queueKey);
             Cache::store('redis')->handler()->del($queueKey);
+            $redis->rm($taskIdentifier);
         }
         }
     }
     }
 }
 }