354 lines
8.3 KiB
Plaintext
354 lines
8.3 KiB
Plaintext
var g_locationSkipList=[92];
|
|
var g_targetList=[91];
|
|
var g_subSystem={};
|
|
var g_specBtn=[]
|
|
var g_prefixTitle="";
|
|
|
|
//showMessageDialog(res);
|
|
|
|
function initTreeWidgetBySkip(headerNames,splitFlag,skipList,useDefaultAction,devFlag,prefix,specBtn) {
|
|
getSubSystem()
|
|
g_locationSkipList=skipList;
|
|
g_specBtn=specBtn;
|
|
g_prefixTitle=prefix;
|
|
initTree(headerNames,splitFlag,false,devFlag);
|
|
if(useDefaultAction===true){
|
|
SForm.m_treeWidget.itemClicked.connect(slot_locationListItemClicked_default);
|
|
}
|
|
|
|
}
|
|
|
|
function initTreeWidgetByTarget(headerNames,splitFlag,targetList){
|
|
g_targetList=targetList;
|
|
initTree(headerNames,splitFlag,true);
|
|
|
|
}
|
|
|
|
|
|
|
|
//三层
|
|
function initTree(headerNames,splitFlag,useTarget,devFlag){
|
|
SForm.m_treeWidget.setHeaderNames(headerNames);
|
|
var res;
|
|
if(useTarget===true){
|
|
res=initTreeMapByTarget(splitFlag);
|
|
}else{
|
|
res=initTreeMapBySkip(splitFlag);
|
|
}
|
|
var treeMap=res[0];
|
|
var parentDescMap=res[1];
|
|
var childDescMap=res[2];
|
|
var tagLocationIdMap=res[3];
|
|
for (var key in treeMap){
|
|
var parentData=[key]
|
|
var parentDisplay=[parentDescMap[key]]
|
|
SForm.m_treeWidget.addItem(parentDisplay,parentData);
|
|
|
|
var locationId=tagLocationIdMap[key]
|
|
var devs
|
|
if(devFlag==="BMS"){
|
|
devs=getBMSDevTagByLocation(locationId,key)
|
|
}else if(devFlag==="PCS"){
|
|
devs=getPCSDevTagByLocation(locationId,key)
|
|
}else if(devFlag==="XBCK"){
|
|
devs=getXBCKDevTagByLocation(locationId,key)
|
|
}else{
|
|
showMessageDialog("Tree-ERR: not valid flag "+devFlag);
|
|
return
|
|
}
|
|
for(var j=0;j<devs[0].length;j++){
|
|
var childDisplay_dev=[]
|
|
var childData_dev=[]
|
|
childDisplay_dev.push(devs[1][j])
|
|
childData_dev.push(devs[0][j])
|
|
SForm.m_treeWidget.addItem(parentDisplay[0],childDisplay_dev,childData_dev);
|
|
}
|
|
}
|
|
|
|
SForm.m_treeWidget.setItemSelected(0,0)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function slot_locationListItemClicked_default(index,text, data) {
|
|
var curTag = SForm.m_treeWidget.currentData();
|
|
if(curTag.indexOf("{") === -1){
|
|
return
|
|
}
|
|
//showMessageDialog(curTag);
|
|
var tmpObj=JSON.parse(curTag)
|
|
reLink_default(tmpObj.locationTag,tmpObj.tag,tmpObj.sub_system);
|
|
SForm.m_title.setText(g_prefixTitle+tmpObj.display);
|
|
}
|
|
|
|
|
|
|
|
function initTreeMapBySkip(splitFlag){
|
|
//only two level
|
|
var treeMap={};
|
|
var reg=/^cnq(\d+)/;
|
|
var childDescMap={};
|
|
var parentDescMap={};
|
|
var tagLocationIdMap={};
|
|
for (var locationId = 1; locationId <14; locationId++) {
|
|
if (g_locationSkipList.indexOf(locationId) != -1)
|
|
{
|
|
continue;
|
|
}
|
|
var locationInfo = SDAO.getLocationInfoById(locationId);
|
|
if (locationInfo[0] !== -1) {
|
|
var tag= locationInfo[1];
|
|
var name= locationInfo[2];
|
|
var prefix = tag.match(reg);
|
|
if (!prefix){
|
|
continue;
|
|
}
|
|
if (prefix.length){
|
|
treeMap[tag]=tag;
|
|
parentDescMap[tag]=name;
|
|
} else {
|
|
continue;
|
|
}
|
|
|
|
tagLocationIdMap[tag]=locationId;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
return [treeMap,parentDescMap,childDescMap,tagLocationIdMap]
|
|
}
|
|
|
|
function initTreeMapByTarget(splitFlag){
|
|
//only two level
|
|
var treeMap={};
|
|
var reg=/^cnq(\d+)/;
|
|
var childDescMap={};
|
|
var parentDescMap={};
|
|
for (var locationId = 1; locationId <14; locationId++) {
|
|
if (g_targetList.indexOf(locationId) != -1)
|
|
{
|
|
continue;
|
|
}
|
|
var locationInfo = SDAO.getLocationInfoById(locationId);
|
|
if (locationInfo[0] !== -1) {
|
|
var tag= locationInfo[1];
|
|
var name= locationInfo[2]
|
|
if (!prefix){
|
|
continue;
|
|
}
|
|
if (prefix.length){
|
|
treeMap[tag]=tag;
|
|
parentDescMap[tag]=name;
|
|
} else {
|
|
continue;
|
|
}
|
|
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
return [treeMap,parentDescMap,childDescMap]
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function splitDesc(desc,splitFlag){
|
|
|
|
var res=["##","##"]
|
|
|
|
var spiltRes=desc.split(splitFlag)
|
|
if (spiltRes.length==2){
|
|
res[0]=spiltRes[0]+splitFlag;
|
|
res[1]=spiltRes[1];
|
|
}
|
|
return res;
|
|
}
|
|
|
|
|
|
function reLink_default(reLinkTag_location,devTag,subSystem) {
|
|
var orginSeg;
|
|
var insertWithoutList = false;
|
|
var objKeyMap = SView.getAllObjKeyInfo();
|
|
|
|
for (var obj in objKeyMap) {
|
|
replaceOneObjTag_default(obj,reLinkTag_location,devTag,subSystem)
|
|
}
|
|
|
|
for(var i=0;i<g_specBtn.length;i++){
|
|
replaceOneObjTag_default(g_specBtn[i],reLinkTag_location,devTag,subSystem)
|
|
}
|
|
|
|
SView.subscribe(true);
|
|
|
|
//showMessageDialog(g_specBtn.length);
|
|
}
|
|
|
|
|
|
|
|
function replaceOneObjTag_default(obj,reLinkTag_location,devTag,subSystem){
|
|
|
|
var code = "SView.getObjKeyInfo('" + obj + "')";
|
|
var tempKeyInfo = SView.execute(code);
|
|
|
|
var loactionName = SView.truncTag(tempKeyInfo, "d");
|
|
var keyInfo = tempKeyInfo.replace(new RegExp(loactionName, "g"), reLinkTag_location);
|
|
|
|
var devName = SView.truncTag(tempKeyInfo, "dev");
|
|
keyInfo=keyInfo.replace(new RegExp(devName, "g"), devTag);
|
|
|
|
var subSystemName = SView.truncTag(tempKeyInfo, "a");
|
|
keyInfo=keyInfo.replace(new RegExp(subSystemName, "g"), subSystem);
|
|
|
|
code = "SView.setObjKeyInfo('" + obj + "', '" + keyInfo + "', true)";
|
|
//showMessageDialog(keyInfo);
|
|
SView.execute(code);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getBMSDevTagByLocation(locationId,locationTag){
|
|
|
|
var sql="select di.tag_name,di.sub_system from dev_info di INNER JOIN dev_group dg ON di.GROUP_TAG_NAME=dg.tag_name where di.GROUP_TAG_NAME LIKE '%BMS%' and di.LOCATION_ID="+locationId+" ORDER BY dg.DEV_GROUP_NO";
|
|
|
|
var devs=SDAO.dbSelect(sql);
|
|
|
|
if(devs[0]==-1){
|
|
showMessageDialog("Query-ERR: "+sql);
|
|
return;
|
|
}
|
|
|
|
|
|
var displayArr=[]
|
|
var objArr=[]
|
|
for(var i=1;i<devs.length;i++){
|
|
var str=devs[i][0].toString()
|
|
var strArr=str.split('.');
|
|
if(strArr.length==2){
|
|
var devObj={}
|
|
devObj.locationTag=locationTag;
|
|
devObj.tag=strArr[1];
|
|
devObj.sub_system=g_subSystem[devs[i][1]];
|
|
var tagArr=devObj.tag.split("_");
|
|
if(tagArr.length==2){
|
|
devObj.display=tagArr[0]
|
|
}else{
|
|
continue
|
|
}
|
|
var objStr=JSON.stringify(devObj)
|
|
objArr.push(objStr);
|
|
displayArr.push(devObj.display);
|
|
}else{
|
|
continue
|
|
}
|
|
}
|
|
return [objArr,displayArr];
|
|
|
|
}
|
|
|
|
|
|
function getPCSDevTagByLocation(locationId,locationTag){
|
|
|
|
var sql="select di.tag_name,di.sub_system from dev_info di INNER JOIN dev_group dg ON di.GROUP_TAG_NAME=dg.tag_name where di.GROUP_TAG_NAME LIKE '%PCS%' and di.LOCATION_ID="+locationId+" ORDER BY dg.DEV_GROUP_NO";
|
|
|
|
var devs=SDAO.dbSelect(sql);
|
|
|
|
if(devs[0]==-1){
|
|
showMessageDialog("Query-ERR: "+sql);
|
|
return;
|
|
}
|
|
|
|
|
|
var displayArr=[]
|
|
var objArr=[]
|
|
for(var i=1;i<devs.length;i++){
|
|
var str=devs[i][0].toString()
|
|
var strArr=str.split('.');
|
|
if(strArr.length==2){
|
|
var devObj={}
|
|
devObj.locationTag=locationTag;
|
|
devObj.tag=strArr[1];
|
|
devObj.sub_system=g_subSystem[devs[i][1]];
|
|
var tagArr=devObj.tag.split("_");
|
|
if(tagArr.length==2){
|
|
devObj.display=tagArr[0]
|
|
}else{
|
|
continue
|
|
}
|
|
var objStr=JSON.stringify(devObj)
|
|
objArr.push(objStr);
|
|
displayArr.push(devObj.display);
|
|
}else{
|
|
continue
|
|
}
|
|
}
|
|
return [objArr,displayArr];
|
|
|
|
}
|
|
|
|
function getXBCKDevTagByLocation(locationId,locationTag){
|
|
|
|
var sql="select di.tag_name,di.sub_system from dev_info di INNER JOIN dev_group dg ON di.GROUP_TAG_NAME=dg.tag_name where di.GROUP_TAG_NAME LIKE '%XBCK%' and di.LOCATION_ID="+locationId+" ORDER BY dg.DEV_GROUP_NO";
|
|
|
|
var devs=SDAO.dbSelect(sql);
|
|
|
|
if(devs[0]==-1){
|
|
showMessageDialog("Query-ERR: "+sql);
|
|
return;
|
|
}
|
|
|
|
|
|
var displayArr=[]
|
|
var objArr=[]
|
|
for(var i=1;i<devs.length;i++){
|
|
var str=devs[i][0].toString()
|
|
var strArr=str.split('.');
|
|
if(strArr.length==2){
|
|
var devObj={}
|
|
devObj.locationTag=locationTag;
|
|
devObj.tag=strArr[1];
|
|
devObj.sub_system=g_subSystem[devs[i][1]];
|
|
var tagArr=devObj.tag.split("_");
|
|
if(tagArr.length==2){
|
|
devObj.display=tagArr[0]
|
|
}else{
|
|
continue
|
|
}
|
|
var objStr=JSON.stringify(devObj)
|
|
objArr.push(objStr);
|
|
displayArr.push(devObj.display);
|
|
}else{
|
|
continue
|
|
}
|
|
}
|
|
return [objArr,displayArr];
|
|
|
|
}
|
|
|
|
function getSubSystem(){
|
|
|
|
var sql="select sub_system_id,tag_name from sys_model_sub_system_info" ;
|
|
|
|
var subSystems=SDAO.dbSelect(sql);
|
|
|
|
if(subSystems[0]==-1){
|
|
showMessageDialog("Query-ERR: "+sql);
|
|
return;
|
|
}
|
|
|
|
for(var i=1;i<subSystems.length;i++){
|
|
var id=subSystems[i][0].toString()
|
|
var tagName=subSystems[i][1]
|
|
g_subSystem[id]=tagName
|
|
}
|
|
}
|
|
|