Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yuyiViewServer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
yuyiViewServer
Commits
fef13b2e
Commit
fef13b2e
authored
Feb 10, 2025
by
chenjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
7868a79e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
389 additions
and
43 deletions
+389
-43
error.2025-02-08.log.1
logs/error/error.2025-02-08.log.1
+4
-0
error.2025-02-08.log.2
logs/error/error.2025-02-08.log.2
+10
-0
error.2025-02-08.log.3
logs/error/error.2025-02-08.log.3
+10
-0
serverConfig.xml
serverConfig.xml
+1
-1
qyfw.ts
src/biz/qyfw.ts
+12
-8
enum.ts
src/config/enum.ts
+4
-3
qyfw.ts
src/data/db/qyfw.ts
+348
-31
No files found.
logs/error/error.2025-02-08.log.1
0 → 100644
View file @
fef13b2e
[2025-02-08T14:45:00.326] [ERROR] errorLogger - errorInfo => undefined |
[2025-02-08T14:45:03.933] [ERROR] errorLogger - errorInfo => undefined |
[2025-02-08T14:47:58.663] [ERROR] errorLogger - errorInfo => undefined |
[2025-02-08T14:49:41.989] [ERROR] errorLogger - errorInfo => undefined |
logs/error/error.2025-02-08.log.2
0 → 100644
View file @
fef13b2e
[2025-02-08T13:14:48.320] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:49.832] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:15:16.238] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:15:17.754] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:15:19.292] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:15:20.883] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:15:22.431] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:15:23.982] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T14:44:57.080] [ERROR] errorLogger - errorInfo => undefined |
[2025-02-08T14:44:58.712] [ERROR] errorLogger - errorInfo => undefined |
logs/error/error.2025-02-08.log.3
0 → 100644
View file @
fef13b2e
[2025-02-08T13:14:14.862] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:16.594] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:18.174] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:19.861] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:21.533] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:23.134] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:41.401] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:43.043] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:44.938] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
[2025-02-08T13:14:46.718] [ERROR] errorLogger - errorInfo => 数据联合查询失败 | undefined |
serverConfig.xml
View file @
fef13b2e
<config>
<config>
<port>
40015
</port>
<port>
40015
</port>
<dbPort>
40012
</dbPort>
<dbPort>
40012
</dbPort>
<dbHost>
1
27.0.0.1
</dbHost>
<dbHost>
1
92.168.0.105
</dbHost>
<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>
</config>
</config>
src/biz/qyfw.ts
View file @
fef13b2e
...
@@ -8,7 +8,8 @@ import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut
...
@@ -8,7 +8,8 @@ import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut
/* 企业服务 */
/* 企业服务 */
export
async
function
getData
(
req
,
res
)
{
export
async
function
getData
(
req
,
res
)
{
// let dbData = await getEnterprise();
let
dbData
=
await
getEnterprise
();
let
{
qyxqdtxx
}
=
dbData
;
let
excelData
=
qyfwTableData
();
let
excelData
=
qyfwTableData
();
let
ret
:
any
=
{};
let
ret
:
any
=
{};
...
@@ -34,14 +35,17 @@ export async function getData(req, res) {
...
@@ -34,14 +35,17 @@ export async function getData(req, res) {
let
qyxqdtPackageData
=
keyValuePackage
(
excelData
[
'企业需求动态'
].
dataList
);
let
qyxqdtPackageData
=
keyValuePackage
(
excelData
[
'企业需求动态'
].
dataList
);
ret
[
'qyxqdt'
]
=
getKeyValueOut
(
'企业需求动态'
,
qyxqdtPackageData
);
ret
[
'qyxqdt'
]
=
getKeyValueOut
(
'企业需求动态'
,
qyxqdtPackageData
);
let
qyxqdtxxTableData
=
tablePackage
(
excelData
[
"企业需求动态详细"
].
headerList
[
0
],
excelData
[
"企业需求动态详细"
].
bodyList
);
//
let qyxqdtxxTableData = tablePackage(excelData["企业需求动态详细"].headerList[0], excelData["企业需求动态详细"].bodyList);
let
itemDataList
=
[]
// let itemDataList = []
qyxqdtxxTableData
.
dataList
.
forEach
(
info
=>
{
// qyxqdtxxTableData.dataList.forEach(info => {
info
.
eId
=
"xxxx"
;
// info.eId = "xxxx";
itemDataList
.
push
(
info
);
// itemDataList.push(info);
});
// });
qyxqdtxxTableData
.
dataList
=
itemDataList
;
// qyxqdtxxTableData.dataList = itemDataList;
// ret['qyxqdtxx'] = getTableOut( '企业需求动态详细', qyxqdtxxTableData);
let
qyxqdtxxTableData
=
tablePackage
(
qyxqdtxx
.
headerList
[
0
],
qyxqdtxx
.
bodyList
);
ret
[
'qyxqdtxx'
]
=
getTableOut
(
'企业需求动态详细'
,
qyxqdtxxTableData
);
ret
[
'qyxqdtxx'
]
=
getTableOut
(
'企业需求动态详细'
,
qyxqdtxxTableData
);
let
dtTableData
=
tablePackage
(
excelData
[
"地图"
].
headerList
[
0
],
excelData
[
"地图"
].
bodyList
);
let
dtTableData
=
tablePackage
(
excelData
[
"地图"
].
headerList
[
0
],
excelData
[
"地图"
].
bodyList
);
...
...
src/config/enum.ts
View file @
fef13b2e
...
@@ -37,7 +37,8 @@ export enum TABLENAME {
...
@@ -37,7 +37,8 @@ export enum TABLENAME {
知识产权
=
'enterprise_ipr'
,
知识产权
=
'enterprise_ipr'
,
法人信息表
=
'enterprise_legal_person'
,
法人信息表
=
'enterprise_legal_person'
,
企业专利表
=
'enterprise_patent'
,
企业专利表
=
'enterprise_patent'
,
企业基础信息表
=
'enterprise'
企业基础信息表
=
'enterprise'
,
企业服务表
=
'enterprise_service'
,
}
}
...
@@ -178,9 +179,9 @@ export enum NEEDCATEGORY {
...
@@ -178,9 +179,9 @@ export enum NEEDCATEGORY {
/**
/**
* 跟进状态
* 跟进状态
*/
*/
export
enum
FOLLOWUPSTATUS
{
//
export enum FOLLOWUPSTATUS {
}
//
}
...
...
src/data/db/qyfw.ts
View file @
fef13b2e
...
@@ -3,17 +3,29 @@
...
@@ -3,17 +3,29 @@
*/
*/
import
moment
=
require
(
"moment"
);
import
moment
=
require
(
"moment"
);
import
{
FUHUASTATE
,
INDUSTRY
,
MOVEOUTTYPE
,
OPERATIONALDATATYPE
,
TABLENAME
}
from
"../../config/enum"
;
import
{
FUHUASTATE
,
INDUSTRY
,
MOVEOUTTYPE
,
OPERATIONALDATATYPE
,
STATE
,
TABLENAME
}
from
"../../config/enum"
;
import
{
selectData
,
selectManyTableData
}
from
"./operationalData"
;
import
{
selectData
,
selectManyTableData
}
from
"./operationalData"
;
export
async
function
getEnterprise
()
{
export
async
function
getEnterprise
()
{
let
qyfw
=
{
let
qyfw
=
{
qyjbqk
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
qyjbqk
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//企业基本情况
bhqsfx
:[],
bhqsfx
:[],
//变化趋势分析
rfscfb
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
rfscfb
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//入孵时长分布
fhqyhylyzb
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
fhqyhylyzb
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//孵化企业行业领域占比
qyrc
:[],
qyfwhzsj
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//企业服务汇总数据
qyxqdt
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//企业需求动态
qyxqdtxx
:{
bodyList
:[],
headerList
:[[
'企业名称'
,
'类型'
,
'eId'
]]},
//企业需求动态详细
qybhqk
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//企业变化情况
qybhqkbhqs
:[],
//企业变化情况——变化趋势
jrfw
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//金融服务
byrzqy
:[],
//本月融资企业
byrzje
:[],
//本月融资金额
zfqyzys
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//在孵企业总营收
jrfwqy
:{
bodyList
:[],
headerList
:[[
'企业名称'
,
'融资金额'
,
'融资时间'
]]},
//金融服务企业 todo
zscq
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//知识产权
zscqbt
:{
dataList
:[],
titleList
:[
'key'
,
'value'
]},
//知识产权饼图
}
}
let
nowTime
=
new
Date
().
valueOf
();
let
nowTime
=
new
Date
().
valueOf
();
...
@@ -47,7 +59,7 @@ export async function getEnterprise() {
...
@@ -47,7 +59,7 @@ export async function getEnterprise() {
let
孵化企业
dbList
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业孵化信息
,
{},
fhColumn
,
孵化企业
includeConf
);
let
孵化企业
dbList
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业孵化信息
,
{},
fhColumn
,
孵化企业
includeConf
);
qyjbqk
.
在孵企业
=
在孵
dbList
.
length
;
qyjbqk
.
在孵企业
=
在孵
dbList
.
length
;
qyjbqk
.
毕业企业
=
毕业
dbList
.
length
;
//
qyjbqk.毕业企业 = 毕业dbList.length;
qyfw
.
qyjbqk
.
dataList
=
getKeyValue
(
qyjbqk
);
qyfw
.
qyjbqk
.
dataList
=
getKeyValue
(
qyjbqk
);
...
@@ -68,8 +80,10 @@ export async function getEnterprise() {
...
@@ -68,8 +80,10 @@ export async function getEnterprise() {
];
];
fhdbList
.
forEach
(
item
=>
{
fhdbList
.
forEach
(
item
=>
{
})
})
//入孵时长分布
//入孵时长分布
// let rfscfb = getRfscfx(fhdbList);
let
rfscfb
=
getRfscfx
(
fhdbList
);
qyfw
.
rfscfb
.
dataList
=
getKeyValue
(
rfscfb
);
//孵化企业行业领域占比
//孵化企业行业领域占比
for
(
let
key
in
INDUSTRY
)
{
for
(
let
key
in
INDUSTRY
)
{
...
@@ -82,25 +96,52 @@ export async function getEnterprise() {
...
@@ -82,25 +96,52 @@ export async function getEnterprise() {
}
}
}
}
let
year
=
[
"2019"
,
"2020"
,
"2021"
,
"2022"
,
"2023"
,
"2024"
];
//企业服务汇总数据`
let
qyrc
=
{
let
qyfwhzsj
=
await
getQyfwhzsj
();
"就业人数"
:[],
qyfw
.
qyfwhzsj
.
dataList
=
getKeyValue
(
qyfwhzsj
);
"创业团队分布"
:[]
}
//企业需求动态
for
(
let
i
=
0
;
i
<
year
.
length
;
i
++
)
{
let
入孵申请
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业基础信息表
,
{
state
:
STATE
.
是
},
null
);
let
dbData
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,
{
annual
:
year
[
i
]},
null
);
let
企业服务
Count
=
await
selectData
(
OPERATIONALDATATYPE
.
查询数据量
,
TABLENAME
.
企业服务表
,
{},
null
);
let
count
=
0
;
let
{
qyxqdt
,
qyxqdtxx
}
=
await
getQyxqdt
(
入孵申请
dbList
,
企业服务
Count
);
dbData
.
forEach
(
info
=>
{
qyfw
.
qyxqdt
.
dataList
=
getKeyValue
(
qyxqdt
);
let
{
zhuanKe
,
benKe
,
yanJiuSheng
,
boShi
,
qiTa
}
=
info
;
//企业需求动态详细 上面3中汇总数据类型的所有企业列表,由于毕业认证企业取不到数据,只汇总入孵申请和企业需求数的企业列表
count
+=
zhuanKe
;
qyfw
.
qyxqdtxx
.
bodyList
=
qyxqdtxx
;
count
+=
benKe
;
count
+=
yanJiuSheng
;
count
+=
boShi
;
count
+=
qiTa
;
})
qyrc
[
"就业人数"
].
push
({
key
:
year
[
i
],
value
:
count
})
}
//企业变化情况
let
qybhqk
=
getQybhqk
(
在孵
dbList
);
qyfw
.
qybhqk
.
dataList
=
getKeyValue
(
qybhqk
);
//企业变化情况——变化趋势
let
qybhqkbhqs
=
getQybhqkbhqs
(
在孵
dbList
);
qyfw
.
qybhqkbhqs
=
qybhqkbhqs
;
let
企业融资
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业融资
,
{},
null
);
//金融服务
let
jrfw
=
getJrfw
(
在孵
dbList
,
企业融资
dbList
);
qyfw
.
jrfw
.
dataList
=
getKeyValue
(
jrfw
);
//本月融资企业
let
byrzqy
=
await
getByrzqy
(
企业融资
dbList
);
qyfw
.
byrzqy
=
byrzqy
.
byrzqybhqs
;
//本月融资金额
qyfw
.
byrzje
=
byrzqy
.
byrzjebhqs
;
//在孵企业总营收
let
zfqyzys
=
getZfqyzys
(
在孵
dbList
);
qyfw
.
zfqyzys
.
dataList
=
getKeyValue
(
zfqyzys
);
//金融服务企业
let
rzqylcColumn
=
[
"rId"
,
"eId"
,
"financingAmount"
,
"financingRounds"
,
"fuHuaQiInvestment"
,
"fuHuaQiInvestmentStyle"
,
"fuHuaQiInvestmentAmount"
,
"investmentDate"
,
"investmentInstitutionsName"
,
"valuation"
];
let
融资企业联查
includeConf
=
{};
let
融资企业联查
Clumn
=
[
"enterpriseName"
];
融资企业联查
includeConf
[
TABLENAME
.
企业基础信息表
]
=
{
cloum
:
融资企业联查
Clumn
,
where
:{}}
let
融资企业联查
dbList
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业孵化信息
,
{},
rzqylcColumn
,
融资企业联查
includeConf
);
let
jrfwqy
=
getJrfwqy
(
融资企业联查
dbList
);
//todo
return
qyfw
;
return
qyfw
;
}
}
...
@@ -110,8 +151,6 @@ export async function getEnterprise() {
...
@@ -110,8 +151,6 @@ export async function getEnterprise() {
* @param data
* @param data
*/
*/
function
getRfscfx
(
data
)
{
function
getRfscfx
(
data
)
{
let
nowTime
=
new
Date
().
valueOf
();
let
result
=
[];
let
rfscfx
=
{
let
rfscfx
=
{
"即将到期"
:
0
,
//3个月
"即将到期"
:
0
,
//3个月
"1年以内"
:
0
,
"1年以内"
:
0
,
...
@@ -120,19 +159,259 @@ function getRfscfx(data) {
...
@@ -120,19 +159,259 @@ function getRfscfx(data) {
"3-4年"
:
0
"3-4年"
:
0
};
};
let
nowTime
=
moment
();
data
.
forEach
(
item
=>
{
data
.
forEach
(
item
=>
{
let
endTimeYear
=
item
.
endTime
.
getFullYear
();
let
parsedEndTime
=
moment
(
item
.
endTime
);
//获取入孵结束时间
let
endTimeMonth
=
item
.
endTime
.
getMonth
();
let
monthDiff
=
parsedEndTime
.
diff
(
nowTime
,
'months'
);
if
(
monthDiff
>=
0
&&
monthDiff
<
3
)
rfscfx
.
即将到期
+=
1
;
else
if
(
monthDiff
>=
3
&&
monthDiff
<
12
)
rfscfx
[
"1年以内"
]
+=
1
;
else
if
(
monthDiff
>=
12
&&
monthDiff
<
24
)
rfscfx
[
"1-2年"
]
+=
1
;
else
if
(
monthDiff
>=
24
&&
monthDiff
<
36
)
rfscfx
[
"2-3年"
]
+=
1
;
else
if
(
monthDiff
>=
36
&&
monthDiff
<
48
)
rfscfx
[
"3-4年"
]
+=
1
;
})
return
rfscfx
;
}
/**
* 企业服务汇总数据
* @param data
*/
async
function
getQyfwhzsj
()
{
let
qyfwhzsj
=
{
"企业总营收额"
:
0
,
"企业纳税"
:
0
,
"融资企业"
:
0
,
"企业专利"
:
0
};
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{},
null
);
经营信息
dbList
.
forEach
(
info
=>
{
qyfwhzsj
.
企业总营收额
+=
info
.
BI
;
qyfwhzsj
.
企业纳税
+=
info
.
TXP
;
})
let
企业融资
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业融资
,
{},
null
);
企业融资
dbList
.
forEach
(
info
=>
{
qyfwhzsj
.
融资企业
+=
info
.
financingAmount
;
})
if
(
item
.
endTime
)
{}
let
企业专利
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业专利表
,
{},
null
);
企业专利
dbList
.
forEach
(
info
=>
{
qyfwhzsj
.
企业专利
+=
info
.
alienPatent
;
qyfwhzsj
.
企业专利
+=
info
.
classIPatent
;
qyfwhzsj
.
企业专利
+=
info
.
secondClassPatent
;
qyfwhzsj
.
企业专利
+=
info
.
thirdPentent
;
})
})
return
qyfwhzsj
;
}
}
/**
* 企业需求动态
*/
async
function
getQyxqdt
(
入孵申请
dbList
,
企业服务
Count
)
{
let
qyxqdt
=
{
入孵申请
:
0
,
毕业认证企业
:
0
,
企业需求数
:
0
}
qyxqdt
.
入孵申请
=
入孵申请
dbList
.
length
;
qyxqdt
.
企业需求数
=
企业服务
Count
;
let
qyxqdtxx
=
[];
入孵申请
dbList
.
forEach
(
info
=>
{
qyxqdtxx
.
push
([
info
.
enterpriseName
,
"入孵申请"
,
info
.
eId
]);
})
//获取所有企业服务表联查企业信息表
let
qyfwColumn
=
[
"esId"
,
"eId"
,
"needCategory"
,
"needContent"
];
let
企业服务
includeConf
=
{};
企业服务
includeConf
[
TABLENAME
.
企业基础信息表
]
=
{
cloum
:[
"enterpriseName"
],
where
:{}}
let
企业服务
dbList
=
await
selectManyTableData
(
OPERATIONALDATATYPE
.
多表联查
,
TABLENAME
.
企业服务表
,
{},
qyfwColumn
,
企业服务
includeConf
);
企业服务
dbList
.
forEach
(
info
=>
{
qyxqdtxx
.
push
([
info
.
enterprise
.
enterpriseName
,
"企业需求"
,
info
.
enterprise
.
eId
]);
})
return
{
qyxqdt
,
qyxqdtxx
};
}
/**
* 企业变化情况
* @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
getQybhqkbhqs
(
data
){
let
year
=
[
"2019"
,
"2020"
,
"2021"
,
"2022"
,
"2023"
,
"2024"
];
let
hbqs
=
{
"企业数"
:[]
}
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
;
})
hbqs
.
企业数
.
push
({
key
:
year
[
i
],
value
:
count
});
}
let
qybhqkbhqs
=
getChart
(
hbqs
);
return
qybhqkbhqs
;
}
/**
* 金融服务
*/
async
function
getJrfw
(
data
,
企业融资
dbList
)
{
let
jrfw
=
{
本月融资企业
:
0
,
本月融资金额
:
0
,
在孵企业总营收
:
0
}
let
nowTime
=
moment
();
企业融资
dbList
.
forEach
(
info
=>
{
let
parsedTime
=
moment
(
info
.
investmentDate
);
//获取融资时间
if
(
parsedTime
.
isValid
()
&&
parsedTime
.
month
()
===
nowTime
.
month
())
{
jrfw
.
本月融资企业
+=
1
;
jrfw
.
本月融资金额
+=
info
.
financingAmount
;
}
})
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
//获取在孵企业经营数据
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{
eId
:
data
[
i
].
eId
},
null
);
经营信息
dbList
.
forEach
(
info
=>
{
jrfw
.
在孵企业总营收
+=
info
.
BI
;
})
}
return
jrfw
;
}
/**
* 本月融资企业
* @param data
* @returns
*/
async
function
getByrzqy
(
企业融资
dbList
){
/**获取距离当前时间的前6个月 */
let
month
=
getMonthList
();
let
byrzqy
=
{
"融资企业"
:[]
}
let
byrzje
=
{
"融资金额"
:[]
}
for
(
let
i
=
0
;
i
<
month
.
length
;
i
++
)
{
let
企业
count
=
0
;
let
金额
count
=
0
;
企业融资
dbList
.
forEach
(
info
=>
{
let
parsedTime
=
moment
(
info
.
investmentDate
).
format
(
"YYYY-MM"
);
//获取融资时间
if
(
parsedTime
===
month
[
i
])
{
企业
count
+=
1
;
金额
count
+=
info
.
financingAmount
;
}
})
byrzqy
.
融资企业
.
push
({
key
:
month
[
i
],
value
:
企业
count
});
byrzje
.
融资金额
.
push
({
key
:
month
[
i
],
value
:
金额
count
});
}
let
byrzqybhqs
=
getChart
(
byrzqy
);
let
byrzjebhqs
=
getChart
(
byrzje
);
return
{
byrzqybhqs
,
byrzjebhqs
};
}
/**
* 在孵企业总营收
*/
async
function
getZfqyzys
(
data
)
{
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
;
})
}
return
zfqyzys
}
/**
* 金融服务企业
* @param data
*/
function
getJrfwqy
(
data
)
{
}
/**
* 企业人才
*/
async
function
getQyrc
()
{
let
year
=
[
"2019"
,
"2020"
,
"2021"
,
"2022"
,
"2023"
,
"2024"
];
let
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
})
}
return
qyrc
;
}
function
getKeyValue
(
data
)
{
function
getKeyValue
(
data
)
{
...
@@ -144,8 +423,46 @@ function getKeyValue(data) {
...
@@ -144,8 +423,46 @@ function getKeyValue(data) {
return
result
;
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
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment