RestActions.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. MWF.xApplication.BAM.Actions = MWF.xApplication.BAM.Actions || {};
  2. MWF.require("MWF.xDesktop.Actions.RestActions", null, false);
  3. MWF.xApplication.BAM.Actions.RestActions = new Class({
  4. initialize: function(){
  5. this.action = new MWF.xDesktop.Actions.RestActions("/Actions/action.json", "x_processplatform_assemble_bam", "x_component_BAM");
  6. },
  7. //getApplicationstub: function(success, failure, async){
  8. //this.action.invoke({"name": "getApplicationstub","async": async, "success": success, "failure": failure});
  9. //},
  10. //scalingApplication: function(success, failure, async){
  11. // this.action.invoke({"name": "scalingApplication","async": async, "success": success, "failure": failure});
  12. //},
  13. //scalingDepartment: function(success, failure, async){
  14. // this.action.invoke({"name": "scalingDepartment","async": async, "success": success, "failure": failure});
  15. //},
  16. //scalingPerson: function(success, failure, async){
  17. // this.action.invoke({"name": "scalingPerson","async": async, "success": success, "failure": failure});
  18. //},
  19. //-------------------------------------------------------
  20. summary: function(success, failure, async){
  21. this.action.invoke({"name": "summary","async": async, "success": success, "failure": failure});
  22. },
  23. loadCategory: function(success, failure, async){
  24. this.action.invoke({"name": "loadCategory","async": async, "success": success, "failure": failure});
  25. },
  26. loadRunning: function(success, failure, async){
  27. this.action.invoke({"name": "loadRunning","async": async, "success": success, "failure": failure});
  28. },
  29. loadOrganization: function(success, failure, async){
  30. this.action.invoke({"name": "loadOrganization","async": async, "success": success, "failure": failure});
  31. },
  32. //rankDepartment: function(success, failure, async){
  33. // this.scalingDepartment(function(json){
  34. // var data = this.getRankData(json.data);
  35. // if (success) success(data);
  36. // }.bind(this), failure, async);
  37. //},
  38. //rankPerson: function(success, failure, async){
  39. // this.scalingPerson(function(json){
  40. // var data = this.getRankData(json.data);
  41. // if (success) success(data);
  42. // }.bind(this), failure, async);
  43. //},
  44. getRankData: function(data){
  45. var taskDuration = data.map(function(item, idx){
  46. return {
  47. "name": item.name,
  48. "value": (item.count) ? Math.round((item.duration/item.count/60)*100)/100 : 0
  49. }
  50. });
  51. taskDuration.sort(function(a,b){ return b.value - a.value; });
  52. var taskElapsedCount = data.map(function(item, idx){
  53. return {
  54. "name": item.name,
  55. "value": item.expiredCount
  56. }
  57. });
  58. taskElapsedCount.sort(function(a,b){ return b.value - a.value; });
  59. var taskCompletedCount = data.map(function(item, idx){
  60. return {
  61. "name": item.name,
  62. "value": item.completedCount
  63. }
  64. });
  65. taskCompletedCount.sort(function(a,b){ return b.value - a.value; });
  66. var taskCompletedTimeliness = data.map(function(item, idx){
  67. return {
  68. "name": item.name,
  69. "value": (item.completedCount) ? Math.round(((item.completedCount-item.completedExpiredCount)/item.completedCount)*100)/100 : 0
  70. }
  71. });
  72. taskCompletedTimeliness.sort(function(a,b){ return b.value - a.value; });
  73. var taskTimeoutRate = data.map(function(item, idx){
  74. return {
  75. "name": (name) ? name(item) : item.name,
  76. "value": (item.count+item.completedCount) ? Math.round(((item.expiredCount+item.completedExpiredCount)/(item.count+item.completedCount))*100)/100 : 0
  77. }
  78. });
  79. taskTimeoutRate.sort(function(a,b){ return b.value - a.value; });
  80. return {
  81. "taskDuration": taskDuration.filter(function(item){return (item.value)}),
  82. "taskElapsedCount": taskElapsedCount.filter(function(item){return (item.value)}),
  83. "taskCompletedCount": taskCompletedCount.filter(function(item){return (item.value)}),
  84. "taskCompletedTimeliness": taskCompletedTimeliness.filter(function(item){return (item.value)}),
  85. "taskTimeoutRate": taskTimeoutRate.filter(function(item){return (item.value)}),
  86. };
  87. },
  88. getTaskContentData: function(data, name){
  89. var taskCount = data.map(function(item, idx){
  90. return {
  91. "name": (name) ? name(item) : item.name,
  92. "value": item.taskCount
  93. }
  94. });
  95. taskCount.sort(function(a,b){ return b.value - a.value; });
  96. var taskDuration = data.map(function(item, idx){
  97. return {
  98. "name": (name) ? name(item) : item.name,
  99. "value": (item.taskCount) ? Math.round((item.taskDuration/item.taskCount/60)*100)/100 : 0
  100. }
  101. });
  102. taskDuration.sort(function(a,b){ return b.value - a.value; });
  103. var taskElapsedCount = data.map(function(item, idx){
  104. return {
  105. "name": (name) ? name(item) : item.name,
  106. "value": item.taskExpiredCount
  107. }
  108. });
  109. taskElapsedCount.sort(function(a,b){ return b.value - a.value; });
  110. var taskTimeoutRate = data.map(function(item, idx){
  111. return {
  112. "name": (name) ? name(item) : item.name,
  113. "value": (item.taskCount) ? (item.taskExpiredCount/item.taskCount) : 0
  114. }
  115. });
  116. taskTimeoutRate.sort(function(a,b){ return b.value - a.value; });
  117. return {
  118. "taskCount": taskCount.filter(function(item){return (item.value)}),
  119. "taskDuration": taskDuration.filter(function(item){return (item.value)}),
  120. "taskElapsedCount": taskElapsedCount.filter(function(item){return (item.value)}),
  121. "taskTimeoutRate": taskTimeoutRate.filter(function(item){return (item.value)})
  122. };
  123. },
  124. getTaskCompletedContentData: function(data, name){
  125. var taskCompletedCount = data.map(function(item, idx){
  126. return {
  127. "name": (name) ? name(item) : item.name,
  128. "value": item.taskCompletedCount
  129. }
  130. });
  131. taskCompletedCount.sort(function(a,b){ return b.value - a.value; });
  132. var taskCompletedDuration = data.map(function(item, idx){
  133. return {
  134. "name": (name) ? name(item) : item.name,
  135. "value": (item.taskCompletedCount) ? Math.round((item.taskCompletedDuration/item.taskCompletedCount/60)*100)/100 : 0
  136. }
  137. });
  138. taskCompletedDuration.sort(function(a,b){ return b.value - a.value; });
  139. var taskCompletedElapsedCount = data.map(function(item, idx){
  140. return {
  141. "name": (name) ? name(item) : item.name,
  142. "value": item.taskCompletedExpiredCount
  143. }
  144. });
  145. taskCompletedElapsedCount.sort(function(a,b){ return b.value - a.value; });
  146. var taskTimeoutRate = data.map(function(item, idx){
  147. return {
  148. "name": (name) ? name(item) : item.name,
  149. "value": (item.taskCompletedCount) ? (item.taskCompletedExpiredCount/item.taskCompletedCount) : 0
  150. }
  151. });
  152. taskTimeoutRate.sort(function(a,b){ return b.value - a.value; });
  153. var taskTimelinessRate = data.map(function(item, idx){
  154. return {
  155. "name": (name) ? name(item) : item.name,
  156. "value": (item.taskCompletedCount) ? ((item.taskCompletedCount-item.taskCompletedExpiredCount)/item.taskCompletedCount) : 0
  157. }
  158. });
  159. taskTimelinessRate.sort(function(a,b){ return b.value - a.value; });
  160. return {
  161. "taskCompletedCount": taskCompletedCount.filter(function(item){return (item.value)}),
  162. "taskCompletedDuration": taskCompletedDuration.filter(function(item){return (item.value)}),
  163. "taskCompletedElapsedCount": taskCompletedElapsedCount.filter(function(item){return (item.value)}),
  164. "taskTimeoutRate": taskTimeoutRate.filter(function(item){return (item.value)}),
  165. "taskTimelinessRate": taskTimelinessRate.filter(function(item){return (item.value)})
  166. };
  167. },
  168. getWorkContentData: function(data, name){
  169. var workCount = data.map(function(item, idx){
  170. return {
  171. "name": (name) ? name(item) : item.name,
  172. "value": item.workCount
  173. }
  174. });
  175. workCount.sort(function(a,b){ return b.value - a.value; });
  176. var workDuration = data.map(function(item, idx){
  177. return {
  178. "name": (name) ? name(item) : item.name,
  179. "value": (item.workCount) ? Math.round((item.workDuration/item.workCount/60)*100)/100 : 0
  180. }
  181. });
  182. workDuration.sort(function(a,b){ return b.value - a.value; });
  183. var workElapsedCount = data.map(function(item, idx){
  184. return {
  185. "name": (name) ? name(item) : item.name,
  186. "value": item.workExpiredCount
  187. }
  188. });
  189. workElapsedCount.sort(function(a,b){ return b.value - a.value; });
  190. var workTimeoutRate = data.map(function(item, idx){
  191. return {
  192. "name": (name) ? name(item) : item.name,
  193. "value": (item.workCount) ? (item.workExpiredCount/item.workCount) : 0
  194. }
  195. });
  196. workTimeoutRate.sort(function(a,b){ return b.value - a.value; });
  197. return {
  198. "workCount": workCount.filter(function(item){return (item.value)}),
  199. "workDuration": workDuration.filter(function(item){return (item.value)}),
  200. "workElapsedCount": workElapsedCount.filter(function(item){return (item.value)}),
  201. "workTimeoutRate": workTimeoutRate.filter(function(item){return (item.value)})
  202. };
  203. },
  204. getWorkCompletedContentData: function(data, name){
  205. var workCompletedCount = data.map(function(item, idx){
  206. return {
  207. "name": (name) ? name(item) : item.name,
  208. "value": item.workCompletedCount
  209. }
  210. });
  211. workCompletedCount.sort(function(a,b){ return b.value - a.value; });
  212. var workCompletedDuration = data.map(function(item, idx){
  213. return {
  214. "name": (name) ? name(item) : item.name,
  215. "value": (item.taskCompletedCount) ? Math.round((item.workCompletedDuration/item.workCompletedCount/60)*100)/100 : 0
  216. }
  217. });
  218. workCompletedDuration.sort(function(a,b){ return b.value - a.value; });
  219. var workCompletedElapsedCount = data.map(function(item, idx){
  220. return {
  221. "name": (name) ? name(item) : item.name,
  222. "value": item.workCompletedExpiredCount
  223. }
  224. });
  225. workCompletedElapsedCount.sort(function(a,b){ return b.value - a.value; });
  226. var workTimeoutRate = data.map(function(item, idx){
  227. return {
  228. "name": (name) ? name(item) : item.name,
  229. "value": (item.workCompletedCount) ? (item.workCompletedExpiredCount/item.workCompletedCount) : 0
  230. }
  231. });
  232. workTimeoutRate.sort(function(a,b){ return b.value - a.value; });
  233. var workTimelinessRate = data.map(function(item, idx){
  234. return {
  235. "name": (name) ? name(item) : item.name,
  236. "value": (item.workCompletedCount) ? ((item.workCompletedCount-item.workCompletedExpiredCount)/item.workCompletedCount) : 0
  237. }
  238. });
  239. workTimelinessRate.sort(function(a,b){ return b.value - a.value; });
  240. return {
  241. "workCompletedCount": workCompletedCount.filter(function(item){return (item.value)}),
  242. "workCompletedDuration": workCompletedDuration.filter(function(item){return (item.value)}),
  243. "workCompletedElapsedCount": workCompletedElapsedCount.filter(function(item){return (item.value)}),
  244. "workTimeoutRate": workTimeoutRate.filter(function(item){return (item.value)}),
  245. "workTimelinessRate": workTimelinessRate.filter(function(item){return (item.value)})
  246. };
  247. },
  248. //monthly--------------------------------------------------------
  249. //loadMonthlyStartTaskByApplication: function(company, depat, person, success, failure, async){
  250. // var companyName = company || "(0)";
  251. // var departmentName = depat || "(0)";
  252. // var personName = person || "(0)";
  253. // this.action.invoke({"name": "loadMonthlyStartTaskByApplication","async": async, "parameter": {"companyName": companyName, "departmentName": departmentName, "personName": personName}, "success": success, "failure": failure});
  254. //},
  255. loadMonthly: function(type, sort, filter, success, failure, async){
  256. var actionName = "loadMonthly"+type.capitalize()+"By"+sort.type.capitalize();
  257. //var companyName = company || "(0)";
  258. //var departmentName = depat || "(0)";
  259. //var personName = person || "(0)";
  260. var parameter;
  261. debugger;
  262. if (sort.type=="activity" || sort.type=="application" || sort.type=="process"){
  263. parameter = {
  264. "companyName": filter.company || "(0)",
  265. "departmentName": filter.department || "(0)",
  266. "personName": filter.person || "(0)",
  267. "applicationId": sort.range.application,
  268. "processId": sort.range.process,
  269. "activityId": sort.range.activity
  270. };
  271. }else{
  272. parameter = {
  273. "companyName": sort.range.companyName,
  274. "departmentName": sort.range.departmentName,
  275. "personName": sort.range.personName,
  276. "applicationId": filter.application || "(0)",
  277. "processId": filter.process || "(0)",
  278. "activityId": filter.activity || "(0)"
  279. };
  280. }
  281. this.action.invoke({"name": actionName,"async": async, "parameter": parameter, "success": success, "failure": failure});
  282. }
  283. //loadMonthlyByProcess: function(type, sort, company, depat, person, success, failure, async){
  284. // var actionName = "loadMonthly"+type.capitalize()+"ByProcess";
  285. // var companyName = company || "(0)";
  286. // var departmentName = depat || "(0)";
  287. // var personName = person || "(0)";
  288. // this.action.invoke({"name": actionName,"async": async, "parameter": {"applicationId": sort.range.application, "companyName": companyName, "departmentName": departmentName, "personName": personName}, "success": success, "failure": failure});
  289. //}
  290. });