Commit e956cce0 by lixinming
parents 96cef49f ebeb7d76
......@@ -3,5 +3,6 @@
<dbPort>40012</dbPort>
<dbHost>192.168.0.105</dbHost>
<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://127.0.0.1:40015</imgPath>
</config>
import { getJxgljsc } from '../data/db/jxgljsc';
import { jxgljscTableData } from '../data/table/jxgljscData';
import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, tablePackage } from '../dataPackage/inFrontOut';
import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut } from '../dataPackage/out';
/* 绩效管理驾驶舱 */
export function getData(req, res) {
export async function getData(req, res) {
let dbList = await getJxgljsc();
let excelData = jxgljscTableData();
let ret:any = {};
......
......@@ -15,6 +15,109 @@ export async function getData(req, res) {
let ret:any = {};
let qyjbqkPackageData = keyValuePackage(dbData['企业基本情况'].dataList);
let qyjbqk = [];
qyjbqkPackageData.forEach( info => {
let {key, value} = info;
if (key == "企业图片") {
info.value = `${systemConfig.imgPath}/${value}`;
}
qyjbqk.push(info);
})
ret['qyjbqk'] = getKeyValueOut('企业基本情况', qyjbqk);
let qyjbsjPackageData = keyValuePackage(dbData['企业基本数据'].dataList, "false");
ret['qyjbsj'] = getKeyValueOut('企业基本数据', qyjbsjPackageData);
let qybqPackageData = stringListPackage(dbData['企业标签'].dataList);
ret['qybq'] = getStringOut('企业标签', qybqPackageData);
let zscqPackageData = keyValuePackage(dbData['知识产权'].dataList);
ret['zscq'] = getKeyValueOut('知识产权', zscqPackageData);
let qyyghxPackageData = keyValuePackage(dbData['企业员工画像'].dataList);
ret['qyyghx'] = getKeyValueOut('企业员工画像', qyyghxPackageData);
let lnrczpqkPackageData = onceYBarChartPackage( excelData['历年人才招聘情况'], '','');
ret['lnrczpqk'] = getOnceYBarChartOut('历年人才招聘情况', lnrczpqkPackageData);
let qyhzsjPackageData = keyValuePackage(dbData['企业汇总数据'].dataList);
ret['qyhzsj'] = getKeyValueOut('企业汇总数据', qyhzsjPackageData);
let xjrTableData = tablePackage(excelData["小巨人"].headerList[0], excelData["小巨人"].bodyList);
ret['xjr'] = getTableOut( '小巨人', xjrTableData);
let gxqyTableData = tablePackage(excelData["高新企业"].headerList[0], excelData["高新企业"].bodyList);
ret['gxqy'] = getTableOut( '高新企业', gxqyTableData);
let zjtxTableData = tablePackage(excelData["专精特新"].headerList[0], excelData["专精特新"].bodyList);
ret['zjtx'] = getTableOut( '专精特新', zjtxTableData);
let ysqkPackageData = keyValuePackage(dbData['营收情况'].dataList);
ret['ysqk'] = getKeyValueOut('营收情况', ysqkPackageData);
let ysbhqsPackageData = onceYBarChartPackage( dbData['营收变化趋势'], '','');
ret['ysbhqs'] = getOnceYBarChartOut('营收变化趋势', ysbhqsPackageData);
let qydtTableData = tablePackage(dbData["企业动态"].headerList[0], dbData["企业动态"].bodyList);
// let qydt = {dataList:[], titleList:qydtTableData.titleList};
// qydtTableData.dataList.forEach(info => {
// let {A} = info;
// let imgUrl = ;
// info["A"] = imgUrl;
// qydt.dataList.push(info);
// })
ret['qydt'] = getTableOut( '企业动态', qydtTableData);
let fwxqPackageData = keyValuePackage(dbData['服务需求'].dataList, "false");
ret['fwxq'] = getKeyValueOut('服务需求', fwxqPackageData);
let hdbhqsfxPackageData = onceYBarChartPackage( dbData['活动变化趋势分析'], '','');
ret['hdbhqsfx'] = getOnceYBarChartOut('活动变化趋势分析', hdbhqsfxPackageData);
let fwjl_kjfwTableData = tablePackage(dbData["服务记录_空间服务"].headerList[0], dbData["服务记录_空间服务"].bodyList);
ret['fwjl_kjfw'] = getTableOut( '服务记录_空间服务', fwjl_kjfwTableData);
let fwjl_gsfwTableData = tablePackage(dbData["服务记录_工商服务"].headerList[0], dbData["服务记录_工商服务"].bodyList);
ret['fwjl_gsfw'] = getTableOut( '服务记录_工商服务', fwjl_gsfwTableData);
let fwjl_rzfwTableData = tablePackage(dbData["服务记录_融资服务"].headerList[0], dbData["服务记录_融资服务"].bodyList);
ret['fwjl_rzfw'] = getTableOut( '服务记录_融资服务', fwjl_rzfwTableData);
let fwjlPackageData = keyValuePackage(dbData['服务记录'].dataList);
ret['fwjl'] = getKeyValueOut('服务记录', fwjlPackageData);
let yqtzPackageData = keyValuePackage(excelData['园区通知'].dataList);
ret['yqtz'] = getKeyValueOut('园区通知', yqtzPackageData);
let yqtzxqTableData = tablePackage(excelData["园区通知详情"].headerList[0], excelData["园区通知详情"].bodyList);
let yqtzxq = {dataList:[], titleList:yqtzxqTableData.titleList};
yqtzxqTableData.dataList.forEach(info => {
let {A} = info;
let imgUrl = `${systemConfig.imgPath}/${A}`;
info["A"] = imgUrl;
yqtzxq.dataList.push(info);
})
ret['yqtzxq'] = getTableOut( '园区通知详情', yqtzxq);
let yqhdPackageData = keyValuePackage(excelData['园区活动'].dataList);
ret['yqhd'] = getKeyValueOut('园区活动', yqhdPackageData);
let yqhdmxTableData = tablePackage(excelData["园区活动明细"].headerList[0], excelData["园区活动明细"].bodyList);
ret['yqhdmx'] = getTableOut( '园区活动明细', yqhdmxTableData);
res.send(ret);
}
export async function getData备份(req, res) {
let eId = req.body.eId;
let excelData = qyszhxTableData();
let ret:any = {};
let qyjbqkPackageData = keyValuePackage(excelData['企业基本情况'].dataList);
let qyjbqk = [];
qyjbqkPackageData.forEach( info => {
......
......@@ -282,7 +282,8 @@ export enum NEEDCATEGORY {
法律服务,
知识产权,
工商服务,
融资服务
融资服务,
空间服务
}
......
/**
* 绩效管理驾驶仓
*/
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;
}
import moment = require("moment");
export function getKeyValue(data) {
let result = [];
for (let key in data) {
result.push({key, value:data[key]});
}
return result;
}
export function getChart(data) {
let result = [];
for(let key in data) {
result.push({name:key, data:data[key]})
}
return result;
}
export function getMonthList() {
// 获取当前时间
const currentTime = moment();
// 获取6个月前的时间
const sixMonthsAgo = currentTime.clone().subtract(6, 'months');
// 创建一个数组来存储每个月份的第一天
const monthsArray = [];
// 使用moment的range函数(如果可用)或者手动循环来遍历月份
// 注意:moment.js的官方库中并没有直接的range函数用于月份遍历,
// 但我们可以使用.month()和.date(1)结合循环来实现。
// 由于moment没有内置的range函数用于月份,我们需要手动处理
let currentMonth = sixMonthsAgo.clone();
while (currentMonth.isBefore(currentTime) || currentMonth.isSame(currentTime, 'month')) {
// 获取当前循环月份的第一天
const firstDayOfMonth = currentMonth.clone().date(1);
// 将月份添加到数组中
monthsArray.push(moment(firstDayOfMonth.clone().toDate()).format("YYYY-MM")); // 如果你需要Date对象
// monthsArray.push(firstDayOfMonth.format('YYYY-MM-DD')); // 如果你需要格式化字符串
// 移动到下一个月
currentMonth.add(1, 'months');
}
return monthsArray;
}
export function getYearList() {
// 获取当前年份
const currentYear = new Date().getFullYear();
// 初始化一个空数组来存储年份
const years = [];
// 使用一个循环来添加当前年份到6年后的每一个年份到数组中
for (let i = 0; i <= 6; i++) {
years.push(currentYear + i);
}
return years;
}
......@@ -5,6 +5,7 @@
import moment = require("moment");
import { FUHUASTATE, INDUSTRY, MOVEOUTTYPE, OPERATIONALDATATYPE, STATE, TABLENAME } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData";
import { getChart, getKeyValue, getMonthList, getYearList } from "./out";
export async function getEnterprise() {
......@@ -301,7 +302,7 @@ function getQybhqk(data) {
* 企业变化情况——变化趋势
*/
function getQybhqkbhqs(data){
let year = ["2019", "2020", "2021", "2022", "2023", "2024"];
let year = getYearList();
let hbqs = {
"企业数":[]
}
......@@ -491,7 +492,7 @@ function getQyzzfl() {
* 企业人才
*/
async function getQyrc() {
let year = ["2019", "2020", "2021", "2022", "2023", "2024"];
let year = getYearList();
let qyrc = {
"就业人数":[],
"创业团队分布":[]
......@@ -514,56 +515,5 @@ async function getQyrc() {
}
function getKeyValue(data) {
let result = [];
for (let key in data) {
result.push({key, value:data[key]});
}
return result;
}
function getChart(data) {
let result = [];
for(let key in data) {
result.push({name:key, data:data[key]})
}
return result;
}
function getMonthList() {
// 获取当前时间
const currentTime = moment();
// 获取6个月前的时间
const sixMonthsAgo = currentTime.clone().subtract(6, 'months');
// 创建一个数组来存储每个月份的第一天
const monthsArray = [];
// 使用moment的range函数(如果可用)或者手动循环来遍历月份
// 注意:moment.js的官方库中并没有直接的range函数用于月份遍历,
// 但我们可以使用.month()和.date(1)结合循环来实现。
// 由于moment没有内置的range函数用于月份,我们需要手动处理
let currentMonth = sixMonthsAgo.clone();
while (currentMonth.isBefore(currentTime) || currentMonth.isSame(currentTime, 'month')) {
// 获取当前循环月份的第一天
const firstDayOfMonth = currentMonth.clone().date(1);
// 将月份添加到数组中
monthsArray.push(moment(firstDayOfMonth.clone().toDate()).format("YYYY-MM")); // 如果你需要Date对象
// monthsArray.push(firstDayOfMonth.format('YYYY-MM-DD')); // 如果你需要格式化字符串
// 移动到下一个月
currentMonth.add(1, 'months');
}
return monthsArray;
}
import { DEGREE, OPERATIONALDATATYPE, TABLENAME } from "../../config/enum";
import moment = require("moment");
import { AWARDLEVEL, DEGREE, FINANCINGROUNDS, NEEDCATEGORY, OPERATIONALDATATYPE, TABLENAME } from "../../config/enum";
import { selectData, selectManyTableData } from "./operationalData";
import { getChart, getKeyValue, getYearList } from "./out";
import { changeEnumValue } from "../../tools/eccEnum";
......@@ -22,8 +25,6 @@ export async function getQyszhx(eId) {
服务记录:{dataList:[], titleList:['key', 'value']},
}
let nowTime = new Date().valueOf();
/**数据库查询 */
let 企业基础信息 = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {eId}, null);
......@@ -50,6 +51,28 @@ export async function getQyszhx(eId) {
创业团队联查includeConf[TABLENAME.创业团队] = {cloum:创业团队Column, where:{}}
let 创业团队信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {eId}, [], 创业团队联查includeConf);
let 企业经营Column = ["mId", "eId", "annual", "BI", "TXP", "RD", "createTime", "state"];
let 企业经营联查includeConf = {};
企业经营联查includeConf[TABLENAME.企业经营信息] = {cloum:企业经营Column, where:{}}
let 企业经营信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {eId}, [], 企业经营联查includeConf);
let 企业荣誉Column = ["hId", "eId", "awardName", "awardingUnit", "awardTime", "awardLevel", "awardImg"];
let 企业荣誉联查includeConf = {};
企业荣誉联查includeConf[TABLENAME.企业荣誉] = {cloum:企业荣誉Column, where:{}}
let 企业荣誉信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {eId}, [], 企业荣誉联查includeConf);
let 企业融资Column = ["rId", "eId", "financingAmount", "financingRounds", "fuHuaQiInvestment", "fuHuaQiInvestmentStyle",
"fuHuaQiInvestmentAmount", "investmentDate", "investmentInstitutionsName", "valuation"];
let 企业融资联查includeConf = {};
企业融资联查includeConf[TABLENAME.企业融资] = {cloum:企业融资Column, where:{}}
let 企业融资信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {eId}, [], 企业融资联查includeConf);
let 企业服务Column = ["esId", "eId", "needCategory", "needContent", "applyTime", "followUpStatus", "resolveTime", "fangKui",
"shouLiTime", "outcome", "desc"];
let 企业服务联查includeConf = {};
企业服务联查includeConf[TABLENAME.企业服务表] = {cloum:企业服务Column, where:{}}
let 企业服务信息 = await selectManyTableData(OPERATIONALDATATYPE.多表联查, TABLENAME.企业基础信息表, {eId}, [], 企业服务联查includeConf);
//企业基本情况
let qyjbqk = {
企业介绍:企业基础信息.jianJie,
......@@ -59,13 +82,13 @@ export async function getQyszhx(eId) {
//企业基本数据
let qyjbsj = {
注册时间:企业基础信息.logonTime,
迁入时间:"",
首次入孵时间:企业孵化信息[0].enterprise_fuhuas.startTime
注册时间:moment(企业基础信息.logonTime).format("YYYY-MM-DD"),
迁入时间:"-",
首次入孵时间:moment(企业孵化信息[0].enterprise_fuhuas.startTime).format("YYYY-MM-DD")
};
qyszhx.企业基本数据.dataList = getKeyValue(qyjbsj);
//企业标签
//企业标签 todo
let qybq = {
}
......@@ -78,6 +101,45 @@ export async function getQyszhx(eId) {
let qyyghx = get企业员工画像(创业团队信息);
qyszhx.企业员工画像.dataList = getKeyValue(qyyghx);
//企业汇总数据
let qyhzsj = {
企业认证:0, //todo
一级专利:zscq.一级专利,
}
qyszhx.企业汇总数据.dataList = getKeyValue(qyhzsj);
//营收情况
let {ysqk, ysbhqs} = get营收情况(企业经营信息);
qyszhx.营收情况.dataList = getKeyValue(ysqk);
//营收变化趋势
qyszhx.营收变化趋势 = ysbhqs;
//企业动态
let qydt = get企业动态(企业荣誉信息);
qyszhx.企业动态.bodyList = qydt;
//服务需求
let fwxq = get服务需求(企业融资信息);
qyszhx.服务需求.dataList = getKeyValue(fwxq);
//活动变化趋势分析
let hdbhqsfx = get活动变化趋势分析(企业融资信息);
qyszhx.活动变化趋势分析 = hdbhqsfx;
//服务记录_空间服务
let fwjlxx = get服务记录(企业服务信息);
qyszhx.服务记录_空间服务.bodyList = fwjlxx.空间服务;
qyszhx.服务记录_工商服务.bodyList = fwjlxx.工商服务;
qyszhx.服务记录_融资服务.bodyList = fwjlxx.融资服务;
//服务记录
let fwjl = {
空间服务次数:fwjlxx.空间服务.length,
工商服务次数:fwjlxx.工商服务.length,
融资服务次数:fwjlxx.融资服务.length,
}
qyszhx.服务记录.dataList = getKeyValue(fwjl);
return qyszhx;
}
......@@ -92,10 +154,13 @@ function get知识产权(data) {
}
data.forEach( info => {
zscq.一级专利 += info.classIPatent;
zscq.二级专利 += info.secondClassPatent
zscq.三级专利 += info.thirdPentent;
zscq.海外专利 += info.alienPatent;
let {enterprise_patents} = info;
enterprise_patents.forEach( patents => {
zscq.一级专利 += patents.classIPatent;
zscq.二级专利 += patents.secondClassPatent
zscq.三级专利 += patents.thirdPentent;
zscq.海外专利 += patents.alienPatent;
})
})
return zscq;
......@@ -127,17 +192,167 @@ async function get企业员工画像(data) {
}
function get营收情况(data) {
let ysqk = {
累计营收:0,
累计研发投入:0,
累计纳税:0
}
let ysbhqsInfo = {
营业收入:[],
研发投入:[],
纳税金额:[],
}
let year = getYearList();
data.forEach( info => {
let {enterprise_manages} = info;
enterprise_manages.forEach( manage => {
ysqk.累计营收 += parseFloat(manage.BI);
ysqk.累计研发投入 += parseFloat(manage.RD);
ysqk.累计纳税 += parseFloat(manage.TXP);
})
})
for (let i = 0; i < year.length; i++) {
let 营业收入 = 0;
let 研发投入 = 0;
let 纳税金额 = 0;
data.forEach( info => {
let {enterprise_manages} = info;
enterprise_manages.forEach( manage => {
let thisAnnual = moment(manage.annual).year();
let thisYear = parseInt(year[i]);
if (thisAnnual === thisYear) {
营业收入 += parseFloat(manage.BI);
研发投入 += parseFloat(manage.RD);
纳税金额 += parseFloat(manage.TXP);
}
})
})
ysbhqsInfo.营业收入.push({key:year[i], value:营业收入});
ysbhqsInfo.研发投入.push({key:year[i], value:研发投入});
ysbhqsInfo.纳税金额.push({key:year[i], value:纳税金额});
}
let ysbhqs = getChart(ysbhqsInfo);
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);
qydt.push([awardImg[0], honors.awardName, honors.awardTime, honors.awardingUnit, awardLevel]);
})
})
return qydt;
}
function get服务需求(data) {
let newestFinancing:any = {};
data.forEach( info => {
let {enterprise_financings} = info;
let enterprise_financingsData = [];
enterprise_financings.forEach( financings => {
enterprise_financingsData.push({
financingAmount:financings.financingAmount,
financingRounds:financings.financingRounds,
investmentDate:new Date(financings.investmentDate).valueOf(),
investmentInstitutionsName:financings.investmentInstitutionsName
})
})
//获取最新时间的融资信息
enterprise_financingsData.sort( (a, b) => {
return b.investmentDate - a.investmentDate;
})
newestFinancing = enterprise_financingsData[0];
})
let fwxq = {
融资金额:newestFinancing.financingAmount,
融资轮次:changeEnumValue(FINANCINGROUNDS, newestFinancing.financingRounds),
融资时间:moment(newestFinancing.investmentDate).format("YYYY-MM-DD"),
投资机构:newestFinancing.investmentInstitutionsName
};
return fwxq;
}
function get活动变化趋势分析(data) {
let hdbhqsfxInfo = {
融资额:[],
融资事件:[],
}
let year = getYearList();
for (let i = 0; i < year.length; i++) {
let 融资额 = 0;
let 融资事件 = 0;
data.forEach( info => {
let {enterprise_financings} = info;
enterprise_financings.forEach( financings => {
let thisAnnual = moment(financings.investmentDate).year();
let thisYear = parseInt(year[i]);
if (thisAnnual === thisYear) {
融资额 += parseFloat(financings.financingAmount);
融资事件 += 1;
}
})
})
hdbhqsfxInfo.融资额.push({key:year[i], value:融资额});
hdbhqsfxInfo.融资事件.push({key:year[i], value:融资事件});
}
let hdbhqsfx = getChart(hdbhqsfxInfo);
return hdbhqsfx;
}
function getKeyValue(data) {
let result = [];
for (let key in data) {
result.push({key, value:data[key]});
function get服务记录(data) {
let fwjl = {
空间服务:[],
工商服务:[],
融资服务:[]
};
data.forEach( info => {
let {enterprise_services} = info;
enterprise_services.forEach( service => {
let needCategory = changeEnumValue(NEEDCATEGORY, service.needCategory);
if ( service.needCategory == NEEDCATEGORY.空间服务) {
fwjl.空间服务.push([needCategory, service.resolveTime, service.needContent])
} else if ( service.needCategory == NEEDCATEGORY.工商服务) {
fwjl.工商服务.push([needCategory, service.resolveTime, service.needContent])
} else if ( service.needCategory == NEEDCATEGORY.融资服务) {
fwjl.融资服务.push([needCategory, service.resolveTime, service.needContent])
}
})
})
return result;
return fwjl;
}
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