'申请事由', 'type' => '采购类型','desc'=>'', 'start_time' => '','end_time' => '', 'item_list' => ''], ['reason' => '申请标题', 'type' => '呈批类型','desc'=>'缓急程度', 'start_time' => '','end_time' => '', 'item_list' => ''], ['reason' => '物品名称', 'type' => '','desc'=>'', 'start_time' => '','end_time' => '', 'item_list' => ''], ['reason' => '物品用途', 'type' => '','desc'=>'', 'start_time' => '','end_time' => '', 'item_list' => '领用物品'], ['reason' => '出差事由', 'type' => '','desc'=>'', 'start_time' => '出差开始时间','end_time' => '出差结束时间','item_list' => '同行人员'], ['reason' => '','type' => '请假类型','desc'=>'', 'start_time' => '请假开始时间','end_time' => '请假结束时间','item_list' => ''], ['reason' => '出发地点', 'type' => '','desc'=>'','start_time' => '出发时间','end_time' => '返回时间','item_list' => ''], ['reason' => '维修地点', 'type' => '','desc'=>'具体内容','start_time' => '','end_time' => '','item_list' => ''], ['reason' => '合同编号', 'type' => '','desc'=>'缓急程度','start_time' => '','end_time' => '','item_list' => '','apply_date' => '拟稿日期'], ['reason' => '文件名称', 'type' => '','desc'=>'来文单位名称','start_time' => '','end_time' => '','item_list' => ''], ['reason' => '文件名称', 'type' => '','desc'=>'缓急程度', 'start_time' => '','end_time' => '', 'item_list' => '','apply_date' => '拟发文时间'], ]; $data = ApproveFlowService::get_data(CommonConstant::MODULE_3, $this->user); $this->success('获取流程', $data); } /** * 申请出差/重新发起 * * @Apidoc\Method("POST") * @Apidoc\Param("id", type="integer", require=false, desc="出差ID 重新发起必传") * @Apidoc\Param("reason", type="string", require=true, desc="出差事由") * @Apidoc\Param("start_time", type="string", require=true, desc="开始时间") * @Apidoc\Param("end_time", type="string", require=true, desc="结束时间") * @Apidoc\Param("document", type="string", require=false, desc="附件(多个用英文逗号隔开)") * @Apidoc\Param("images", type="string", require=false, desc="图片(多个用英文逗号隔开)") * @Apidoc\Param("type", type="integer", require=true, desc="出差类型:1=市内,2=市外") * @Apidoc\Param("is_who", type="integer", require=false, desc="是否跨关内关外:0=否,1=是") * @Apidoc\Param("remark", type="string", require=false, desc="备注") * @Apidoc\Param("peer_user", type="array", require=false, desc="同行员工数据", * @Apidoc\Param("is_who", type="integer", require=true, desc="是否外部人员:0=否,1=是"), * @Apidoc\Param("user_id", type="string", require=false, desc="用户userid"), * @Apidoc\Param("name", type="string", require=true, desc="姓名"), * @Apidoc\Param("desc", type="string", require=false, desc="备注"), * ) * @Apidoc\Param("approve_user", type="string", require=true, desc="审批人id(多个用英文逗号隔开)") * @Apidoc\Param("copy_user", type="string", require=false, desc="抄送人id(多个用英文逗号隔开)") */ public function create() { $id = input('id'); $reason = input('reason'); $start_time = input('start_time'); $end_time = input('end_time'); $document = input('document'); $images = input('images'); $type = input('type'); $is_who = input('is_who'); $remark = input('remark'); $peer_user = input('peer_user'); $approve_user = input('approve_user'); $copy_user = input('copy_user'); $params = compact("id", "reason", "start_time", "end_time", "document", "images", "type", "is_who", "remark", "peer_user", "approve_user", "copy_user"); Db::startTrans(); try { EvectionInfoService::create($id, $params, $this->user); Db::commit(); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('申请已提交,请等待审批'); } /** * 我的出差记录 * * @Apidoc\Method("POST") * @Apidoc\Param("page", type="integer",require=true, desc="页数") * @Apidoc\Param("page_num", type="integer", require=true, desc="每页数量") * @Apidoc\Param("status", type="integer", require=true, desc="审批状态:1=审批中,2=审批通过,3=审批驳回,9=审批撤销") * @Apidoc\Param("search", type="string", require=false, desc="搜索 事由 编号") * @Apidoc\Returned("id", type="integer", desc="出差ID") * @Apidoc\Returned("status", type="integer", desc="审批状态:1=审批中,2=审批通过,3=审批驳回,4=审批撤销") * @Apidoc\Returned("create_at", type="string", desc="创建时间") * @Apidoc\Returned("order_no", type="string", desc="审批编号") * @Apidoc\Returned("reason", type="string", desc="出差事由") * @Apidoc\Returned("start_time", type="string", desc="出差开始时间") * @Apidoc\Returned("end_time", type="string", desc="出差结束时间") * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表", * @Apidoc\Returned("id", type="integer", desc="同行人员ID"), * @Apidoc\Returned("info_id", type="integer", desc="出差ID"), * @Apidoc\Returned("name", type="string", desc="姓名"), * ) * @Apidoc\Returned("approve_info", type="object", desc="审批信息", * @Apidoc\Returned("id", type="integer", desc="审批ID"), * @Apidoc\Returned("info_id", type="integer", desc="出差ID"), * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"), * @Apidoc\Returned("user", type="object", desc="审批人信息", * @Apidoc\Returned("userid", type="string", desc="用户userid"), * @Apidoc\Returned("name", type="string", desc="姓名"), * ), * ) */ public function get_list() { $status = input('status'); $search = input('search'); $offset = $this->off_set; $length = $this->page_num; $list = EvectionInfoService::get_list($status, $search, $offset, $length, $this->user); $this->success('我的出差记录', $list); } /** * 详情 * * @Apidoc\Method("POST") * @Apidoc\Param("id", type="integer",require=true, desc="出差ID") * @Apidoc\Returned("id", type="integer", desc="出差ID") * @Apidoc\Returned("status", type="integer", desc="审批状态:1=审批中,2=审批通过,3=审批驳回,4=审批撤销") * @Apidoc\Returned("create_at", type="string", desc="创建时间") * @Apidoc\Returned("order_no", type="string", desc="审批编号") * @Apidoc\Returned("apply_date", type="string", desc="申请日期") * @Apidoc\Returned("reason", type="string", desc="出差事由") * @Apidoc\Returned("start_time", type="string", desc="出差开始时间") * @Apidoc\Returned("end_time", type="string", desc="出差结束时间") * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内,2=市外") * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是") * @Apidoc\Returned("remark", type="string", desc="备注") * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表", * @Apidoc\Returned("id", type="integer", desc="同行人员ID"), * @Apidoc\Returned("info_id", type="integer", desc="出差ID"), * @Apidoc\Returned("name", type="string", desc="姓名"), * ) * @Apidoc\Returned("approve_info", type="object", desc="审批信息", * @Apidoc\Returned("id", type="integer", desc="审批ID"), * @Apidoc\Returned("info_id", type="integer", desc="出差ID"), * @Apidoc\Returned("status", type="integer", desc="审批状态:0=待审批,1=审批中,2=审批通过,3=审批拒绝"), * @Apidoc\Returned("create_at", type="string", desc="创建时间"), * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"), * @Apidoc\Returned("approve_type", type="integer", desc="流程类型:1=审批,2=抄送"), * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"), * @Apidoc\Returned("approve_time", type="string", desc="审批时间"), * @Apidoc\Returned("remark", type="string", desc="审批备注"), * @Apidoc\Returned("time", type="string", desc="审批时长(上一次审批完成到本次审批的时间,单位秒)"), * @Apidoc\Returned("time_text", type="string", desc="审批时长文本"), * @Apidoc\Returned("user", type="object", desc="审批人信息", * @Apidoc\Returned("userid", type="string", desc="用户userid"), * @Apidoc\Returned("name", type="string", desc="姓名"), * ), * ) * @Apidoc\Returned("department", type="array", desc="所在部门列表", * @Apidoc\Returned("dept_id", type="string", desc="部门ID"), * @Apidoc\Returned("name", type="string", desc="部门名称"), * ) * @Apidoc\Returned("document_text", type="array", desc="附件列表") * @Apidoc\Returned("images_text", type="array", desc="图片列表") */ public function get_detail() { $id = input('id'); $info = EvectionInfoService::get_detail($id, $this->user, 'detail'); $this->success('详情', $info); } /** * 信息 * * @Apidoc\Method("POST") * @Apidoc\Desc("重新发起信息/修改信息") * @Apidoc\Param("id", type="integer",require=true, desc="出差ID") * @Apidoc\Param("id", type="integer",require=true, desc="出差ID") * @Apidoc\Returned("id", type="integer", desc="出差ID") * @Apidoc\Returned("status", type="integer", desc="审批状态:1=审批中,2=审批通过,3=审批驳回,4=审批撤销") * @Apidoc\Returned("create_at", type="string", desc="创建时间") * @Apidoc\Returned("order_no", type="string", desc="审批编号") * @Apidoc\Returned("apply_date", type="string", desc="申请日期") * @Apidoc\Returned("reason", type="string", desc="出差事由") * @Apidoc\Returned("start_time", type="string", desc="出差开始时间") * @Apidoc\Returned("end_time", type="string", desc="出差结束时间") * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内,2=市外") * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是") * @Apidoc\Returned("remark", type="string", desc="备注") * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表", * @Apidoc\Returned("id", type="integer", desc="同行人员ID"), * @Apidoc\Returned("info_id", type="integer", desc="出差ID"), * @Apidoc\Returned("is_who", type="integer", desc="是否外部人员:0=否,1=是"), * @Apidoc\Returned("user_id", type="string", desc="用户userid"), * @Apidoc\Returned("name", type="string", desc="姓名"), * @Apidoc\Returned("desc", type="string", desc="备注"), * ) * @Apidoc\Returned("document_text", type="array", desc="附件列表") * @Apidoc\Returned("images_text", type="array", desc="图片列表") **/ public function get_info() { $id = input('id'); $info = EvectionInfoService::get_detail($id, $this->user, 'info'); $this->success('信息', $info); } /** * 催办 * * @Apidoc\Method("POST") * @Apidoc\Param("id", type="integer",require=true, desc="出差ID") */ public function urging() { $id = input('id'); Db::startTrans(); try { EvectionInfoService::make($id, $this->user, 'urging'); Db::commit(); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('催办成功'); } /** * 撤销 * * @Apidoc\Method("POST") * @Apidoc\Param("id", type="integer",require=true, desc="出差ID") */ public function cancel() { $id = input('id'); Db::startTrans(); try { EvectionInfoService::make($id, $this->user, 'cancel'); Db::commit(); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('撤销成功'); } /** * @Apidoc\Title("我审批的") * @Apidoc\Desc("需要我审批的") * @Apidoc\Method("GET") * @Apidoc\Author("HG") * @Apidoc\Tag("") * @Apidoc\Query("page", type="int",require=true, desc="页数") * @Apidoc\Query("page_num", type="int",require=true, desc="每页数量") * @Apidoc\Query("password", type="string",require=true, desc="密码") * @Apidoc\Returned("id", type="int", desc="出差记录id") * @Apidoc\Returned("start_time", type="string", desc="出差记录id") * @Apidoc\Returned("end_time", type="string", desc="结束时间") * @Apidoc\Returned("reason", type="string", desc="出差事由") * @Apidoc\Returned("document", type="string", desc="附件(文件路径)") * @Apidoc\Returned("images", type="string", desc="图片(多张|隔开)") * @Apidoc\Returned("reason", type="string", desc="出差事由") * @Apidoc\Returned("type", type="string", desc="出差类型(1市内2市外)") * @Apidoc\Returned("status", type="int", desc="状态:1审批中,2审批通过,3审批拒绝,9取消") * @Apidoc\Returned("user_id", type="int", desc="出差会员id") * @Apidoc\Returned("approve_status", type="int", desc="审批状态(我的审批状态)") * @Apidoc\Returned("approve_time", type="string", desc="审批时间") * @Apidoc\Returned("remark", type="string", desc="审批备注") */ public function getApproveEvection() { $list = EvectionApprove::field('i.*,p.status approve_status,p.approve_time,p.remark') ->alias('p') ->where(['p.approve_user' => $this->user_id]) ->where('p.status', '>', '0') ->leftJoin('EvectionInfo i', 'p.info_id = i.id') ->limit($this->off_set, $this->page_num) ->select()->toArray(); array_walk($list, function (&$v) { $v['images_arr'] = $v['images'] ? explode('|', $v['images']) : null; }); $this->success('ok', ['list' => $list]); } /** * @Apidoc\Title("审批出差记录") * @Apidoc\Desc("审批出差记录") * @Apidoc\Method("POST") * @Apidoc\Author("HG") * @Apidoc\Tag("") * @Apidoc\Query("id", type="int",require=true, desc="申请记录id") * @Apidoc\Query("status", type="string",require=true, desc="审批状态(2审批通过3审批拒绝)") * @Apidoc\Query("remark", type="string",require=true, desc="审批备注") */ public function approveEvection() { $approve_id = input('post.id'); $status = input('post.status'); $remark = input('post.remark'); $res = ApproveService::approveEvection($approve_id, $this->user_id, $status, $remark); if (!$res['ret_val']) $this->error($res['msg']); $this->success('审批完成'); } }