gdzc_relationCtrl.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. 'use strict';
  2. /**
  3. * controller for User Profile Example
  4. */
  5. // "$aside", "toaster", "api_bpm_domain", "api_configure_data", "api_cmdb", "api_configure_form",
  6. app.controller('gdzc_relationCtrl', ["$rootScope", "$scope", "$http", "$state", "$timeout", "$injector", '$parse', "$interval", "$modal", "$stateParams", "$aside", "SweetAlert", "toaster", "FileUploader", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_domain", "api_configure_data", "api_cmdb", "api_configure_form","api_cmdb3", function($rootScope, $scope, $http, $state, $timeout, $parse, $injector, $interval, $modal, $stateParams, $aside, SweetAlert, toaster, FileUploader, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_domain, api_configure_data, api_cmdb, api_configure_form,api_cmdb3) {
  7. $scope.ceshi="流程";
  8. $scope.langs = i18nService.getAllLangs();
  9. $scope.lang = 'zh-cn';
  10. i18nService.setCurrentLang($scope.lang);
  11. $scope.myData = [];
  12. var loginUser = $rootScope.user;
  13. var pdKey = $state.current.pdKey;
  14. $scope.gridOptions = {};
  15. $scope.gridOptions.data = 'myData';
  16. $scope.gridOptions.enableColumnResizing = true;
  17. $scope.gridOptions.enableFiltering = false;
  18. $scope.gridOptions.enableGridMenu = false;
  19. $scope.gridOptions.enableSelectAll = true;
  20. $scope.gridOptions.enableRowSelection = true;
  21. $scope.gridOptions.showGridFooter = true;
  22. $scope.gridOptions.showColumnFooter = false;
  23. $scope.gridOptions.fastWatch = true;
  24. $scope.gridOptions.enableSorting = true;
  25. $scope.gridOptions.useExternalSorting = true;
  26. $scope.gridOptions.useExternalFiltering = false;
  27. $scope.gridOptions.useExternalPagination = true;
  28. $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
  29. $scope.gridOptions.paginationPageSize = 10;
  30. $scope.gridOptions.multiSelect = true;
  31. var mun = $scope.gridOptions.paginationPageSize;
  32. $scope.gridOptions.rowTemplate = "<div ng-click=\"onDblClick(row)\" ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell></div>";
  33. $scope.gridOptions.rowIdentity = function (row) {
  34. return row.id;
  35. };
  36. $scope.gridOptions.getRowIdentity = function (row) {
  37. return row.id;
  38. };
  39. $scope.transferColor = function (item) {
  40. var color = "icon iconfont icon-zhengchang greenfont";
  41. if (item.colourInfo) {
  42. if (item.colourInfo.id == 1) {
  43. color = "icon iconfont icon-yiyuqi redfont";
  44. } else if (item.colourInfo.id == 2) {
  45. color = "iconfont icon-yuqixinxiu yellofont";
  46. }
  47. } else {
  48. // color = "white";
  49. }
  50. return color;
  51. }
  52. $scope.transfertip = function (item) {
  53. var tip = "正常";
  54. if (item.colourInfo) {
  55. if (item.colourInfo.id == 1) {
  56. tip = "逾期";
  57. } else if (item.colourInfo.id == 2) {
  58. tip = "即将逾期";
  59. }
  60. } else {
  61. // color = "white";
  62. }
  63. return tip;
  64. }
  65. $scope.transferstatus = function (item) {
  66. var statecolor = "#fc4c58";
  67. if (item.id == 2) { //待处理
  68. statecolor = "#fc4c58";
  69. } else if (item.id == 7) { //待审核
  70. statecolor = "#fcb44c";
  71. } else if (item.id == 3) { //请求重新指派
  72. statecolor = "#ebf902";
  73. } else if (item.id == 4) { //处理中
  74. statecolor = "#0aa5f5";
  75. } else if (item.id == 5) { //已解决
  76. statecolor = "#2edbb8";
  77. } else if (item.id == 6) { //已关闭
  78. statecolor = "#bbbbbb";
  79. }
  80. return statecolor;
  81. }
  82. $scope.gridOptions.columnDefs = [
  83. {
  84. name: 'danhao',
  85. displayName: '单号',
  86. width: '21%',
  87. cellTemplate: '<div>' +
  88. '<div class="ui-grid-cell-contents">{{row.entity.danhao}}</div>' +
  89. '</div>'
  90. },
  91. {
  92. name: 'zhuti',
  93. displayName: '主题',
  94. width: '13%',
  95. cellTemplate: '<div>' +
  96. '<div class="ui-grid-cell-contents">{{row.entity.zhuti}}</div>' +
  97. '</div>'
  98. },
  99. {
  100. name: 'fenlei',
  101. displayName: '分类',
  102. width: '10%',
  103. cellTemplate: '<div>' +
  104. '<div class="ui-grid-cell-contents">{{row.entity.fenlei}}</div>' +
  105. '</div>'
  106. },
  107. {
  108. name: 'shenqingren',
  109. displayName: '申请人',
  110. width: '8%',
  111. cellTemplate: '<div>' +
  112. '<div class="ui-grid-cell-contents">{{row.entity.shenqingren}}</div>' +
  113. '</div>'
  114. },
  115. {
  116. name: 'chuliren',
  117. displayName: '处理人',
  118. width: '9%',
  119. cellTemplate: '<div>' +
  120. '<div class="ui-grid-cell-contents">{{row.entity.chuliren}}</div>' +
  121. '</div>'
  122. },
  123. {
  124. name: 'liuchengleixing',
  125. displayName: '流程类型',
  126. width: '7%',
  127. cellTemplate: '<div>' +
  128. '<div class="ui-grid-cell-contents">{{row.entity.liuchengleixing}}</div>' +
  129. '</div>'
  130. },
  131. {
  132. name: 'chuangjiariqi',
  133. displayName: '创建时间',
  134. width: '15%',
  135. cellTemplate: '<div>' +
  136. '<div class="ui-grid-cell-contents">{{row.entity.chuangjiariqi}}</div>' +
  137. '</div>'
  138. },
  139. {
  140. name: 'lishishijian',
  141. displayName: '操作时间',
  142. width: '15%',
  143. cellTemplate: '<div>' +
  144. '<div class="ui-grid-cell-contents">{{row.entity.lishishijian}}</div>' +
  145. '</div>'
  146. },
  147. ];
  148. $scope.value = 10;
  149. $scope.decrement = function () {
  150. $scope.value = $scope.value - 1;
  151. };
  152. $scope.record = function () {
  153. api_text.record($rootScope.takes).then(function (data) {
  154. if (data.errno == 0) {
  155. $scope.busy = false;
  156. }
  157. })
  158. };
  159. $scope.parameters = null;
  160. $scope.open = function ($event) {
  161. $event.preventDefault();
  162. $event.stopPropagation();
  163. $scope.opened = !$scope.opened;
  164. };
  165. $scope.endOpen = function ($event) {
  166. $event.preventDefault();
  167. $event.stopPropagation();
  168. $scope.startOpened = false;
  169. $scope.endOpened = !$scope.endOpened;
  170. };
  171. $scope.startOpen = function ($event) {
  172. $event.preventDefault();
  173. $event.stopPropagation();
  174. $scope.endOpened = false;
  175. $scope.startOpened = !$scope.startOpened;
  176. };
  177. $scope.othcode = {};
  178. var items=[];
  179. $scope.selected = {
  180. items: []
  181. };
  182. var wt_data={};
  183. //列表排序
  184. $scope.gridOptions.onRegisterApi = function (gridApi) {
  185. $scope.gridApi = gridApi;
  186. var index = 0;
  187. var oldheader = {};
  188. gridApi.grid.sortColumn = function (gridApi) {
  189. if (oldheader.field) {
  190. if (oldheader.field == gridApi.field) {
  191. // index = 0;
  192. } else {
  193. index = 0;
  194. }
  195. }
  196. index++;
  197. oldheader = gridApi;
  198. var fildata = $scope.memoryfilterData;
  199. if (index % 3 == 0) {
  200. delete $scope.memoryfilterData.incident;
  201. fildata = $scope.memoryfilterData;
  202. } else if (index % 3 == 1) {
  203. if (fildata.incident) {
  204. if (gridApi.field == "acceptDate") {
  205. angular.extend(fildata.incident, { "sort": gridApi.field });
  206. } else {
  207. angular.extend(fildata.incident, { "sort": gridApi.field + " desc , _incident.acceptDate" });
  208. }
  209. } else {
  210. if (gridApi.field == "acceptDate") {
  211. angular.extend(fildata, { 'incident': { "sort": gridApi.field } });
  212. } else {
  213. angular.extend(fildata, { 'incident': { "sort": gridApi.field + " desc , _incident.acceptDate" } });
  214. }
  215. }
  216. } else if (index % 3 == 2) {
  217. if (fildata.incident) {
  218. if (gridApi.field == "acceptDate") {
  219. angular.extend(fildata.incident, { "sort": gridApi.field, "order": "asc" });
  220. } else {
  221. angular.extend(fildata.incident, { "sort": gridApi.field + " asc , _incident.acceptDate" });
  222. }
  223. } else {
  224. if (gridApi.field == "acceptDate") {
  225. angular.extend(fildata, { 'incident': { "sort": gridApi.field, "order": "asc" } });
  226. } else {
  227. angular.extend(fildata.incident, { "sort": gridApi.field + " asc , _incident.acceptDate" });
  228. }
  229. }
  230. // angular.extend(fildata, { 'incident': { "sort": gridApi.field, "order": "asc" } });
  231. }
  232. $scope.refreshData('expand-right', fildata);
  233. }
  234. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  235. var filtersData = $scope.memoryfilterData;
  236. filtersData.idx = newPage - 1;
  237. filtersData.sum = pageSize;
  238. $scope.refreshData('expand-right', filtersData);
  239. });
  240. gridApi.core.on.filterChanged($scope, function () {
  241. var grid = this.grid;
  242. if ($rootScope.user.group) {
  243. var filtersData = {
  244. idx: 0,
  245. sum: mun
  246. };
  247. } else {
  248. var filtersData = {
  249. idx: 0,
  250. sum: mun
  251. };
  252. }
  253. angular.forEach(grid.columns, function (item) {
  254. if (item.enableFiltering) {
  255. if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') {
  256. filtersData = $scope.memoryfilterData
  257. if (angular.isUndefined(filtersData['incident'])) {
  258. filtersData['incident'] = {};
  259. }
  260. if (item.field == 'requester.name') {
  261. filtersData['incident']['requester'] = {};
  262. filtersData.incident.requester['accountName'] = item.filters[0].term;
  263. } else if (item.field == 'handlingPersonnelUser.name') {
  264. filtersData['incident']['handlingPersonnelUser'] = {};
  265. filtersData.incident.handlingPersonnelUser['name'] = item.filters[0].term;
  266. } else if (item.field == 'requester.account') {
  267. filtersData['incident']['requester'] = {};
  268. filtersData.incident.requester['account'] = item.filters[0].term;
  269. } else if (item.field == 'acceptUser.name') {
  270. filtersData['incident']['acceptUser'] = {};
  271. filtersData.incident.acceptUser['name'] = item.filters[0].term;
  272. } else {
  273. filtersData['incident'][item.field] = item.filters[0].term;
  274. }
  275. }
  276. }
  277. });
  278. filtersData.idx = 0;
  279. $scope.memoryfilterData = filtersData;
  280. $scope.refreshData('expand-right', filtersData);
  281. });
  282. };
  283. var items=[];
  284. if ($stateParams.model) {
  285. if (JSON.parse($stateParams.model).searchType && JSON.parse($stateParams.model).searchType != null) {
  286. $scope.searchTypes = JSON.parse($stateParams.model).searchType;
  287. } else {
  288. $scope.searchTypes = "todo";
  289. }
  290. } else {
  291. $scope.searchTypes = "todo";
  292. }
  293. if ($rootScope.user.group) {
  294. var defaultFilterData = {
  295. "idx": 0,
  296. "sum": mun
  297. };
  298. } else {
  299. var defaultFilterData = {
  300. "idx": 0,
  301. "sum": mun
  302. };
  303. }
  304. if (angular.isDefined($rootScope.search) && angular.isDefined($rootScope.search.incident)) {
  305. defaultFilterData['searchType'] = $rootScope.search.incident;
  306. $scope.searchTypes = $rootScope.search.incident;
  307. }
  308. if ($rootScope['cmdbs'] != 'incident') { $rootScope.idx = 1 }
  309. if (angular.isDefined($rootScope.idx) && $rootScope.cmdbs != "false") {
  310. $rootScope['cmdbs'] = 'incident';
  311. defaultFilterData.idx = $rootScope.idx - 1;
  312. } else { $rootScope.cmdbs = ""; }
  313. $scope.ldloading = {};
  314. var guagua;
  315. var get_danhao={
  316. "idx":0,
  317. "sum":1000
  318. }
  319. $scope.shijian_qu=[];
  320. $scope.biangeng_qu=[];
  321. $scope.myData1=[];
  322. $scope.myData2=[];
  323. $scope.myData3=[];
  324. $scope.myData4=[];
  325. $scope.myData5=[];
  326. $scope.refreshData = function () {
  327. var pdKey = "assetConsumablesHistory";
  328. get_danhao['assetConsumablesHistory']={"assetConsumablesId":$stateParams.idd};
  329. $scope.incident_shuzu=[];
  330. $scope.change_shuzu=[];
  331. $scope.incident_time=[];
  332. $scope.change_time=[];
  333. // 请求操作历史列表获取事件单号和变更单号
  334. api_cmdb3.fetchDataList(pdKey, get_danhao).then(function (data) {
  335. guagua=data.list;
  336. // console.log(data.list);
  337. for(var i=0;i<data.list.length;i++){
  338. if(data.list[i].source==1){
  339. $scope.incident_shuzu.push(data.list[i].sourceId);//获取事件单号数组
  340. $scope.incident_time.push({danhao:data.list[i].sourceId,shijian:data.list[i].time})//获取事件时间单号数组对象
  341. }else if(data.list[i].source==2){
  342. $scope.change_shuzu.push(data.list[i].sourceId);//获取变更单号数组
  343. $scope.change_time.push({danhao:data.list[i].sourceId,shijian:data.list[i].time})//获取变更时间单号数组对象
  344. }
  345. }
  346. // 获取事件数据
  347. api_cmdb3.relation("incident", $scope.incident_shuzu).then(function (data1) {
  348. // console.log(data1.data);
  349. $scope.shijian_data=data1.data;
  350. // console.log($scope.shijian_data);
  351. if($scope.shijian_data!=undefined){
  352. for(var i=0;i<$scope.shijian_data.length;i++){
  353. $scope.shijian_qu.push({danhao:$scope.shijian_data[i].incidentsign,zhuti:$scope.shijian_data[i].title,fenlei:"事件",shenqingren:$scope.shijian_data[i].acceptUser.name,chuliren:$scope.shijian_data[i].handlingPersonnelUser.name,liuchengleixing:"事件流程",chuangjiariqi:$scope.shijian_data[i].acceptDate},)
  354. };
  355. };
  356. for(var i=0;i<$scope.shijian_qu.length;i++){
  357. for(var j=0;j<$scope.incident_time.length;j++){
  358. if($scope.shijian_qu[i].danhao==$scope.incident_time[j].danhao){
  359. $scope.shijian_qu[i]["lishishijian"]=$scope.incident_time[j].shijian;
  360. }
  361. }
  362. // $scope.myData3.push($scope.shijian_qu[i].danhao);
  363. $scope.myData1.push($scope.shijian_qu[i])
  364. }
  365. $scope.gridOptions['totalItems'] = $scope.myData.length;
  366. // $scope.myData=$scope.shijian_qu;
  367. // 获取变更数据
  368. api_cmdb3.relation("change", $scope.change_shuzu).then(function (data2) {
  369. // console.log(data2.data);
  370. $scope.biangeng_data=data2.data;
  371. // console.log($scope.biangeng_data)
  372. if($scope.biangeng_data!=undefined){
  373. for(var i=0;i<$scope.biangeng_data.length;i++){
  374. $scope.biangeng_qu.push({danhao:$scope.biangeng_data[i].changesign,zhuti:$scope.biangeng_data[i].title,fenlei:"变更",shenqingren:$scope.biangeng_data[i].applyPerson.name,chuliren:$scope.biangeng_data[i].responsiblePerson.name,liuchengleixing:"变更流程",chuangjiariqi:$scope.biangeng_data[i].registrationTime},)
  375. }
  376. };
  377. for(var i=0;i<$scope.biangeng_qu.length;i++){
  378. for(var j=0;j<$scope.change_time.length;j++){
  379. if($scope.biangeng_qu[i].danhao==$scope.change_time[j].danhao){
  380. $scope.biangeng_qu[i]["lishishijian"]=$scope.change_time[j].shijian;
  381. }
  382. }
  383. $scope.myData2.push($scope.biangeng_qu[i])
  384. }
  385. //事件单号
  386. for(var i=0;i<$scope.myData1.length;i++){
  387. $scope.myData3.push($scope.myData1[i].danhao)
  388. }
  389. //变更单号
  390. for(var i=0;i<$scope.myData2.length;i++){
  391. $scope.myData3.push($scope.myData2[i].danhao)
  392. }
  393. // 获取数组重复的索引
  394. for(var i=0;i<$scope.myData3.length;i++){
  395. if($scope.myData4.indexOf($scope.myData3[i])!==-1){
  396. $scope.myData5.push($scope.myData4.indexOf($scope.myData3[i]))
  397. }
  398. $scope.myData4.push($scope.myData3[i]);
  399. }
  400. // 事件数据
  401. for(var i=0;i<$scope.myData1.length;i++){
  402. $scope.myData.push($scope.myData1[i])
  403. }
  404. // 变更数据
  405. for(var i=0;i<$scope.myData2.length;i++){
  406. $scope.myData.push($scope.myData2[i])
  407. }
  408. for(var i=0;i<$scope.myData5.length;i++){
  409. delete $scope.myData[$scope.myData5[i]]
  410. }
  411. $scope.gridOptions['totalItems'] = $scope.myData.length;
  412. });
  413. });
  414. });
  415. };
  416. $scope.refreshData();
  417. }]);