CurrentTaskIndex.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. var refreshGirdData;
  2. var logbegin = '';
  3. var logend = '';
  4. var StartTimeBegin = '';
  5. var StartTimeend = '';
  6. var EndTimeBegin = '';
  7. var EndTimeend = '';
  8. var selectRowsData;
  9. var MsgData = '';
  10. var TaskType = 0;
  11. var bootstrap = function ($, learun) {
  12. "use strict";
  13. var psuid = "";
  14. var page = {
  15. init: function () {
  16. page.initGird();
  17. page.bind();
  18. },
  19. bind: function () {
  20. $('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
  21. // 调用后台查询
  22. // queryJson 查询条件
  23. var date = $('#lr_search_date_datesearch').html();
  24. if (date == '') {
  25. logbegin = '';
  26. logend = '';
  27. }
  28. var starttime = $('#lr_search_date_StartTime').html();
  29. if (starttime == '') {
  30. StartTimeBegin = '';
  31. StartTimeend = '';
  32. }
  33. var endtime = $('#lr_search_date_EndTime').html();
  34. if (endtime == '') {
  35. EndTimeBegin = '';
  36. EndTimeend = '';
  37. }
  38. //queryJson["AddTimeFrom"] = logbegin;
  39. //queryJson["AddTimeTo"] = logend;
  40. queryJson["ID"] = $("#ID").val();
  41. queryJson["BarCode"] = $("#BarCode").val();
  42. queryJson["MaterialCode"] = $("#MaterialCode").val();
  43. queryJson["AddrFrom"] = $("#AddrFrom").val();
  44. queryJson["AddrTo"] = $("#AddrTo").val();
  45. queryJson["AddrNext"] = $("#AddrNext").val();
  46. queryJson["WmsTask"] = $("#WmsTask").val();
  47. queryJson["AgvTaskID"] = $("#AgvTaskID").val();
  48. //queryJson["StartTimeBegin"] = StartTimeBegin;
  49. //queryJson["StartTimeEnd"] = StartTimeend;
  50. //queryJson["EndTimeBegin"] = EndTimeBegin;
  51. //queryJson["EndTimeEnd"] = EndTimeend;
  52. queryJson["AddTimeFrom"] = $("#AddTimeFrom").val();
  53. queryJson["AddTimeTo"] = $("#AddTimeTo").val();
  54. queryJson["StartTimeBegin"] = $("#StartTimeBegin").val();
  55. queryJson["StartTimeEnd"] = $("#StartTimeEnd").val();
  56. queryJson["EndTimeBegin"] = $("#EndTimeBegin").val();
  57. queryJson["EndTimeEnd"] = $("#EndTimeEnd").val();
  58. queryJson["Type"] = $("#Type").lrselectGet();
  59. queryJson["BusType"] = $("#BusType").lrselectGet();
  60. queryJson["Status"] = $("#Status").lrselectGet();
  61. queryJson["OutType"] = $("#OutType").lrselectGet();
  62. queryJson["Tunnel"] = $("#Tunnel").val();
  63. queryJson["Floor"] = $("#Floor").val();
  64. queryJson["Device"] = $("#Device").val();
  65. queryJson["AGVID"] = $("#AGVID").val();
  66. queryJson["ProdLine"] = $("#ProdLine").lrselectGet();
  67. page.search({ queryJson: JSON.stringify(queryJson) });
  68. }, 250);
  69. // 查询
  70. $('#btn_Search').on('click', function () {
  71. var keyword = $('#txt_Keyword').val();
  72. page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val() }) });
  73. });
  74. // 刷新
  75. $('#lr_refresh').on('click', function () {
  76. location.reload();
  77. });
  78. // 取消任务
  79. $('#lr_cancel').on('click', function () {
  80. selectRowsData = $('#gridtable').jfGridGet("rowdata");
  81. if (selectRowsData.length == 0) {
  82. learun.alert.error('未选择行!');
  83. return false;
  84. }
  85. var url = weburl + "api/WCS/handleTask";
  86. var isContainAgv = false;
  87. for (var i = 0; i < selectRowsData.length; i++) {
  88. if (selectRowsData[i].StatusName.indexOf('AGV') >= 0) {
  89. isContainAgv = true;
  90. break;
  91. }
  92. }
  93. TaskType = 1;
  94. MsgData = '是否确认取消任务!';
  95. if (isContainAgv) {
  96. MsgData = "您选择的数据包含AGV任务状态,(请注意确认AGV任务状态),是否确认取消任务!";
  97. }
  98. learun.layerForm({
  99. id: 'form',
  100. title: '取消任务',
  101. url: top.$.rootUrl + '/HJManager/Tasks/Form',
  102. width: 700,
  103. height: 300,
  104. callBack: function (id) {
  105. return top[id].acceptClick(refreshGirdData);
  106. }
  107. });
  108. });
  109. //完成任务
  110. $('#lr_done').on('click', function () {
  111. selectRowsData = $('#gridtable').jfGridGet("rowdata");
  112. if (selectRowsData.length == 0) {
  113. learun.alert.error('未选择行!');
  114. return false;
  115. }
  116. TaskType = 2;
  117. MsgData = '是否确认完成任务!';
  118. learun.layerForm({
  119. id: 'form',
  120. title: '完成任务',
  121. url: top.$.rootUrl + '/HJManager/Tasks/Form',
  122. width: 700,
  123. height: 300,
  124. callBack: function (id) {
  125. return top[id].acceptClick(refreshGirdData);
  126. }
  127. });
  128. });
  129. //重下AGV任务
  130. $('#lr_reagvtask').on('click', function () {
  131. selectRowsData = $('#gridtable').jfGridGet("rowdata");
  132. if (selectRowsData.length == 0) {
  133. learun.alert.error('未选择行!');
  134. return false;
  135. }
  136. var isNotAgv = false;
  137. for (var i = 0; i < selectRowsData.length; i++) {
  138. if (selectRowsData[i].StatusName != 'AGV执行中') {
  139. isNotAgv = true;
  140. break;
  141. }
  142. }
  143. if (isNotAgv) {
  144. learun.alert.info("您选择的数据任务状态有不是AGV执行中,不能重下AGV任务。请重新选择数据!");
  145. return;
  146. }
  147. TaskType = 3;
  148. MsgData = '是否确认重下AGV任务!';
  149. learun.layerForm({
  150. id: 'form',
  151. title: '重下AGV任务',
  152. url: top.$.rootUrl + '/HJManager/Tasks/Form',
  153. width: 700,
  154. height: 300,
  155. callBack: function (id) {
  156. return top[id].acceptClick(refreshGirdData);
  157. }
  158. });
  159. });
  160. //优先级
  161. $('#lr_Priority').on('click', function () {
  162. selectRowsData = $('#gridtable').jfGridGet("rowdata");
  163. if (selectRowsData.length == 0) {
  164. learun.alert.error('未选择行!');
  165. return false;
  166. }
  167. TaskType = 4;
  168. MsgData = '是否确认设置优先级!';
  169. learun.layerForm({
  170. id: 'form',
  171. title: '完成任务',
  172. url: top.$.rootUrl + '/HJManager/Tasks/Form',
  173. width: 700,
  174. height: 300,
  175. callBack: function (id) {
  176. return top[id].acceptClick(refreshGirdData);
  177. }
  178. });
  179. });
  180. $('.datetime').each(function () {
  181. $(this).lrdatetime({
  182. dfdata: [
  183. { name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
  184. { name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
  185. { name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
  186. { name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
  187. ],
  188. // 月
  189. mShow: false,
  190. premShow: false,
  191. // 季度
  192. jShow: false,
  193. prejShow: false,
  194. // 年
  195. ysShow: false,
  196. yxShow: false,
  197. preyShow: false,
  198. yShow: false,
  199. // 默认
  200. dfvalue: 'all',
  201. selectfn: function (begin, end) {
  202. let id = $(this).attr('id');
  203. if (id == 'datesearch') {
  204. logbegin = begin;
  205. logend = end;
  206. }
  207. else if (id == 'StartTime') {
  208. StartTimeBegin = begin;
  209. StartTimeend = end;
  210. }
  211. else if (id == 'EndTime') {
  212. EndTimeBegin = begin;
  213. EndTimeend = end;
  214. }
  215. }
  216. });
  217. });
  218. $('#Type').lrselect({
  219. url: top.$.rootUrl + '/HJManager/Enums/GetTaskTypeList',
  220. maxHeight: 180,
  221. allowSearch: false
  222. });
  223. $('#Status').lrselect({
  224. url: top.$.rootUrl + '/HJManager/Enums/GetTaskStatusList',
  225. maxHeight: 180,
  226. allowSearch: false
  227. });
  228. $('#OutType').lrselect({
  229. url: top.$.rootUrl + '/HJManager/Enums/GetAutoManualOutTypeList',
  230. maxHeight: 180,
  231. allowSearch: false
  232. });
  233. $('#BusType').lrselect({
  234. url: top.$.rootUrl + '/HJManager/Enums/GetTaskBusTypeList',
  235. maxHeight: 180,
  236. allowSearch: false
  237. });
  238. $('#ProdLine').lrselect({
  239. url: top.$.rootUrl + '/HJManager/Enums/YesNoList',
  240. maxHeight: 60,
  241. allowSearch: false
  242. });
  243. },
  244. // 初始化列表
  245. initGird: function () {
  246. $('#gridtable').jfGrid({
  247. url: top.$.rootUrl + '/HJManager/Tasks/GetCurrentTaskPageList',
  248. headData: [
  249. { label: "任务号", name: "ID", width: 140, align: "left" },
  250. { label: "工字轮编码", name: "BarCode", width: 120, align: "left" },
  251. { label: "任务类型", name: "TypeName", width: 90, align: "left", sortname: "Type" },
  252. { label: "任务状态", name: "StatusName", width: 90, align: "left", sortname: "Status" },
  253. { label: "AGV任务号", name: "AgvTaskID", width: 110, align: "left" },
  254. { label: "起始地址", name: "AddrFrom", width: 100, align: "left" },
  255. { label: "目标地址", name: "AddrTo", width: 100, align: "left" },
  256. { label: "下一个地址", name: "AddrNext", width: 100, align: "left" },
  257. { label: "业务类型", name: "BusType", width: 130, align: "left", sortname: "BusType" },
  258. { label: "巷道", name: "Tunnel", width: 50, align: "left" },
  259. { label: "楼层", name: "Floor", width: 50, align: "left" },
  260. { label: "设备", name: "Device", width: 60, align: "left" },
  261. { label: "重量", name: "Weight", width: 110, align: "left" },
  262. { label: "产品编码", name: "MaterialCode", width: 120, align: "left" },
  263. { label: "物料编码", name: "MatCode", width: 110, align: "left" },
  264. { label: "库存编码", name: "InvBarCode", width: 110, align: "left" },
  265. { label: "高度", name: "Height", width: 110, align: "left" },
  266. { label: "等级", name: "Grade", width: 110, align: "left" },
  267. { label: "优先级", name: "Priority", width: 80, align: "left" },
  268. { label: "手动处理备注", name: "ManualRemarks", width: 150, align: "left" },
  269. { label: "产品长度", name: "Length", width: 90, align: "left" },
  270. { label: "手/自动", name: "OutTypeName", width: 115, align: "left", sortname: "OutType" },
  271. { label: "堆垛机放货站台", name: "SrmStation", width: 95, align: "left" },
  272. { label: "开始时间", name: "StartTime", width: 130, align: "left" },
  273. { label: "结束时间", name: "EndTime", width: 130, align: "left" },
  274. { label: "满轮越库", name: "ProdLine", width: 150, align: "left"
  275. , formatter: function (cellvalue) {
  276. if (cellvalue == 1) {
  277. return '<span class=\"label label-success\" >是</span>';
  278. } else {
  279. return '<span class=\"label label-default\" >否</span>';
  280. }
  281. }
  282. },
  283. //{ label: "码垛单号", name: "DocID", width: 150, align: "left" },
  284. //{ label: "码垛托盘类型", name: "PalletType", width: 150, align: "left" },
  285. //{ label: "满盘数量", name: "FullQty", width: 150, align: "left" },
  286. //{ label: "高度", name: "Height", width: 150, align: "left" },
  287. { label: "WMS任务号", name: "WmsTask", width: 120, align: "left" },
  288. { label: "任务组ID", name: "TaskGroupKey", width: 150, align: "left" },
  289. { label: "更新状态", name: "UploadedName", width: 90, align: "left", sortname: "Uploaded" },
  290. {
  291. label: "改手盘标记", name: "IsSurplus", width: 80, align: "left"
  292. , formatter: function (cellvalue) {
  293. if (cellvalue == true) {
  294. return '<span class=\"label label-success\" >是</span>';
  295. } else {
  296. return '<span class=\"label label-default\" >否</span>';
  297. }
  298. }
  299. },
  300. {
  301. label: "返工标记", name: "IsRework", width: 80, align: "left", formatter: function (cellvalue) {
  302. if (cellvalue == true) {
  303. return '<span class=\"label label-success\" >是</span>';
  304. } else {
  305. return '<span class=\"label label-default\" >否</span>';
  306. }
  307. }
  308. },
  309. {
  310. label: "快投标记", name: "IsFast", width: 80, align: "left", formatter: function (cellvalue) {
  311. if (cellvalue == true) {
  312. return '<span class=\"label label-success\" >是</span>';
  313. } else {
  314. return '<span class=\"label label-default\" >否</span>';
  315. }
  316. }
  317. },
  318. { label: "机台号", name: "WorkBench", width: 120, align: "left" },
  319. { label: "仓库编码", name: "WarehouseCode", width: 110, align: "left" },
  320. { label: "创建时间", name: "AddTime", width: 130, align: "left" },
  321. { label: "更新时间", name: "EditTime", width: 130, align: "left" },
  322. { label: "创建用户", name: "AddWho", width: 110, align: "left" },
  323. { label: "更新用户", name: "EditWho", width: 110, align: "left" },
  324. ],
  325. mainId: 'ID',
  326. isPage: true,
  327. reloadSelected: true,
  328. sidx: 'AddTime',
  329. sord: 'DESC',
  330. isMultiselect: true,
  331. isSubGrid: true, // 是否有子表
  332. subGridExpanded: function (subid, rowdata) {
  333. psuid = subid;
  334. $('#' + subid).jfGrid({
  335. url: top.$.rootUrl + '/HJManager/Tasks/GetTaskItem',
  336. headData: [
  337. { label: '任务号', name: 'ParentTaskCode', index: 'ParentTaskCode', width: 150, align: 'center' },
  338. { label: '当前位置', name: 'CurPoint', width: 210, align: "left" },
  339. { label: '下个位置', name: 'NextPoint', width: 210, align: "left" },
  340. { label: '描述', name: 'Desc', width: 380, align: "left" },
  341. { label: "创建时间", name: "AddTime", width: 155, align: "left" },
  342. { label: "创建用户", name: "AddWho", width: 110, align: "left" },
  343. ]
  344. });
  345. $('#' + subid).jfGridSet('reloadSon', { taskid: rowdata.ID, adddate: rowdata.AddTime });
  346. },
  347. });
  348. page.search({ queryJson: JSON.stringify({ keyword: $('#txt_Keyword').val() }) });
  349. },
  350. search: function (param) {
  351. param = param || {};
  352. $('#gridtable').jfGridSet('reload', param);
  353. }
  354. };
  355. refreshGirdData = function () {
  356. page.search();
  357. // $('#gridtable').jfGridSet('reload');
  358. };
  359. page.init();
  360. }