Pārlūkot izejas kodu

法定天数修改

qiuenguang 1 gadu atpakaļ
vecāks
revīzija
c884642184
1 mainītis faili ar 95 papildinājumiem un 0 dzēšanām
  1. 95 0
      application/api/controller/Staff.php

+ 95 - 0
application/api/controller/Staff.php

@@ -168,4 +168,99 @@ class Staff extends Api
             $this->error('更新失败');
         }
     }
+
+    /**
+     * 员工法定天数修改
+     * @return void
+     * @throws \think\Exception
+     * @throws \think\db\exception\BindParamException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function clockUpdate()
+    {
+        if (Request::instance()->isPost() === false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (empty($params['month']) || empty($params['number'])){
+            $this->error('参数错误');
+        }
+        $staffList = \db('人事_基本资料')
+            ->field('rtrim(员工编号) as 员工编号,rtrim(班次类型) as 班次类型')
+            ->where('在职状态','在职')
+            ->select();
+        $status = \db('人事_考勤资料')->where('kqzl_ny',$params['month'])->count();
+        $data = [];
+        foreach ($staffList as $key => $value){
+            if ($value['班次类型'] === 'A类(双休班)'){
+                $hours = $params['typeA'];
+            }elseif ($value['班次类型'] === 'B类(7.5小时班)'){
+                $hours = $params['typeB'];
+            }else{
+                $hours = $params['typeC'];
+            }
+            $data[$key] =[
+                'kqzl_ygbh' => $value['员工编号'],
+                'kqzl_ny' => $params['month'],
+                '法定天数' => $params['number'],
+                '不计定额天数' => 0,
+                '法定工时' => $hours,
+                '非考勤天数' => 0,
+                '非考勤工时' => 0,
+                '工作日出勤天数' => 0,
+                '工作日出勤标准工时' => 0,
+                '工作日出勤总工时' => 0,
+                '可享法定假小时数' => 0,
+                '有薪假工时' => 0,
+                '延时加班' => 0,
+                '双休加班天数' => 0,
+                '双休加班' => 0,
+                '法定假加班' => 0,
+                '夜班次数' => 0,
+                '调休类加班' => 0,
+                '调休' => 0,
+                '病假工时' => 0,
+                '工伤工时' => 0,
+                'X_旷工工时' => 0,
+                'sys_id' => $params['sys_id'],
+                'sys_rq' => date('Y-m-d H:i:s',time()),
+                'mod_rq' => '',
+            ];
+        }
+        $lastId = \db('人事_考勤资料')->order('UniqId desc')->value('UniqId');
+        if ($status === 0){
+            foreach ($data as $key=>$value){
+                $data[$key]['UniqId'] = $lastId + $key + 1;
+            }
+            $sql = \db('人事_考勤资料')->fetchSql(true)->insertAll($data);
+            $res = \db()->query($sql);
+            if ($res !== false){
+                $this->success('成功');
+            }else{
+                $this->error('失败');
+            }
+        }else{
+            $i = 0;
+            foreach ($data as $key=>$value){
+                $value['mod_rq'] = date('Y-m-d H:i:s',time());
+                $sql = \db('人事_考勤资料')
+                    ->where('kqzl_ygbh',$value['kqzl_ygbh'])
+                    ->where('kqzl_ny',$value['kqzl_ny'])
+                    ->fetchSql(true)
+                    ->update($value);
+                $res = \db()->query($sql);
+                if ($res === false){
+                    $i++;
+                }
+            }
+            if ($i === 0){
+                $this->success('成功');
+            }else{
+                $this->error('失败');
+            }
+        }
+    }
 }