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.

301 lines
12 KiB

3 days ago
  1. <#import "../master.ftl" as master>
  2. <@master.layout>
  3. <style>
  4. #fm label {
  5. width: 150px;
  6. }
  7. </style>
  8. <div class="page-header">
  9. <h2>Master roll confirm</h2>
  10. </div>
  11. <table id="dg" class="easyui-datagrid" style="width:100%;height:460px;display: none;"
  12. data-options="pagination: true, showFooter: true, singleSelect:true, fitColumns:true , url:'/scanning/getRollCheckData',method:'get',pageSize:20,toolbar:'#tb'">
  13. <thead>
  14. <tr>
  15. <th data-options="field:'orderNo',width:100">Order No</th>
  16. <th data-options="field:'rollNo',width:100">Roll No</th>
  17. <th data-options="field:'status',width:80,align:'left'">Status</th>
  18. <!-- <th data-options="field:'serialRowEnd',width:80,align:'left', formatter:getRollQty">单排卷标签数量</th> -->
  19. <th data-options="field:'statement',width:80,align:'left', formatter:getStatement">Close status</th>
  20. <!-- <th data-options="field:'noScanQty',width:50,align:'left'">Scanned Qty</th>
  21. <th data-options="field:'scanQty',width:80,align:'left'">未扫描数量</th> -->
  22. <th data-options="field:'statementBy',width:100">Close By</th>
  23. <th data-options="field:'statementDate',width:100,formatter:formatDateTime">Close Date</th>
  24. <th data-options="field:'id',width:100,editor:'textbox', formatter:formatAction">Actions</th>
  25. </tr>
  26. </thead>
  27. </table>
  28. <div id="tb" style="padding:10px 5px;display: none;">
  29. <div>
  30. 订单号: <input class="easyui-textbox" id="orderNo" style="width:110px">
  31. Roll No: <input class="easyui-textbox" id="rollNo" style="width:110px">
  32. 卷状态: <select id="status" class="easyui-combobox" style="width:110px;" data-options="required:true">
  33. <option value="">All</option>
  34. <option value="Created">Created</option>
  35. <option value="Printed">Printed</option>
  36. <option value="Diecuted">Diecuted</option>
  37. <option value="Inspected">Inspected</option>
  38. <option value="Scanned">Scanned</option>
  39. </select>
  40. 结单状态: <select id="statement" class="easyui-combobox" style="width:110px;" data-options="required:true">
  41. <option value="">All</option>
  42. <option value="N">Open</option>
  43. <option value="Y">Closed</option>
  44. <option value="W">To be closed</option>
  45. </select>
  46. <a href="#nowhere" id="queryLink" class="easyui-linkbutton" iconCls="icon-search">Search</a>
  47. <#if currentUser.isAdmin>
  48. <a href="javascript:void(0)" id="closedAllRoll" class="easyui-linkbutton" iconCls="icon-edit" onclick="closedAllRoll()">Batch close</a>
  49. </#if>
  50. <#if currentUser.isAdmin || currentUser.authorities?contains("closeorder")>
  51. <a href="javascript:void(0)" id="forceClosed" class="easyui-linkbutton" iconCls="icon-remove" onclick="forceClosed()">Force close</a>
  52. </#if>
  53. </div>
  54. </div>
  55. <div id="dlgDtls" class="easyui-dialog" style="width:300px;display: none;"
  56. closed="true">
  57. <div novalidate style="margin:0;padding:20px 20px">
  58. <div style="margin-bottom:10px">
  59. <input id = "order_No" name="orderNo" class="easyui-textbox" label="订单号:" style="width:100%">
  60. </div>
  61. <div style="margin-bottom:10px">
  62. <input id = "roll_No" name="rollNo" class="easyui-textbox" label="Roll No:" style="width:100%">
  63. </div>
  64. <div style="margin-bottom:10px">
  65. <input id = "roll_Qty"name="rollQty" class="easyui-textbox" label="卷标签数量:" style="width:100%">
  66. </div>
  67. <div style="margin-bottom:10px">
  68. <input id = "state_ment"name="statement" class="easyui-textbox" label="结单状态:" style="width:100%">
  69. </div>
  70. <div style="margin-bottom:10px">
  71. <input id = "scan_Qty" name="scanQty" class="easyui-textbox" label="已扫描数量:" style="width:100%">
  72. </div>
  73. <div style="margin-bottom:10px">
  74. <input id = "noScan_Qty" name="noScanQty" class="easyui-textbox" label="未扫描数量:" style="width:100%">
  75. </div>
  76. </div>
  77. </div>
  78. <script>
  79. $(window).resize(function () {
  80. $("#dg").datagrid({"height": $(window).height() - $(".datagrid").offset().top - 20});
  81. });
  82. $(function () {
  83. $(window).resize();
  84. });
  85. $("#queryLink").click(function(){
  86. var dg = $('#dg').datagrid({
  87. queryParams: {
  88. orderNo: $("#orderNo").val(),
  89. rollNo: $("#rollNo").val(),
  90. status: $("#status").val(),
  91. statement: $("#statement").val()
  92. }
  93. });
  94. });
  95. function formatAction(value, row){
  96. var action = "<a href='javascript:viewSerials(\""+row.orderNo+ "\",\""+row.serialRowStart+"\",\""+row.serialRowEnd+"\",\""+row.rollNo+"\",\""+row.statement+"\")'>Query</a>";
  97. action += " | <a onclick='downRollSerial(\""+row.rollNo+ "\")'>Trace</a>";
  98. //action += " | <a onclick='unscannedReport(\""+row.rollNo+ "\")'>未扫描报告</a>";
  99. if(row.statement=="Y"){
  100. action += " | Closed";
  101. }else{
  102. action += " | <a onclick='closedRoll(\""+row.orderNo+ "\",\""+row.serialRowStart+"\",\""+row.serialRowEnd+"\",\""+row.rollNo+"\")'>Close</a>";
  103. }
  104. return action;
  105. }
  106. //获取卷标签数量
  107. function getRollQty(value, row){
  108. if(row.serialRowEnd==null||row.serialRowEnd==""
  109. ||row.serialRowStart==null||row.serialRowStart==""){
  110. return 0;
  111. }
  112. var qty = row.serialRowEnd-row.serialRowStart+1;
  113. return qty;
  114. }
  115. //获取结单状态
  116. function getStatement(value, row){
  117. if(value==""||value==null||value=="N"){
  118. return "Open";
  119. }else if(value=="Y"){
  120. return "Closed";
  121. }else if(value=="W"){
  122. return "To be closed";
  123. }
  124. }
  125. /* function formatLodopPrint(value, row){
  126. var action = "<a target='forprint' href='/print/finalrollScan/"+row.finalRollNo+"/'>"+value+"</a>";
  127. return action;
  128. } */
  129. function lodopPrint(rollNo){
  130. var url = "/print/finalrollScan/"+rollNo+"/";
  131. //设置href
  132. $("#lodopPrint"+rollNo).attr("href", url);
  133. }
  134. function formatDtlAction(value, row){
  135. return "<a href='/shipment/boxes/scan/" + value + "'>Scan and delivery</a>";
  136. }
  137. function viewSerials(orderNo,serialRowStart,serialRowEnd,rollNo,statement){
  138. if(serialRowEnd == null || serialRowEnd == "" || serialRowEnd == 'null'
  139. ||serialRowStart == null || serialRowStart == "" || serialRowStart == 'null'){
  140. $.messager.alert('Error', '当前卷未开工!', 'error');
  141. return 0;
  142. }
  143. var qty = serialRowEnd-serialRowStart+1;
  144. console.log(qty);
  145. var state;
  146. if(statement=="Y"){
  147. state = "Closed";
  148. }else {
  149. state = "Open";
  150. }
  151. $("#order_No").textbox('setValue',orderNo);
  152. $('#order_No').textbox('textbox').attr('readonly',true);
  153. $("#roll_No").textbox('setValue',rollNo);
  154. $('#roll_No').textbox('textbox').attr('readonly',true);
  155. $("#state_ment").textbox('setValue',state);
  156. $('#state_ment').textbox('textbox').attr('readonly',true);
  157. $.post("/scanning/getRollSerial", {orderNo: orderNo,serialRowStart: serialRowStart,serialRowEnd: serialRowEnd}, function(ret){
  158. console.log(ret);
  159. if(ret.success){
  160. console.log(qty);
  161. qty = qty * ret.ret.noOfCross;
  162. console.log(qty);
  163. $("#roll_Qty").textbox('setValue',qty);
  164. $('#roll_Qty').textbox('textbox').attr('readonly',true);
  165. $("#scan_Qty").textbox('setValue',ret.ret.scanQty);
  166. $('#scan_Qty').textbox('textbox').attr('readonly',true);
  167. $("#noScan_Qty").textbox('setValue',ret.ret.noScanQty);
  168. $('#noScan_Qty').textbox('textbox').attr('readonly',true);
  169. $('#dlgDtls').dialog('open').dialog('center').dialog('setTitle',orderNo+':Detail');
  170. }else{
  171. $.messager.alert('Error',ret.errorMsg, 'error');
  172. }
  173. });
  174. }
  175. function deleteBadRoll(finalRollNo){
  176. $.messager.confirm('Confirm','Do you want to delete the defective roll <b>'+finalRollNo+'</b> ?',function(r){
  177. if (r){
  178. $.post('/scanning/deleteQcRoll/do',{finalRollNo: finalRollNo},function(result){
  179. if (result.success){
  180. $('#dg').datagrid('reload'); // reload the user data
  181. } else {
  182. $.messager.alert('error',result.errorMsg, 'error');
  183. }
  184. },'json');
  185. }
  186. });
  187. }
  188. function downExcel() {
  189. //拼接url
  190. $("#query_rollNo").val($("#finalRollNo").val());
  191. $("#query_jobId").val($("#jobId").val());
  192. $("#query_dateFrom").val($("#createdDateFrom").val());
  193. $("#query_dateTo").val($("#createdDateTo").val());
  194. var url = "/scanning/down/currentRollList?query_rollNo="+$("#query_rollNo").val()+"&query_jobId="+$("#query_jobId").val()+
  195. "&query_dateFrom="+$("#query_dateFrom").val()+"&query_dateTo="+$("#query_dateTo").val()+"&query_openNo=40";
  196. //设置href
  197. $("#downExcel").attr("href", url);
  198. }
  199. //trace
  200. function downRollSerial(rollNo){
  201. $.post("/scanning/downRollSerial", {rollNo: rollNo}, function(ret){
  202. console.log(ret);
  203. if(ret.success){
  204. window.location.href="/prepress/downloadFileZip/"+ret.fileName;
  205. }else{
  206. $.messager.alert('Error',ret.errorMsg, 'error');
  207. }
  208. });
  209. }
  210. //未扫描报告
  211. function unscannedReport(rollNo){
  212. $.post("/scanning/unscannedReport", {rollNo: rollNo}, function(ret){
  213. console.log(ret);
  214. if(ret.success){
  215. window.location.href="/prepress/downloadFileZip/"+ret.fileName;
  216. }else{
  217. $.messager.alert('Error',ret.errorMsg, 'error');
  218. }
  219. });
  220. }
  221. //结单
  222. function closedRoll(orderNo,serialRowStart,serialRowEnd,rollNo){
  223. $.messager.confirm('Confirm','Close confirm ?',function(r){
  224. if (r){
  225. $.post('/scanning/closedRoll',{orderNo: orderNo,serialRowStart: serialRowStart,serialRowEnd: serialRowEnd,rollNo: rollNo},function(result){
  226. console.log(result);
  227. if (result.success){
  228. $('#dg').datagrid('reload');
  229. } else {
  230. $.messager.alert('Error',result.errorMsg, 'error');
  231. }
  232. },'json');
  233. }
  234. });
  235. }
  236. //批量结单
  237. function closedAllRoll(){
  238. $.messager.confirm('Confirm','Are you sure to close the SO existing empty roll ?',function(r){
  239. if (r){
  240. $.messager.progress({
  241. title: 'Point',
  242. msg: 'Please Wait……',
  243. text: '',
  244. interval: 300
  245. });
  246. $.post('/scanning/closedAllRoll',{},function(result){
  247. console.log(result);
  248. $.messager.progress('close');//进度条关闭
  249. if (result.success){
  250. $('#dg').datagrid('reload');
  251. } else {
  252. $.messager.alert('Error',result.errorMsg, 'error');
  253. }
  254. },'json');
  255. }
  256. });
  257. }
  258. //强制结单
  259. function forceClosed(){
  260. var row = $('#dg').datagrid('getSelected');
  261. if (row){
  262. var rollNo = row.rollNo;
  263. console.log(rollNo);
  264. $.messager.confirm('Confirm','Force Close?',function(r){
  265. if (r){
  266. $.post('/scanning/forceClosed/',{rollNo: rollNo},function(result){
  267. if (result.success){
  268. $('#dg').datagrid('reload');
  269. } else {
  270. $.messager.alert('Error',result.errorMsg, 'error');
  271. }
  272. },'json');
  273. }
  274. });
  275. }else{
  276. $.messager.alert('Warning','Please select a row.', 'warning');
  277. }
  278. }
  279. </script>
  280. </@master.layout>