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.

242 lines
8.6 KiB

3 days ago
  1. <#import "../master.ftl" as master>
  2. <@master.layout>
  3. <div class="page-header" style="margin-top: 70px; ">
  4. <h3>Defective/QC</h3>
  5. </div>
  6. <div class="row" id="f1">
  7. <div class="col-md-5">
  8. <input id="inptOrder" type="text" class="form-control" placeholder="SO No" />
  9. <p>
  10. <table id="tblOrderInfo" class="table">
  11. </table>
  12. </p>
  13. </div>
  14. <div class="col-md-3" id="btns" style="display: none;">
  15. <p>
  16. <button class="btn btn-default" id="createRoll1" onclick="createNgModal()" >Create defective roll</button>
  17. </p>
  18. <p>
  19. <button class="btn btn-default" id="createRoll2" onclick="createQcModal()" >Create QC roll</button>
  20. </p>
  21. </div>
  22. <!-- 扫描序列号modal -->
  23. <div id="bad_roll_dlg" class="easyui-dialog" style="width: 320px; display: none;" closed="true"
  24. data-options="modal:true" buttons='#tb_bad_roll'>
  25. <div style="margin-left: 10px; margin-top: 10px; margin-bottom: 10px;">
  26. <label>Roll No:</label>
  27. <input id="bad_roll_no" name="rollNo" style="margin-left: 20px; width: 180px;">
  28. </div>
  29. </div>
  30. <div id="tb_bad_roll" style="display: none; text-align: center;">
  31. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveBadRoll()" style="width:90px">Save</a>
  32. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#bad_roll_dlg').dialog('close')" style="width:90px">Cancel</a>
  33. </div>
  34. <!-- 扫描序列号modal -->
  35. <div id="qc_roll_dlg" class="easyui-dialog" style="width: 320px; display: none;" closed="true"
  36. data-options="modal:true" buttons='#tb_qc_roll'>
  37. <div style="margin-left: 10px; margin-top: 10px; margin-bottom: 10px;">
  38. <label>Roll No:</label>
  39. <input id="qc_roll_no" name="rollNo" style="margin-left: 20px; width: 180px;">
  40. </div>
  41. </div>
  42. <div id="tb_qc_roll" style="display: none; text-align: center;">
  43. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveQcRoll()" style="width:90px">Save</a>
  44. <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#qc_roll_dlg').dialog('close')" style="width:90px">Cancel</a>
  45. </div>
  46. <script>
  47. let orderNo;
  48. var ORDER_NO;
  49. function scanOrderNo(){
  50. var inptValue = $("#inptOrder").val();
  51. var $tblOrderInfo = $("#tblOrderInfo");
  52. $tblOrderInfo.html("");
  53. $("#btns").hide();
  54. if (inptValue.length == 0){
  55. return false;
  56. }
  57. $.post("/rollop/${func}/getQcCount", {orderNo: inptValue}, function(data){
  58. if (data.success && data.order){
  59. ORDER_NO = data.order.orderNo;
  60. orderNo = data.order.orderNo;
  61. DATA = data;
  62. $tblOrderInfo.append("<tr><td>SO No:</td><td>"+data.order.orderNo+"</td></tr>");
  63. $tblOrderInfo.append("<tr><td>Part No:</td><td>"+data.order.partNo+"</td></tr>");
  64. $tblOrderInfo.append("<tr><td>Part Description:</td><td>"+data.order.partDesc+"</td></tr>");
  65. $tblOrderInfo.append("<tr><td>Status:</td><td>"+data.order.status+"</td></tr>");
  66. $tblOrderInfo.append("<tr><td>Setup & NG:</td><td>"+data.setupAndNc+"</td></tr>");
  67. $tblOrderInfo.append("<tr><td>First off & Last Off:</td><td>"+data.faiAndEai+"</td></tr>");
  68. if (data.goodCount && data.goodCount >= 0) {
  69. $tblOrderInfo.append("<tr><td>Defect Product Qty:</td><td>"+data.goodCount+"</td></tr>");
  70. }
  71. if (data.sRolls){
  72. $tblOrderInfo.append("<tr><td>Defective roll:</td><td>"+showBadRolls(data.sRolls)+"</td></tr>");
  73. }
  74. if (data.qRolls){
  75. $tblOrderInfo.append("<tr><td>QC roll:</td><td>"+showRolls(data.qRolls)+"</td></tr>");
  76. }
  77. $("#btns").show();
  78. checkWithWorkingOrder(ORDER_NO);
  79. }
  80. });
  81. }
  82. //展示不良卷的方法
  83. function showBadRolls(rolls){
  84. var list = rolls || [];
  85. var ret = [];
  86. for(var i=0;i<list.length;i++){
  87. ret.push("<a target='forprint' href='/print/finalroll/"+list[i].finalRollNo+"/'>Roll No: "+list[i].finalRollNo+
  88. " Defective quantity: "+(list[i].qty - list[i].tuningQty)+" Setup quantity:"+list[i].tuningQty+"</a>");
  89. }
  90. return ret.join("<br />");
  91. }
  92. function showRolls(rolls){
  93. var list = rolls || [];
  94. var ret = [];
  95. for(var i=0;i<list.length;i++){
  96. ret.push("<a target='forprint' href='/print/finalroll/"+list[i].finalRollNo+"/'>Roll No: "+list[i].finalRollNo+
  97. " Quantity: "+list[i].qty+"</a>");
  98. }
  99. return ret.join("<br />");
  100. }
  101. $("#inptOrder").on("keydown", function(){
  102. if(event.keyCode==13) {
  103. scanOrderNo();
  104. return false;
  105. }
  106. return true;
  107. });
  108. function checkWithWorkingOrder(orderNo) {
  109. var workingOrder = $("#hdnWorkingOrder").val();
  110. if (workingOrder != orderNo){
  111. var msg = '';
  112. if (workingOrder != "") {
  113. msg = 'The order of this roll does not match with the current order '+workingOrder+'.';
  114. }
  115. $("#tblOrderInfo").html("");
  116. $("#btns").hide();
  117. $.messager.alert("Error", msg, "error", function(){
  118. $("#inptOrder").val("").focus();
  119. });
  120. // alert(msg);
  121. // window.location.href=window.location.href.replace(/\?.*$/,"");
  122. }
  123. }
  124. $(function () {
  125. $("#inptOrder").focus();
  126. })
  127. //打开不良卷录入的modal
  128. function createNgModal(){
  129. //刷新箱号的页面数据
  130. $('#bad_roll_dlg').dialog('open').dialog('center').dialog('setTitle', 'Create defective roll!');
  131. }
  132. //打开Qc的modal
  133. function createQcModal(){
  134. //刷新箱号的页面数据
  135. $('#qc_roll_dlg').dialog('open').dialog('center').dialog('setTitle', 'Create QC roll!');
  136. }
  137. //页面打开 获取焦点
  138. $("#bad_roll_dlg").dialog({
  139. onClose: function () {
  140. //刷新箱的数据
  141. },
  142. onOpen: function(){
  143. //清空数据获取焦点
  144. $('#bad_roll_no').val('');
  145. $('#bad_roll_no').focus();
  146. }
  147. });
  148. //页面打开 获取焦点
  149. $("#qc_roll_dlg").dialog({
  150. onClose: function () {
  151. //刷新箱的数据
  152. },
  153. onOpen: function(){
  154. //清空数据获取焦点
  155. $('#qc_roll_no').val('');
  156. $('#qc_roll_no').focus();
  157. }
  158. });
  159. //创建不良品卷
  160. function saveBadRoll(){
  161. let rollNo = $.trim($('#bad_roll_no').val());
  162. let func = '${func}';
  163. //判断是否存在
  164. if(null == rollNo || '' == rollNo){
  165. $.messager.alert("Error", 'Please type roll number first!', "error");
  166. return false;
  167. }
  168. //创建卷
  169. let badRoll = {'orderNo': orderNo, 'rollNo': rollNo, 'username': username, 'func': func};
  170. $.post("/cut/createBadRoll", badRoll, function(result){
  171. if (result.success) {
  172. $.messager.alert("info", "Create defective roll successfully!", "info");
  173. let printData = JSON.parse(result.printData);//解析
  174. $("#ifmforprint").attr('src', "/print/finalroll/" + printData.finalRollNo + "/");
  175. scanOrderNo();
  176. $('#bad_roll_dlg').dialog('close');
  177. } else {
  178. $.messager.alert("Error", result.msg, "error");
  179. }
  180. }).fail(function(data) {
  181. $.messager.alert("Error", "Fail to create roll:"+data.errorMsg, "error");
  182. });
  183. }
  184. //创建QC品卷
  185. function saveQcRoll(){
  186. let rollNo = $.trim($('#qc_roll_no').val());
  187. let func = '${func}';
  188. //判断是否存在
  189. if(null == rollNo || '' == rollNo){
  190. $.messager.alert("Error", 'Please type roll number first!', "error");
  191. return false;
  192. }
  193. //创建卷
  194. let qcRoll = {'orderNo': orderNo, 'rollNo': rollNo, 'username': username, 'func': func};
  195. $.post("/cut/createQcRoll", qcRoll, function(result){
  196. if (result.success) {
  197. $.messager.alert("info", "Create QC roll successfully", "info");
  198. let printData = JSON.parse(result.printData);//解析
  199. $("#ifmforprint").attr('src', "/print/finalroll/" + printData.finalRollNo + "/");
  200. scanOrderNo();
  201. $('#qc_roll_dlg').dialog('close');
  202. } else {
  203. $.messager.alert("Error", result.msg, "error");
  204. }
  205. }).fail(function(data) {
  206. $.messager.alert("Error", "Fail to create roll:"+data.msg, "error");
  207. });
  208. }
  209. </script>
  210. <style>
  211. button {min-width: 100px;}
  212. </style>
  213. </@master.layout>