Commit e5446447 by zhangzhencai

no message

parent 435ae588
<config>
<port>40015</port>
<dbPort>9096</dbPort>
<dbHost>192.168.0.71</dbHost>
<dbHost>192.168.0.189</dbHost>
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<!-- <imgPath>http://127.0.0.1:4980/yuyi/viewpage</imgPath> -->
<imgPath>http://192.168.0.189:40015</imgPath>
......
......@@ -10,78 +10,85 @@ export async function getData(req, res) {
let dbList = await getJxgljsc();
let excelData = jxgljscTableData();
let ret:any = {};
let ret: any = {};
let zfqymjqkfxPackageData = keyValuePackage(excelData['在孵企业面积情况分析'].dataList);
ret['zfqymjqkfx'] = getKeyValueOut('在孵企业面积情况分析', zfqymjqkfxPackageData);
let zfqymjbhqsPackageData = onceYBarChartPackage( excelData['在孵企业面积变化趋势'], '','');
let zfqymjbhqsPackageData = onceYBarChartPackage(excelData['在孵企业面积变化趋势'], '', '');
ret['zfqymjbhqs'] = getOnceYBarChartOut('在孵企业面积变化趋势', zfqymjbhqsPackageData);
let cyjgPackageData = keyValuePackage(dbList['产业结构'].dataList);
ret['cyjg'] = getKeyValueOut('产业结构', cyjgPackageData);
let ykjqypyqkTableData = tablePackage(excelData["硬科技企业培育情况"].headerList[0], excelData["硬科技企业培育情况"].bodyList);
ret['ykjqypyqk'] = getTableOut( '硬科技企业培育情况', ykjqypyqkTableData);
// let kjxzxqyrdqkTableData = tablePackage(excelData["科技型中小企业认定情况"].headerList[0], excelData["科技型中小企业认定情况"].bodyList);
// ret['kjxzxqyrdqk'] = getTableOut('科技型中小企业认定情况', kjxzxqyrdqkTableData);
let rcyjPackageData = keyValuePackage(dbList['人才引进'].dataList);
ret['rcyj'] = getKeyValueOut('人才引进', rcyjPackageData);
let fhqhzsjPackageData = keyValuePackage(dbList['孵化器汇总数据'].dataList);
ret['fhqhzsj'] = getKeyValueOut('孵化器汇总数据', fhqhzsjPackageData);
let xzzfqyqkPackageData = keyValuePackage(excelData['新增在孵企业情况'].dataList);
ret['xzzfqyqk'] = getKeyValueOut('新增在孵企业情况', xzzfqyqkPackageData);
let zyjjnlPackageData = keyValuePackage(excelData['资源集聚能力'].dataList);
ret['zyjjnl'] = getKeyValueOut('资源集聚能力', zyjjnlPackageData);
let zhnlPackageData = keyValuePackage(excelData['综合能力'].dataList);
ret['zhnl'] = getKeyValueOut('综合能力', zhnlPackageData);
let byqyqkPackageData = keyValuePackage(excelData['毕业企业情况'].dataList);
ret['byqyqk'] = getKeyValueOut('毕业企业情况', byqyqkPackageData);
let qycxfsddnlPackageData = keyValuePackage(excelData['区域创新辐射带动能力'].dataList);
ret['qycxfsddnl'] = getKeyValueOut('区域创新辐射带动能力', qycxfsddnlPackageData);
let yjPackageData = keyValuePackage(excelData['预警'].dataList);
let yjPackageData = keyValuePackage(excelData['预警'].dataList);//设计图有改动todo
ret['yj'] = getKeyValueOut('预警', yjPackageData);
let qyyjPackageData = keyValuePackage(excelData['企业预警'].dataList);
ret['qyyj'] = getKeyValueOut('企业预警', qyyjPackageData);
let qydtPackageData = keyValuePackage(dbList['企业动态'].dataList);
ret['qydt'] = getKeyValueOut('企业动态', qydtPackageData);
let zfqybhqsPackageData = onceYBarChartPackage( dbList['在孵企业变化趋势'], '家','');
let zfqybhqsPackageData = onceYBarChartPackage(dbList['在孵企业变化趋势'], '家', '');
ret['zfqybhqs'] = getOnceYBarChartOut('在孵企业变化趋势', zfqybhqsPackageData);
let jrfwPackageData = keyValuePackage(excelData['金融服务'].dataList);
ret['jrfw'] = getKeyValueOut('金融服务', jrfwPackageData);
// let jrfwPackageData = keyValuePackage(excelData['金融服务'].dataList);
// ret['jrfw'] = getKeyValueOut('金融服务', jrfwPackageData);//后台填报todo
let jrfwPackageData = keyValuePackage(dbList['金融服务'].dataList);
ret['jrfw'] = getKeyValueOut('金融服务', jrfwPackageData);//后台填报todo
let zysjePackageData = keyValuePackage(dbList['总营收金额'].dataList);
ret['zysje'] = getKeyValueOut('总营收金额', zysjePackageData);
let zfqyzysPackageData = keyValuePackage(dbList['在孵企业总营收'].dataList);
ret['zfqyzys'] = getKeyValueOut('在孵企业总营收', zfqyzysPackageData);
let tzlxPackageData = keyValuePackage(excelData['投资类型'].dataList);
ret['tzlx'] = getKeyValueOut('投资类型', tzlxPackageData);
// let tzlxPackageData = onceYBarChartPackage(dbList['投资类型'], '家', '');
// ret['tzlx'] = getOnceYBarChartOut('投资类型', tzlxPackageData);
let zfqyrzqkPackageData = keyValuePackage(dbList['在孵企业融资情况'].dataList);
ret['zfqyrzqk'] = getKeyValueOut('在孵企业融资情况', zfqyrzqkPackageData);
let ggjsfwPackageData = keyValuePackage(excelData['公共技术服务'].dataList);
let ggjsfwPackageData = keyValuePackage(excelData['公共技术服务'].dataList);//去掉
ret['ggjsfw'] = getKeyValueOut('公共技术服务', ggjsfwPackageData);
let qyfhlPackageData = keyValuePackage(excelData['企业孵化率'].dataList);
ret['qyfhl'] = getKeyValueOut('企业孵化率', qyfhlPackageData);
let qyfhsPackageData = keyValuePackage(dbList['企业孵化数'].dataList);
ret['qyfhs'] = getKeyValueOut('企业孵化数', qyfhsPackageData);
res.send(ret);
}
......@@ -91,79 +98,79 @@ export async function get备份(req, res) {
let dbList = await getJxgljsc();
let excelData = jxgljscTableData();
let ret:any = {};
let ret: any = {};
let zfqymjqkfxPackageData = keyValuePackage(excelData['在孵企业面积情况分析'].dataList);
ret['zfqymjqkfx'] = getKeyValueOut('在孵企业面积情况分析', zfqymjqkfxPackageData);
let zfqymjbhqsPackageData = onceYBarChartPackage( excelData['在孵企业面积变化趋势'], '','');
let zfqymjbhqsPackageData = onceYBarChartPackage(excelData['在孵企业面积变化趋势'], '', '');
ret['zfqymjbhqs'] = getOnceYBarChartOut('在孵企业面积变化趋势', zfqymjbhqsPackageData);
let cyjgPackageData = keyValuePackage(excelData['产业结构'].dataList);
ret['cyjg'] = getKeyValueOut('产业结构', cyjgPackageData);
let ykjqypyqkTableData = tablePackage(excelData["硬科技企业培育情况"].headerList[0], excelData["硬科技企业培育情况"].bodyList);
ret['ykjqypyqk'] = getTableOut( '硬科技企业培育情况', ykjqypyqkTableData);
ret['ykjqypyqk'] = getTableOut('硬科技企业培育情况', ykjqypyqkTableData);
let rcyjPackageData = keyValuePackage(excelData['人才引进'].dataList);
ret['rcyj'] = getKeyValueOut('人才引进', rcyjPackageData);
let fhqhzsjPackageData = keyValuePackage(excelData['孵化器汇总数据'].dataList);
ret['fhqhzsj'] = getKeyValueOut('孵化器汇总数据', fhqhzsjPackageData);
let xzzfqyqkPackageData = keyValuePackage(excelData['新增在孵企业情况'].dataList);
ret['xzzfqyqk'] = getKeyValueOut('新增在孵企业情况', xzzfqyqkPackageData);
let zyjjnlPackageData = keyValuePackage(excelData['资源集聚能力'].dataList);
ret['zyjjnl'] = getKeyValueOut('资源集聚能力', zyjjnlPackageData);
let zhnlPackageData = keyValuePackage(excelData['综合能力'].dataList);
ret['zhnl'] = getKeyValueOut('综合能力', zhnlPackageData);
let byqyqkPackageData = keyValuePackage(excelData['毕业企业情况'].dataList);
ret['byqyqk'] = getKeyValueOut('毕业企业情况', byqyqkPackageData);
let qycxfsddnlPackageData = keyValuePackage(excelData['区域创新辐射带动能力'].dataList);
ret['qycxfsddnl'] = getKeyValueOut('区域创新辐射带动能力', qycxfsddnlPackageData);
let yjPackageData = keyValuePackage(excelData['预警'].dataList);
ret['yj'] = getKeyValueOut('预警', yjPackageData);
let qyyjPackageData = keyValuePackage(excelData['企业预警'].dataList);
ret['qyyj'] = getKeyValueOut('企业预警', qyyjPackageData);
let qydtPackageData = keyValuePackage(excelData['企业动态'].dataList);
ret['qydt'] = getKeyValueOut('企业动态', qydtPackageData);
let zfqybhqsPackageData = onceYBarChartPackage( excelData['在孵企业变化趋势'], '家','');
let zfqybhqsPackageData = onceYBarChartPackage(excelData['在孵企业变化趋势'], '家', '');
ret['zfqybhqs'] = getOnceYBarChartOut('在孵企业变化趋势', zfqybhqsPackageData);
let jrfwPackageData = keyValuePackage(excelData['金融服务'].dataList);
ret['jrfw'] = getKeyValueOut('金融服务', jrfwPackageData);
let zysjePackageData = keyValuePackage(excelData['总营收金额'].dataList);
ret['zysje'] = getKeyValueOut('总营收金额', zysjePackageData);
let zfqyzysPackageData = keyValuePackage(excelData['在孵企业总营收'].dataList);
ret['zfqyzys'] = getKeyValueOut('在孵企业总营收', zfqyzysPackageData);
let tzlxPackageData = keyValuePackage(excelData['投资类型'].dataList);
ret['tzlx'] = getKeyValueOut('投资类型', tzlxPackageData);
let zfqyrzqkPackageData = keyValuePackage(excelData['在孵企业融资情况'].dataList);
ret['zfqyrzqk'] = getKeyValueOut('在孵企业融资情况', zfqyrzqkPackageData);
let ggjsfwPackageData = keyValuePackage(excelData['公共技术服务'].dataList);
ret['ggjsfw'] = getKeyValueOut('公共技术服务', ggjsfwPackageData);
let qyfhlPackageData = keyValuePackage(excelData['企业孵化率'].dataList);
ret['qyfhl'] = getKeyValueOut('企业孵化率', qyfhlPackageData);
let qyfhsPackageData = keyValuePackage(excelData['企业孵化数'].dataList);
ret['qyfhs'] = getKeyValueOut('企业孵化数', qyfhsPackageData);
res.send(ret);
}
}
......@@ -31,6 +31,9 @@ export async function getData(req, res) {
let qybqPackageData = stringListPackage(dbData['企业标签'].dataList);
ret['qybq'] = getStringOut('企业标签', qybqPackageData);
// let zzrzPackageData = onceYBarChartPackage( dbData['资质认证'], '','');//新增
// ret['zzrz'] = getOnceYBarChartOut('资质认证', zzrzPackageData);
let zscqPackageData = keyValuePackage(dbData['知识产权'].dataList);
ret['zscq'] = getKeyValueOut('知识产权', zscqPackageData);
......
......@@ -35,7 +35,8 @@ export async function getData(req, res) {
let zfqybhqsPackageData = onceYBarChartPackage( dbData["在孵企业变化趋势"], '','');
ret['zfqybhqs'] = getOnceYBarChartOut('在孵企业变化趋势', zfqybhqsPackageData);
let byqybhqsPackageData = onceYBarChartPackage( excelData['毕业企业变化趋势'], '','');
// let byqybhqsPackageData = onceYBarChartPackage( excelData['毕业企业变化趋势'], '','');
let byqybhqsPackageData = onceYBarChartPackage( dbData["毕业企业变化趋势"], '','');
ret['byqybhqs'] = getOnceYBarChartOut('毕业企业变化趋势', byqybhqsPackageData);
let rzqyPackageData = onceYBarChartPackage( dbData['融资企业变化趋势'], '','');
......@@ -43,6 +44,7 @@ export async function getData(req, res) {
let ryzzPackageData = keyValuePackage(dbData['荣誉资质'].dataList);
ret['ryzz'] = getKeyValueOut('荣誉资质', ryzzPackageData);
let zhyyhzsjPackageData = keyValuePackage(dbData['智慧运营汇总数据'].dataList);
ret['zhyyhzsj'] = getKeyValueOut('智慧运营汇总数据', zhyyhzsjPackageData);
......
......@@ -223,6 +223,14 @@ export enum FUHUASTATE {
迁出 = 4
}
/**
* 迁出类型
*/
export enum EMIGRATIONTYPE {
毕业迁出 = 1,
到期退租,
违约退租
}
/**
* 上市情况
......@@ -338,9 +346,11 @@ export enum SELECTPARAM {
* 知识产权类型
*/
export enum INTELLECTUALPROPERTYRIGHT {
软件著作 = 1,
// 软件著作 = 1,
软件著作权 = 1,
发明专利,
海外专利,
专利,
其他
// 植物新品种,
// 集成电路布图,
......@@ -350,11 +360,19 @@ export enum INTELLECTUALPROPERTYRIGHT {
/**
* 知识产权类型 前端用
*/
export enum IPRTYPECLIENT {
软件著作 = 1,
export enum IPRTYPECLIENT {
// 软件著作 = 1,
软件著作权 = 1,
发明专利,
海外专利,
植物新品种,
集成电路布图,
}
/**
* 知识产权类型专利 前端用
*/
export enum IPRTYPECLIENTZL {
发明专利 = 2,
海外专利,
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import { selectData, selectManyTableData } from "./operationalData";
import { keyValuePackage } from "../../dataPackage/inFrontOut";
import { info } from "console";
import { getChart, getKeyValue, getYearList } from "./out";
import { get } from "http";
export async function getJxgljsc() {
......@@ -19,8 +20,10 @@ export async function getJxgljsc() {
在孵企业变化趋势: [],//在孵企业变化趋势
总营收金额: { dataList: [], titleList: ['key', 'value'] },//总营收金额
在孵企业总营收: { dataList: [], titleList: ['key', 'value'] },//在孵企业总营收
// 投资类型:[],//新增投资类型
在孵企业融资情况: { dataList: [], titleList: ['key', 'value'] },//在孵企业融资情况
企业孵化数: { dataList: [], titleList: ['key', 'value'] },//企业孵化数
金融服务: { dataList: [], titleList: ['key', 'value'] }//新增后台填报
};
// 获取当前时间
......@@ -34,15 +37,15 @@ export async function getJxgljsc() {
//获取在孵企业租赁信息
let 租赁Column = ["eId", "year", "alienPatent", "classIPatent", "secondClassPatent", "thirdPentent"];
let 在孵租赁联查includeConf = {};
在孵租赁联查includeConf[TABLENAME.企业孵化信息] = {cloum:fhColumn, where:{"endTime": { "%gt%": nowTime }}};
在孵租赁联查includeConf[TABLENAME.租赁信息] = {cloum:租赁Column, where:{}}
在孵租赁联查includeConf[TABLENAME.企业孵化信息] = { cloum: fhColumn, where: { "endTime": { "%gt%": nowTime } } };
在孵租赁联查includeConf[TABLENAME.租赁信息] = { cloum: 租赁Column, where: {} }
let 在孵租赁联查dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {}, ["enterpriseName"], 在孵租赁联查includeConf);
//获取羽翼孵化器
let 羽翼孵化器dbList = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.羽翼孵化器, {}, []);
jxgljsc.产业结构.dataList = await cyjg();//产业结构
jxgljsc.人才引进.dataList = await rcyj();//人才引进
let fhqhzsjInfo = await fhqhzsj(羽翼孵化器dbList, 在孵dbList);
......@@ -53,6 +56,13 @@ export async function getJxgljsc() {
jxgljsc.在孵企业变化趋势 = await zfqybhqs(在孵dbList);//在孵企业变化趋势
/**
* 金融服务
*/
let jrfwInfo = await jrfw(羽翼孵化器dbList);
jxgljsc.金融服务.dataList = getKeyValue(jrfwInfo);
let zysjeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null);
let zysjeInfo = await zysje(zysjeList);
jxgljsc.总营收金额.dataList = getKeyValue(zysjeInfo);//总营收金额
......@@ -60,13 +70,15 @@ export async function getJxgljsc() {
let zfqyzysInfo = await zfqyzys(在孵dbList);
jxgljsc.在孵企业总营收.dataList = getKeyValue(zfqyzysInfo);//在孵企业总营收
// jxgljsc.tzlx.dataList = await tzlx();//投资类型
/**
* 投资类型
*/
// jxgljsc.投资类型 = await zfqybhqs(在孵dbList);//投资类型
jxgljsc.在孵企业融资情况.dataList = await zfqyrzqk();//在孵企业融资情况
let 资质Column = ["qId", "eId", "kxTime", "zjtxTime", "xjrTime", "xjrPyTime", "goPublicTime", "gaoXinJiShuTime", "goPublicSector"];
let 企业资质联查includeConf = {};
企业资质联查includeConf[TABLENAME.企业资质] = {cloum:资质Column, where:{}}
企业资质联查includeConf[TABLENAME.企业资质] = { cloum: 资质Column, where: {} }
let 企业资质信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {}, [], 企业资质联查includeConf);
let qyfhsInfo = await qyfhs(企业资质信息);
jxgljsc.企业孵化数.dataList = getKeyValue(qyfhsInfo)//企业孵化数
......@@ -75,7 +87,7 @@ export async function getJxgljsc() {
}
//产业结构
//产业结构---按照企业选择的类型呈现todo
async function cyjg() {
let result = [];
......@@ -92,7 +104,7 @@ async function cyjg() {
return result;
}
//人才引进
//人才引进-----设计图有改动todo
async function rcyj() {
let result = [];
......@@ -117,7 +129,7 @@ async function rcyj() {
//孵化器汇总数据
async function fhqhzsj(data, zfData) {
let fhqhzsj = {
孵化器总面积:data.totalArea + "㎡",
孵化器总面积: data.totalArea + "㎡",
在孵企业: zfData.length,
在孵面积: data.zaifuArea + "㎡"
}
......@@ -125,6 +137,8 @@ async function fhqhzsj(data, zfData) {
return fhqhzsj;
}
//企业动态---------
async function qydt(data) {
......@@ -145,22 +159,22 @@ async function qydt(data) {
let thisYear = moment().format('YYYY-01-01 00:00:00');
let yearAgo = moment().subtract(1, 'year').format('YYYY-01-01 00:00:00');
let yearAgoEnd = moment().subtract(1, 'year').format('YYYY-12-31 00:00:00');
let 上月 = 0;
let 今年 = 0;
let 去年 = 0;
data.forEach( info => {
if (moment( info.startTime) > moment(monthAgo) && moment(info.startTime) < moment(nowTime)) {
data.forEach(info => {
if (moment(info.startTime) > moment(monthAgo) && moment(info.startTime) < moment(nowTime)) {
qydt.本月新加入在孵企业 += 1;
}
if (moment( info.startTime) > moment(monthAgo2) && moment(info.startTime) < moment(monthAgo2End)) {
if (moment(info.startTime) > moment(monthAgo2) && moment(info.startTime) < moment(monthAgo2End)) {
上月 += 1;
}
if (moment( info.startTime) > moment(thisYear) && moment(info.startTime) < moment(nowTime)) {
if (moment(info.startTime) > moment(thisYear) && moment(info.startTime) < moment(nowTime)) {
今年 += 1;
}
if (moment( info.startTime) > moment(yearAgo) && moment(info.startTime) < moment(yearAgoEnd)) {
if (moment(info.startTime) > moment(yearAgo) && moment(info.startTime) < moment(yearAgoEnd)) {
去年 += 1;
}
})
......@@ -174,20 +188,31 @@ async function qydt(data) {
return result;
}
//金融服务
async function jrfw(data) {
let jrfw = {
总资产投入金额: data.totalAssetInvestmentAmount,
引入机构数量: data.numberOfInstitutionsIntroduced,
引入机构投资: data.introduceInstitutionalInvestment
}
return jrfw;
}
function zfqybhqs(data){
function zfqybhqs(data) {
let year = getYearList();
let zhqy = {
"在孵企业":[]
"在孵企业": []
}
for (let i = 0; i < year.length; i++) {
let count = 0;
data.forEach( info => {
data.forEach(info => {
let startTimeYear = moment(info.startTime).year(); //获取入孵开始时间
let thisYear = parseInt(year[i]);
if (startTimeYear === thisYear) count += 1;
})
zhqy.在孵企业.push({key:year[i], value:count});
zhqy.在孵企业.push({ key: year[i], value: count });
}
let zhqybhqs = getChart(zhqy);
......@@ -201,7 +226,7 @@ function zfqybhqs(data){
async function zysje(data) {
//获取总营收金额
let zysje = {
总营收金额:0
总营收金额: 0
};
data.forEach(item => {
zysje.总营收金额 += parseFloat(item.BI);
......@@ -214,20 +239,28 @@ async function zysje(data) {
async function zfqyzys(data) {
let distinctMap = {};
data.forEach(info => {
distinctMap[info.eId] = {BI:0};
distinctMap[info.eId] = { BI: 0 };
});
let zfqyzys = {
"500万以下":0,
"500万-1000万":0,
"1000万-2000万":0,
"2000万以上":0
"500万以下": 0,
"500万-1000万": 0,
"1000万-2000万": 0,
"2000万以上": 0
}
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null);
//获取在孵企业经营数据
经营信息dbList.forEach( info => { //BI(单位万元)
distinctMap[info.eId].BI += parseFloat(info.BI);
// 经营信息dbList.forEach( info => { //BI(单位万元)
// distinctMap[info.eId].BI += parseFloat(info.BI);
// });
// 获取在孵企业经营数据并进行累加
经营信息dbList.forEach(info => {
if (!info.BI) return; // 检查 info 是否有 BI 属性
if (!distinctMap[info.eId]) {
distinctMap[info.eId] = { BI: 0 }; // 初始化 distinctMap 中的 eId
}
distinctMap[info.eId].BI += parseFloat(info.BI || 0); // 确保 BI 存在并且可以转换为数字
});
for (let key in distinctMap) {
......@@ -251,7 +284,7 @@ async function zfqyrzqk() {
let anyKey: any = key;
if (isNaN(anyKey)) {
let financingRounds = FINANCINGROUNDS[key];
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业融资, {financingRounds}, null);
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业融资, { financingRounds }, null);
result.push({ key: key, value: count })
}
}
......@@ -296,16 +329,16 @@ async function qyfhl() {
async function qyfhs(data) {
//获取企业孵化数
let qyfhs = {
"科小":0,//新增"科小"
"科小": 0,//新增"科小"
"小巨人": 0,
"高新企业": 0,
"专精特新": 0,
"小巨人培育": 0,
};
data.forEach( info => {
let {enterprise_qualifications} = info;
enterprise_qualifications.forEach( item => {
data.forEach(info => {
let { enterprise_qualifications } = info;
enterprise_qualifications.forEach(item => {
if (item.kxTime) qyfhs.科小 += 1;//新增"科小"
else if (item.xjrTime) qyfhs.小巨人 += 1;
else if (item.gaoXinJiShuTime) qyfhs.高新企业 += 1;
......
......@@ -3,10 +3,11 @@
*/
import moment = require("moment");
import { FUHUASTATE, INDUSTRY, MOVEOUTTYPE, OPERATIONALDATATYPE, SELECTPARAM, STATE, TABLENAME, INTELLECTUALPROPERTYRIGHT, IPRTYPECLIENT} from "../../config/enum";
import { FUHUASTATE, INDUSTRY, MOVEOUTTYPE, OPERATIONALDATATYPE, SELECTPARAM, STATE, TABLENAME, INTELLECTUALPROPERTYRIGHT, IPRTYPECLIENT, EMIGRATIONTYPE, ENTERPRISETEAM, DEGREE } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData";
import { getChart, getKeyValue, getMonthList, getYearList } from "./out";
import { Console, count, log } from "console";
import { changeEnumValue } from "../../tools/eccEnum";
export async function getEnterprise() {
......@@ -15,10 +16,11 @@ export async function getEnterprise() {
变化趋势分析: [], //变化趋势分析
入孵时长分布: { dataList: [], titleList: ['key', 'value'] }, //入孵时长分布
孵化企业行业领域占比: { dataList: [], titleList: ['key', 'value'] }, //孵化企业行业领域占比
企业人才:[], //企业人才
企业人才: [], //企业人才
企业服务汇总数据: { dataList: [], titleList: ['key', 'value'] }, //企业服务汇总数据
企业需求动态: { dataList: [], titleList: ['key', 'value'] }, //企业需求动态
企业需求动态详细: { bodyList: [], headerList: [['企业名称', '类型', 'eId']] }, //企业需求动态详细
// 企业需求动态详细: { bodyList: [], headerList: [['企业名称', '类型', 'eId']] }, //企业需求动态详细
企业需求动态详细: { bodyList: [], headerList: [['企业名称']] },
企业变化情况: { dataList: [], titleList: ['key', 'value'] }, //企业变化情况
企业变化情况变化趋势: [], //企业变化情况——变化趋势
金融服务: { dataList: [], titleList: ['key', 'value'] }, //金融服务
......@@ -59,8 +61,10 @@ export async function getEnterprise() {
//获取在孵企业
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, 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 孵化企业includeConf = {};
let 孵化企业Clumn = ["enterpriseName", "industry"];
......@@ -69,7 +73,9 @@ export async function getEnterprise() {
//企业基本信息
qyjbqk.在孵企业 = 在孵dbList.length;
// qyjbqk.毕业企业 = 毕业dbList.length;
qyjbqk.毕业企业 = 毕业dbList.length;
qyfw.企业基本情况.dataList = getKeyValue(qyjbqk);
//变化趋势分析 //todo 需要日志表
......@@ -82,22 +88,37 @@ export async function getEnterprise() {
qyfw.入孵时长分布.dataList = getKeyValue(rfscfb);
//孵化企业行业领域占比
// for (let key in INDUSTRY) {
// let anyKey: any = key;
// if (isNaN(anyKey)) {
// let keyStr = key;
// let industry = INDUSTRY[key];
// let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业基础信息表, { industry:{"%like%":industry} }, null);
// qyfw.孵化企业行业领域占比.dataList.push({ key: keyStr, value: count })
// }
// }
//孵化企业行业领域占比---按照企业选择的类型呈现todo
for (let key in INDUSTRY) {
let anyKey: any = key;
if (isNaN(anyKey)) {
let keyStr = key;
let industry = INDUSTRY[key];
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业基础信息表, { industry:{"%like%":industry} }, null);
qyfw.孵化企业行业领域占比.dataList.push({ key: keyStr, value: count })
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业基础信息表, { industry: { "%like%": industry } }, null);
// 只有当count大于0时才添加到dataList中
if (count > 0) {
qyfw.孵化企业行业领域占比.dataList.push({ key: keyStr, value: count });
}
}
}
//企业服务汇总数据`
let qyfwhzsj = await getQyfwhzsj();
qyfw.企业服务汇总数据.dataList = getKeyValue(qyfwhzsj);
//企业需求动态
let 入孵申请dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业基础信息表, {state: STATE.}, null);
let 入孵申请dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业基础信息表, { state: STATE. }, null);
let 企业服务Count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业服务表, {}, null);
let { qyxqdt, qyxqdtxx } = await getQyxqdt(入孵申请dbList, 企业服务Count);
qyfw.企业需求动态.dataList = getKeyValue(qyxqdt);
......@@ -278,31 +299,71 @@ function getBhqsfx(data) {
/**
* 在孵企业——变化趋势
*/
function getZfqy(data) {
// function getZfqy(data) {
// let year = getYearList();
// let bhqsfx = {
// "在孵": [],
// "毕业": []
// }
// for (let i = 0; i < year.length; i++) {
// let count = 0;
// data.forEach(info => {
// let startTimeYear = moment(info.startTime).year(); //获取入孵开始时间
// let thisYear = parseInt(year[i]);
// if (startTimeYear === thisYear) count += 1;
// })
// bhqsfx.在孵.push({ key: year[i], value: count });
// bhqsfx.毕业.push({ key: year[i], value: count});
// // bhqsfx.毕业.push({ key: year[i], value: 0 });
// }
// // let qybhqkbhqs = getChart(bhqsfx.在孵);
// return bhqsfx;
// }
function getZfqy(data) {
let year = getYearList();
let bhqsfx = {
"在孵": [],
"毕业": []
}
};
// 初始化每年的在孵和毕业企业数量为0
for (let i = 0; i < year.length; i++) {
let count = 0;
data.forEach(info => {
let startTimeYear = moment(info.startTime).year(); //获取入孵开始时间
let thisYear = parseInt(year[i]);
if (startTimeYear === thisYear) count += 1;
})
bhqsfx.在孵.push({ key: year[i], value: count });
bhqsfx.在孵.push({ key: year[i], value: 0 });
bhqsfx.毕业.push({ key: year[i], value: 0 });
}
// let qybhqkbhqs = getChart(bhqsfx.在孵);
data.forEach(info => {
let startTimeYear = moment(info.startTime).year(); // 获取入孵开始时间
let endTimeYear = moment(info.endTime).year(); // 获取入孵结束时间
let moveOutType = info.moveOutType;
// 统计在孵企业
for (let i = 0; i < year.length; i++) {
if (parseInt(year[i]) === startTimeYear) {
bhqsfx.在孵[i].value += 1;
break;
}
}
// 统计毕业企业
if (moveOutType === EMIGRATIONTYPE.毕业迁出) {
for (let i = 0; i < year.length; i++) {
if (parseInt(year[i]) === endTimeYear) {
bhqsfx.毕业[i].value += 1;
break;
}
}
}
});
return bhqsfx;
}
/**
* 入孵时长分布
* 入孵时长分布--到期时间为孵化截至todo
* @param data
*/
function getRfscfx(data) {
......@@ -361,7 +422,7 @@ async function getQyfwhzsj() {
/**
* 企业需求动态
* 企业需求动态----只需轮播企业名称todo
*/
async function getQyxqdt(入孵申请dbList, 企业服务Count) {
let qyxqdt = {
......@@ -374,7 +435,8 @@ async function getQyxqdt(入孵申请dbList, 企业服务Count) {
let qyxqdtxx = [];
入孵申请dbList.forEach(info => {
qyxqdtxx.push([info.enterpriseName, "入孵申请", info.eId]);
// qyxqdtxx.push([info.enterpriseName, "入孵申请", info.eId]);
qyxqdtxx.push([info.enterpriseName]);
})
//获取所有企业服务表联查企业信息表
let qyfwColumn = ["esId", "eId", "needCategory", "needContent"];
......@@ -382,7 +444,8 @@ async function getQyxqdt(入孵申请dbList, 企业服务Count) {
企业服务includeConf[TABLENAME.企业基础信息表] = { cloum: ["enterpriseName"], where: {} }
let 企业服务dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业服务表, {}, qyfwColumn, 企业服务includeConf);
企业服务dbList.forEach(info => {
qyxqdtxx.push([info.enterprise.enterpriseName, "企业需求", info.enterprise.eId]);
// qyxqdtxx.push([info.enterprise.enterpriseName, "企业需求", info.enterprise.eId]);
qyxqdtxx.push([info.enterprise.enterpriseName]);
})
return { qyxqdt, qyxqdtxx };
......@@ -393,19 +456,43 @@ async function getQyxqdt(入孵申请dbList, 企业服务Count) {
* 企业变化情况
* @param data
*/
// function getQybhqk(data) {
// let qybhqk = {
// 新增企业: 0, //统计当前年份入孵企业
// 迁出企业: 0
// }
// let nowTime = moment();
// data.forEach(info => {
// let parsedStartTime = moment(info.startTime); //获取入孵开始时间
// // 检查日期字段的年份是否与当前年份相同
// if (parsedStartTime.isValid() && parsedStartTime.year() === nowTime.year()) {
// qybhqk.新增企业 += 1;
// }
// })
// return qybhqk;
// }
function getQybhqk(data) {
let qybhqk = {
新增企业: 0, //统计当前年份入孵企业
迁出企业: 0
新增企业: 0, // 统计当前年份入孵企业
迁出企业: 0 // 统计当前年份迁出企业
}
let nowTime = moment();
data.forEach(info => {
let parsedStartTime = moment(info.startTime); //获取入孵开始时间
// 检查日期字段的年份是否与当前年份相同
let parsedStartTime = moment(info.startTime); // 获取入孵开始时间
let parsedMoveOutTime = moment(info.moveOutTime); // 获取迁出时间
// 检查入孵开始时间的年份是否与当前年份相同
if (parsedStartTime.isValid() && parsedStartTime.year() === nowTime.year()) {
qybhqk.新增企业 += 1;
}
// 检查迁出时间的年份是否与当前年份相同
if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
qybhqk.迁出企业 += 1;
}
})
return qybhqk;
......@@ -549,33 +636,34 @@ function getJrfwqy(data) {
/**
* 知识产权
* 知识产权-------设计图有改动todo
*/
function getZscq(data) {
let zscqbt = {
软件著作: 0,
// 软件著作: 0,
软件著作权: 0,
发明专利: 0,
海外专利: 0,
其他:0
其他: 0
// 植物新品种: 0,
// 集成电路布图: 0
}
data.forEach(info => {
switch (info.iprType) {
case IPRTYPECLIENT.软件著作:
zscqbt.软件著作 += info.number;
break;
case IPRTYPECLIENT.软件著作:
zscqbt.软件著作 += info.number;
break;
case IPRTYPECLIENT.发明专利:
zscqbt.发明专利 += info.number;
break;
break;
case IPRTYPECLIENT.海外专利:
zscqbt.海外专利 += info.number;
break;
break;
case IPRTYPECLIENT.植物新品种:
case IPRTYPECLIENT.集成电路布图:
zscqbt.其他 += info.number;
break;
break;
}
})
......@@ -664,20 +752,20 @@ function getQyzzfl(data) {
/**
* 企业人才
* 企业人才--创业团队分布todo
*/
async function getQyrc() {
// let year = getYearList();
let qyrc = {
"就业人数": [],
"创业团队分布": []
// "创业团队分布": []
}
//就业
let jiuYeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null);
let 年度就业人数趋势分析Map = {};
jiuYeList.forEach(info => {
let {eId, annual} = info;
let { eId, annual } = info;
let itemCount = 0;
let itemYear = new Date(annual).getFullYear();
if (info.zhuanKe) itemCount += parseInt(info.zhuanKe);
......@@ -686,26 +774,40 @@ async function getQyrc() {
if (info.boShi) itemCount += parseInt(info.boShi);
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;
});
let 年度就业人数趋势分析 = Object.values(年度就业人数趋势分析Map);
qyrc["就业人数"] = 年度就业人数趋势分析;
// for (let i = 0; i < year.length; i++) {
// let dbData = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, { annual: year[i] }, null);
// let count = 0;
// dbData.forEach(info => {
// let { zhuanKe, benKe, yanJiuSheng, boShi, qiTa } = info;
// count += zhuanKe;
// count += benKe;
// count += yanJiuSheng;
// count += boShi;
// count += qiTa;
// })
// qyrc["就业人数"].push({ key: year[i], value: count })
// }
//创业团队分布
// let qyrcList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.创业团队, {}, null);
// qyrcList.forEach(info => {
// let { eId, name, sex, birth, degree, graduationSchool, talentType, des } = info;
// qyrc["创业团队分布"].push({
// eId,
// name,
// sex,
// birth,
// degree,
// graduationSchool,
// talentType,
// des,
// });
// });
// // 统计每年的创业团队数量 学历
// let 年度创业团队趋势分析Map = {};
// qyrcList.forEach(info => {
// let birthYear = new Date(info.birth).getFullYear();
// if (!年度创业团队趋势分析Map[birthYear]) 年度创业团队趋势分析Map[birthYear] = { key: birthYear, value: 0 };
// 年度创业团队趋势分析Map[birthYear].value += 1;
// });
// // let 年度创业团队趋势分析 = Object.values(年度创业团队趋势分析Map);
// let 年度创业团队趋势分析 = Object.values(年度创业团队趋势分析Map) as { key: number; value: number }[];
// 年度创业团队趋势分析.sort((a, b) => a.key - b.key);
// qyrc["创业团队分布"] = 年度创业团队趋势分析;
return qyrc;
}
......
......@@ -11,6 +11,7 @@ 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'] },
......@@ -95,6 +96,10 @@ export async function getQyszhx(eId) {
let qybq = get企业标签(企业资质信息);
qyszhx.企业标签.dataList = qybq;
//资质认证todo
let zzrz = get资质认证(企业资质信息);
//知识产权
let zscq = get知识产权(企业专利信息);
qyszhx.知识产权.dataList = getKeyValue(zscq);
......@@ -103,18 +108,20 @@ export async function getQyszhx(eId) {
let qyyghx = await get企业员工画像(创业团队信息);
qyszhx.企业员工画像.dataList = getKeyValue(qyyghx);
let 专利总数 = 0;
for (let key in zscq) {
专利总数 += zscq[key];
}
// let 专利总数 = 0;
// for (let key in zscq) {
// 专利总数 += zscq[key];
// }
//企业汇总数据
let qyhzsj = {
// 企业认证:0, //todo
资质认证: qybq.length,
专利数: 专利总数,
};
// let qyhzsj = {
// // 企业认证:0, //todo
// 资质认证: qybq.length,
// 专利数: 专利总数,
// };
// qyszhx.企业汇总数据.dataList = getKeyValue(qyhzsj);
qyszhx.企业汇总数据.dataList = getKeyValue(qyhzsj);
//营收情况
let { ysqk, ysbhqs } = get营收情况(企业经营信息);
......@@ -194,10 +201,20 @@ function get企业标签(data) {
return qybq;
}
/**
*
* @param data 资质认证
* @returns
*/
function get资质认证(data) {
}
function get知识产权(data) {
let zscq:any = {
软件著作:0,
// 软件著作:0,
软件著作权:0,
发明专利:0,
海外专利:0,
植物新品种:0,
......@@ -312,6 +329,7 @@ function get营收情况(data) {
function get企业动态(data) {
let qydt = [];
data.forEach(info => {
let { enterprise_honors } = info;
enterprise_honors.forEach(honors => {
......
import moment = require("moment");
import { AWARDLEVEL, FOLLOWUPSTATUS, FUHUASTATE, INDUSTRY, MOVEOUTTYPE, NEEDCATEGORY, OPERATIONALDATATYPE, TABLENAME } from "../../config/enum";
import { AWARDLEVEL, EMIGRATIONTYPE, FOLLOWUPSTATUS, FUHUASTATE, INDUSTRY, MOVEOUTTYPE, NEEDCATEGORY, OPERATIONALDATATYPE, TABLENAME } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData";
import { changeEnumValue } from "../../tools/eccEnum";
import { getChart, getYearList } from "./out";
import { getMySqlMs } from "../../tools/systemTools";
import { systemConfig } from "../../config/serverConfig";
function getStartAndEndTimeYearList(startTime, endTime) {
......@@ -36,16 +37,17 @@ export async function getZhyy() {
manyTableInfo[TABLENAME.企业孵化信息] = { column: ["fId", "eId", "startTime", "endTime", "state"], where: {} };
manyTableInfo[TABLENAME.租赁信息] = { column: ["area", "startTime", "endTime"], where: {} };
let fhdbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {}, fhColumn, manyTableInfo);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, ["fId", "eId", "startTime", "endTime", "state", "virtualCause",
"virtualCauseDes", "moveOutType", "moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"]);
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, ["fId", "eId", "startTime", "endTime", "state", "virtualCause",
"virtualCauseDes", "moveOutType", "moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"]);
//入驻企业变化趋势
let industryMap = {};
let ruZhuMap = {};
let ruZhuCount = 0;
let areaCount = 0;
let enterpriseCount = 0;
let 面积变化Map = {};
let industryMap = {};//行业领域
let ruZhuMap = {};//入驻企业变化趋势
let ruZhuCount = 0;//入驻数
let areaCount = 0;//
let enterpriseCount = 0;//企业数量
let 面积变化Map = {};//孵化面积变化
let thisYear = new Date().getFullYear();
let firstDayMsOfMonth = moment().startOf('month').valueOf();
......@@ -70,24 +72,22 @@ export async function getZhyy() {
if (!industryMap[industryStr]) industryMap[industryStr] = 0;
industryMap[industryStr] += 1;
}
let area = enterprise_leases[0].area || 0;
if (area) {
areaCount += parseFloat(area);
if (enterprise_leases[0].startTime && enterprise_leases[0].endTime ) {
let leasesYearList = getStartAndEndTimeYearList(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);
leasesYearList.forEach(itemYear => {
if (itemYear > thisYear) return;
if (!面积变化Map[itemYear] ) 面积变化Map[itemYear] = {key:itemYear, value:0};
if (!面积变化Map[itemYear]) 面积变化Map[itemYear] = { key: itemYear, value: 0 };
面积变化Map[itemYear].value += parseFloat(area);
});
}
}
enterpriseCount += 1;
});
let 入驻企业变化趋势 = [];
for (let key in ruZhuMap) {
入驻企业变化趋势.push({ key, value: ruZhuMap[key] });
......@@ -99,15 +99,107 @@ export async function getZhyy() {
return dateA.diff(dateB);
});
/**
* 在孵企业变化趋势
*/
let 在孵企业变化趋势map = {};
let firstDayMsOfMonth1 = moment().startOf('month').valueOf();
let checlTimeMs1 = moment(firstDayMsOfMonth1).subtract(6, 'years').valueOf();
在孵dbList.forEach(info => {
let startTime = info.startTime;
if (!startTime) return;
let startTimeMs = new Date(startTime).valueOf();
if (startTimeMs >= checlTimeMs1) {
let timeStr = moment(startTime).format("YYYY");
if (!在孵企业变化趋势map[timeStr]) 在孵企业变化趋势map[timeStr] = 0;
在孵企业变化趋势map[timeStr] += 1;
}
});
//行业领域
let 行业领域 = [];
for (let key in industryMap) {
行业领域.push({ key, value: industryMap[key] });
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);
});
/**
* 毕业企业变化趋势todo——年
*/
// let 毕业企业变化趋势map = {};
// 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 biYeOutCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: MOVEOUTTYPE.毕业迁出 }, null);
// 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 毕业企业变化趋势map = {};
在孵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) => {
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 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 dqtzCount = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业孵化信息, { state: FUHUASTATE.迁出, moveOutType: EMIGRATIONTYPE.到期退租 }, null);
let rongZiList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null);
let rongZiMap = {};
let 融资企业变化趋势Map = {};
......@@ -126,13 +218,13 @@ export async function getZhyy() {
for (let key in 融资企业变化趋势Map) {
融资企业变化趋势.push({
key,
value:Object.keys(融资企业变化趋势Map[key]).length
value: Object.keys(融资企业变化趋势Map[key]).length
});
}
let fuWuCount = 0;//服务数
let fuWuQiYeCountMap = {};//服务覆盖企业
let fuWuQiYeTypeMap = {};//
let fuWuQiYeTypeMap = {};//企业服务类型
let fuWuList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业服务表, {}, null);
fuWuList.forEach(info => {
......@@ -154,16 +246,6 @@ export async function getZhyy() {
let fuWuQiYeCount = Object.keys(fuWuQiYeCountMap).length;//服务覆盖企业
let fuWuQiYeTypeList = [];
// 遍历 NEEDCATEGORY 枚举
// const allNeedCategories = Object.values(NEEDCATEGORY);
// allNeedCategories.forEach(needCategory => {
// let needCategoryStr = changeEnumValue(NEEDCATEGORY, needCategory);
// let value = fuWuQiYeTypeMap[needCategoryStr] || 0;
// fuWuQiYeTypeList.push({
// key: needCategoryStr,
// value: value
// });
// for (let key in NEEDCATEGORY) {
// let keyAny:any = NEEDCATEGORY[key];
......@@ -185,27 +267,13 @@ export async function getZhyy() {
}
}
// for (let key in NEEDCATEGORY) {
// let keyAny:any = NEEDCATEGORY[key];
// if (isNaN(keyAny)) {
// //toupdate 这里继续完善 有点小bug
// let keyStr = key;
// let serviceType = NEEDCATEGORY[key];
// let value = fuWuQiYeTypeMap[keyStr] || 0;
// fuWuQiYeTypeList.push({
// key: keyStr,
// value: value
// });
// }
// }
//荣誉资质统计
//荣誉资质统计
let guojiaJiCount = 0;
let shengJiCount = 0;
let shiJiCount = 0;
let awardList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业荣誉, {}, null);
awardList.forEach(info => {
let { awardLevel } = info;
let { awardLevel, awardImg } = info;
if (awardLevel == AWARDLEVEL.国家级) {
guojiaJiCount += 1;
} else if (awardLevel == AWARDLEVEL.省级) {
......@@ -213,23 +281,58 @@ export async function getZhyy() {
} else if (awardLevel == AWARDLEVEL.市级) {
shiJiCount += 1;
}
});
/**
* 企业自行填报,人员数量:从业人员填报数据总和todo
*/
let canbaoList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null);
let totalEmployeeCount = 0;
canbaoList.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);
totalEmployeeCount += itemCount;
}
);
let 孵化器dbList = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.羽翼孵化器, {}, ["parkArea", "industrialScale"]);
let 园区概况 = [
{ key: "园区面积", value: "0㎡" },
{ key: "产值规模", value: "0亿元" },
// { key: "园区面积", value: "0㎡" },
{ key: "园区面积", value: `${孵化器dbList.parkArea}㎡` },
// { key: "产值规模", value: "0亿元" },
{ key: "产值规模", value: `${孵化器dbList.industrialScale}亿元` },
{ key: "企业数量", value: `${在孵dbList.length}家` },
{ key: "企业数量", value: `0人` },
];
// { key: "员工数量", value: `0人` },
{ key: "员工数量", value: `${totalEmployeeCount}家` },
];
let 孵化器数据 = [
{ key: "孵化器面积", value: `${areaCount}㎡` },
{ key: "入驻企业", value: `${ruZhuCount}家` },
{ key: "入驻企业面积占比", value: "0%" },
{ key: "入驻企业数量占比", value: "0%" },
{ key: "入驻企业行业占比", value: "0%" },
]
let 在孵企业数据 = [
{ key: "在孵企业面积占比", value: "0%" },
{ key: "在孵企业面积占比", value: "0%" },//放到孵化运营下面todo
{ key: "入驻", value: `${ruZhuCount}家` },
{ key: "迁出", value: `${qianChuCount}家` },
{ key: "到期退租", value: "0家" },
{ key: "违约退租", value: "0家" }
// { key: "到期退租", value: "0家" },
{ key: "到期退租", value: `${dqtzCount}家` },
// { key: "违约退租", value: "0家" }
{ key: "违约退租", value: `${wytzCount}家` },
];
let 孵化运营 = [
{ key: "孵化面积", value: `${areaCount}㎡` },
{ key: "孵化面积", value: `${areaCount}㎡` },//企业自行填报todo
{ key: "在孵企业", value: `${在孵dbList.length}家` },
{ key: "毕业企业", value: `${biYeOutCount}家` },
{ key: "融资企业", value: `${rongZiQiYeCount}家` },
......@@ -245,21 +348,23 @@ export async function getZhyy() {
{ key: "服务覆盖企业", value: fuWuQiYeCount },
];
/**
* 改成企业上传todo
*/
let 荣誉资质 = [
{ key: "国家级", value:`${guojiaJiCount}项` },
{ key: "国家级", value: `${guojiaJiCount}项` },
{ key: "省级", value: `${shengJiCount}项` },
{ key: "市级", value: `${shiJiCount}项`},
{ key: "市级", value: `${shiJiCount}项`, },
];
/**在孵企业变化趋势 */
let 在孵企业变化趋势 = getZfqy(在孵dbList);
//就业
/**
* 就业分析
*/
let jiuYeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, null);
let 年度就业人数趋势分析Map = {};
jiuYeList.forEach(info => {
let {eId, annual} = info;
let { eId, annual } = info;
let itemCount = 0;
let itemYear = new Date(annual).getFullYear();
if (info.zhuanKe) itemCount += parseInt(info.zhuanKe);
......@@ -268,59 +373,83 @@ export async function getZhyy() {
if (info.boShi) itemCount += parseInt(info.boShi);
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;
});
let 年度就业人数趋势分析 = Object.values(年度就业人数趋势分析Map);
//产业规模分析
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 = {};
jingYingList.forEach(info => {
let {BI, eId} = info;
let { BI, eId } = info;
if (!产业规模企业Map[eId]) 产业规模企业Map[eId] = 0;
产业规模企业Map[eId] += parseFloat(BI);
});
let 产业规模分析List = [
{num:400, key:"超400万", value:0},
{num:300, key:"300-400万", value:0},
{num:200, key:"200-300万", value:0},
{num:100, key:"100-200万", value:0},
{num:1, key:"<100万", value:0},
{ num: 400, key: "超400万", value: 0 },
{ num: 300, key: "300-400万", value: 0 },
{ num: 200, key: "200-300万", value: 0 },
{ num: 100, key: "100-200万", value: 0 },
{ num: 1, key: "<100万", value: 0 },
];
for (let key in 产业规模企业Map) {
let itemCount = 产业规模企业Map[key];
for (let i = 0; i < 产业规模分析List.length; i++) {
let {num} = 产业规模分析List[i];
let { num } = 产业规模分析List[i];
if (itemCount > num) {
产业规模分析List[i].value += 1;
break;
}
}
}
/**
* 按季度展示todo
*/
let 在孵企业营收占比 = [];
产业规模分析List.forEach(info => {
let {key, value} = info;
在孵企业营收占比.push({key, value});
let { key, value } = info;
在孵企业营收占比.push({ key, value });
})
let zhyy = {
园区概况:{dataList:园区概况, title:["key", "value"]},
园区概况: { dataList: 园区概况, title: ["key", "value"] },
在孵企业数据: { dataList: 在孵企业数据, titleList: ['key', 'value'] },
在孵企业变化趋势: 在孵企业变化趋势,
融资企业变化趋势:[{name:"融资企业变化趋势", data:融资企业变化趋势}],
融资企业变化趋势: [{ name: "融资企业变化趋势", data: 融资企业变化趋势 }],
入驻企业变化趋势: [{ name: "入驻企业变化趋势", data: 入驻企业变化趋势 }],
孵化面积变化趋势 :[{ name: "孵化面积变化趋势", data: Object.values(面积变化Map) }],
入驻企业行业类型: { dataList: 行业领域, titleList: ['key', 'value'] },
孵化面积变化趋势: [{ name: "孵化面积变化趋势", data: Object.values(面积变化Map) }],
在孵企业变化趋势: [{ name: "在孵企业变化趋势", data: 在孵企业变化趋势 }],
毕业企业变化趋势: [{ name: "毕业企业变化趋势", data: 毕业企业变化趋势 }],
入驻企业行业类型: { dataList: [], titleList: ['key', 'value'] },//行业领域
孵化运营: { dataList: 孵化运营, titleList: ['key', 'value'] },
智慧运营汇总数据: { dataList: 智慧运营汇总数据, titleList: ['key', 'value'] },
企业服务: { dataList: 企业服务, titleList: ['key', 'value'] },
企业服务类型: { dataList: fuWuQiYeTypeList, titleList: ['key', 'value'] },
荣誉资质:{ dataList:荣誉资质, titleList: ['key', 'value'] },
年度就业人数趋势分析:[{name:"年度就业人数趋势分析", data:年度就业人数趋势分析}],
在孵企业营收占比:{dataList:在孵企业营收占比, title:["key", "value"]}
荣誉资质: { dataList: 荣誉资质, titleList: ['key', 'value'] },
年度就业人数趋势分析: [{ name: "年度就业人数趋势分析", data: 年度就业人数趋势分析 }],
在孵企业营收占比: { dataList: 在孵企业营收占比, title: ["key", "value"] }
}
//行业领域----按照企业选择的类型呈现todo INDUSTRY
for (let key in INDUSTRY) {
let anyKey: any = key;
if (isNaN(anyKey)) {
let keyStr = key;
let industry = INDUSTRY[key];
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业基础信息表, { industry: { "%like%": industry } }, null);
// 只有当count大于0时才添加到dataList中
if (count > 0) {
zhyy.入驻企业行业类型.dataList.push({ key: keyStr, value: count });
}
}
}
return zhyy;
......@@ -333,7 +462,7 @@ export async function getZhyy() {
/**
* 在孵企业——变化趋势
*/
function getZfqy(data) {
function getZfqy(data) {
let year = getYearList();
let hbqs = {
"企业数": []
......
......@@ -26,7 +26,7 @@ export function jxgljscTableData() {
let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '绩效管理驾驶舱');
let keyValueOrTitleList = ["在孵企业面积情况分析","产业结构","人才引进","孵化器汇总数据","新增在孵企业情况","资源集聚能力","综合能力","毕业企业情况","区域创新辐射带动能力","预警","企业预警","企业动态","金融服务","总营收金额","在孵企业总营收","投资类型","在孵企业融资情况","公共技术服务","企业孵化率","企业孵化数"];//适配 饼图 键值以及需要多个key的
let barChartList = ["在孵企业面积变化趋势","在孵企业变化趋势"]; //适配 柱状图 折线图
let barChartList = ["在孵企业面积变化趋势","在孵企业变化趋势"]; //适配 柱状图 折线图 ,"投资类型"
let stringList = [];
let decollatePlanarList =["硬科技企业培育情况"];//适配 表格
let titltListConfig = {};
......
......@@ -6,7 +6,7 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
let result = {};
for (let i = 0; i < blockDataList.length; i++) {
let {blockData, blockTitle} = blockDataList[i];
let { blockData, blockTitle } = blockDataList[i];
if (keyValueOrTitleList.indexOf(blockTitle) > -1) {
let titleList = titltListConfig[blockTitle] || [];
result[blockTitle] = planarArrForObjectList(blockData, 0, titleList);
......@@ -22,17 +22,17 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
}
export function qyszhxTableData() {
let blockDataList = onceSheetBecomeOfblockData('yuyiServer.xlsx', '企业数字画像');
let keyValueOrTitleList = ["企业基本情况","企业基本数据","企业标签","知识产权","企业员工画像","企业汇总数据","营收情况","服务需求","服务记录","园区通知","园区活动"];//适配 饼图 键值以及需要多个key的
let barChartList = ["历年人才招聘情况","营收变化趋势","活动变化趋势分析"]; //适配 柱状图 折线图
let keyValueOrTitleList = ["企业基本情况", "企业基本数据", "企业标签", "知识产权", "企业员工画像", "企业汇总数据", "营收情况", "服务需求", "服务记录", "园区通知", "园区活动"];//适配 饼图 键值以及需要多个key的
let barChartList = ["历年人才招聘情况", "营收变化趋势", "活动变化趋势分析"]; //适配 柱状图 折线图 , "资质认证"
let stringList = [];
let decollatePlanarList =["小巨人","高新企业","专精特新","企业动态","服务记录_空间服务","服务记录_工商服务","服务记录_融资服务","园区通知详情","园区活动明细"];//适配 表格
let decollatePlanarList = ["小巨人", "高新企业", "专精特新", "企业动态", "服务记录_空间服务", "服务记录_工商服务", "服务记录_融资服务", "园区通知详情", "园区活动明细"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
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