find()->toArray(); $leave_info = LeaveInfo::where('id',$approve_info['leave_id'])->find()->toArray(); if($approve_info['approve_user'] != $user_id) throw new Exception('没有审核权限'); if($approve_info['status'] == 0) throw new Exception('请等待审核'); if($approve_info['status'] != 1) throw new Exception('改请假记录已审核'); if($leave_info['status'] != 1) throw new Exception('改请假记录已审核或已取消'); $approve_update = []; $approve_update['status'] = $status; $approve_update['remark'] = $remark; $approve_update['approve_time'] = date('Y-m-d H:i:s'); if($approve_info['flow'] == 1){ $approve_time = time() - strtotime($approve_info['create_at']); }else{ $before_time = LeaveApprove::where(['leave_id'=>$approve_info['leave_id'],'flow'=>$approve_info['flow'] - 1,'approve_type'=>1])->value('approve_time'); $approve_time = time() - strtotime($before_time); } $approve_update['time'] = $approve_time; LeaveApprove::where('id',$approve_id)->update($approve_update);// 更新审批记录 $leave_data = []; if($approve_info['flow'] < $leave_info['approve_num']){ // 更新下一级审批记录状态 LeaveApprove::where(['leave_id'=>$approve_info['leave_id'],'flow'=>$approve_info['flow'] + 1,'approve_type'=>1])->update(['status'=>1]); // 审批流程数 + 1 $leave_data['cur_num'] = $leave_info['cur_num'] + 1; if($status == 3) $leave_data['status'] = 3; } else if($approve_info['flow'] == $leave_info['approve_num']) { // 审批流程数 + 1 $leave_data['cur_num'] = $leave_info['cur_num'] + 1; if($status == 3) $leave_data['status'] = $status; } LeaveInfo::where('id',$leave_info['id'])->update($leave_data);// 更新请假状态 Db::commit(); }catch (\Exception $e) { Db::rollback(); static::$ret_val = false; static::$msg = $e->getMessage(); } return ['ret_val'=>static::$ret_val ,'msg'=>static::$msg]; } }