waveSorting.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. setTimeout(function() {
  2. $('#waveNo').focus();
  3. }, 1000);
  4. $("#waveNo").blur(function() {
  5. var waveNo = trimStr($("#waveNo").val());
  6. if(waveNo == '') {
  7. $('#waveNo').focus();
  8. }
  9. });
  10. //波次单号回车
  11. $('#waveNo').keyup(function(event) {
  12. if(event.keyCode != "13") {
  13. return false;
  14. }
  15. $("#waveNo").val(trimStr($("#waveNo").val()));
  16. //播放扫描声音
  17. playSound('../raw/scan.wav');
  18. submitWaveNo();
  19. });
  20. // 条码回车
  21. $('#barcode').keyup(function(event) {
  22. if(event.keyCode != "13") {
  23. return false;
  24. }
  25. $("#barcode").val(trimStr($("#barcode").val()));
  26. //播放扫描声音
  27. playSound('../raw/scan.wav');
  28. submitSortting();
  29. });
  30. var barcodeBoxListMap;
  31. function submitWaveNo() {
  32. if($("#waveNo").val() == '') {
  33. mui.alert('波次号不能为空!', '注意');
  34. return;
  35. }
  36. var appRequest = $appRequest; //复制请求封装对象
  37. appRequest.opType = OP_TYPE_MENU.BATCH_OUT_SHELF_PICK_1;
  38. appRequest.msg = $("#waveNo").val(); //msg是消息内容主体
  39. // 提交
  40. $.ajax({
  41. type: 'POST',
  42. url: $appRequestUrl,
  43. data: JSON.stringify(appRequest),
  44. contentType: "application/json",
  45. success: function(result) {
  46. if(!result.success) {
  47. playSound('../raw/error.wav');
  48. $("#waveNo").val("");
  49. mui.alert(result.msg, '警告', function() { setFocus('waveNo') });
  50. return;
  51. }
  52. mui.toast(result.msg);
  53. var waveExtend = result.extend;
  54. $("#warehouseCode").val(waveExtend.warehouseCode);
  55. $("#customerCode").val(waveExtend.customerCode);
  56. $("#statusName").val(waveExtend.statusName);
  57. barcodeBoxListMap = waveExtend.barcodeBoxListMap;
  58. $('#barcode').focus();
  59. },
  60. error: function() {
  61. mui.alert('网络断开或服务器发生异常', '注意');
  62. }
  63. });
  64. }
  65. function submitSortting() {
  66. var waveNo = $("#waveNo").val();
  67. var barcode = $('#barcode').val();
  68. if(waveNo == '') {
  69. mui.alert('波次号不能为空!', '注意');
  70. return;
  71. }
  72. if(barcode == '') {
  73. mui.alert('商品条码不能为空!', '注意');
  74. return;
  75. }
  76. var boxList = barcodeBoxListMap[barcode]; //取出条码对应的每个箱子列表
  77. if(!boxList) {
  78. playSound('../raw/error.wav');
  79. $("#barcode").val('');
  80. mui.alert('该条码不存在', '警告', function() { setFocus('barcode'); });
  81. return
  82. }
  83. //mui.alert(JSON.stringify(boxList));
  84. //循环该条码的箱子列表
  85. for(var i = 0;i < boxList.length;i++){
  86. var box = boxList[i];//每个箱子
  87. var boxNo = box['boxNo'];//箱子号-下标
  88. var qty = box['qty'];//应分拣数量
  89. var alreadyQty = box['alreadyQty'];//已分拣数量
  90. if(qty > alreadyQty){
  91. //分拣给此箱号
  92. alreadyQty++;
  93. box['alreadyQty'] = alreadyQty;
  94. boxList[i] = box;//js的map 不像Java map可以引用
  95. playSoundByBoxNo(boxNo);//播放语言
  96. mui.toast('请放入第' + boxNo +'号箱');
  97. $("#index").val(boxNo);
  98. if(qty == alreadyQty && (i+1) == boxList.length){
  99. nextBarcode();//下一个条码
  100. mui.toast('该条码已分拣完成');
  101. }
  102. $('#barcode').val("");
  103. $('#barcode').focus();
  104. break;
  105. }
  106. }
  107. barcodeBoxListMap[barcode] = boxList;
  108. checkFinish(barcodeBoxListMap,barcode);
  109. }
  110. function checkFinish(barcodeBoxListMap,barcode){
  111. var isFinished = true;
  112. var qtyTotal = 0;
  113. var alreadyQtyTotal = 0;
  114. for(var key in barcodeBoxListMap){
  115. var boxList = barcodeBoxListMap[key];
  116. for(var i = 0;i < boxList.length;i++){
  117. var box = boxList[i];//每个箱子
  118. var boxNo = box['boxNo'];//箱子号-下标
  119. var qty = box['qty'];//应分拣数量
  120. var alreadyQty = box['alreadyQty'];//已分拣数量
  121. if(qty > alreadyQty){
  122. isFinished = false;
  123. }
  124. if(key == barcode){
  125. qtyTotal+=qty;
  126. alreadyQtyTotal+=alreadyQty;
  127. }
  128. }
  129. }
  130. $("#qtyTotal").val(qtyTotal);
  131. $("#alreadyQtyTotal").val(alreadyQtyTotal);
  132. if(isFinished){
  133. cleanAll();
  134. }
  135. }
  136. function nextBarcode() {
  137. $(".allowClear").each(function() {
  138. $(this).val("")
  139. })
  140. $('#barcode').focus();
  141. }
  142. function cleanAll() {
  143. $("input").each(function() {
  144. $(this).val("")
  145. })
  146. setTimeout(function(){
  147. //播放成功声音
  148. playSound('../raw/ok.wav');
  149. },1000);
  150. $('#waveNo').focus();
  151. }
  152. function playSoundByBoxNo(boxNo){
  153. if(boxNo < 10){
  154. playSound1_9(boxNo);
  155. return;
  156. }
  157. if(boxNo == 10){
  158. playSound10(boxNo);
  159. return;
  160. }
  161. var a = boxNo / 10;
  162. var b = boxNo % 10;
  163. if(a > 1){
  164. playSound1_9(a);
  165. playSound10(10);
  166. setTimeout(function(){
  167. playSound1_9(b);
  168. },500);
  169. return;
  170. }
  171. playSound10(10);
  172. setTimeout(function(){
  173. playSound1_9(b);
  174. },500);
  175. };
  176. function playSound1_9(boxNo){
  177. if(boxNo == '1'){
  178. playSound('../raw/one.wav');
  179. }
  180. if(boxNo == '2'){
  181. playSound('../raw/two.wav');
  182. }
  183. if(boxNo == '3'){
  184. playSound('../raw/three.wav');
  185. }
  186. if(boxNo == '4'){
  187. playSound('../raw/four.wav');
  188. }
  189. if(boxNo == '5'){
  190. playSound('../raw/five.wav');
  191. }
  192. if(boxNo == '6'){
  193. playSound('../raw/six.wav');
  194. }
  195. if(boxNo == '7'){
  196. playSound('../raw/seven.wav');
  197. }
  198. if(boxNo == '8'){
  199. playSound('../raw/eight.wav');
  200. }
  201. if(boxNo == '9'){
  202. playSound('../raw/nine.wav');
  203. }
  204. }
  205. function playSound10(boxNo){
  206. if(boxNo == '10'){
  207. playSound('../raw/ten.wav');
  208. }
  209. }