Commit e76e5735 by zhangzhencai

增加了jxgljsc.ts文件

parent fef13b2e
/**
* 绩效管理驾驶仓
*/
import moment = require("moment")
import { FUHUASTATE, INDUSTRY, MOVEOUTTYPE, OPERATIONALDATATYPE, TABLENAME, FINANCINGROUNDS } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData";
import { keyValuePackage } from "../../dataPackage/inFrontOut";
import { info } from "console";
export async function getJxgljsc() {
let jxgljsc = {
"cyjg": { dataList: [], titleList: ['key', 'value'] },//产业结构
"rcyj": { dataList: [], titleList: ['key', 'value'] },//人才引进
"fhqhzsj": { dataList: [], titleList: ['key', 'value'] },//孵化器汇总数据
"qydt": { dataList: [], titleList: ['key', 'value'] },//企业动态
"zfqybhqs": [],//在孵企业变化趋势
"zysje": { dataList: [], titleList: ['key', 'value'] },//总营收金额
"zfqyzys": { dataList: [], titleList: ['key', 'value'] },//在孵企业总营收
"tzlx": { dataList: [], titleList: ['key', 'value'] },//投资类型
"zfqyrzqk": { dataList: [], titleList: ['key', 'value'] },//在孵企业融资情况
"qyfhl": { dataList: [], titleList: ['key', 'value'] },//企业孵化率
"qyfhs": { dataList: [], titleList: ['key', 'value'] },//企业孵化数
}
// 获取当前时间
let nowTime = moment().format('YYYY-MM-DD HH:mm:ss');
let fhColumn = ["fId", "eId", "startTime", "endTime", "state", "virtualCause", "virtualCauseDes", "moveOutType",
"moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"];
//获取在孵企业
let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn);
jxgljsc.cyjg.dataList = await cyjg();//产业结构
jxgljsc.rcyj.dataList = await rcyj();//人才引进
jxgljsc.fhqhzsj.dataList = await fhqhzsj();//孵化器汇总数据
jxgljsc.qydt.dataList = await qydt();//企业动态
jxgljsc.zfqybhqs = await zfqybhqs(在孵dbList, jxgljsc);//在孵企业变化趋势
jxgljsc.zysje.dataList = await zysje();//总营收金额
jxgljsc.zfqyzys.dataList = await zfqyzys(在孵dbList, jxgljsc, 在孵dbList);//在孵企业总营收
jxgljsc.tzlx.dataList = await tzlx();//投资类型
jxgljsc.zfqyrzqk.dataList = await zfqyrzqk();//在孵企业融资情况
jxgljsc.qyfhl.dataList = await qyfhl();//企业孵化率
jxgljsc.qyfhs.dataList = await qyfhs();//企业孵化数
return jxgljsc;
}
//产业结构
async function cyjg() {
let result = [];
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 }, null);
result.push({ key: keyStr, value: count })
}
}
return result;
}
//人才引进
async function rcyj() {
let rcyj = {
"国家级人才": 0,
"上海市级人才": 0,
"浦东区级人才": 0,
"海外人才": 0,
"博士人才": 0
}
// 分别获取不同表的数据并合并处理
let 创业团队List = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.创业团队, {}, null);
let result = [];
for (let rcyjItem of [创业团队List]) {
if (rcyjItem.title == "国家级人才") {
rcyj.国家级人才 += 1;
} else if (rcyjItem.city == "上海市") {
rcyj.上海市级人才 += 1;
} else if (rcyjItem.city == "浦东区") {
rcyj.浦东区级人才 += 1;
} else if (rcyjItem.city == "海外") {
rcyj.海外人才 += 1;
} else if (rcyjItem.title == "博士") {
rcyj.博士人才 += 1;
}
// 将 rcyj 对象转换为数组
let result = Object.entries(rcyj).map(([key, value]) => ({ key: key, value: value }));
}
return result;
}
//孵化器汇总数据
async function fhqhzsj() {
let result = [];
let fhqhzsj = {
"在孵企业": 0,
"在孵面积": 0
}
let 孵化信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, null);
孵化信息dbList.forEach(item => {
fhqhzsj.在孵面积 += parseInt(item.area);;
});
let fhColumn = ["fId", "eId", "startTime", "endTime", "state", "virtualCause", "virtualCauseDes", "moveOutType",
"moveOutTrace", "moveOutCause", "moveOutTime", "graduationTime"];
//获取所有企业孵化表联查企业信息表
let 孵化企业includeConf = {};
let 孵化企业Clumn = ["enterpriseName", "industry"];
孵化企业includeConf[TABLENAME.企业基础信息表] = { cloum: 孵化企业Clumn, where: {} }
let 孵化企业dbList = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业孵化信息, {}, fhColumn, 孵化企业includeConf);
fhqhzsj.在孵企业 = 孵化企业dbList.length;
result.push({ key: "在孵企业", value: fhqhzsj.在孵企业 });
result.push({ key: "在孵面积", value: fhqhzsj.在孵面积 });
return result;
}
//企业动态---------
async function qydt() {
let result = [];
let qydt = {
"本月新加入在孵企业": 0,
"同比上月": 0,
"环比去年": 0
}
let qydtList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, null);
//本月新加入在孵企业
let nowTime = moment().format('YYYY-MM-DD HH:mm:ss');
let monthAgo = moment().subtract(1, 'month').format('YYYY-MM-DD HH:mm:ss');
let monthAgoList = qydtList.filter(item => {
return moment(item.createTime) > moment(monthAgo) && moment(item.createTime) < moment(nowTime);
});
qydt.本月新加入在孵企业 = monthAgoList.length;
//同比上月
let monthAgo2 = moment().subtract(2, 'month').format('YYYY-MM-DD HH:mm:ss');
let monthAgo2List = qydtList.filter(item => {
return moment(item.createTime) > moment(monthAgo2) && moment(item.createTime) < moment(monthAgo);
});
qydt.同比上月 = monthAgoList.length - monthAgo2List.length;
//环比去年
let yearAgo = moment().subtract(1, 'year').format('YYYY-MM-DD HH:mm:ss');
let yearAgoList = qydtList.filter(item => {
return moment(item.createTime) > moment(yearAgo) && moment(item.createTime) < moment(monthAgo);
});
qydt.环比去年 = monthAgoList.length - yearAgoList.length;
result.push({ key: "本月新加入在孵企业", value: qydt.本月新加入在孵企业 });
result.push({ key: "同比上月", value: qydt.同比上月 });
result.push({ key: "环比去年", value: qydt.环比去年 });
return result;
}
async function zfqybhqs(data,在孵dbList) {
let 企业孵化信息List = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, null);
let result = [];
let year = ["2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024"];
let zfqybhqsData = {
"在孵企业": []
}
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;
});
zfqybhqsData.在孵企业.push({ key: year[i], value: count });
}
let zfqybhqs = getChart(zfqybhqsData);
function getChart(data) {
let result = [];
for (let key in data) {
result.push({ name: key, data: data[key] })
}
}
return result;
}
//总营收金额
async function zysje() {
let result = [];
let zysjeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, null);
//获取总营收金额
let zysje = 0;
zysjeList.forEach(item => {
zysje += parseFloat(item.totalRevenue);
});
result.push({ key: "总营收金额", value: zysje + "千万元" });
return result;
}
//在孵企业总营收
async function zfqyzys(在孵dbList: any[], jxgljsc: any, data: any[] = []) {
let result = [];
//在孵企业总营收
// let zfqyzys = getZfqyzys(在孵dbList);
// jxgljsc.zfqyzys.dataList = getKeyValue(zfqyzys);
let zfqyzys = {
"500万以下": 0,
"500万-1000万": 0,
"1000万-2000万": 0,
"2000万以上": 0
}
for (let i = 0; i < data.length; i++) {
//获取在孵企业经营数据
let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId }, null);
经营信息dbList.forEach(info => { //BI(单位万元)
if (info.BI < 500) zfqyzys["500万以下"] += 1;
else if (info.BI >= 500 && info.BI < 1000) zfqyzys["500万-1000万"] += 1;
else if (info.BI >= 1000 && info.BI < 2000) zfqyzys["1000万-2000万"] += 1;
else zfqyzys["2000万以上"] += 1;
})
}
// 将 zfqyzys 转换为键值对形式
result = getKeyValue(zfqyzys);
return result;
function getKeyValue(data) {
let result = [];
for (let key in data) {
result.push({ key, value: data[key] });
}
return result;
}
}
//投资类型
async function tzlx() {
let result = [];
let 融资dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, null);
//获取投资类型
let 投资类型 = {
"设备": 0,
"租金": 0,
"服务": 0,
"其他": 0
};
融资dbList.forEach(item => {
let type = item.type;
if (type === "设备") 投资类型.设备 += 1;
else if (type === "租金") 投资类型.租金 += 1;
else if (type === "服务") 投资类型.服务 += 1;
else 投资类型.其他 += 1;
});
result = getKeyValue(投资类型);
return result;
function getKeyValue(data) {
let result = [];
for (let key in data) {
result.push({ key, value: data[key] });
}
return result;
}
}
//在孵企业融资情况
async function zfqyrzqk() {
let result = [];
for (let key in FINANCINGROUNDS) {
let anyKey: any = key;
if (isNaN(anyKey)) {
let financingRounds = FINANCINGROUNDS[key];
let count = await selectData(OPERATIONALDATATYPE.查询数据量, TABLENAME.企业融资, {}, null);
result.push({ key: key, value: count })
}
}
return result;
}
//企业孵化率
async function qyfhl() {
let result = [];
let qyfhlList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, null);
//获取企业孵化率
let qyfhl = {
"企业孵化率": 0,
"环比去年孵化率": 0
};
let nowYear = new Date().getFullYear();
let lastYear = nowYear - 1;
for (let i = 0; i < qyfhlList.length; i++) {
let item = qyfhlList[i];
let endTime = new Date(item.endTime).getFullYear();
let startTime = new Date(item.startTime).getFullYear();
if (endTime === nowYear) {
qyfhl.企业孵化率 += 1;
if (startTime <= lastYear && endTime >= lastYear) {
qyfhl.环比去年孵化率 += 1;
}
}
}
result.push({ key: "企业孵化率", value: qyfhl.企业孵化率 });
result.push({ key: "环比去年孵化率", value: qyfhl.环比去年孵化率 });
return result;
}
//企业孵化数
async function qyfhs() {
let result = [];
let 企业孵化信息List = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, {}, null);
//获取企业孵化数
let qyfhs = {
"小巨人": 0,
"高企培育": 0,
"高新企业": 0,
"科技型中小企业": 0,
"专精特精": 0
};
let 企业资质List = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业资质, {}, null);
for (let i = 0; i < 企业孵化信息List.length; i++) {
let item = 企业孵化信息List[i];
let 企业资质dbList = 企业资质List.filter(q => q.eId === item.eId);
企业资质dbList.forEach(q => {
let 企业类型 = q.industry;
if (企业类型 === "小巨人") qyfhs.小巨人 += 1;
else if (企业类型 === "高企培育") qyfhs.高企培育 += 1;
else if (企业类型 === "高新企业") qyfhs.高新企业 += 1;
else if (企业类型 === "科技型中小企业") qyfhs.科技型中小企业 += 1;
else if (企业类型 === "专精特精") qyfhs.专精特精 += 1;
});
}
result.push({ key: "小巨人", value: qyfhs.小巨人 });
result.push({ key: "高企培育", value: qyfhs.高企培育 });
result.push({ key: "高新企业", value: qyfhs.高新企业 });
result.push({ key: "科技型中小企业", value: qyfhs.科技型中小企业 });
result.push({ key: "专精特精", value: qyfhs.专精特精 });
return result;
}
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