|
@@ -60,8 +60,9 @@
|
|
|
<div itemcode="11"><span>生产绩效月报</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
<div itemcode="12"><span>车间能耗日报</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
<div itemcode="13"><span>车间能耗月报</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
- <div itemcode="14"><span>白坯布靶向预测</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
+ <div itemcode="14"><span>白柸布靶向预测</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
<div itemcode="15"><span>毯业加工成本</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
+ <div itemcode="16"><span>能耗统计报表</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>
|
|
|
<!-- <div itemcode="1"><span>最近7天</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>-->
|
|
|
<!-- <div itemcode="2"><span>自定义日期</span><img src="image/imp2.png" style="float: right;margin-top: 7px;"></div>-->
|
|
|
</div>
|
|
@@ -1307,7 +1308,7 @@
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
- <td colspan="8">正在加载数据中...</td>
|
|
|
+ <td colspan="8">正在加载数据中...</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
@@ -1394,7 +1395,7 @@
|
|
|
</div>
|
|
|
<div id="iframeWin">
|
|
|
<div class="title"><img src="image/title_icon.png" style="margin: 7px;float: left;"><span class="text">--</span><img src="image/Close.png" style="margin: 7px;float: right;cursor: pointer;" onclick="CloseWin()"></div>
|
|
|
- <div class="content"><iframe src="" class=""></iframe></div>
|
|
|
+ <div class="content"><iframe src="" class=""></iframe></div>
|
|
|
</div>
|
|
|
</body>
|
|
|
<script type="text/html" id="maogodetail_tpl">
|
|
@@ -2656,7 +2657,9 @@
|
|
|
//e.stopPropagation();
|
|
|
showTTT();
|
|
|
break;
|
|
|
-
|
|
|
+ case 16:
|
|
|
+ window.open(SERVER_URL + "/export/tmp");
|
|
|
+ break;
|
|
|
}
|
|
|
})
|
|
|
//自定义导出日期确定
|
|
@@ -2772,7 +2775,7 @@
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
- //白坯布预测分析
|
|
|
+ //白柸布预测分析
|
|
|
$("#bpb_fx").on('click',function(e){
|
|
|
e.stopPropagation();
|
|
|
var ifm = $("#iframeWin").attr("class","newwin bpbWin").show();
|
|
@@ -2875,11 +2878,13 @@
|
|
|
}
|
|
|
//获取全厂统计数据
|
|
|
function GetFacData() {
|
|
|
+ //"/static/3d/data.json"
|
|
|
$.getJSON(SERVER_URL + "/stock", {}, function (res) {
|
|
|
setTimeout(function () {
|
|
|
//每1分钟主动查询一次数据
|
|
|
GetFacData()
|
|
|
}, 60*1000);
|
|
|
+ FacStockData = res;
|
|
|
if (res == null) {
|
|
|
return
|
|
|
}
|
|
@@ -2899,12 +2904,14 @@
|
|
|
var dataText = dataTpl;
|
|
|
//将模板中的属性替换成数据值
|
|
|
for (var attr in dataMap) {
|
|
|
+ /*
|
|
|
if(attr=="fdy" || attr=="poy"){
|
|
|
for (var yclattr in dataMap[attr]) {
|
|
|
dataText = dataText.replace("{"+attr+"."+yclattr+"}",dataMap[attr][yclattr].toString().padEnd(6," "));
|
|
|
}
|
|
|
continue
|
|
|
}
|
|
|
+ */
|
|
|
dataText = dataText.replace("{"+attr+"}",dataMap[attr].toString().padEnd(6," "));
|
|
|
}
|
|
|
//更新GIS标记内容
|
|
@@ -3063,6 +3070,10 @@
|
|
|
var playerNative = null;
|
|
|
var playerConnState = false;
|
|
|
var reconntimer = null;
|
|
|
+ var markerLClickObj=null; //当前点击的标记对象
|
|
|
+ var FacStockData = null;//全厂库存统计数据
|
|
|
+ var StockTypeName={"pt":"盘头","ycl":"原材料","bpb":"白坯布","cp":"成品"};
|
|
|
+ var StockTypeUnit={"pt":"个","ycl":"KG","bpb":"KG","cp":"条"};
|
|
|
//2.[可选]监听连接成功消息
|
|
|
player.on("Connected", () => {
|
|
|
console.log("Has connected to engine")
|
|
@@ -3125,21 +3136,21 @@
|
|
|
var obj02 = await player.Native.ModelTree.findItemByName("Box013",0,true,1);
|
|
|
var imgid = await player.Native.GisMarker.loadImage("data://icon/qietu/tip2.png");
|
|
|
var options = {
|
|
|
- "text": "白坯布(KG)\r\r当日入库:- 出库:-\r当月入库:- 出库:-\r",
|
|
|
+ "text": "白柸布("+StockTypeUnit['bpb']+")\r\r当前库存:-\r统计时间:7点至次日7点\r当日入库:- 出库:-\r当月入库:- 出库:-\r",
|
|
|
"visible": true,
|
|
|
//"maxLod": 130,
|
|
|
"minLod": 0,
|
|
|
"textFontSize":16,
|
|
|
"textColor": parseInt("0xffffffff"),
|
|
|
"contentPadding":[5,5,5,5],
|
|
|
- "userData":"bpb|白坯布(KG)\r\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
+ "userData":"bpb|白柸布("+StockTypeUnit['bpb']+")\r\r当前库存:{curr}\r统计时间:7点至次日7点\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
};
|
|
|
|
|
|
var obj02Aabb = await player.Native.ModelTree.getItemShapeInfo(obj02.item);
|
|
|
- options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1]-25, obj02Aabb.aabb[0][2]+100];
|
|
|
+ options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1]-10, obj02Aabb.aabb[0][2]+115];
|
|
|
//options.parentNode=tmp.item;
|
|
|
options.imgId = imgid
|
|
|
- options.imgSize = [0, 110];
|
|
|
+ options.imgSize = [0, 140];
|
|
|
var markPtr = await player.Native.GisMarker.create(options);
|
|
|
//await player.Native.GisMarker.update(markPtr, options);
|
|
|
MarkerMapFac["FAC"]={};
|
|
@@ -3148,20 +3159,20 @@
|
|
|
var pantou = await player.Native.ModelTree.findItemByName("Object023",0,true,1);
|
|
|
//var imgid = await player.Native.GisMarker.loadImage("rgba:255,0,255,255");
|
|
|
var options = {
|
|
|
- "text": "盘头(个)\r\r当日入库:- 出库:-\r当月入库:- 出库:-",
|
|
|
+ "text": "盘头("+StockTypeUnit['pt']+")\r\r当前库存:-\r统计时间:7点至次日7点\r当日入库:- 出库:-\r当月入库:- 出库:-",
|
|
|
"visible": true,
|
|
|
//"maxLod": 130,
|
|
|
"minLod": 0,
|
|
|
"textFontSize":16,
|
|
|
"textColor": parseInt("0xffffffff"),
|
|
|
"contentPadding":[5,5,5,5],
|
|
|
- "userData":"pt|盘头(个)\r\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
+ "userData":"pt|盘头("+StockTypeUnit['pt']+")\r\r当前库存:{curr}\r统计时间:7点至次日7点\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
};
|
|
|
var obj02Aabb = await player.Native.ModelTree.getItemShapeInfo(pantou.item);
|
|
|
options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1]-30, obj02Aabb.aabb[0][2]+45];
|
|
|
//options.parentNode=tmp.item;
|
|
|
options.imgId = imgid
|
|
|
- options.imgSize = [240, 110];
|
|
|
+ options.imgSize = [240, 140];
|
|
|
var markPtr = await player.Native.GisMarker.create(options);
|
|
|
MarkerMapFac["FAC"][markPtr]=options;
|
|
|
//await player.Native.GisMarker.update(markPtr, options);
|
|
@@ -3169,14 +3180,14 @@
|
|
|
var pantou = await player.Native.ModelTree.findItemByName("B412",0,true,1);
|
|
|
//var imgid = await player.Native.GisMarker.loadImage("rgba:255,0,255,255");
|
|
|
var options = {
|
|
|
- "text": "原材料(KG)\r\rfdy当日入库:- 出库:-\rfdy当月入库:- 出库:-\rpoy当日入库:- 出库:-\rpoy当月入库:- 出库:-",
|
|
|
+ "text": "原材料("+StockTypeUnit['ycl']+")\r\r当前库存:-\r统计时间:7点至次日7点\r当日入库:- 出库:-\r当月入库:- 出库:-\r",
|
|
|
"visible": true,
|
|
|
//"maxLod": 130,
|
|
|
"minLod": 0,
|
|
|
"textFontSize":16,
|
|
|
"textColor": parseInt("0xffffffff"),
|
|
|
"contentPadding":[5,5,5,5],
|
|
|
- "userData":"ycl|原材料(KG)\r\rfdy当日入库:{fdy.d-in} 出库:{fdy.d-out}\rfdy当月入库:{fdy.m-in} 出库:{fdy.m-out}\rpoy当日入库:{poy.d-in} 出库:{poy.d-out}\rpoy当月入库:{poy.m-in} 出库:{poy.m-out}"
|
|
|
+ "userData":"ycl|原材料("+StockTypeUnit['ycl']+")\r\r当前库存:{curr}\r统计时间:7点至次日7点\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
};
|
|
|
var obj02Aabb = await player.Native.ModelTree.getItemShapeInfo(pantou.item);
|
|
|
options.pos = [obj02Aabb.aabb[0][0], obj02Aabb.aabb[0][1]-30, obj02Aabb.aabb[0][2]+60];
|
|
@@ -3188,22 +3199,34 @@
|
|
|
//await player.Native.GisMarker.update(markPtr, options);
|
|
|
//var imgid = await player.Native.GisMarker.loadImage("rgba:255,0,255,255");
|
|
|
var options = {
|
|
|
- "text": "成品(条)\r\r当日入库:- 出库:-\r当月入库:- 出库:-",
|
|
|
+ "text": "成品("+StockTypeUnit['cp']+")\r\r当前库存:-\r统计时间:7点至次日7点\r当日入库:- 出库:-\r当月入库:- 出库:-",
|
|
|
"visible": true,
|
|
|
//"maxLod": 130,
|
|
|
"minLod": 0,
|
|
|
"textFontSize":16,
|
|
|
"textColor": parseInt("0xffffffff"),
|
|
|
"contentPadding":[5,5,5,5],
|
|
|
- "userData":"cp|成品(条)\r\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
+ "userData":"cp|成品("+StockTypeUnit['cp']+")\r\r当前库存:{curr}\r统计时间:7点至次日7点\r当日入库:{d-in} 出库:{d-out}\r当月入库:{m-in} 出库:{m-out}\r"
|
|
|
};
|
|
|
- options.pos = [obj02Aabb.aabb[0][0]+120, obj02Aabb.aabb[0][1]-20, obj02Aabb.aabb[0][2]+50];
|
|
|
+ options.pos = [obj02Aabb.aabb[0][0]+120, obj02Aabb.aabb[0][1]+10, obj02Aabb.aabb[0][2]+65];
|
|
|
//options.parentNode=tmp.item;
|
|
|
options.imgId = imgid
|
|
|
- options.imgSize = [250, 110];
|
|
|
+ options.imgSize = [250, 140];
|
|
|
var markPtr = await player.Native.GisMarker.create(options);
|
|
|
MarkerMapFac["FAC"][markPtr]=options;
|
|
|
//await player.Native.GisMarker.update(markPtr, options);
|
|
|
+ //标记点击
|
|
|
+ Native.GisMarker.EventGisMarkerLClick.connect((event) => {
|
|
|
+ markerLClickObj = MarkerMapFac["FAC"][event.markerId];
|
|
|
+ if(markerLClickObj==null || FacStockData==null) return;
|
|
|
+ setTimeout(function(dataType){
|
|
|
+ if(dataType==null) return;
|
|
|
+ dataType = dataType.split("|");
|
|
|
+ //打开库存趋势窗口
|
|
|
+ showStockTrend(dataType[0]);
|
|
|
+ },300,markerLClickObj["userData"]);
|
|
|
+ });
|
|
|
+
|
|
|
GetFacData();
|
|
|
}else{
|
|
|
showMarker(currentTargetType);
|
|
@@ -3284,7 +3307,7 @@
|
|
|
var errStr = await PlayerUtils.call(Native.Model.loadModel, currentTargetType, cf);
|
|
|
modelLoadState[currentTargetType] = true;
|
|
|
}
|
|
|
- showMarker(currentTargetType);
|
|
|
+ showMarker(currentTargetType);
|
|
|
await player.Native.Model.setModelVisible(currentTargetType,true);
|
|
|
player.Native.CameraAnimation.clearKeyFrame();
|
|
|
}
|
|
@@ -3428,48 +3451,59 @@
|
|
|
Native.Tools.setCurrentTool("system.Browse");
|
|
|
Native.ModelTree.EventBrowseLClick.connect((event) => {
|
|
|
if(event.object==null) return;
|
|
|
+
|
|
|
if(currentTargetType=="FAC"){
|
|
|
- var inTxt = "";
|
|
|
- if(inPoints[event.object.name]!=null){
|
|
|
- //进入楼层内部
|
|
|
- inTxt = txt;
|
|
|
- }else {
|
|
|
- for (var txt in inPoints) {
|
|
|
- var item = inPoints[txt];
|
|
|
- if(event.pos[1]>= item["x1"] && event.pos[2]<= item["y1"] &&event.pos[1]<= item["x2"] && event.pos[2]>= item["y2"]){
|
|
|
- inTxt = txt;
|
|
|
- break;
|
|
|
+ //必须延迟处理模型的点击事件,以判断是否是点击的标记,暂时没有找到更好的方法处理标记点击
|
|
|
+ setTimeout(function(event){
|
|
|
+ if(markerLClickObj!=null){
|
|
|
+ //标记被点击时,不执行模型点击逻辑
|
|
|
+ markerLClickObj = null;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ markerLClickObj = null;
|
|
|
+ var inTxt = "";
|
|
|
+ if(inPoints[event.object.name]!=null){
|
|
|
+ //进入楼层内部
|
|
|
+ inTxt = txt;
|
|
|
+ }else {
|
|
|
+ for (var txt in inPoints) {
|
|
|
+ var item = inPoints[txt];
|
|
|
+ if(event.pos[1]>= item["x1"] && event.pos[2]<= item["y1"] &&event.pos[1]<= item["x2"] && event.pos[2]>= item["y2"]){
|
|
|
+ inTxt = txt;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- if(inTxt!=""){
|
|
|
- switch(inTxt){
|
|
|
- case "IN02":
|
|
|
- loadIn02Model(Native);
|
|
|
- break;
|
|
|
- case "IN03":
|
|
|
- loadIn03Model(Native);
|
|
|
- break;
|
|
|
- case "IN04":
|
|
|
- loadIn04Model(Native);
|
|
|
- break;
|
|
|
- case "IN05":
|
|
|
- loadIn05Model(Native);
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ if(inTxt!=""){
|
|
|
+ switch(inTxt){
|
|
|
+ case "IN02":
|
|
|
+ loadIn02Model(Native);
|
|
|
+ break;
|
|
|
+ case "IN03":
|
|
|
+ loadIn03Model(Native);
|
|
|
+ break;
|
|
|
+ case "IN04":
|
|
|
+ loadIn04Model(Native);
|
|
|
+ break;
|
|
|
+ case "IN05":
|
|
|
+ loadIn05Model(Native);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ currentTargetType=inTxt;
|
|
|
+ backMasterView();
|
|
|
+ }else{
|
|
|
+ moveFacAnything("LClick", event);
|
|
|
}
|
|
|
- currentTargetType=inTxt;
|
|
|
- backMasterView();
|
|
|
- }else{
|
|
|
- moveFacAnything("LClick", event);
|
|
|
- }
|
|
|
+ },200,event);
|
|
|
return;
|
|
|
}
|
|
|
if(currentTargetType=="IN02") updateInfo("LClick", event);
|
|
|
if(currentTargetType=="IN03") move03Anything("LClick", event);
|
|
|
});
|
|
|
Native.ModelTree.EventBrowseRClick.connect((event) => {
|
|
|
+ if(markerLClickObj!=null) return;
|
|
|
updateInfo("RClick", event)
|
|
|
});
|
|
|
})
|
|
@@ -3998,11 +4032,17 @@
|
|
|
tpls.push('<tr style="font-weight:bold;background:rgb(236 239 243 / 48%)">');
|
|
|
for (var i1 = 0; i1 < datalist[i].length; i1++) {
|
|
|
tpls.push('<td>'+datalist[i][i1]+'</td>');
|
|
|
- }
|
|
|
+ }
|
|
|
tpls.push('</tr>');
|
|
|
}
|
|
|
tbody.html(tpls.join(''));
|
|
|
$("#ttt").show();
|
|
|
}
|
|
|
|
|
|
+ function showStockTrend(type){
|
|
|
+ var ifm = $("#iframeWin").attr("class","newwin bpbWin").show();
|
|
|
+ ifm.find(".title .text").html(StockTypeName[type]+'库存趋势');
|
|
|
+ ifm.find("iframe").attr({"src":"stock_trend.html#"+type});
|
|
|
+ }
|
|
|
+
|
|
|
</script>
|