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(); $updbom = new Product_Model_Updbom(); // 查询条件 // 类型 $myType = ""; if (isset($request['mytype'])) { $myType = $request['mytype']; } // 获取物料数据 $data = $updbom->getMy($myType, $whereSearch, $user, $start, $limit); $totalCount = $updbom->getMyCount($myType, $whereSearch, $user); for ($i = 0; $i < count($data); $i++) { $upd_type = $data[$i]['upd_type']; if ($upd_type == 'ECO') { $bomflg = "ecobom"; } else { if ($upd_type == 'DEV') { $bomflg = "devbom"; } } $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 = $updbom->getAdapter()->query("select group_concat(concat(code,' V', ver)) as bom from {$table} where type='{$upd_type}' and 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'], $bomflg); 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]['replacea'] = $data[$i]['replace']; $data[$i]['record'] = $record->getHis($data[$i]['id'], $bomflg); } // 排序 $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; }