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';
......
......@@ -5,29 +5,15 @@
import { relocationTableData, prophaseTableData, scheduleTableData, milestoneTableData } from "../../data/table/constructData";
import * as defaultConfig from '../../config/defaultConfig';
function change(titleList, dataList) {
let data = [];
dataList.forEach(subList => {
let onceData:any = {};
subList.forEach( (item, index)=> {
let key = titleList[index];
onceData[key] = item;
} );
data.push(onceData);
});
return data;
}
import { change, getPopupMoreData, getPopupOneData } from "../../dataPackage/inBackOut";
function getProphaseDetailData(data, defaultData, conf, line) {
let dataMap = {"全":{"data":{}, "total":0}};
let dataMap = {"全":{"data":{}, "total":0}};
data.forEach(item => {
let dataLine = item.line;
if (!dataMap[dataLine]) dataMap[dataLine] = {data:{}, total:0 };
dataMap[dataLine]["total"] = item.total;
dataMap["全部"]["total"] += item.total;
for (let name = 0; name < conf.length; name++) {
let plan = 0;
......@@ -37,19 +23,23 @@ function getProphaseDetailData(data, defaultData, conf, line) {
plan = item[conf[name]+"计划数"];
complete = item[conf[name]+"完成数"];
if (!dataMap[dataLine]["data"][conf[name]]) dataMap[dataLine]["data"][conf[name]] = {plan:0, complete:0};
if (!dataMap["全部"]["data"][conf[name]]) dataMap["全部"]["data"][conf[name]] = {plan:0, complete:0};
if (!dataMap["全网"]["data"][conf[name]]) dataMap["全网"]["data"][conf[name]] = {plan:0, complete:0};
}
}
dataMap[dataLine]["data"][conf[name]]["plan"] += plan;
dataMap[dataLine]["data"][conf[name]]["complete"] += complete;
dataMap[dataLine]["data"][conf[name]]["plan"] += plan || 0;
dataMap[dataLine]["data"][conf[name]]["complete"] += complete || 0;
dataMap["全部"]["data"][conf[name]]["plan"] += plan;
dataMap["全部"]["data"][conf[name]]["complete"] += complete;
dataMap["全网"]["data"][conf[name]]["plan"] += plan || 0;
dataMap["全网"]["data"][conf[name]]["complete"] += complete || 0;
}
});
for (let key in dataMap) {
dataMap["全网"]["total"] += dataMap[key].total;
}
let result:any = {};
result["completionStatus"] = {
"total":0,
......@@ -81,12 +71,12 @@ function getProphaseDetailData(data, defaultData, conf, line) {
/**
* 前期管
* 2023年前期工作 证照办
* @param req
* @param res
*/
export async function getProphase(req, res) {
let line = req.query.line || "全";
let line = req.query.line || "全";
let tableData = prophaseTableData();
......@@ -101,128 +91,117 @@ export async function getProphase(req, res) {
/**
* 动迁腾地
* 2023年前期工作 动迁腾地
* @param req
* @param res
*/
export async function getRelocation(req, res) {
let line = req.query.line || "总数";
let line = req.query.line || "全网";
let year = req.query.year || 2023;
let tableData = relocationTableData();
let data = change(["line","total","complete","incomplete"], tableData["概览数据"].bodyList );
//"线路名称", "行政区", "总数", "已完成", "计划数"
let data = change(["line", "administrativeDistrict", "total","complete","incomplete"], tableData["概览数据"].bodyList );
/**基础数据 */
let dataMap = {};
let dataMap = {"全网": {}}; //总数
let scheduleData = {"全网": {}}; //行政区
let conf = ["total","complete","incomplete"];
data.forEach(info => {
dataMap[info.line] = {
"total":info.total,
"complete":info.complete,
"incomplete":info.incomplete,
}
});
for (let name = 0; name < conf.length; name++){
if (line == "全网") {
if (!dataMap["全网"][conf[name]]) dataMap["全网"][conf[name]] = 0;
dataMap["全网"][conf[name]] += info[conf[name]] || 0;
let result:any = {};
result["completionStatus"] = dataMap[line] || defaultConfig.CompletionStatusDefault;
/**详细完成情况 */
let scheduleTableData = change(["line","year","居民完成率","单位完成率","绿地完成率","居民计划书","居民完成数","单位计划数","单位完成数","绿地计划数","绿地完成数"], tableData["动迁腾地详细"].bodyList );
if (!scheduleData["全网"][info.administrativeDistrict]) scheduleData["全网"][info.administrativeDistrict] = {};
if (!scheduleData["全网"][info.administrativeDistrict][conf[name]]) scheduleData["全网"][info.administrativeDistrict][conf[name]] = 0;
let scheduleData = {};
scheduleData["全网"][info.administrativeDistrict][conf[name]] += info[conf[name]] || 0;
} else {
if (!dataMap[info.line]) dataMap[info.line] = {};
if (!dataMap[info.line][conf[name]]) dataMap[info.line][conf[name]] = 0;
let conf = ["居民完成率", "单位完成率", "绿地完成率"];
dataMap[info.line][conf[name]] += info[conf[name]] || 0;
let index = 0;
scheduleTableData.forEach(item => {
let dataYear = item.year;
if (year == dataYear) {
if (!scheduleData[dataYear]) scheduleData[dataYear] = {data:{} };
for (let name = 0; name < conf.length; name++) {
for (let key in item){
if (!scheduleData[dataYear]["data"][conf[name]]) scheduleData[dataYear]["data"][conf[name]] = {complete:0};
if (!scheduleData[info.line]) scheduleData[info.line] = {};
if (!scheduleData[info.line][info.administrativeDistrict]) scheduleData[info.line][info.administrativeDistrict] = {};
if (!scheduleData[info.line][info.administrativeDistrict][conf[name]]) scheduleData[info.line][info.administrativeDistrict][conf[name]] = 0;
if (key.search(conf[name]) > -1) {
let complete = item[conf[name]] || 0;
scheduleData[dataYear]["data"][conf[name]]["complete"] += complete;
}
scheduleData[info.line][info.administrativeDistrict][conf[name]] += info[conf[name]] || 0;
}
}
index ++;
}
else {
scheduleData[year] = defaultConfig.RelocationScheduleData
}
});
let scheduleMap = {};
for (let key in scheduleData) {
let {data} = scheduleData[key];
for (let name in data) {
let {complete} = data[name];
if (!scheduleMap[name]) scheduleMap[name] = {complete:0}
scheduleMap[name].complete += complete;
}
}
let result:any = {};
let scheduleList = [];
for (let key in scheduleMap) {
let subComplete = (scheduleMap[key].complete/index)*100/100 || 0;
result["completionStatus"] = dataMap[line] || defaultConfig.CompletionStatusDefault;
scheduleList.push({
name:key,
complete: Math.round(subComplete)
});
}
result["scheduleList"] = scheduleData[line] || defaultConfig.ScheduleListDefault;
result["scheduleList"] = scheduleList;
/**详细完成情况 */
let scheduleTableData = change(["line", "site", "year","居民完成率","单位完成率","绿地完成率","居民计划书","居民完成数","单位计划数","单位完成数","绿地计划数","绿地完成数"], tableData["动迁腾地详细"].bodyList );
/**浮窗数据 */
let detailMap = {};
//"居民计划书","居民完成数","单位计划数","单位完成数","绿地计划数","绿地完成数"
let detailConf = {
"居民":[5,6],
"单位":[7,8],
"绿地":[9,10]
"居民":["居民计划书", "居民完成数"],
"单位":["单位计划数","单位完成数"],
"绿地":["绿地计划数","绿地完成数"]
};
tableData["动迁腾地详细"].bodyList.forEach(subList => {
let dataLine = subList[0];
if (!detailMap[dataLine]) detailMap[dataLine] = { };
scheduleTableData.forEach(subList => {
let dataYear = subList.year;
let dataLine = subList.line;
let dataSite = subList.line + '-' + subList.site;
if (!detailMap[dataYear]) detailMap[dataYear] = {'全网': {}};
if (!detailMap[dataYear][dataLine]) detailMap[dataYear][dataLine] = {};
if (!detailMap[dataYear][dataLine][dataSite]) detailMap[dataYear][dataLine][dataSite] = {};
if (!detailMap[dataYear]['全网'][dataSite]) detailMap[dataYear]['全网'][dataSite] = {};
for (let name in detailConf) {
let plan = subList[detailConf[name][0]];
let complete = subList[detailConf[name][1]];
if (!detailMap[dataLine][name]) detailMap[dataLine][name] = {plan:0, complete:0, incomplete:0};
detailMap[dataLine][name]["plan"] += plan;
detailMap[dataLine][name]["complete"] += complete;
detailMap[dataLine][name]["incomplete"] += plan - complete;
if (!detailMap[dataYear][dataLine][dataSite][name]) detailMap[dataYear][dataLine][dataSite][name] = {plan:0, complete:0, incomplete:0};
if (!detailMap[dataYear]['全网'][dataSite][name]) detailMap[dataYear]['全网'][dataSite][name] = {plan:0, complete:0, incomplete:0};
detailMap[dataYear][dataLine][dataSite][name]["plan"] += plan || 0;
detailMap[dataYear][dataLine][dataSite][name]["complete"] += complete || 0;
detailMap[dataYear][dataLine][dataSite][name]["incomplete"] += plan - complete || 0;
detailMap[dataYear]['全网'][dataSite][name]["plan"] += plan || 0;
detailMap[dataYear]['全网'][dataSite][name]["complete"] += complete || 0;
detailMap[dataYear]['全网'][dataSite][name]["incomplete"] += plan - complete || 0;
}
});
result["detailList"] = detailMap;
result["detailList"] = detailMap[year][line];
res.send(result);
}
/**
* 形象进度
* 2023年建设计划
* @param req
* @param res
*/
export async function getSchedule(req, res) {
let line = req.query.line || "全";
let line = req.query.line || "全";
let result:any = {};
let excelData = scheduleTableData();
let data = change(["line","车站总数","车站已完成","车站施工中","车辆基站总数","车辆基站已完成","车辆基站施工中","高架区间总数", '高架区间已完成', '高架区间施工中'], excelData["形象进度数据"].bodyList );
let conf = ["车站", "车辆基站", "高架区间"]
let dataMap = {"全":{"data":{}}};
let data = change(["line","车站开工总数","车站开工已完成","车站开工未完成","盾构推进总数","盾构推进已完成","盾构推进未完成","轨道铺设总数", '轨道铺设已完成', '轨道铺设未完成'], excelData["建设计划数据"].bodyList );
let conf = ["车站开工", "盾构推进", "轨道铺设"]
let dataMap = {"全":{"data":{}}};
data.forEach(item => {
let dataLine = item.line;
......@@ -235,10 +214,10 @@ export async function getSchedule(req, res) {
for (let key in item){
if (key.search(conf[name]) > -1) {
if (!dataMap[dataLine]["data"][conf[name]]) dataMap[dataLine]["data"][conf[name]] = {plan:0, complete:0, inProgress:0};
if (!dataMap["全部"]["data"][conf[name]]) dataMap["全部"]["data"][conf[name]] = {plan:0, complete:0, inProgress:0};
if (!dataMap["全网"]["data"][conf[name]]) dataMap["全网"]["data"][conf[name]] = {plan:0, complete:0, inProgress:0};
plan = item[conf[name]+"总数"];
complete = item[conf[name]+"已完成"];
inProgress = item[conf[name]+"施工中"];
inProgress = item[conf[name]+"未完成"];
}
}
......@@ -246,9 +225,9 @@ export async function getSchedule(req, res) {
dataMap[dataLine]["data"][conf[name]]["complete"] += complete;
dataMap[dataLine]["data"][conf[name]]["inProgress"] += inProgress;
dataMap["全"]["data"][conf[name]]["plan"] += plan;
dataMap["全"]["data"][conf[name]]["complete"] += complete;
dataMap["全"]["data"][conf[name]]["inProgress"] += inProgress;
dataMap["全"]["data"][conf[name]]["plan"] += plan;
dataMap["全"]["data"][conf[name]]["complete"] += complete;
dataMap["全"]["data"][conf[name]]["inProgress"] += inProgress;
}
});
......@@ -266,20 +245,19 @@ export async function getSchedule(req, res) {
name:key,
total:subPlan,
complete:subComplete,
incomplete:subInProgress,
notStarted:subPlan-subComplete-subInProgress
incomplete:subInProgress
});
}
result["scheduleList"] = scheduleList;
let czDetailData = change(["line","year","计划数量","实际数量"], excelData["车站详细数据"].bodyList );
let czDetailData = change(["line","year","计划数量","实际数量"], excelData["详细数据1"].bodyList );
result["czDetailedData"] = getDetailData(czDetailData, line, defaultConfig.ScheduleDetailed);
let cljdDetailData = change(["line","year","计划数量","实际数量"], excelData["车辆基地详细数据"].bodyList );
let cljdDetailData = change(["line","year","计划数量","实际数量"], excelData["详细数据2"].bodyList );
result["cljdDetailedData"] = getDetailData(cljdDetailData, line, defaultConfig.ScheduleDetailed);
let gjqjDetailData = change(["line","year","计划数量","实际数量"], excelData["高架区间详细数据"].bodyList );
let gjqjDetailData = change(["line","year","计划数量","实际数量"], excelData["详细数据3"].bodyList );
result["gjqjDetailedData"] = getDetailData(gjqjDetailData, line, defaultConfig.ScheduleDetailed);
res.send(result);
......@@ -296,7 +274,7 @@ export async function getSchedule(req, res) {
function getDetailData(data, line, defaultData) {
let result:any = {};
let dataMap = {"全":{data:{}}};
let dataMap = {"全":{data:{}}};
data.forEach(subList => {
let dataLine = subList.line;
......@@ -310,9 +288,9 @@ function getDetailData(data, line, defaultData) {
dataMap[dataLine]["data"][dataYear]["plan"] += plan;
dataMap[dataLine]["data"][dataYear]["complete"] += complete;
if (!dataMap["全部"]["data"][dataYear]) dataMap["全部"]["data"][dataYear] = {plan:0, complete:0};
dataMap["全"]["data"][dataYear]["plan"] += plan;
dataMap["全"]["data"][dataYear]["complete"] += complete;
if (!dataMap["全网"]["data"][dataYear]) dataMap["全网"]["data"][dataYear] = {plan:0, complete:0};
dataMap["全"]["data"][dataYear]["plan"] += plan;
dataMap["全"]["data"][dataYear]["complete"] += complete;
})
let onceLineData = dataMap[line] || defaultData;
......
......@@ -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 result:any = {};
let table = riskTableData();
let dataIndex = table["风险详细"].headerList.indexOf(line);
let data = change(["line", "基坑变形", "地层损失率", "旁通道地表沉降"], table["风险详细"].bodyList);
let 基坑变形 = dataIndex == -1 ? 0 : table["风险详细"].bodyList[0][dataIndex];
let 地层损失率 = dataIndex == -1 ? 0 : table["风险详细"].bodyList[1][dataIndex];
let 旁通道地表沉降 = dataIndex == -1 ? 0 : table["风险详细"].bodyList[2][dataIndex];
data.forEach(item => {
let dataLine = item.line;
let ret = {};
ret['jkbx'] = {title: '基坑变形', dataList: {key:"基坑变形", value:基坑变形}};
ret['dcssl'] = {title: '地层损失率', dataList: {key:"地层损失率", value:地层损失率}};
ret['ptddbcx'] = {title: '旁通道地表沉降', dataList: {key:"旁通道地表沉降", value:旁通道地表沉降}};
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;
}
......@@ -15,7 +15,7 @@ export const ProphaseDefault = {
/**
* 动迁腾地 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: ""
}
]
}
/**
* 动迁腾地
*/
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);
......
/**
* 在建车站弹窗
*/
import { planarArrDecollateForIndex, planarArrDeconstruct, planarArrForObjectList } from "../../dataPackage/planaryArrayAnalysis";
import { onceSheetBecomeOfblockData } from "../../util/analysisExcel";
function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList) {
let result = {};
for (let i = 0; i < blockDataList.length; i++) {
let {blockData, blockTitle} = blockDataList[i];
if (keyValueOrTitleList.indexOf(blockTitle) > -1) {
let titleList = titltListConfig[blockTitle] || [];
result[blockTitle] = planarArrForObjectList(blockData, 0, titleList);
}
else if (barChartList.indexOf(blockTitle) > -1) {
result[blockTitle] = planarArrDeconstruct(blockData);
}
else if (stringList.indexOf(blockTitle) > -1) result[blockTitle] = planarArrForObjectList(blockData);
else if (decollatePlanarList.indexOf(blockTitle) > -1) result[blockTitle] = planarArrDecollateForIndex(blockData);
}
return result;
}
export function stationTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '车站信息');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["车站信息数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function participatingUnitsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '参建单位');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["参建单位数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function earlyCertificationTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '前期证照');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["前期证照数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function relocationTengdiTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '动迁腾地');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["动迁腾地数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function pipelineRelocationTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '管线搬迁');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["管线搬迁数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function pipelineRelocationDetailsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '管线搬迁详情');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["18号线二期江阳南路站1", "18号线二期江阳南路站2", "18号线二期江阳南路站3", "18号线二期江阳南路站4", "18号线二期江阳南路站5"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function civilEngineeringTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '土建形象进度');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["土建形象进度数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function civilEngineeringDetailsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '土建形象进度工序完成情况');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["A区", "B区"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function constructionMilestonesTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '建设里程碑');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["建设里程碑数据",];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function smartConstructionSiteTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '智慧工地');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["智慧工地数据", "监测数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function surveillanceVideoTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '智慧工地监控视频');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["18号线二期江阳南路站1",];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function gateDataTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '智慧工地闸机数据');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["18号线二期江阳南路站1(工种)", "18号线二期江阳南路站(班组)"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function monitoringDataTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '智慧工地监测数据');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["18号线二期江阳南路站1(沉降)", "18号线二期江阳南路站1(测斜)"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function riskHazardsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '风险隐患');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["风险隐患数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function riskHazardsDetailsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '风险隐患详情');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["18号线二期江阳南路站1"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function constructionMaterialsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '建设资料');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["建设资料数据"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function constructionMaterialsDetailsTableData() {
let blockDataList = onceSheetBecomeOfblockData('在建车站弹窗/在建车站.xlsx', '建设资料详情');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["18号线二期江阳南路站1"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
......@@ -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