Commit 1fa77b76 by lixinming

Merge branch 'master' of http://123.207.147.179:8888/node_server/yuyiViewServer

# Conflicts:
#	serverConfig.xml
#	src/data/db/zhyy.ts
parents af9ded67 849893cc
No preview for this file type
...@@ -5,4 +5,5 @@ ...@@ -5,4 +5,5 @@
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign> <sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<!-- <imgPath>http://127.0.0.1:4980/yuyi/viewpage</imgPath> --> <!-- <imgPath>http://127.0.0.1:4980/yuyi/viewpage</imgPath> -->
<imgPath>http://192.168.0.189:40015</imgPath> <imgPath>http://192.168.0.189:40015</imgPath>
<imgFileUrl>http://192.168.0.189:9097</imgFileUrl>
</config> </config>
// import { getJxgljsc, getKXCertificationDetails } from '../data/db/jxgljsc';
import { getJxgljsc } from '../data/db/jxgljsc'; import { getJxgljsc } from '../data/db/jxgljsc';
import { jxgljscTableData } from '../data/table/jxgljscData'; import { jxgljscTableData } from '../data/table/jxgljscData';
import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, tablePackage } from '../dataPackage/inFrontOut'; import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, tablePackage } from '../dataPackage/inFrontOut';
...@@ -8,6 +9,7 @@ import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut ...@@ -8,6 +9,7 @@ import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut
export async function getData(req, res) { export async function getData(req, res) {
let dbList = await getJxgljsc(); let dbList = await getJxgljsc();
let excelData = jxgljscTableData(); let excelData = jxgljscTableData();
let ret: any = {}; let ret: any = {};
...@@ -22,10 +24,17 @@ export async function getData(req, res) { ...@@ -22,10 +24,17 @@ export async function getData(req, res) {
let cyjgPackageData = keyValuePackage(dbList['产业结构'].dataList); let cyjgPackageData = keyValuePackage(dbList['产业结构'].dataList);
ret['cyjg'] = getKeyValueOut('产业结构', cyjgPackageData); ret['cyjg'] = getKeyValueOut('产业结构', cyjgPackageData);
let ykjqypyqkTableData = tablePackage(excelData["硬科技企业培育情况"].headerList[0], excelData["硬科技企业培育情况"].bodyList); // let ykjqypyqkTableData = tablePackage(excelData["硬科技企业培育情况"].headerList[0], excelData["硬科技企业培育情况"].bodyList);
ret['ykjqypyqk'] = getTableOut( '硬科技企业培育情况', ykjqypyqkTableData); // ret['ykjqypyqk'] = getTableOut( '硬科技企业培育情况', ykjqypyqkTableData);
// let kjxzxqyrdqkTableData = tablePackage(excelData["科技型中小企业认定情况"].headerList[0], excelData["科技型中小企业认定情况"].bodyList);
// ret['kjxzxqyrdqk'] = getTableOut('科技型中小企业认定情况', kjxzxqyrdqkTableData); let kjxzxqyrdqkPackageData = keyValuePackage(dbList['科技型中小企业认定情况'].dataList);
ret['kjxzxqyrdqk'] = getKeyValueOut('科技型中小企业认定情况', kjxzxqyrdqkPackageData);
// let kjxzxqyrdqkxxTableData = tablePackage(excelData["科技型中小企业认定情况"].headerList[0], excelData["科技型中小企业认定情况"].bodyList);
// ret['kjxzxqyrdqk'] = getTableOut( '科技型中小企业认定情况', kjxzxqyrdqkxxTableData);
let kjxzxqyrdqkxxTableData = tablePackage(dbList["科技型中小企业认定情况详细"].headerList[0], dbList["科技型中小企业认定情况详细"].bodyList);
ret['kjxzxqyrdqkxx'] = getTableOut('科技型中小企业认定情况详细', kjxzxqyrdqkxxTableData);
let rcyjPackageData = keyValuePackage(dbList['人才引进'].dataList); let rcyjPackageData = keyValuePackage(dbList['人才引进'].dataList);
...@@ -34,6 +43,11 @@ export async function getData(req, res) { ...@@ -34,6 +43,11 @@ export async function getData(req, res) {
let fhqhzsjPackageData = keyValuePackage(dbList['孵化器汇总数据'].dataList); let fhqhzsjPackageData = keyValuePackage(dbList['孵化器汇总数据'].dataList);
ret['fhqhzsj'] = getKeyValueOut('孵化器汇总数据', fhqhzsjPackageData); ret['fhqhzsj'] = getKeyValueOut('孵化器汇总数据', fhqhzsjPackageData);
// let fhqdfsjPackageData = keyValuePackage(dbList['孵化器得分数据'].dataList);
// ret['fhqdfsj'] = getKeyValueOut('孵化器得分数据', fhqdfsjPackageData);
let fhqdfsjPackageData = keyValuePackage(excelData['孵化器得分数据'].dataList);
ret['fhqdfsj'] = getKeyValueOut('孵化器得分数据', fhqdfsjPackageData);
let xzzfqyqkPackageData = keyValuePackage(excelData['新增在孵企业情况'].dataList); let xzzfqyqkPackageData = keyValuePackage(excelData['新增在孵企业情况'].dataList);
ret['xzzfqyqk'] = getKeyValueOut('新增在孵企业情况', xzzfqyqkPackageData); ret['xzzfqyqk'] = getKeyValueOut('新增在孵企业情况', xzzfqyqkPackageData);
...@@ -49,11 +63,15 @@ export async function getData(req, res) { ...@@ -49,11 +63,15 @@ export async function getData(req, res) {
let qycxfsddnlPackageData = keyValuePackage(excelData['区域创新辐射带动能力'].dataList); let qycxfsddnlPackageData = keyValuePackage(excelData['区域创新辐射带动能力'].dataList);
ret['qycxfsddnl'] = getKeyValueOut('区域创新辐射带动能力', qycxfsddnlPackageData); ret['qycxfsddnl'] = getKeyValueOut('区域创新辐射带动能力', qycxfsddnlPackageData);
let yjPackageData = keyValuePackage(excelData['预警'].dataList);//设计图有改动todo // let yjPackageData = keyValuePackage(excelData['预警'].dataList);//设计图有改动todo
// ret['yj'] = getKeyValueOut('预警', yjPackageData);
let yjPackageData = keyValuePackage(dbList['预警'].dataList);
ret['yj'] = getKeyValueOut('预警', yjPackageData); ret['yj'] = getKeyValueOut('预警', yjPackageData);
let qyyjPackageData = keyValuePackage(excelData['企业预警'].dataList); // let qyyjPackageData = keyValuePackage(excelData['企业预警'].dataList);
ret['qyyj'] = getKeyValueOut('企业预警', qyyjPackageData); // ret['qyyj'] = getKeyValueOut('企业预警', qyyjPackageData);
let qyyjTableData = tablePackage(dbList["企业预警"].headerList[0], dbList["企业预警"].bodyList);
ret['qyyj'] = getTableOut('企业预警', qyyjTableData);
let qydtPackageData = keyValuePackage(dbList['企业动态'].dataList); let qydtPackageData = keyValuePackage(dbList['企业动态'].dataList);
ret['qydt'] = getKeyValueOut('企业动态', qydtPackageData); ret['qydt'] = getKeyValueOut('企业动态', qydtPackageData);
...@@ -74,12 +92,16 @@ export async function getData(req, res) { ...@@ -74,12 +92,16 @@ export async function getData(req, res) {
let tzlxPackageData = keyValuePackage(excelData['投资类型'].dataList); let tzlxPackageData = keyValuePackage(excelData['投资类型'].dataList);
ret['tzlx'] = getKeyValueOut('投资类型', tzlxPackageData); ret['tzlx'] = getKeyValueOut('投资类型', tzlxPackageData);
// let tzlxPackageData = onceYBarChartPackage(dbList['投资类型'], '家', '');
// ret['tzlx'] = getOnceYBarChartOut('投资类型', tzlxPackageData); let tzlxfbtPackageData = onceYBarChartPackage(dbList['投资类型分布图'], '', '');
ret['tzlxfbt'] = getOnceYBarChartOut('投资类型分布图', tzlxfbtPackageData);
let zfqyrzqkPackageData = keyValuePackage(dbList['在孵企业融资情况'].dataList); let zfqyrzqkPackageData = keyValuePackage(dbList['在孵企业融资情况'].dataList);
ret['zfqyrzqk'] = getKeyValueOut('在孵企业融资情况', zfqyrzqkPackageData); ret['zfqyrzqk'] = getKeyValueOut('在孵企业融资情况', zfqyrzqkPackageData);
let zfqyrzqkzbPackageData = keyValuePackage(dbList['在孵企业融资情况占比'].dataList);
ret['zfqyrzqkzb'] = getKeyValueOut('在孵企业融资情况占比', zfqyrzqkzbPackageData);
let ggjsfwPackageData = keyValuePackage(excelData['公共技术服务'].dataList);//去掉 let ggjsfwPackageData = keyValuePackage(excelData['公共技术服务'].dataList);//去掉
ret['ggjsfw'] = getKeyValueOut('公共技术服务', ggjsfwPackageData); ret['ggjsfw'] = getKeyValueOut('公共技术服务', ggjsfwPackageData);
......
import { qyszhxTableData } from '../data/table/qyszhxData'; import { fxyjTableData, qyszhxTableData } from '../data/table/qyszhxData';
import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, stringListPackage, tablePackage } from '../dataPackage/inFrontOut'; import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, stringListPackage, tablePackage } from '../dataPackage/inFrontOut';
import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getStringOut, getTableOut } from '../dataPackage/out'; import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getStringOut, getTableOut } from '../dataPackage/out';
import { systemConfig } from '../config/serverConfig'; import { systemConfig } from '../config/serverConfig';
...@@ -12,103 +12,149 @@ export async function getData(req, res) { ...@@ -12,103 +12,149 @@ export async function getData(req, res) {
let dbData = await getQyszhx(eId); let dbData = await getQyszhx(eId);
let excelData = qyszhxTableData(); let excelData = qyszhxTableData();
let fxyjExcelData = fxyjTableData();
let ret:any = {}; let ret: any = {};
let qyjbqkPackageData = keyValuePackage(dbData['企业基本情况'].dataList); let qyjbqkPackageData = keyValuePackage(dbData['企业基本情况'].dataList);
let qyjbqk = []; // let qyjbqk = [];
qyjbqkPackageData.forEach( info => { // qyjbqkPackageData.forEach( info => {
let {key, value} = info; // let {key, value} = info;
if (key == "企业图片") { // if (key == "企业图片") {
info.value = `${systemConfig.imgPath}/${value}`; // info.value = `${systemConfig.imgPath}/${value}`;
} // }
qyjbqk.push(info); // qyjbqk.push(info);
}) // })
ret['qyjbqk'] = getKeyValueOut('企业基本情况', qyjbqk); ret['qyjbqk'] = getKeyValueOut('企业基本情况', qyjbqkPackageData);
let qyjbsjPackageData = keyValuePackage(dbData['企业基本数据'].dataList, "false"); let qyjbsjPackageData = keyValuePackage(dbData['企业基本数据'].dataList, "false");
ret['qyjbsj'] = getKeyValueOut('企业基本数据', qyjbsjPackageData); ret['qyjbsj'] = getKeyValueOut('企业基本数据', qyjbsjPackageData);
let qymcPackageData = keyValuePackage(dbData['企业名称'].dataList);
ret['qymc'] = getKeyValueOut('企业名称', qymcPackageData);
let qybqPackageData = stringListPackage(dbData['企业标签'].dataList); let qybqPackageData = stringListPackage(dbData['企业标签'].dataList);
ret['qybq'] = getStringOut('企业标签', qybqPackageData); ret['qybq'] = getStringOut('企业标签', qybqPackageData);
// let zzrzPackageData = onceYBarChartPackage( dbData['资质认证'], '','');//新增 let yfzbPackageData = keyValuePackage(dbData['研发占比'].dataList);
// ret['zzrz'] = getOnceYBarChartOut('资质认证', zzrzPackageData); ret['yfzb'] = getKeyValueOut('研发占比', yfzbPackageData);
let qyzhxPackageData = keyValuePackage(dbData['企业自画像'].dataList);
ret['qyzhx'] = getKeyValueOut('企业自画像', qyzhxPackageData);
let zfbtPackageData = keyValuePackage(dbData['租房补贴'].dataList);
ret['zfbt'] = getKeyValueOut('租房补贴', zfbtPackageData);
let gxPackageData = keyValuePackage(dbData['高新'].dataList);
ret['gz'] = getKeyValueOut('高新', gxPackageData);
let kxPackageData = keyValuePackage(dbData['科小'].dataList);
ret['kx'] = getKeyValueOut('科小', kxPackageData);
let xjrPackageData = keyValuePackage(dbData['小巨人'].dataList);
ret['xjr'] = getKeyValueOut('小巨人', xjrPackageData);
let zzrzPackageData = keyValuePackage(dbData['资质认证'].dataList);
ret['zzrz'] = getKeyValueOut('资质认证', zzrzPackageData);
let zzrzbhqsPackageData = onceYBarChartPackage(dbData['资质认证变化趋势'], '', '');//新增
ret['zzrzbhqs'] = getOnceYBarChartOut('资质认证变化趋势', zzrzbhqsPackageData);
let zscqPackageData = keyValuePackage(dbData['知识产权'].dataList); let zscqPackageData = keyValuePackage(dbData['知识产权'].dataList);
ret['zscq'] = getKeyValueOut('知识产权', zscqPackageData); ret['zscq'] = getKeyValueOut('知识产权', zscqPackageData);
let qyyghxPackageData = keyValuePackage(dbData['企业员工画像'].dataList); let qyyghxPackageData = keyValuePackage(dbData['企业员工画像'].dataList);
ret['qyyghx'] = getKeyValueOut('企业员工画像', qyyghxPackageData); ret['qyyghx'] = getKeyValueOut('企业员工画像', qyyghxPackageData);
let lnrczpqkPackageData = onceYBarChartPackage( dbData['历年人才招聘情况'], '',''); let lnrczpqkPackageData = onceYBarChartPackage(dbData['历年人才招聘情况'], '', '');
ret['lnrczpqk'] = getOnceYBarChartOut('历年人才招聘情况', lnrczpqkPackageData); ret['lnrczpqk'] = getOnceYBarChartOut('历年人才招聘情况', lnrczpqkPackageData);
let qyhzsjPackageData = keyValuePackage(dbData['企业汇总数据'].dataList); let qyhzsjPackageData = keyValuePackage(dbData['企业汇总数据'].dataList);
ret['qyhzsj'] = getKeyValueOut('企业汇总数据', qyhzsjPackageData); ret['qyhzsj'] = getKeyValueOut('企业汇总数据', qyhzsjPackageData);
let xjrTableData = tablePackage(excelData["小巨人"].headerList[0], excelData["小巨人"].bodyList); // let xjrTableData = tablePackage(excelData["小巨人"].headerList[0], excelData["小巨人"].bodyList);
ret['xjr'] = getTableOut( '小巨人', xjrTableData); // ret['xjr'] = getTableOut( '小巨人', xjrTableData);
let gxqyTableData = tablePackage(excelData["高新企业"].headerList[0], excelData["高新企业"].bodyList); // let gxqyTableData = tablePackage(excelData["高新企业"].headerList[0], excelData["高新企业"].bodyList);
ret['gxqy'] = getTableOut( '高新企业', gxqyTableData); // ret['gxqy'] = getTableOut( '高新企业', gxqyTableData);
let zjtxTableData = tablePackage(excelData["专精特新"].headerList[0], excelData["专精特新"].bodyList); // let zjtxTableData = tablePackage(excelData["专精特新"].headerList[0], excelData["专精特新"].bodyList);
ret['zjtx'] = getTableOut( '专精特新', zjtxTableData); // ret['zjtx'] = getTableOut( '专精特新', zjtxTableData);
let ysqkPackageData = keyValuePackage(dbData['营收情况'].dataList); let ysqkPackageData = keyValuePackage(dbData['营收情况'].dataList);
ret['ysqk'] = getKeyValueOut('营收情况', ysqkPackageData); ret['ysqk'] = getKeyValueOut('营收情况', ysqkPackageData);
let ysbhqsPackageData = onceYBarChartPackage( dbData['营收变化趋势'], '',''); let ysbhqsPackageData = onceYBarChartPackage(dbData['营收变化趋势'], '', '');
ret['ysbhqs'] = getOnceYBarChartOut('营收变化趋势', ysbhqsPackageData); ret['ysbhqs'] = getOnceYBarChartOut('营收变化趋势', ysbhqsPackageData);
let qydtTableData = tablePackage(dbData["企业动态"].headerList[0], dbData["企业动态"].bodyList); let qydtTableData = tablePackage(dbData["企业动态"].headerList[0], dbData["企业动态"].bodyList);
let qydt = {dataList:[], titleList:qydtTableData.titleList}; let qydt = { dataList: [], titleList: qydtTableData.titleList };
// qydtTableData.dataList.forEach(info => { // qydtTableData.dataList.forEach(info => {
// let {A} = info; // let {A} = info;
// let imgUrl = JSON.parse(A); // let imgUrl = JSON.parse(A);
// info["A"] = imgUrl[0]; // info["A"] = imgUrl[0];
// qydt.dataList.push(info); // qydt.dataList.push(info);
// }) // })
ret['qydt'] = getTableOut( '企业动态', qydtTableData); ret['qydt'] = getTableOut('企业动态', qydtTableData);
let fxyjInfo = {};
fxyjExcelData['风险预警'].dataList.forEach(info => {
let { key, value } = info;
fxyjInfo[key] = info;
})
let qymc = dbData['企业名称'].dataList[0].value;
ret['fxyj'] = { title: "风险预警", dataList: fxyjInfo[qymc]? [fxyjInfo[qymc]] : []};
let fwxqPackageData = keyValuePackage(dbData['服务需求'].dataList, "false"); let fwxqPackageData = keyValuePackage(dbData['服务需求'].dataList, "false");
ret['fwxq'] = getKeyValueOut('服务需求', fwxqPackageData); ret['fwxq'] = getKeyValueOut('服务需求', fwxqPackageData);
let hdbhqsfxPackageData = onceYBarChartPackage( dbData['活动变化趋势分析'], '',''); let hdbhqsfxPackageData = onceYBarChartPackage(dbData['活动变化趋势分析'], '', '');
ret['hdbhqsfx'] = getOnceYBarChartOut('活动变化趋势分析', hdbhqsfxPackageData); ret['hdbhqsfx'] = getOnceYBarChartOut('活动变化趋势分析', hdbhqsfxPackageData);
// let ryzzPackageData = keyValuePackage(excelData['荣誉资质'].dataList);
// let ryzz = [];
// ryzzPackageData.forEach(info => {
// let { key, value } = info;
// info.value = `${systemConfig.imgPath}/${value}`;
// ryzz.push(info);
// })
// ret['ryzz'] = getKeyValueOut('荣誉资质', ryzz);
let ryzztp = dbData["荣誉资质图片"];
ret['ryzztp'] = { title: "荣誉资质图片", dataList: ryzztp };
let fwjl_kjfwTableData = tablePackage(dbData["服务记录_空间服务"].headerList[0], dbData["服务记录_空间服务"].bodyList); let fwjl_kjfwTableData = tablePackage(dbData["服务记录_空间服务"].headerList[0], dbData["服务记录_空间服务"].bodyList);
ret['fwjl_kjfw'] = getTableOut( '服务记录_空间服务', fwjl_kjfwTableData); ret['fwjl_kjfw'] = getTableOut('服务记录_空间服务', fwjl_kjfwTableData);
let fwjl_gsfwTableData = tablePackage(dbData["服务记录_工商服务"].headerList[0], dbData["服务记录_工商服务"].bodyList); let fwjl_gsfwTableData = tablePackage(dbData["服务记录_工商服务"].headerList[0], dbData["服务记录_工商服务"].bodyList);
ret['fwjl_gsfw'] = getTableOut( '服务记录_工商服务', fwjl_gsfwTableData); ret['fwjl_gsfw'] = getTableOut('服务记录_工商服务', fwjl_gsfwTableData);
let fwjl_rzfwTableData = tablePackage(dbData["服务记录_融资服务"].headerList[0], dbData["服务记录_融资服务"].bodyList); let fwjl_rzfwTableData = tablePackage(dbData["服务记录_融资服务"].headerList[0], dbData["服务记录_融资服务"].bodyList);
ret['fwjl_rzfw'] = getTableOut( '服务记录_融资服务', fwjl_rzfwTableData); ret['fwjl_rzfw'] = getTableOut('服务记录_融资服务', fwjl_rzfwTableData);
let fwjlPackageData = keyValuePackage(dbData['服务记录'].dataList); let fwjlPackageData = keyValuePackage(dbData['服务记录'].dataList);
ret['fwjl'] = getKeyValueOut('服务记录', fwjlPackageData); ret['fwjl'] = getKeyValueOut('服务记录', fwjlPackageData);
let yqtzPackageData = keyValuePackage(excelData['园区通知'].dataList); let yqtzPackageData = keyValuePackage(excelData['园区通知'].dataList);
ret['yqtz'] = getKeyValueOut('园区通知', yqtzPackageData); ret['yqtz'] = getKeyValueOut('园区通知', yqtzPackageData);
let yqtzxqTableData = tablePackage(excelData["园区通知详情"].headerList[0], excelData["园区通知详情"].bodyList); let yqtzxqTableData = tablePackage(excelData["园区通知详情"].headerList[0], excelData["园区通知详情"].bodyList);
let yqtzxq = {dataList:[], titleList:yqtzxqTableData.titleList}; // let yqtzxq = {dataList:[], titleList:yqtzxqTableData.titleList};
yqtzxqTableData.dataList.forEach(info => { // yqtzxqTableData.dataList.forEach(info => {
let {A} = info; // let {A} = info;
let imgUrl = `${systemConfig.imgPath}/${A}`; // let imgUrl = `${systemConfig.imgPath}/${A}`;
info["A"] = imgUrl; // info["A"] = imgUrl;
yqtzxq.dataList.push(info); // yqtzxq.dataList.push(info);
}) // })
ret['yqtzxq'] = getTableOut( '园区通知详情', yqtzxq); ret['yqtzxq'] = getTableOut('园区通知详情', yqtzxqTableData);
let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList); let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList);
ret['yqhd'] = getKeyValueOut('园区活动', yqhdPackageData); ret['yqhd'] = getKeyValueOut('园区活动', yqhdPackageData);
let yqhdmxTableData = tablePackage(excelData["园区活动明细"].headerList[0], excelData["园区活动明细"].bodyList); let yqhdmxTableData = tablePackage(excelData["园区活动明细"].headerList[0], excelData["园区活动明细"].bodyList);
ret['yqhdmx'] = getTableOut( '园区活动明细', yqhdmxTableData); ret['yqhdmx'] = getTableOut('园区活动明细', yqhdmxTableData);
res.send(ret); res.send(ret);
} }
...@@ -119,98 +165,98 @@ export async function getData备份(req, res) { ...@@ -119,98 +165,98 @@ export async function getData备份(req, res) {
let excelData = qyszhxTableData(); let excelData = qyszhxTableData();
let ret:any = {}; let ret: any = {};
let qyjbqkPackageData = keyValuePackage(excelData['企业基本情况'].dataList); let qyjbqkPackageData = keyValuePackage(excelData['企业基本情况'].dataList);
let qyjbqk = []; let qyjbqk = [];
qyjbqkPackageData.forEach( info => { qyjbqkPackageData.forEach(info => {
let {key, value} = info; let { key, value } = info;
if (key == "企业图片") { if (key == "企业图片") {
info.value = `${systemConfig.imgPath}/${value}`; info.value = `${systemConfig.imgPath}/${value}`;
} }
qyjbqk.push(info); qyjbqk.push(info);
}) })
ret['qyjbqk'] = getKeyValueOut('企业基本情况', qyjbqk); ret['qyjbqk'] = getKeyValueOut('企业基本情况', qyjbqk);
let qyjbsjPackageData = keyValuePackage(excelData['企业基本数据'].dataList, "false"); let qyjbsjPackageData = keyValuePackage(excelData['企业基本数据'].dataList, "false");
ret['qyjbsj'] = getKeyValueOut('企业基本数据', qyjbsjPackageData); ret['qyjbsj'] = getKeyValueOut('企业基本数据', qyjbsjPackageData);
let qybqPackageData = stringListPackage(excelData['企业标签'].dataList); let qybqPackageData = stringListPackage(excelData['企业标签'].dataList);
ret['qybq'] = getStringOut('企业标签', qybqPackageData); ret['qybq'] = getStringOut('企业标签', qybqPackageData);
let zscqPackageData = keyValuePackage(excelData['知识产权'].dataList); let zscqPackageData = keyValuePackage(excelData['知识产权'].dataList);
ret['zscq'] = getKeyValueOut('知识产权', zscqPackageData); ret['zscq'] = getKeyValueOut('知识产权', zscqPackageData);
let qyyghxPackageData = keyValuePackage(excelData['企业员工画像'].dataList); let qyyghxPackageData = keyValuePackage(excelData['企业员工画像'].dataList);
ret['qyyghx'] = getKeyValueOut('企业员工画像', qyyghxPackageData); ret['qyyghx'] = getKeyValueOut('企业员工画像', qyyghxPackageData);
let lnrczpqkPackageData = onceYBarChartPackage( excelData['历年人才招聘情况'], '',''); let lnrczpqkPackageData = onceYBarChartPackage(excelData['历年人才招聘情况'], '', '');
ret['lnrczpqk'] = getOnceYBarChartOut('历年人才招聘情况', lnrczpqkPackageData); ret['lnrczpqk'] = getOnceYBarChartOut('历年人才招聘情况', lnrczpqkPackageData);
let qyhzsjPackageData = keyValuePackage(excelData['企业汇总数据'].dataList); let qyhzsjPackageData = keyValuePackage(excelData['企业汇总数据'].dataList);
ret['qyhzsj'] = getKeyValueOut('企业汇总数据', qyhzsjPackageData); ret['qyhzsj'] = getKeyValueOut('企业汇总数据', qyhzsjPackageData);
let xjrTableData = tablePackage(excelData["小巨人"].headerList[0], excelData["小巨人"].bodyList); let xjrTableData = tablePackage(excelData["小巨人"].headerList[0], excelData["小巨人"].bodyList);
ret['xjr'] = getTableOut( '小巨人', xjrTableData); ret['xjr'] = getTableOut('小巨人', xjrTableData);
let gxqyTableData = tablePackage(excelData["高新企业"].headerList[0], excelData["高新企业"].bodyList); let gxqyTableData = tablePackage(excelData["高新企业"].headerList[0], excelData["高新企业"].bodyList);
ret['gxqy'] = getTableOut( '高新企业', gxqyTableData); ret['gxqy'] = getTableOut('高新企业', gxqyTableData);
let zjtxTableData = tablePackage(excelData["专精特新"].headerList[0], excelData["专精特新"].bodyList); let zjtxTableData = tablePackage(excelData["专精特新"].headerList[0], excelData["专精特新"].bodyList);
ret['zjtx'] = getTableOut( '专精特新', zjtxTableData); ret['zjtx'] = getTableOut('专精特新', zjtxTableData);
let ysqkPackageData = keyValuePackage(excelData['营收情况'].dataList); let ysqkPackageData = keyValuePackage(excelData['营收情况'].dataList);
ret['ysqk'] = getKeyValueOut('营收情况', ysqkPackageData); ret['ysqk'] = getKeyValueOut('营收情况', ysqkPackageData);
let ysbhqsPackageData = onceYBarChartPackage( excelData['营收变化趋势'], '',''); let ysbhqsPackageData = onceYBarChartPackage(excelData['营收变化趋势'], '', '');
ret['ysbhqs'] = getOnceYBarChartOut('营收变化趋势', ysbhqsPackageData); ret['ysbhqs'] = getOnceYBarChartOut('营收变化趋势', ysbhqsPackageData);
let qydtTableData = tablePackage(excelData["企业动态"].headerList[0], excelData["企业动态"].bodyList); let qydtTableData = tablePackage(excelData["企业动态"].headerList[0], excelData["企业动态"].bodyList);
let qydt = {dataList:[], titleList:qydtTableData.titleList}; let qydt = { dataList: [], titleList: qydtTableData.titleList };
qydtTableData.dataList.forEach(info => { qydtTableData.dataList.forEach(info => {
let {A} = info; let { A } = info;
let imgUrl = `${systemConfig.imgPath}/${A}`; let imgUrl = `${systemConfig.imgPath}/${A}`;
info["A"] = imgUrl; info["A"] = imgUrl;
qydt.dataList.push(info); qydt.dataList.push(info);
}) })
ret['qydt'] = getTableOut( '企业动态', qydt); ret['qydt'] = getTableOut('企业动态', qydt);
let fwxqPackageData = keyValuePackage(excelData['服务需求'].dataList, "false"); let fwxqPackageData = keyValuePackage(excelData['服务需求'].dataList, "false");
ret['fwxq'] = getKeyValueOut('服务需求', fwxqPackageData); ret['fwxq'] = getKeyValueOut('服务需求', fwxqPackageData);
let hdbhqsfxPackageData = onceYBarChartPackage( excelData['活动变化趋势分析'], '',''); let hdbhqsfxPackageData = onceYBarChartPackage(excelData['活动变化趋势分析'], '', '');
ret['hdbhqsfx'] = getOnceYBarChartOut('活动变化趋势分析', hdbhqsfxPackageData); ret['hdbhqsfx'] = getOnceYBarChartOut('活动变化趋势分析', hdbhqsfxPackageData);
let fwjl_kjfwTableData = tablePackage(excelData["服务记录_空间服务"].headerList[0], excelData["服务记录_空间服务"].bodyList); let fwjl_kjfwTableData = tablePackage(excelData["服务记录_空间服务"].headerList[0], excelData["服务记录_空间服务"].bodyList);
ret['fwjl_kjfw'] = getTableOut( '服务记录_空间服务', fwjl_kjfwTableData); ret['fwjl_kjfw'] = getTableOut('服务记录_空间服务', fwjl_kjfwTableData);
let fwjl_gsfwTableData = tablePackage(excelData["服务记录_工商服务"].headerList[0], excelData["服务记录_工商服务"].bodyList); let fwjl_gsfwTableData = tablePackage(excelData["服务记录_工商服务"].headerList[0], excelData["服务记录_工商服务"].bodyList);
ret['fwjl_gsfw'] = getTableOut( '服务记录_工商服务', fwjl_gsfwTableData); ret['fwjl_gsfw'] = getTableOut('服务记录_工商服务', fwjl_gsfwTableData);
let fwjl_rzfwTableData = tablePackage(excelData["服务记录_融资服务"].headerList[0], excelData["服务记录_融资服务"].bodyList); let fwjl_rzfwTableData = tablePackage(excelData["服务记录_融资服务"].headerList[0], excelData["服务记录_融资服务"].bodyList);
ret['fwjl_rzfw'] = getTableOut( '服务记录_融资服务', fwjl_rzfwTableData); ret['fwjl_rzfw'] = getTableOut('服务记录_融资服务', fwjl_rzfwTableData);
let fwjlPackageData = keyValuePackage(excelData['服务记录'].dataList); let fwjlPackageData = keyValuePackage(excelData['服务记录'].dataList);
ret['fwjl'] = getKeyValueOut('服务记录', fwjlPackageData); ret['fwjl'] = getKeyValueOut('服务记录', fwjlPackageData);
let yqtzPackageData = keyValuePackage(excelData['园区通知'].dataList); let yqtzPackageData = keyValuePackage(excelData['园区通知'].dataList);
ret['yqtz'] = getKeyValueOut('园区通知', yqtzPackageData); ret['yqtz'] = getKeyValueOut('园区通知', yqtzPackageData);
let yqtzxqTableData = tablePackage(excelData["园区通知详情"].headerList[0], excelData["园区通知详情"].bodyList); let yqtzxqTableData = tablePackage(excelData["园区通知详情"].headerList[0], excelData["园区通知详情"].bodyList);
let yqtzxq = {dataList:[], titleList:yqtzxqTableData.titleList}; let yqtzxq = { dataList: [], titleList: yqtzxqTableData.titleList };
yqtzxqTableData.dataList.forEach(info => { yqtzxqTableData.dataList.forEach(info => {
let {A} = info; let { A } = info;
let imgUrl = `${systemConfig.imgPath}/${A}`; let imgUrl = `${systemConfig.imgPath}/${A}`;
info["A"] = imgUrl; info["A"] = imgUrl;
yqtzxq.dataList.push(info); yqtzxq.dataList.push(info);
}) })
ret['yqtzxq'] = getTableOut( '园区通知详情', yqtzxq); ret['yqtzxq'] = getTableOut('园区通知详情', yqtzxq);
let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList); let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList);
ret['yqhd'] = getKeyValueOut('园区活动', yqhdPackageData); ret['yqhd'] = getKeyValueOut('园区活动', yqhdPackageData);
let yqhdmxTableData = tablePackage(excelData["园区活动明细"].headerList[0], excelData["园区活动明细"].bodyList); let yqhdmxTableData = tablePackage(excelData["园区活动明细"].headerList[0], excelData["园区活动明细"].bodyList);
ret['yqhdmx'] = getTableOut( '园区活动明细', yqhdmxTableData); ret['yqhdmx'] = getTableOut('园区活动明细', yqhdmxTableData);
res.send(ret); res.send(ret);
} }
\ No newline at end of file
import { log } from 'console';
import { systemConfig } from '../config/serverConfig'; import { systemConfig } from '../config/serverConfig';
import { getZhyy } from '../data/db/zhyy'; import { getZhyy } from '../data/db/zhyy';
import { zhyyTableData } from '../data/table/zhyyData'; import { zhyyTableData } from '../data/table/zhyyData';
...@@ -10,102 +11,110 @@ import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut ...@@ -10,102 +11,110 @@ import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut
export async function getData(req, res) { export async function getData(req, res) {
let excelData = zhyyTableData(); let excelData = zhyyTableData();
let dbData = await getZhyy(); let dbData = await getZhyy();
let ret:any = {}; let ret: any = {};
let yqgkPackageData = keyValuePackage(dbData['园区概况'].dataList); let yqgkPackageData = keyValuePackage(dbData['园区概况'].dataList);
ret['yqgk'] = getKeyValueOut('园区概况', yqgkPackageData); ret['yqgk'] = getKeyValueOut('园区概况', yqgkPackageData);
let zfqysjPackageData = keyValuePackage(dbData['在孵企业数据'].dataList); let zfqysjPackageData = keyValuePackage(dbData['在孵企业数据'].dataList);
ret['zfqysj'] = getKeyValueOut('在孵企业数据', zfqysjPackageData); ret['zfqysj'] = getKeyValueOut('在孵企业数据', zfqysjPackageData);
let rzqybhqsPackageData = onceYBarChartPackage( dbData['入驻企业变化趋势'], '',''); let rzqybhqsPackageData = onceYBarChartPackage(dbData['入驻企业变化趋势'], '', '');
ret['rzqybhqs'] = getOnceYBarChartOut('入驻企业变化趋势', rzqybhqsPackageData); ret['rzqybhqs'] = getOnceYBarChartOut('入驻企业变化趋势', rzqybhqsPackageData);
let rzqyhylxPackageData = keyValuePackage(dbData['入驻企业行业类型'].dataList); let rzqyhylxPackageData = keyValuePackage(dbData['入驻企业行业类型'].dataList);
ret['rzqyhylx'] = getKeyValueOut('入驻企业行业类型', rzqyhylxPackageData); ret['rzqyhylx'] = getKeyValueOut('入驻企业行业类型', rzqyhylxPackageData);
let fhyyPackageData = keyValuePackage(dbData['孵化运营'].dataList); let fhyyPackageData = keyValuePackage(dbData['孵化运营'].dataList);
ret['fhyy'] = getKeyValueOut('孵化运营', fhyyPackageData); ret['fhyy'] = getKeyValueOut('孵化运营', fhyyPackageData);
let fhmjbhqsPackageData = onceYBarChartPackage( dbData['孵化面积变化趋势'], '',''); let fhmjbhqsPackageData = onceYBarChartPackage(dbData['孵化面积变化趋势'], '', '');
ret['fhmjbhqs'] = getOnceYBarChartOut('孵化面积变化趋势', fhmjbhqsPackageData); ret['fhmjbhqs'] = getOnceYBarChartOut('孵化面积变化趋势', fhmjbhqsPackageData);
// let zfqybhqsPackageData = onceYBarChartPackage( excelData['在孵企业变化趋势'], '',''); // let zfqybhqsPackageData = onceYBarChartPackage( excelData['在孵企业变化趋势'], '','');
let zfqybhqsPackageData = onceYBarChartPackage( dbData["在孵企业变化趋势"], '',''); let zfqybhqsPackageData = onceYBarChartPackage(dbData["在孵企业变化趋势"], '', '');
ret['zfqybhqs'] = getOnceYBarChartOut('在孵企业变化趋势', zfqybhqsPackageData); ret['zfqybhqs'] = getOnceYBarChartOut('在孵企业变化趋势', zfqybhqsPackageData);
// let byqybhqsPackageData = onceYBarChartPackage( excelData['毕业企业变化趋势'], '',''); // let byqybhqsPackageData = onceYBarChartPackage( excelData['毕业企业变化趋势'], '','');
let byqybhqsPackageData = onceYBarChartPackage( dbData["毕业企业变化趋势"], '',''); let byqybhqsPackageData = onceYBarChartPackage(dbData["毕业企业变化趋势"], '', '');
ret['byqybhqs'] = getOnceYBarChartOut('毕业企业变化趋势', byqybhqsPackageData); ret['byqybhqs'] = getOnceYBarChartOut('毕业企业变化趋势', byqybhqsPackageData);
let rzqyPackageData = onceYBarChartPackage( dbData['融资企业变化趋势'], '',''); let rzqyPackageData = onceYBarChartPackage(dbData['融资企业变化趋势'], '', '');
ret['rzqy'] = getOnceYBarChartOut('融资企业变化趋势', rzqyPackageData); ret['rzqy'] = getOnceYBarChartOut('融资企业变化趋势', rzqyPackageData);
let ryzzPackageData = keyValuePackage(dbData['荣誉资质'].dataList); let ryzzPackageData = keyValuePackage(dbData['荣誉资质'].dataList);
ret['ryzz'] = getKeyValueOut('荣誉资质', ryzzPackageData); ret['ryzz'] = getKeyValueOut('荣誉资质', ryzzPackageData);
// 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 zhyyhzsjPackageData = keyValuePackage(dbData['智慧运营汇总数据'].dataList); let zhyyhzsjPackageData = keyValuePackage(dbData['智慧运营汇总数据'].dataList);
ret['zhyyhzsj'] = getKeyValueOut('智慧运营汇总数据', zhyyhzsjPackageData); ret['zhyyhzsj'] = getKeyValueOut('智慧运营汇总数据', zhyyhzsjPackageData);
let dtTableData = tablePackage(excelData["地图"].headerList[0], excelData["地图"].bodyList); let dtTableData = tablePackage(excelData["地图"].headerList[0], excelData["地图"].bodyList);
let dt = {dataList:[], titleList:dtTableData.titleList}; let dt = { dataList: [], titleList: dtTableData.titleList };
dtTableData.dataList.forEach(info => { dtTableData.dataList.forEach(info => {
let {D} = info; let { D } = info;
let imgUrl = `${systemConfig.imgPath}/${D}`; let imgUrl = `${systemConfig.imgPath}/${D}`;
info["D"] = imgUrl; info["D"] = imgUrl;
dt.dataList.push(info); dt.dataList.push(info);
}) })
ret['dt'] = getTableOut( '地图', dt); ret['dt'] = getTableOut('地图', dt);
let jyfxPackageData = keyValuePackage(excelData['就业分析'].dataList); let jyfxPackageData = keyValuePackage(excelData['就业分析'].dataList);
ret['jyfx'] = getKeyValueOut('就业分析', jyfxPackageData); ret['jyfx'] = getKeyValueOut('就业分析', jyfxPackageData);
// let jyfxPackageData = keyValuePackage(dbData['就业分析'].dataList);
let jdjyrsqsfxPackageData = onceYBarChartPackage( dbData['年度就业人数趋势分析'], '',''); // ret['jyfx'] = getKeyValueOut('就业分析', jyfxPackageData);
let jdjyrsqsfxPackageData = onceYBarChartPackage(dbData['年度就业人数趋势分析'], '', '');
ret['jdjyrsqsfx'] = getOnceYBarChartOut('年度就业人数趋势分析', jdjyrsqsfxPackageData); ret['jdjyrsqsfx'] = getOnceYBarChartOut('年度就业人数趋势分析', jdjyrsqsfxPackageData);
let cygmfxPackageData = keyValuePackage(excelData['产业规模分析'].dataList); let cygmfxPackageData = keyValuePackage(excelData['产业规模分析'].dataList);
ret['cygmfx'] = getKeyValueOut('产业规模分析', cygmfxPackageData); ret['cygmfx'] = getKeyValueOut('产业规模分析', cygmfxPackageData);
let zfqyyszbPackageData = keyValuePackage(dbData['在孵企业营收占比'].dataList); let zfqyyszbPackageData = keyValuePackage(dbData['在孵企业营收占比'].dataList);
ret['zfqyyszb'] = getKeyValueOut('在孵企业营收占比', zfqyyszbPackageData); ret['zfqyyszb'] = getKeyValueOut('在孵企业营收占比', zfqyyszbPackageData);
let qyfwPackageData = keyValuePackage(dbData['企业服务'].dataList); let qyfwPackageData = keyValuePackage(dbData['企业服务'].dataList);
ret['qyfw'] = getKeyValueOut('企业服务', qyfwPackageData); ret['qyfw'] = getKeyValueOut('企业服务', qyfwPackageData);
let qyfwlxPackageData = keyValuePackage(dbData['企业服务类型'].dataList); let qyfwlxPackageData = keyValuePackage(dbData['企业服务类型'].dataList);
ret['qyfwlx'] = getKeyValueOut('企业服务类型', qyfwlxPackageData); ret['qyfwlx'] = getKeyValueOut('企业服务类型', qyfwlxPackageData);
let fwzlTableData = tablePackage(excelData["服务质量"].headerList[0], excelData["服务质量"].bodyList);//todo111 let fwzlTableData = tablePackage(excelData["服务质量"].headerList[0], excelData["服务质量"].bodyList);//todo111
ret['fwzl'] = getTableOut( '服务质量', fwzlTableData); ret['fwzl'] = getTableOut('服务质量', fwzlTableData);
let yysrqsPackageData = onceYBarChartPackage( excelData['运营收入趋势'], '',''); let yysrqsPackageData = onceYBarChartPackage(excelData['运营收入趋势'], '', '');
ret['yysrqs'] = getOnceYBarChartOut('运营收入趋势', yysrqsPackageData); ret['yysrqs'] = getOnceYBarChartOut('运营收入趋势', yysrqsPackageData);
let cyzcPackageData = keyValuePackage(excelData['产业政策'].dataList); let cyzcPackageData = keyValuePackage(excelData['产业政策'].dataList);
ret['cyzc'] = getKeyValueOut('产业政策', cyzcPackageData); ret['cyzc'] = getKeyValueOut('产业政策', cyzcPackageData);
let cyzcxxPackageData = keyValuePackage(excelData['产业政策详细'].dataList); let cyzcxxPackageData = keyValuePackage(excelData['产业政策详细'].dataList);
ret['cyzcxx'] = getKeyValueOut('产业政策详细', cyzcxxPackageData); ret['cyzcxx'] = getKeyValueOut('产业政策详细', cyzcxxPackageData);
let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList); let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList);
let yqhd = []; let yqhd = [];
yqhdPackageData.forEach( info => { yqhdPackageData.forEach(info => {
let {key, value} = info; let { key, value } = info;
info.value = `${systemConfig.imgPath}/${value}`; info.value = `${systemConfig.imgPath}/${value}`;
yqhd.push(info); yqhd.push(info);
}) })
ret['yqhd'] = getKeyValueOut('园区活动', yqhd); ret['yqhd'] = getKeyValueOut('园区活动', yqhd);
let yqxwPackageData = keyValuePackage(excelData['园区新闻'].dataList); let yqxwPackageData = keyValuePackage(excelData['园区新闻'].dataList);
let yqxw = []; let yqxw = [];
yqxwPackageData.forEach( info => { yqxwPackageData.forEach(info => {
let {key, value} = info; let { key, value } = info;
info.value = `${systemConfig.imgPath}/${value}`; info.value = `${systemConfig.imgPath}/${value}`;
yqxw.push(info); yqxw.push(info);
}) })
ret['yqxw'] = getKeyValueOut('园区新闻', yqxw); ret['yqxw'] = getKeyValueOut('园区新闻', yqxw);
res.send(ret); res.send(ret);
} }
\ No newline at end of file
...@@ -184,7 +184,6 @@ export enum INDUSTRY { ...@@ -184,7 +184,6 @@ export enum INDUSTRY {
文化创意 文化创意
} }
/** /**
* 最高学历 * 最高学历
*/ */
...@@ -194,6 +193,7 @@ export enum DEGREE { ...@@ -194,6 +193,7 @@ export enum DEGREE {
硕士, 硕士,
博士, 博士,
博士以上, 博士以上,
} }
/** /**
...@@ -272,6 +272,7 @@ export enum ENTERPRISETEAM { ...@@ -272,6 +272,7 @@ export enum ENTERPRISETEAM {
} }
//企业服务受理 //企业服务受理
export enum FOLLOWUPSTATUS { export enum FOLLOWUPSTATUS {
未受理 = 1, 未受理 = 1,
...@@ -296,6 +297,13 @@ export enum NEEDCATEGORY { ...@@ -296,6 +297,13 @@ export enum NEEDCATEGORY {
} }
export enum QUARTER {
第一季度 = 1,
第二季度,
第三季度,
第四季度
}
/** /**
* 孵化器投资方式 * 孵化器投资方式
*/ */
......
...@@ -15,13 +15,14 @@ export async function initConfig() { ...@@ -15,13 +15,14 @@ export async function initConfig() {
if (!configInfo || !configInfo.config) throw new BizError('xml中无配置'); if (!configInfo || !configInfo.config) throw new BizError('xml中无配置');
else { else {
let {port, dbHost, dbPort, sign, imgPath } = configInfo.config; let {port, dbHost, dbPort, sign, imgPath, imgFileUrl } = configInfo.config;
systemConfig.port = parseInt(port[0]); systemConfig.port = parseInt(port[0]);
systemConfig.dbPath = analysisDBPathStr(dbHost[0], dbPort[0]); systemConfig.dbPath = analysisDBPathStr(dbHost[0], dbPort[0]);
systemConfig.sign = sign[0]; systemConfig.sign = sign[0];
systemConfig.imgPath = imgPath[0]; systemConfig.imgPath = imgPath[0];
systemConfig.imgFileUrl = imgFileUrl[0];
} }
console.log("config init success"); console.log("config init success");
......
...@@ -8,5 +8,6 @@ export class ServerConfig { ...@@ -8,5 +8,6 @@ export class ServerConfig {
port:number; port:number;
dbPath:string; dbPath:string;
sign:string; sign:string;
imgPath:string; imgPath:string;
imgFileUrl:String;
} }
\ No newline at end of file
...@@ -3,27 +3,33 @@ ...@@ -3,27 +3,33 @@
*/ */
import moment = require("moment") import moment = require("moment")
import { FUHUASTATE, INDUSTRY, MOVEOUTTYPE, OPERATIONALDATATYPE, TABLENAME, FINANCINGROUNDS, ENTERPRISETEAM } from "../../config/enum"; import { FUHUASTATE, INDUSTRY, MOVEOUTTYPE, OPERATIONALDATATYPE, TABLENAME, FINANCINGROUNDS, ENTERPRISETEAM, FUHUAQILNVESTMENTSTYLE } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData"; import { selectData, selectManyTableData } from "./operationalData";
import { keyValuePackage } from "../../dataPackage/inFrontOut"; import { keyValuePackage } from "../../dataPackage/inFrontOut";
import { info } from "console"; import { info, log } from "console";
import { getChart, getKeyValue, getYearList } from "./out"; import { getChart, getKeyValue, getYearList } from "./out";
import { get } from "http"; import { get } from "http";
import { changeEnumValue } from "../../tools/eccEnum";
export async function getJxgljsc() { export async function getJxgljsc() {
let jxgljsc = { let jxgljsc = {
产业结构: { dataList: [], titleList: ['key', 'value'] },//产业结构 产业结构: { dataList: [], titleList: ['key', 'value'] },//产业结构
科技型中小企业认定情况: { dataList: [], titleList: ['key', 'value'] },//创业团队
科技型中小企业认定情况详细: { bodyList: [], headerList: [['企业名称', '认定时间']] },//新增科技型中小企业认定情况
人才引进: { dataList: [], titleList: ['key', 'value'] },//人才引进 人才引进: { dataList: [], titleList: ['key', 'value'] },//人才引进
孵化器汇总数据: { dataList: [], titleList: ['key', 'value'] },//孵化器汇总数据 孵化器汇总数据: { dataList: [], titleList: ['key', 'value'] },//孵化器汇总数据
企业动态: { dataList: [], titleList: ['key', 'value'] },//企业动态 企业动态: { dataList: [], titleList: ['key', 'value'] },//企业动态
在孵企业变化趋势: [],//在孵企业变化趋势 在孵企业变化趋势: [],//在孵企业变化趋势
总营收金额: { dataList: [], titleList: ['key', 'value'] },//总营收金额 总营收金额: { dataList: [], titleList: ['key', 'value'] },//总营收金额
在孵企业总营收: { dataList: [], titleList: ['key', 'value'] },//在孵企业总营收 在孵企业总营收: { dataList: [], titleList: ['key', 'value'] },//在孵企业总营收
// 投资类型:[],//新增投资类型 投资类型分布图: [],//新增投资类型
在孵企业融资情况: { dataList: [], titleList: ['key', 'value'] },//在孵企业融资情况 在孵企业融资情况: { dataList: [], titleList: ['key', 'value'] },//在孵企业融资情况
在孵企业融资情况占比: { dataList: [], titleList: ['key', 'value'] },
企业孵化数: { dataList: [], titleList: ['key', 'value'] },//企业孵化数 企业孵化数: { dataList: [], titleList: ['key', 'value'] },//企业孵化数
金融服务: { dataList: [], titleList: ['key', 'value'] }//新增后台填报 金融服务: { dataList: [], titleList: ['key', 'value'] },//新增后台填报
预警: { dataList: [], titleList: ['key', 'value'] },//预警
企业预警: { bodyList: [], headerList: [['企业名称', '风险等级']] }
}; };
// 获取当前时间 // 获取当前时间
...@@ -32,8 +38,8 @@ export async function getJxgljsc() { ...@@ -32,8 +38,8 @@ export async function getJxgljsc() {
"moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"]; "moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"];
//获取在孵企业 //获取在孵企业
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn); // let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn); let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { state: { "%ne%": FUHUASTATE.迁出 } }, fhColumn);
//获取在孵企业租赁信息 //获取在孵企业租赁信息
let 租赁Column = ["eId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"]; let 租赁Column = ["eId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let 在孵租赁联查includeConf = {}; let 在孵租赁联查includeConf = {};
...@@ -48,9 +54,27 @@ export async function getJxgljsc() { ...@@ -48,9 +54,27 @@ export async function getJxgljsc() {
jxgljsc.人才引进.dataList = await rcyj();//人才引进 jxgljsc.人才引进.dataList = await rcyj();//人才引进
//科技型中小企业认定情况
let KXdbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业基础信息表, {}, null);
let KXrdCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业资质, {}, null);
let { kjxzxqyrdqk, kjxzxqyrdqkxx } = await getKXrdqk(KXdbList, KXrdCount);
jxgljsc.科技型中小企业认定情况.dataList = getKeyValue(kjxzxqyrdqk);
//科技型中小企业认定情况详细列表
jxgljsc.科技型中小企业认定情况详细.bodyList = kjxzxqyrdqkxx;
let fhqhzsjInfo = await fhqhzsj(羽翼孵化器dbList, 在孵dbList); let fhqhzsjInfo = await fhqhzsj(羽翼孵化器dbList, 在孵dbList);
jxgljsc.孵化器汇总数据.dataList = getKeyValue(fhqhzsjInfo);//孵化器汇总数据 jxgljsc.孵化器汇总数据.dataList = getKeyValue(fhqhzsjInfo);//孵化器汇总数据
/**
* 预警
*/
let {yj,riskEnterprises} = await getyj();
jxgljsc.预警.dataList = getKeyValue(yj)
jxgljsc.企业预警.bodyList = riskEnterprises//企业预警
let qydtInfo = await qydt(在孵dbList); let qydtInfo = await qydt(在孵dbList);
jxgljsc.企业动态.dataList = getKeyValue(qydtInfo);//企业动态 jxgljsc.企业动态.dataList = getKeyValue(qydtInfo);//企业动态
...@@ -70,11 +94,13 @@ export async function getJxgljsc() { ...@@ -70,11 +94,13 @@ export async function getJxgljsc() {
let zfqyzysInfo = await zfqyzys(在孵dbList); let zfqyzysInfo = await zfqyzys(在孵dbList);
jxgljsc.在孵企业总营收.dataList = getKeyValue(zfqyzysInfo);//在孵企业总营收 jxgljsc.在孵企业总营收.dataList = getKeyValue(zfqyzysInfo);//在孵企业总营收
/** // 投资类型
* 投资类型 jxgljsc.投资类型分布图 = await tzlxfb();//投资类型分布图
*/
// jxgljsc.投资类型 = await zfqybhqs(在孵dbList);//投资类型
jxgljsc.在孵企业融资情况.dataList = await zfqyrzqk();//在孵企业融资情况 jxgljsc.在孵企业融资情况.dataList = await zfqyrzqk();//在孵企业融资情况
jxgljsc.在孵企业融资情况占比.dataList = await zfqyrzqkzb();
let 资质Column = ["qId", "eId", "kxTime", "zjtxTime", "xjrTime", "xjrPyTime", "goPublicTime", "gaoXinJiShuTime", "goPublicSector"]; let 资质Column = ["qId", "eId", "kxTime", "zjtxTime", "xjrTime", "xjrPyTime", "goPublicTime", "gaoXinJiShuTime", "goPublicSector"];
let 企业资质联查includeConf = {}; let 企业资质联查includeConf = {};
...@@ -96,15 +122,16 @@ async function cyjg() { ...@@ -96,15 +122,16 @@ async function cyjg() {
if (isNaN(anyKey)) { if (isNaN(anyKey)) {
let keyStr = key; let keyStr = key;
let industry = INDUSTRY[key]; let industry = INDUSTRY[key];
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业基础信息表, { industry }, null); let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业基础信息表, { industry: { "%like%": industry } }, null);
result.push({ key: keyStr, value: count }) if (count > 0) {
result.push({ key: keyStr, value: count });
}
} }
} }
return result; return result;
} }
//人才引进-----设计图有改动todo
async function rcyj() { async function rcyj() {
let result = []; let result = [];
...@@ -124,13 +151,70 @@ async function rcyj() { ...@@ -124,13 +151,70 @@ async function rcyj() {
return result; return result;
} }
/**
* 科技型中小企业认定情况
*/
// async function getKXrdqk(KXdbList, KXrdCount) {
// let kjxzxqyrdqk = {
// 科技型中小企业认定总数: 0,
// }
// // kjxzxqyrdqk.科技型中小企业认定总数 = KXrdCount;
// let kjxzxqyrdqkxx = [];
// //获取所有企业服务表联查企业信息表
// let qyzzColumn = ["qId", "eId", "kxTime", "kxNumber","kxState"];
// let 企业服务includeConf = {};
// 企业服务includeConf[TABLENAME.企业基础信息表] = { cloum: ["enterpriseName"], where: {} }
// let 企业资质dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业资质, {}, qyzzColumn, 企业服务includeConf);
// 企业资质dbList.forEach(info => {
// if (info.kxTime) {
// kjxzxqyrdqk.科技型中小企业认定总数++;
// }
// //认定时间
// if (info.kxTime) {
// let kxTime = moment(info.kxTime).format('YYYY-MM-DD');
// kjxzxqyrdqkxx.push([info.enterprise.enterpriseName, kxTime,]);
// }
// })
// return { kjxzxqyrdqk, kjxzxqyrdqkxx };
// }
async function getKXrdqk(KXdbList, KXrdCount) {
let kjxzxqyrdqk = {
科技型中小企业认定总数: 0,
};
let kjxzxqyrdqkxx = [];
let qyzzColumn = ["qId", "eId", "kxTime", "kxNumber", "kxState"];
let 企业服务includeConf = {};
企业服务includeConf[TABLENAME.企业基础信息表] = { cloum: ["enterpriseName"], where: {} };
let 企业资质dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业资质, {}, qyzzColumn, 企业服务includeConf);
// 按 kxTime 排序(降序)
let sorted企业资质dbList = 企业资质dbList
.filter(info => info.kxTime) // 确保 kxTime 存在
.sort((a, b) => moment(b.kxTime).diff(moment(a.kxTime))); // 按时间降序排序
// 遍历排序后的数据并生成结果
sorted企业资质dbList.forEach(info => {
if (info.kxTime) {
kjxzxqyrdqk.科技型中小企业认定总数++;
let kxTime = `${moment(info.kxTime).format('YYYY')}年`;
kjxzxqyrdqkxx.push([info.enterprise.enterpriseName, kxTime]);
}
});
return { kjxzxqyrdqk, kjxzxqyrdqkxx };
}
//孵化器汇总数据
/**
* 孵化器汇总数据
*/
async function fhqhzsj(data, zfData) { async function fhqhzsj(data, zfData) {
let fhqhzsj = { let fhqhzsj = {
孵化器总面积: data.totalArea + "㎡", 孵化器总面积: data.totalArea + "㎡",
在孵企业: zfData.length, 在孵企业: zfData.length + "家",
在孵面积: data.zaifuArea + "㎡" 在孵面积: data.zaifuArea + "㎡"
} }
...@@ -138,8 +222,57 @@ async function fhqhzsj(data, zfData) { ...@@ -138,8 +222,57 @@ async function fhqhzsj(data, zfData) {
} }
/**
* 预警
*/
async function getyj() {
let yj = {
高风险: 0,
中低风险: 0,
关注: 0
}
let riskEnterprises: any[] = [];
let fhColumn = ["enterpriseName","industry", "eId","shijiaoziben"];
//获取所有企业孵化信息
let manyTableInfo: any = {}
// manyTableInfo[TABLENAME.企业孵化信息] = { column: ["fId", "eId", "startTime", "endTime", "state"], where: { state: FUHUASTATE.实体孵化 } };
manyTableInfo[TABLENAME.企业孵化信息] = { column: ["fId", "eId", "moveOutTime"], where: {} };
let fhdbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {}, fhColumn, manyTableInfo);
fhdbList.forEach(info => {
let riskLevel: string;
if (info.enterprise_fuhuas[0].moveOutTime) {
yj.高风险++;
riskLevel = "高风险";
} else if (info.shijiaoziben == "-" || info.shijiaoziben == null) {
yj.中低风险++;
riskLevel = "中低风险";
}
riskEnterprises.push([
info.enterpriseName,
riskLevel
]);
});
return {
yj,
riskEnterprises
};
}
/**
* 企业预警
*/
async function qyyj() {
}
//企业动态--------- /**
* 企业动态---------
*/
async function qydt(data) { async function qydt(data) {
let result = []; let result = [];
...@@ -179,15 +312,29 @@ async function qydt(data) { ...@@ -179,15 +312,29 @@ async function qydt(data) {
} }
}) })
let 同比 = ((qydt.本月新加入在孵企业 - 上月) / 上月) * 100; // let 同比 = ((qydt.本月新加入在孵企业 - 上月) / 上月) * 100;
qydt.同比上月 = 同比.toFixed(2) + "%"; // qydt.同比上月 = 同比.toFixed(2) + "%" || "0%";
// let 环比 = ((今年 - 去年) / 去年) * 100;
// qydt.环比去年 = 环比.toFixed(2) + "%";
if (上月 !== 0) {
let 同比 = ((qydt.本月新加入在孵企业 - 上月) / 上月) * 100;
qydt.同比上月 = 同比.toFixed(2) + "%";
} else {
qydt.同比上月 = "0%";
}
let 环比 = ((今年 - 去年) / 去年) * 100; if (去年 !== 0) {
qydt.环比去年 = 环比.toFixed(2) + "%"; let 环比 = ((今年 - 去年) / 去年) * 100;
qydt.环比去年 = 环比.toFixed(2) + "%";
} else {
qydt.环比去年 = "0%";
}
return result; // result.push(qydt); // 将 qydt 对象添加到 result 数组中
return qydt;
} }
//金融服务 //金融服务
async function jrfw(data) { async function jrfw(data) {
let jrfw = { let jrfw = {
...@@ -221,7 +368,6 @@ function zfqybhqs(data) { ...@@ -221,7 +368,6 @@ function zfqybhqs(data) {
} }
//总营收金额 //总营收金额
async function zysje(data) { async function zysje(data) {
//获取总营收金额 //获取总营收金额
...@@ -279,7 +425,6 @@ async function zfqyzys(data) { ...@@ -279,7 +425,6 @@ async function zfqyzys(data) {
//在孵企业融资情况 //在孵企业融资情况
async function zfqyrzqk() { async function zfqyrzqk() {
let result = []; let result = [];
for (let key in FINANCINGROUNDS) { for (let key in FINANCINGROUNDS) {
let anyKey: any = key; let anyKey: any = key;
if (isNaN(anyKey)) { if (isNaN(anyKey)) {
...@@ -289,9 +434,34 @@ async function zfqyrzqk() { ...@@ -289,9 +434,34 @@ async function zfqyrzqk() {
} }
} }
// // 计算总融资数量
// let totalFinancing = result.reduce((acc, item) => acc + item.value, 0);
// // 计算各类型占比
// for (let i = 0; i < result.length; i++) {
// let percentage = ((result[i].value / totalFinancing) * 100).toFixed(2);
// result[i].percentage = `${percentage}%`;
// }
return result; return result;
} }
async function zfqyrzqkzb() {
// 获取原始的融资情况数据
let financingData = await zfqyrzqk();
// 计算总融资数量
let totalFinancing = financingData.reduce((acc, item) => acc + item.value, 0);
// 计算各类型占比并存储在新数组中
let percentageData = financingData.map(item => ({
key: item.key,
value: ((item.value / totalFinancing) * 100).toFixed(2) + '%'
}));
return percentageData;
}
//企业孵化率 //企业孵化率
async function qyfhl() { async function qyfhl() {
...@@ -351,3 +521,35 @@ async function qyfhs(data) { ...@@ -351,3 +521,35 @@ async function qyfhs(data) {
} }
/**
* 投资类型:自有资金、参与基金、自有基金todo
*/
async function tzlxfb() {
let tzlxList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null);
let tzlx = [
{ key: '自有资金', value: 0 },
{ key: '参与基金', value: 0 },
{ key: '自有基金', value: 0 }
]
// 遍历融资记录并统计
tzlxList.forEach(info => {
let { fuHuaQiInvestmentStyle } = info;
if (fuHuaQiInvestmentStyle === FUHUAQILNVESTMENTSTYLE.自有资金) {
tzlx[0].value += 1;
} else if (fuHuaQiInvestmentStyle === FUHUAQILNVESTMENTSTYLE.参与基金) {
tzlx[1].value += 1;
} else if (fuHuaQiInvestmentStyle === FUHUAQILNVESTMENTSTYLE.自有基金) {
tzlx[2].value += 1;
}
});
//将结果格式化为所需的输出格式
let result = [
{
name: '投资类型',
data: tzlx
}
];
return result;
}
\ No newline at end of file
...@@ -60,11 +60,14 @@ export async function getEnterprise() { ...@@ -60,11 +60,14 @@ export async function getEnterprise() {
let fhdbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn); let fhdbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn);
//获取在孵企业 //获取在孵企业
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn); // let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn); let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {state: { "%ne%": FUHUASTATE.迁出 }}, fhColumn);
//获取毕业企业 //获取毕业企业
// let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": MOVEOUTTYPE.毕业迁出 }, fhColumn); // let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": MOVEOUTTYPE.毕业迁出 }, fhColumn);
let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": EMIGRATIONTYPE.毕业迁出 }, fhColumn); let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": EMIGRATIONTYPE.毕业迁出 }, fhColumn);
let 迁出dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, fhColumn);
//获取所有企业孵化表联查企业信息表 //获取所有企业孵化表联查企业信息表
let 孵化企业includeConf = {}; let 孵化企业includeConf = {};
let 孵化企业Clumn = ["enterpriseName", "industry"]; let 孵化企业Clumn = ["enterpriseName", "industry"];
...@@ -73,14 +76,12 @@ export async function getEnterprise() { ...@@ -73,14 +76,12 @@ export async function getEnterprise() {
//企业基本信息 //企业基本信息
qyjbqk.在孵企业 = 在孵dbList.length; qyjbqk.在孵企业 = 在孵dbList.length;
qyjbqk.毕业企业 = 毕业dbList.length; qyjbqk.毕业企业 = 毕业dbList.length;
qyfw.企业基本情况.dataList = getKeyValue(qyjbqk); qyfw.企业基本情况.dataList = getKeyValue(qyjbqk);
//变化趋势分析 //todo 需要日志表 //变化趋势分析 //todo 需要日志表
// getBhqsfx(fhdbList); // getBhqsfx(fhdbList);
let 在孵企业变化趋势 = getZfqy(在孵dbList); let 在孵企业变化趋势 = getZfqy(在孵dbList, 毕业dbList);
qyfw.变化趋势分析 = getChart(在孵企业变化趋势); qyfw.变化趋势分析 = getChart(在孵企业变化趋势);
//入孵时长分布 //入孵时长分布
...@@ -126,7 +127,7 @@ export async function getEnterprise() { ...@@ -126,7 +127,7 @@ export async function getEnterprise() {
qyfw.企业需求动态详细.bodyList = qyxqdtxx; qyfw.企业需求动态详细.bodyList = qyxqdtxx;
//企业变化情况 //企业变化情况
let qybhqk = getQybhqk(在孵dbList); let qybhqk = getQybhqk(在孵dbList, 迁出dbList);
qyfw.企业变化情况.dataList = getKeyValue(qybhqk); qyfw.企业变化情况.dataList = getKeyValue(qybhqk);
//企业变化情况——变化趋势 //企业变化情况——变化趋势
...@@ -321,7 +322,7 @@ function getBhqsfx(data) { ...@@ -321,7 +322,7 @@ function getBhqsfx(data) {
// return bhqsfx; // return bhqsfx;
// } // }
function getZfqy(data) { function getZfqy(在孵dbList, 毕业dbList) {
let year = getYearList(); let year = getYearList();
let bhqsfx = { let bhqsfx = {
"在孵": [], "在孵": [],
...@@ -334,7 +335,7 @@ function getZfqy(data) { ...@@ -334,7 +335,7 @@ function getZfqy(data) {
bhqsfx.毕业.push({ key: year[i], value: 0 }); bhqsfx.毕业.push({ key: year[i], value: 0 });
} }
data.forEach(info => { 在孵dbList.forEach(info => {
let startTimeYear = moment(info.startTime).year(); // 获取入孵开始时间 let startTimeYear = moment(info.startTime).year(); // 获取入孵开始时间
let endTimeYear = moment(info.endTime).year(); // 获取入孵结束时间 let endTimeYear = moment(info.endTime).year(); // 获取入孵结束时间
let moveOutType = info.moveOutType; let moveOutType = info.moveOutType;
...@@ -347,10 +348,27 @@ function getZfqy(data) { ...@@ -347,10 +348,27 @@ function getZfqy(data) {
} }
} }
// // 统计毕业企业
// if (moveOutType === EMIGRATIONTYPE.毕业迁出) {
// for (let i = 0; i < year.length; i++) {
// if (parseInt(year[i]) === startTimeYear) {
// bhqsfx.毕业[i].value += 1;
// break;
// }
// }
// }
});
毕业dbList.forEach(info => {
let startTimeYear = moment(info.startTime).year(); // 获取入孵开始时间
let endTimeYear = moment(info.endTime).year(); // 获取入孵结束时间
let moveOutType = info.moveOutType;
// 统计毕业企业 // 统计毕业企业
if (moveOutType === EMIGRATIONTYPE.毕业迁出) { if (moveOutType === EMIGRATIONTYPE.毕业迁出) {
for (let i = 0; i < year.length; i++) { for (let i = 0; i < year.length; i++) {
if (parseInt(year[i]) === endTimeYear) { if (parseInt(year[i]) === startTimeYear) {
bhqsfx.毕业[i].value += 1; bhqsfx.毕业[i].value += 1;
break; break;
} }
...@@ -378,7 +396,8 @@ function getRfscfx(data) { ...@@ -378,7 +396,8 @@ function getRfscfx(data) {
let nowTime = moment(); let nowTime = moment();
data.forEach(item => { data.forEach(item => {
let parsedEndTime = moment(item.endTime); //获取入孵结束时间 let parsedEndTime = moment(item.endTime); //获取入孵结束时间
let monthDiff = parsedEndTime.diff(nowTime, 'months'); let monthDiff = parsedEndTime.diff(nowTime, 'months');// 获取月份差值
if (monthDiff >= 0 && monthDiff < 3) rfscfx.即将到期 += 1; if (monthDiff >= 0 && monthDiff < 3) rfscfx.即将到期 += 1;
else if (monthDiff >= 3 && monthDiff < 12) rfscfx["1年以内"] += 1; else if (monthDiff >= 3 && monthDiff < 12) rfscfx["1年以内"] += 1;
else if (monthDiff >= 12 && monthDiff < 24) rfscfx["1-2年"] += 1; else if (monthDiff >= 12 && monthDiff < 24) rfscfx["1-2年"] += 1;
...@@ -398,8 +417,8 @@ async function getQyfwhzsj() { ...@@ -398,8 +417,8 @@ async function getQyfwhzsj() {
let qyfwhzsj = { let qyfwhzsj = {
"企业总营收额": 0, "企业总营收额": 0,
"企业纳税": 0, "企业纳税": 0,
"融资企业": 0, "融资企业": "",
"企业专利": 0 "企业专利": 0,
}; };
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null); let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null);
经营信息dbList.forEach(info => { 经营信息dbList.forEach(info => {
...@@ -408,16 +427,28 @@ async function getQyfwhzsj() { ...@@ -408,16 +427,28 @@ async function getQyfwhzsj() {
}) })
let 企业融资dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null); let 企业融资dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null);
企业融资dbList.forEach(info => { qyfwhzsj.融资企业 = `${企业融资dbList.length}家`; // 保持原逻辑
qyfwhzsj.融资企业 += parseInt(info.financingAmount); // 企业融资dbList.forEach(info => {
}) // qyfwhzsj.融资企业 += parseInt(info.financingAmount);
// qyfwhzsj.融资企业 += 1;// 累加融资企业数量
// })
let 企业专利dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.知识产权, {}, null); let 企业专利dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.知识产权, {}, null);
企业专利dbList.forEach(info => { 企业专利dbList.forEach(info => {
qyfwhzsj.企业专利 += parseInt(info.number || 0); qyfwhzsj.企业专利 += parseInt(info.number || 0);
}) })
return qyfwhzsj; // return qyfwhzsj;
// 格式化输出(不改变原始数据类型)
return {
...qyfwhzsj,
"企业总营收额": `${qyfwhzsj.企业总营收额}万`, // 添加带单位的字段
"企业纳税": `${qyfwhzsj.企业纳税}万` ,// 添加带单位的字段
"企业专利": `${qyfwhzsj.企业专利}个` // 添加带单位的字段
};
} }
...@@ -473,14 +504,14 @@ async function getQyxqdt(入孵申请dbList, 企业服务Count) { ...@@ -473,14 +504,14 @@ async function getQyxqdt(入孵申请dbList, 企业服务Count) {
// return qybhqk; // return qybhqk;
// } // }
function getQybhqk(data) { function getQybhqk(在孵dbList, 迁出dbList) {
let qybhqk = { let qybhqk = {
新增企业: 0, // 统计当前年份入孵企业 新增企业: 0, // 统计当前年份入孵企业
迁出企业: 0 // 统计当前年份迁出企业 迁出企业: 0 // 统计当前年份迁出企业
} }
let nowTime = moment(); let nowTime = moment();
data.forEach(info => { 在孵dbList.forEach(info => {
let parsedStartTime = moment(info.startTime); // 获取入孵开始时间 let parsedStartTime = moment(info.startTime); // 获取入孵开始时间
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间 let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
...@@ -490,11 +521,21 @@ function getQybhqk(data) { ...@@ -490,11 +521,21 @@ function getQybhqk(data) {
} }
// 检查迁出时间的年份是否与当前年份相同 // 检查迁出时间的年份是否与当前年份相同
// if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
// qybhqk.迁出企业 += 1;
// }
})
迁出dbList.forEach(info => {
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
// 检查迁出时间的年份是否与当前年份相同
if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) { if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
qybhqk.迁出企业 += 1; qybhqk.迁出企业 += 1;
} }
}) })
return qybhqk; return qybhqk;
} }
...@@ -546,7 +587,8 @@ async function getJrfw(data, 企业融资dbList) { ...@@ -546,7 +587,8 @@ async function getJrfw(data, 企业融资dbList) {
jrfw.本月融资金额 = Math.round((jrfw.本月融资金额) * 100) / 100; //单位换算成万亿 jrfw.本月融资金额 = Math.round((jrfw.本月融资金额) * 100) / 100; //单位换算成万亿
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
//获取在孵企业经营数据 //获取在孵企业经营数据
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId }, null); // let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId}, null);
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null);
经营信息dbList.forEach(info => { 经营信息dbList.forEach(info => {
jrfw.在孵企业总营收 += parseFloat(info.BI); jrfw.在孵企业总营收 += parseFloat(info.BI);
}) })
...@@ -606,7 +648,8 @@ async function getZfqyzys(data) { ...@@ -606,7 +648,8 @@ async function getZfqyzys(data) {
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
//获取在孵企业经营数据 //获取在孵企业经营数据
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId }, null); // let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId }, null);
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null);
经营信息dbList.forEach(info => { //BI(单位万元) 经营信息dbList.forEach(info => { //BI(单位万元)
if (info.BI < 500) zfqyzys["500万以下"] += 1; if (info.BI < 500) zfqyzys["500万以下"] += 1;
else if (info.BI >= 500 && info.BI < 1000) zfqyzys["500万-1000万"] += 1; else if (info.BI >= 500 && info.BI < 1000) zfqyzys["500万-1000万"] += 1;
......
import moment = require("moment"); import moment = require("moment");
import { AWARDLEVEL, DEGREE, FINANCINGROUNDS, IPRTYPECLIENT, NEEDCATEGORY, OPERATIONALDATATYPE, TABLENAME } from "../../config/enum"; import { AWARDLEVEL, DEGREE, FINANCINGROUNDS, IPRTYPECLIENT, NEEDCATEGORY, OPERATIONALDATATYPE, QUARTER, TABLENAME } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData"; import { selectData, selectManyTableData } from "./operationalData";
import { getChart, getKeyValue, getYearList } from "./out"; import { getChart, getKeyValue, getYearList } from "./out";
import { changeEnumValue } from "../../tools/eccEnum"; import { changeEnumValue } from "../../tools/eccEnum";
import { getMySqlMs } from "../../tools/systemTools";
import { connectLogger } from "log4js";
import { systemConfig } from "../../config/serverConfig";
...@@ -11,24 +14,35 @@ export async function getQyszhx(eId) { ...@@ -11,24 +14,35 @@ export async function getQyszhx(eId) {
企业基本情况: { dataList: [], titleList: ['key', 'value'] }, 企业基本情况: { dataList: [], titleList: ['key', 'value'] },
企业基本数据: { dataList: [], titleList: ['key', 'value'] }, 企业基本数据: { dataList: [], titleList: ['key', 'value'] },
企业标签: { dataList: [], titleList: ['key', 'value'] }, 企业标签: { dataList: [], titleList: ['key', 'value'] },
资质认证:[],//企业资质 研发占比: { dataList: [], titleList: ['key', 'value'] },
企业自画像: { dataList: [], titleList: ['key', 'value'] },
租房补贴: { dataList: [], titleList: ['key', 'value'] },
高新: { dataList: [], titleList: ['key', 'value'] },
科小: { dataList: [], titleList: ['key', 'value'] },
小巨人: { dataList: [], titleList: ['key', 'value'] },
资质认证: { dataList: [], titleList: ['key', 'value'] },//企业资质
资质认证变化趋势: [],
知识产权: { dataList: [], titleList: ['key', 'value'] }, 知识产权: { dataList: [], titleList: ['key', 'value'] },
企业员工画像: { dataList: [], titleList: ['key', 'value'] }, 企业员工画像: { dataList: [], titleList: ['key', 'value'] },
企业汇总数据: { dataList: [], titleList: ['key', 'value'] }, 企业汇总数据: { dataList: [], titleList: ['key', 'value'] },
企业名称: { dataList: [], titleList: ['key', 'value'] },
营收情况: { dataList: [], titleList: ['key', 'value'] }, 营收情况: { dataList: [], titleList: ['key', 'value'] },
营收变化趋势: [], 营收变化趋势: [],
企业动态: { bodyList: [], headerList: [['企业照片', '获奖名称', '获奖时间', '颁奖单位', '奖项等级']] }, 企业动态: { bodyList: [], headerList: [['获奖数量', '获奖名称', '获奖时间', '颁奖单位', '奖项等级']] },
// 风险预警:{ bodyList: [], headerList: [['风险预警名称', '风险预警时间', '风险预警类型', '风险预警原因']] },
服务需求: { dataList: [], titleList: ['key', 'value'] }, 服务需求: { dataList: [], titleList: ['key', 'value'] },
活动变化趋势分析: [], 活动变化趋势分析: [],
荣誉资质图片: {},
服务记录_空间服务: { bodyList: [], headerList: [['服务名称', '服务时间', '服务内容']] }, 服务记录_空间服务: { bodyList: [], headerList: [['服务名称', '服务时间', '服务内容']] },
服务记录_工商服务: { bodyList: [], headerList: [['服务名称', '服务时间', '服务内容']] }, 服务记录_工商服务: { bodyList: [], headerList: [['服务名称', '服务时间', '服务内容']] },
服务记录_融资服务: { bodyList: [], headerList: [['服务名称', '服务时间', '服务内容']] }, 服务记录_融资服务: { bodyList: [], headerList: [['服务名称', '服务时间', '服务内容']] },
服务记录: { dataList: [], titleList: ['key', 'value'] }, 服务记录: { dataList: [], titleList: ['key', 'value'] },
历年人才招聘情况:[], 历年人才招聘情况: [],
} }
/**数据库查询 */ /**数据库查询 */
let 企业基础信息 = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, { eId }, null); let 企业基础信息 = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, { eId }, null);
if (!Object.keys(企业基础信息).length) console.log('eId:', eId);
// let column = ["eId", "enterpriseName", "uscc", "", "", "", "", "", "", "", "", "", "", "", ""]; // let column = ["eId", "enterpriseName", "uscc", "", "", "", "", "", "", "", "", "", "", "", ""];
let 孵化Column = ["fId", "eId", "startTime", "endTime", "state", "virtualCause", "virtualCauseDes", "moveOutType", "moveOutTrace", "moveOutCause", "moveOutTime", let 孵化Column = ["fId", "eId", "startTime", "endTime", "state", "virtualCause", "virtualCauseDes", "moveOutType", "moveOutTrace", "moveOutCause", "moveOutTime",
...@@ -75,30 +89,95 @@ export async function getQyszhx(eId) { ...@@ -75,30 +89,95 @@ export async function getQyszhx(eId) {
企业服务联查includeConf[TABLENAME.企业服务表] = { cloum: 企业服务Column, where: {} } 企业服务联查includeConf[TABLENAME.企业服务表] = { cloum: 企业服务Column, where: {} }
let 企业服务信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, { eId }, [], 企业服务联查includeConf); let 企业服务信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, { eId }, [], 企业服务联查includeConf);
let 参保记录Column = ["cId", "eId", "annual", "zhuanKe", "benKe", "shuoshi", "boShi", "boshiyishang"];
let 参保记录联查includeConf = {};
参保记录联查includeConf[TABLENAME.参保记录] = { cloum: 参保记录Column, where: {} }
let 参保记录信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, { eId }, [], 参保记录联查includeConf);
let 租赁信息Column = ["leaseId", "eId", "area", "startTime", "endTime"];
let 租赁信息联查includeConf = {};
租赁信息联查includeConf[TABLENAME.租赁信息] = { cloum: 租赁信息Column, where: {} }
let 租赁信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, { eId }, [], 租赁信息联查includeConf);
//企业基本情况 //企业基本情况
let qyjbqk = { let qyjbqk = {
企业介绍: 企业基础信息.jianJie, 企业介绍: 企业基础信息.jianJie,
企业图片: "企业照片占位图.png", // 企业图片: "企业照片占位图.png",
}; };
//企业基本数据 //企业基本数据
qyszhx.企业基本情况.dataList = getKeyValue(qyjbqk); qyszhx.企业基本情况.dataList = getKeyValue(qyjbqk);
/**
* 企业名称
*/
let qyName = {
企业名称: 企业基础信息.enterpriseName
};
qyszhx.企业名称.dataList = getKeyValue(qyName);
let qyjbsj = { let qyjbsj = {
注册时间: "-", 注册时间: "-",
迁入时间: "-", 迁入时间: "-",
首次入孵时间: "-", 首次入孵时间: "-",
}; };
if (企业基础信息.logonTime) qyjbsj.注册时间 = moment(企业基础信息.logonTime).format("YYYY-MM-DD") if (企业基础信息.logonTime) qyjbsj.注册时间 = moment(企业基础信息.logonTime).format("YYYY-MM-DD")
if (企业孵化信息[0].enterprise_fuhuas.startTime) qyjbsj.首次入孵时间 = moment(企业孵化信息[0].enterprise_fuhuas.startTime).format("YYYY-MM-DD") if (企业孵化信息[0]) {
if (企业孵化信息[0].enterprise_fuhuas[0].startTime) qyjbsj.首次入孵时间 = moment(企业孵化信息[0].enterprise_fuhuas[0].startTime).format("YYYY-MM-DD")
}
if (企业基础信息.firstLoginTime) qyjbsj.迁入时间 = moment(企业基础信息.firstLoginTime).format("YYYY-MM-DD")
qyszhx.企业基本数据.dataList = getKeyValue(qyjbsj); qyszhx.企业基本数据.dataList = getKeyValue(qyjbsj);
//企业标签 todo //企业标签 todo
let qybq = get企业标签(企业资质信息); let qybq = get企业标签(企业资质信息);
qyszhx.企业标签.dataList = qybq; qyszhx.企业标签.dataList = qybq;
//资质认证todo // 计算研发占比
let yfzb = get研发占比(企业经营信息);
// 将研发占比数据添加到 qyszhx 对象中
qyszhx.研发占比.dataList = getKeyValue(yfzb);
/**
* 企业自画像
*/
let qyzp = get企业自画像(企业经营信息, 企业融资信息, 企业专利信息);
qyszhx.企业自画像.dataList = getKeyValue(qyzp);
//租房补贴
let zfbz = get租房补贴(企业资质信息, 企业专利信息, 参保记录信息);
qyszhx.租房补贴.dataList = getKeyValue(zfbz);
// //高新
// let gx = get高新(企业资质信息);
// qyszhx.高新.dataList = getKeyValue(gx);
// //科小
// let kx = get科小(企业资质信息);
// qyszhx.科小.dataList = getKeyValue(kx);
// //小巨人
// let xjt = get小巨人(企业资质信息);
// qyszhx.小巨人.dataList = getKeyValue(xjt);
// 高新
let gx = get资质达标情况(企业资质信息, 'gaoXinJiShuTime');
qyszhx.高新.dataList = getKeyValue(gx);
// 科小
let kx = get资质达标情况(企业资质信息, 'kxTime');
qyszhx.科小.dataList = getKeyValue(kx);
// 小巨人
let xjrData = get资质达标情况(企业资质信息, 'xjrTime');
qyszhx.小巨人.dataList = getKeyValue(xjrData);
//资质认证
let zzrz = get资质认证(企业资质信息); let zzrz = get资质认证(企业资质信息);
qyszhx.资质认证.dataList = getKeyValue(zzrz);
//资质认证变化趋势
let zzrzbsqs = get资质认证变化趋势(企业资质信息);
qyszhx.资质认证变化趋势 = zzrzbsqs;
//知识产权 //知识产权
let zscq = get知识产权(企业专利信息); let zscq = get知识产权(企业专利信息);
...@@ -108,20 +187,18 @@ export async function getQyszhx(eId) { ...@@ -108,20 +187,18 @@ export async function getQyszhx(eId) {
let qyyghx = await get企业员工画像(创业团队信息); let qyyghx = await get企业员工画像(创业团队信息);
qyszhx.企业员工画像.dataList = getKeyValue(qyyghx); qyszhx.企业员工画像.dataList = getKeyValue(qyyghx);
// let 专利总数 = 0; let 专利总数 = 0;
// for (let key in zscq) { for (let key in zscq) {
// 专利总数 += zscq[key]; 专利总数 += zscq[key];
// } }
//企业汇总数据 //企业汇总数据
// let qyhzsj = { let qyhzsj = {
// // 企业认证:0, //todo // 企业认证:0, //todo
// 资质认证: qybq.length, 资质认证: qybq.length,
// 专利数: 专利总数, 专利数: 专利总数,
// }; };
// qyszhx.企业汇总数据.dataList = getKeyValue(qyhzsj);
qyszhx.企业汇总数据.dataList = getKeyValue(qyhzsj);
//营收情况 //营收情况
let { ysqk, ysbhqs } = get营收情况(企业经营信息); let { ysqk, ysbhqs } = get营收情况(企业经营信息);
...@@ -134,6 +211,11 @@ export async function getQyszhx(eId) { ...@@ -134,6 +211,11 @@ export async function getQyszhx(eId) {
let qydt = get企业动态(企业荣誉信息); let qydt = get企业动态(企业荣誉信息);
qyszhx.企业动态.bodyList = qydt; qyszhx.企业动态.bodyList = qydt;
//风险预警
// let fxyj = get风险预警(企业融资信息);
// qyszhx.风险预警.bodyList = fxyj;
//服务需求 //服务需求
let fwxq = get服务需求(企业融资信息); let fwxq = get服务需求(企业融资信息);
qyszhx.服务需求.dataList = getKeyValue(fwxq); qyszhx.服务需求.dataList = getKeyValue(fwxq);
...@@ -142,6 +224,11 @@ export async function getQyszhx(eId) { ...@@ -142,6 +224,11 @@ export async function getQyszhx(eId) {
let hdbhqsfx = get活动变化趋势分析(企业融资信息); let hdbhqsfx = get活动变化趋势分析(企业融资信息);
qyszhx.活动变化趋势分析 = hdbhqsfx; qyszhx.活动变化趋势分析 = hdbhqsfx;
//荣誉资质
let ryzz = get荣誉资质(企业荣誉信息);
qyszhx.荣誉资质图片 = ryzz;
//服务记录_空间服务 //服务记录_空间服务
let fwjlxx = get服务记录(企业服务信息); let fwjlxx = get服务记录(企业服务信息);
// qyszhx.服务记录_空间服务.bodyList = fwjlxx.空间服务; // qyszhx.服务记录_空间服务.bodyList = fwjlxx.空间服务;
...@@ -156,11 +243,13 @@ export async function getQyszhx(eId) { ...@@ -156,11 +243,13 @@ export async function getQyszhx(eId) {
} }
qyszhx.服务记录.dataList = getKeyValue(fwjl); qyszhx.服务记录.dataList = getKeyValue(fwjl);
//就业 //就业
let jiuYeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {eId}, null); let jiuYeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, { eId }, null);
let 年度就业人数趋势分析Map = {}; let 年度就业人数趋势分析Map = {};
jiuYeList.forEach(info => { jiuYeList.forEach(info => {
let {annual} = info; let { annual } = info;
let itemCount = 0; let itemCount = 0;
let itemYear = new Date(annual).getFullYear(); let itemYear = new Date(annual).getFullYear();
if (info.zhuanKe) itemCount += parseInt(info.zhuanKe); if (info.zhuanKe) itemCount += parseInt(info.zhuanKe);
...@@ -169,14 +258,411 @@ export async function getQyszhx(eId) { ...@@ -169,14 +258,411 @@ export async function getQyszhx(eId) {
if (info.boShi) itemCount += parseInt(info.boShi); if (info.boShi) itemCount += parseInt(info.boShi);
if (info.boshiyishang) itemCount += parseInt(info.boshiyishang); if (info.boshiyishang) itemCount += parseInt(info.boshiyishang);
if (!年度就业人数趋势分析Map[itemYear]) 年度就业人数趋势分析Map[itemYear] = {key:itemYear, value:0}; if (!年度就业人数趋势分析Map[itemYear]) 年度就业人数趋势分析Map[itemYear] = { key: itemYear, value: 0 };
年度就业人数趋势分析Map[itemYear].value += itemCount; 年度就业人数趋势分析Map[itemYear].value += itemCount;
}); });
qyszhx.历年人才招聘情况 = [{name:"历年人才招聘情况", data:Object.values(年度就业人数趋势分析Map)}]; qyszhx.历年人才招聘情况 = [{ name: "历年人才招聘情况", data: Object.values(年度就业人数趋势分析Map) }];
return qyszhx; return qyszhx;
} }
/**
* 计算研发占比的函数
*/
// function get研发占比(data) {
// let yfzb = [];
// data.forEach(info => {
// let { enterprise_manages } = info;
// enterprise_manages.forEach(manage => {
// if (parseFloat(manage.BI) > 0) {
// let ratio = parseFloat(manage.RD) / parseFloat(manage.BI);
// let 百分比 = (ratio * 100).toFixed(2) + "%";
// let 达标状态: string;
// // 判断是否已达标
// if(ratio * 100 >= 80.5){
// 达标状态 = "已达标";
// }else{
// 达标状态 = "继续努力";
// }
// yfzb.push({
// 年份: moment(manage.annual).format("YYYY"),
// 研发占比: 百分比,
// 达标状态: 达标状态
// });
// }
// });
// });
// return yfzb;
// }
function get研发占比(data) {
let yfzb = {
研发占比: "0%",
是否达标: "继续努力",
目标值: "20%",
}
data.forEach(info => {
let { enterprise_manages } = info;
let quarterlyRD = { [QUARTER.第一季度]: 0, [QUARTER.第二季度]: 0, [QUARTER.第三季度]: 0, [QUARTER.第四季度]: 0 };
let quarterlyBI = { [QUARTER.第一季度]: 0, [QUARTER.第二季度]: 0, [QUARTER.第三季度]: 0, [QUARTER.第四季度]: 0 };
enterprise_manages.forEach(manage => {
if (parseFloat(manage.BI) > 0) {
const quarter = getQuarter(manage.annual);
quarterlyRD[quarter] += parseFloat(manage.RD);
quarterlyBI[quarter] += parseFloat(manage.BI);
}
});
// 计算每个季度的研发占比,并生成年份信息
for (let quarter of [QUARTER.第一季度, QUARTER.第二季度, QUARTER.第三季度, QUARTER.第四季度]) {
if (quarterlyBI[quarter] > 0) {
let ratio = quarterlyRD[quarter] / quarterlyBI[quarter];
let 百分比 = (ratio * 100).toFixed(2) + "%";
let 达标状态: string;
if (ratio * 100 >= 20) {
达标状态 = "已达标";
} else {
达标状态 = "继续努力";
}
yfzb.研发占比 = 百分比;
yfzb.是否达标 = 达标状态;
yfzb.目标值 = "20%";
// // 确保年份信息从 manage 中正确提取
// let 年份 = moment(enterprise_manages[0]?.annual).format("YYYY"); // 假设所有季度属于同一年
// yfzb.push({
// 年份,
// 研发占比: 百分比,
// 达标状态,
// 目标值: "20%",
// });
}
}
});
return yfzb;
}
function getQuarter(dateString: string): QUARTER {
const date = moment(dateString);
if (!date.isValid()) {
console.error("无效的日期字符串:", dateString);
return QUARTER.第一季度; // 或者抛出异常,具体取决于业务需求
}
const month = date.month() + 1; // JavaScript 月份从0开始
if (month <= 3) return QUARTER.第一季度;
if (month <= 6) return QUARTER.第二季度;
if (month <= 9) return QUARTER.第三季度;
return QUARTER.第四季度;
}
/**
* 企业自画像
*/
function get企业自画像(企业经营信息, 企业融资信息, 企业专利信息) {
// 初始化企业自画像数据
let qyzp = {
企业总得分: "-",
企业融资: "-",
// 总融资金额: 0, // 新增总融资金额字段
本年融资额: 0,
短期营收: "-",
营收金额: 0,
知识产权: "-",
专利个数: 0,
研发投入: "-",
投入金额: 0,
研发占比: "-",
};
// 获取当前月份
// const 当前月份 = new Date().getMonth() + 1; // JavaScript 月份从0开始
const 当前年份 = new Date().getFullYear();
// 计算各维度得分
let 优秀维度计数 = 0;
// 1. 判断企业融资是否优秀
let 本年融资总额 = 0;
let 总融资金额 = 0;
企业融资信息.forEach(info => {
let { enterprise_financings } = info;
if (Array.isArray(enterprise_financings)) {
enterprise_financings.forEach(financing => {
const 融资日期 = new Date(financing.investmentDate);
if (
融资日期.getFullYear() === 当前年份
// 融资日期.getMonth() + 1 === 当前月份
) {
本年融资总额 += parseFloat(financing.financingAmount || 0);
}
// 累加总融资金额
总融资金额 += parseFloat(financing.financingAmount || 0);
});
}
});
qyzp["本年融资额"] = 本年融资总额; // 返回本月融资额
// qyzp["总融资金额"] = 总融资金额; // 返回总融资金额
if (总融资金额 > 0) {
if (总融资金额 >= 10) { // 修改为企业融资:10W及以上为优秀,
qyzp["企业融资"] = "优秀";
优秀维度计数++;
} else {
qyzp["企业融资"] = "良好";
}
} else {
qyzp["企业融资"] = "-";
}
// 2. 判断短期营收是否优秀
let 短期营收总额 = 0;
企业经营信息.forEach(info => {
let { enterprise_manages } = info;
enterprise_manages.forEach(manage => {
短期营收总额 += parseFloat(manage.BI);
});
});
qyzp["营收金额"] = 短期营收总额; // 返回营收金额
if (短期营收总额 > 0) {
if (短期营收总额 >= 1000000) { // 修改为营收:100W及以上为优秀
qyzp["短期营收"] = "优秀";
优秀维度计数++;
} else {
qyzp["短期营收"] = "良好";
}
} else {
qyzp["短期营收"] = "-";
}
// 3. 判断知识产权是否优秀
let 专利总数 = 0;
企业专利信息.forEach(info => {
let { enterprise_iprs } = info;
专利总数 += enterprise_iprs.length;
});
qyzp["专利个数"] = 专利总数; // 返回专利个数
if (专利总数 > 0) {
if (专利总数 >= 2) { // 修改为知识产权:两个及以上为优秀
qyzp["知识产权"] = "优秀";
优秀维度计数++;
} else if (专利总数 === 1) {
qyzp["知识产权"] = "良好";
}
} else {
qyzp["知识产权"] = "-";
}
// 4. 判断研发投入是否优秀
let 研发投入总额 = 0;
let 总收入 = 0;
企业经营信息.forEach(info => {
let { enterprise_manages } = info;
enterprise_manages.forEach(manage => {
研发投入总额 += parseFloat(manage.RD);
总收入 += parseFloat(manage.BI);
});
});
let 研发占比 = 总收入 > 0 ? (研发投入总额 / 总收入) : 0;
qyzp["投入金额"] = 研发投入总额; // 返回研发投入金额
qyzp["研发占比"] = `${(研发占比 * 100).toFixed(2)}%`;
if (研发占比 > 0) {
if (研发占比 >= 0.2) { // 修改为研发占比:20%以上为优秀
qyzp["研发投入"] = "优秀";
优秀维度计数++;
} else {
qyzp["研发投入"] = "良好";
}
} else {
qyzp["研发投入"] = "-";
}
// 根据优秀维度计数确定企业总评等级
if (优秀维度计数 > 0) {
if (优秀维度计数 >= 2) {
qyzp["企业总得分"] = "优秀";
} else {
qyzp["企业总得分"] = "良好";
}
} else {
qyzp["企业总得分"] = "-";
}
return qyzp;
}
/**
* 租房补贴
*/
function get租房补贴(企业资质信息, 企业专利信息, 参保记录信息) {
let zfbt = {
租房补贴占比: "",
是否达标: "",
社保: "",
软著: "",
科小: "",
};
// 检查社保状态
let shebaoCompleted = false;
if (参保记录信息[0]) {
参保记录信息[0].enterprise_canbaos.forEach(info => {
if (info.zhuanKe || info.benKe || info.shuoshi || info.boShi || info.boshiyishang) {
shebaoCompleted = true;
}
});
}
zfbt.社保 = shebaoCompleted ? "已完成" : "未完成";
// 检查软著状态
let ruanzhuCompleted = false;
企业专利信息.forEach(info => {
let { enterprise_iprs } = info;
enterprise_iprs.forEach(patent => {
if (patent.iprType === IPRTYPECLIENT.软件著作权) {
ruanzhuCompleted = true;
}
});
});
zfbt.软著 = ruanzhuCompleted ? "已完成" : "未完成";
// 检查科小状态
let kxCompleted = false;
企业资质信息.forEach(info => {
let { enterprise_qualifications } = info;
enterprise_qualifications.forEach(item => {
if (item.kxTime) {
kxCompleted = true;
}
});
});
zfbt.科小 = kxCompleted ? "已完成" : "未完成";
// 计算租房补贴占比
const 完成条件数 = [shebaoCompleted, ruanzhuCompleted, kxCompleted].filter(status => status).length;
const 总条件数 = 3;
const 租房补贴占比 = (完成条件数 / 总条件数) * 100;
// 判断是否达标
const 是否达标 = 完成条件数 === 总条件数 ? "已达标" : "继续努力";
zfbt.租房补贴占比 = `${租房补贴占比.toFixed(2)}%`;
zfbt.是否达标 = 是否达标;
return zfbt;
}
// /**
// * 高新
// */
// function get高新(data) {
// let gx = {
// 高新占比: 0,
// 是否达标: "未达标",
// };
// data.forEach(info => {
// let { enterprise_qualifications } = info;
// enterprise_qualifications.forEach(item => {
// if (item.gaoXinJiShuTime) {
// gx.高新占比 = 100;
// gx.是否达标 = "已达标";
// }
// });
// });
// return gx;
// }
// /**
// * 科小
// */
// function get科小(data) {
// let kx = {
// 科小占比: 0,
// 是否达标: "未达标",
// };
// data.forEach(info => {
// let { enterprise_qualifications } = info;
// enterprise_qualifications.forEach(item => {
// if (item.kxTime) {
// kx.科小占比 = 100;
// kx.是否达标 = "已达标";
// }
// })
// })
// return kx;
// }
// /**
// * 小巨人
// */
// function get小巨人(data){
// let xjrData = {
// 小巨人占比: 0,
// 是否达标: "未达标",
// };
// data.forEach(info => {
// let { enterprise_qualifications } = info;
// enterprise_qualifications.forEach(item => {
// if (item.xjrTime) {
// xjrData.小巨人占比 = 100;
// xjrData.是否达标 = "已达标";
// }
// })
// })
// return xjrData;
// }
/**
* 获取企业资质达标情况的通用函数
* @param data 企业资质数据
* @param key 判断依据的字段名(如 'gaoXinJiShuTime', 'kxTime', 'xjrTime')
* @returns 达标情况对象
*/
function get资质达标情况(data, key: string) {
let result = {
占比: 0,
是否达标: "继续努力",
};
data.forEach(info => {
let { enterprise_qualifications } = info;
enterprise_qualifications.forEach(item => {
if (item[key]) {
result.占比 = 100;
result.是否达标 = "已达标";
} else {
result.占比 = 0;
result.是否达标 = "继续努力";
}
});
});
return result;
}
function get企业标签(data) { function get企业标签(data) {
let qybqData = []; let qybqData = [];
...@@ -201,26 +687,87 @@ function get企业标签(data) { ...@@ -201,26 +687,87 @@ function get企业标签(data) {
return qybq; return qybq;
} }
/**
* /** 资质认证
* @param data 资质认证
* @returns * @returns
*/ */
function get资质认证(data) { function get资质认证(data) {
let zzrz = {
资质认证总数: 0,
};
data.forEach(info => {
let { enterprise_qualifications } = info;
let certifications = new Set(); // 使用 Set 来存储不同的资质认证
enterprise_qualifications.forEach(item => {
if (item.kxTime) certifications.add("科小");
if (item.zjtxTime) certifications.add("专精特新");
if (item.xjrTime) certifications.add("小巨人");
if (item.xjrPyTime) certifications.add("小巨人培育");
if (item.gaoXinJiShuTime) certifications.add("高新企业");
if (item.goPublicTime) certifications.add("上市");
});
zzrz.资质认证总数 += certifications.size; // 计算不同资质的数量
});
return zzrz;
}
/**
* 资质认证变化趋势
*/
function get资质认证变化趋势(data) {
let zzrzbhqsInfo = {
资质认证数量: []
};
let yearList = getYearList();
for (let i = 0; i < yearList.length; i++) {
let year = parseInt(yearList[i]);
let 资质认证数量 = 0;
data.forEach(info => {
let { enterprise_qualifications } = info;
enterprise_qualifications.forEach(item => {
const times = [
item.kxTime,
item.zjtxTime,
item.xjrTime,
item.xjrPyTime,
item.gaoXinJiShuTime,
item.goPublicTime
];
times.forEach(time => {
if (time && moment(time).year() === year) {
资质认证数量++;
}
});
});
});
zzrzbhqsInfo.资质认证数量.push({ key: year, value: 资质认证数量 });
}
let zzrzbhqs = getChart(zzrzbhqsInfo);
return zzrzbhqs;
} }
function get知识产权(data) { function get知识产权(data) {
let zscq:any = { let zscq: any = {
// 软件著作:0, // 软件著作:0,
软件著作权:0, 软件著作权: 0,
发明专利:0, 发明专利: 0,
海外专利:0, 海外专利: 0,
植物新品种:0, 植物新品种: 0,
集成电路布图:0, 集成电路布图: 0,
} }
data.forEach(info => { data.forEach(info => {
let { enterprise_iprs } = info; let { enterprise_iprs } = info;
enterprise_iprs.forEach(patents => { enterprise_iprs.forEach(patents => {
...@@ -230,9 +777,9 @@ function get知识产权(data) { ...@@ -230,9 +777,9 @@ function get知识产权(data) {
zscq[iprTypeStr] += patents.number; zscq[iprTypeStr] += patents.number;
} }
}) })
}) })
// data.forEach(info => { // data.forEach(info => {
// let { enterprise_patents } = info; // let { enterprise_patents } = info;
// enterprise_patents.forEach(patents => { // enterprise_patents.forEach(patents => {
...@@ -265,7 +812,6 @@ async function get企业员工画像(data) { ...@@ -265,7 +812,6 @@ async function get企业员工画像(data) {
} }
}) })
} }
}) })
} }
} }
...@@ -276,15 +822,16 @@ async function get企业员工画像(data) { ...@@ -276,15 +822,16 @@ async function get企业员工画像(data) {
function get营收情况(data) { function get营收情况(data) {
let ysqk = { let ysqk = {
累计营收: 0, // 累计营收: 0,
"24年累计营收": 0,
累计研发投入: 0, 累计研发投入: 0,
累计纳税: 0 // 累计纳税: 0
} }
let ysbhqsInfo = { let ysbhqsInfo = {
营业收入: [], 营业收入: [],
研发投入: [], 研发投入: [],
纳税金额: [], // 纳税金额: [],
} }
let year = getYearList(); let year = getYearList();
...@@ -292,17 +839,22 @@ function get营收情况(data) { ...@@ -292,17 +839,22 @@ function get营收情况(data) {
data.forEach(info => { data.forEach(info => {
let { enterprise_manages } = info; let { enterprise_manages } = info;
enterprise_manages.forEach(manage => { enterprise_manages.forEach(manage => {
ysqk.累计营收 += parseFloat(manage.BI); // ysqk.累计营收 += parseFloat(manage.BI);
let thisAnnual = moment(manage.annual).year();
if (thisAnnual === 2024) {
ysqk["24年累计营收"] += parseFloat(manage.BI);
}
ysqk.累计研发投入 += parseFloat(manage.RD); ysqk.累计研发投入 += parseFloat(manage.RD);
ysqk.累计纳税 += parseFloat(manage.TXP); // ysqk.累计纳税 += parseFloat(manage.TXP);
}) })
}) })
for (let i = 0; i < year.length; i++) { for (let i = 0; i < year.length; i++) {
let 营业收入 = 0; let 营业收入 = 0;
let 研发投入 = 0; let 研发投入 = 0;
let 纳税金额 = 0; // let 纳税金额 = 0;
data.forEach(info => { data.forEach(info => {
let { enterprise_manages } = info; let { enterprise_manages } = info;
enterprise_manages.forEach(manage => { enterprise_manages.forEach(manage => {
...@@ -311,14 +863,17 @@ function get营收情况(data) { ...@@ -311,14 +863,17 @@ function get营收情况(data) {
if (thisAnnual === thisYear) { if (thisAnnual === thisYear) {
营业收入 += parseFloat(manage.BI); 营业收入 += parseFloat(manage.BI);
研发投入 += parseFloat(manage.RD); 研发投入 += parseFloat(manage.RD);
纳税金额 += parseFloat(manage.TXP); // 纳税金额 += parseFloat(manage.TXP);
} }
}) })
}) })
ysbhqsInfo.营业收入.push({ key: year[i], value: 营业收入 }); // ysbhqsInfo.营业收入.push({ key: year[i], value: 营业收入 });
ysbhqsInfo.研发投入.push({ key: year[i], value: 研发投入 }); // ysbhqsInfo.研发投入.push({ key: year[i], value: 研发投入 });
ysbhqsInfo.纳税金额.push({ key: year[i], value: 纳税金额 }); // 将营业收入和研发投入转换为“千万”单位
ysbhqsInfo.营业收入.push({ key: year[i], value: 营业收入 / 1000 });
ysbhqsInfo.研发投入.push({ key: year[i], value: 研发投入 / 1000 });
// ysbhqsInfo.纳税金额.push({ key: year[i], value: 纳税金额 });
} }
let ysbhqs = getChart(ysbhqsInfo); let ysbhqs = getChart(ysbhqsInfo);
...@@ -326,23 +881,46 @@ function get营收情况(data) { ...@@ -326,23 +881,46 @@ function get营收情况(data) {
return { ysqk, ysbhqs }; return { ysqk, ysbhqs };
} }
/**
* 企业动态
*/
// function get企业动态(data) {
// let qydt = [];
// data.forEach(info => {
// let { enterprise_honors } = info;
// enterprise_honors.forEach(honors => {
// let awardLevel = changeEnumValue(AWARDLEVEL, honors.awardLevel);
// let awardImg = JSON.parse(honors.awardImg)
// let awardTime = moment(honors.awardTime).format("YYYY-MM-DD");
// qydt.push([awardImg[0], honors.awardName, awardTime, honors.awardingUnit, awardLevel]);
// })
// })
// return qydt;
// }
function get企业动态(data) { function get企业动态(data) {
let qydt = []; let qydt = [];
let honorsCount = 0;
data.forEach(info => { data.forEach(info => {
let { enterprise_honors } = info; let { enterprise_honors } = info;
honorsCount += enterprise_honors.length;
enterprise_honors.forEach(honors => { enterprise_honors.forEach(honors => {
let awardLevel = changeEnumValue(AWARDLEVEL, honors.awardLevel); let awardLevel = changeEnumValue(AWARDLEVEL, honors.awardLevel);
let awardImg = JSON.parse(honors.awardImg) let awardTime = moment(honors.awardTime).format("YYYY");
let awardTime = moment(honors.awardTime).format("YYYY-MM-DD"); qydt.push([honorsCount, honors.awardName, awardTime, honors.awardingUnit, awardLevel]);
qydt.push([awardImg[0], honors.awardName, awardTime, honors.awardingUnit, awardLevel]);
}) })
}) })
return qydt; return qydt;
} }
/**
*风险预警
*/
function get风险预警(data) {
}
function get服务需求(data) { function get服务需求(data) {
let newestFinancing: any = {}; let newestFinancing: any = {};
...@@ -365,8 +943,13 @@ function get服务需求(data) { ...@@ -365,8 +943,13 @@ function get服务需求(data) {
newestFinancing = enterprise_financingsData[0]; newestFinancing = enterprise_financingsData[0];
}) })
// 确保 financingAmount 不为 undefined 或 null,否则设置为 0
const financingAmount = newestFinancing.financingAmount !== undefined && newestFinancing.financingAmount !== null ? newestFinancing.financingAmount : 0;
let fwxq = { let fwxq = {
融资金额: newestFinancing.financingAmount, // 融资金额: `${newestFinancing.financingAmount}万元`,
融资金额: `${financingAmount}万元`,
融资轮次: changeEnumValue(FINANCINGROUNDS, newestFinancing.financingRounds), 融资轮次: changeEnumValue(FINANCINGROUNDS, newestFinancing.financingRounds),
融资时间: "-", 融资时间: "-",
投资机构: newestFinancing.investmentInstitutionsName 投资机构: newestFinancing.investmentInstitutionsName
...@@ -381,12 +964,12 @@ function get服务需求(data) { ...@@ -381,12 +964,12 @@ function get服务需求(data) {
function get活动变化趋势分析(data) { function get活动变化趋势分析(data) {
let hdbhqsfxInfo = { let hdbhqsfxInfo = {
融资额: [], 融资额: [],
融资事件: [], // 融资事件: [],
} }
let year = getYearList(); let year = getYearList();
for (let i = 0; i < year.length; i++) { for (let i = 0; i < year.length; i++) {
let 融资额 = 0; let 融资额 = 0;
let 融资事件 = 0; // let 融资事件 = 0;
data.forEach(info => { data.forEach(info => {
let { enterprise_financings } = info; let { enterprise_financings } = info;
enterprise_financings.forEach(financings => { enterprise_financings.forEach(financings => {
...@@ -394,14 +977,14 @@ function get活动变化趋势分析(data) { ...@@ -394,14 +977,14 @@ function get活动变化趋势分析(data) {
let thisYear = parseInt(year[i]); let thisYear = parseInt(year[i]);
if (thisAnnual === thisYear) { if (thisAnnual === thisYear) {
融资额 += parseFloat(financings.financingAmount); 融资额 += parseFloat(financings.financingAmount);
融资事件 += 1; // 融资事件 += 1;
} }
}) })
}) })
hdbhqsfxInfo.融资额.push({ key: year[i], value: 融资额 }); hdbhqsfxInfo.融资额.push({ key: year[i], value: 融资额 });
hdbhqsfxInfo.融资事件.push({ key: year[i], value: 融资事件 }); // hdbhqsfxInfo.融资事件.push({ key: year[i], value: 融资事件 });
} }
let hdbhqsfx = getChart(hdbhqsfxInfo); let hdbhqsfx = getChart(hdbhqsfxInfo);
...@@ -409,6 +992,39 @@ function get活动变化趋势分析(data) { ...@@ -409,6 +992,39 @@ function get活动变化趋势分析(data) {
return hdbhqsfx; return hdbhqsfx;
} }
//荣誉资质
// function get荣誉资质(data) {
// let ryzz = [];
// data.forEach(info => {
// let { enterprise_honors } = info;
// enterprise_honors.forEach(honors => {
// let awardLevel = changeEnumValue(AWARDLEVEL, honors.awardLevel);
// let awardImg = JSON.parse(honors.awardImg)
// let imgPath = `${systemConfig.imgFileUrl}${awardImg[0]}`;
// ryzz.push([imgPath, awardLevel]);
// })
// })
// return ryzz;
// }
// 修改后的荣誉资质函数
function get荣誉资质(data) {
let ryzz = [];
data.forEach(info => {
let { enterprise_honors } = info;
enterprise_honors.forEach(honors => {
let awardLevel = changeEnumValue(AWARDLEVEL, honors.awardLevel);
let awardImg = JSON.parse(honors.awardImg);
// 遍历所有图片
awardImg.forEach(imgName => {
let imgPath = `${systemConfig.imgFileUrl}${imgName}`;
ryzz.push([imgPath, awardLevel]);
});
})
})
return ryzz;
}
function get服务记录(data) { function get服务记录(data) {
let fwjl = { let fwjl = {
...@@ -435,11 +1051,3 @@ function get服务记录(data) { ...@@ -435,11 +1051,3 @@ function get服务记录(data) {
return fwjl; return fwjl;
} }
import moment = require("moment"); import moment = require("moment");
import { AWARDLEVEL, EMIGRATIONTYPE, FOLLOWUPSTATUS, FUHUASTATE, INDUSTRY, MOVEOUTTYPE, NEEDCATEGORY, OPERATIONALDATATYPE, TABLENAME } from "../../config/enum"; import { AWARDLEVEL, EMIGRATIONTYPE, FOLLOWUPSTATUS, FUHUASTATE, INDUSTRY, MOVEOUTTYPE, NEEDCATEGORY, OPERATIONALDATATYPE, QUARTER, TABLENAME } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData"; import { selectData, selectManyTableData } from "./operationalData";
import { changeEnumValue } from "../../tools/eccEnum"; import { changeEnumValue } from "../../tools/eccEnum";
import { getChart, getYearList } from "./out"; import { getChart, getYearList } from "./out";
import { systemConfig } from "../../config/serverConfig";
function getStartAndEndTimeYearList(startTime, endTime) { function getStartAndEndTimeYearList(startTime, endTime) {
...@@ -15,6 +16,68 @@ function getStartAndEndTimeYearList(startTime, endTime) { ...@@ -15,6 +16,68 @@ function getStartAndEndTimeYearList(startTime, endTime) {
return result; return result;
} }
// 获取当前年份的四个季度
function getQuarterList(year: number) {
const quarters = [];
for (let quarter = 1; quarter <= 4; quarter++) {
const start = moment()
.year(year)
.quarter(quarter)
.startOf('quarter')
.format('YYYY-MM-DD HH:mm:ss');
const end = moment()
.year(year)
.quarter(quarter)
.endOf('quarter')
.format('YYYY-MM-DD HH:mm:ss');
quarters.push({ quarter, start, end });
}
return quarters;
}
/**
* 获取指定季度的起止时间
* @param year 年份
* @param quarter 季度 (1-4)
* @returns 当前季度的起止时间对象 { start, end }
*/
function getQuarterRange(year: number, quarter: number) {
const start = moment()
.year(year)
.quarter(quarter)
.startOf('quarter')
.format('YYYY-MM-DD HH:mm:ss');
const end = moment()
.year(year)
.quarter(quarter)
.endOf('quarter')
.format('YYYY-MM-DD HH:mm:ss');
return { start, end };
}
/**
* 查询指定时间段的企业经营信息并计算总营收
* @param start 开始时间
* @param end 结束时间
* @returns 总营收
*/
async function calculateRevenue(start: string, end: string) {
const data = await selectData(
OPERATIONALDATATYPE.查询多个,
TABLENAME.企业经营信息,
{ annual: { "%between%": [start, end] } },
["BI"] // BI 字段表示营收
);
let totalRevenue = 0;
data.forEach(info => {
if (info.BI) {
totalRevenue += parseFloat(info.BI);
}
});
return totalRevenue;
}
export async function getZhyy() { export async function getZhyy() {
let fhColumn = ["industry", "eId"]; let fhColumn = ["industry", "eId"];
...@@ -38,7 +101,9 @@ export async function getZhyy() { ...@@ -38,7 +101,9 @@ export async function getZhyy() {
let firstDayMsOfMonth = moment().startOf('month').valueOf(); let firstDayMsOfMonth = moment().startOf('month').valueOf();
let checlTimeMs = moment(firstDayMsOfMonth).subtract(8, 'months').valueOf(); let checlTimeMs = moment(firstDayMsOfMonth).subtract(8, 'months').valueOf();
// console.log("checlTimeMs", checlTimeMs);
fhdbList.forEach(info => { fhdbList.forEach(info => {
// console.log("info",info);
let { industry, enterprise_fuhuas, enterprise_leases } = info; let { industry, enterprise_fuhuas, enterprise_leases } = info;
let startTime = enterprise_fuhuas[0].startTime; let startTime = enterprise_fuhuas[0].startTime;
if (!startTime) return; if (!startTime) return;
...@@ -47,6 +112,8 @@ export async function getZhyy() { ...@@ -47,6 +112,8 @@ export async function getZhyy() {
if (startTimeMs >= checlTimeMs) { if (startTimeMs >= checlTimeMs) {
let timeStr = moment(startTime).format("YY/MM"); let timeStr = moment(startTime).format("YY/MM");
if (!ruZhuMap[timeStr]) ruZhuMap[timeStr] = 0; if (!ruZhuMap[timeStr]) ruZhuMap[timeStr] = 0;
ruZhuMap[timeStr] += 1; ruZhuMap[timeStr] += 1;
} }
...@@ -59,7 +126,7 @@ export async function getZhyy() { ...@@ -59,7 +126,7 @@ export async function getZhyy() {
} }
let area = enterprise_leases[0].area || 0; let area = enterprise_leases[0].area || 0;
if (area) { if (area) {
areaCount += parseFloat(area); areaCount += parseFloat(area);//租赁面积累加
if (enterprise_leases[0].startTime && enterprise_leases[0].endTime) { if (enterprise_leases[0].startTime && enterprise_leases[0].endTime) {
let leasesYearList = getStartAndEndTimeYearList(enterprise_leases[0].startTime, enterprise_leases[0].endTime); let leasesYearList = getStartAndEndTimeYearList(enterprise_leases[0].startTime, enterprise_leases[0].endTime);
leasesYearList.forEach(itemYear => { leasesYearList.forEach(itemYear => {
...@@ -73,10 +140,18 @@ export async function getZhyy() { ...@@ -73,10 +140,18 @@ export async function getZhyy() {
}); });
/**
*入驻统计
*/
//到期退组和违约退组
let wytzCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.违约退租 }, null);
let dqtzCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.到期退租 }, null);
let 入驻企业变化趋势 = []; let 入驻企业变化趋势 = [];
for (let key in ruZhuMap) { for (let key in ruZhuMap) {
入驻企业变化趋势.push({ key, value: ruZhuMap[key] }); 入驻企业变化趋势.push({ key, value: ruZhuMap[key] });
} }
// 入驻企业变化趋势.sort((a, b) => { return parseInt(a.key) - parseInt(b.key) }); // 入驻企业变化趋势.sort((a, b) => { return parseInt(a.key) - parseInt(b.key) });
入驻企业变化趋势.sort((a, b) => { 入驻企业变化趋势.sort((a, b) => {
const dateA = moment(a.key, "YY/MM"); const dateA = moment(a.key, "YY/MM");
...@@ -85,6 +160,11 @@ export async function getZhyy() { ...@@ -85,6 +160,11 @@ export async function getZhyy() {
}); });
/** /**
* 孵化运营 —— 获取在孵企业数
*/
let zaifuCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: { "%ne%": FUHUASTATE.迁出 } }, null);
/**
* 在孵企业变化趋势 * 在孵企业变化趋势
*/ */
let 在孵企业变化趋势map = {}; let 在孵企业变化趋势map = {};
...@@ -109,45 +189,109 @@ export async function getZhyy() { ...@@ -109,45 +189,109 @@ export async function getZhyy() {
for (let key in 在孵企业变化趋势map) { for (let key in 在孵企业变化趋势map) {
在孵企业变化趋势.push({ key, value: 在孵企业变化趋势map[key] }); 在孵企业变化趋势.push({ key, value: 在孵企业变化趋势map[key] });
} }
在孵企业变化趋势.sort((a, b) => {
const dateA = moment(a.key, "YYYY"); 在孵企业变化趋势.sort((a, b) => { return parseInt(a.key) - parseInt(b.key) });
const dateB = moment(b.key, "YYYY");
return dateA.diff(dateB);
});
/** /**
* 毕业企业变化趋势一个月的——所有时间年月日 * 孵化运营——毕业企业数量
*/ */
let 毕业企业变化趋势map = {}; let biYeOutCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.毕业迁出 }, null);
let qianChuCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出 }, null);
/**
* 毕业企业变化趋势todo——年
*/
// 获取当前年份
let currentYear = new Date().getFullYear();
// 计算近6年的起始年份
let startYear = currentYear - 5;
// 初始化毕业企业变化趋势map
let 毕业企业变化趋势map = {};
// 遍历近6年的每一年
for (let year = startYear; year <= currentYear; year++) {
毕业企业变化趋势map[year] = 0;
}
// 遍历在孵dbList,统计每年的毕业企业数量
在孵dbList.forEach(info => { 在孵dbList.forEach(info => {
let moveOutType = info.moveOutType; let moveOutType = info.moveOutType;
let moveOutTime = info.moveOutTime; let moveOutTime = info.moveOutTime;
if (moveOutType === EMIGRATIONTYPE.毕业迁出 && moveOutTime) { if (moveOutType === EMIGRATIONTYPE.毕业迁出 && moveOutTime) {
let timeStr = moment(moveOutTime).format("YYYY-MM-DD"); // 按天统计 let moveOutYear = new Date(moveOutTime).getFullYear();
// let timeStr = moment(moveOutTime).format("YYYY-MM"); // 按月统计 if (moveOutYear >= startYear && moveOutYear <= currentYear) {
if (!毕业企业变化趋势map[timeStr]) 毕业企业变化趋势map[timeStr] = 0; 毕业企业变化趋势map[moveOutYear]++;
毕业企业变化趋势map[timeStr] += 1; }
} }
}); });
// 将map转换为数组,并按年份排序
let 毕业企业变化趋势 = []; let 毕业企业变化趋势 = [];
for (let key in 毕业企业变化趋势map) { for (let key in 毕业企业变化趋势map) {
毕业企业变化趋势.push({ key, value: 毕业企业变化趋势map[key] }); 毕业企业变化趋势.push({ key, value: 毕业企业变化趋势map[key] });
} }
毕业企业变化趋势.sort((a, b) => { 毕业企业变化趋势.sort((a, b) => parseInt(a.key) - parseInt(b.key));
const dateA = moment(a.key, "YYYY-MM-DD");
const dateB = moment(b.key, "YYYY-MM-DD"); // let 毕业企业变化趋势map = {};
return dateA.diff(dateB); // let firstDayMsOfMonth2 = moment().startOf('month').valueOf();
}); // let checkTimeMs2 = moment(firstDayMsOfMonth2).subtract(6, 'years').valueOf();
// 在孵dbList.forEach(info => {
// let startTime = info.startTime;
// let moveOutType = info.moveOutType;
// let moveOutTime = info.moveOutTime;
// if (moveOutType === EMIGRATIONTYPE.毕业迁出 && moveOutTime) {
// let startTimeMs = new Date(startTime).valueOf();
// let moveOutTimeMs = new Date(moveOutTime).valueOf();
// if (startTimeMs >= checkTimeMs2 && moveOutTimeMs >= checkTimeMs2) {
// let timeStr = moment(moveOutTime).format("YYYY");
// if (!毕业企业变化趋势map[timeStr]) 毕业企业变化趋势map[timeStr] = 0;
// 毕业企业变化趋势map[timeStr] += 1;
// }
// }
// });
// let 毕业企业变化趋势 = [];
// for (let key in 毕业企业变化趋势map) {
// 毕业企业变化趋势.push({ key, value: 毕业企业变化趋势map[key] });
// }
// 毕业企业变化趋势.sort((a, b) => {
// const dateA = moment(a.key, "YYYY");
// const dateB = moment(b.key, "YYYY");
// return dateA.diff(dateB);
// });
let biYeOutCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.毕业迁出 }, null); /**
let qianChuCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出 }, null); * 毕业企业变化趋势一个月的——所有时间年月日
//到期退组和违约退组 */
let wytzCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.违约退租 }, null); // let 毕业企业变化趋势map = {};
let dqtzCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.到期退租 }, null);
// 在孵dbList.forEach(info => {
// let startTime = info.startTime;
// let moveOutType = info.moveOutType;
// let moveOutTime = info.moveOutTime;
// if (moveOutType === EMIGRATIONTYPE.毕业迁出 && moveOutTime) {
// // let timeStr = moment(moveOutTime).format("YYYY-MM-DD"); // 按天统计
// let timeStr = moment(moveOutTime).format("YYYY-MM"); // 按月统计
// if (!毕业企业变化趋势map[timeStr]) 毕业企业变化趋势map[timeStr] = 0;
// 毕业企业变化趋势map[timeStr] += 1;
// }
// });
// let 毕业企业变化趋势 = [];
// for (let key in 毕业企业变化趋势map) {
// 毕业企业变化趋势.push({ key, value: 毕业企业变化趋势map[key] });
// }
// 毕业企业变化趋势.sort((a, b) => { return parseInt(a.key) - parseInt(b.key) });
// 毕业企业变化趋势.sort((a, b) => {
// // const dateA = moment(a.key, "YYYY-MM-DD");
// // const dateB = moment(b.key, "YYYY-MM-DD");
// const dateA = moment(a.key, "YYYY-MM");
// const dateB = moment(b.key, "YYYY-MM");
// return dateA.diff(dateB);
// });
let rongZiList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null); let rongZiList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null);
let rongZiMap = {}; let rongZiMap = {};
...@@ -171,6 +315,9 @@ export async function getZhyy() { ...@@ -171,6 +315,9 @@ export async function getZhyy() {
}); });
} }
/**
* 企业服务todo
*/
let fuWuCount = 0;//服务数 let fuWuCount = 0;//服务数
let fuWuQiYeCountMap = {};//服务覆盖企业 let fuWuQiYeCountMap = {};//服务覆盖企业
let fuWuQiYeTypeMap = {};//企业服务类型 let fuWuQiYeTypeMap = {};//企业服务类型
...@@ -193,6 +340,9 @@ export async function getZhyy() { ...@@ -193,6 +340,9 @@ export async function getZhyy() {
} }
}); });
let fuWuQiYeCount = Object.keys(fuWuQiYeCountMap).length;//服务覆盖企业 let fuWuQiYeCount = Object.keys(fuWuQiYeCountMap).length;//服务覆盖企业
// 计算服务覆盖企业占比
let fuWuQiYeCountPercentage = fuWuCount > 0 ? ((fuWuQiYeCount / fuWuCount) * 100).toFixed(2) : 0;
let fuWuQiYeTypeList = []; let fuWuQiYeTypeList = [];
...@@ -209,13 +359,21 @@ export async function getZhyy() { ...@@ -209,13 +359,21 @@ export async function getZhyy() {
} }
} }
//荣誉资质统计
/**
* 荣誉资质统计
*/
let guojiaJiCount = 0; let guojiaJiCount = 0;
let shengJiCount = 0; let shengJiCount = 0;
let shiJiCount = 0; let shiJiCount = 0;
let imgList = [];
let awardList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业荣誉, {}, null); let awardList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业荣誉, {}, null);
awardList.forEach(info => { awardList.forEach(info => {
let { awardLevel, awardImg } = info; let { awardLevel, awardImg } = info;
// info.awardImg = `${systemConfig.imgPath}${JSON.parse(awardImg)[0]}`;
info.awardImg = `${systemConfig.imgFileUrl}${JSON.parse(awardImg)[0]}`;//imgFileUrl
imgList.push(info.awardImg);
if (awardLevel == AWARDLEVEL.国家级) { if (awardLevel == AWARDLEVEL.国家级) {
guojiaJiCount += 1; guojiaJiCount += 1;
} else if (awardLevel == AWARDLEVEL.省级) { } else if (awardLevel == AWARDLEVEL.省级) {
...@@ -223,14 +381,14 @@ export async function getZhyy() { ...@@ -223,14 +381,14 @@ export async function getZhyy() {
} else if (awardLevel == AWARDLEVEL.市级) { } else if (awardLevel == AWARDLEVEL.市级) {
shiJiCount += 1; shiJiCount += 1;
} }
}); });
/** /**
* 企业自行填报,人员数量:从业人员填报数据总和todo * 企业自行填报,人员数量:从业人员填报数据总和todo
*/ */
let canbaoList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null); let canbaoList =
await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null);
let totalEmployeeCount = 0; let totalEmployeeCount = 0;
canbaoList.forEach(info => { canbaoList.forEach(info => {
let itemCount = 0; let itemCount = 0;
...@@ -240,21 +398,56 @@ export async function getZhyy() { ...@@ -240,21 +398,56 @@ export async function getZhyy() {
if (info.boShi) itemCount += parseInt(info.boShi); if (info.boShi) itemCount += parseInt(info.boShi);
if (info.boshiyishang) itemCount += parseInt(info.boshiyishang); if (info.boshiyishang) itemCount += parseInt(info.boshiyishang);
totalEmployeeCount += itemCount; totalEmployeeCount += itemCount;
});
let 孵化器dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.羽翼孵化器, {}, null);
/**
* 计算在孵企业面积占比:在孵企业总面积/孵化器或者园区总面积 x 100%
*/
let zaifuAreaRatio = 0;
if (孵化器dbList?.length > 0) {
// 处理园区总面积
const parkArea = 孵化器dbList[0].parkArea;
let 园区总面积 = isNaN(parkArea) ? 0 : parseFloat(parkArea);
// 计算在孵总面积
let 在孵企业总面积 = 0;
fhdbList.forEach(info => {
info.enterprise_leases?.forEach(lease => {
const area = Number(lease.area) || 0;
在孵企业总面积 += isNaN(area) ? 0 : area;
});
});
// 安全计算百分比
zaifuAreaRatio = 园区总面积 > 0
? (在孵企业总面积 / 园区总面积) * 100
: 0;
} }
);
let 孵化器基础数据 = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.羽翼孵化器, {}, ["parkArea", "industrialScale", "enterpriseNum"]);
let 园区概况 = [ let 园区概况 = [
{ key: "园区面积", value: `${孵化器基础数据.parkArea}㎡` }, // { key: "园区面积", value: "0㎡" },
{ key: "产值规模", value: `${孵化器基础数据.industrialScale}亿元` }, { key: "园区面积", value: `${孵化器dbList[0].parkArea}㎡` },
{ key: "企业数量", value: `${孵化器基础数据.enterpriseNum}家` }, // { key: "产值规模", value: "0亿元" },
{ key: "产值规模", value: `${孵化器dbList[0].industrialScale}亿元` },
// { key: "企业数量", value: `${在孵dbList.length}家` },
{ key: "企业数量", value: `${zaifuCount}家` },
// { key: "员工数量", value: `0人` },
{ key: "员工数量", value: `${totalEmployeeCount}人` }, { key: "员工数量", value: `${totalEmployeeCount}人` },
]; ];
let 孵化器数据 = [
{ key: "孵化器面积", value: `${areaCount}㎡` },
{ key: "入驻企业", value: `${ruZhuCount}家` },
{ key: "入驻企业面积占比", value: "0%" },
{ key: "入驻企业数量占比", value: "0%" },
{ key: "入驻企业行业占比", value: "0%" },
]
let 在孵企业数据 = [ let 在孵企业数据 = [
{ key: "在孵企业面积占比", value: "0%" },//放到孵化运营下面todo // { key: "在孵企业面积占比", value: "0%" },
{ key: "在孵企业面积占比", value: `${zaifuAreaRatio.toFixed(2)}%` },
{ key: "入驻", value: `${ruZhuCount}家` }, { key: "入驻", value: `${ruZhuCount}家` },
{ key: "迁出", value: `${qianChuCount}家` }, { key: "迁出", value: `${qianChuCount}家` },
{ key: "到期退租", value: `${dqtzCount}家` }, { key: "到期退租", value: `${dqtzCount}家` },
...@@ -275,7 +468,8 @@ export async function getZhyy() { ...@@ -275,7 +468,8 @@ export async function getZhyy() {
]; ];
let 企业服务 = [ let 企业服务 = [
{ key: "服务数", value: fuWuCount }, { key: "服务数", value: fuWuCount },
{ key: "服务覆盖企业", value: fuWuQiYeCount }, // { key: "服务覆盖企业", value: fuWuQiYeCount },
{ key: "服务覆盖企业", value: `${fuWuQiYeCountPercentage}%` },
]; ];
...@@ -285,13 +479,68 @@ export async function getZhyy() { ...@@ -285,13 +479,68 @@ export async function getZhyy() {
let 荣誉资质 = [ let 荣誉资质 = [
{ key: "国家级", value: `${guojiaJiCount}项` }, { key: "国家级", value: `${guojiaJiCount}项` },
{ key: "省级", value: `${shengJiCount}项` }, { key: "省级", value: `${shengJiCount}项` },
{ key: "市级", value: `${shiJiCount}项`, }, { key: "市级", value: `${shiJiCount}项` },
]; ];
let 荣誉资质图片 = imgList
/** /**
* 就业分析 * 就业分析
*/ */
// 获取当前日期
const currentDate = new Date();
// const currentYear = currentDate.getFullYear();
const currentMonth = currentDate.getMonth() + 1; // JavaScript 的月份从0开始
// 计算当前月份的开始时间和结束时间
const startOfMonth = new Date(currentYear, currentMonth - 1, 1);
const endOfMonth = new Date(currentYear, currentMonth, 0);
// 计算去年同期的开始时间和结束时间
const startOfLastYearMonth = new Date(currentYear - 1, currentMonth - 1, 1);
const endOfLastYearMonth = new Date(currentYear - 1, currentMonth, 0);
// 查询本月新增就业数据
let currentMonthNewJobs = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, { annual: { "%between%": [startOfMonth.toISOString(), endOfMonth.toISOString()] } }, null);
// 查询去年同期新增就业数据
let lastYearMonthNewJobs = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, { annual: { "%between%": [startOfLastYearMonth.toISOString(), endOfLastYearMonth.toISOString()] } }, null);
// 计算本月新增就业人数
let currentMonthJobCount = 0;
currentMonthNewJobs.forEach(info => {
let itemCount = 0;
if (info.zhuanKe) itemCount += parseInt(info.zhuanKe);
if (info.benKe) itemCount += parseInt(info.benKe);
if (info.shuoshi) itemCount += parseInt(info.shuoshi);
if (info.boShi) itemCount += parseInt(info.boShi);
if (info.boshiyishang) itemCount += parseInt(info.boshiyishang);
currentMonthJobCount += itemCount;
});
// 计算去年同期新增就业人数
let lastYearMonthJobCount = 0;
lastYearMonthNewJobs.forEach(info => {
let itemCount = 0;
if (info.zhuanKe) itemCount += parseInt(info.zhuanKe);
if (info.benKe) itemCount += parseInt(info.benKe);
if (info.shuoshi) itemCount += parseInt(info.shuoshi);
if (info.boShi) itemCount += parseInt(info.boShi);
if (info.boshiyishang) itemCount += parseInt(info.boshiyishang);
lastYearMonthJobCount += itemCount;
});
// 计算同比增长率
let growthRate = 0;
if (lastYearMonthJobCount !== 0) {
growthRate = ((currentMonthJobCount - lastYearMonthJobCount) / lastYearMonthJobCount) * 100;
}
/**
* 年度就业人数趋势分析
*/
let jiuYeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null); let jiuYeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null);
let 年度就业人数趋势分析Map = {}; let 年度就业人数趋势分析Map = {};
jiuYeList.forEach(info => { jiuYeList.forEach(info => {
let { eId, annual } = info; let { eId, annual } = info;
...@@ -306,10 +555,12 @@ export async function getZhyy() { ...@@ -306,10 +555,12 @@ export async function getZhyy() {
if (!年度就业人数趋势分析Map[itemYear]) 年度就业人数趋势分析Map[itemYear] = { key: itemYear, value: 0 }; if (!年度就业人数趋势分析Map[itemYear]) 年度就业人数趋势分析Map[itemYear] = { key: itemYear, value: 0 };
年度就业人数趋势分析Map[itemYear].value += itemCount; 年度就业人数趋势分析Map[itemYear].value += itemCount;
}); });
let 年度就业人数趋势分析 = Object.values(年度就业人数趋势分析Map);
let 年度就业人数趋势分析 = Object.values(年度就业人数趋势分析Map);
//产业规模分析 /**
* 产业规模分析
*/
let jingYingThisYear = moment().startOf("year").format("YYYY-MM-DD HH:mm:ss"); let jingYingThisYear = moment().startOf("year").format("YYYY-MM-DD HH:mm:ss");
let jingYingList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { annual: jingYingThisYear }, null); let jingYingList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { annual: jingYingThisYear }, null);
let 产业规模企业Map = {}; let 产业规模企业Map = {};
...@@ -318,6 +569,7 @@ export async function getZhyy() { ...@@ -318,6 +569,7 @@ export async function getZhyy() {
if (!产业规模企业Map[eId]) 产业规模企业Map[eId] = 0; if (!产业规模企业Map[eId]) 产业规模企业Map[eId] = 0;
产业规模企业Map[eId] += parseFloat(BI); 产业规模企业Map[eId] += parseFloat(BI);
}); });
let 产业规模分析List = [ let 产业规模分析List = [
{ num: 400, key: "超400万", value: 0 }, { num: 400, key: "超400万", value: 0 },
{ num: 300, key: "300-400万", value: 0 }, { num: 300, key: "300-400万", value: 0 },
...@@ -335,17 +587,12 @@ export async function getZhyy() { ...@@ -335,17 +587,12 @@ export async function getZhyy() {
} }
} }
} }
/**
* 按季度展示todo
*/
let 在孵企业营收占比 = []; let 在孵企业营收占比 = [];
产业规模分析List.forEach(info => { 产业规模分析List.forEach(info => {
let { key, value } = info; let { key, value } = info;
在孵企业营收占比.push({ key, value }); 在孵企业营收占比.push({ key, value });
}) })
let zhyy = { let zhyy = {
园区概况: { dataList: 园区概况, title: ["key", "value"] }, 园区概况: { dataList: 园区概况, title: ["key", "value"] },
在孵企业数据: { dataList: 在孵企业数据, titleList: ['key', 'value'] }, 在孵企业数据: { dataList: 在孵企业数据, titleList: ['key', 'value'] },
...@@ -357,16 +604,32 @@ export async function getZhyy() { ...@@ -357,16 +604,32 @@ export async function getZhyy() {
入驻企业行业类型: { dataList: [], titleList: ['key', 'value'] },//行业领域 入驻企业行业类型: { dataList: [], titleList: ['key', 'value'] },//行业领域
孵化运营: { dataList: 孵化运营, titleList: ['key', 'value'] }, 孵化运营: { dataList: 孵化运营, titleList: ['key', 'value'] },
智慧运营汇总数据: { dataList: 智慧运营汇总数据, titleList: ['key', 'value'] }, 智慧运营汇总数据: { dataList: 智慧运营汇总数据, titleList: ['key', 'value'] },
企业服务: { dataList: 企业服务, titleList: ['key', 'value'] }, // 企业服务: { dataList: 企业服务, titleList: ['key', 'value'] },
企业服务类型: { dataList: fuWuQiYeTypeList, titleList: ['key', 'value'] }, // 企业服务类型: { dataList: fuWuQiYeTypeList, titleList: ['key', 'value'] },
荣誉资质: { dataList: 荣誉资质, titleList: ['key', 'value'] }, 荣誉资质: { dataList: 荣誉资质, titleList: ['key', 'value'] },
// 荣誉资质图片: 荣誉资质图片,
就业分析: {
dataList: [
{ key: "本月新增就业", value: `${currentMonthJobCount}人` },
{ key: "同比去年", value: `${growthRate.toFixed(2)}%` }
], titleList: ['key', 'value']
},
年度就业人数趋势分析: [{ name: "年度就业人数趋势分析", data: 年度就业人数趋势分析 }], 年度就业人数趋势分析: [{ name: "年度就业人数趋势分析", data: 年度就业人数趋势分析 }],
在孵企业营收占比: { dataList: 在孵企业营收占比, title: ["key", "value"] } 在孵企业营收占比: { dataList: 在孵企业营收占比, title: ["key", "value"] },
企业服务: {
dataList: [
{ key: "服务数", value: fuWuCount },
// { key: "服务覆盖企业", value:fuWuQiYeCount }
{ key: "服务覆盖企业", value: `${fuWuQiYeCountPercentage}%` }
],
titleList: ['key', 'value']
},
企业服务类型: {
dataList: fuWuQiYeTypeList,
titleList: ['key', 'value']
}
} }
//行业领域----按照企业选择的类型呈现todo INDUSTRY //行业领域----按照企业选择的类型呈现todo INDUSTRY
for (let key in INDUSTRY) { for (let key in INDUSTRY) {
let anyKey: any = key; let anyKey: any = key;
...@@ -382,11 +645,63 @@ export async function getZhyy() { ...@@ -382,11 +645,63 @@ export async function getZhyy() {
} }
} }
return zhyy; return zhyy;
} }
/**
* 企业服务数据按年度展示
* */
async function getServiceDataByYear(year: number): Promise<any> {
let fuWuCount = 0;
let fuWuQiYeCountMap = {};
let fuWuQiYeTypeMap = {};
// 假设 TABLENAME.企业服务表 中有一个字段 applyTime 表示申请时间
let applyTime = new Date(`${year}-01-01T00:00:00`);
let resolveTime = new Date(`${year + 1}-01-01T00:00:00`);
let fuWuList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业服务表, { applyTime: { "%between%": [applyTime, resolveTime] } }, null);
fuWuList.forEach(info => {
let { followUpStatus, eId, needCategory } = info;
if (followUpStatus == FOLLOWUPSTATUS.已完成) {
fuWuCount += 1;
if (!fuWuQiYeCountMap[eId]) {
fuWuQiYeCountMap[eId] = 0;
}
fuWuQiYeCountMap[eId] += 1;
let needCategoryStr = changeEnumValue(NEEDCATEGORY, needCategory)
if (!fuWuQiYeTypeMap[needCategoryStr]) fuWuQiYeTypeMap[needCategoryStr] = 0;
fuWuQiYeTypeMap[needCategoryStr] += 1;
}
});
let fuWuQiYeCount = Object.keys(fuWuQiYeCountMap).length;
let fuWuQiYeTypeList = [];
for (let key in NEEDCATEGORY) {
let enumValue = NEEDCATEGORY[key];
if (isNaN(Number(key))) {
let needCategoryStr = changeEnumValue(NEEDCATEGORY, enumValue);
let value = fuWuQiYeTypeMap[needCategoryStr] || 0;
fuWuQiYeTypeList.push({
key: needCategoryStr,
value: value
});
}
}
return {
year,
fuWuCount,
fuWuQiYeCount,
fuWuQiYeTypeList
};
}
/** /**
......
...@@ -6,7 +6,7 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, ...@@ -6,7 +6,7 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
let result = {}; let result = {};
for (let i = 0; i < blockDataList.length; i++) { for (let i = 0; i < blockDataList.length; i++) {
let {blockData, blockTitle} = blockDataList[i]; let { blockData, blockTitle } = blockDataList[i];
if (keyValueOrTitleList.indexOf(blockTitle) > -1) { if (keyValueOrTitleList.indexOf(blockTitle) > -1) {
let titleList = titltListConfig[blockTitle] || []; let titleList = titltListConfig[blockTitle] || [];
result[blockTitle] = planarArrForObjectList(blockData, 0, titleList); result[blockTitle] = planarArrForObjectList(blockData, 0, titleList);
...@@ -22,17 +22,20 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, ...@@ -22,17 +22,20 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
} }
export function jxgljscTableData() { export function jxgljscTableData() {
let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '绩效管理驾驶舱'); let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '绩效管理驾驶舱');
let keyValueOrTitleList = ["在孵企业面积情况分析","产业结构","人才引进","孵化器汇总数据","新增在孵企业情况","资源集聚能力","综合能力","毕业企业情况","区域创新辐射带动能力","预警","企业预警","企业动态","金融服务","总营收金额","在孵企业总营收","投资类型","在孵企业融资情况","公共技术服务","企业孵化率","企业孵化数"];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = ["在孵企业面积情况分析", "产业结构", "人才引进", "孵化器汇总数据","孵化器得分数据", "新增在孵企业情况",
let barChartList = ["在孵企业面积变化趋势","在孵企业变化趋势"]; //适配 柱状图 折线图 ,"投资类型" "资源集聚能力", "综合能力", "毕业企业情况", "区域创新辐射带动能力", "预警", "企业预警", "企业动态", "金融服务", "总营收金额",
"在孵企业总营收", "在孵企业融资情况","在孵企业融资情况占比", "公共技术服务", "企业孵化率", "企业孵化数", "投资类型",
"科技型中小企业认定情况"];//适配 饼图 键值以及需要多个key的
let barChartList = ["在孵企业面积变化趋势", "在孵企业变化趋势"]; //适配 柱状图 折线图,
let stringList = []; let stringList = [];
let decollatePlanarList =["硬科技企业培育情况"];//适配 表格 let decollatePlanarList = ["硬科技企业培育情况","科技型中小企业认定情况"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
} }
\ No newline at end of file
...@@ -25,14 +25,29 @@ export function qyszhxTableData() { ...@@ -25,14 +25,29 @@ export function qyszhxTableData() {
let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '企业数字画像'); let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '企业数字画像');
let keyValueOrTitleList = ["企业基本情况", "企业基本数据", "企业标签", "知识产权", "企业员工画像", "企业汇总数据", "营收情况", "服务需求", "服务记录", "园区通知", "园区活动"];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = ["企业基本情况", "企业基本数据", "企业标签", "企业名称", "知识产权", "企业员工画像", "企业汇总数据", "营收情况", "服务需求", "服务记录", "园区通知", "园区活动", "资质认证", "研发占比", "荣誉资质", "风险预警", "风险预警详情"];//适配 饼图 键值以及需要多个key的
let barChartList = ["历年人才招聘情况", "营收变化趋势", "活动变化趋势分析"]; //适配 柱状图 折线图 , "资质认证" let barChartList = ["历年人才招聘情况", "营收变化趋势", "活动变化趋势分析", "资质认证变化趋势", "企业面积预警动态"]; //适配 柱状图 折线图
let stringList = []; let stringList = [];
let decollatePlanarList = ["小巨人", "高新企业", "专精特新", "企业动态", "服务记录_空间服务", "服务记录_工商服务", "服务记录_融资服务", "园区通知详情", "园区活动明细"];//适配 表格 let decollatePlanarList = ["小巨人", "高新企业", "专精特新", "企业动态", "服务记录_空间服务", "服务记录_工商服务", "服务记录_融资服务", "园区通知详情", "园区活动明细"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
}
export function fxyjTableData() {
let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '风险预警');
let keyValueOrTitleList = ["风险预警",];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList = [];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
}
\ 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