Commit 867017e6 by chenjinjing

6月26日开会确定版本

parent 24d87868
import { mapLineTableData, mapSiteTableData, mapTableData } from '../../data/table/constructData';
import { keyValuePackage, tablePackage } from '../../dataPackage/inFrontOut';
import { keyValuePackage } from '../../dataPackage/inFrontOut';
import { getKeyValueOut } from '../../dataPackage/out';
import { change } from '../../dataPackage/inBackOut';
import { onceSheetBecomeOfblockData } from '../../util/analysisExcel';
......
......@@ -4,33 +4,34 @@
*/
import { riskTableData, fatalityTableData } from "../../data/table/constructData";
import { change, getLineOneData, getPopupOneData } from "../../dataPackage/inBackOut";
import { keyValuePackage } from "../../dataPackage/inFrontOut";
import { getOnceYBarChartOut } from "../../dataPackage/out";
/**
* 致命性风险分布
* 重大风险分布
* @param req
* @param res
*/
export function getFatality(req, res) {
let line = req.query.line || "全";
let line = req.query.line || "全";
let table = fatalityTableData();
let 全网 = [];
let 致命性风险 = [];
let riskTotal = [];
let level1Risk = [];
let fatalityConf = ["风险总数", "一级重大风险"];
for (let key in table) {
let {bodyList} = table[key];
let {count, thisLineCount} = countData(bodyList, line);
let fatalityTable = change(["line", "当前风险总数", "当前开工总数", "安全数", "风险可控数", "重点关注数", "风险总数", "一级重大风险"], table[key].bodyList);
全网.push({key, value:count, unit:""});
let {风险总数, 一级重大风险} = getLineOneData(line, fatalityTable, fatalityConf)
let thisCount = line == "全部" ? count : thisLineCount;
致命性风险.push({key, value:thisCount, unit:""})
riskTotal.push({key, value: 风险总数, unit:""});
level1Risk.push({key, value: 一级重大风险, unit:""});
}
let fatalityPackageData = {dataInfo: {"全网": 全网, "致命性风险": 致命性风险}, xUnit: "", yUnit: ""};
let fatalityPackageData = {dataInfo: {"风险总数": riskTotal, "一级重大风险": level1Risk}, xUnit: "", yUnit: ""};
let ret = {};
ret['fatality'] = getOnceYBarChartOut('致命性风险分布', fatalityPackageData);
......@@ -45,22 +46,28 @@ import { getOnceYBarChartOut } from "../../dataPackage/out";
* @param res
*/
export function getRisk(req, res) {
let line = req.query.line || "全线网";
if (line == "全部 ") line == "全线网";
let line = req.query.line || "全网";
if (line == "全部 ") line == "全网";
let table = riskTableData();
let result:any = {};
let dataIndex = table["风险详细"].headerList.indexOf(line);
let table = riskTableData();
let 基坑变形 = dataIndex == -1 ? 0 : table["风险详细"].bodyList[0][dataIndex];
let 地层损失率 = dataIndex == -1 ? 0 : table["风险详细"].bodyList[1][dataIndex];
let 旁通道地表沉降 = dataIndex == -1 ? 0 : table["风险详细"].bodyList[2][dataIndex];
let data = change(["line", "基坑变形", "地层损失率", "旁通道地表沉降"], table["风险详细"].bodyList);
let ret = {};
ret['jkbx'] = {title: '基坑变形', dataList: {key:"基坑变形", value:基坑变形}};
ret['dcssl'] = {title: '地层损失率', dataList: {key:"地层损失率", value:地层损失率}};
ret['ptddbcx'] = {title: '旁通道地表沉降', dataList: {key:"旁通道地表沉降", value:旁通道地表沉降}};
data.forEach(item => {
let dataLine = item.line;
if (line == dataLine) {
result['jkbx'] = {title: '基坑变形', dataList: {key:"基坑变形", value:item["基坑变形"]}};
result['dcssl'] = {title: '地层损失率', dataList: {key:"地层损失率", value:item["地层损失率"]}};
result['ptddbcx'] = {title: '旁通道地表沉降', dataList: {key:"旁通道地表沉降", value:item["旁通道地表沉降"]}};
}
});
/**
* 详细节点数据
*/
table = fatalityTableData();
for (let key in table ) {
......@@ -74,12 +81,12 @@ export function getRisk(req, res) {
let oncePackage = keyValuePackage(onceList);
let packageData = {title: `${keyStr}详细数据`, dataList: oncePackage};
switch(key) {
case "基坑":ret["jkxxsj"] = packageData;break;
case "盾构区间":ret["qjxxsj"] = packageData;break;
case "旁通道":ret["ptdxxsj"] = packageData;break;
case "基坑":result["jkxxsj"] = packageData;break;
case "盾构区间":result["qjxxsj"] = packageData;break;
case "旁通道":result["ptdxxsj"] = packageData;break;
}
}
res.send(ret);
res.send(result);
}
......
/**
* 土建形象进度
*/
import { civilEngineeringDetailsTableData, civilEngineeringTableData } from "../../data/table/stationPopupData";
import { change, getPopupMoreData } from "../../dataPackage/inBackOut";
export async function getCivilEngineering(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = civilEngineeringTableData();
//"线路", "站点名称", "站点状态", "区域", "正常完成", "正常延误", "一般延误", "严重延误"
let data = change(["line", "site", "state", "region", "normalCompletion", "normalDelay", "generalDelay", "seriousDelay"], tableData["土建形象进度数据"].bodyList );
let conf = ["region", "normalCompletion", "normalDelay", "generalDelay", "seriousDelay"];
let civilEngineering = getPopupMoreData(line, data, conf);
let result = {"civilEngineering": civilEngineering[site]}
res.send(result);
return result;
}
export async function getCivilEngineeringDetails(req, res) {
let region = req.query.region || "A区";
let tableData = civilEngineeringDetailsTableData();
let result:any = {};
let details:any = {};
for (let key in tableData) {
if (region == key) {
//"施工工序", "总量", "周计划工作量", "周完成工作量", "周完成比例", "完成状态", "总完成工作量", "总完成比例", "未完成原因"
let data = change(["constructionProcess", "total", "weeklyPlan", "weeklyCompletion", "weeklyRatio", "completionStatus", "totalCompletion", "totalProportion", "incompleteReason"], tableData[key].bodyList );
let conf = ["constructionProcess", "total", "weeklyPlan", "weeklyCompletion", "weeklyRatio", "completionStatus", "totalCompletion", "totalProportion", "incompleteReason"];
data.forEach(item => {
let detailsData = {};
if (!details[region]) details[region] = [];
for (let name = 0; name < conf.length; name++) {
detailsData[conf[name]] = item[conf[name]];
}
details[region].push(detailsData);
});
}
}
let detailsList = [];
for (let key in details) {
detailsList.push({name: key, dataList: details[key]})
}
result["details"] = detailsList;
res.send(result);
return result;
}
\ No newline at end of file
/**
* 建设资料
*/
import { constructionMaterialsDetailsTableData, constructionMaterialsTableData } from "../../data/table/stationPopupData";
import { change, getPopupDetailsData, getPopupMoreData } from "../../dataPackage/inBackOut";
/**
* 建设资料
* @param line 线路名称
* @param site 站点名称
* @returns constructionMaterials: {site: "站点名称", state: "站点状态", data: [{informationType: "资料类型", informationNum: 资料数量, informationId: "建设资料编号" }, ...... ]}
*/
export async function getConstructionMaterials(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = constructionMaterialsTableData();
//"线路", "站点名称", "站点状态", "资料类型", "资料数量", "资料编号"
let data = change(["line", "site", "state", "informationType", "informationNum", "informationId"], tableData["建设资料数据"].bodyList );
let conf = ["informationType", "informationNum", "informationId"];
let constructionMaterials = getPopupMoreData(line, data, conf);
constructionMaterials[site]["total"] = constructionMaterials[site]["data"].length || 0;
let result = {"constructionMaterials": constructionMaterials[site]};
res.send(result);
return result;
}
/**
* 建设资料详情
* @param req
* @param res
* @returns
*/
export async function getConstructionMaterialsDetails(req, res) {
let informationId = req.query.informationId || "18号线二期江阳南路站1";
let informationType = req.query.informationType || "图纸资料"
let informationName = req.query.informationName; //资料名称
let tableData = constructionMaterialsDetailsTableData();
let result:any = {};
let details:any = {};
let informationTypeList = [];
for (let key in tableData) {
if (informationId == key) {
let data = change(["informationType", "informationName", "informationUrl"], tableData[key].bodyList );
data.forEach(item => {
let itemName = item["informationType"];
if (!details[itemName]) details[itemName] = [];
if (!informationName) {
details[itemName].push({name: item["informationName"], url: item["informationUrl"]});
} else {
if (informationName === item["informationName"]) {
details[itemName].push({name: item["informationName"], url: item["informationUrl"]});
}
}
});
}
}
let detailsList = [];
for (let key in details) {
informationTypeList.push(key);
}
result["type"] = informationTypeList;
result["details"] = details[informationType];
res.send(result);
return result;
}
\ No newline at end of file
/**
* 建设里程碑
*/
import { constructionMilestonesTableData } from "../../data/table/stationPopupData";
import { change, getPopupMoreData } from "../../dataPackage/inBackOut";
export async function getConstructionMilestones(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = constructionMilestonesTableData();
//"线路", "站点名称", "站点状态", "建设内容", "时间", "建设状态"
let data = change(["line", "site", "state", "constructionContent", "constructionTime", "constructionStatus"], tableData["建设里程碑数据"].bodyList );
let conf = ["constructionContent", "constructionTime", "constructionStatus"];
let constructionMilestones = getPopupMoreData(line, data, conf);
let result = {"constructionMilestones": constructionMilestones[site]};
res.send(result);
return result;
}
/**
* 前期证照
*/
import { earlyCertificationTableData } from "../../data/table/stationPopupData";
import { change, getPopupMoreData } from "../../dataPackage/inBackOut";
export async function getEarlyCertification(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = earlyCertificationTableData();
//"线路", "站点名称", "站点状态", "证照名称", "完成状态", "计划完成时间", "实际完成时间", "延期天数", "剩余天数", "文件地址"
let data = change(["line", "site", "state", "licenseName", "completionStatus", "plannedCompletionTime", "actualCompletionTime", "delayDays", "daysRemaining", "fileAddress"], tableData["前期证照数据"].bodyList );
let conf = ["licenseName", "completionStatus", "plannedCompletionTime", "actualCompletionTime", "delayDays", "daysRemaining", "fileAddress"];
let earlyCertification = getPopupMoreData(line, data, conf);
let result = {"earlyCertification": earlyCertification[site]};
res.send(result);
return result;
}
\ No newline at end of file
/**
* 参建单位
*/
import { participatingUnitsTableData } from "../../data/table/stationPopupData";
import { change, getPopupOneData } from "../../dataPackage/inBackOut";
export async function getParticipatingUnits(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = participatingUnitsTableData();
//"线路", "站点名称", "站点状态", "建设单位", "勘察单位", "设计单位", "施工单位", "监理单位",
let data = change(["line", "site", "state", "constructUnits", "curveyUnits", "designUnits", "constructionUnits", "supervisionUnits"], tableData["参建单位数据"].bodyList );
let conf = ["site", "state", "constructUnits", "curveyUnits", "designUnits", "constructionUnits", "supervisionUnits"];
let participatingUnits = getPopupOneData(line, data, conf);
let result = {"participatingUnits": participatingUnits[site]};
res.send(result);
return result;
}
/**
* 管线搬迁
*/
import { pipelineRelocationDetailsTableData, pipelineRelocationTableData } from "../../data/table/stationPopupData";
import { change, getPopupDetailsData, getPopupMoreData } from "../../dataPackage/inBackOut";
export async function getPipelineRelocation(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = pipelineRelocationTableData();
//"线路", "站点名称", "站点状态", "标题", "已完成", "进行中", "延误中", "未开始", "管线搬迁编号"
let data = change(["line", "site", "state", "title", "completed", "inProgress", "delaying", "notStarted", "id"], tableData["管线搬迁数据"].bodyList );
let conf = ["title", "completed", "inProgress", "delaying", "notStarted", "id"];
let pipelineRelocation = getPopupMoreData(line, data, conf);
let result = {"pipelineRelocation": pipelineRelocation[site]};
res.send(result);
return result;
}
export async function getPipelineRelocationDetails(req, res) {
let id = req.query.id || "18号线二期江阳南路站1";
let tableData = pipelineRelocationDetailsTableData();
let result:any = {};
//
result["details"] = getPopupDetailsData(id, tableData, ["powerName", "relocateName", "relocateState"], ["relocateName", "relocateState"], "powerName");
res.send(result);
return result;
}
\ No newline at end of file
/**
* 动迁腾地
*/
import { relocationTengdiTableData } from "../../data/table/stationPopupData";
import { change, getPopupMoreData } from "../../dataPackage/inBackOut";
export async function getRelocationTengdi(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = relocationTengdiTableData();
//"线路", "站点名称", "站点状态", "完成率名称", "完成率", "总数名称", "总数", "完成数名称", "完成数"
let data = change(["line", "site", "state", "completionRateName", "completionRate", "totalName", "total", "completedNumName", "completedNum"], tableData["动迁腾地数据"].bodyList );
let conf = ["completionRateName", "completionRate", "totalName", "total", "completedNumName", "completedNum"];
let relocationTengdi = getPopupMoreData(line, data, conf);
let result = {"relocationTengdi": relocationTengdi[site]};
res.send(result);
return result;
}
/**
* 风险隐患
*/
import { riskHazardsDetailsTableData, riskHazardsTableData } from "../../data/table/stationPopupData";
import { change, getPopupMoreData } from "../../dataPackage/inBackOut";
/**
* 风险隐患
* @param line 线路名称
* @param site 站点名称
* @returns riskHazards: { site}
*/
export async function getRiskHazards(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = riskHazardsTableData();
//"线路", "站点名称", "站点状态", "风险隐患数", "风险名称", "风险等级", "风险编号"
let data = change(["line", "site", "state", "riskName", "riskLevel", "riskId"], tableData["风险隐患数据"].bodyList );
let conf = ["riskName", "riskLevel", "riskId"];
let riskHazards = getPopupMoreData(line, data, conf);
riskHazards[site]["total"] = riskHazards[site]["data"].length || 0;
let result = {"riskHazards": riskHazards[site]};
res.send(result);
return result;
}
/**
* 风险隐患详情
* @param req
* @param res
* @returns details:[ { name:"", value:"" }, { name:"", value:"" }, ...... ]
*/
export async function getRiskHazardsDetails(req, res) {
let riskId = req.query.riskId|| "18号线二期江阳南路站1";
let tableData = riskHazardsDetailsTableData();
let result:any = {};
let data = change(["name", "value"], tableData[riskId].bodyList);
result["details"] = data;
res.send(result);
return result;
}
/**
* 智慧工地
*/
import { smartConstructionSiteTableData, surveillanceVideoTableData, gateDataTableData, monitoringDataTableData} from "../../data/table/stationPopupData";
import { change } from "../../dataPackage/inBackOut";
/**
* 智慧工地基础数据
* @param req
* @param res
* @returns
*/
export async function getSmartConstructionSite(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = smartConstructionSiteTableData();
//"线路", "站点名称", "站点状态", "监控视频编号", "进场人数", "退场人数", "在场人数", "未签到", "未签退", "闸机编号", "监测类型", "测点数"
let data = change(["line", "site", "state", "videoId", "mobilizationPeopleNum", "exitPeopleNum", "presencePeopleNum", "notCheckedIn", "notSignedOut", "gateId", "monitoringId"], tableData["智慧工地数据"].bodyList );
let conf = ["line", "site", "state", "videoId", "mobilizationPeopleNum", "exitPeopleNum", "presencePeopleNum", "notCheckedIn", "notSignedOut", "gateId", "monitoringId"];
let smartConstructionSite:any = {};
data.forEach(item => {
let dataLine = item.line;
let dataSite = item.site;
if (line == dataLine) {
if (!smartConstructionSite[dataSite]) smartConstructionSite[dataSite] = {videoList:[], gateList:{}, monitoringList:[]};
//**监控视频 */
let videoTableData = surveillanceVideoTableData();
let surveillanceVideoData = [];
let videoId = item.videoId;
for (let videoKey in videoTableData) {
if (videoId == videoKey) {
//"监控视频区域名称", "监控视频地址"
surveillanceVideoData = change(["name", "url"], videoTableData[videoKey].bodyList);
smartConstructionSite[dataSite]["videoList"] = surveillanceVideoData;
}
}
/**闸机数据 */
//"进场人数", "退场人数", "在场人数", "未签到", "未签退", "闸机编号"
let gateConf = ["mobilizationPeopleNum", "exitPeopleNum", "presencePeopleNum", "notCheckedIn", "notSignedOut", "gateId"];
for (let gateName = 0; gateName < gateConf.length; gateName++) {
smartConstructionSite[dataSite]["gateList"][gateConf[gateName]] = item[gateConf[gateName]];
}
/**
* 监测数据
*/
let monitoringId = item.monitoringId;
//"监测类型", "测点数", "监测数据编号"
let monitoringData = change(["monitoringType", "measurementPoints", "monitoringId"], tableData["监测数据"].bodyList);
monitoringData.forEach( monitoringItem => {
let id = monitoringItem.monitoringId;
if (id.search(monitoringId) > -1) {
smartConstructionSite[dataSite]["monitoringList"].push(monitoringItem);
}
})
}
});
let result = {"smartConstructionSite": smartConstructionSite[site]};
res.send(result);
return result;
}
/**
* 智慧工地闸机数据
* @param req
* @param res
* @returns
*/
export async function getGateData(req, res) {
let gateId = req.query.gateId || "18号线二期江阳南路站1";
let tableData = gateDataTableData();
let result:any = {};
let details = {jobStatistics:[], teamStatistics:[]};
for (let key in tableData) {
if (key.search(gateId) > -1) {
let regex = /\((.+?)\)/g;
let name = key.match(regex)[0].replace("(", "").replace(")", "");
if (name == "工种") {
details["jobStatistics"] = change(["personnelType", "mobilizationPeopleNum", "exitPeopleNum", "presencePeopleNum"], tableData[`${gateId}${name})`].bodyList);
} else if (name == "班组") {
details["teamStatistics"] = change(["unitName", "mobilizationPeopleNum", "exitPeopleNum", "presencePeopleNum"], tableData[`${gateId}${name})`].bodyList);
}
}
}
result["gateDetails"] = details;
res.send(result);
return result;
}
/**
* 智慧工地监测数据详情
* @param req
* @param res
* @returns
*/
export async function getMonitoringData(req, res) {
let monitoringId = req.query.monitoringId|| "18号线二期江阳南路站1(沉降)";
let tableData = monitoringDataTableData();
//"测点名称", "日期", "第三方监测位移累计变化量", "第三方监测位移日变化量", "施工监测位移累计变化量", "施工监测位移日变化量"
let monitoringTable = change(["measurementPointName", "time", "thirdPartyAccumulatedChange", "thirdPartyDailyVariation", "constructionAccumulatedChange", "constructionDailyVariation"], tableData[monitoringId].bodyList);
let conf = ["time", "thirdPartyAccumulatedChange", "thirdPartyDailyVariation", "constructionAccumulatedChange", "constructionDailyVariation"];
let monitoring = {};
monitoringTable.forEach(item => {
let measurementPointName = item.measurementPointName;
let monitoringData = {};
if (!monitoring[measurementPointName]) monitoring[measurementPointName] = [];
for (let name = 0; name < conf.length; name++) {
monitoringData[conf[name]] = item[conf[name]];
}
monitoring[measurementPointName].push(monitoringData);
});
let monitoringDetails = {};
for (let key in monitoring) {
if (!monitoringDetails[key]) monitoringDetails[key] = {"累计变化量":{}, "日变化量":{}};
monitoring[key].forEach( item => {
let {time, thirdPartyAccumulatedChange, thirdPartyDailyVariation, constructionAccumulatedChange, constructionDailyVariation} = item;
//累计变化量
let accumulatedChange = [{name:"第三方监测位移(mm)累计变化量", value:thirdPartyAccumulatedChange}, {name: "施工监测位移(mm)累计变化量", value:constructionAccumulatedChange}];
//日变化量
let dailyVariation = [{name:"第三方监测位移(mm)日变化量", value:thirdPartyDailyVariation}, {name: "施工监测位移(mm)日变化量", value:constructionDailyVariation}];
monitoringDetails[key]["累计变化量"][time] = accumulatedChange;
monitoringDetails[key]["日变化量"][time] = dailyVariation;
})
}
let result:any = {"monitoring": monitoringDetails};
res.send(result);
return result;
}
/**
* 车站信息
*/
import { stationTableData } from "../../data/table/stationPopupData";
import { change, getPopupOneData } from "../../dataPackage/inBackOut";
export async function getStation(req, res) {
let line = req.query.line || "18号线二期";
let site = req.query.site || "江阳南路站";
let tableData = stationTableData();
//"线路", "站点名称", "站点状态", "车站类型", "建筑面积", "站台长度", "站台宽度", "建设周期", "车站出口", "车站入口"
let data = change(["line", "site", "state", "stationType", "floorSpace", "platformLength", "platformWidth", "constructionCycle", "stationExit", "stationEntrance"], tableData["车站信息数据"].bodyList );
let conf = ["site", "state", "stationType", "floorSpace", "platformLength", "platformWidth", "constructionCycle", "stationExit", "stationEntrance"];
let stationInfo = getPopupOneData(line, data, conf);
let result = {"stationInfo": stationInfo[site]};
res.send(result);
return result;
}
......@@ -13,9 +13,9 @@ export const ProphaseDefault = {
/**
* 动迁腾地 completionStatus
* 动迁腾地 completionStatus
*/
export const CompletionStatusDefault = {
export const CompletionStatusDefault = {
"total": 0,
"complete": 0,
"incomplete": 0
......@@ -23,15 +23,15 @@ export const CompletionStatusDefault = {
/**
* 动迁腾地 详细完成情况 scheduleList
* 动迁腾地 详行政区计划 scheduleList
*/
export const RelocationScheduleData = {
data: {
"居民完成率": { complete: 0 },
"单位完成率": { complete: 0 },
"绿地完成率": { complete: 0 }
export const ScheduleListDefault = {
"undefined" : {
"total": 0,
"complete": 0,
"incomplete": 0
}
}
};
/**
......@@ -1208,5 +1208,81 @@ export const stationDefault = {
* 参建单位
*/
export const participatingUnitsDefault = {
site: "",
state: "",
constructUnits: "",
curveyUnits: "",
designUnits: "",
constructionUnits: "",
supervisionUnits: ""
}
/**
* 前期证照
*/
export const earlyCertificationDefault = {
site: "",
state: "",
data: [
{
licenseName: "",
completionStatus: "",
plannedCompletionTime: "",
actualCompletionTime: "",
fileAddress: ""
}
]
}
}
\ No newline at end of file
/**
* 动迁腾地
*/
export const relocationTengdiDefaule = {
site: "",
state: "",
data: [
{
completionRateName: "居民动迁完成率",
completionRate: "0",
totalName: "动迁总数",
total: 0,
completedNumName: "动迁完成",
completedNum: 0
},
{
completionRateName: "单位动迁完成率",
completionRate: "0",
totalName: "动迁总数",
total: 0,
completedNumName: "动迁完成",
completedNum: 0
},
{
completionRateName: "绿地动迁完成率",
completionRate: "0",
totalName: "总面积",
total: 0,
completedNumName: "完成面积",
completedNum: 0
}
]
}
/**
* 管线搬迁详情
*/
export const pipelineRelocationDetails = [
{
name: "",
dataList: [
{
relocateName: "",
relocateState: ""
}
]
}
]
\ No newline at end of file
......@@ -2,8 +2,9 @@ const path = require('path');
import * as fs from "fs";
import { BizError } from "../util/bizError";
import { analysisXml } from "../util/myXML";
import {ServerConfig} from "../config/systemClass";
export let port = Number(process.env.PORT) || Number(process.argv[3]) || 7576; //如果xml里面没有配置 就会使用到这里的端口
export let systemConfig = new ServerConfig;
const ConfigName = "serverConfig.xml";
export async function initConfig() {
......@@ -13,9 +14,10 @@ export async function initConfig() {
let configInfo:any = await analysisXml(configStr);
if (!configInfo || !configInfo.config) console.log("xml中无配置加载");
else {
let config = configInfo.config;
port = config.port[0] || port;
let {port, imgUrl, monitorUrl} = configInfo.config;
systemConfig.port = parseInt(port[0]);
systemConfig.imgUrl = imgUrl[0];
systemConfig.monitorUrl = monitorUrl[0];
}
} catch(err) {
......
/**
* 系统配置类
*/
export class ServerConfig {
port:number;
imgUrl:string;
monitorUrl:string
}
\ No newline at end of file
......@@ -57,12 +57,12 @@ export function relocationTableData() {
export function scheduleTableData() {
let blockDataList = onceSheetBecomeOfblockData('建设指挥平台/计划进度.xlsx', '形象进度');
let blockDataList = onceSheetBecomeOfblockData('建设指挥平台/计划进度.xlsx', '建设计划');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["形象进度数据", "车站详细数据", "车辆基地详细数据", "高架区间详细数据"];//适配 表格
let decollatePlanarList =["建设计划数据", "详细数据1", "详细数据2", "详细数据3"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
......
......@@ -40,7 +40,7 @@
/**
*
* 修改表格数据结构
* @param titleList
* @param dataList
* @returns
......@@ -57,3 +57,123 @@ export function change(titleList, dataList) {
});
return data;
}
/**
* 获取单条线路数据
* @param line 线路
* @param data 数据
* @param conf 配置
* @returns
*/
export function getLineOneData(line, data, conf) {
let result:any = {};
data.forEach(item => {
let dataLine = item.line;
if (line == dataLine) {
for (let name = 0; name < conf.length; name++) {
result[conf[name]] = item[conf[name]];
}
}
});
return result;
}
/**
* 单条弹窗数据
* @param line 线路
* @param data 数据
* @param conf 配置
* @returns
*/
export function getPopupOneData(line, data, conf) {
let result:any = {};
data.forEach(item => {
let dataLine = item.line;
let dataSite = item.site;
if (line == dataLine) {
if (!result[dataSite]) result[dataSite] = {};
for (let name = 0; name < conf.length; name++) {
result[dataSite][conf[name]] = item[conf[name]];
}
}
});
return result;
}
/**
* 多条弹窗数据
* @param line
* @param data
* @param conf
* @returns
*/
export function getPopupMoreData(line, data, conf) {
let result:any = {};
data.forEach(item => {
let dataLine = item.line;
let dataSite = item.site;
let pipelineRelocationData = {};
if (line == dataLine) {
if (!result[dataSite]) result[dataSite] = {site:item.site, state:item.state, data:[]};
for (let name = 0; name < conf.length; name++) {
pipelineRelocationData[conf[name]] = item[conf[name]];
}
result[dataSite]["data"].push(pipelineRelocationData);
}
});
return result;
}
/**
* 弹窗详细数据
* @param id
* @param tableData
* @param changeConf
* @param conf
* @returns
*/
export function getPopupDetailsData(id, tableData, changeConf, conf, name) {
let details:any = {};
for (let key in tableData) {
if (id == key) {
let data = change(changeConf, tableData[key].bodyList );
data.forEach(item => {
let itemName = item[name];
let detailsData = {};
if (!details[itemName]) details[itemName] = [];
for (let name = 0; name < conf.length; name++) {
detailsData[conf[name]] = item[conf[name]];
}
details[itemName].push(detailsData);
});
}
}
let detailsList = [];
for (let key in details) {
detailsList.push({name: key, dataList: details[key]})
}
return detailsList;
}
\ No newline at end of file
......@@ -2,12 +2,12 @@
import { initInterfaceData } from "./data/interface/cronJob";
var os = require("os")
import { httpServer } from "./net/http_server";
import { initConfig, port } from "./config/serverConfig";
import { initConfig, systemConfig } from "./config/serverConfig";
async function lanuch() {
await initConfig();
// initInterfaceData();
httpServer.createServer( port );
httpServer.createServer( systemConfig.port );
console.log('This indicates that the server is started successfully.');
}
......
......@@ -37,6 +37,7 @@ export class httpServer {
httpServer.use(express.static(path.join(__dirname, "../../img/")) );
httpServer.use(express.static(path.join(__dirname, "../../pdf/")) );
const root = path.join(__dirname, "../../public/")
httpServer.use(express.static(root))
......
......@@ -11,13 +11,13 @@ import * as mapBiz from '../biz/construct/map'
export function setRouter(httpServer) {
/**计划进度指标面板 */
httpServer.get('/construct/plannedprogress/prophase', asyncHandler(plannedprogressBiz.getProphase) );//前期管
httpServer.get('/construct/plannedprogress/prophase', asyncHandler(plannedprogressBiz.getProphase) );//证照办
httpServer.get('/construct/plannedprogress/relocation', asyncHandler(plannedprogressBiz.getRelocation) );//动迁腾地
httpServer.get('/construct/plannedprogress/schedule', asyncHandler(plannedprogressBiz.getSchedule) );//形象进度
httpServer.get('/construct/plannedprogress/milestone', asyncHandler(plannedprogressBiz.getMilestone) );//里程碑节点完成情况
/**质量安全指标面板 */
httpServer.get('/construct/quality/fatality', asyncHandler(qualityBiz.getFatality) );//致命性风险分布
httpServer.get('/construct/quality/fatality', asyncHandler(qualityBiz.getFatality) );//重大风险分布
httpServer.get('/construct/quality/risk', asyncHandler(qualityBiz.getRisk) );//当前风险节点
httpServer.get('/construct/quality/engineering', asyncHandler(qualityBiz.getEngineering) );//工程安全状态
......@@ -34,5 +34,14 @@ export function setRouter(httpServer) {
/**地图 */
httpServer.get('/construct/map', asyncHandler(mapBiz.getMap) );
// 2.0 ----------------------------------------
/**业财融合指标面板 */
//概算总数
//总体投资情况
//支付完成情况
//投资完成情况
}
/**
* 在建车站弹窗路由
*/
import * as asyncHandler from 'express-async-handler';
import * as stationInfoBiz from '../biz/stationPopup/stationInfo';
import * as participatingUnitsBiz from '../biz/stationPopup/participatingUnits';
import * as earlyCertificationBiz from '../biz/stationPopup/earlyCertification';
import * as relocationTengdiBiz from '../biz/stationPopup/relocationTengdi';
import * as pipelineRelocationBiz from '../biz/stationPopup/pipelineRelocation';
import * as civilEngineeringBiz from '../biz/stationPopup/civilEngineering';
import * as constructionMilestonesBiz from '../biz/stationPopup/constructionMilestones';
import * as smartConstructionSiteBiz from '../biz/stationPopup/smartConstructionSite';
import * as riskHazardsBiz from '../biz/stationPopup/riskHazards';
import * as constructionMaterialsBiz from '../biz/stationPopup/constructionMaterials';
//constructionMaterials
export function setRouter(httpServer) {
httpServer.get('/stationpopup/station', asyncHandler(stationInfoBiz.getStation)); //车站信息
httpServer.get('/stationpopup/participatingunits', asyncHandler(participatingUnitsBiz.getParticipatingUnits)); //参建单位
httpServer.get('/stationpopup/earlycertification', asyncHandler(earlyCertificationBiz.getEarlyCertification)); //前期证照
httpServer.get('/stationpopup/relocationtengdi', asyncHandler(relocationTengdiBiz.getRelocationTengdi)); //动迁腾地
httpServer.get('/stationpopup/pipelinerelocation', asyncHandler(pipelineRelocationBiz.getPipelineRelocation)); //管线搬迁
httpServer.get('/stationpopup/pipelinerelocation/details', asyncHandler(pipelineRelocationBiz.getPipelineRelocationDetails)); //管线搬迁详情
httpServer.get('/stationpopup/civilengineering', asyncHandler(civilEngineeringBiz.getCivilEngineering)); //土建形象进度
httpServer.get('/stationpopup/civilengineering/details', asyncHandler(civilEngineeringBiz.getCivilEngineeringDetails)); //土建形象进度 工序完成情况
httpServer.get('/stationpopup/constructionmilestones', asyncHandler(constructionMilestonesBiz.getConstructionMilestones)); //建设里程碑
httpServer.get('/stationpopup/smartConstructionSite', asyncHandler(smartConstructionSiteBiz.getSmartConstructionSite)); //智慧工地
httpServer.get('/stationpopup/smartConstructionSite/gateData', asyncHandler(smartConstructionSiteBiz.getGateData)); //智慧工地 闸机数据
httpServer.get('/stationpopup/smartConstructionSite/monitoringData', asyncHandler(smartConstructionSiteBiz.getMonitoringData)); //智慧工地 监测数据
httpServer.get('/stationpopup/riskHazards', asyncHandler(riskHazardsBiz.getRiskHazards)); //风险隐患
httpServer.get('/stationpopup/riskHazards/details', asyncHandler(riskHazardsBiz.getRiskHazardsDetails)); //风险隐患详情
httpServer.get('/stationpopup/constructionMaterials', asyncHandler(constructionMaterialsBiz.getConstructionMaterials)); //建设资料
httpServer.get('/stationpopup/constructionMaterials/details', asyncHandler(constructionMaterialsBiz.getConstructionMaterialsDetails)); //建设资料详情
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment