CurrentTaskIndex.js 19 KB

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