浏览代码

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

huangsanjia 1 年之前
父节点
当前提交
cb49785432
共有 3 个文件被更改,包括 50 次插入7 次删除
  1. 17 0
      application/api/controller/Product.php
  2. 19 7
      application/api/controller/StaffSalary.php
  3. 14 0
      application/job/InsertDataJob.php

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

@@ -927,4 +927,21 @@ class Product extends Api
             $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,
                 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_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
                 ,d9.员工姓名 as name9,d10.员工姓名 as name10";
         $query = Db::name('设备_产量计酬')->alias('a')->field($fields);
@@ -129,10 +130,17 @@ class StaffSalary extends Api
         foreach ($list as $value){
             $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'];
                 $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{
                 if ($value['sczl_工价系数'] == '0.000' || floatval($value['sczl_工价系数']) <= 0){
                     //工序难度系数
@@ -141,7 +149,11 @@ class StaffSalary extends Api
                         $gx_rate = '1.0000';
                     }
                 }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);
             }
@@ -204,7 +216,7 @@ class StaffSalary extends Api
                 }
             }
         }
-
+//        halt($data);
         /**
          * 拆片工序数据
         */
@@ -520,7 +532,7 @@ class StaffSalary extends Api
             // 推送任务到队列
             Queue::push($job,'','default'); // 推送任务到队列
             // 设置任务的标识符到缓存中,并设置有效期,有效期为队列执行时间的两倍
-            $redis->set($taskIdentifier, true,60*5);
+            $redis->set($taskIdentifier, true);
             $this->success('数据正在处理中,请等待...');
         }
     }

+ 14 - 0
application/job/InsertDataJob.php

@@ -4,6 +4,7 @@ namespace app\job;
 
 use think\Db;
 use think\Cache;
+use think\cache\driver\Redis;
 
 class InsertDataJob
 {
@@ -16,6 +17,18 @@ class InsertDataJob
 
     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 = [];
         foreach ($this->data as $key=>$value){
             $handData[$key]['sczl_gdbh'] = $value['sczl_gdbh'];
@@ -58,6 +71,7 @@ class InsertDataJob
             $queueKey = 'default';
             // 删除队列
             Cache::store('redis')->handler()->del($queueKey);
+            $redis->rm($taskIdentifier);
         }
     }
 }