コード例 #1
0
ファイル: NewbomController.php プロジェクト: xindalu/evolve
 public function getlistAction()
 {
     $request = $this->getRequest()->getParams();
     $limit = $request['limit'];
     $start = $request['start'];
     $fa = new Product_Model_Fa();
     $db = $fa->getAdapter();
     $whereSearch = "1=1";
     //        if(isset($request['search_state']) && $request['search_state'] != 'Active') {
     //        	$whereSearch = " t1.state != 'Active'";
     //        }
     foreach ($request as $k => $v) {
         if ($v) {
             if ($k == 'search_key') {
                 $whereSearch .= " and (ifnull(t1.remark,'') like '%{$v}%' or ifnull(t3.cname,'') like '%{$v}%' or ifnull(t1.description,'') like '%{$v}%')";
             } else {
                 if ("search_fa" == $k && $v) {
                     $nid = "";
                     $faData = $db->query("select group_concat(nid) as nid from oa_product_bom_fa_dev where code like '%{$v}%'")->fetchObject();
                     if ($faData && $faData->nid) {
                         $nid = $faData->nid;
                     }
                     if (!$nid) {
                         $nid = "0";
                     }
                     $whereSearch .= " and t1.id in ({$nid})";
                 } else {
                     if ("search_son" == $k && $v) {
                         $nid = "";
                         $sonData = $db->query("select group_concat(nid) as nid from oa_product_bom_son_dev where code like '%{$v}%'")->fetchObject();
                         if ($sonData && $sonData->nid) {
                             $nid = $sonData->nid;
                         }
                         if (!$nid) {
                             $nid = "0";
                         }
                         $whereSearch .= " and t1.id in ({$nid})";
                     } else {
                         $col = str_replace('search_', '', $k);
                         if ($col != $k) {
                             // 查询条件
                             $whereSearch .= " and ifnull(t1." . $col . ",'') like '%" . $v . "%'";
                         }
                     }
                 }
             }
         }
     }
     $user_session = new Zend_Session_Namespace('user');
     $user = $user_session->user_info['employee_id'];
     $materiel = new Product_Model_Materiel();
     $type = new Product_Model_Type();
     $record = new Dcc_Model_Record();
     $flow = new Admin_Model_Flow();
     $step = new Admin_Model_Step();
     $share = new Dcc_Model_Share();
     $type = new Dcc_Model_Type();
     $review = new Dcc_Model_Review();
     $employee = new Hra_Model_Employee();
     $dept = new Hra_Model_Dept();
     $newbom = new Product_Model_Newbom();
     // 查询条件
     // 类型
     $myType = "";
     if (isset($request['mytype'])) {
         $myType = $request['mytype'];
     }
     // 获取物料数据
     $data = $newbom->getMy($myType, $whereSearch, $user, $start, $limit);
     $totalCount = $newbom->getMyCount($myType, $whereSearch, $user);
     for ($i = 0; $i < count($data); $i++) {
         $mytype = 2;
         if ($data[$i]['create_user'] == $user) {
             $mytype = 1;
         }
         $data[$i]['create_time'] = strtotime($data[$i]['create_time']);
         $data[$i]['archive_time'] = strtotime($data[$i]['archive_time']);
         // 获取BOM
         $table = "oa_product_bom_fa_dev";
         $bomData = $newbom->getAdapter()->query("select group_concat(code) as bom from {$table} where nid = " . $data[$i]['id'])->fetchObject();
         $data[$i]['bom'] = $bomData->bom;
         // 增加审核状态
         $reviewState = "";
         $step_name = "";
         if ($data[$i]['state'] == 'Active') {
             $reviewState = "已归档";
         } else {
             if ($data[$i]['state'] == 'Reviewing') {
                 // 查询当前审核状态
                 // 查询所有审核阶段
                 $reviewRows = $review->getList("file_id = " . $data[$i]['id'], "bom");
                 if (count($reviewRows) > 0) {
                     $first = true;
                     foreach ($reviewRows as $row) {
                         if ($row['finish_flg'] == 1) {
                             if ($step_name) {
                                 $step_name .= "->";
                             }
                             $step_name .= $row['step_name'];
                         } else {
                             if ($step_name) {
                                 $step_name .= "->";
                             }
                             // 第一条未审核记录就是当前待审核记录
                             if ($first) {
                                 $first = false;
                                 $step_name .= "<b>" . $row['step_name'] . "</b>";
                                 $reviewRow = $row;
                                 $actual_user = explode(',', $reviewRow['actual_user']);
                                 $planUser = $reviewRow['plan_user'];
                                 $method = $reviewRow['method'];
                                 $plan_user = explode(',', $planUser);
                                 $diff = array_diff($plan_user, $actual_user);
                                 foreach ($diff as $u) {
                                     if (!$u) {
                                         continue;
                                     }
                                     if ($u == $user) {
                                         $mytype = 3;
                                     }
                                     $e = $employee->fetchRow("id = {$u}");
                                     if ($reviewState) {
                                         $reviewState .= ", ";
                                     }
                                     $reviewState .= $e['cname'] . ":未审核";
                                 }
                                 foreach ($actual_user as $u) {
                                     if (!$u) {
                                         continue;
                                     }
                                     $e = $employee->fetchRow("id = {$u}");
                                     if ($reviewState) {
                                         $reviewState .= ", ";
                                     }
                                     $reviewState .= $e['cname'] . ":已审核";
                                 }
                             } else {
                                 $step_name .= $row['step_name'];
                             }
                         }
                     }
                 }
             } else {
                 if ($data[$i]['state'] == 'Obsolete') {
                     $reviewState = "已作废";
                 } else {
                     if ($data[$i]['state'] == 'Return') {
                         $reviewState = "退回";
                     } else {
                         if ($data[$i]['state'] == 'Draft') {
                             $reviewState = "草稿";
                         } else {
                             $reviewState = $data[$i]['state'];
                         }
                     }
                 }
             }
         }
         $data[$i]['step_name'] = $step_name;
         $data[$i]['review_state'] = $reviewState;
         $data[$i]['mytype'] = $mytype;
         $data[$i]['record'] = $record->getHis($data[$i]['id'], 'bom');
     }
     // 排序
     $dataT3 = array();
     $dataT2 = array();
     $dataT1 = array();
     for ($i = 0; $i < count($data); $i++) {
         if ($data[$i]['mytype'] == 3) {
             $dataT3[] = $data[$i];
         } else {
             if ($data[$i]['mytype'] == 2) {
                 $dataT2[] = $data[$i];
             } else {
                 $dataT1[] = $data[$i];
             }
         }
     }
     $data = array_merge($dataT3, $dataT1, $dataT2);
     $resutl = array("totalCount" => $totalCount, "topics" => $data);
     // 转为json格式并输出
     echo Zend_Json::encode($resutl);
     exit;
 }