|
|
@@ -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('失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|