[前台] 首頁 工單進度圖表 | 告警系統 預設全選 | 運維管理 bug 修正 | 系統監控 部分小類小卡片大小設定

| [後台] WSP 新增模型匯入參數
[前台API] 新增工單 Api
This commit is contained in:
Celeste 2023-02-24 16:03:17 +08:00
parent 6bc6493cd9
commit d015c29d34
11 changed files with 212 additions and 932 deletions

View File

@ -257,13 +257,26 @@
/* 0201 更換好電梯順序 */
/* launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dGEzaHFzZmZ6cWJub3V4a3BsZGt1a3NldzRzajIxdzUtYmltc19tb2RlbHMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8wMjAxLm53ZA")*/
// 0202 將感測器新增到電梯內
launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8wMjAyLm53ZA==")
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8wMjAyLm53ZA==")
//launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlFX2ZvcmdlX3Rlc3QvJUUzJFTgwJTkwQVJDJUUzJTgwJTkxXzIwMjJfMTJfMTMubndk');//new ARC
//launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwTUVQJUUzJTgwJTkxXzIwMjJfMTJfMTMubndj');//new MEP
//launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwQVJDJUUzJTgwJTkxJUU1JTg1JUE4JUU2JUEzJTlGXzIwMjJfMTJfMTMubndj');//全棟 ARC
//0218
// 感測器修正
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8wMjE4Lm53ZA")
// 0221 電梯細節 30
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTklOUIlQkIlRTYlQTIlQUYlRTclQjQlQjAlRTclQUYlODAlRTclODklODhfMDIyMS5ud2Q")
// 0222 電梯 30
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTklOUIlQkIlRTYlQTIlQUYlRTclQjQlQjAlRTclQUYlODAlRTclODklODhfMDIyMi5ud2Q")
// 0224 電梯 30
launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTklOUIlQkIlRTYlQTIlQUYlRTclQjQlQjAlRTclQUYlODAlRTclODklODhfMDIyNC5ud2Q")
// 0221 WSP
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dmVnb29nemNhdmNia2l0aHl2bHJzdnJjdGg2dHR3eWgtMjAyMzAyX2libXMvQmFucWlhbyUyMFRhaXBlaSUyME1haW4lMjBPZmZpY2UtQUxMXzAyMjEubndk")
});
function move1Floor() {
@ -395,6 +408,8 @@
}
function importDevCor() {
//console.log(tagIdDevList)
ImportDevForCor();
ImportForgeRoom();
}

View File

@ -268,7 +268,6 @@ function onDocumentLoadSuccess(doc) {
// })
//})
allDbIdsStr.forEach((dbId) => {
curDbId = parseInt(dbId);
viewer.getProperties(curDbId, function (e) {
@ -297,11 +296,17 @@ function onDocumentLoadSuccess(doc) {
//console.log("position: (" + (position.x).toFixed(2) + ", " + (position.y).toFixed(2) + ", " + (position.z).toFixed(2) + ")");
//console.log("--------------------------------------------------");
////}
tagIdDevList.push({ device_number: item.displayValue, device_coordinate_3d: '{ "x": ' + (position.x).toFixed(2) + ', "y": ' + (position.y).toFixed(2) + ', "z": ' + (position.z).toFixed(2) + ' }', forge_dbid: e.dbId, room_name: "" });
tagIdDevList.push(
{
device_number: item.displayValue,
device_coordinate_3d: '{ "x": ' + (position.x).toFixed(2) + ', "y": ' + (position.y).toFixed(2) + ', "z": ' + (position.z).toFixed(2) + ' }',
forge_dbid: e.dbId, room_name: ""
});
}
}
}
if (item.displayName == "【room_id】") {
tagIdDevList = tagIdDevList.map(tagItem => {
if (tagItem.forge_dbid === e.dbId) {
@ -310,6 +315,48 @@ function onDocumentLoadSuccess(doc) {
return tagItem
})
}
if (item.displayName == "Group_id" && item.displayValue !== '') {
//取得座標
let bounds = new THREE.Box3();
instanceTree.enumNodeFragments(e.dbId, (fragId) => {
let box = new THREE.Box3();
fragList.getWorldBounds(fragId, box);
bounds.union(box);
}, true);
var position = bounds.center();
tagIdDevList.push({
device_number: item.displayValue,
//device_coordinate_3d: '{ "x": ' + (position.x).toFixed(2) + ', "y": ' + (position.y).toFixed(2) + ', "z": ' + (position.z).toFixed(2) + ' }',
forge_dbid: e.dbId,
room_name: ""
})
}
if (item.displayName == "Tag_name" && item.displayValue !== '') {
//取得座標
let bounds = new THREE.Box3();
instanceTree.enumNodeFragments(e.dbId, (fragId) => {
let box = new THREE.Box3();
fragList.getWorldBounds(fragId, box);
bounds.union(box);
}, true);
var position = bounds.center();
if (tagIdDevList.some(item => item.forge_dbid === e.dbId)) {
tagIdDevList.find(item => item.forge_dbid === e.dbId).node = {
device_number: item.displayValue,
device_coordinate_3d: '{ "x": ' + (position.x).toFixed(2) + ', "y": ' + (position.y).toFixed(2) + ', "z": ' + (position.z).toFixed(2) + ' }',
forge_dbid: e.dbId,
room_name: ""
}
} else {
tagIdDevList.push({
device_number: item.displayValue,
device_coordinate_3d: '{ "x": ' + (position.x).toFixed(2) + ', "y": ' + (position.y).toFixed(2) + ', "z": ' + (position.z).toFixed(2) + ' }',
forge_dbid: e.dbId,
room_name: ""
})
}
}
});
})
})

