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.
 
 
 
 
 

1035 lines
38 KiB

<#import "../master.ftl" as master>
<@master.layout>
<div class="page-header">
<h3>${title}</h3>
</div>
<div class="row" id="app">
<div class="col-md-4">
<p><input id="rollNo" name="rollNo" type="text" class="form-control" placeholder="Roll No" /></p>
<table id="tblInfo" class="table">
</table>
</div>
<input type="hidden" id="processNumber" value="">
<input type="hidden" id="orderNo" value="">
<p><button id="btnStatus" onclick="updateStatus()" class="btn btn-default" style="margin-left: 15px;">Refresh Status</button></p>
<div class="col-md-1" id="actions" style="display: none">
<#if currentUser.isAdmin || currentUser.authorities?contains("refreshRollStatus")>
<p><button id="refreshRollStatus" onclick="refreshRollStatus()" class="btn btn-default">Reverse All Scanning Data</button></p>
</#if>
<#if func?is_string && func != "indigo">
<p><button id="btnConfirm" onclick="doConfirm()" class="btn btn-default">Confirm quantity</button></p>
<p><button id="scanMaterial" onclick="scanMaterialModal()" class="btn btn-default">扫描材料</button></p>
</#if>
<p><button id="btnStart" onclick="doStartModal()" class="btn btn-default">Scan</button></p>
<p><button id="btnSetup" onclick="doSetupModal()" class="btn btn-default">Scan/setup</button></p>
<p><button id="btnFai" onclick="doFaiModal()" class="btn btn-default">Scan/first off</button></p>
<p><button id="btnCut" onclick="showCutRolls()" class="btn btn-default">Slit roll</button></p>
<p><button id="btnEai" onclick="countEaiRows()" class="btn btn-default">Scan/last off</button></p>
<#if func?is_string && func == "indigo">
<p><button id="btnCreateRoll" onclick="doCreateRoll()" class="btn btn-default">Create new roll</button></p>
</#if>
<#if func?is_string && func != "indigo">
<p><button id="btnBad" onclick="doBadModal()" class="btn btn-default">Type defective serial number</button></p>
<p><button id="btnBadRange" onclick="doBadRangeModal()" class="btn btn-default">Batch defective serial number</button></p>
</#if>
<#if func?is_string && func == "abg">
<p><button id="printSlitting" onclick="slittingPrint()" class="btn btn-default">Print Label</button></p>
</#if>
</div>
</div>
<div class="row" >
<div class="col-md-12" id="tblRollOpInfo">
</div>
</div>
<!-- 开工扫号的modal -->
<div id="dlg-start" class="easyui-dialog for-scan" style="width:500px;display: none;"
closed="true" buttons="#dlg-start-buttons">
<form id="fm-start" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id="start_firstSerialNo" name="firstSerialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="The first serial number:" style="width:100%">
</div>
</form>
</div>
<div id="dlg-start-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="badOK" onclick="doStart()" style="width:90px">OK</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg-start').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 调机扫号 -->
<div id="dlg-setup" class="easyui-dialog for-scan" style="width:500px;display: none;" closed="true" buttons="#dlg-setup-buttons">
<form id="fm-setup" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id="setup_firstSerialNo" name="firstSerialNo" class="easyui-textbox" disabled="disabled" data-options="labelWidth:100" label="The first serial number:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input id="setup_endSerialNo" name="endSerialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="The second serial number:" style="width:100%">
</div>
</form>
</div>
<div id="dlg-setup-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="badOK" onclick="doSetup()" style="width:90px">OK</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg-setup').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 首件扫号 -->
<div id="dlg-fai" class="easyui-dialog for-scan" style="width:500px;display: none;" closed="true" buttons="#dlg-fai-buttons">
<form id="fm-fai" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id="fai_firstSerialNo" name="firstSerialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="The first serial number:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input id="fai_endSerialNo" name="endSerialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="The second serial number:" style="width:100%">
</div>
</form>
</div>
<div id="dlg-fai-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="badOK" onclick="doFai()" style="width:90px">OK</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg-fai').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 单个不良 -->
<div id="dlg-bad" class="easyui-dialog for-scan" style="width:500px;display: none;" closed="true" buttons="#dlg-bad-buttons">
<form id="fm-bad" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id="bad_serialNo" name="serialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="Defective serial number:" style="width:100%">
</div>
</form>
</div>
<div id="dlg-bad-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="badOK" onclick="doSingleBad()" style="width:90px">OK</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg-bad').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 批量不良 -->
<div id="dlg-batch-bad" class="easyui-dialog for-scan" style="width:500px;display: none;" closed="true" buttons="#dlg-batch-bad-buttons">
<form id="fm-batch-bad" method="post" novalidate style="margin:0; padding: 20px 20px;">
<div style="margin-bottom:10px">
<input id="start_bad_serial" name="firstSerialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="开始序列号:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input id="end_bad_serial" name="endSerialNo" class="easyui-textbox" required="true" data-options="labelWidth:100" label="结束序列号:" style="width:100%">
</div>
</form>
</div>
<div id="dlg-batch-bad-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" id="badOK" onclick="countBadRange()" style="width:90px">OK</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg-batch-bad').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 卷分切-->
<div id="dlg-cut" class="easyui-dialog" style="width:800px;display: none;" closed="true" data-options="modal:true, " >
<div style="margin-bottom:10px; margin-left: 20px; margin-top: 10px;">
<input id="end_serial_no" name="endSerialNo" class="easyui-textbox" required="true" label="结束序列号:" style="width:60%">
<a href="javascript:void(0)" id="tbAdd" class="easyui-linkbutton" iconCls="icon-add" onclick="doCutting()">Create Slitting Roll</a>
</div>
<table id="dlg-cut-rolls" class="easyui-datagrid" style="width:100%;height:300px;display: none;"
data-options="pagination: false, showFooter: true, singleSelect:true, fitColumns:true , method:'post', pageSize:500,">
<thead>
<tr>
<th data-options="field:'rollNo',width:80,">Slitting Roll No</th>
<th data-options="field:'oriRollNo',width:80,">源卷号</th>
<th data-options="field:'serialRowStart',width:60">From Row No</th>
<th data-options="field:'serialRowEnd',width:60">To Row No</th>
<th data-options="field:'columnSortIndex',width:80">No. of Cross</th>
<th data-options="field:'id',width:30, formatter: formatCutRollButton">Actions</th>
</tr>
</thead>
</table>
</div>
<!-- 数量确认 -->
<div id="dlgConfirm" class="easyui-dialog for-scan" style="width:500px;display: none;"
closed="true" buttons="#dlg-buttons-confirm">
<form id="fm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input name="workNo" class="easyui-textbox" data-options="labelWidth:100" required="true" label="Emoloyee ID:" style="width:100%">
</div>
</form>
</div>
<div id="dlg-buttons-confirm" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick="doConfirmOK()" style="width:90px">OK</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlgConfirm').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 扫描材料modal(优化版) -->
<div id="scan_material_dlg" class="easyui-dialog" style="width: 720px; display: none;"
closed="true" data-options="modal:true, onOpen:function(){$('#scan_material_batch').focus();}, buttons:'#tb_scan_material'">
<form id="scan_material_fm" method="post" novalidate style="margin:0; padding: 16px 16px 8px 16px;">
<div id="material_batch_wrap" style="margin-bottom:10px">
<label style="display:block; margin-bottom:6px; color:#666;">请扫描材料条码:</label>
<textarea id="scan_material_batch" name="code" rows="3" style="width:100%; resize: vertical;"
placeholder="请扫描材料批次"></textarea>
</div>
<div id="material_serial_wrap" style="margin-bottom:10px; display:none;">
<label style="display:block; margin-bottom:6px; color:#666;">请扫描结束码包:</label>
<input id="material_serial_no" name="materialSerialNo" class="easyui-textbox" style="width:100%" placeholder="请扫描结束码包">
</div>
</form>
<table id="scan_material_list" class="easyui-datagrid" style="width:100%;height: 300px;"
data-options="pagination:false, singleSelect:true, fitColumns:true, method:'POST'">
<thead>
<tr>
<th data-options="field:'rollNo',width:120">Roll No</th>
<th data-options="field:'componentPartNo',width:140">物料号</th>
<th data-options="field:'customerBatchNo',width:160">材料批次号</th>
<th data-options="field:'columnSortIndex',width:80,align:'center'">No. of Cross</th>
<th data-options="field:'startRow',width:80,align:'center'">From Row No</th>
<th data-options="field:'endRow',width:80,align:'center'">To Row No</th>
<th data-options="field:'scanTime',width:140">扫描时间</th>
<th data-options="field:'scanBy',width:100">扫描人</th>
</tr>
</thead>
</table>
</div>
<div id="tb_scan_material" style="padding:10px 5px; display: none; text-align: center;">
<div>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#scan_material_dlg').dialog('close')">Close</a>
</div>
</div>
<style>
table.roll-op-serials {
border: 1px solid gray;
}
table.roll-op-serials td{
border: 1px dotted gray;
padding: 3px;
text-align: center;
text-align: center;
font-family: Arial,monospace;
font-size: 11px;
background-color: aliceblue;
}
table.roll-op-serials td .serial-no{
font-size: 11px;
}
</style>
<script type="text/javascript" src="/js/layer/layer.js"></script>
<script src='http://127.0.0.1:8000/CLodopfuncs.js'></script>
<script type="text/javascript" src="/js/external/print/print_label.js"></script>
<script>
var formPostUrl="";
var currentRoll="";
var currentRollOp = {};
var currentOrder={};
var firstRollFlag = 0;
var urlPath="/rollop/${func}";
var enableScanMaterialNo = false;
var temp_row;
var doUrl = "";
var flag = "N";
let currentItemNo = 20;//当前的工序
let currentPrinter = ${currentPrinter};
let clodoplisence = '${clodoplisence}';
function show2ndBox(b){
showEl("#dlg #serial_input_1st", true);
showEl("#dlg #serial_input_2nd", true);
showEl("#dlg #serial_input_2nd", b);
$('#dlg #endSerialNo').textbox({disabled:!b});
}
function showDialog(title, serialNum, postUrl){
show2ndBox(serialNum > 1);
$('#dlg').dialog('open').dialog('center').dialog('setTitle',title);
$('#dlg form').form('clear');
$('#dlg #rollNo_display').textbox({"value": currentRoll});
formPostUrl = urlPath + postUrl + "?rollNo="+currentRoll;
doUrl = urlPath + "/badRange/do?rollNo="+currentRoll;
}
function doConfirm(){
$('#dlgConfirm').dialog('open').dialog('center').dialog('setTitle',"Confirm quantity");
$('#dlgConfirm form').form('clear');
}
function doConfirmOK(){
console.log(urlPath + "/confirm/do?rollNo=" + currentRoll)
$('#dlgConfirm form').form('submit',{
url: urlPath + "/confirm/do?rollNo=" + currentRoll,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
var result = $.parseJSON(result);
if (result.success){
refreshRollInfo(currentRoll);
$('#dlgConfirm').dialog('close'); // close the dialog
} else {
$.messager.alert('error',result.errorMsg, 'error');
}
}
});
}
//打开分切卷的数据 LR 2024-06-25
function showCutRolls(){
//各种参数
let rollNo = $("#rollNo").val();
$('#dlg-cut').dialog('open').dialog('center').dialog('setTitle',"Slit roll");
$("#dlg-cut-rolls").datagrid({
url: "/abg/getCutRolls",
queryParams: {
rollNo: rollNo,
}
});
}
//modal打开关闭选中的箱
$("#dlg-cut").dialog({
onOpen: function(){
//获取焦点
//showEl("#dlg #input_roll", true);
$('#end_serial_no').textbox('setValue', '');
$('#end_serial_no').textbox('textbox').focus();
}
});
//开工扫号功能
function doStartModal(){
$('#dlg-start').dialog('open').dialog('center').dialog('setTitle', 'Scan');
$('#dlg-star form').form('clear');
}
//modal打开关闭选中的箱
$("#dlg-start").dialog({
onOpen: function(){
//获取焦点
//showEl("#dlg #input_roll", true);
$('#start_firstSerialNo').textbox('setValue', '');
$('#start_firstSerialNo').textbox('textbox').focus();
}
});
/* 调机扫号 */
function doSetupModal(){
$('#dlg-setup').dialog('open').dialog('center').dialog('setTitle', 'Scan/setup');
$('#dlg-setup form').form('clear');
//设置数据
$("#setup_firstSerialNo").textbox({value: currentRollOp.toSetupSerialNo || ""});
$("#setup_firstSerialNo").textbox({disabled:true});
}
//modal打开关闭选中的箱
$("#dlg-setup").dialog({
onOpen: function(){
//获取焦点
//showEl("#dlg #input_roll", true);
$('#setup_endSerialNo').textbox('textbox').focus();
}
});
//首件扫号的modal
function doFaiModal(){
$('#dlg-fai').dialog('open').dialog('center').dialog('setTitle', 'Scan/first off');
$('#dlg-fai form').form('clear');
//设置数据
}
//modal打开关闭选中的箱
$("#dlg-fai").dialog({
onOpen: function(){
//获取焦点
//showEl("#dlg #input_roll", true);
$('#fai_firstSerialNo').textbox('textbox').focus();
}
});
//首件扫号的modal
function doBadModal(){
$('#dlg-bad').dialog('open').dialog('center').dialog('setTitle', 'Type defective serial number');
$('#dlg-bad form').form('clear');
}
//modal打开关闭选中的箱
$("#dlg-bad").dialog({
onOpen: function(){
//获取焦点
//showEl("#dlg #input_roll", true);
$('#bad_serialNo').textbox('textbox').focus();
}
});
/* 新增不良批量 2024-06-25 LR */
function doBadRangeModal(){
$('#dlg-batch-bad').dialog('open').dialog('center').dialog('setTitle', 'Batch defective serial number');
$('#dlg-batch-bad form').form('clear');
}
//modal打开关闭选中的箱
$("#dlg-batch-bad").dialog({
onOpen: function(){
//获取焦点
$('#start_bad_serial').textbox('textbox').focus();
}
});
$("#rollNo").on("keydown", function(){
if(event.keyCode == 13){
refreshRollInfo($.trim($(this).val()));
}
});
<#if RequestParameters.rollNo ??>
$(function(){
$("#rollNo").val("${RequestParameters.rollNo}");
refreshRollInfo("${RequestParameters.rollNo}");
});
</#if>
function doCreateRoll(){
if (currentOrder){
$.messager.confirm('Confirm','Are you sure to create new roll for the shop order <b>'+currentOrder.orderNo+'</b>? ',function(r) {
if (r){
$.post("/indigo/create_roll/do", {orderNo: currentOrder.orderNo}, function(data){
if (data.success && data.newRollNo){
$("#rollNo").val(data.newRollNo);
refreshRollInfo(data.newRollNo);
}
});
}
});
}
}
function slittingPrint() {
$.messager.confirm('Confirm','Is Printed ?',function(r){
if (r){
$("#ifmforprint").attr('src', "/print/rollnoSlitting/" + currentRollOp.operationNo + "/" + currentRoll + "/");
console.log("/print/rollnoSlitting/" + currentRollOp.operationNo + "/" + currentRoll + "/")
}
});
}
function refreshRollStatus(){
$.messager.confirm('Confirm','Are you sure to reverse all scanning data ?',function(r){
if (r){
$.post(urlPath+"/refreshRollStatus", {rollNo: currentRoll}, function(data){
if (data.success ){
refreshRollInfo($("#rollNo").val());
$.messager.alert('info',"Successfully",'info');
}else{
$.messager.alert('error',data.errorMsg,'error');
}
})
}
});
}
//回车触发事件
function refreshRollInfo(rollNo){
<#if func == "indigo">
$("#processNumber").val("10");
</#if>
<#if func == "thermal">
$("#processNumber").val("15");
</#if>
<#if func == "cut">
$("#processNumber").val("18");
</#if>
<#if func == "abg">
$("#processNumber").val("20");
</#if>
<#if func == "aoi">
$("#processNumber").val("30");
</#if>
var $tblInfo = $("#tblInfo");
var $tblRollOpInfo = $("#tblRollOpInfo");
$tblInfo.html("");
$tblRollOpInfo.html("");
let requestParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'func': 'abg'};
$.post("/rollop/newGetRoll", requestParam, function(data){
if (data.success && data.roll){
showEl("#actions", data.showAction);
enableEl("#btnConfirm", data.enableConfirm);
enableEl("#btnStatus", data.enableStatus);
enableEl("#btnStart", data.enableStart);
enableEl("#btnSetup", data.enableSetup);
enableEl("#btnFai", data.enableFai);
enableEl("#btnEai", data.enableEai);
enableEl("#btnBad", data.enableBad);
//判断是否打开当前的卷
<#if func == "abg">
enableEl("#btnCut", data.enableCut);//2024-07-05 LR添加分卷
</#if>
<#if currentUser.isAdmin || currentUser.authorities?contains("refreshRollStatus")>
enableEl("#refreshRollStatus", true);
</#if>
<#if func != "indigo">
enableEl("#btnBad",!data.scanStatus);
enableEl("#btnBadRange", !data.scanStatus);
enableEl("#printSlitting", data.rollOp && data.rollOp.remainSnCount);
</#if>
enableEl("#scanMaterial", data.rollOp && data.enableScanMaterial);
//判断是否显示
if(data.rollOp && data.enableScanMaterialBatch){
$('#material_batch_wrap').show();
}else {
$('#material_batch_wrap').hide();
}
if(data.rollOp && data.enableScanMaterialNo){
$('#material_serial_wrap').show();
}else {
$('#material_serial_wrap').hide();
}
enableScanMaterialNo = data.enableScanMaterialNo;
currentRoll = data.roll.rollNo;
currentRollOp = data.rollOp;
currentOrder=data.roll.order;
var rollNoDisplay = data.roll.rollNo;
if (data.rollOp && data.rollOp.remainSnCount){
rollNoDisplay = "<a target='forprint' href='/print/rollno/"+data.rollOp.operationNo+"/"+rollNoDisplay+"/'>"+rollNoDisplay+"</a>";
}
$tblInfo.append("<tr><td>SO No:</td><td>"+data.roll.orderNo+"</td></tr>");
$tblInfo.append("<tr><td>Roll No:</td><td>"+rollNoDisplay+"</td></tr>");
$tblInfo.append("<tr><td>Status</td><td>"+(data.roll.status || "-")+"</td></tr>");
$("#orderNo").val(data.roll.orderNo);
if (data.rollOpHtml){
$tblRollOpInfo.append(data.rollOpHtml);
}
if (data.prevCount){
$tblInfo.append("<tr><td>Serials Qty:</td><td>"+(data.prevCount)+"</td></tr>");
}
$tblInfo.append("<tr><td>Good Products Qty:</td><td>"+(data.qtyBad)+"</td></tr>");
$tblInfo.append("<tr><td>Defect Product Qty:</td><td>"+(data.qtyApprove)+"</td></tr>");
$tblInfo.append("<tr><td>Total Qty:</td><td>"+(data.qtyAll)+"</td></tr>");
if (data.prevCount){
$tblInfo.append("<tr><td>Different Qty:</td><td>"+(data.prevDifferent)+"</td></tr>");
}
if (data.badSns){
$tblInfo.append("<tr><td>Defective serial number:</td><td>"+(data.badSns.split(",").join("<br />") || "-")+"</td></tr>");
}
if (data.slittingRolls){
$tblInfo.append("<tr><td>Slitting Roll No:</td><td>"+(data.slittingRolls.split(",").join("<br />") || "-")+"</td></tr>");
}
checkWithWorkingOrder(data.roll.order.orderNo);
}else{
$tblInfo.append("<tr><td>"+data.msg+"</td></tr>");
}
})
}
function checkWithWorkingOrder(orderNo) {
var workingOrder = $("#hdnWorkingOrder").val();
if (workingOrder != orderNo){
var msg = 'Are you sure to swith to the order <b>'+orderNo+'</b>?';
if (workingOrder != "") {
msg = 'The order of this roll does not match with the current order '+workingOrder+'.';
}
$("#tblInfo").html("");
$("#tblRollOpInfo").html("");
$("#actions").hide();
$.messager.alert("Error", msg, "error", function(){
$("#rollNo").val("").focus();
});
}
}
function getday(){
lay('.Selection_time').each(function(){
laydate.render({
elem: this
});
});
$('.Selection_time').val(getToday());
}
//获取当天日期
function getToday(){
var date = new Date();
var seperator1 = "-";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = year + seperator1 + month + seperator1 + strDate;
return currentdate;
}
$(function () {
$("#rollNo").focus();
})
//分切卷的功能
function formatCutRollButton(value, row){
let tags = '';
tags += '<a style="text-decoration:none;" onclick="cacheAbgRollPrintData(\''+row.rollNo+'\')">补打标签</a>';
return tags;
}
//调用方法打印标签
function cacheAbgRollPrintData(rollNo){
let printParam = {'rollNo': rollNo}
//请求参数
$.ajax({
url: "/abg/cacheCutRollPrintData",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: printParam,
dataType: "JSON",
success: function (data) {
if(data.success){
currentPrinter.clodoplisence = clodoplisence;
printCutRollLabel(JSON.parse(data.printData), currentPrinter);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//统计eai的行数
function countEaiRows(){
//各种参数
let rollNo = $("#rollNo").val();
//组装参数
let eaiParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'username': username};
//请求参数
$.ajax({
url: "/abg/countEaiRows",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: eaiParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//判断是否超过限制的数量
if(data.resultCode == 201){
doEaiConfirm(data.maxRows);
}else{
doEai();//直接eai
}
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//确认是否末件扫号
function doEaiConfirm(maxRows){
$.messager.confirm('Confirm', 'The no. of rows between the 2 scanned serials is over the limit rows'+maxRows+', are you sure to continue ?', function(r) {
if (r){
//调用提交方法
doEai();
}
});
}
//提交的方法
function doEai(){
//各种参数
let rollNo = $("#rollNo").val();
//组装参数
let eaiParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'username': username};
//请求参数
$.ajax({
url: "/abg/doEai",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: eaiParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//$.messager.alert("info",data.msg,"info",);
//刷新当前的页面
refreshRollInfo(rollNo);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//开工扫号的方法
function doStart(){
//各种参数
let rollNo = $("#rollNo").val();
let firstSerialNo = $('#start_firstSerialNo').textbox('getValue');
//组装参数
let startParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'username': username, 'firstSerialNo': firstSerialNo};
//请求参数
$.ajax({
url: "/abg/doStart",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: startParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//刷新当前的页面
refreshRollInfo(rollNo);
//关闭弹窗
$('#dlg-start').dialog('close');
//$.messager.alert("info",data.msg,"info",);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//开工扫号的方法
function doSetup(){
//各种参数
let rollNo = $("#rollNo").val();
let firstSerialNo = $('#setup_firstSerialNo').textbox('getValue');
let endSerialNo = $('#setup_endSerialNo').textbox('getValue');
//组装参数
let setupParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'username': username, 'firstSerialNo': firstSerialNo, 'endSerialNo': endSerialNo};
//请求参数
$.ajax({
url: "/abg/doSetup",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: setupParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//刷新当前的页面
refreshRollInfo(rollNo);
//关闭弹窗
$('#dlg-setup').dialog('close');
//$.messager.alert("info",data.msg,"info",);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//开工扫号的方法
function doFai(){
//各种参数
let rollNo = $("#rollNo").val();
let firstSerialNo = $('#fai_firstSerialNo').textbox('getValue');
let endSerialNo = $('#fai_endSerialNo').textbox('getValue');
//组装参数
let setupParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'username': username, 'firstSerialNo': firstSerialNo, 'endSerialNo': endSerialNo};
//请求参数
$.ajax({
url: "/abg/doFai",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: setupParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//刷新当前的页面
refreshRollInfo(rollNo);
//关闭弹窗
$('#dlg-fai').dialog('close');
//$.messager.alert("info",data.msg,"info",);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//单个不良方法
function doSingleBad(){
//各种参数
let rollNo = $("#rollNo").val();
let serialNo = $('#bad_serialNo').textbox('getValue');
//组装参数
let badParam = {'orderNo': workingOrder, 'itemNo': currentItemNo, 'rollNo': rollNo, 'username': username, 'serialNo': serialNo};
//请求参数
$.ajax({
url: "/abg/doSingleBad",
type:"POST",
data: badParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//刷新当前的页面
refreshRollInfo(rollNo);
//关闭弹窗
//$('#dlg-bad').dialog('close');
$('#dlg-bad form').form('clear');
//$.messager.alert("info",data.msg,"info",);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//2024-06-25 LR 后续增加的代码
function countBadRange(){
//各种参数
let rollNo = $("#rollNo").val();
let firstSerialNo = $("#start_bad_serial").textbox('getValue').trim();
let endSerialNo = $("#end_bad_serial").textbox('getValue').trim();
//组装参数
let countParam = {'orderNo': workingOrder, 'itemNo': currentItemNo, 'rollNo': rollNo, 'firstSerialNo': firstSerialNo, 'endSerialNo': endSerialNo, 'username': username};
//请求参数
$.ajax({
url: "/abg/countBadRange",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: countParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//判断数量的限制
if(data.count > 1000){
$.messager.confirm('Confirm', 'Defective quantity greater than 1000, continue??', function(r) {
if (r){
//调用提交方法
createBadRange();
}
});
}else{
//调用提交方法
createBadRange();
}
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//批量创建不良
function createBadRange(){
//各种参数
let rollNo = $("#rollNo").val();
let firstSerialNo = $("#start_bad_serial").textbox('getValue').trim();
let endSerialNo = $("#end_bad_serial").textbox('getValue').trim();
//组装参数
let badParam = {'orderNo': workingOrder, 'itemNo': currentItemNo, 'rollNo': rollNo, 'firstSerialNo': firstSerialNo, 'endSerialNo': endSerialNo, 'username': username};
//请求参数
$.ajax({
url: "/abg/createBadRange",
type:"POST",
data: badParam,
dataType:"JSON",
success: function (data) {
if(data.success){
//$('#dlg-batch-bad').dialog('close');
$('#dlg-batch-bad form').form('clear');
//刷新当前的页面
refreshRollInfo(rollNo);
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//创建分切卷
function doCutting(){
//各种参数
let rollNo = $("#rollNo").val();
let endSerialNo = $("#end_serial_no").textbox('getValue');
//组装参数
let cutParam = {'orderNo': workingOrder, 'rollNo': rollNo, 'endSerialNo': endSerialNo, 'username': username};
//请求参数
$.ajax({
url: "/abg/createCutRoll",
//contentType: 'application/json',
type:"POST",
//data:JSON.stringify(inData),
data: cutParam,
dataType:"JSON",
success: function (data) {
if(data.success){
currentPrinter.clodoplisence = clodoplisence;
printAbgRollLabel(JSON.parse(data.printData), currentPrinter);
//刷新表格
$('#dlg-cut-rolls').datagrid('reload');
$('#end_serial_no').textbox('setValue', '');
$('#end_serial_no').textbox('textbox').focus();
}else{
$.messager.alert("Error",data.msg,"Error",);
}
}
})
}
//修正so_roll状态
function updateStatus(){
let func = '${func}';
$.ajax({
url: "/aoi/slitting/updateStatus",
type:"POST",
data:{
'rollNo': currentRoll,
'func': func,
},
dataType:"JSON",
success: function (ret) {
console.log(ret);
if(ret.success == false){
$.messager.alert('error',ret.errorMsg, 'error');
}else if(ret.success==true){
refreshRollInfo(currentRoll)
$.messager.alert('info',"Successfully",'info');
}
}
})
}
//扫描材料上级
function scanMaterialModal(){
// 打开对话框
$('#scan_material_dlg').dialog('open').dialog('center').dialog('setTitle', "材料扫描");
$('#scan_material_batch').val('').focus();
// 根据 是否显示材料 显示/隐藏结束码包输入
if (enableScanMaterialNo){
$('#material_serial_wrap').show();
// 处理材料接料时候的最后的码包(EasyUI textbox 需绑定到内部输入框)
$('#material_serial_no').textbox('setValue','');
var $serialIn = $('#material_serial_no').textbox('textbox');
//事件绑定
$serialIn.off('keydown.serial_in').on('keydown.serial_in', function(e){
if (e.which === 13) {
e.preventDefault();
scanSoRollMaterialBatch(true);
}
});
}else{
//$('#material_serial_wrap').hide();
}
// 触发布局重算,避免底部灰色残留
$('#scan_material_dlg').dialog('resize');
$('#scan_material_list').datagrid('resize');
// 初始化/刷新列表
$("#scan_material_list").datagrid({
url: "/material/querySoRollMaterialBatchs",
type: "POST",
dataType: "JSON",
queryParams: {
orderNo: currentOrder.orderNo,
rollNo: currentRoll,
operationNo: 20
}
});
}
//提交材料扫描(Enter 或 按钮)
function scanSoRollMaterialBatch(snFlag){
var rawStr = $.trim($('#scan_material_batch').val());
//检查
if(rawStr == null || "" == rawStr){
$.messager.alert('error','请扫描或输入材料条码','info');
$('#scan_material_batch').focus();
return;
}
//检查是否是接料 接料的时候必须输入码包号
if (enableScanMaterialNo && snFlag){
//继续往下走
}else if (enableScanMaterialNo && !snFlag){
$('#material_serial_no').textbox('setValue','');
$('#material_serial_no').textbox('textbox').focus();
return;
}
//拆分数据
var parts = rawStr.split(";");
//检查
// 至少需要8个字段 或者两个字段
if (!(parts.length == 2 || parts.length == 9)) {
$.messager.alert('error','材料批次数据有误!','info');
return null;
}
let endScanMaterialSerialNo = $.trim($('#material_serial_no').val());
$('#scan_material_batch').val('');
$('#material_serial_no').textbox('setValue','');
//组装数据
var resultRow = {"orderNo": currentOrder.orderNo, "operationNo": 20, "operationName": "Abg", "rollNo": currentRoll,
"qrCode": rawStr, "scanSerialFlag": enableScanMaterialNo, "endSerialNo": endScanMaterialSerialNo, "username": username};
$.ajax({
url: "/material/scanSoRollMaterialBatch",
type: "POST",
dataType: "JSON",
async: false,
contentType: "application/json",
data: JSON.stringify(resultRow),
success: function (data) {
if(data && data.success){
$('#scan_material_batch').val('').focus();
$('#material_serial_no').textbox('setValue','');
$('#scan_material_list').datagrid('reload');
$.messager.show({title: 'Point',
msg: data.resultMsg,
timeout: 1500,
showType: 'slide'});
}else if(data && data.resultCode == 201){
$('#scan_material_batch').val('').focus();
$('#material_serial_no').textbox('setValue','');
$('#scan_material_list').datagrid('reload');
}else{
$.messager.alert('error', data.resultMsg || '扫描失败','error');
}
}
});
}
// 在文本域按Enter提交(简洁写法)
$('#scan_material_batch').keypress(function(e){
if(e.which === 13){
e.preventDefault();
scanSoRollMaterialBatch(false);
}
});
</script>
</@master.layout>