| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654 |
- <?php
- /**
- +-----------------------------------------------------------------------------------------------
- * GouGuOPEN [ 左手研发,右手开源,未来可期!]
- +-----------------------------------------------------------------------------------------------
- * @Copyright (c) 2021~2024 http://www.gouguoa.com All rights reserved.
- +-----------------------------------------------------------------------------------------------
- * @Licensed 勾股OA,开源且可免费使用,但并不是自由软件,未经授权许可不能去除勾股OA的相关版权信息
- +-----------------------------------------------------------------------------------------------
- * @Author 勾股工作室 <hdm58@qq.com>
- +-----------------------------------------------------------------------------------------------
- */
- declare (strict_types = 1);
- namespace app\api\controller;
- use app\api\BaseController;
- use think\facade\Db;
- class Check extends BaseController
- {
- //获取审核流程
- public function get_flows($check_name='')
- {
- $cate_id = Db::name('FlowCate')->where(['name' => $check_name,'status'=>1])->value('id');
- $flow = Db::name('Flow')->where(['cate_id' => $cate_id,'status'=>1,'delete_time'=>0])->select()->toArray();
- return to_assign(0, '', $flow);
- }
- //获取审核步骤人员
- public function get_flow_users($id=0)
- {
- $flow = Db::name('Flow')->where(['id' => $id])->find();
- $flow_data = unserialize($flow['flow_list']);
- if(!empty($flow_data)){
- foreach ($flow_data as $key => &$val) {
- $val['check_position'] = '';
- if($val['check_role'] == 1){
- $val['check_uids'] = get_department_leader($this->uid);
- }
- if($val['check_role'] == 2){
- $val['check_uids'] = get_department_leader($this->uid,1);
- }
- if($val['check_role'] == 3){
- $val['check_position'] = Db::name('Position')->where('id',$val['check_position_id'])->value('title');
- $check_uids = Db::name('Admin')->where(['position_id'=>$val['check_position_id'],'status'=>1])->column('id');
- $val['check_uids'] = implode(',',$check_uids);
- }
- $val['check_uids_info'] = Db::name('Admin')->field('id,name,thumb')->where('id','in',$val['check_uids'])->select()->toArray();
- }
- }
- else{
- $flow_data = [];
- }
-
- $data['copy_uids'] = $flow['copy_uids'];
- $data['copy_unames'] ='';
- if(!empty($flow['copy_uids'])){
- $copy_unames = Db::name('Admin')->where('id', 'in', $flow['copy_uids'])->column('name');
- $data['copy_unames'] = implode(',', $copy_unames);
- }
- $data['flow_data'] = $flow_data;
- return to_assign(0, '', $data);
- }
-
- //提交审批申请
- public function submit_check()
- {
- $param = get_params();
- $flow_cate = Db::name('FlowCate')->where(['name' => $param['check_name']])->find();
- $flow_list = Db::name('Flow')->where('id',$param['flow_id'])->value('flow_list');
- $flow = unserialize($flow_list);
- $subject = $flow_cate['title'];
- $check_table = $flow_cate['check_table'];
- //var_dump($flow);exit;
- //删除原来的审核流程和审核记录
- Db::name('FlowStep')->where(['action_id'=>$param['action_id'],'flow_id'=>$param['flow_id'],'delete_time'=>0])->update(['delete_time'=>time()]);
- Db::name('FlowRecord')->where(['action_id'=>$param['action_id'],'check_table'=>$check_table,'delete_time'=>0])->update(['delete_time'=>time()]);
- $recordData=array(
- 'action_id' => $param['action_id'],
- 'check_table' => $check_table,
- 'step_id' => 0,
- 'check_uid' => $this->uid,
- 'flow_id' => $param['flow_id'],
- 'check_time' => time(),
- 'check_status' => 0,
- 'content' => '提交申请',
- 'create_time' => time()
- );
- if (!isset($param['check_uids'])) {
- //非自由审批模式
- $step=[];
- $sort=0;
- foreach ($flow as $key => &$value){
- if($value['check_role'] == 1){
- $value['check_uids'] = get_department_leader($this->uid);
- $value['flow_name'] = '当前部门负责人';
- $value['check_position_id']=0;
- }
- if($value['check_role'] == 2){
- $value['check_uids'] = get_department_leader($this->uid,1);
- $value['flow_name'] = '上级部门负责人';
- $value['check_position_id']=0;
- }
- if($value['check_role'] == 3){
- $check_position = Db::name('Position')->where('id',$value['check_position_id'])->value('title');
- $check_uids = Db::name('Admin')->where(['position_id'=>$value['check_position_id'],'status'=>1])->column('id');
- $value['check_uids'] = implode(',',$check_uids);
- $value['flow_name'] = $check_position;
- }
- if($value['check_role'] == 4){
- $value['flow_name'] = '指定人员';
- $value['check_position_id']=0;
- }
- if($value['check_role'] == 5){
- $value['flow_name'] = '指定人员';
- $value['check_position_id']=0;
- $value['check_types']=1;
- }
- if(!empty($value['check_uids'])){
- $step[]=[
- 'action_id' => $param['action_id'],
- 'flow_id' => $param['flow_id'],
- 'flow_name' => $value['flow_name'],
- 'check_position_id' => $value['check_position_id'],
- 'check_role' => $value['check_role'],
- 'check_types' => $value['check_types'],
- 'check_uids' => $value['check_uids'],
- 'create_time' => time(),
- 'sort'=>$sort
- ];
- $sort++;
- }
- }
- if(empty($step)){
- return to_assign(1,'审批流程设置有问题,无法提交审批申请,请联系HR或者管理员重新设置审批流程');
- }
- $res = Db::name('FlowStep')->strict(false)->field(true)->insertAll($step);
- if($res!=false){
- Db::name('FlowRecord')->strict(false)->field(true)->insertGetId($recordData);
- Db::name($check_table)->strict(false)->field(true)->update([
- 'id'=>$param['action_id'],
- 'check_flow_id'=>$param['flow_id'],
- 'check_status'=>1,
- 'check_step_sort'=>0,
- 'check_uids'=>$step[0]['check_uids'],
- 'check_copy_uids'=>isset($param['check_copy_uids'])?$param['check_copy_uids']:''
- ]);
- //发送消息通知
- if($flow_cate['template_id']>0){
- $msg=[
- 'from_uid'=>$this->uid,//发送人
- 'to_uids'=>$step[0]['check_uids'],//接收人
- 'template_id'=>$flow_cate['template_id'],//消息模板ID
- 'template_field'=>'0',//消息模板字段
- 'content'=>[ //消息内容
- 'create_time'=>date('Y-m-d H:i:s'),
- 'action_id'=>$param['action_id'],
- 'title' => $subject
- ]
- ];
- event('SendMessage',$msg);
- }
- return to_assign();
- }
- else{
- return to_assign(1,'操作失败');
- }
- }
- else{
- //自由审批模式
- $flow_step = array(
- 'action_id' => $param['action_id'],
- 'flow_id' => $param['flow_id'],
- 'flow_name' => '自由审批',
- 'check_uids' => $param['check_uids'],
- 'create_time' => time()
- );
- $res = Db::name('FlowStep')->strict(false)->field(true)->insertGetId($flow_step);
- if($res!=false){
- Db::name('FlowRecord')->strict(false)->field(true)->insertGetId($recordData);
- Db::name($check_table)->strict(false)->field(true)->update([
- 'id'=>$param['action_id'],
- 'check_flow_id'=>$param['flow_id'],
- 'check_status'=>1,
- 'check_step_sort'=>0,
- 'check_uids'=>$param['check_uids'],
- 'check_copy_uids'=>isset($param['check_copy_uids'])?$param['check_copy_uids']:''
- ]);
- //发送消息通知
- if($flow_cate['template_id']>0){
- $msg=[
- 'from_uid'=>$this->uid,//发送人
- 'to_uids'=>$param['check_uids'],//接收人
- 'template_id'=>$flow_cate['template_id'],//消息模板ID
- 'template_field'=>'0',//消息模板字段
- 'content'=>[ //消息内容
- 'create_time'=>date('Y-m-d H:i:s'),
- 'action_id'=>$param['action_id'],
- 'title' => $subject
- ]
- ];
- event('SendMessage',$msg);
- }
- return to_assign();
- }
- else{
- return to_assign(1,'操作失败');
- }
- }
- }
-
- //获取审核流程节点
- public function get_flow_nodes($check_name='',$action_id=0,$flow_id=0)
- {
- $flow_cate = Db::name('FlowCate')->where(['name' => $check_name])->find();
- $did = $this->did;
- $map = [];
- $map[] = ['cate_id','=',$flow_cate['id']];
- $map[] = ['status','=',1];
- $map[] = ['delete_time','=',0];
- $map1=[
- ['department_ids','=','']
- ];
- $map2=[
- ['', 'exp', Db::raw("FIND_IN_SET('{$did}',department_ids)")]
- ];
- $whereOr =[$map1,$map2];
- if($action_id==0){
- $flow = Db::name('Flow')
- ->where($map)
- ->where(function ($query) use($whereOr) {
- if (!empty($whereOr)){
- $query->whereOr($whereOr);
- }
- })
- ->select()->toArray();
- foreach ($flow as $k => &$v) {
- $v['is_copy'] = $flow_cate['is_copy'];
- }
- return to_assign(0, '', $flow);
- }
- $check_table = $flow_cate['check_table'];
- $detail = Db::name($check_table)->where('id',$action_id)->field('id,admin_id,check_status,check_flow_id,check_step_sort,check_uids,check_copy_uids')->find();
- //创建人
- $is_creater=0;
- if($detail['admin_id'] == $this->uid){
- $is_creater=1;
- }
- $detail['is_creater'] = $is_creater;
- $detail['admin_name'] = Db::name('Admin')->where('id',$detail['admin_id'])->value('name');
- //当前审批人
- $is_checker=0;
- if(in_array($this->uid,explode(',',$detail['check_uids']))){
- $is_checker=1;
- }
- $detail['is_checker'] = $is_checker;
- $detail['is_copy'] = $flow_cate['is_copy'];
- $detail['is_file'] = $flow_cate['is_file'];
- $detail['is_export'] = $flow_cate['is_export'];
- $detail['is_back'] = $flow_cate['is_back'];
- $detail['is_reversed'] = $flow_cate['is_reversed'];
- //审批记录
- $check_record = Db::name('FlowRecord')
- ->field('f.*,a.name')
- ->alias('f')
- ->join('Admin a', 'a.id = f.check_uid', 'left')
- ->where(['f.action_id' => $action_id,'f.check_table'=>$check_table])->select()->toArray();
- foreach ($check_record as $kk => &$vv) {
- $vv['check_time_str'] = date('Y-m-d H:i', $vv['check_time']);
- $vv['status_str'] = '提交';
- if($vv['check_status'] == 1){
- $vv['status_str'] = '审核通过';
- }
- else if($vv['check_status'] == 2){
- $vv['status_str'] = '审核拒绝';
- }
- if($vv['check_status'] == 3){
- $vv['status_str'] = '撤销';
- }
- if($vv['check_status'] == 4){
- $vv['status_str'] = '反确认';
- }
- if(!empty($vv['check_files'])){
- $file_array = Db::name('File')->where('id','in',$vv['check_files'])->select()->toArray();
- $vv['file_array'] = $file_array;
- }
- else{
- $vv['file_array'] = [];
- }
- }
- $detail['check_record'] = $check_record;
- if($detail['check_status']==0 || $detail['check_status']==4){
- //$flow = Db::name('Flow')->where(['cate_id' => $flow_cate['id'],'status'=>1,'delete_time'=>0])->select()->toArray();
- $flow = Db::name('Flow')
- ->where($map)
- ->where(function ($query) use($whereOr) {
- if (!empty($whereOr)){
- $query->whereOr($whereOr);
- }
- })
- ->select()->toArray();
- $detail['flow'] = $flow;
- }
- else{
- //当前审批人
- $detail['check_unames']='-';
- if(!empty($detail['check_uids'])){
- $check_unames = Db::name('Admin')->where('id','in',$detail['check_uids'])->column('name');
- $detail['check_unames'] = implode(',',$check_unames);
- }
- //抄送人
- $detail['copy_unames']='-';
- if(!empty($detail['check_copy_uids'])){
- $copy_uids = Db::name('Admin')->where('id','in',$detail['check_copy_uids'])->column('name');
- $detail['copy_unames'] = implode(',',$copy_uids);
- }
-
- //审批节点步骤
- $nodes = Db::name('FlowStep')->where(['action_id'=>$action_id,'flow_id'=>$flow_id,'delete_time'=>0])->order('sort asc')->select()->toArray();
- foreach ($nodes as $key => &$val) {
- $check_uids_info = Db::name('Admin')->field('id,name,thumb')->where('id','in',$val['check_uids'])->select()->toArray();
- foreach ($check_uids_info as $k => &$v) {
- $v['check_time'] = 0;
- $v['content'] = '';
- $v['check_status'] = 0;
- $check_array = Db::name('FlowRecord')->where(['check_uid' => $v['id'],'step_id' => $val['id']])->order('check_time desc')->select()->toArray();
- if(!empty($check_array)){
- $checked = $check_array[0];
- $v['check_time'] = date('Y-m-d H:i', $checked['check_time']);
- $v['content'] = $checked['content'];
- $v['check_status'] = $checked['check_status'];
- }
- }
- $val['check_uids_info'] = $check_uids_info;
-
- if(!empty($val['check_position_id'])){
- $val['check_position'] = Db::name('Position')->where('id',$val['check_position_id'])->value('title');
- }
- else{
- $val['check_position'] = '';
- }
- $check_list = [];
- foreach ($check_record as $kkk => $vvv) {
- if($vvv['step_id'] == $val['id'])
- $check_list[] = $vvv;
- }
- $val['check_list'] = $check_list;
- }
- $detail['nodes'] = $nodes;
-
- //当前审核节点
- $step = Db::name('FlowStep')->where(['action_id'=>$action_id,'flow_id'=>$flow_id,'sort'=>$detail['check_step_sort'],'delete_time'=>0])->find();
- $detail['step'] = $step;
- }
- return to_assign(0, '', $detail);
- }
-
- //流程审核
- public function flow_check()
- {
- $param = get_params();
- $param['check_files'] = isset($param['check_files']) ? $param['check_files'] : '';
- $flow_cate = Db::name('FlowCate')->where(['name' => $param['check_name']])->find();
- $subject = $flow_cate['title'];
- $action_id = $param['action_id'];
- $check_table = $flow_cate['check_table'];
- $param['send_msg'] = 1;
- //审核内容详情
- $detail = Db::name($check_table)->where(['id' => $action_id])->find();
- if (empty($detail)){
- return to_assign(1,'审批数据错误');
- }
- //当前审核节点详情
- $step = Db::name('FlowStep')->where(['action_id'=>$action_id,'flow_id'=>$detail['check_flow_id'],'sort'=>$detail['check_step_sort'],'delete_time'=>0])->find();
- //审核通过时
- if($param['check'] == 1){
- $check_uids = explode(",",strval($detail['check_uids']));
- if (!in_array($this->uid, $check_uids)){
- return to_assign(1,'您没权限审核该审批');
- }
- //审批通过
- if($step['check_role'] == 0){
- //自由人审批
- if($param['check_node'] == 2){
- $next_step = $detail['check_step_sort']+1;
- $flow_step = array(
- 'action_id' => $action_id,
- 'sort' => $next_step,
- 'flow_id' => $detail['check_flow_id'],
- 'check_uids' => $param['check_uids'],
- 'create_time' => time()
- );
- $fid = Db::name('FlowStep')->strict(false)->field(true)->insertGetId($flow_step);
- //下一步审核步骤
- $param['check_step_sort'] = $next_step;
- $param['check_status'] = 1;
- }
- else{
- //不存在下一步审核,审核结束
- $param['check_status'] = 2;
- $param['check_uids'] ='';
- }
- }
- else{
- //查询当前步骤审批记录数
- $check_count = Db::name('FlowRecord')->where(['action_id'=>$action_id,'flow_id'=>$detail['check_flow_id'],'step_id'=>$step['id']])->count();
- //当前当前步骤审批应有记录数
- $flow_count = explode(',', $step['check_uids']);
- $param['check_status'] = 1;
- $uids_array = explode(',',$detail['check_uids']);
- $new_uids= array_diff($uids_array, [$this->uid]);
- $param['check_uids'] = implode(',',$new_uids);
- if((($check_count+1) >= count($flow_count) && $step['check_types']==1) || $step['check_types']==2){
- //会签
- $next_step = Db::name('FlowStep')->where(['action_id'=>$action_id,'flow_id'=>$detail['check_flow_id'],'sort'=>($detail['check_step_sort']+1),'delete_time'=>0])->find();
- if($next_step){
- //存在下一步审核
- if($next_step['check_role'] == 1){
- $param['check_uids'] = get_department_leader($detail['admin_id']);
- }
- else if($next_step['check_role'] == 2){
- $param['check_uids'] = get_department_leader($detail['admin_id'],1);
- }
- else if($next_step['check_role'] == 3){
- $uids = Db::name('Admin')->where(['position_id'=>$next_step['check_position_id'],'status'=>1])->column('id');
- $param['check_uids'] = implode(',' ,$uids);
- }
- else{
- $param['check_uids'] = $next_step['check_uids'];
- }
- $param['check_step_sort'] = $detail['check_step_sort']+1;
- $param['check_status'] = 1;
- }
- else{
- //不存在下一步审核,审核结束
- $param['check_status'] = 2;
- $param['check_uids'] ='';
- }
- }
- else{
- $param['send_msg'] = 0;
- }
- }
- if($param['check_status'] == 1 && empty($param['check_uids'])){
- return to_assign(1,'找不到下一步的审批人,该审批流程设置有问题,请联系HR或者管理员');
- }
- //添加历史审核人
- if(empty($detail['check_history_uids'])){
- $param['check_history_uids'] = $this->uid;
- }
- else{
- $param['check_history_uids'] = $detail['check_history_uids'].','.$this->uid;
- }
- $res = Db::name($check_table)->strict(false)->field('check_step_sort,check_status,check_history_uids,check_uids')->where(['id' => $action_id])->update($param);
-
- if($res!==false){
- $checkData=array(
- 'action_id' => $action_id,
- 'check_table' => $check_table,
- 'step_id' => $step['id'],
- 'check_uid' => $this->uid,
- 'flow_id' => $detail['check_flow_id'],
- 'check_time' => time(),
- 'check_files' => $param['check_files'],
- 'check_status' => $param['check'],
- 'content' => $param['content'],
- 'create_time' => time()
- );
- $aid = Db::name('FlowRecord')->strict(false)->field(true)->insertGetId($checkData);
- add_log('check', $action_id, $param,$subject);
- //发送消息通知
- if($param['check_status'] == 1){
- if($flow_cate['template_id']>0 && $param['send_msg']==1){
- $msg=[
- 'from_uid'=>$detail['admin_id'],//发送人
- 'to_uids'=>$param['check_uids'],//接收人
- 'template_id'=>$flow_cate['template_id'],//消息模板ID
- 'template_field'=>'0',//消息模板字段,审批中
- 'content'=>[ //消息内容
- 'create_time'=>date('Y-m-d H:i:s',$detail['create_time']),
- 'action_id'=>$action_id,
- 'title' => $subject
- ]
- ];
- event('SendMessage',$msg);
- }
- }
- if($param['check_status'] == 2){
- if($flow_cate['template_id']>0){
- $msg=[
- 'from_uid'=>$this->uid,//发送人
- 'to_uids'=>$detail['admin_id'],//接收人
- 'template_id'=>$flow_cate['template_id'],//消息模板ID
- 'template_field'=>'1',//消息模板字段,审核通过
- 'content'=>[ //消息内容
- 'create_time'=>date('Y-m-d H:i:s',$detail['create_time']),
- 'action_id'=>$action_id,
- 'title' => $subject
- ]
- ];
- event('SendMessage',$msg);
-
- if(!empty($detail['check_copy_uids'])){
- $msgs=[
- 'from_uid'=>$detail['admin_id'],//发送人
- 'to_uids'=>$detail['check_copy_uids'],//接收人
- 'template_id'=>$flow_cate['template_id'],//消息模板ID
- 'template_field'=>'3',//消息模板字段,审核通过抄送人接收
- 'content'=>[ //消息内容
- 'create_time'=>date('Y-m-d H:i:s',$detail['create_time']),
- 'action_id'=>$action_id,
- 'title' => $subject
- ]
- ];
- event('SendMessage',$msgs);
- }
- }
- }
- return to_assign(0,'操作成功',['check_status'=>$param['check_status']]);
- }
- else{
- return to_assign(1,'操作失败');
- }
- }
- //审批拒绝
- else if($param['check'] == 2){
- $check_uids = explode(",",strval($detail['check_uids']));
- if (!in_array($this->uid, $check_uids)){
- return to_assign(1,'您没权限审核该审批');
- }
- //拒绝审核,数据操作
- $param['check_status'] = 3;
- //添加历史审核人
- if(empty($detail['check_history_uids'])){
- $param['check_history_uids'] = $this->uid;
- }
- else{
- $param['check_history_uids'] = $detail['check_history_uids'].','.$this->uid;
- }
- $param['check_uids'] ='';
- if($step['check_role'] == 5){
- //获取上一步的审核信息
- $prev_step = Db::name('FlowStep')->where(['action_id'=>$action_id,'flow_id'=>$detail['check_flow_id'],'sort'=>($detail['check_step_sort']-1),'delete_time'=>0])->find();
- if($prev_step){
- //存在上一步审核
- $param['check_step_sort'] = $prev_step['sort'];
- $param['check_uids'] = $prev_step['check_uids'];
- $param['check_status'] = 1;
- }
- else{
- //不存在上一步审核,审核初始化步骤
- $param['check_step_sort'] = 0;
- $param['check_uids'] = '';
- $param['check_status'] = 0;
- }
- }
-
- $res = Db::name($check_table)->strict(false)->field('check_step_sort,check_status,check_history_uids,check_uids')->where(['id' => $action_id])->update($param);
- if($res!==false){
- $checkData=array(
- 'action_id' => $action_id,
- 'check_table' => $check_table,
- 'step_id' => $step['id'],
- 'check_uid' => $this->uid,
- 'flow_id' => $detail['check_flow_id'],
- 'check_time' => time(),
- 'check_status' => $param['check'],
- 'check_files' => $param['check_files'],
- 'content' => $param['content'],
- 'create_time' => time()
- );
- $aid = Db::name('FlowRecord')->strict(false)->field(true)->insertGetId($checkData);
- add_log('refue', $action_id, $param,$subject);
- //发送消息通知
- if($flow_cate['template_id']>0){
- $msg=[
- 'from_uid'=>$this->uid,//发送人
- 'to_uids'=>$detail['admin_id'],//接收人
- 'template_id'=>$flow_cate['template_id'],//消息模板ID
- 'template_field'=>'2',//消息模板字段,审核拒绝
- 'content'=>[ //消息内容
- 'create_time'=>date('Y-m-d H:i:s',$detail['create_time']),
- 'action_id'=>$detail['id'],
- 'title' => $subject
- ]
- ];
- event('SendMessage',$msg);
- }
- return to_assign(0,'操作成功',['check_status'=>$param['check_status']]);
- }
- else{
- return to_assign(1,'操作失败');
- }
- }
- else if($param['check'] == 3){
- //审批撤回
- if($detail['admin_id'] != $this->uid){
- return to_assign(1,'你没权限操作');
- }
- //撤销审核,数据操作
- $param['check_status'] = 4;
- $param['check_uids'] ='';
- $param['check_step_sort'] =0;
-
- $res = Db::name($check_table)->strict(false)->field('check_step_sort,check_status,check_uids')->where(['id' => $action_id])->update($param);
- if($res!==false){
- $checkData=array(
- 'action_id' => $action_id,
- 'check_table' => $check_table,
- 'step_id' => $step['id'],
- 'check_uid' => $this->uid,
- 'flow_id' => $detail['check_flow_id'],
- 'check_time' => time(),
- 'check_status' => $param['check'],
- 'content' => $param['content'],
- 'create_time' => time()
- );
- $aid = Db::name('FlowRecord')->strict(false)->field(true)->insertGetId($checkData);
- add_log('back', $action_id, $param,$subject);
- return to_assign(0,'操作成功',['check_status'=>$param['check_status']]);
- }else{
- return to_assign(1,'操作失败');
- }
- }
- else if($param['check'] == 4){
- //审批反确认
- //反确认审核,数据回到待提交审批
- $param['check_status'] = 0;
- $param['check_uids'] ='';
- $param['check_step_sort'] =0;
-
- $res = Db::name($check_table)->strict(false)->field('check_step_sort,check_status,check_uids')->where(['id' => $action_id])->update($param);
- if($res!==false){
- $checkData=array(
- 'action_id' => $action_id,
- 'check_table' => $check_table,
- 'step_id' => $step['id'],
- 'check_uid' => $this->uid,
- 'flow_id' => $detail['check_flow_id'],
- 'check_time' => time(),
- 'check_status' => 4,
- 'content' => $param['content'],
- 'create_time' => time()
- );
- $aid = Db::name('FlowRecord')->strict(false)->field(true)->insertGetId($checkData);
- add_log('back', $action_id, $param,$subject);
- return to_assign(0,'操作成功',['check_status'=>0]);
- }else{
- return to_assign(1,'操作失败');
- }
- }
- }
- }
|