Пример #1
0
 /**
  * @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;
     }
 }
Пример #2
0
 /**
  * 保存文件编码
  */
 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;
         }
     }
 }