CurrentTaskIndex.js 20 KB

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