Explorar o código

计件工资计算成品防护计算规则优化

qiuenguang hai 11 meses
pai
achega
879a7d780d
Modificáronse 1 ficheiros con 17 adicións e 14 borrados
  1. 17 14
      application/api/controller/StaffSalary.php

+ 17 - 14
application/api/controller/StaffSalary.php

@@ -12,7 +12,7 @@ use function fast\e;
 
 /**
  * 员工计件工资核算
-*/
+ */
 class StaffSalary extends Api
 {
     protected $noNeedLogin = ['*'];
@@ -36,7 +36,7 @@ class StaffSalary extends Api
      * @param string vacation_one_end   法定假日1 结束时间
      * @param string vacation_two_start 法定假日2 开始时间
      * @param string vacation_two_end   法定假日2 结束时间
-    */
+     */
     public function staffSalaryCount(){
         if (Request::instance()->isPost() == false){
             $this->error('非法请求');
@@ -53,12 +53,12 @@ class StaffSalary extends Api
         $startDateInRange = date('Ym', strtotime($startDate)) === $attendanceMonth;
         $endDateInRange = date('Ym', strtotime($endDate)) === $attendanceMonth;
         if (!$startDateInRange || !$endDateInRange) {
-           $this->error('日期参数错误');
+            $this->error('日期参数错误');
         }
         $options = [
             'host'       => '127.0.0.1',
             'port'       => 6379,
-            'password'   => '123456',
+            'password'   => '',
             'select'     => 15,
             'timeout'    => 0,
             'expire'     => 0,
@@ -133,7 +133,7 @@ class StaffSalary extends Api
         $data = [];
         /**
          * 设备_产量计酬数据
-        */
+         */
         foreach ($list as $value){
             $num = 1;
             $value['班组车头产量'] = $value['班组车头产量'] - $value['sczl_zcfp'];
@@ -248,7 +248,7 @@ class StaffSalary extends Api
 //        halt($data);
         /**
          * 拆片工序数据
-        */
+         */
         $query = Db::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 保养工时, 
@@ -314,7 +314,7 @@ class StaffSalary extends Api
 //        halt($data);
         /**
          * 手工检验工序数据
-        */
+         */
         $shoujianfields = "a.sczl_gdbh,a.sczl_yjgx,sczl_gxmc AS sczl_type,a.sczl_rq,a.sczl_cl AS 班组车头产量,
 	sczl_废品率系数 AS 工序难度系数,a.sczl_bh0,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_bh11,b.千件工价,b.日定额,b.补产标准,d0.员工姓名 AS name0,
@@ -516,7 +516,7 @@ class StaffSalary extends Api
             }
         }
 //halt($data);
-         //用于存储bh对应的工时占比总和
+        //用于存储bh对应的工时占比总和
         $bhTotals = [];
         // 遍历原始数据
         foreach ($data as $row) {
@@ -565,13 +565,17 @@ class StaffSalary extends Api
                 });
             }else{
                 //如果出勤天数小于法定天数,按正常计算
-                if (count($days[$day_bh]) <= $params['days']){
+                if(strpos($data['sczl_type'],'成品入仓')){
                     $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
-                }else{ //如果出勤天数大于法定天数,达标定额为 0,计件工资为0,超出的部分按加班工资算
-                    $data[$key]['达标定额'] = '0.00';
-                    $pieceWorkWage = '0.00';
+                }else{
+                    if (count($days[$day_bh]) <= $params['days']){
+                        $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
+                    }else{ //如果出勤天数大于法定天数,达标定额为 0,计件工资为0,超出的部分按加班工资算
+                        $data[$key]['达标定额'] = '0.00';
+                        $pieceWorkWage = '0.00';
+                    }
+                    $overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
                 }
-                $overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
             }
             $data[$key]['个人计件工资'] = number_format($pieceWorkWage,2,'.', '');
             $data[$key]['个人加班工资'] = number_format($overTimePay,2,'.', '');
@@ -582,7 +586,6 @@ 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); // 创建任务实例