queryStock.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. define(function (require) {
  2. return function () {
  3. // var inputParam = Message.getTempParamData();
  4. var $grid1, $grid2, $grid3, $form, $comb;
  5. // 弹框的方式
  6. var widgets = {
  7. // 搜索分类检索
  8. selectCatalogWidget: {
  9. url: '/app/mat/widget/selectCatalog.js',
  10. bind: {
  11. matcQc: 'matcId',
  12. matcName: 'matcName'
  13. },
  14. queryParams: {matcBusi: MATC_BUSI_检验, status: 1}
  15. }
  16. };
  17. // 获取库区
  18. function getFarmList() {
  19. var _datas = [];
  20. _datas.push({
  21. "id": '',
  22. "text": '全部'
  23. })
  24. $.yvan.ajax({
  25. async: false,
  26. method: 'post',
  27. url: api('/wms/whFarm/queryAll'),
  28. data: {},
  29. success: function (data) {
  30. if (data.data != null && data.data != undefined) {
  31. for (var i = 0; i < data.data.length; i++) {
  32. _datas.push({
  33. "id": data.data[i].farmId,
  34. "text": data.data[i].farmName
  35. })
  36. }
  37. }
  38. }
  39. });
  40. return _datas;
  41. }
  42. // 获取仓库
  43. function getRoomList() {
  44. var _datas = [];
  45. _datas.push({
  46. "id": '',
  47. "text": '全部'
  48. });
  49. var qd = {};
  50. if ($form) {
  51. qd = {farmId: $form.formGet().farmId};
  52. }
  53. $.yvan.ajax({
  54. url: api('/wms/whRoom/queryAll'),
  55. data: qd,
  56. async: false,
  57. method: 'post',
  58. success: function (data) {
  59. if (data.data != null && data.data != undefined) {
  60. for (var i = 0; i < data.data.length; i++) {
  61. _datas.push({
  62. "id": data.data[i].roomId,
  63. "text": data.data[i].roomName
  64. })
  65. }
  66. }
  67. }
  68. });
  69. return _datas;
  70. }
  71. function enterQueryGrid1(e) {
  72. if (e.keyCode === 13) {
  73. var tmp = $(this).val();
  74. $form.formSet({queryProperties: tmp});
  75. queryGrid1();
  76. }
  77. }
  78. // 物资库存查询列表
  79. function queryGrid1() {
  80. var queryUrl = '/wms/stock/queryStockMatList';// 自行替换此参数
  81. $grid1.jqGrid("clearGridData");
  82. var queryForm = $form.formGet();
  83. $grid1.reload({
  84. mtype: 'POST',
  85. url: api(queryUrl),
  86. queryParams: queryForm
  87. }, true);
  88. if ($grid2 != undefined) {
  89. $grid2.jqGrid("clearGridData");
  90. }
  91. if ($grid3 != undefined) {
  92. $grid3.jqGrid("clearGridData");
  93. }
  94. }
  95. //物资批次
  96. function queryGrid2(rowid) {
  97. var row = $grid1.rowData(rowid);
  98. if (!row) {
  99. $.yvan.msg('请先选择一行数据');
  100. return;
  101. }
  102. var queryUrl = '/wms/stock/queryStockBatchList';// 自行替换此参数
  103. var queryForm = $form.formGet();
  104. queryForm.matId = row.matId;
  105. $grid2.reload({
  106. mtype: 'POST',
  107. url: api(queryUrl),
  108. queryParams: queryForm
  109. });
  110. if ($grid3 != undefined) {
  111. $grid3.jqGrid("clearGridData");
  112. }
  113. }
  114. //批次
  115. function queryGrid3() {
  116. var row2 = $grid2.rowData();
  117. if (!row2) {
  118. $.yvan.msg('请先选择一行数据');
  119. return;
  120. }
  121. $grid3.jqGrid("clearGridData");
  122. var obj = $form.formGet();
  123. obj.batchId = row2.batchId;
  124. obj.matId = row2.matId;
  125. obj.matQc = row2.matQc;
  126. $grid3.reload({
  127. url: api('/stock/stockCell/queryByStockId'),
  128. mtype: 'POST',
  129. queryParams: obj
  130. });
  131. }
  132. // 搜索按钮
  133. var queryToolbarTitle = '物资查询';// 自行替换此参数
  134. var queryToolbar = {
  135. xtype: 'toolbar', title: queryToolbarTitle, items: [
  136. {
  137. text: '查询', iconCls: 'fa fa-search', onClick: function () {
  138. queryGrid1();
  139. }
  140. }, {
  141. text: '重置', iconCls: 'fa fa-refresh', onClick: function () {
  142. $form.formClear();
  143. queryGrid1();
  144. }
  145. }, {
  146. text: '关闭', iconCls: 'fa fa-times-circle', onClick: function () {
  147. App.closeMe(this);
  148. }
  149. }
  150. ]
  151. };
  152. // 搜索条件
  153. var queryFormPrompt = '物资编码/图号型号/物资名称';// 自行替换此参数
  154. var queryForm = {
  155. onRender: function () {
  156. $form = $(this);
  157. // setInputParam(inputParam, $form);
  158. },
  159. xtype: 'form',
  160. items: [[
  161. {
  162. xtype: 'textbox',
  163. label: '检索条件',
  164. name: 'queryProperties',
  165. prompt: queryFormPrompt,
  166. labelWidth: 'auto',
  167. events: {keydown: enterQueryGrid1},
  168. },
  169. {
  170. xtype: 'searchbox',
  171. label: '检验分类',
  172. name: 'matcName',
  173. labelWidth: 'auto',
  174. widget: widgets.selectCatalogWidget,
  175. onChange: function (data) {
  176. queryGrid1();
  177. }
  178. },
  179. {
  180. xtype: 'yvselect', label: '物资分类', name: 'matType', labelWidth: 'auto', width: 180,
  181. data: $.yvan.sysDict('matType').combowithAll(), value: '',
  182. onChange: function () {
  183. queryGrid1();
  184. },
  185. },
  186. {
  187. xtype: 'yvselect', label: '所属库区', name: 'farmId', labelWidth: 'auto', width: 200,
  188. data: getFarmList(),
  189. onChange: function () {
  190. queryGrid1();
  191. $comb.yvselect({'data': getRoomList()});
  192. }
  193. },
  194. {
  195. xtype: 'yvselect', label: '所属仓库', name: 'roomId', labelWidth: 'auto', width: 280,
  196. panelHeight: 220,
  197. data: getRoomList(),
  198. onRender: function () {
  199. $comb = $(this);
  200. },
  201. onChange: function () {
  202. queryGrid1();
  203. }
  204. },
  205. // {
  206. // xtype: 'yvselect', label: '仓库类型', name: 'roomType', labelWidth: 'auto', width: 200,
  207. // data: $.yvan.sysDict('roomType').combowithAll(), value: '',
  208. // onChange: function () {
  209. // queryGrid1();
  210. // },
  211. // },
  212. // {
  213. // xtype: 'yvselect', label: '货区', name: 'workArea', labelWidth: 'auto', width: 180,
  214. // data: $.yvan.sysDict('workArea').combowithAll(), value: '',
  215. // onChange: function () {
  216. // queryGrid1();
  217. // }
  218. // }
  219. ]]
  220. };
  221. // 列表1增删改查按钮
  222. var gridToolbarTitle1 = '物资列表';// 自行替换此参数
  223. var gridToolbar1 = {
  224. xtype: 'toolbar',
  225. title: gridToolbarTitle1,
  226. items: [ {
  227. text: '导出数据', iconCls: 'fa fa-cloud-upload', onClick: function () {
  228. var row = $grid1.rowData();
  229. var para = "";
  230. if ($form.formGet().matcName != "") {
  231. para = (para == "") ? "" : para + "&";
  232. para += "matcName=" + $form.formGet().matcName;
  233. }
  234. if ($form.formGet().matType != "") {
  235. para = (para == "") ? "" : para + "&";
  236. para += "matType=" + $form.formGet().matType;
  237. }
  238. if ($form.formGet().farmId != "") {
  239. para = (para == "") ? "" : para + "&";
  240. para += "farmId=" + $form.formGet().farmId;
  241. }
  242. if ($form.formGet().roomId != "") {
  243. para = (para == "") ? "" : para + "&";
  244. para += "roomId=" + $form.formGet().roomId;
  245. }
  246. if ($form.formGet().queryProperties != "") {
  247. para = (para == "") ? "" : para + "&";
  248. para += "queryProperties=" + $form.formGet().queryProperties;
  249. }
  250. // if (row.matId!= "") {
  251. // para = (para == "") ? "" : para + "&";
  252. // para += "matId=" + row.matId;
  253. // }
  254. para = (para == "") ? "/wms/stock/exportStockMatExcel" : "/wms/stock/exportStockMatExcel?" + para;
  255. $.yvan.download({
  256. method: 'get',
  257. url: api(para),
  258. fileName: "库存物资统计表" + $.yvan.getMoment().format('YYYY-MM-DD HH:mm:ss') + '.xlsx'
  259. });
  260. }
  261. },]
  262. };
  263. // 列表2增删改查按钮
  264. var gridToolbarTitle2 = '库存批次列表';// 自行替换此参数
  265. var gridToolbar2 = {
  266. xtype: 'toolbar',
  267. title: gridToolbarTitle2,
  268. items: [
  269. ]
  270. };
  271. return {
  272. north: {
  273. height: 90,
  274. split: true,
  275. border: false,
  276. items: [
  277. queryToolbar,
  278. queryForm
  279. ]
  280. },
  281. center: {
  282. height: '60%',
  283. split: true,
  284. items: {
  285. onRender: function () {
  286. $grid1 = $(this);
  287. queryGrid1();
  288. },
  289. xtype: 'grid',
  290. toolbar: gridToolbar1,
  291. autoSizeColumns: true,
  292. columns:
  293. [[
  294. {title: '物资ID', field: 'matId', hidden: true},
  295. {title: '检验分类', field: 'matcQc', hidden: true},
  296. {title: '物资编码', field: 'matBar', width: 100},
  297. {title: '图号/型号', field: 'matCode', width: 140},
  298. {title: '物资名称', field: 'matName', width: 100},
  299. {title: '物资编码属性', field: 'matAttrCode'},
  300. {title: '物资分类', field: 'matType', formatter: $.fn.fmatter.matType},
  301. {title: '检验分类', field: 'matcName', width: 100},
  302. {title: '计量单位', field: 'unitName', width: 80},
  303. {title: '计划价', field: 'planPrice', formatter: $.fn.fmatter.formatCurrency, width: 80, align: "right"},
  304. {title: '计划金额', field: 'planMoney', formatter: $.fn.fmatter.formatCurrency, width: 80, align: "right",},
  305. {title: '库存数', field: 'matAmount', align: "right", formatter: $.fn.fmatter.formatNumberBigDecimal},
  306. {title: '批次数', field: 'numBatch', width: 80, formatter: $.fn.fmatter.formatNumber, align: "right",},
  307. ]],
  308. onSelectRow: function (rowid) {
  309. queryGrid2(rowid);
  310. }
  311. }
  312. },
  313. south: {
  314. height: '40%',
  315. border: false,
  316. items: {
  317. xtype: 'layout',
  318. west: {
  319. width: "50%",
  320. border: false,
  321. split: true,
  322. items: {
  323. onRender: function () {
  324. $grid2 = $(this);
  325. },
  326. xtype: 'grid',
  327. toolbar: gridToolbar2,
  328. autoSizeColumns: true,
  329. columns:
  330. [[
  331. {title: '批次ID', field: 'batchId', hidden: true},
  332. {title: '物资ID', field: 'matId', hidden: true},
  333. {title: '批次条码', field: 'batchBar', hidden: true},
  334. {
  335. title: '批次号', field: 'batchCode', width: 140,
  336. formatter: function (value, row) {
  337. if (row.rowData.matQc == 0) {
  338. return value;
  339. } else if (row.rowData.matQc == 1) {
  340. return "<span style='color:green;'>" + value + "</span>";
  341. } else if (row.rowData.matQc == 2) {
  342. return "<span style='color:orange;'>" + value + "</span>";
  343. } else if (row.rowData.matQc == 3) {
  344. return "<span style='color:red;'>" + value + "</span>";
  345. }
  346. }
  347. },
  348. {title: '批次状态', field: 'matQc', hidden: true},
  349. {title: '货区', field: 'workArea', hidden: true, width: 100, formatter: $.fn.fmatter.workArea},
  350. {title: '状态', field: 'matQc', hidden: true},
  351. {title: '货区', field: 'workArea', hidden: true},
  352. {
  353. title: '数量',
  354. field: 'matAmount',
  355. align: "right",
  356. formatter: $.fn.fmatter.formatNumberBigDecimal,
  357. },
  358. {field: 'dateMade', title: '生产日期', formatter: $.fn.fmatter.tsymd, align: "center"},
  359. {field: 'saveMinDate', title: '保证贮存期', formatter: $.fn.fmatter.tsymd, align: "center"},
  360. {field: 'saveMaxDate', title: '最大贮存期', formatter: $.fn.fmatter.tsymd, align: "center"},
  361. {field: 'expDate', title: '最近一次定检日期', formatter: $.fn.fmatter.tsymd, align: "center"},
  362. {field: 'batchCreateTime', title: '新增时间', formatter: $.fn.fmatter.ts, align: "center"},
  363. ]],
  364. onSelectRow: function (rowid) {
  365. queryGrid3();
  366. }
  367. }
  368. },
  369. center: {
  370. width: '50%',
  371. items: {
  372. onRender: function () {
  373. $grid3 = $(this);
  374. },
  375. xtype: 'grid',
  376. toolbar: {
  377. xtype: 'toolbar',
  378. title: '物资位置信息',
  379. items: []
  380. },
  381. idField: 'celldetId',
  382. columns: [[
  383. {title: '编码属性ID', field: 'celldetId', hidden: true},
  384. {title: '货位ID', field: 'cellId', hidden: true},
  385. {title: '库存ID', field: 'stockId', hidden: true},
  386. {title: '单据ID', field: 'billId', hidden: true},
  387. {title: '库区', field: 'farmName', width: 140},
  388. {title: '仓库', field: 'roomName', width: 140},
  389. {title: '区域', field: 'workArea', width: 200, formatter: $.fn.fmatter.workArea,},
  390. {title: '货组', field: 'rowName', width: 200, align: "center"},
  391. {title: '货位号', field: 'cellBar', width: 200, align: "center"},
  392. {
  393. title: '数量',
  394. field: 'matAmount',
  395. width: 350,
  396. formatter: $.fn.fmatter.formatNumberBigDecimal,
  397. align: "right"
  398. },
  399. {
  400. title: '冻结数量',
  401. field: 'useAmount',
  402. width: 350,
  403. formatter: $.fn.fmatter.formatNumberBigDecimal,
  404. align: "right"
  405. },
  406. ]]
  407. }
  408. }
  409. }
  410. }
  411. };
  412. };
  413. }
  414. );