"部门领导",'2'=>"办公室",'3'=>"业务主管部门",'4'=>"法律事务部", '5'=>"矿分管领导",'6'=>"矿长党委书记"]; protected function flowinit(){ } //提交时调用 protected function flowsubmit($na, $sm){ if ($sm = '提交') { $info = [ "advice_level1_leader"=>$this->flowarr[0]['nowcheckname'], "advice_level1_leader_id"=>$this->flowarr[0]['nowcheckid'] ]; m('sealapl')->update($info, "id = {$this->id}"); } } //单据判断条件从写$lx类型,$uid用户Id protected function flowbillwhere($lx, $uid){ $where = ''; // $this->rock->post('key'); $startDate = $this->rock->post("start_date"); $stopDate = $this->rock->post("stop_date"); // $status = $this->rock->post("status") ?? null; // $export_type = $this->rock->post("export_type"); // if ($uid == 'all') { $where .= 'and '.$this->adminid.' in (1, 28)'; } // 开始时间 if (!empty($startDate)) { $where .= " and office_date > '{$startDate}'"; } // // 结束时间 // if (!empty($stopDate)) { // $where .= " and office_date < '{$stopDate}'"; // } // // 审核完成 // $where .= " and status = 1"; return [ 'where' => $where, 'order'=>'status, office_date desc, id desc' ]; } //读取印章保管人来审批 protected function flowcheckname($num) { // 自定义审核人 if (strpos($num, 'approve') === 0) { // $index = substr($num, -1); // if ($index == 4) { //// $sid = $this->rs['advice_level'.$index.'_leader_id']; //// $sna = $this->rs['advice_level'.$index.'_leader']; // } else { // $sid = $this->rs['advice_level'.$index.'_leader_id']; // $sna = $this->rs['advice_level'.$index.'_leader']; // return array($sid, $sna); // } } } //展示时替换一下 public function flowrsreplace($rs, $lx=0) { // if (empty($this->id)) $this->id = $rs['id']; // if (empty($rs['id'])) $rs['id'] = $this->id; $rs['office_date'] = date("Y-m-d", strtotime($rs['office_date'])); $rs['date'] = empty($rs['office_date']) ? $rs['applydt'] : $rs['office_date']; $rs['date_index'] = substr($rs['applydt'],0,4); $sqlStr = "SELECT t.* FROM ( -- 子查询,为每个step选取最新的时间对应的记录 SELECT step, MAX(optdt) AS max_optdt FROM zqoa_flow_log WHERE mid = {$rs['id']} AND `status` = 1 AND `table` = 'sealapl' GROUP BY step ) AS subquery JOIN zqoa_flow_log AS t ON subquery.step = t.step AND subquery.max_optdt = t.optdt WHERE t.mid = {$rs['id']} AND t.`status` = 1 AND t.`table` = 'sealapl'"; // 未审核完成时,设定签名为空 $flow_arr = $this->db->getall($sqlStr); $flow_dict = []; foreach ($flow_arr as $key=>$value) { $flow_dict[$value['name']] = $value; } if (!isset($flow_dict["部门领导审批"])) { $rs['advice_level1_leader'] = null; $rs['advice_level1'] = null; $rs['advice_level3_leader'] = null; $rs['advice_level3'] = null; } if (!isset($flow_dict["办公室审批"])) { $rs['advice_level2_leader'] = null; $rs['advice_level2'] = null; } // if (!isset($flow_dict["业务主管部门审批"])) { // $rs['advice_level3_leader'] = null; // $rs['advice_level3'] = null; // } if (!isset($flow_dict["法律事务部审批"])) { $rs['advice_level4_leader'] = null; $rs['advice_level4'] = null; } if (!isset($flow_dict["矿分管领导审批"])) { $rs['advice_level5_leader'] = null; $rs['advice_level5'] = null; } if (!isset($flow_dict["矿长党委书记审批"])) { $rs['advice_level6_leader'] = null; $rs['advice_level6'] = null; } $rs['advice_leader_max'] = empty($rs['advice_level6_leader']) ? $rs['advice_level5_leader'] : $rs['advice_level6_leader']; $flow_info = $this->flogmodel->getone("mid={$rs['id']} and step=1 and status=1 and `table` = 'sealapl'", 'checkname', 'id desc'); $rs['dept_manager'] = $flow_info ? $flow_info['checkname'] : null; if (!empty($rs['opinion_dept'])) { $dept = $rs['opinion_dept']; // 自动加需要xx部门审核 // 办公室需要审核部门 /* $examine_dept_arr = explode(',',$dept); $examine_info = ''; foreach ($examine_dept_arr as $v) { $examine_info .= $this->examine_dept_dic[$v].'、'; } if (!empty($examine_info)) { $examine_info = substr($examine_info, 0, strlen($examine_info) - 3); $examine_info = '需要“'.$examine_info.'”审核。'; } if (!empty($rs['advice_level2'])) { $rs['advice_level2'] = $rs['advice_level2'].'
'.$examine_info; } else { $rs['advice_level2'] = $examine_info; } */ // 列表-审批人: // if ($dept == 1) { // $flow_info = $this->flogmodel->getone("mid={$rs['id']} and step=3 and status=1 and `table` = 'sealapl'", 'checkname', 'id desc'); // $rs['advice_level1_applyer'] = $flow_info ? $flow_info['checkname'] : null; // } else if ($dept == 2) { // // } else if ($dept == 3) { // $flow_info = $this->flogmodel->getone("mid={$rs['id']} and step=3 and status=1 and `table` = 'sealapl'", 'checkname', 'id desc'); // $rs['advice_level3_applyer'] = $flow_info ? $flow_info['checkname'] : null; // } else if ($dept == 4) { // $flow_info = $this->flogmodel->getone("mid={$rs['id']} and step=3 and status=1 and `table` = 'sealapl'", 'checkname', 'id desc'); // $rs['advice_level4_applyer'] = $flow_info ? $flow_info['checkname'] : null; // } } // 办公室审核人 $flow_info = $this->flogmodel->getone("mid={$rs['id']} and step=2 and status=1 and `table` = 'sealapl'", 'checkname', 'id desc'); $rs['advice_level2_leader'] = $flow_info ? $flow_info['checkname'] : null; // 印章专管人 $seal = m('seal')->getone("id = {$rs['seal_name']}"); $rs['office_applyer'] = $seal['specialized']; $rs['seal_name'] = $seal['name']; // 流程状态 $rs['state_info'] = $this->getApproval($rs['nowcheckname'] ?? ''); // 当前审核人 // 详情编号展示 if ($rs['date'] == '1970-01-01') { $rs['date'] = ""; $date = $rs['applydt']; } else { $date = $rs['date']; } $year = date("Y", strtotime($date)); $month = date("m", strtotime($date)); $this_month = date("Y-m", strtotime($date)); $last_month = date("Y-m", strtotime("-1 month", strtotime($date))); $this_month_max_id = $this->getone("DATE_FORMAT(applydt,'%Y-%m') = '{$this_month}'", "max(id) as id")['id']; $last_month_max_id = $this->getone("DATE_FORMAT(applydt,'%Y-%m') = '{$last_month}'", "max(id) as id")['id']; $this_month_max_id = empty($last_month_max_id) ? 2 : $this_month_max_id; $rs['year'] = $year; $rs['month'] = $month; $rs['num'] = ($rs['id'] - (empty($last_month_max_id) ? $this_month_max_id - 2: $last_month_max_id)); return $rs; } // 审核样式 public function getApproval($names) { if (empty($names)) { $html = '已审核'; return $html; } else { $html = '待审核
审核人:'.$names.''; return $html; } } public function inputtitle() { return "枣泉煤矿用印审批表"; } protected function flowdatalog($arr) { $arr['title'] = $this->inputtitle(); return $arr; } // $ors当前单据操作信息,$crs提交过来的信息 public function flowoptmenu($ors, $crs) { if ($ors['num'] == 'dept_process') { } } //审核之前调用$zt 状态, $sm说明 protected function flowcheckbefore($zt, $sm, $ufied) { if ($zt == 1) { $nodes_old = $this->rs['notes']; if (isset($this->nowcourse['step'])) { if (empty($sm)) $sm = '同意'; $step_name = $this->nowcourse['name']; $info = ""; if ($step_name == '部门领导审批') { $info = [ "advice_level1"=>$sm, "advice_level1_leader"=>$this->rock->adminname, "advice_level1_leader_id"=>$this->rock->adminid, "advice_level3"=>$sm, "advice_level3_leader"=>$this->rock->adminname, "advice_level3_leader_id"=>$this->rock->adminid, // "notes"=>'部门领导-'.$this->rock->adminname.":".$sm ]; } else if ($step_name == '办公室审批') { $date = date('Y-m-d H:i:s'); // 办公室处理日期 // 获取当月最大id数据 $yearMon = date("Y-m", strtotime($date)); $maxInfo = $this->getone("DATE_FORMAT(office_date,'%Y-%m') = '{$yearMon}' and status = 1 and seal_name = {$this->rs['seal_name']}", "max(year_num) as id"); $max_year_num = 1; if (isset($maxInfo['id'])) { $max_year_num = $maxInfo['id'] + 1; } $info = [ "advice_level2"=>$sm, "advice_level2_leader"=>$this->rock->adminname, "advice_level2_leader_id"=>$this->rock->adminid, "office_date"=>$date, "year_num" => $max_year_num // "notes"=>$nodes_old.(empty($nodes_old) ? "" : "
").'办公室-'.$this->rock->adminname.":".$sm ]; } else if ($step_name == '业务主管部门审批') { $info = [ "advice_level3"=>$sm, "advice_level3_leader"=>$this->rock->adminname, "advice_level3_leader_id"=>$this->rock->adminid, // "notes"=>$nodes_old.(empty($nodes_old) ? "" : "
").'业务主管部门-'.$this->rock->adminname.":".$sm ]; } else if ($step_name == '法律事务部审批') { $info = [ "advice_level4"=>$sm, "advice_level4_leader"=>$this->rock->adminname, "advice_level4_leader_id"=>$this->rock->adminid, // "notes"=>$nodes_old.(empty($nodes_old) ? "" : "
").'法律事务部-'.$this->rock->adminname.":".$sm ]; } else if ($step_name == '矿分管领导审批') { $info = [ "advice_level5"=>$sm, "advice_level5_leader"=>$this->rock->adminname, "advice_level5_leader_id"=>$this->rock->adminid, // "notes"=>$nodes_old.(empty($nodes_old) ? "" : "
").'矿分管领导-'.$this->rock->adminname.":".$sm ]; } else if ($step_name == '矿长党委书记审批') { $info = [ "advice_level6"=>$sm, "advice_level6_leader"=>$this->rock->adminname, "advice_level6_leader_id"=>$this->rock->adminid, // "notes"=>$nodes_old.(empty($nodes_old) ? "" : "
").'矿长党委书记-'.$this->rock->adminname.":".$sm ]; } if (!empty($info)) m('sealapl')->update($info,"id={$this->id}"); } // if ($this->nowcourse['step'] == 3 && $this->nowcourse['name'] == '负责部门审批') { // $opinion_dept = $this->rs['opinion_dept']; // if ($opinion_dept == 1) { // m('sealapl')->update(["advice_level1"=>$sm],"id={$this->id}"); // } else if ($opinion_dept == 2) { // m('sealapl')->update(["advice_level2"=>$sm],"id={$this->id}"); // } else if ($opinion_dept == 3) { // m('sealapl')->update(["advice_level3"=>$sm],"id={$this->id}"); // } else if ($opinion_dept == 4) { // m('sealapl')->update(["advice_level4"=>$sm],"id={$this->id}"); // } // } } // if(isset($this->nowcourse['step']) && !empty($sm)) { // $info_old = $this->rs['notes']; // $info = $this->nowcourse['step'].'.'.$this->adminname.":".$sm."\n"; // $info = $info_old.$info; // $info = substr($info, 0, strlen($info)-1); // m('sealapl')->update(["notes"=>$info],"id={$this->id}"); // } } }