Commit 60aa85a1 by chenjinjing

no message

parent d78bb602
No preview for this file type
......@@ -5,6 +5,7 @@ import { getZhyy } from '../data/db/zhyy';
import { zhyyTableData } from '../data/table/zhyyData';
import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, tablePackage } from '../dataPackage/inFrontOut';
import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut } from '../dataPackage/out';
import { getChart } from '../data/db/out';
/* 智慧运营 */
......@@ -14,107 +15,83 @@ export async function getData(req, res) {
let ret: any = {};
let yqgkPackageData = keyValuePackage(dbData['园区概况'].dataList);
ret['yqgk'] = getKeyValueOut('园区概况', yqgkPackageData);
let dtTableData = tablePackage(excelData["地图"].headerList[0], excelData["地图"].bodyList);
let dt = {}
let dtDetails =
dtTableData.dataList.forEach(info => {
let { A, D } = info;
let loudongDetails = tablePackage(excelData[A].headerList[0], excelData[A].bodyList);
let imgUrl = `${systemConfig.imgPath}/${D}`;
info["D"] = imgUrl;
if (!dt[A]) dt[A] = {dataList:[], tableData:[]};
Object.keys(info).forEach((key, index) => {
dt[A].dataList.push({key:dtTableData.titleList[index], value:info[key]});
})
dt[A].tableData = getTableOut("表格数据", loudongDetails);
});
let zfqysjPackageData = keyValuePackage(dbData['在孵企业数据'].dataList);
ret['zfqysj'] = getKeyValueOut('在孵企业数据', zfqysjPackageData);
ret['dt'] = {title:"地图", dataList:dt};
let rzqybhqsPackageData = onceYBarChartPackage(dbData['入驻企业变化趋势'], '', '');
ret['rzqybhqs'] = getOnceYBarChartOut('入驻企业变化趋势', rzqybhqsPackageData);
let fhqgk = keyValuePackage(dbData['孵化器概况']);
ret['fhqgk'] = getKeyValueOut('孵化器概况', fhqgk);
let rzqyhylxPackageData = keyValuePackage(dbData['入驻企业行业类型'].dataList);
ret['rzqyhylx'] = getKeyValueOut('入驻企业行业类型', rzqyhylxPackageData);
let zfqymjzb = keyValuePackage(dbData['在孵企业面积占比']);
ret['zfqymjzb'] = getKeyValueOut('在孵企业面积占比', zfqymjzb);
let fhyyPackageData = keyValuePackage(dbData['孵化运营'].dataList);
ret['fhyy'] = getKeyValueOut('孵化运营', fhyyPackageData);
let zfqy = keyValuePackage(dbData['孵化运营'].count);
ret['zfqy'] = getKeyValueOut('在孵企业', zfqy);
let fhmjbhqsPackageData = onceYBarChartPackage(dbData['孵化面积变化趋势'], '', '');
ret['fhmjbhqs'] = getOnceYBarChartOut('孵化面积变化趋势', fhmjbhqsPackageData);
let fhyy = keyValuePackage(dbData['孵化运营'].dataList);
ret['fhyy'] = getKeyValueOut('孵化运营', fhyy);
// let zfqybhqsPackageData = onceYBarChartPackage( excelData['在孵企业变化趋势'], '','');
let zfqybhqsPackageData = onceYBarChartPackage(dbData["在孵企业变化趋势"], '', '');
ret['zfqybhqs'] = getOnceYBarChartOut('在孵企业变化趋势', zfqybhqsPackageData);
let byqk = keyValuePackage(dbData['毕业情况']);
ret['byqk'] = getKeyValueOut('毕业情况', byqk);
// let byqybhqsPackageData = onceYBarChartPackage( excelData['毕业企业变化趋势'], '','');
let byqybhqsPackageData = onceYBarChartPackage(dbData["毕业企业变化趋势"], '', '');
ret['byqybhqs'] = getOnceYBarChartOut('毕业企业变化趋势', byqybhqsPackageData);
let yytg = getChart(dbData['运营推广']);
ret['yytg'] = {title:"运营推广", dataList:yytg};
let rzqyPackageData = onceYBarChartPackage(dbData['融资企业变化趋势'], '', '');
ret['rzqy'] = getOnceYBarChartOut('融资企业变化趋势', rzqyPackageData);
ret['nrzqy'] = {title:"拟入驻企业", dataList:dbData["拟入驻企业"]};
let ryzzPackageData = keyValuePackage(dbData['荣誉资质'].dataList);
ret['ryzz'] = getKeyValueOut('荣誉资质', ryzzPackageData);
let hzsj = keyValuePackage(dbData['汇总数据']);
ret['hzsj'] = getKeyValueOut('汇总数据', hzsj);
// let ryzztp = dbData["荣誉资质图片"];
// // let ryzztpList = [];
// // for (let i = 0; i < ryzztp.length; i++) {
// // ryzztpList.push(`${systemConfig.imgPath}/${ryzztp[i][0]}`);//systemConfig.imgFileUrl = imgFileUrl[0];
// // }
// ret['ryzztp'] = { title: "荣誉资质图片", dataList: ryzztp };
let bnxzjy = keyValuePackage(dbData['本年新增就业']);
ret['bnxzjy'] = getKeyValueOut('本年新增就业', bnxzjy);
let zhyyhzsjPackageData = keyValuePackage(dbData['智慧运营汇总数据'].dataList);
ret['zhyyhzsj'] = getKeyValueOut('智慧运营汇总数据', zhyyhzsjPackageData);
let rfqyjyrsph = keyValuePackage(dbData['入孵企业就业人数排行']);
ret['rfqyjyrsph'] = getKeyValueOut('入孵企业就业人数排行', rfqyjyrsph);
let dtTableData = tablePackage(excelData["地图"].headerList[0], excelData["地图"].bodyList);
let dt = { dataList: [], titleList: dtTableData.titleList };
dtTableData.dataList.forEach(info => {
let { D } = info;
let imgUrl = `${systemConfig.imgPath}/${D}`;
info["D"] = imgUrl;
dt.dataList.push(info);
})
ret['dt'] = getTableOut('地图', dt);
let xlqkfx = keyValuePackage(dbData['学历情况分析']);
ret['xlqkfx'] = getKeyValueOut('学历情况分析', xlqkfx);
// let jyfxPackageData = keyValuePackage(excelData['就业分析'].dataList);
// ret['jyfx'] = getKeyValueOut('就业分析', jyfxPackageData);
let jyfxPackageData = keyValuePackage(dbData['就业分析'].dataList);
ret['jyfx'] = getKeyValueOut('就业分析', jyfxPackageData);
let byxzgm = keyValuePackage(dbData['本月新增规模']);
ret['byxzgm'] = getKeyValueOut('本月新增规模', byxzgm);
let jdjyrsqsfxPackageData = onceYBarChartPackage(dbData['年度就业人数趋势分析'], '', '');
ret['jdjyrsqsfx'] = getOnceYBarChartOut('年度就业人数趋势分析', jdjyrsqsfxPackageData);
let rfqyjygmfx = keyValuePackage(dbData['入孵企业经营规模分析']);
ret['rfqyjygmfx'] = getKeyValueOut('入孵企业经营规模分析', rfqyjygmfx);
let cygmfxPackageData = keyValuePackage(excelData['产业规模分析'].dataList);
ret['cygmfx'] = getKeyValueOut('产业规模分析', cygmfxPackageData);
let qyfwsq = keyValuePackage(dbData['企业服务申请']);
ret['qyfwsq'] = getKeyValueOut('企业服务申请', qyfwsq);
let zfqyyszbPackageData = keyValuePackage(dbData['在孵企业营收占比'].dataList);
ret['zfqyyszb'] = getKeyValueOut('在孵企业营收占比', zfqyyszbPackageData);
let qysqfwlx = keyValuePackage(dbData['企业申请服务类型']);
ret['qysqfwlx'] = getKeyValueOut('企业申请服务类型', qysqfwlx);
let qyfwPackageData = keyValuePackage(dbData['企业服务'].dataList);
ret['qyfw'] = getKeyValueOut('企业服务', qyfwPackageData);
let fhqfwjl = keyValuePackage(dbData['孵化器服务记录']);
ret['fhqfwjl'] = getKeyValueOut('孵化器服务记录', fhqfwjl);
let qyfwlxPackageData = keyValuePackage(dbData['企业服务类型'].dataList);
ret['qyfwlx'] = getKeyValueOut('企业服务类型', qyfwlxPackageData);
let fwjl = tablePackage(dbData["服务记录"].headerList[0], dbData["服务记录"].bodyList);
ret['fwjl'] = getTableOut('服务记录', fwjl);
let fwzlTableData = tablePackage(excelData["服务质量"].headerList[0], excelData["服务质量"].bodyList);//todo111
ret['fwzl'] = getTableOut('服务质量', fwzlTableData);
let qymyd = keyValuePackage(dbData['企业满意度']);
ret['qymyd'] = getKeyValueOut('企业满意度', qymyd);
let yysrqsPackageData = onceYBarChartPackage(excelData['运营收入趋势'], '', '');
ret['yysrqs'] = getOnceYBarChartOut('运营收入趋势', yysrqsPackageData);
let fwcg = keyValuePackage(dbData['服务成果']);
ret['fwcg'] = getKeyValueOut('服务成果', fwcg);
let cyzcPackageData = keyValuePackage(excelData['产业政策'].dataList);
ret['cyzc'] = getKeyValueOut('产业政策', cyzcPackageData);
let zcsd = keyValuePackage(dbData['政策速递']);
ret['zcsd'] = getKeyValueOut('政策速递', zcsd);
let cyzcxxPackageData = keyValuePackage(excelData['产业政策详细'].dataList);
ret['cyzcxx'] = getKeyValueOut('产业政策详细', cyzcxxPackageData);
let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList);
let yqhd = [];
yqhdPackageData.forEach(info => {
let { key, value } = info;
info.value = `${systemConfig.imgPath}/${value}`;
yqhd.push(info);
})
ret['yqhd'] = getKeyValueOut('园区活动', yqhd);
let yqxwPackageData = keyValuePackage(excelData['园区新闻'].dataList);
let yqxw = [];
yqxwPackageData.forEach(info => {
let { key, value } = info;
info.value = `${systemConfig.imgPath}/${value}`;
yqxw.push(info);
})
ret['yqxw'] = getKeyValueOut('园区新闻', yqxw);
ret['zcsdxq'] = {title:"政策速递详情", dataList:dbData["政策速递详情"]};
res.send(ret);
}
\ No newline at end of file
......@@ -24,8 +24,12 @@ export async function getEnterprise() {
企业基本情况: { dataList: [], titleList: ['key', 'value'] }, // 在孵企业面积,在孵企业,毕业企业
入孵企业数量变化趋势: [], // 入孵企业按月、按年的迁入、迁出数量
入孵时长分布: { dataList: [], titleList: ['key', 'value'] },
拟毕业企业情况: {count:0, dataList: []}, // count:即将到期企业数(小于3个月)
拟毕业企业情况: {count:0, dataList: { bodyList: [], headerList: [['企业名称', '预计毕业时间']] }}, // count:即将到期企业数(小于3个月)
入孵企业行业分布: { dataList: [], titleList: ['key', 'value'] }, //行业领域分布
企业服务汇总数据: { dataList: [], titleList: ['key', 'value'] }, //中间汇总数据
企业需求服务: { count:0, dataList: []}, //count:所有企业提出的需求服务数量
企业需求情况: { bodyList: [], headerList: [['服务企业名称', '申请时间', '诉求类型']] },
企业需求情况详细: { bodyList: [], headerList: [['企业名称']] },
// 企业基本情况: { dataList: [], titleList: ['key', 'value'] }, //企业基本情况
// 变化趋势分析: [], //变化趋势分析
......@@ -63,6 +67,25 @@ export async function getEnterprise() {
manyTableInfo[TABLENAME.租赁信息] = { column: zlColumn, where: selectParam };
let zldbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {state:1}, ["industry", "eId"], manyTableInfo);
let fhColumn = ["fId", "eId", "startTime", "endTime", "state", "virtualCause", "virtualCauseDes", "moveOutType",
"moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime", ];
//获取所有企业孵化信息
let fhdbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn);
//获取在孵企业
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {state: { "%between%": [FUHUASTATE.实体孵化, FUHUASTATE.虚拟孵化] }}, fhColumn);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {state:{"%notIn%":FUHUASTATE.迁出} }, fhColumn);
//获取毕业企业
let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": EMIGRATIONTYPE.毕业迁出 }, fhColumn);
let 迁出dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出 }, fhColumn);
//获取所有企业孵化表联查企业信息表
let 孵化企业includeConf = {};
let 孵化企业Clumn = ["enterpriseName", "industry"];
孵化企业includeConf[TABLENAME.企业基础信息表] = { cloum: 孵化企业Clumn, where: {state: STATE.} }
let 孵化企业dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业孵化信息, {}, fhColumn, 孵化企业includeConf);
let qyjbqk = {
"在孵企业面积": 0,
"在孵企业": 0,
......@@ -97,38 +120,60 @@ export async function getEnterprise() {
}
})
let fhColumn = ["fId", "eId", "startTime", "endTime", "state", "virtualCause", "virtualCauseDes", "moveOutType",
"moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"];
//获取所有企业孵化信息
let fhdbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn);
//获取在孵企业
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {state: { "%between%": [FUHUASTATE.实体孵化, FUHUASTATE.虚拟孵化] }}, fhColumn);
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {state:{"%notIn%":FUHUASTATE.迁出} }, fhColumn);
//企业基本信息
qyjbqk.在孵企业 = 在孵dbList.length;
qyjbqk.毕业企业 = 毕业dbList.length;
qyfw.企业基本情况.dataList = getKeyValue(qyjbqk);
//入孵企业数量变化趋势
let rfqyslbhqsMonth = getRfqyslbhqsMonth(在孵dbList, 迁出dbList);
qyfw.入孵企业数量变化趋势 = getChart(rfqyslbhqsMonth);
//入孵时长分布
let {rfscfb, nbyqyqk} = getRfscfb(孵化企业dbList);
qyfw.入孵时长分布.dataList = getKeyValue(rfscfb);
//拟毕业企业情况
qyfw.拟毕业企业情况.count = nbyqyqk.count;
qyfw.拟毕业企业情况.dataList.bodyList = nbyqyqk.dataList;
//入孵企业行业分布
for (let key in INDUSTRY) {
let anyKey: any = key;
if (isNaN(anyKey)) {
let keyStr = key;
qyfw.入孵企业行业分布.dataList.push({ key: keyStr, value: industryMap[keyStr] });
}
}
//企业服务汇总数据`
let 企业服务Count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业服务表, {}, null);
//获取所有企业服务表联查企业信息表
let qyfwColumn = ["esId", "eId", "needCategory", "needContent"];
let 企业服务includeConf = {};
企业服务includeConf[TABLENAME.企业基础信息表] = { cloum: ["enterpriseName"], where: {} }
let 企业服务dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业服务表, {}, qyfwColumn, 企业服务includeConf);
let { hzsj, qyxqfw, qyxqqk } = await getQyxqfw(企业服务dbList);
// let { hzsj, qyxqdt, qyxqdtxx } = await getQyxqdt(孵化企业dbList, 企业服务Count, 毕业dbList.length);
qyfw.企业服务汇总数据.dataList = getKeyValue(hzsj);
//企业需求动态
// qyfw.企业需求服务.dataList = getKeyValue(qyxqdt);
// //企业需求动态详细 上面3中汇总数据类型的所有企业列表,由于毕业认证企业取不到数据,只汇总入孵申请和企业需求数的企业列表
// qyfw.企业需求情况详细.bodyList = qyxqdtxx;
//获取毕业企业
// let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": MOVEOUTTYPE.毕业迁出 }, fhColumn);
let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": EMIGRATIONTYPE.毕业迁出 }, fhColumn);
let 迁出dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn);
//入孵企业数量变化趋势
let rfqyslbhqsMonth = getRfqyslbhqsMonth(fhdbList);
// //获取所有企业孵化表联查企业信息表
// let 孵化企业includeConf = {};
// let 孵化企业Clumn = ["enterpriseName", "industry"];
// 孵化企业includeConf[TABLENAME.企业基础信息表] = { cloum: 孵化企业Clumn, where: {} }
// // let 孵化企业dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业孵化信息, {}, fhColumn, 孵化企业includeConf);
// //企业基本信息
// qyjbqk.在孵企业 = 在孵dbList.length;
// qyjbqk.毕业企业 = 毕业dbList.length;
// qyfw.企业基本情况.dataList = getKeyValue(qyjbqk);
// //变化趋势分析 //todo 需要日志表
// // getBhqsfx(fhdbList);
......@@ -149,11 +194,6 @@ export async function getEnterprise() {
// }
// }
// //企业服务汇总数据`
// let qyfwhzsj = await getQyfwhzsj();
// qyfw.企业服务汇总数据.dataList = getKeyValue(qyfwhzsj);
// //企业需求动态
// let 入孵申请dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业基础信息表, { state: STATE.是 }, null);
// let 企业服务Count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业服务表, {}, null);
......@@ -243,49 +283,6 @@ export async function getEnterpriseDetails(name, type) {
if (name) selectParam["enterpriseName"] = { "%like%": name };
let dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, selectParam, ["eId", "enterpriseName"], {});
// let dbList = [];
// if (type.length != 0) {
// for (let i = 0; i < type.length; i++) {
// let manyTableInfo: any = {};
// let info = type[i];
// switch (info) {
// case SELECTPARAM.在孵企业:
// manyTableInfo[TABLENAME.企业孵化信息] = { column: [], where: { "endTime": { "%gt%": nowTime } } };
// break;
// case SELECTPARAM.融资企业:
// manyTableInfo[TABLENAME.企业融资] = { column: [], where: { "financingAmount": { "%ne%": null } } };
// break;
// case SELECTPARAM.知识产权:
// manyTableInfo[TABLENAME.知识产权] = { column: [], where: {} };
// break;
// case SELECTPARAM.专利:
// manyTableInfo[TABLENAME.企业专利表] = { column: [], where: {} };
// break;
// case SELECTPARAM.科小:
// manyTableInfo[TABLENAME.企业资质] = { column: [], where: { "kxTime": { "%ne%": null } } };
// break;
// case SELECTPARAM.专精特新:
// manyTableInfo[TABLENAME.企业资质] = { column: [], where: { "zjtxTime": { "%ne%": null } } };
// break;
// case SELECTPARAM.小巨人:
// manyTableInfo[TABLENAME.企业资质] = { column: [], where: { "xjrTime": { "%ne%": null } } };
// break;
// case SELECTPARAM.小巨人培育:
// manyTableInfo[TABLENAME.企业资质] = { column: [], where: { "xjrPyTime": { "%ne%": null } } };
// break;
// case SELECTPARAM.高新技术:
// manyTableInfo[TABLENAME.企业资质] = { column: [], where: { "gaoXinJiShuTime": { "%ne%": null } } };
// break;
// }
// let enterpriseData = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, selectParam, ["eId", "enterpriseName"], manyTableInfo);
// enterpriseData.forEach(item => {
// dbList.push(item);
// });
// }
// } else {
// dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, selectParam, ["eId", "enterpriseName"], {});
// }
let dataChange = [];
dbList.forEach(item => {
......@@ -316,66 +313,123 @@ function getRfqyslbhqsMonth(在孵dbList, 迁出dbList) {
let year = getYearList();
let month = getMonthList();
let rfqyslbhqs = {
"月":{},
"年":{}
"月":[],
"年":[]
}
for(let i = 0; i < month.length; i++) {
let = 0;
let qianruMonth = 0;
let qianchuMonth = 0;
在孵dbList.forEach(info => {
// 检查入孵开始时间的月份是否与当前月份相同
let parsedStartTime = moment(info.startTime); // 获取入孵开始时间
if (parsedStartTime.isValid() && parsedStartTime.month() === month[i].month()) {
+= 1;
if (parsedStartTime.isValid() && moment(parsedStartTime).format("YY/MM") === month[i]) {
qianruMonth += 1;
}
})
}
迁出dbList.forEach(info => {
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
// 检查迁出时间的年份是否与当前年份相同
if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
qybhqk.迁出企业 += 1;
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
if (parsedMoveOutTime.isValid() && moment(parsedMoveOutTime).format("YY/MM") === month[i]) {
qianchuMonth += 1;
}
})
}
function getQybhqk(在孵dbList, 迁出dbList) {
let qybhqk = {
新增企业: 0, // 统计当前年份入孵企业
迁出企业: 0 // 统计当前年份迁出企业
rfqyslbhqs..push({key:month[i], qianru:qianruMonth, qianchu:qianchuMonth});
}
let nowTime = moment();
for(let i = 0; i < year.length; i++) {
let qianruYear = 0;
let qianchuYear = 0;
在孵dbList.forEach(info => {
let parsedStartTime = moment(info.startTime); // 获取入孵开始时间
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
// 检查入孵开始时间的年份是否与当前年份相同
if (parsedStartTime.isValid() && parsedStartTime.year() === nowTime.year()) {
qybhqk.新增企业 += 1;
let parsedStartTime = moment(info.startTime); // 获取入孵开始时间
if (parsedStartTime.isValid() && parsedStartTime.year() === year[i]) {
qianruYear += 1;
}
// 检查迁出时间的年份是否与当前年份相同
// if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
// qybhqk.迁出企业 += 1;
// }
})
迁出dbList.forEach(info => {
// 检查迁出时间的年份是否与当前年份相同
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === year[i]) {
qianchuYear += 1;
}
})
// 检查迁出时间的年份是否与当前年份相同
if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
qybhqk.迁出企业 += 1;
rfqyslbhqs..push({key:year[i], qianru:qianruYear, qianchu:qianchuYear});
}
return rfqyslbhqs;
}
/**
* 入孵时长分布,拟毕业企业情况--到期时间为孵化截至todo
* @param data
*/
function getRfscfb(data) {
let rfscfb = {
// "即将到期": 0, //3个月
"1年以内": 0,
"1-2年": 0,
"2-3年": 0,
"3-4年": 0
};
let nbyqyqk = {
count:0,
dataList:[]
};
let nowTime = moment();
data.forEach(item => {
let parsedEndTime = moment(item.endTime); //获取入孵结束时间
let monthDiff = parsedEndTime.diff(nowTime, 'months');// 获取月份差值
let {enterprise} = item;
if (monthDiff >= 0 && monthDiff < 3) {
nbyqyqk.count += 1;
nbyqyqk.dataList.push([enterprise.enterpriseName, moment(item.endTime).format("YYYY-MM-DD")]);
} else if (monthDiff >= 3 && monthDiff < 12) rfscfb["1年以内"] += 1;
else if (monthDiff >= 12 && monthDiff < 24) rfscfb["1-2年"] += 1;
else if (monthDiff >= 24 && monthDiff < 36) rfscfb["2-3年"] += 1;
else if (monthDiff >= 36 && monthDiff < 48) rfscfb["3-4年"] += 1;
})
return {rfscfb, nbyqyqk};
}
return qybhqk;
/**
* 企业需求服务
* @param 企业服务dbList
*/
async function getQyxqfw(企业服务dbList) {
//汇总数据
let hzsj = {
服务企业: 0,
服务内容: "7项",
服务数量:0
};
//对企业eId进行去重
let uniqueEid = [...new Map(企业服务dbList.map(item => [item.eId, item])).values()];
hzsj.服务企业 = uniqueEid.length;
hzsj.服务数量 = 企业服务dbList.length;
//企业需求服务
let qyxqfw = {
count:0,
dataList:[]
};
//企业需求情况
let qyxqqk = [];
企业服务dbList.forEach( item => {
})
return { hzsj, qyxqfw, qyxqqk };
}
......@@ -383,6 +437,42 @@ function getQybhqk(在孵dbList, 迁出dbList) {
/**
* 企业需求动态
*/
async function getQyxqdt(入孵申请dbList, 企业服务Count, 毕业企业数) {
let hzsj = {
服务企业: 0,
服务内容: 0,
服务数量:0
}
let qyxqdt = {
入孵申请: 0,
毕业认证企业: 0,
企业需求数: 0
}
qyxqdt.入孵申请 = 入孵申请dbList.length;
qyxqdt.企业需求数 = 企业服务Count;
qyxqdt.毕业认证企业 = 毕业企业数;
let qyxqdtxx = [];
入孵申请dbList.forEach(info => {
// qyxqdtxx.push([info.enterpriseName, "入孵申请", info.eId]);
qyxqdtxx.push([info.enterpriseName]);
})
// 企业服务dbList.forEach(info => {
// // qyxqdtxx.push([info.enterprise.enterpriseName, "企业需求", info.enterprise.eId]);
// qyxqdtxx.push([info.enterprise.enterpriseName]);
// })
return { hzsj, qyxqdt, qyxqdtxx };
}
......@@ -449,36 +539,6 @@ function getZfqy(在孵企业变化趋势map, 毕业dbList) {
return bhqsfx;
}
/**
* 入孵时长分布--到期时间为孵化截至todo
* @param data
*/
function getRfscfx(data) {
let rfscfx = {
"即将到期": 0, //3个月
"1年以内": 0,
"1-2年": 0,
"2-3年": 0,
"3-4年": 0
};
let nowTime = moment();
data.forEach(item => {
let parsedEndTime = moment(item.endTime); //获取入孵结束时间
let monthDiff = parsedEndTime.diff(nowTime, 'months');// 获取月份差值
if (monthDiff >= 0 && monthDiff < 3) rfscfx.即将到期 += 1;
else if (monthDiff >= 3 && monthDiff < 12) rfscfx["1年以内"] += 1;
else if (monthDiff >= 12 && monthDiff < 24) rfscfx["1-2年"] += 1;
else if (monthDiff >= 24 && monthDiff < 36) rfscfx["2-3年"] += 1;
else if (monthDiff >= 36 && monthDiff < 48) rfscfx["3-4年"] += 1;
})
return rfscfx;
}
/**
* 企业服务汇总数据
* @param data
......@@ -516,39 +576,6 @@ async function getQyfwhzsj() {
};
}
/**
* 企业需求动态
*/
async function getQyxqdt(入孵申请dbList, 企业服务Count, 毕业企业数) {
let qyxqdt = {
入孵申请: 0,
毕业认证企业: 0,
企业需求数: 0
}
qyxqdt.入孵申请 = 入孵申请dbList.length;
qyxqdt.企业需求数 = 企业服务Count;
qyxqdt.毕业认证企业 = 毕业企业数;
let qyxqdtxx = [];
入孵申请dbList.forEach(info => {
// qyxqdtxx.push([info.enterpriseName, "入孵申请", info.eId]);
qyxqdtxx.push([info.enterpriseName]);
})
//获取所有企业服务表联查企业信息表
let qyfwColumn = ["esId", "eId", "needCategory", "needContent"];
let 企业服务includeConf = {};
企业服务includeConf[TABLENAME.企业基础信息表] = { cloum: ["enterpriseName"], where: {} }
let 企业服务dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业服务表, {}, qyfwColumn, 企业服务includeConf);
企业服务dbList.forEach(info => {
// qyxqdtxx.push([info.enterprise.enterpriseName, "企业需求", info.enterprise.eId]);
qyxqdtxx.push([info.enterprise.enterpriseName]);
})
return { qyxqdt, qyxqdtxx };
}
/**
* 企业变化情况
* @param data
......
......@@ -81,6 +81,115 @@ async function calculateRevenue(start: string, end: string) {
}
export async function getZhyy() {
let zhyy = {
孵化器概况:[
{key:"孵化器总面积", value:"27844㎡"},
{key:"注册时间", value:"2013"},
{key:"孵化器级别", value:"市级"},
{key:"出租率", value:"95%"}
],
在孵企业面积占比:[{key:"在孵企业面积占比", value:"82%"}],
孵化运营:{
count:[{key:"在孵企业", value:"82%"}],
dataList:[
{key:"2019", value:"36"}, {key:"2020", value:"36"}, {key:"2021", value:"36"},
{key:"2022", value:"36"}, {key:"2023", value:"36"}, {key:"2024", value:"36"}
]
},
毕业情况:[{key:"毕业未迁出", value:"23家"}, {key:"毕业已迁出", value:"4家"}],
运营推广:{
线上推广:{count:"78%", dataList:[{key:"视频号", value:17}, {key:"小红书", value:16}, {key:"抖音", value:18}]},
线下推广:{count:"22%", dataList:[{key:"活动宣讲数", value:6}, {key:"三方机构合作", value:9}]}
},
拟入驻企业:[["企业名称111", "生物医药"], ["企业名称111", "生物医药"], ["企业名称111", "生物医药"], ["企业名称111", "生物医药"], ["企业名称111", "生物医药"]],
汇总数据:[
{key:"企业总营收额", value:"34450万"},
{key:"企业纳税", value:"2440万"},
{key:"知识产权", value:"263个"},
],
本年新增就业:[{key:"本年新增就业", value:"73人", yoy:"1.25%"}],
入孵企业就业人数排行:[
{key:"博士以上", value:6},
{key:"博士", value:12},
{key:"硕士", value:7},
{key:"专科", value:6},
{key:"其他", value:3},
],
学历情况分析:[
{key:"博士以上", value:6},
{key:"博士", value:12},
{key:"硕士", value:7},
{key:"专科", value:6},
{key:"其他", value:3},
],
本月新增规模:[{key:"本月新增规模", value:"827万", yoy:"-1.05%", qoq:"1.15%"}],
入孵企业经营规模分析:[
{key:"<1000万", value:"28%"},
{key:"1000-2000万", value:"32%"},
{key:"2000-5000万", value:"27%"},
{key:">5000万", value:"13%"},
],
企业服务申请:[
{key:"服务申请数", value:39},
{key:"服务覆盖企业", value:"24%"},
],
企业申请服务类型:[
{key:"贷款服务", value:7},
{key:"工商税务", value:2},
{key:"代理记账", value:3},
{key:"法律服务", value:11},
],
孵化器服务记录:[
{key:"贷款服务", value:7},
{key:"工商税务", value:2},
{key:"代理记账", value:3},
{key:"法律服务", value:11},
],
服务记录:{
headerList: [['服务内容', '服务时间', '服务公司', '负责人']],
bodyList: [
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
["工商税务", "2025/04/21", "上海*********公司", "赵老师"],
],
},
企业满意度:[ {key:"企业满意度", value:"良好"} ],
服务成果:[
{key:"已办结", value:31},
{key:"待办结", value:8}
],
政策速递:[
{key:"财政补贴", value:30},
{key:"资质申报", value:18},
{key:"政策扶持", value:26}
],
政策速递详情:[
"******************************",
"******************************",
"******************************",
"******************************",
"******************************",
"******************************",
]
}
return zhyy;
//获取所有企业孵化信息
let fhColumn = ["industry", "eId"];
let manyTableInfo: any = {}
......@@ -473,52 +582,52 @@ export async function getZhyy() {
在孵企业营收占比.push({ key, value });
})
let zhyy = {
园区概况: { dataList: 园区概况, title: ["key", "value"] },
在孵企业数据: { dataList: 在孵企业数据, titleList: ['key', 'value'] },
融资企业变化趋势: [{ name: "融资企业变化趋势", data: 融资企业变化趋势 }],
入驻企业变化趋势: [{ name: "入驻企业变化趋势", data: 入驻企业变化趋势 }],
孵化面积变化趋势: [{ name: "孵化面积变化趋势", data: Object.values(面积变化Map) }],
在孵企业变化趋势: [{ name: "在孵企业变化趋势", data: 在孵企业变化趋势 }],
毕业企业变化趋势: [{ name: "毕业企业变化趋势", data: 毕业企业变化趋势 }],
入驻企业行业类型: { dataList: [], titleList: ['key', 'value'] },//行业领域
孵化运营: { dataList: 孵化运营, titleList: ['key', 'value'] },
智慧运营汇总数据: { dataList: 智慧运营汇总数据, titleList: ['key', 'value'] },
// 企业服务: { dataList: 企业服务, titleList: ['key', 'value'] },
// 企业服务类型: { dataList: fuWuQiYeTypeList, titleList: ['key', 'value'] },
荣誉资质: { dataList: 荣誉资质, titleList: ['key', 'value'] },
// 荣誉资质图片: 荣誉资质图片,
就业分析: {
dataList: [
{ key: "本年就业人数", value: `${currentYearJobCount}人` },
{ key: "同比去年", value: `${growthRate.toFixed(2)}%` }
], titleList: ['key', 'value']
},
年度就业人数趋势分析: [{ name: "年度就业人数趋势分析", data: 年度就业人数趋势分析 }],
在孵企业营收占比: { dataList: 在孵企业营收占比, title: ["key", "value"] },
企业服务: {
dataList: [
{ key: "服务数", value: fuWuCount },
// { key: "服务覆盖企业", value:fuWuQiYeCount }
{ key: "服务覆盖企业", value: `${fuWuQiYeCountPercentage}%` }
],
titleList: ['key', 'value']
},
企业服务类型: {
dataList: fuWuQiYeTypeList,
titleList: ['key', 'value']
}
}
//行业领域----按照企业选择的类型呈现
for (let key in INDUSTRY) {
let anyKey: any = key;
if (isNaN(anyKey)) {
let keyStr = key;
zhyy.入驻企业行业类型.dataList.push({ key: keyStr, value: industryMap[keyStr] });
}
}
// let zhyy = {
// 园区概况: { dataList: 园区概况, title: ["key", "value"] },
// 在孵企业数据: { dataList: 在孵企业数据, titleList: ['key', 'value'] },
// 融资企业变化趋势: [{ name: "融资企业变化趋势", data: 融资企业变化趋势 }],
// 入驻企业变化趋势: [{ name: "入驻企业变化趋势", data: 入驻企业变化趋势 }],
// 孵化面积变化趋势: [{ name: "孵化面积变化趋势", data: Object.values(面积变化Map) }],
// 在孵企业变化趋势: [{ name: "在孵企业变化趋势", data: 在孵企业变化趋势 }],
// 毕业企业变化趋势: [{ name: "毕业企业变化趋势", data: 毕业企业变化趋势 }],
// 入驻企业行业类型: { dataList: [], titleList: ['key', 'value'] },//行业领域
// 孵化运营: { dataList: 孵化运营, titleList: ['key', 'value'] },
// 智慧运营汇总数据: { dataList: 智慧运营汇总数据, titleList: ['key', 'value'] },
// // 企业服务: { dataList: 企业服务, titleList: ['key', 'value'] },
// // 企业服务类型: { dataList: fuWuQiYeTypeList, titleList: ['key', 'value'] },
// 荣誉资质: { dataList: 荣誉资质, titleList: ['key', 'value'] },
// // 荣誉资质图片: 荣誉资质图片,
// 就业分析: {
// dataList: [
// { key: "本年就业人数", value: `${currentYearJobCount}人` },
// { key: "同比去年", value: `${growthRate.toFixed(2)}%` }
// ], titleList: ['key', 'value']
// },
// 年度就业人数趋势分析: [{ name: "年度就业人数趋势分析", data: 年度就业人数趋势分析 }],
// 在孵企业营收占比: { dataList: 在孵企业营收占比, title: ["key", "value"] },
// 企业服务: {
// dataList: [
// { key: "服务数", value: fuWuCount },
// // { key: "服务覆盖企业", value:fuWuQiYeCount }
// { key: "服务覆盖企业", value: `${fuWuQiYeCountPercentage}%` }
// ],
// titleList: ['key', 'value']
// },
// 企业服务类型: {
// dataList: fuWuQiYeTypeList,
// titleList: ['key', 'value']
// }
// }
// //行业领域----按照企业选择的类型呈现
// for (let key in INDUSTRY) {
// let anyKey: any = key;
// if (isNaN(anyKey)) {
// let keyStr = key;
// zhyy.入驻企业行业类型.dataList.push({ key: keyStr, value: industryMap[keyStr] });
// }
// }
return zhyy;
......
......@@ -25,10 +25,10 @@ export function zhyyTableData() {
let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '智慧运营');
let keyValueOrTitleList = ["园区概况","在孵企业数据","入驻企业行业类型","孵化运营","荣誉资质","智慧运营汇总数据","就业分析","产业规模分析","在孵企业营收占比","企业服务","企业服务类型","产业政策","产业政策详细","园区活动","园区新闻"];//适配 饼图 键值以及需要多个key的
let barChartList = ["入驻企业变化趋势","孵化面积变化趋势","在孵企业变化趋势","毕业企业变化趋势","融资企业变化趋势","季度就业人数趋势分析","运营收入趋势"]; //适配 柱状图 折线图
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["地图","服务质量"];//适配 表格
let decollatePlanarList =["地图", "一号楼", "三号楼", "四号楼"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
......
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