358 lines
6.5 KiB
Plaintext
358 lines
6.5 KiB
Plaintext
|
|
var g_simBeginTime = [];
|
|
var g_simulatePkg = {};
|
|
var g_simulateSeq = [];
|
|
var g_simulateMode = false;
|
|
var g_keyMap = {};
|
|
var g_iconAction = {};
|
|
|
|
function start()
|
|
{
|
|
SView.clicked.connect(g_pClicked);
|
|
SView.contextMenu.connect(onMenuClicked);
|
|
|
|
if(JSON.stringify(g_iconAction) == "{}")
|
|
{
|
|
var str = SDAO.readFileData("../../data/model/iconAction.json");
|
|
g_iconAction = JSON.parse(str);
|
|
}
|
|
}
|
|
|
|
function g_pClicked(itemCout, msgStr)
|
|
{
|
|
var context = SApp.getAppContext();
|
|
if(itemCout > 0 && context == 1)
|
|
{
|
|
executeYcCmd(msgStr);
|
|
}
|
|
|
|
if(itemCout > 0 && context == 3)
|
|
{
|
|
executeSimulateCmd(msgStr);
|
|
}
|
|
}
|
|
|
|
function executeYcCmd(msgStr)
|
|
{
|
|
var tags = msgStr.split('^');
|
|
var keyInfo = "";
|
|
var args = "";
|
|
if(tags.length < 10)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var objType = tags[0];
|
|
var objName = tags[1];
|
|
var iconName = tags[2];
|
|
var curValue = tags[3];
|
|
var keyTagName = tags[8];
|
|
|
|
if(objName!="多态文本")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(keyTagName=="")
|
|
{
|
|
return;
|
|
}
|
|
|
|
//showMessageDialog(objName);
|
|
//SWnd.fileOpen("遥测.glx", "opt", FILE_OPEN_DIALOG, keyTagName);
|
|
}
|
|
|
|
function executeSimulateCmd(msgStr)
|
|
{
|
|
var tags = msgStr.split('^');
|
|
var keyInfo = "";
|
|
var args = "";
|
|
if(tags.length < 10)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var objType = tags[0];
|
|
var objName = tags[1];
|
|
var iconName = tags[2];
|
|
var curValue = tags[3];
|
|
var keyTagName = tags[8];
|
|
|
|
if(objName=="")
|
|
{
|
|
return;
|
|
}
|
|
if(keyTagName=="")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!(iconName in g_iconAction))
|
|
{
|
|
return;
|
|
}
|
|
if(0 == g_iconAction[iconName]["Simulate"])
|
|
{
|
|
return;
|
|
}
|
|
|
|
var retList = SView.getKeyInfoValue(keyTagName,objName);
|
|
var value = retList[0];
|
|
var status = retList[1];
|
|
var scriptValue = retList[2];
|
|
|
|
if(g_keyMap[keyTagName] == null)
|
|
{
|
|
g_keyMap[keyTagName] = retList;
|
|
}
|
|
|
|
var keyTag = SView.truncTag(keyTagName, "key");
|
|
var valueNum = SDAO.getDigValueNum(keyTag);
|
|
|
|
if(valueNum == 1)
|
|
{
|
|
if(value == 0)
|
|
value = 1;
|
|
else
|
|
value = 0;
|
|
}
|
|
else if(valueNum == 2)
|
|
{
|
|
if(value <= 1)
|
|
value = 2;
|
|
else
|
|
value = 1;
|
|
}
|
|
else
|
|
{
|
|
if(value == 1)
|
|
value = 2;
|
|
else
|
|
value = 1;
|
|
}
|
|
|
|
|
|
var lockRet = SView.checkLockLogic(keyTag, value);
|
|
if(lockRet[0] == false)
|
|
{
|
|
showMessageDialog(lockRet[1], lockRet[0]);
|
|
return;
|
|
}
|
|
|
|
SView.addReqData(keyTagName, value, 256);
|
|
|
|
var simulateInfo = {};
|
|
simulateInfo.beginTime = g_simBeginTime;
|
|
simulateInfo.tagName = keyTagName;
|
|
if(scriptValue == 1 || scriptValue == 3)
|
|
{
|
|
simulateInfo.desc = "分闸";
|
|
}
|
|
else
|
|
{
|
|
simulateInfo.desc = "合闸";
|
|
}
|
|
|
|
g_simulateSeq.push(simulateInfo);
|
|
|
|
SView.callTopo();
|
|
}
|
|
|
|
function toFillInt(value)
|
|
{
|
|
var len = 2;
|
|
var ret = (Array(len).join('0') + value).slice(-len);
|
|
|
|
return ret;
|
|
}
|
|
|
|
function beginSimulate()
|
|
{
|
|
var date = new Date;
|
|
var year = date.getUTCFullYear();
|
|
var month = date.getUTCMonth();
|
|
var day = date.getUTCDate();
|
|
var hour = date.getUTCHours();
|
|
var min = date.getUTCMinutes();
|
|
var second = date.getUTCSeconds();
|
|
g_simBeginTime[0] = date.getFullYear() + "-" + toFillInt(date.getMonth()+1) + "-" + toFillInt(date.getDate()) + " " + toFillInt(date.getHours()) + ":" + toFillInt(date.getMinutes()) + ":" + toFillInt(date.getSeconds());
|
|
g_simBeginTime[1] = Date.UTC(year,month,day,hour,min,second);
|
|
}
|
|
|
|
function finishSimulate()
|
|
{
|
|
var context = SApp.getAppContext();
|
|
if(g_simulateSeq.length == 0 || context == 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(key in g_keyMap)
|
|
{
|
|
SView.addReqData(key, g_keyMap[key][0], g_keyMap[key][1]);
|
|
}
|
|
|
|
SView.callTopo();
|
|
|
|
g_simulateSeq = [];
|
|
g_simulatePkg = {};
|
|
g_keyMap = {};
|
|
}
|
|
|
|
function initTicketInfo()
|
|
{
|
|
var context = SApp.getAppContext();
|
|
if(g_simulateSeq.length == 0 || context == 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
g_simulatePkg.content = g_simulateSeq;
|
|
var str = JSON.stringify(g_simulatePkg);
|
|
|
|
SWnd.fileOpen("界面框架/panel_opt_ticket.glx", "simulate", 3);
|
|
var code = "insertRecord('" + str + "')";
|
|
SWnd.execute("", "界面框架/panel_opt_ticket.glx", code, -1);
|
|
}
|
|
|
|
function getTicketMode()
|
|
{
|
|
var code = "getTicketMode()";
|
|
var ret = SWnd.execute("", "index.glx", code, -1);
|
|
return ret;
|
|
}
|
|
|
|
function setContextMenu(objInfo)
|
|
{
|
|
var context = SApp.getAppContext();
|
|
if(context != 1 &&
|
|
context != 3)
|
|
{
|
|
return;
|
|
}
|
|
if(context == 3)
|
|
{
|
|
menuInfo = ["退出模拟操作,1"];
|
|
return menuInfo;
|
|
}
|
|
|
|
var menuInfo;
|
|
if(objInfo == "")
|
|
{
|
|
menuInfo = ["遥信停闪,1"];
|
|
return menuInfo;
|
|
}
|
|
|
|
var tags = objInfo.split('^');
|
|
var code = "getTicketMode()";
|
|
var ticketMode = SWnd.execute("", "index.glx", code, -1);
|
|
if(ticketMode == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var valid = false;
|
|
var iconName = tags[1];
|
|
var keyTagName = tags[8];
|
|
switch(iconName)
|
|
{
|
|
case "刀闸":
|
|
case "断路器":
|
|
case "手车刀闸":
|
|
case "手车_上":
|
|
case "手车_下":
|
|
// case "电动隔离开关":
|
|
// case "断路器":
|
|
// case "手车":
|
|
valid = true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if(valid)
|
|
{
|
|
if(ticketMode == 1)
|
|
{
|
|
menuInfo = getTopicTicketList(keyTagName);
|
|
}
|
|
else if(ticketMode == 2)
|
|
{
|
|
menuInfo = ["工作票1,1","工作票2,1"];
|
|
}
|
|
else
|
|
return;
|
|
}
|
|
|
|
return menuInfo;
|
|
}
|
|
|
|
function onMenuClicked(menu, objCount, objInfo)
|
|
{
|
|
var context = SApp.getAppContext();
|
|
if(context != 1 &&
|
|
context != 3)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(menu == "退出模拟操作")
|
|
{
|
|
var code = "simulate()";
|
|
SWnd.execute("","界面框架/view_sim_operate.glx",code,1);
|
|
return;
|
|
}
|
|
|
|
if(menu == "遥信停闪")
|
|
{
|
|
SView.clearTwinkle();
|
|
return;
|
|
}
|
|
|
|
var tags = objInfo.split('^');
|
|
var keyInfo = "";
|
|
var args = "";
|
|
if(tags.length < 10)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var objType = tags[0];
|
|
var objName = tags[1];
|
|
var iconName = tags[2];
|
|
var curValue = tags[3];
|
|
var keyTagName = tags[8];
|
|
var ticketMode = getTicketMode();
|
|
if(ticketMode == 1)
|
|
{
|
|
SWnd.fileOpen("界面框架/panel_ticket_manage.glx", "", FILE_OPEN_DIALOG, "", menu);
|
|
}
|
|
else if(ticketMode == 2)
|
|
{
|
|
SWnd.fileOpen("界面框架/view_work_ticket.glx", "", FILE_OPEN_DIALOG, "", menu + "," + keyTagName);
|
|
}
|
|
else
|
|
{}
|
|
}
|
|
|
|
function getTopicTicketList(keyTagName)
|
|
{
|
|
var menuList = [];
|
|
var sqlStr = "select order_name from operation_order_model where id in(select distinct order_id from operation_order_model_info where key_id_tag = '" + keyTagName + "')";
|
|
var record = SDAO.dbSelect(sqlStr);
|
|
var count = record[0];
|
|
if(count < 0)
|
|
{
|
|
showMessageDialog("查询失败");
|
|
}
|
|
else
|
|
{
|
|
for(var i = 1; i <= count; i++)
|
|
{
|
|
menuList.push(record[i][0] + ",1");
|
|
}
|
|
}
|
|
|
|
return menuList;
|
|
}
|