旭捷内部项目管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

417 lines
13 KiB

10 months ago
  1. //初始化
  2. $(function () {
  3. packingNumber()
  4. getCustomerId()
  5. });
  6. var pickList = []
  7. var pick = []
  8. var number = 0
  9. var everyOneNumber = 0 // 每次装配得数量
  10. //卷号bind 回车事件
  11. $("#rollNo").bind("keydown", function (event) {
  12. if (event.keyCode == 13) {
  13. var rollNo = $("#rollNo").val();
  14. if (null == rollNo || rollNo == "") {
  15. layer.alert("卷号不能为空!");
  16. } else {
  17. getRollInfo(rollNo);
  18. return false;
  19. }
  20. }
  21. return true;
  22. });
  23. // 卷列表
  24. var rollList = []
  25. // 单个卷
  26. var rollInfoData = {}
  27. var partQty = 0
  28. var number = 0
  29. function getRollInfo(rollNo) {
  30. if ($('#pickQty').val() - $('#pickQtyOld').val() == 0) {
  31. layer.alert('该料已经装配完成');
  32. $("#rollNo").val('');
  33. $("#rollNo").focus();
  34. return;
  35. }
  36. if ($('#pickQty').val() - number == 0) {
  37. layer.alert('该料号卷已扫描足够');
  38. return;
  39. }
  40. let roll = {
  41. "rollno": rollNo,
  42. // "statusDb": "I",
  43. "pickQty": $('#pickQty').val() - number - $('#pickQtyOld').val(),
  44. "partno": $('#partNo').val()
  45. }
  46. $.ajax({
  47. url: "/finishedProduct/crollinfo/packInfoRoll",
  48. contentType: 'application/json',
  49. type: "POST",
  50. data: JSON.stringify(roll),
  51. dataType: "json",
  52. beforeSend: function (request) {
  53. request.setRequestHeader("token", $.cookie("token"));
  54. },
  55. success: function (data) {
  56. if (data.code == 0) {
  57. rollInfoData = data.cRollinfo;
  58. if (rollInfoData.statusDb != 'I') {
  59. layer.alert("该卷的状态为: " + rollInfoData.status);
  60. $("#rollNo").val('');
  61. $("#rollNo").focus();
  62. return;
  63. }
  64. var rollBool = rollList.some(item => item.rollno === rollInfoData.rollno)
  65. if (rollBool) {
  66. layer.alert('该卷号已存在');
  67. return
  68. }
  69. var partNo = $('#partNo').val();
  70. if (partNo != rollInfoData.partno) {
  71. layer.alert('扫描的卷料号不匹配');
  72. return
  73. }
  74. number += rollInfoData.rollqty
  75. rollList.push(rollInfoData)
  76. var str = '<tr id = ' + rollInfoData.rollno + '>' +
  77. '<th class="" style="text-align:center;background-color: #ffff;">' +
  78. '<button data-toggle="modal" onclick="removeRoll(\'' + rollInfoData.rollno + '\')" style="padding: 3px 10px;">' +
  79. '删除</button>' +
  80. '<th class="" style="text-align:center;background-color: #ffff;">' +
  81. '<span>' + rollInfoData.rollno + '</span></th>' +
  82. '<th class="" style="text-align:center;background-color: #ffff;">' +
  83. '<span>' + rollInfoData.rollqty + '</span></th>' +
  84. '</tr>';
  85. $("#roll_table").append(str);
  86. $("#rollNo").val('');
  87. $("#rollNo").focus();
  88. }
  89. if (data.code == 201) {
  90. layer.alert(data.msg);
  91. }
  92. if (data.code == 202) {
  93. if (data.roll.statusDb != 'I') {
  94. layer.alert("该卷的状态为: " + data.roll.status);
  95. $("#rollNo").val('');
  96. $("#rollNo").focus();
  97. return;
  98. }
  99. layer.alert(data.msg)
  100. layer.confirm(data.msg + ',是否需要拆卷', {
  101. btn: ['确定', '取消']
  102. // 按钮
  103. }, function () {
  104. let rollVo = {
  105. "rollno": data.roll.rollno,
  106. // "statusDb": "I",
  107. "pickQty": data.roll.rollqty,
  108. }
  109. $.ajax({
  110. url: "/finishedProduct/crollinfo/splitRoll",
  111. contentType: 'application/json',
  112. type: "POST",
  113. data: JSON.stringify(rollVo),
  114. dataType: "json",
  115. beforeSend: function (request) {
  116. request.setRequestHeader("token", $.cookie("token"));
  117. },
  118. success: function (data) {
  119. if (data.code == 0) {
  120. var rolls = data.rollList
  121. rollList.push(rolls[1])
  122. var str ='<tr id = ' + rollInfoData.rollno + '>' +
  123. '<th class="" style="text-align:center;background-color: #ffff;">' +
  124. '<button data-toggle="modal" onclick="removeRoll(\'' + rolls[1].rollno + '\')" style="padding: 3px 10px;">' +
  125. '删除</button>' +
  126. '<th class="" style="text-align:center;background-color: #ffff;">' +
  127. '<span>' + rolls[1].rollno + '</span></th>' +
  128. '<th class="" style="text-align:center;background-color: #ffff;">' +
  129. '<span>' + rolls[1].rollqty + '</span></th>' +
  130. '</tr>';
  131. $("#roll_table").append(str);
  132. print(data.rollList)
  133. }
  134. if (data.code == 201) {
  135. layer.alert(data.msg)
  136. }
  137. if (data.code == 202) {
  138. layer.alert(data.msg)
  139. } else {
  140. layer.alert(data.msg)
  141. }
  142. if (data.code == 401) {
  143. layer.alert('用户身份已过期');
  144. window.location.href = "/login"
  145. }
  146. },
  147. error: function (data) {
  148. }
  149. });
  150. }, function () {
  151. });
  152. }
  153. if (data.code == 401) {
  154. layer.alert('用户身份已过期');
  155. window.location.href = "/login"
  156. }
  157. $("#rollNo").val('');
  158. $("#rollNo").focus();
  159. },
  160. error: function (data) {
  161. }
  162. });
  163. }
  164. // 打印卷标签
  165. function print(val) {
  166. var rollPrintList = val
  167. if (rollPrintList.length <= 0) {
  168. return;
  169. }
  170. $.ajax({
  171. url: "/finishedProduct/crollinfo/rollPrint",
  172. contentType: 'application/json',
  173. type: "POST",
  174. data: JSON.stringify(rollPrintList),
  175. dataType: "json",
  176. beforeSend: function (request) {
  177. request.setRequestHeader("token", $.cookie("token"));
  178. },
  179. success: function (data) {
  180. if (data.code == 0) {
  181. layer.alert("打印成功")
  182. rollPrintList = []
  183. }
  184. if (data.code == 401) {
  185. layer.alert('用户身份已过期');
  186. window.location.href = "/login"
  187. }
  188. },
  189. error: function (data) {
  190. }
  191. });
  192. }
  193. // 删除扫描内容
  194. function removeRoll(rollNo) {
  195. $table = $("#roll_table tr");
  196. $("tr[id='" + rollNo + "']").remove();
  197. var list = rollList.filter(item => item.rollno == rollNo)
  198. rollList = rollList.filter(item => item.rollno != rollNo)
  199. number -= list[0].rollqty
  200. $("#rollNo").val('');
  201. $("#rollNo").focus();
  202. }
  203. // 装配出货
  204. function delivery() {
  205. if (rollList.length == 0) {
  206. layer.alert("请扫描卷在装箱")
  207. return
  208. }
  209. var number = 0
  210. rollList.forEach((item, index) => {
  211. number += item.rollqty
  212. })
  213. everyOneNumber = number
  214. var packVo = {
  215. "orderNo": $("#orderNo").val(),
  216. "rollList": rollList,
  217. "line": $("#line").val(),
  218. "partNo": $("#partNo").val(),
  219. "pickQty": $("#pickQty").val(),
  220. }
  221. $.ajax({
  222. url: "/finishedProduct/crollinfo/packDelivery",
  223. contentType: 'application/json',
  224. type: "POST",
  225. data: JSON.stringify(packVo),
  226. dataType: "json",
  227. beforeSend: function (request) {
  228. request.setRequestHeader("token", $.cookie("token"));
  229. },
  230. success: function (data) {
  231. if (data.code == 0) {
  232. layer.alert(data.msg)
  233. number = 0
  234. packingNumber()
  235. $("#roll_table").html('')
  236. pickingPrint()
  237. }
  238. if (data.code == 500) {
  239. layer.alert(data.msg)
  240. }
  241. if (data.code == 401) {
  242. layer.alert('用户身份已过期');
  243. window.location.href = "/login"
  244. }
  245. },
  246. error: function (data) {
  247. }
  248. });
  249. }
  250. // 获取已经装配出库的 数量
  251. function packingNumber() {
  252. var packVo = {
  253. "orderNo": $("#orderNo").val(),
  254. "line": $("#line").val(),
  255. "partNo": $("#partNo").val(),
  256. }
  257. $.ajax({
  258. url: "/packing/getPickingPartNumber",
  259. contentType: 'application/json',
  260. type: "POST",
  261. data: JSON.stringify(packVo),
  262. dataType: "json",
  263. beforeSend: function (request) {
  264. request.setRequestHeader("token", $.cookie("token"));
  265. },
  266. success: function (data) {
  267. if (data.code == 0) {
  268. $('#pickQtyOld').val(data.partNumber)
  269. // $("#pickQty").val($("#pickQty").val()-data.partNumber)
  270. }
  271. if (data.code == 500) {
  272. layer.alert(data.msg)
  273. }
  274. if (data.code == 401) {
  275. layer.alert('用户身份已过期');
  276. window.location.href = "/login"
  277. }
  278. },
  279. error: function (data) {
  280. }
  281. });
  282. }
  283. // 更具拣配单号 获取 客户编号
  284. function getCustomerId() {
  285. let picking = {
  286. partNo: $("#partNo").val()
  287. }
  288. $.ajax({
  289. url: "/packing/getCustomerId",
  290. contentType: 'application/json',
  291. type: "POST",
  292. data: JSON.stringify(picking),
  293. dataType: "json",
  294. beforeSend: function (request) {
  295. request.setRequestHeader("token", $.cookie("token"));
  296. },
  297. success: function (data) {
  298. if (data.code == 0) {
  299. getPrintFile(data.customerId)
  300. }
  301. if (data.code == 500) {
  302. layer.alert(data.msg)
  303. }
  304. if (data.code == 401) {
  305. layer.alert('用户身份已过期');
  306. window.location.href = "/login"
  307. }
  308. },
  309. error: function (data) {
  310. }
  311. });
  312. }
  313. // 获取根据客户编号 获取装配打印模板
  314. function getPrintFile(customerId) {
  315. let customer = {
  316. customerId: customerId,
  317. reportFamily: '外箱标签'
  318. }
  319. $.ajax({
  320. url: "/packing/getReportFileListByCustomerId",
  321. contentType: 'application/json',
  322. type: "POST",
  323. data: JSON.stringify(customer),
  324. dataType: "json",
  325. beforeSend: function (request) {
  326. request.setRequestHeader("token", $.cookie("token"));
  327. },
  328. success: function (data) {
  329. if (data.code == 0) {
  330. $('#reoprtId').html('')
  331. let reportList = data.reportFileVos
  332. let reportHtml = ''
  333. reportList.forEach((item, index) => {
  334. reportHtml += '<option label=' + item.reportFileVo + ' value=' + item.reportIdVo + '>' +
  335. '</option>';
  336. })
  337. $('#reoprtId').append(reportHtml)
  338. }
  339. if (data.code == 500) {
  340. layer.alert(data.msg)
  341. }
  342. if (data.code == 401) {
  343. layer.alert('用户身份已过期');
  344. window.location.href = "/login"
  345. }
  346. },
  347. error: function (data) {
  348. }
  349. });
  350. }
  351. // 装箱完成调用打印
  352. function pickingPrint() {
  353. var reoprt = $('#reoprtId').val();
  354. console.log(reoprt)
  355. var split = reoprt.split(":");
  356. var reportFile = split[2]
  357. var reportId = split[1]
  358. var isCustomer = split[0]
  359. //var reportFile = reoprt.substr(reoprt.indexOf(":")+1)
  360. // var reportId = reoprt.substr(0,reoprt.indexOf(":"))
  361. let reportFileVo = {
  362. reportId: reportId,
  363. reportFile: reportFile,
  364. orderNo: $("#orderNo").val(),
  365. partNo: $('#partNo').val(),
  366. pickingNumber: everyOneNumber,
  367. isCustomer: isCustomer
  368. }
  369. $.ajax({
  370. url: "/packing/printPacking",
  371. contentType: 'application/json',
  372. type: "POST",
  373. data: JSON.stringify(reportFileVo),
  374. dataType: "json",
  375. beforeSend: function (request) {
  376. request.setRequestHeader("token", $.cookie("token"));
  377. },
  378. success: function (data) {
  379. if (data.code == 0) {
  380. }
  381. if (data.code == 500) {
  382. layer.alert(data.msg)
  383. }
  384. if (data.code == 401) {
  385. layer.alert('用户身份已过期');
  386. window.location.href = "/login"
  387. }
  388. },
  389. error: function (data) {
  390. }
  391. });
  392. }