View File

@ -299,7 +299,11 @@
pageAct.alr_startdate = $("#alr_startdate").val();
pageAct.alr_enddate = $("#alr_enddate").val();
getData();
pageAct.SysType = 'all';
if (!first) getData();
else selAllSysVal($('#selAllSys'))
// getData();
});
onEvent('change', '#alr_startdate, #alr_enddate', function () {
@ -551,20 +555,20 @@
if (i2 == 0 && i == 0) {
firstMain = v.main_system_tag;
firstSub = v2.sub_system_tag;
console.log(v.main_system_tag, v2.sub_system_tag)
}
});
});
if (pageAct.mainStatus) {
$('#alr_mainList').html(mainStrHtml);
$('#alr_subList').html(subStrHtml);
console.log($('input[data-type=main][id=' + firstMain + ']'))
$('input[data-type=main][id=' + firstMain + ']').click();
}
else {
$('#alr_mainList').html(subStrHtml);
}
$('input[data-type=sub][id=' + firstSub + ']').click();
// $('input[data-type=sub][id=' + firstSub + ']').click();
}
ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send();
}
@ -584,6 +588,7 @@
}
});
$(elem).html('取消全選');
pageAct.SysType = 'all';
}
else {
@ -643,6 +648,7 @@
}
function refTable(data) {
console.log(data)
let tag = "#alertTable";
$.each(data, function (i, v) {
@ -671,7 +677,7 @@
"title": "異常ID",
"data": "uuid",
render: (data) => {
return data.split("-")[0]
return data.$val ? data.$val.split("-")[0] : data.split("-")[0]
}
},
{
@ -736,6 +742,7 @@
ytAjax = new YourTeam.Ajax(url, objSendData, function (rel) {
if (rel.code == "0000")
a = rel.data;
// console.log(rel)
}, null, "POST").send();
return a;

File diff suppressed because it is too large Load Diff

View File

@ -634,7 +634,7 @@
"title": "異常代號",
"data": "error_code",
render: (data) => {
return data?.split('-')[0];
return data?.split('-')[0] || '';
}
},
{
@ -748,6 +748,13 @@
"title": "位置",
"data": "location",
},
{
"title": "異常代號",
"data": "error_code",
render: (data) => {
return data?.split('-')[0] || '';
}
},
{
"title": "表單號",
"data": "formId",

View File

@ -1014,6 +1014,7 @@
}
//現在樓層
if (data.point_name == "CP") {
//console.log("電梯樓層", matchDevice.device_number, data.value)
$(`#${matchDevice.device_number}_card [name=curFloor]`).text(data.value);
}
@ -1897,10 +1898,10 @@
/*console.log(floChart)*/
floChart.getZr().on('click', function (params) {
console.log("click", params);
// console.log("click", params);
var pixelPoint = [params.offsetX, params.offsetY];
var dataPoint = floChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);
console.log(dataPoint);
// console.log(dataPoint);
temp_device_on_floor_map = [{
device_guid: selected_temp_device.device_guid,
@ -2412,7 +2413,7 @@
// 設置 模型隱藏或透明
function setInviForge(type, devDbIds) {
console.log("devDbIds", devDbIds)
// console.log("devDbIds", devDbIds)
if (type == "Hide") {
hideAllObjects(devDbIds);
} else if (type == "Opacity") {

View File

@ -397,7 +397,7 @@
allDevList.forEach(({ device_nodes }) => {
subDevDbId = [...subDevDbId, ...device_nodes.map(n => n.forge_dbid)]
})
//console.log(devDbIds, subDevDbId)
// 從資料庫設定不可視模型的類型,若沒有取道該小類不可視類型,則套用資料庫設定預設類型
if (forgeInvType) {
setInviForge(forgeInvType, [...devDbIds, ...subDevDbId]);
@ -499,6 +499,8 @@
if (pageAct.sysSubTag == "W2") {
// console.log("@@",pageAct, pageAct.sub_system_tag)
getWaterNodeId(viewer);
} else if (pageAct.sysSubTag == "E1") {
getE1NodeId(viewer)
}
}, () => {
@ -531,6 +533,15 @@
}
// 高壓配電盤染色
function getE1NodeId() {
viewer.model.search("高壓電力", (nodeIds) => {
// console.log("2",nodeIds)
viewer.show(nodeIds)
}, (e) => { console.log(e) })
}
function getHotspotPoint(callback = null) {
let url = baseApiUrl + "/api/GetDevForCor";
let sendData = {
@ -539,6 +550,7 @@
"device_system_tag": pageAct.sysMainTag,
"device_name_tag": pageAct.sysSubTag,
};
//console.log(sendData)
objSendData.Data = sendData;
ytAjax = new YourTeam.Ajax(url, objSendData, function (res) {
if (!res || res.code != "0000" || !res.data) {
@ -556,6 +568,7 @@
myDataList.push(item);
})
//console.log("1", myDataList)
setHotspotPoint(myDataList);
if (pageAct.sysMainTag == "LT") {
setLightPoint(myDataList);
@ -567,7 +580,7 @@
}
function setHotspotPoint(myDataList = []) {
// console.log(myDataList)
//console.log("2",myDataList)
getHopspotPoint(myDataList);
}
@ -603,11 +616,10 @@
var parentEle = "";
onEvent("autodesk:click:sprite", "[name=forgeViewer]", function (e, obj) {
console.log("aaa", obj)
forgeUnFocusAll();
let position = [obj.event.target.toolController.lastClickX - 100, obj.event.target.toolController.lastClickY - 100];
let devObj = obj.myData;
let name = allDevList.filter(x => x.device_guid == devObj.device_guid)[0]?.full_name;
let name = allDevList.filter(x => x.device_guid == devObj.device_guid)[0]?.full_name || devObj.full_name;
devObj.full_name = name;
parentEle = crePosPopover(position, devObj);
$(parentEle).click();

View File

@ -300,10 +300,10 @@ class elevator3D {
}
fragProxyZ = fragProxy.position.z;
if (nodeId === 13777) {
// 改變感測器熱點位置
this.sensorObjs && this.sensorObjs[0]?.changePos(nodeId + 2, fragProxyZ)
}
// if(nodeId === 15200) {
// }
fragProxy.updateAnimTransform()
})
@ -798,7 +798,7 @@ async function addHotPoint(data) {
const viewableData = new DataVizCore.ViewableData();
viewableData.spriteSize = 24; // Sprites as points of size 24 x 24 pixels
console.log()
myDataList.forEach((myData, index) => {
const dbId = 10 + index;
const myPosition = myData.position;

View File

@ -751,7 +751,7 @@ namespace FrontendWebApi.ApiControllers
@device_name_tag = p.device_name_tag,
@device_floor_tag = p.device_floor_tag
};
var d = await backendRepository.GetAllAsync<DevForCor>($@"select device_guid,device_number,device_floor_tag,device_coordinate_3d,forge_dbid
var d = await backendRepository.GetAllAsync<DevForCor>($@"select device_guid,device_number,device_floor_tag,device_coordinate_3d,forge_dbid, full_name
from device where deleted = 0 and device_area_tag = @device_area_tag and device_building_tag = @device_building_tag
and device_system_tag = @device_system_tag and device_name_tag = @device_name_tag
and device_floor_tag = ifnull(@device_floor_tag, device_floor_tag) ", param);

View File

@ -1025,24 +1025,13 @@ namespace FrontendWebApi.ApiControllers
/// </summary>
/// <param name="ofl"></param>
/// <returns></returns>
public async Task<ApiResult<object>> OpeRecListAllTime([FromBody] OperationFindList ofl)
public async Task<ApiResult<object>> OpeRecListAllTime()
{
ApiResult<object> apiResult = new ApiResult<object>();
List<Operation_Record> orl = new List<Operation_Record>();
string sWhere = "";
try
{
if (ofl.work_type != 1 && ofl.work_type != 2)
{
apiResult.Code = "0001";
apiResult.Msg = "無此項目類別";
return apiResult;
}
if (ofl.serial_number != null)
{
sWhere += $@" and opr.formId like '%{ofl.serial_number}%'";
}
var sqlString = $@"select distinct(error_code) ,opr.status, concat(d.device_floor_tag, ' ', d.full_name) as device_name, ui.full_name as user_full_name
from operation_record opr
left join device d on opr.fix_do_code = d.device_number and d.deleted = 0 and d.device_area_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 1)
@ -1052,7 +1041,7 @@ namespace FrontendWebApi.ApiControllers
left join userinfo ui on opr.work_person_id = ui.userinfo_guid and ui.deleted = 0
where opr.deleted = 0 and opr.work_type = 2" + sWhere;
orl = await backendRepository.GetAllAsync<Operation_Record>(sqlString);
List<Operation_Record> orl = await backendRepository.GetAllAsync<Operation_Record>(sqlString);
int Finished = orl.Where(x => x.status_name == "完成").Count();
int NotFinished = orl.Where(x => x.status_name == "未完成").Count();
object Status = new {finish= Finished, notfinish= NotFinished };
@ -1064,8 +1053,6 @@ namespace FrontendWebApi.ApiControllers
{
apiResult.Code = "9999";
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
string json = System.Text.Json.JsonSerializer.Serialize(ofl);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + json);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}

View File

@ -147,6 +147,7 @@ namespace FrontendWebApi.Models
public string device_number { get; set; }
public string device_floor_tag { get; set; }
public string device_coordinate_3d { get; set; }
public string full_name { get; set; }
public int? forge_dbid { get; set; }
}