<%@page import="com.northglass.Optima.OptimaHelper"%>
|
<%@page import="org.json.JSONObject"%>
|
<%@ page contentType="text/html;charset=UTF-8"%>
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
<%@page import="com.northglass.Globel.mes"%>
|
<%@page import="com.northglass.SqlHelper.*"%>
|
<%@page import="java.io.*"%>
|
<%@ page contentType="text/html;charset=UTF-8"%>
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
<c:set var="ctx" value="${pageContext.request.contextPath}" />
|
<html>
|
<head>
|
<style>
|
.rect{
|
background-color: lightblue;
|
border: 1px solid blue;
|
grid-row-start: 1;
|
overflow:auto;
|
}
|
table{
|
border-collapse: collapse;
|
width:100%
|
}
|
th {
|
border: 0.5px solid gray;
|
margin: 0px;
|
}
|
|
tr {
|
border: 0.5px solid gray;
|
margin: 0px;
|
height: 25px;
|
}
|
|
td {
|
border: 0.5px solid gray;
|
margin: 0px;
|
text-align: center;
|
}
|
#main_panel{
|
display: grid;
|
grid-template-rows: 13% 80% 7%;
|
height: 100%;
|
}
|
#tool_panel{
|
display:grid;
|
grid-template-columns: auto auto auto auto auto auto;
|
}
|
#view_panel{
|
display:grid;
|
grid-template-columns: 25% 50% 25%;
|
}
|
#status_panel{
|
display:flex;
|
}
|
|
.up_down{
|
margin-top:5px;
|
margin-bottom:5px;
|
}
|
.left_right{
|
margin-left:5px;
|
margin-right:5px;
|
}
|
|
.button1{
|
width: 60px;
|
|
}
|
#tab_panel2{
|
height: 100%;
|
width: 100%;
|
overflow-y: auto;
|
}
|
|
#tab_panel1{
|
height: 100%;
|
width: 100%;
|
overflow-y: auto;
|
}
|
|
.panel_border{
|
border: 1px solid gray;
|
margin: 5px 5px 5px 5px;
|
}
|
|
</style>
|
<script src="${ctx}/static/jquery/jquery-3.1.0.min.js" type="text/javascript"></script>
|
<script src="${ctx}/static/js/ng/layout_ex.js"></script>
|
<script src="${ctx}/static/js/ng/tb.js"></script>
|
</head>
|
<body>
|
<div id="main_panel" >
|
<div id="tool_panel" >
|
<div class="panel_border">
|
<div class="up_down">
|
<span>工程名称:</span>
|
<span>P2023011088</span>
|
</div>
|
<div class="up_down ">
|
<span>选择工程:</span>
|
<select style="width:120px">
|
<option>P2023011088</option>
|
<option>P2023013001</option>
|
<option>P2023012002</option>
|
</select>
|
<button class="button1">应用</button>
|
</div>
|
</div>
|
<div class="panel_border" style="display:grid;grid-template-rows:33% 33% 33%;">
|
<div style="display:grid;grid-template-columns:50% 50%;">
|
<div style="width:20px; height: 20px; border-radius: 10px;background-color: red;">
|
</div>
|
<span>PLC连接</span>
|
</div>
|
<div style="display:grid;grid-template-columns:50% 50%;">
|
<div style="width:20px; height: 20px; border-radius: 10px;background-color: red;">
|
</div>
|
<span>运行状态</span>
|
</div>
|
<div style="display:grid;grid-template-columns:50% 50%;">
|
<div style="width:20px; height: 20px; border-radius: 10px;background-color: red;">
|
</div>
|
<span>故障状态</span>
|
</div>
|
</div>
|
<div class="panel_border" style="display:grid;grid-template-columns:50% 50%;grid-template-rows:50% 50%;">
|
<button style="margin:5px">机器参数</button>
|
<button style="margin:5px">应用参数</button>
|
<button style="margin:5px">调试界面</button>
|
<button style="margin:5px">报警信息</button>
|
</div>
|
<div class="panel_border" style="display:grid;grid-template-columns:50% 50%;">
|
<div style="border-right:1px solid gray;display:grid;grid-template-rows:50% 50%;">
|
<button style="margin:5px;background-color: greenyellow;" >联机</button>
|
<button style="margin:5px">单机</button>
|
</div>
|
<div style="display:grid;grid-template-rows:50% 50%;">
|
<button style="margin:5px">手动</button>
|
<button style="margin:5px;background-color:greenyellow;" >自动</button>
|
</div>
|
</div>
|
|
<div class="panel_border" style="display:flex;flex-direction: column;">
|
<div>
|
<input type="checkbox" checked="true">自动寻边</input>
|
<input type="checkbox" checked="true">自动打标</input>
|
</div>
|
<div>
|
<input type="checkbox" checked="true">自动送出</input>
|
<input type="checkbox" checked="true">自动上片</input>
|
</div>
|
</div>
|
<div class="panel_border" style="display:grid;grid-template-columns:33% 33% 33%">
|
<button style="margin:5px;width:50px">前进</button>
|
|
<button style="margin:5px;width:50px">寻边</button>
|
<button style="margin:5px;width:50px">上片</button>
|
<button style="margin:5px;width:50px">后退</button>
|
<button style="margin:5px;width:50px">打标</button>
|
<button style="margin:5px;width:50px">送片</button>
|
</div>
|
|
</div>
|
<div id="view_panel">
|
|
<div id="tab_panel1" style="margin:5px">
|
|
</div>
|
<div id="layout_panel" style="background-color: gray;margin:5px" >
|
|
</div>
|
<div id="tab_panel2" class="panel_border">
|
|
</div>
|
</div>
|
<div id="status_panel" style="margin-top: 10px;width:100%" class="panel_border">
|
|
<span style="margin-right:20px">当前排版: 1</span>
|
<span style="margin-right:20px">玻璃厚度: 5mm</span>
|
<span style="margin-right:20px">工作状态: 寻边</span>
|
<span style="margin-right:20px">X:2000.0</span>
|
<span style="margin-right:20px">Y: 1000.0</span>
|
<span style="margin-right:20px">Z: 30.0</span>
|
</div>
|
</div>
|
|
|
<script>
|
var tab_opt1={
|
table:{
|
|
},
|
columns:[
|
{
|
name:"序号",
|
binding:"number",
|
|
},
|
{
|
name:"状态",
|
value:true,
|
type:"checkbox"
|
}
|
,
|
{
|
name:"物料编码",
|
binding:"wuliao",
|
|
}
|
,
|
{
|
name:"宽度",
|
binding:"width",
|
|
},
|
{
|
name:"高度",
|
binding:"height",
|
|
}
|
]
|
};
|
|
|
var tab_opt2={
|
table:{
|
|
},
|
columns:[
|
{
|
name:"序号",
|
binding:"number",
|
|
}
|
,
|
{
|
name:"状态",
|
//binding:"status",
|
type:"checkbox"
|
}
|
,
|
{
|
name:"小片ID",
|
binding:"mark",
|
|
}
|
,
|
{
|
name:"X",
|
binding:"x",
|
|
}
|
,
|
{
|
name:"Y",
|
binding:"y",
|
|
},
|
{
|
name:"内容",
|
binding:"mark",
|
|
}
|
]
|
};
|
|
var tab1=createTable(document.getElementById("tab_panel1"),tab_opt1);
|
var tab2=createTable(document.getElementById("tab_panel2"),tab_opt2);
|
|
var layouts=[];
|
var stocks;
|
var marks_list=[];
|
var current_stock_number;
|
function show_marks(){
|
for(var i=0;i<marks_list.length;i++){
|
if(marks_list[i].stock_number==current_stock_number){
|
tab2.update(marks_list[i].marks);
|
break;
|
}
|
}
|
}
|
|
function init_marks(marks){
|
marks_list=[];
|
var mark_item=null;
|
for(var i=0;i<marks.length;i++){
|
var mk=marks[i];
|
mk.number=i+1;
|
mk.status="";
|
if(mark_item==null){
|
mark_item={
|
stock_number:mk.layout_number,
|
marks:[]
|
};
|
marks_list.push(mark_item);
|
}
|
if(mark_item.stock_number==mk.layout_number){
|
mark_item.marks.push(mk);
|
}
|
else{
|
mark_item={
|
stock_number:mk.layout_number,
|
marks:[]
|
};
|
marks_list.push(mark_item);
|
mark_item.marks.push(mk);
|
}
|
}
|
|
}
|
|
var layout=createLayout(document.getElementById("layout_panel"));
|
|
var layout_opt=layout.createOneSelectOption(4000,3000,"lightblue","white");
|
var states=null;
|
var gongcheng_list=null;
|
function show_layout(){
|
for(var i=0;i<layouts.length;i++){
|
var lay=layouts[i];
|
if(lay.stock_number==current_stock_number){
|
layout_opt.items=lay.glasses;
|
layout.layout(layout_opt);
|
return;
|
}
|
}
|
}
|
|
function updateSelect(){
|
if(gongcheng_list!=null){
|
var sel=document.getElementById("gc_select");
|
var str="";
|
for(var i=0;i<gongcheng_list.length;i++){
|
str+="<option value='"+gongcheng_list[i].gongchenghao+"'>"+gongcheng_list[i].gongchenghao+"</option>"
|
}
|
sel.innerHTML=str;
|
}
|
}
|
var current_stock_id=null;
|
function updateState(){
|
if(states==null)
|
return;
|
|
// document.getElementById("gc_title").innerText=states.gongchenghao;
|
if(current_stock_id!=states.current_stock_id){
|
current_stock_id=states.current_stock_id;
|
for(var i=0;i<stocks.length;i++){
|
if(stocks[i].id==current_stock_id){
|
current_stock_number=stocks[i].number;
|
// document.getElementById("title_2").innerText=current_stock_number;
|
last_message=null;
|
show_layout();
|
show_marks();
|
break;
|
}
|
}
|
}
|
var st=states.work_state;
|
var ss=null;
|
switch(st){
|
case 0:
|
ss="等待上片";
|
break;
|
case 1:
|
ss="等待请求";
|
break;
|
case 2:
|
ss="等待接收";
|
break;
|
case 3:
|
ss="等待完成";
|
break;
|
}
|
// document.getElementById("title_3").innerText=ss;
|
// var s=states.last_message;
|
// update_ok();
|
}
|
|
|
|
|
function init_layout(glasses){
|
|
layouts=[];
|
var stock=null;
|
for(var i=0;i<glasses.length;i++){
|
var glass=glasses[i];
|
if(stock==null){
|
stock={
|
stock_number:glass.stock_number,
|
glasses:[]
|
};
|
layouts.push(stock);
|
}
|
if(stock.stock_number==glass.stock_number){
|
var g={
|
x:glass.x,
|
y:glass.y,
|
width:glass.w,
|
height:glass.h,
|
data:glass,
|
id:glass.id
|
|
};
|
if(glass.isremain==false){
|
g.text=""+glass.id+"\r\n"+g.width+"x"+g.height;
|
}
|
else{
|
g.text="";
|
}
|
|
stock.glasses.push(g);
|
}
|
else{
|
stock={
|
stock_number:glass.stock_number,
|
glasses:[]
|
};
|
layouts.push(stock);
|
var g={
|
x:glass.x,
|
y:glass.y,
|
width:glass.w,
|
height:glass.h,
|
data:glass
|
};
|
stock.glasses.push(g);
|
}
|
}
|
}
|
|
|
function update(){
|
|
var req={
|
method:"getData"
|
};
|
|
$.ajax( {type:"post",
|
data:
|
JSON.stringify(req),
|
contentType:"application/json",
|
url:"/gmms2/mesview/data/_layser",
|
success:function(data){
|
pack= JSON.parse(data);
|
// document.getElementById("layout").innerText=data;
|
states=pack.states[0];
|
updateState();
|
|
},
|
error:function(data){
|
alert(data);
|
}});
|
setTimeout(update,1000);
|
}
|
|
function test(){
|
var req={
|
method:"getView"
|
};
|
$.ajax( {type:"post",
|
data:
|
JSON.stringify(req),
|
contentType:"application/json",
|
url:"/gmms2/mesview/data/_layser",
|
success:function(data){
|
pack= JSON.parse(data);
|
stocks=pack.stocks;
|
// document.getElementById("layout").innerText=data;
|
tab1.update(pack.stocks);
|
init_layout(pack.glasses);
|
init_marks(pack.marks);
|
current_stock_number=1;
|
|
|
gongcheng_list=pack.gongchengs;
|
states=pack.states[0];
|
// updateSelect();
|
updateState();
|
|
},
|
error:function(data){
|
alert(data);
|
}});
|
}
|
|
|
|
function set_stock(mode){
|
var req={
|
method:"loadPiece",
|
stock_number:0
|
};
|
if(mode!=0){
|
req.stock_number=parseInt(document.getElementById("stock_set").value);
|
}
|
$.ajax( {type:"post",
|
data:
|
JSON.stringify(req),
|
contentType:"application/json",
|
url:"/gmms2/mesview/data/_layser",
|
success:function(data){
|
pack= JSON.parse(data);
|
if(pack.result=="ok"){
|
|
}
|
else{
|
alert(pack.result);
|
}
|
},
|
error:function(data){
|
alert(data);
|
}});
|
}
|
|
var last_message;
|
function update_ok(){
|
if(states==null)
|
return;
|
if(states.work_state==3){
|
var last=states.last_message;
|
if(last!=last_message){
|
last_message=last;
|
if(last==null)
|
return;
|
var body=tab2.z_b;
|
for(var i=0;i<body.children.length;i++){
|
var td=body.children[i].children[1];
|
var k=(i+1)*2+8;
|
if(last.length>k){
|
var ss= last.substring(i*2+8,i*2+10);
|
if(ss!="01"){
|
td.innerText="";
|
}
|
else{
|
td.innerText="√";
|
}
|
}
|
}
|
}
|
}
|
}
|
|
|
function useGongcheng(){
|
var s=document.getElementById("gc_select").value;
|
if(s==null || s==""){
|
return;
|
}
|
var req={
|
method:"useGongcheng",
|
gongchenghao:s
|
};
|
$.ajax( {type:"post",
|
data:
|
JSON.stringify(req),
|
contentType:"application/json",
|
url:"/gmms2/mesview/data/_layser",
|
success:function(data){
|
pack= JSON.parse(data);
|
if(pack.result=="ok"){
|
document.location.reload();
|
}
|
else{
|
alert(pack.result);
|
}
|
},
|
error:function(data){
|
alert(data);
|
}});
|
}
|
|
test();
|
|
// setTimeout(update,1000);
|
|
</script>
|
</body>
|
</html>
|