/** * 获取文件编码及文件信息 */ public function getfilesbyidAction() { // 获取参数 $request = $this->getRequest()->getParams(); $id = $request['id']; $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $myDept = $user_session->user_info['dept_id']; $nowDate = date('Y-m-d'); $files = new Dcc_Model_Files(); $record = new Dcc_Model_Record(); $upload = new Dcc_Model_Upload(); $codeModel = new Dcc_Model_Code(); $share = new Dcc_Model_Share(); $review = new Dcc_Model_Review(); $modelUser = new Application_Model_User(); $data = $files->getDataById($id); // [id, code, ver, file_id, file_name, file_path, file_view_path] $result = array(); $row0 = $data[0]; $names = explode(',', $row0['name']); $codes = explode(',', $row0['code']); $vers = explode(',', $row0['ver']); $description = explode('|', $row0['description']); $project_info = explode(',', $row0['project_info']); $final_codes = array(); $final_vers = array(); $final_names = array(); $final_descs = array(); $final_projs = array(); $k = 0; for ($i = 0; $i < count($names); $i++) { $sub_names = explode('|', $names[$i]); $final_codes[$k] = $codes[$i]; $final_vers[$k] = $vers[$i]; if (isset($description[$i]) && $description[$i]) { $final_descs[$k] = $description[$i]; } else { $final_descs[$k] = ""; } if (isset($project_info[$i]) && $project_info[$i]) { $final_projs[$k] = $project_info[$i]; } else { $final_projs[$k] = ""; } $final_names[$k] = $sub_names[0]; $k++; for ($j = 1; $j < count($sub_names); $j++) { $final_codes[$k] = $codes[$i]; $final_vers[$k] = $vers[$i]; $final_names[$k] = $sub_names[$j]; if (isset($description[$i]) && $description[$i]) { $final_descs[$k] = $description[$i]; } else { $final_descs[$k] = ""; } if (isset($project_info[$i]) && $project_info[$i]) { $final_projs[$k] = $project_info[$i]; } else { $final_projs[$k] = ""; } $k++; } } $catalog = new Product_Model_Catalog(); for ($i = 0; $i < count($data); $i++) { $paths = $this->getPathByName($data, trim($final_names[$i])); $row = $data[$i]; $result[$i]['id'] = $row['id']; $result[$i]['state'] = $row['state']; if ($final_descs[$i]) { $result[$i]['description'] = $final_descs[$i]; } else { // 获取描述 $descData = $codeModel->getJoinList("code = '{$final_codes[$i]}'", array(), array('description', 'project_no')); if (count($descData) > 0) { $result[$i]['description'] = $descData[0]['description']; if (!$final_projs[$i]) { $final_projs[$i] = $descData[0]['project_no']; } } } $result[$i]['project_no'] = $final_projs[$i]; if ($final_projs[$i]) { $projData = $catalog->getById($final_projs[$i]); if ($projData && $projData['model_internal']) { $result[$i]['project_name'] = $projData['model_internal']; } } $result[$i]['code'] = $final_codes[$i]; $result[$i]['ver'] = $final_vers[$i]; $result[$i]['file_id'] = $paths[0]; $result[$i]['file_name'] = $final_names[$i]; $result[$i]['file_path'] = $paths[1]; $result[$i]['file_view_path'] = $paths[2]; // 权限检查 // 有权限的情况:1、本人上传的文件 2、本人提交的文件评审 3、本人参与审核的文件评审 4、共享给我的 5、将要审核的审核人 6、文件管理员、BOM管理员、物料管理员 // 首先检查文件是否存在 $result[$i]['exists'] = true; if (!file_exists($paths[1])) { $result[$i]['exists'] = false; } $role = false; if ($modelUser->checkPermissionByRoleName('物料管理员') || $modelUser->checkPermissionByRoleName('文件管理员') || $modelUser->checkPermissionByRoleName('系统管理员') || $modelUser->checkPermissionByRoleName('BOM管理员')) { $role = true; } else { if ($row0['create_user'] == $user || $row0['update_user'] == $user) { $role = true; } else { if ($record->fetchAll("table_id = {$id} and handle_user = {$user} and table_name = 'oa_doc_files' and action = '审批'")->count() > 0) { $role = true; } else { if ($upload->fetchAll("id = " . $row['id'] . " and (create_user = {$user} or update_user = {$user})")->count() > 0) { $role = true; } else { if ($share->fetchAll("shared_id = " . $row['id'] . " and type = 'upload' and share_time_begin <= '{$nowDate}' and share_time_end >= '{$nowDate}' and (FIND_IN_SET({$user}, share_user) or FIND_IN_SET({$myDept}, share_dept))")->count() > 0) { $role = true; } else { if ($review->fetchAll("file_id = {$id} and FIND_IN_SET({$user}, plan_user) and type = 'files'")->count() > 0) { $role = true; } } } } } } $result[$i]['role'] = $role; } echo Zend_Json::encode($result); exit; }
/** * @abstract 添加新文件 * @return null */ public function saveAction() { // 返回值数组 $result = array('success' => true, 'result' => true, 'info' => '添加成功'); $request = $this->getRequest()->getParams(); $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $val = (object) $request; $files = new Dcc_Model_Files(); $review = new Dcc_Model_Review(); $code = new Dcc_Model_Code(); $upgrade = new Dcc_Model_Upgrade(); // 新增还是编辑 if ($val->id) { // 判断此次版本是否已存在 if ($files->fetchAll("id != {$val->id} and ver = '" . $val->ver . "' and code = '" . $val->code . "'")->count() > 0) { $result['result'] = false; $result['info'] = "文件“" . $val->code . "”的" . $val->ver . "版本已经存在"; echo Zend_Json::encode($result); exit; } $result['info'] = '修改成功'; $data = array('state' => $val->state, 'code' => $val->code, 'ver' => $val->ver, 'name' => $val->name, 'file_ids' => $val->file_ids, 'description' => $val->description, 'project_info' => $val->project_info, 'send_require' => isset($val->send_require) ? 1 : 0, 'remark' => $val->remark, 'tag' => $val->tag, 'archive_time' => $val->archive_time, 'update_time' => $now, 'update_user' => $user); $id = $val->id; $where = "id = " . $id; $up = false; if ($val->ver && $val->ver > 1.0) { $up = true; // 修改升版记录 $upgradeData = array('reason' => $val->reason, 'reason_type' => $val->reason_type, 'update_time' => $now, 'update_user' => $user); $upgradeWhere = "file_id = {$id}"; } // 更新旧版文件的状态为已作废 if ($val->ver != '1.0' && $val->state == 'Active') { $obsoluteWhere = "ver < '" . $val->ver . "' and code = '" . $val->code . "'"; $obsoluteData = array("state" => "Obsolete"); } $projectData = array("project_no" => $val->project_no); $projectWhere = "code= '" . $val->code . "'"; try { if (isset($obsoluteData) && isset($obsoluteWhere)) { $files->update($obsoluteData, $obsoluteWhere); } if ($up) { $upgrade->update($upgradeData, $upgradeWhere); } $files->update($data, $where); $code->update($projectData, $projectWhere); if ($val->state == 'Active' && isset($val->file_ids) && $val->file_ids != "") { // 更新文件状态为已归档 $uploadData = array("archive" => 1, "archive_time" => $now); $upload = new Dcc_Model_Upload(); // 获取上传文件id $ids = $val->file_ids; $uploadWhere = "id in ({$ids})"; $upload->update($uploadData, $uploadWhere); } if ($val->state == 'Return') { // 更改review状态 // 需更新的审核记录: 所有 $reviewWhere = "type = 'files' and file_id = {$id}"; // 审核情况更新数据 $reviewData = array("actual_user" => "", "finish_time" => null, "finish_flg" => 0); $review->update($reviewData, $reviewWhere); } if ($id) { $attrval = new Admin_Model_Formval(); // 自定义字段 foreach ($request as $field => $value) { if (stripos($field, "intelligenceField") !== false) { $attrId = str_replace("intelligenceField", "", $field); $menu = 'oa_doc_files_' . $id; $formval = array('attrid' => $attrId, 'value' => $value, 'menu' => $menu); $where = "attrid = " . $attrId . " and menu = '" . $menu . "'"; if ($attrval->fetchAll($where)->count() > 0) { // 更新 $attrval->update($formval, $where); } else { $attrval->insert($formval); } } } $record = new Dcc_Model_Record(); // 操作记录 $data = array('type' => "files", 'table_name' => "oa_doc_files", 'table_id' => $id, 'handle_user' => $user, 'handle_time' => $now, 'action' => "编辑", 'ip' => $_SERVER['REMOTE_ADDR'], 'remark' => isset($request['edit_info']) ? $request['edit_info'] : ''); $record->insert($data); } } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } echo Zend_Json::encode($result); exit; } else { // 判断此次版本是否已存在 if ($files->fetchAll("ver = " . $val->ver . " and code = '" . $val->code . "'")->count() > 0) { $result['result'] = false; $result['info'] = "文件“" . $val->code . "”的" . $val->ver . "版本已经存在"; echo Zend_Json::encode($result); exit; } $data = array('state' => $val->state, 'code' => $val->code, 'ver' => $val->ver, 'name' => $val->name, 'file_ids' => $val->file_ids, 'description' => $val->description, 'project_info' => $val->project_info, 'send_require' => isset($val->send_require) ? 1 : 0, 'remark' => $val->remark, 'tag' => $val->tag, 'archive_time' => $val->archive_time, 'create_time' => $now, 'create_user' => $user, 'update_time' => $now, 'update_user' => $user); // 更新旧版文件的状态为已作废 if ($val->ver != '1.0' && $val->state == 'Active') { $obsoluteWhere = "ver < '" . $val->ver . "' and code = '" . $val->code . "'"; $obsoluteData = array("state" => "Obsolete"); } try { $id = $files->insert($data); if ($id && $val->ver && $val->ver > 1.0) { // 升版记录 $upgradeData = array('file_id' => $id, 'reason' => $val->reason, 'reason_type' => $val->reason_type, 'create_time' => $now, 'create_user' => $user, 'update_time' => $now, 'update_user' => $user); $upgrade->insert($upgradeData); } if (isset($obsoluteData) && isset($obsoluteWhere)) { $files->update($obsoluteData, $obsoluteWhere); } if (isset($val->file_ids) && $val->file_ids != "") { // 更新文件状态为已归档 $uploadData = array("archive" => 1); $upload = new Dcc_Model_Upload(); // 获取上传文件id $ids = $val->file_ids; $uploadWhere = "id in ({$ids})"; $upload->update($uploadData, $uploadWhere); } if ($id) { $attrval = new Admin_Model_Formval(); // 自定义字段 foreach ($request as $field => $value) { if (stripos($field, "intelligenceField") !== false && $value) { $attrId = str_replace("intelligenceField", "", $field); $menu = 'oa_doc_files_' . $id; $formval = array('attrid' => $attrId, 'value' => $value, 'menu' => $menu); $attrval->insert($formval); } } $record = new Dcc_Model_Record(); // 操作记录 $data = array('type' => "files", 'table_name' => "oa_doc_files", 'table_id' => $id, 'handle_user' => $user, 'handle_time' => $now, 'action' => "新增", 'ip' => $_SERVER['REMOTE_ADDR']); $record->insert($data); } } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } echo Zend_Json::encode($result); exit; } }
/** * 保存文件编码 */ public function savecodeAction() { $request = $this->getRequest(); $id = $request->getParam('id'); $code = $request->getParam('code'); if ($id && $code) { $code = strtoupper($code); // 检查文件编码是否已经存在 $codeModel = new Dcc_Model_Code(); $data = $codeModel->fetchAll("code = '{$code}'")->toArray(); if ($data && count($data) > 0) { $result['success'] = false; $result['info'] = "文件编码已存在!"; echo Zend_Json::encode($result); exit; } $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $data = array('code' => $code, 'state' => 'Active', 'update_user' => $user, 'update_time' => $now); $where = "id = " . $id; $codeData = $codeModel->getById($id); try { $codeModel->update($data, $where); $record = new Dcc_Model_Record(); $review = new Dcc_Model_Review(); // 处理记录 $recordData = array("type" => "code_apply", "table_name" => "oa_doc_code", "table_id" => $id, "handle_user" => $user, "handle_time" => $now, "action" => "审批", "result" => '批准', "ip" => $_SERVER['REMOTE_ADDR']); // 增加记录 $record->insert($recordData); // 审核情况 $reviewData = array("actual_user" => $user, "finish_time" => $now, "finish_flg" => 1); $review->update($reviewData, "type='code_apply' and file_id = " . $id); // 发邮件 $type = "文件编码申请"; $subject = "文件编码申请审核"; $user_name = $user_session->user_info['user_name']; $to = $codeModel->getAdapter()->query("select group_concat(email) as mail_to from oa_employee where id =(select create_user from oa_doc_code where id = {$id})")->fetchObject(); $content = "<p>你有一个文件编码申请已分配,文件号:{$code}</p>"; $content .= "<p><b>文件描述:</b>" . $codeData['description'] . "</p><p><b>备注:</b>" . $codeData['remark'] . "</p><p><b>申请时间:</b>" . $codeData['create_time'] . "</p><p>请登录系统查看详情!</p>"; $mailData = array('type' => $type, 'subject' => $subject, 'to' => $to->mail_to, 'content' => $content, 'send_time' => $now, 'add_date' => $now); $mail = new Application_Model_Log_Mail(); $mailId = $mail->insert($mailData); if ($mailId) { $mail->send($mailId); } $result['success'] = true; $result['info'] = '分配成功'; echo Zend_Json::encode($result); exit; } catch (Exception $e) { $result['success'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } } }
/** * @abstract 文件升版 * @return null */ public function upgradeAction() { // 返回值数组 $result = array('success' => true, 'result' => true, 'info' => '保存成功'); $request = $this->getRequest()->getParams(); $now = date('Y-m-d H:i:s'); $user_session = new Zend_Session_Namespace('user'); $user = $user_session->user_info['employee_id']; $user_name = $user_session->user_info['user_name']; $val = (object) $request; $json = json_decode($request['json']); $code_file_code_id = $json->code_id; $code_file_code = $json->code; $code_file_file_id = $json->file_id; $code_file_file = $json->file; $code_file_desc = isset($json->code_file_desc) ? $json->code_file_desc : ''; $code_file_project_no = isset($json->code_file_project_no) ? $json->code_file_project_no : ''; $files = new Dcc_Model_Files(); $upload = new Dcc_Model_Upload(); $record = new Dcc_Model_Record(); $review = new Dcc_Model_Review(); $upgrade = new Dcc_Model_Upgrade(); $employee = new Hra_Model_Employee(); $mail = new Application_Model_Log_Mail(); $member = new Admin_Model_Member(); $code = $code_file_code[0]; $stepRows = array(); if (count($code) > 0 && $code) { $codeModel = new Dcc_Model_Code(); // 获取当前文件类别对应的流程ID $row = $codeModel->getTypeInfo("t1.code = '{$code}'"); $flow_id = $row['dev_flow_id']; if ($flow_id) { // 根据流程ID获取阶段 $flow = new Admin_Model_Flow(); $step = new Admin_Model_Step(); $flowRow = $flow->getRow($flow_id); $step_ids = $flowRow['step_ids']; if ($step_ids) { $stepRows = $step->getListByFlow($step_ids); $state = $stepRows[0]['step_name']; } } } // 获取所有文件的版本号 $vers = array(); foreach ($code_file_code as $c) { $d = $files->getAdapter()->query("select max(ver)+0.1 as ver from oa_doc_files where code = :code and state = 'Active' and del_flg = 0", array('code' => $c))->fetch(); $v = round($d['ver'], 1); if (strcmp($v, (int) $v) === 0) { $v .= ".0"; } $vers[] = $v; } // 新增还是编辑 if ($val->id) { $result['info'] = '修改成功'; $data = array('state' => isset($state) ? 'Reviewing' : 'Active', 'code' => implode(',', $code_file_code), 'name' => implode(',', $code_file_file), 'file_ids' => implode(',', $code_file_file_id), 'ver' => implode(',', $vers), 'description' => $code_file_desc, 'project_info' => implode(',', $code_file_project_no), 'remark' => $val->remark, 'tag' => $val->tag, 'update_time' => $now, 'update_user' => $user); $id = $val->id; $where = "id = " . $id; // 修改升版记录 $upgradeData = array('reason' => $val->reason, 'reason_type' => $val->reason_type, 'update_time' => $now, 'update_user' => $user); $upgradeWhere = "file_id = {$id}"; try { if ($id) { $upgrade->update($upgradeData, $upgradeWhere); $files->update($data, $where); $attrval = new Admin_Model_Formval(); // 自定义字段 foreach ($request as $field => $value) { if (stripos($field, "intelligenceField") !== false) { $attrId = str_replace("intelligenceField", "", $field); $menu = 'oa_doc_files_' . $id; $formval = array('attrid' => $attrId, 'value' => $value, 'menu' => $menu); $where = "attrid = " . $attrId . " and menu = '" . $menu . "'"; if ($attrval->fetchAll($where)->count() > 0) { // 更新 $attrval->update($formval, $where); } else { $attrval->insert($formval); } } } // 操作记录 $data = array('type' => "files", 'table_name' => "oa_doc_files", 'table_id' => $id, 'handle_user' => $user, 'handle_time' => $now, 'action' => "编辑", 'ip' => $_SERVER['REMOTE_ADDR']); $record->insert($data); // 审核流程 // 删除已存在的审核记录 $review->delete("type='files' and file_id = " . $id); // 把阶段信息插入review记录 $first = true; foreach ($stepRows as $s) { $plan_user = $s['user']; if ($s['dept']) { $plan_dept = $s['dept']; // 根据角色id和项目号获取用户成员列表 $roleid = $s['dept']; $codeTmp = $employee->getAdapter()->query("select project_no from oa_doc_code where code = '{$code}'")->fetchObject(); $projectno = $codeTmp->project_no; // 如果不存在项目号,则直接取角色中的用户 否则根据角色id和项目号获取roleset id $tmpUser = array(); $tmpBool = true; if ($projectno) { // 根据角色id和项目号获取roleset id $rolesetTmp = $employee->getAdapter()->query("select group_concat(id) as id from oa_product_catalog_roleset where active=1 and catalog_id='{$projectno}' and role_id in ( " . $roleid . ")")->fetchObject(); $rolesetid = $rolesetTmp->id; if ($rolesetid) { $tmpBool = false; $userTmp = $employee->getAdapter()->query("select group_concat(user_id) as ids from oa_product_catalog_roleset_member where roleset_id in ( " . $rolesetid . ")")->fetchObject(); $tmpUser = explode(',', $userTmp->ids); // 如果没有取到用户,还是使用默认用户 if (count($tmpUser) == 0) { $tmpBool = true; } } } if ($tmpBool) { foreach (explode(',', $plan_dept) as $role) { $tmpRole = $member->getMemberWithNoManager($role); foreach ($tmpRole as $m) { $tmpUser[] = $m['user_id']; } } } if (count($tmpUser) == 0 && !$plan_user) { $tmpUser = $member->getUserids("系统管理员"); } // user id 转换成employee id if (count($tmpUser) > 0) { $tmpUser = $employee->getAdapter()->query("select group_concat(employee_id) as users from oa_user where active = 1 and id in ( " . implode(',', $tmpUser) . ")")->fetchObject(); $users = $tmpUser->users; } // 获取角色所有人员 // $tmpUser = $employee->getAdapter()->query("select group_concat(id) as ids from oa_employee where dept_id in ( " . $plan_dept . ")")->fetchObject(); if ($users) { if ($plan_user) { $plan_user .= ","; } $plan_user .= $users; } $repeatUser = explode(',', $plan_user); $repeatUser = array_unique($repeatUser); $plan_user = implode(',', $repeatUser); } $reviewData = array('type' => "files", 'file_id' => $id, 'plan_dept' => $s['dept'], 'plan_user' => $plan_user, 'method' => $s['method'], 'return' => $s['return'], 'step_name' => $s['step_name'], 'step_ename' => $s['step_ename']); $review->insert($reviewData); // 邮件任务 if ($first) { $to = $employee->getAdapter()->query("select group_concat(email) as mail_to from oa_employee where id in ( " . $plan_user . ")")->fetchObject(); $content = "你有文件升版需要审核,<p><b>文件号:</b>" . implode(',', $code_file_code) . "</p><p><b>版本:</b>" . implode(',', $vers) . "</p><p><b>升版原因:</b>" . $val->reason . "</p><p><b>备注:</b>" . $val->remark . "</p><p><b>申请人:</b>" . $user_name . "</p><p><b>申请时间:</b>" . $now . "</p><p>请登录系统查看详情!</p>"; $mailData = array('type' => '升版文件', 'subject' => '升版文件评审', 'to' => $to->mail_to, 'cc' => '', 'content' => $content, 'send_time' => $now, 'add_date' => $now); $mailId = $mail->insert($mailData); if ($mailId) { $mail->send($mailId); } } $first = false; } // 没有审批流程,旧版文件自动作废 if (!isset($state)) { $sids = array($id); if (isset($sids) && count($sids) > 0) { if (count($code_file_code) > 0) { $codes = array(); foreach ($code_file_code as $c) { $codes[] = $c; } } if (isset($codes) && count($codes) > 0) { for ($i = 0; $i < count($codes); $i++) { $codes[$i] = "'" . $codes[$i] . "'"; } } $obsoluteWhere = " id not in (" . implode(',', $sids) . ") and code in (" . implode(',', $codes) . ")"; } $obsoluteData = array("state" => "Obsolete"); if (isset($obsoluteWhere)) { $files->update($obsoluteData, $obsoluteWhere); } // 更改文件状态为归档 $uploadData = array("archive" => 1, "archive_time" => $now); $uploadWhere = "id in (" . implode(',', $code_file_file_id) . ")"; // 更新文件 $upload->update($uploadData, $uploadWhere); } } } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } echo Zend_Json::encode($result); exit; } else { $data = array('state' => isset($state) ? 'Reviewing' : 'Active', 'code' => implode(',', $code_file_code), 'name' => implode(',', $code_file_file), 'file_ids' => implode(',', $code_file_file_id), 'ver' => implode(',', $vers), 'description' => $code_file_desc, 'project_info' => implode(',', $code_file_project_no), 'remark' => $val->remark, 'tag' => $val->tag, 'create_time' => $now, 'create_user' => $user, 'update_time' => $now, 'update_user' => $user); try { $id = $files->insert($data); if ($id) { // 升版记录 $upgradeData = array('file_id' => $id, 'reason' => $val->reason, 'reason_type' => $val->reason_type, 'create_time' => $now, 'create_user' => $user, 'update_time' => $now, 'update_user' => $user); $upgrade->insert($upgradeData); // 自定义字段 $attrval = new Admin_Model_Formval(); foreach ($request as $field => $value) { if (stripos($field, "intelligenceField") !== false && $value) { $attrId = str_replace("intelligenceField", "", $field); $menu = 'oa_doc_files_' . $id; $formval = array('attrid' => $attrId, 'value' => $value, 'menu' => $menu); $attrval->insert($formval); } } // 操作记录 $data = array('type' => "files", 'table_name' => "oa_doc_files", 'table_id' => $id, 'handle_user' => $user, 'handle_time' => $now, 'action' => "申请", 'ip' => $_SERVER['REMOTE_ADDR']); $record->insert($data); // 审核流程 // 把阶段信息插入review记录 $first = true; foreach ($stepRows as $s) { $plan_user = $s['user']; if ($s['dept']) { $plan_dept = $s['dept']; // 根据角色id和项目号获取用户成员列表 $roleid = $s['dept']; $codeTmp = $employee->getAdapter()->query("select project_no from oa_doc_code where code = '{$code}'")->fetchObject(); $projectno = $codeTmp->project_no; // 如果不存在项目号,则直接取角色中的用户 否则根据角色id和项目号获取roleset id $tmpUser = array(); $tmpBool = true; if ($projectno) { // 根据角色id和项目号获取roleset id $rolesetTmp = $employee->getAdapter()->query("select group_concat(id) as id from oa_product_catalog_roleset where active=1 and catalog_id='{$projectno}' and role_id in ( " . $roleid . ")")->fetchObject(); $rolesetid = $rolesetTmp->id; if ($rolesetid) { $tmpBool = false; $userTmp = $employee->getAdapter()->query("select group_concat(user_id) as ids from oa_product_catalog_roleset_member where roleset_id in ( " . $rolesetid . ")")->fetchObject(); $tmpUser = explode(',', $userTmp->ids); // 如果没有取到用户,还是使用默认用户 if (count($tmpUser) == 0) { $tmpBool = true; } } } if ($tmpBool) { foreach (explode(',', $plan_dept) as $role) { $tmpRole = $member->getMemberWithNoManager($role); foreach ($tmpRole as $m) { $tmpUser[] = $m['user_id']; } } } if (count($tmpUser) == 0 && !$plan_user) { $tmpUser = $member->getUserids("系统管理员"); } // user id 转换成employee id if (count($tmpUser) > 0) { $tmpUser = $employee->getAdapter()->query("select group_concat(employee_id) as users from oa_user where active = 1 and id in ( " . implode(',', $tmpUser) . ")")->fetchObject(); $users = $tmpUser->users; } // 获取角色所有人员 // $tmpUser = $employee->getAdapter()->query("select group_concat(id) as ids from oa_employee where dept_id in ( " . $plan_dept . ")")->fetchObject(); if ($users) { if ($plan_user) { $plan_user .= ","; } $plan_user .= $users; } $repeatUser = explode(',', $plan_user); $repeatUser = array_unique($repeatUser); $plan_user = implode(',', $repeatUser); } $reviewData = array('type' => "files", 'file_id' => $id, 'plan_dept' => $s['dept'], 'plan_user' => $plan_user, 'method' => $s['method'], 'return' => $s['return'], 'step_name' => $s['step_name'], 'step_ename' => $s['step_ename']); $review->insert($reviewData); // 邮件任务 if ($first) { $to = $employee->getAdapter()->query("select group_concat(email) as mail_to from oa_employee where id in ( " . $plan_user . ")")->fetchObject(); $content = "你有文件升版需要审核,<p><b>文件号:</b>" . implode(',', $code_file_code) . "</p><p><b>版本:</b>" . implode(',', $vers) . "</p><p><b>升版原因:</b>" . $val->reason . "</p><p><b>备注:</b>" . $val->remark . "</p><p><b>申请人:</b>" . $user_name . "</p><p><b>申请时间:</b>" . $now . "</p><p>请登录系统查看详情!</p>"; $mailData = array('type' => '升版文件', 'subject' => '升版文件评审', 'to' => $to->mail_to, 'cc' => '', 'content' => $content, 'send_time' => $now, 'add_date' => $now); $mailId = $mail->insert($mailData); if ($mailId) { $mail->send($mailId); } } $first = false; } // 没有审批流程,旧版文件自动作废 if (!isset($state)) { $sids = array($id); if (isset($sids) && count($sids) > 0) { if (count($code_file_code) > 0) { $codes = array(); foreach ($code_file_code as $c) { $codes[] = $c; } } if (isset($codes) && count($codes) > 0) { for ($i = 0; $i < count($codes); $i++) { $codes[$i] = "'" . $codes[$i] . "'"; } } $obsoluteWhere = " id not in (" . implode(',', $sids) . ") and code in (" . implode(',', $codes) . ")"; } $obsoluteData = array("state" => "Obsolete"); if (isset($obsoluteWhere)) { $files->update($obsoluteData, $obsoluteWhere); } // 更改文件状态为归档 $uploadData = array("archive" => 1, "archive_time" => $now); $uploadWhere = "id in (" . implode(',', $code_file_file_id) . ")"; // 更新文件 $upload->update($uploadData, $uploadWhere); } } } catch (Exception $e) { $result['result'] = false; $result['info'] = $e->getMessage(); echo Zend_Json::encode($result); exit; } echo Zend_Json::encode($result); exit; } }
public function getfilecodeAction() { $request = $this->getRequest()->getParams(); $whereSearch = "1=1"; foreach ($request as $k => $v) { if ($v) { if ($k == "search_state") { continue; } $col = str_replace('search_', '', $k); if ($col != $k) { // 查询条件 $whereSearch .= " and ifnull(t1." . $col . ",'') like '%" . $v . "%'"; } } } $filecode = new Dcc_Model_Code(); $data = $filecode->getArchivedCode($whereSearch); for ($i = 0; $i < count($data); $i++) { $data[$i]['create_time'] = strtotime($data[$i]['create_time']); $data[$i]['update_time'] = strtotime($data[$i]['update_time']); $data[$i]['active'] = $data[$i]['active'] == 1 ? true : false; } // 转为json格式并输出 echo Zend_Json::encode($data); exit; }