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
e6628d8f
Commit
e6628d8f
authored
Apr 10, 2025
by
Zllgogo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
89c1bb28
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
344 additions
and
146 deletions
+344
-146
yuyiServer.xlsx
res/yuyiServer.xlsx
+0
-0
qyszhx.ts
src/biz/qyszhx.ts
+46
-59
zhyy.ts
src/biz/zhyy.ts
+6
-7
qyfw.ts
src/data/db/qyfw.ts
+61
-19
qyszhx.ts
src/data/db/qyszhx.ts
+136
-39
zhyy.ts
src/data/db/zhyy.ts
+77
-19
qyszhxData.ts
src/data/table/qyszhxData.ts
+18
-3
No files found.
res/yuyiServer.xlsx
View file @
e6628d8f
No preview for this file type
src/biz/qyszhx.ts
View file @
e6628d8f
import
{
qyszhxTableData
}
from
'../data/table/qyszhxData'
;
import
{
fxyjTableData
,
qyszhxTableData
}
from
'../data/table/qyszhxData'
;
import
{
doubleYBarCharPackage
,
keyValuePackage
,
onceYBarChartPackage
,
rankPackage
,
stringListPackage
,
tablePackage
}
from
'../dataPackage/inFrontOut'
;
import
{
getDoubleYBarChartOut
,
getKeyValueOut
,
getOnceYBarChartOut
,
getStringOut
,
getTableOut
}
from
'../dataPackage/out'
;
import
{
systemConfig
}
from
'../config/serverConfig'
;
...
...
@@ -12,8 +12,9 @@ export async function getData(req, res) {
let
dbData
=
await
getQyszhx
(
eId
);
let
excelData
=
qyszhxTableData
();
let
fxyjExcelData
=
fxyjTableData
();
let
ret
:
any
=
{};
let
ret
:
any
=
{};
let
qyjbqkPackageData
=
keyValuePackage
(
dbData
[
'企业基本情况'
].
dataList
);
// let qyjbqk = [];
...
...
@@ -53,11 +54,10 @@ export async function getData(req, res) {
let
xjrPackageData
=
keyValuePackage
(
dbData
[
'小巨人'
].
dataList
);
ret
[
'xjr'
]
=
getKeyValueOut
(
'小巨人'
,
xjrPackageData
);
let
zzrzPackageData
=
keyValuePackage
(
dbData
[
'资质认证'
].
dataList
);
ret
[
'zzrz'
]
=
getKeyValueOut
(
'资质认证'
,
zzrzPackageData
);
let
zzrzbhqsPackageData
=
onceYBarChartPackage
(
dbData
[
'资质认证变化趋势'
],
''
,
''
);
//新增
let
zzrzbhqsPackageData
=
onceYBarChartPackage
(
dbData
[
'资质认证变化趋势'
],
''
,
''
);
//新增
ret
[
'zzrzbhqs'
]
=
getOnceYBarChartOut
(
'资质认证变化趋势'
,
zzrzbhqsPackageData
);
let
zscqPackageData
=
keyValuePackage
(
dbData
[
'知识产权'
].
dataList
);
...
...
@@ -66,7 +66,7 @@ export async function getData(req, res) {
let
qyyghxPackageData
=
keyValuePackage
(
dbData
[
'企业员工画像'
].
dataList
);
ret
[
'qyyghx'
]
=
getKeyValueOut
(
'企业员工画像'
,
qyyghxPackageData
);
let
lnrczpqkPackageData
=
onceYBarChartPackage
(
dbData
[
'历年人才招聘情况'
],
''
,
''
);
let
lnrczpqkPackageData
=
onceYBarChartPackage
(
dbData
[
'历年人才招聘情况'
],
''
,
''
);
ret
[
'lnrczpqk'
]
=
getOnceYBarChartOut
(
'历年人才招聘情况'
,
lnrczpqkPackageData
);
let
qyhzsjPackageData
=
keyValuePackage
(
dbData
[
'企业汇总数据'
].
dataList
);
...
...
@@ -84,67 +84,53 @@ export async function getData(req, res) {
let
ysqkPackageData
=
keyValuePackage
(
dbData
[
'营收情况'
].
dataList
);
ret
[
'ysqk'
]
=
getKeyValueOut
(
'营收情况'
,
ysqkPackageData
);
let
ysbhqsPackageData
=
onceYBarChartPackage
(
dbData
[
'营收变化趋势'
],
''
,
''
);
let
ysbhqsPackageData
=
onceYBarChartPackage
(
dbData
[
'营收变化趋势'
],
''
,
''
);
ret
[
'ysbhqs'
]
=
getOnceYBarChartOut
(
'营收变化趋势'
,
ysbhqsPackageData
);
let
qydtTableData
=
tablePackage
(
dbData
[
"企业动态"
].
headerList
[
0
],
dbData
[
"企业动态"
].
bodyList
);
let
qydt
=
{
dataList
:[],
titleList
:
qydtTableData
.
titleList
};
let
qydt
=
{
dataList
:
[],
titleList
:
qydtTableData
.
titleList
};
// qydtTableData.dataList.forEach(info => {
// let {A} = info;
// let imgUrl = JSON.parse(A);
// info["A"] = imgUrl[0];
// qydt.dataList.push(info);
// })
ret
[
'qydt'
]
=
getTableOut
(
'企业动态'
,
qydtTableData
);
ret
[
'qydt'
]
=
getTableOut
(
'企业动态'
,
qydtTableData
);
let
fxyjTableData
=
tablePackage
(
excelData
[
"风险预警"
].
headerList
[
0
],
excelData
[
"风险预警"
].
bodyList
);
ret
[
'fxyj'
]
=
getTableOut
(
'风险预警'
,
fxyjTableData
);
let
fxyjInfo
=
{};
fxyjExcelData
[
'风险预警'
].
dataList
.
forEach
(
info
=>
{
let
{
key
,
value
}
=
info
;
fxyjInfo
[
key
]
=
info
;
})
let
qymc
=
dbData
[
'企业名称'
].
dataList
[
0
].
value
;
ret
[
'fxyj'
]
=
{
title
:
"风险预警"
,
dataList
:
fxyjInfo
[
qymc
]?
[
fxyjInfo
[
qymc
]]
:
[]};
let
fwxqPackageData
=
keyValuePackage
(
dbData
[
'服务需求'
].
dataList
,
"false"
);
ret
[
'fwxq'
]
=
getKeyValueOut
(
'服务需求'
,
fwxqPackageData
);
let
hdbhqsfxPackageData
=
onceYBarChartPackage
(
dbData
[
'活动变化趋势分析'
],
''
,
''
);
let
hdbhqsfxPackageData
=
onceYBarChartPackage
(
dbData
[
'活动变化趋势分析'
],
''
,
''
);
ret
[
'hdbhqsfx'
]
=
getOnceYBarChartOut
(
'活动变化趋势分析'
,
hdbhqsfxPackageData
);
// let ryzzPackageData = tablePackage(excelData["荣誉资质"].headerList[0], excelData["荣誉资质"].bodyList);
// let ryzz = {dataList:[]};
// yqtzxqTableData.dataList.forEach(info => {
// let {A} = info;
// let imgUrl = `${systemConfig.imgPath}/${A}`;
// info["A"] = imgUrl;
// ryzz.dataList.push(info);
// })
// ret['ryzz'] = getTableOut( '荣誉资质', ryzzPackageData);
let
ryzzPackageData
=
keyValuePackage
(
excelData
[
'荣誉资质'
].
dataList
);
let
ryzz
=
[];
ryzzPackageData
.
forEach
(
info
=>
{
let
{
key
,
value
}
=
info
;
info
.
value
=
`
${
systemConfig
.
imgPath
}
/
${
value
}
`
;
ryzz
.
push
(
info
);
})
ret
[
'ryzz'
]
=
getKeyValueOut
(
'荣誉资质'
,
ryzz
);
// let ryzzPackageData = keyValuePackage(dbData['荣誉资质'].dataList);
// let ryzzPackageData = keyValuePackage(excelData['荣誉资质'].dataList);
// let ryzz = [];
// ryzzPackageData.forEach( info => {
// let {key, value} = info;
// if (key == "荣誉资质图片") {
// ryzzPackageData.forEach(info => {
// let { key, value } = info;
// info.value = `${systemConfig.imgPath}/${value}`;
// }
// ryzz.push(info);
// })
// ret['ryzz'] = getKeyValueOut('荣誉资质', ryzz);
let
ryzztp
=
dbData
[
"荣誉资质图片"
];
ret
[
'ryzztp'
]
=
{
title
:
"荣誉资质图片"
,
dataList
:
ryzztp
};
let
fwjl_kjfwTableData
=
tablePackage
(
dbData
[
"服务记录_空间服务"
].
headerList
[
0
],
dbData
[
"服务记录_空间服务"
].
bodyList
);
ret
[
'fwjl_kjfw'
]
=
getTableOut
(
'服务记录_空间服务'
,
fwjl_kjfwTableData
);
ret
[
'fwjl_kjfw'
]
=
getTableOut
(
'服务记录_空间服务'
,
fwjl_kjfwTableData
);
let
fwjl_gsfwTableData
=
tablePackage
(
dbData
[
"服务记录_工商服务"
].
headerList
[
0
],
dbData
[
"服务记录_工商服务"
].
bodyList
);
ret
[
'fwjl_gsfw'
]
=
getTableOut
(
'服务记录_工商服务'
,
fwjl_gsfwTableData
);
ret
[
'fwjl_gsfw'
]
=
getTableOut
(
'服务记录_工商服务'
,
fwjl_gsfwTableData
);
let
fwjl_rzfwTableData
=
tablePackage
(
dbData
[
"服务记录_融资服务"
].
headerList
[
0
],
dbData
[
"服务记录_融资服务"
].
bodyList
);
ret
[
'fwjl_rzfw'
]
=
getTableOut
(
'服务记录_融资服务'
,
fwjl_rzfwTableData
);
ret
[
'fwjl_rzfw'
]
=
getTableOut
(
'服务记录_融资服务'
,
fwjl_rzfwTableData
);
let
fwjlPackageData
=
keyValuePackage
(
dbData
[
'服务记录'
].
dataList
);
ret
[
'fwjl'
]
=
getKeyValueOut
(
'服务记录'
,
fwjlPackageData
);
...
...
@@ -160,13 +146,13 @@ export async function getData(req, res) {
// info["A"] = imgUrl;
// yqtzxq.dataList.push(info);
// })
ret
[
'yqtzxq'
]
=
getTableOut
(
'园区通知详情'
,
yqtzxqTableData
);
ret
[
'yqtzxq'
]
=
getTableOut
(
'园区通知详情'
,
yqtzxqTableData
);
let
yqhdPackageData
=
keyValuePackage
(
excelData
[
'园区活动'
].
dataList
);
ret
[
'yqhd'
]
=
getKeyValueOut
(
'园区活动'
,
yqhdPackageData
);
let
yqhdmxTableData
=
tablePackage
(
excelData
[
"园区活动明细"
].
headerList
[
0
],
excelData
[
"园区活动明细"
].
bodyList
);
ret
[
'yqhdmx'
]
=
getTableOut
(
'园区活动明细'
,
yqhdmxTableData
);
ret
[
'yqhdmx'
]
=
getTableOut
(
'园区活动明细'
,
yqhdmxTableData
);
res
.
send
(
ret
);
...
...
@@ -179,12 +165,12 @@ export async function getData备份(req, res) {
let
excelData
=
qyszhxTableData
();
let
ret
:
any
=
{};
let
ret
:
any
=
{};
let
qyjbqkPackageData
=
keyValuePackage
(
excelData
[
'企业基本情况'
].
dataList
);
let
qyjbqk
=
[];
qyjbqkPackageData
.
forEach
(
info
=>
{
let
{
key
,
value
}
=
info
;
qyjbqkPackageData
.
forEach
(
info
=>
{
let
{
key
,
value
}
=
info
;
if
(
key
==
"企业图片"
)
{
info
.
value
=
`
${
systemConfig
.
imgPath
}
/
${
value
}
`
;
}
...
...
@@ -204,51 +190,51 @@ export async function getData备份(req, res) {
let
qyyghxPackageData
=
keyValuePackage
(
excelData
[
'企业员工画像'
].
dataList
);
ret
[
'qyyghx'
]
=
getKeyValueOut
(
'企业员工画像'
,
qyyghxPackageData
);
let
lnrczpqkPackageData
=
onceYBarChartPackage
(
excelData
[
'历年人才招聘情况'
],
''
,
''
);
let
lnrczpqkPackageData
=
onceYBarChartPackage
(
excelData
[
'历年人才招聘情况'
],
''
,
''
);
ret
[
'lnrczpqk'
]
=
getOnceYBarChartOut
(
'历年人才招聘情况'
,
lnrczpqkPackageData
);
let
qyhzsjPackageData
=
keyValuePackage
(
excelData
[
'企业汇总数据'
].
dataList
);
ret
[
'qyhzsj'
]
=
getKeyValueOut
(
'企业汇总数据'
,
qyhzsjPackageData
);
let
xjrTableData
=
tablePackage
(
excelData
[
"小巨人"
].
headerList
[
0
],
excelData
[
"小巨人"
].
bodyList
);
ret
[
'xjr'
]
=
getTableOut
(
'小巨人'
,
xjrTableData
);
ret
[
'xjr'
]
=
getTableOut
(
'小巨人'
,
xjrTableData
);
let
gxqyTableData
=
tablePackage
(
excelData
[
"高新企业"
].
headerList
[
0
],
excelData
[
"高新企业"
].
bodyList
);
ret
[
'gxqy'
]
=
getTableOut
(
'高新企业'
,
gxqyTableData
);
ret
[
'gxqy'
]
=
getTableOut
(
'高新企业'
,
gxqyTableData
);
let
zjtxTableData
=
tablePackage
(
excelData
[
"专精特新"
].
headerList
[
0
],
excelData
[
"专精特新"
].
bodyList
);
ret
[
'zjtx'
]
=
getTableOut
(
'专精特新'
,
zjtxTableData
);
ret
[
'zjtx'
]
=
getTableOut
(
'专精特新'
,
zjtxTableData
);
let
ysqkPackageData
=
keyValuePackage
(
excelData
[
'营收情况'
].
dataList
);
ret
[
'ysqk'
]
=
getKeyValueOut
(
'营收情况'
,
ysqkPackageData
);
let
ysbhqsPackageData
=
onceYBarChartPackage
(
excelData
[
'营收变化趋势'
],
''
,
''
);
let
ysbhqsPackageData
=
onceYBarChartPackage
(
excelData
[
'营收变化趋势'
],
''
,
''
);
ret
[
'ysbhqs'
]
=
getOnceYBarChartOut
(
'营收变化趋势'
,
ysbhqsPackageData
);
let
qydtTableData
=
tablePackage
(
excelData
[
"企业动态"
].
headerList
[
0
],
excelData
[
"企业动态"
].
bodyList
);
let
qydt
=
{
dataList
:[],
titleList
:
qydtTableData
.
titleList
};
let
qydt
=
{
dataList
:
[],
titleList
:
qydtTableData
.
titleList
};
qydtTableData
.
dataList
.
forEach
(
info
=>
{
let
{
A
}
=
info
;
let
{
A
}
=
info
;
let
imgUrl
=
`
${
systemConfig
.
imgPath
}
/
${
A
}
`
;
info
[
"A"
]
=
imgUrl
;
qydt
.
dataList
.
push
(
info
);
})
ret
[
'qydt'
]
=
getTableOut
(
'企业动态'
,
qydt
);
ret
[
'qydt'
]
=
getTableOut
(
'企业动态'
,
qydt
);
let
fwxqPackageData
=
keyValuePackage
(
excelData
[
'服务需求'
].
dataList
,
"false"
);
ret
[
'fwxq'
]
=
getKeyValueOut
(
'服务需求'
,
fwxqPackageData
);
let
hdbhqsfxPackageData
=
onceYBarChartPackage
(
excelData
[
'活动变化趋势分析'
],
''
,
''
);
let
hdbhqsfxPackageData
=
onceYBarChartPackage
(
excelData
[
'活动变化趋势分析'
],
''
,
''
);
ret
[
'hdbhqsfx'
]
=
getOnceYBarChartOut
(
'活动变化趋势分析'
,
hdbhqsfxPackageData
);
let
fwjl_kjfwTableData
=
tablePackage
(
excelData
[
"服务记录_空间服务"
].
headerList
[
0
],
excelData
[
"服务记录_空间服务"
].
bodyList
);
ret
[
'fwjl_kjfw'
]
=
getTableOut
(
'服务记录_空间服务'
,
fwjl_kjfwTableData
);
ret
[
'fwjl_kjfw'
]
=
getTableOut
(
'服务记录_空间服务'
,
fwjl_kjfwTableData
);
let
fwjl_gsfwTableData
=
tablePackage
(
excelData
[
"服务记录_工商服务"
].
headerList
[
0
],
excelData
[
"服务记录_工商服务"
].
bodyList
);
ret
[
'fwjl_gsfw'
]
=
getTableOut
(
'服务记录_工商服务'
,
fwjl_gsfwTableData
);
ret
[
'fwjl_gsfw'
]
=
getTableOut
(
'服务记录_工商服务'
,
fwjl_gsfwTableData
);
let
fwjl_rzfwTableData
=
tablePackage
(
excelData
[
"服务记录_融资服务"
].
headerList
[
0
],
excelData
[
"服务记录_融资服务"
].
bodyList
);
ret
[
'fwjl_rzfw'
]
=
getTableOut
(
'服务记录_融资服务'
,
fwjl_rzfwTableData
);
ret
[
'fwjl_rzfw'
]
=
getTableOut
(
'服务记录_融资服务'
,
fwjl_rzfwTableData
);
let
fwjlPackageData
=
keyValuePackage
(
excelData
[
'服务记录'
].
dataList
);
ret
[
'fwjl'
]
=
getKeyValueOut
(
'服务记录'
,
fwjlPackageData
);
...
...
@@ -257,20 +243,20 @@ export async function getData备份(req, res) {
ret
[
'yqtz'
]
=
getKeyValueOut
(
'园区通知'
,
yqtzPackageData
);
let
yqtzxqTableData
=
tablePackage
(
excelData
[
"园区通知详情"
].
headerList
[
0
],
excelData
[
"园区通知详情"
].
bodyList
);
let
yqtzxq
=
{
dataList
:[],
titleList
:
yqtzxqTableData
.
titleList
};
let
yqtzxq
=
{
dataList
:
[],
titleList
:
yqtzxqTableData
.
titleList
};
yqtzxqTableData
.
dataList
.
forEach
(
info
=>
{
let
{
A
}
=
info
;
let
{
A
}
=
info
;
let
imgUrl
=
`
${
systemConfig
.
imgPath
}
/
${
A
}
`
;
info
[
"A"
]
=
imgUrl
;
yqtzxq
.
dataList
.
push
(
info
);
})
ret
[
'yqtzxq'
]
=
getTableOut
(
'园区通知详情'
,
yqtzxq
);
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
);
ret
[
'yqhdmx'
]
=
getTableOut
(
'园区活动明细'
,
yqhdmxTableData
);
res
.
send
(
ret
);
}
\ No newline at end of file
src/biz/zhyy.ts
View file @
e6628d8f
...
...
@@ -46,12 +46,12 @@ export async function getData(req, res) {
let
ryzzPackageData
=
keyValuePackage
(
dbData
[
'荣誉资质'
].
dataList
);
ret
[
'ryzz'
]
=
getKeyValueOut
(
'荣誉资质'
,
ryzzPackageData
);
let
ryzztp
=
dbData
[
"荣誉资质图片"
];
// let ryzztpList = [];
// for (let i = 0; i < ryzztp.length; i++) {
// ryzztpList.push(`${systemConfig.imgPath}/${ryzztp[i][0]}`);//systemConfig.imgFileUrl = imgFileUrl[0];
// }
ret
[
'ryzztp'
]
=
{
title
:
"荣誉资质图片"
,
dataList
:
ryzztp
};
//
let ryzztp = dbData["荣誉资质图片"];
//
//
let ryzztpList = [];
//
//
for (let i = 0; i < ryzztp.length; i++) {
//
//
ryzztpList.push(`${systemConfig.imgPath}/${ryzztp[i][0]}`);//systemConfig.imgFileUrl = imgFileUrl[0];
//
//
}
//
ret['ryzztp'] = { title: "荣誉资质图片", dataList: ryzztp };
let
zhyyhzsjPackageData
=
keyValuePackage
(
dbData
[
'智慧运营汇总数据'
].
dataList
);
ret
[
'zhyyhzsj'
]
=
getKeyValueOut
(
'智慧运营汇总数据'
,
zhyyhzsjPackageData
);
...
...
@@ -71,7 +71,6 @@ export async function getData(req, res) {
let
jyfxPackageData
=
keyValuePackage
(
dbData
[
'就业分析'
].
dataList
);
ret
[
'jyfx'
]
=
getKeyValueOut
(
'就业分析'
,
jyfxPackageData
);
let
jdjyrsqsfxPackageData
=
onceYBarChartPackage
(
dbData
[
'年度就业人数趋势分析'
],
''
,
''
);
ret
[
'jdjyrsqsfx'
]
=
getOnceYBarChartOut
(
'年度就业人数趋势分析'
,
jdjyrsqsfxPackageData
);
...
...
src/data/db/qyfw.ts
View file @
e6628d8f
...
...
@@ -60,12 +60,14 @@ export async function getEnterprise() {
let
fhdbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
{},
fhColumn
);
//获取在孵企业
// let 在孵dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "endTime": { "%gt%": nowTime } }, fhColumn);
let
在孵
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
{},
fhColumn
);
let
在孵
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
{
state
:
{
"%ne%"
:
FUHUASTATE
.
迁出
}},
fhColumn
);
//获取毕业企业
// let 毕业dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业孵化信息, { "moveOutType": MOVEOUTTYPE.毕业迁出 }, fhColumn);
let
毕业
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
{
"moveOutType"
:
EMIGRATIONTYPE
.
毕业迁出
},
fhColumn
);
let
迁出
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业孵化信息
,
{},
fhColumn
);
//获取所有企业孵化表联查企业信息表
let
孵化企业
includeConf
=
{};
let
孵化企业
Clumn
=
[
"enterpriseName"
,
"industry"
];
...
...
@@ -79,7 +81,7 @@ export async function getEnterprise() {
//变化趋势分析 //todo 需要日志表
// getBhqsfx(fhdbList);
let
在孵企业变化趋势
=
getZfqy
(
在孵
dbList
);
let
在孵企业变化趋势
=
getZfqy
(
在孵
dbList
,
毕业
dbList
);
qyfw
.
变化趋势分析
=
getChart
(
在孵企业变化趋势
);
//入孵时长分布
...
...
@@ -125,7 +127,7 @@ export async function getEnterprise() {
qyfw
.
企业需求动态详细
.
bodyList
=
qyxqdtxx
;
//企业变化情况
let
qybhqk
=
getQybhqk
(
在孵
dbList
);
let
qybhqk
=
getQybhqk
(
在孵
dbList
,
迁出
dbList
);
qyfw
.
企业变化情况
.
dataList
=
getKeyValue
(
qybhqk
);
//企业变化情况——变化趋势
...
...
@@ -320,7 +322,7 @@ function getBhqsfx(data) {
// return bhqsfx;
// }
function
getZfqy
(
data
)
{
function
getZfqy
(
在孵
dbList
,
毕业
dbList
)
{
let
year
=
getYearList
();
let
bhqsfx
=
{
"在孵"
:
[],
...
...
@@ -333,7 +335,7 @@ function getZfqy(data) {
bhqsfx
.
毕业
.
push
({
key
:
year
[
i
],
value
:
0
});
}
data
.
forEach
(
info
=>
{
在孵
dbList
.
forEach
(
info
=>
{
let
startTimeYear
=
moment
(
info
.
startTime
).
year
();
// 获取入孵开始时间
let
endTimeYear
=
moment
(
info
.
endTime
).
year
();
// 获取入孵结束时间
let
moveOutType
=
info
.
moveOutType
;
...
...
@@ -346,10 +348,27 @@ function getZfqy(data) {
}
}
// // 统计毕业企业
// if (moveOutType === EMIGRATIONTYPE.毕业迁出) {
// for (let i = 0; i < year.length; i++) {
// if (parseInt(year[i]) === startTimeYear) {
// bhqsfx.毕业[i].value += 1;
// break;
// }
// }
// }
});
毕业
dbList
.
forEach
(
info
=>
{
let
startTimeYear
=
moment
(
info
.
startTime
).
year
();
// 获取入孵开始时间
let
endTimeYear
=
moment
(
info
.
endTime
).
year
();
// 获取入孵结束时间
let
moveOutType
=
info
.
moveOutType
;
// 统计毕业企业
if
(
moveOutType
===
EMIGRATIONTYPE
.
毕业迁出
)
{
for
(
let
i
=
0
;
i
<
year
.
length
;
i
++
)
{
if
(
parseInt
(
year
[
i
])
===
end
TimeYear
)
{
if
(
parseInt
(
year
[
i
])
===
start
TimeYear
)
{
bhqsfx
.
毕业
[
i
].
value
+=
1
;
break
;
}
...
...
@@ -377,9 +396,9 @@ function getRfscfx(data) {
let
nowTime
=
moment
();
data
.
forEach
(
item
=>
{
let
parsedEndTime
=
moment
(
item
.
endTime
);
//获取入孵结束时间
let
monthDiff
=
parsedEndTime
.
diff
(
nowTime
,
'months'
);
if
(
monthDiff
>=
0
&&
monthDiff
<
3
)
rfscfx
.
即将到期
+=
1
;
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
;
...
...
@@ -398,8 +417,8 @@ async function getQyfwhzsj() {
let
qyfwhzsj
=
{
"企业总营收额"
:
0
,
"企业纳税"
:
0
,
"融资企业"
:
0
,
"企业专利"
:
0
"融资企业"
:
""
,
"企业专利"
:
0
,
};
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{},
null
);
经营信息
dbList
.
forEach
(
info
=>
{
...
...
@@ -408,17 +427,28 @@ async function getQyfwhzsj() {
})
let
企业融资
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业融资
,
{},
null
);
企业融资
dbList
.
forEach
(
info
=>
{
qyfwhzsj
.
融资企业
=
`
${
企业融资
dbList
.
length
}
家`
;
// 保持原逻辑
// 企业融资dbList.forEach(info => {
// qyfwhzsj.融资企业 += parseInt(info.financingAmount);
qyfwhzsj
.
融资企业
+=
1
;
// 累加融资企业数量
})
//
qyfwhzsj.融资企业 += 1;// 累加融资企业数量
//
})
let
企业专利
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
知识产权
,
{},
null
);
企业专利
dbList
.
forEach
(
info
=>
{
qyfwhzsj
.
企业专利
+=
parseInt
(
info
.
number
||
0
);
})
return
qyfwhzsj
;
// return qyfwhzsj;
// 格式化输出(不改变原始数据类型)
return
{
...
qyfwhzsj
,
"企业总营收额"
:
`
${
qyfwhzsj
.
企业总营收额
}
万`
,
// 添加带单位的字段
"企业纳税"
:
`
${
qyfwhzsj
.
企业纳税
}
万`
,
// 添加带单位的字段
"企业专利"
:
`
${
qyfwhzsj
.
企业专利
}
个`
// 添加带单位的字段
};
}
...
...
@@ -474,14 +504,14 @@ async function getQyxqdt(入孵申请dbList, 企业服务Count) {
// return qybhqk;
// }
function
getQybhqk
(
data
)
{
function
getQybhqk
(
在孵
dbList
,
迁出
dbList
)
{
let
qybhqk
=
{
新增企业
:
0
,
// 统计当前年份入孵企业
迁出企业
:
0
// 统计当前年份迁出企业
}
let
nowTime
=
moment
();
data
.
forEach
(
info
=>
{
在孵
dbList
.
forEach
(
info
=>
{
let
parsedStartTime
=
moment
(
info
.
startTime
);
// 获取入孵开始时间
let
parsedMoveOutTime
=
moment
(
info
.
moveOutTime
);
// 获取迁出时间
...
...
@@ -491,11 +521,21 @@ function getQybhqk(data) {
}
// 检查迁出时间的年份是否与当前年份相同
// if (parsedMoveOutTime.isValid() && parsedMoveOutTime.year() === nowTime.year()) {
// qybhqk.迁出企业 += 1;
// }
})
迁出
dbList
.
forEach
(
info
=>
{
let
parsedMoveOutTime
=
moment
(
info
.
moveOutTime
);
// 获取迁出时间
// 检查迁出时间的年份是否与当前年份相同
if
(
parsedMoveOutTime
.
isValid
()
&&
parsedMoveOutTime
.
year
()
===
nowTime
.
year
())
{
qybhqk
.
迁出企业
+=
1
;
}
})
return
qybhqk
;
}
...
...
@@ -547,7 +587,8 @@ async function getJrfw(data, 企业融资dbList) {
jrfw
.
本月融资金额
=
Math
.
round
((
jrfw
.
本月融资金额
)
*
100
)
/
100
;
//单位换算成万亿
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
//获取在孵企业经营数据
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{
eId
:
data
[
i
].
eId
},
null
);
// let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId}, null);
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{},
null
);
经营信息
dbList
.
forEach
(
info
=>
{
jrfw
.
在孵企业总营收
+=
parseFloat
(
info
.
BI
);
})
...
...
@@ -607,7 +648,8 @@ async function getZfqyzys(data) {
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
//获取在孵企业经营数据
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{
eId
:
data
[
i
].
eId
},
null
);
// let 经营信息dbList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, { eId: data[i].eId }, null);
let
经营信息
dbList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{},
null
);
经营信息
dbList
.
forEach
(
info
=>
{
//BI(单位万元)
if
(
info
.
BI
<
500
)
zfqyzys
[
"500万以下"
]
+=
1
;
else
if
(
info
.
BI
>=
500
&&
info
.
BI
<
1000
)
zfqyzys
[
"500万-1000万"
]
+=
1
;
...
...
src/data/db/qyszhx.ts
View file @
e6628d8f
...
...
@@ -5,6 +5,7 @@ import { getChart, getKeyValue, getYearList } from "./out";
import
{
changeEnumValue
}
from
"../../tools/eccEnum"
;
import
{
getMySqlMs
}
from
"../../tools/systemTools"
;
import
{
connectLogger
}
from
"log4js"
;
import
{
systemConfig
}
from
"../../config/serverConfig"
;
...
...
@@ -31,6 +32,7 @@ export async function getQyszhx(eId) {
// 风险预警:{ bodyList: [], headerList: [['风险预警名称', '风险预警时间', '风险预警类型', '风险预警原因']] },
服务需求
:
{
dataList
:
[],
titleList
:
[
'key'
,
'value'
]
},
活动变化趋势分析
:
[],
荣誉资质图片
:
{},
服务记录
_
空间服务
:
{
bodyList
:
[],
headerList
:
[[
'服务名称'
,
'服务时间'
,
'服务内容'
]]
},
服务记录
_
工商服务
:
{
bodyList
:
[],
headerList
:
[[
'服务名称'
,
'服务时间'
,
'服务内容'
]]
},
服务记录
_
融资服务
:
{
bodyList
:
[],
headerList
:
[[
'服务名称'
,
'服务时间'
,
'服务内容'
]]
},
...
...
@@ -119,7 +121,7 @@ export async function getQyszhx(eId) {
首次入孵时间
:
"-"
,
};
if
(
企业基础信息
.
logonTime
)
qyjbsj
.
注册时间
=
moment
(
企业基础信息
.
logonTime
).
format
(
"YYYY-MM-DD"
)
if
(
企业孵化信息
[
0
].
enterprise_fuhuas
.
startTime
)
qyjbsj
.
首次入孵时间
=
moment
(
企业孵化信息
[
0
].
enterprise_fuhuas
.
startTime
).
format
(
"YYYY-MM-DD"
)
if
(
企业孵化信息
[
0
].
enterprise_fuhuas
[
0
].
startTime
)
qyjbsj
.
首次入孵时间
=
moment
(
企业孵化信息
[
0
].
enterprise_fuhuas
[
0
]
.
startTime
).
format
(
"YYYY-MM-DD"
)
qyszhx
.
企业基本数据
.
dataList
=
getKeyValue
(
qyjbsj
);
//企业标签 todo
...
...
@@ -134,11 +136,11 @@ export async function getQyszhx(eId) {
/**
* 企业自画像
*/
let
qyzp
=
get
企业自画像
(
企业经营信息
,
企业融资信息
,
企业专利信息
);
let
qyzp
=
get
企业自画像
(
企业经营信息
,
企业融资信息
,
企业专利信息
);
qyszhx
.
企业自画像
.
dataList
=
getKeyValue
(
qyzp
);
//租房补贴
let
zfbz
=
get
租房补贴
(
企业资质信息
,
企业专利信息
,
参保记录信息
);
let
zfbz
=
get
租房补贴
(
企业资质信息
,
企业专利信息
,
参保记录信息
);
qyszhx
.
租房补贴
.
dataList
=
getKeyValue
(
zfbz
);
// //高新
...
...
@@ -194,8 +196,6 @@ export async function getQyszhx(eId) {
qyszhx
.
企业汇总数据
.
dataList
=
getKeyValue
(
qyhzsj
);
//营收情况
let
{
ysqk
,
ysbhqs
}
=
get
营收情况
(
企业经营信息
);
qyszhx
.
营收情况
.
dataList
=
getKeyValue
(
ysqk
);
...
...
@@ -203,7 +203,7 @@ export async function getQyszhx(eId) {
//营收变化趋势
qyszhx
.
营收变化趋势
=
ysbhqs
;
//企业动
//企业动
态
let
qydt
=
get
企业动态
(
企业荣誉信息
);
qyszhx
.
企业动态
.
bodyList
=
qydt
;
...
...
@@ -220,6 +220,11 @@ export async function getQyszhx(eId) {
let
hdbhqsfx
=
get
活动变化趋势分析
(
企业融资信息
);
qyszhx
.
活动变化趋势分析
=
hdbhqsfx
;
//荣誉资质
let
ryzz
=
get
荣誉资质
(
企业荣誉信息
);
qyszhx
.
荣誉资质图片
=
ryzz
;
//服务记录_空间服务
let
fwjlxx
=
get
服务记录
(
企业服务信息
);
// qyszhx.服务记录_空间服务.bodyList = fwjlxx.空间服务;
...
...
@@ -276,52 +281,109 @@ export async function getQyszhx(eId) {
/**
* 计算研发占比的函数
*/
// function get研发占比(data) {
// let yfzb = [];
// data.forEach(info => {
// let { enterprise_manages } = info;
// enterprise_manages.forEach(manage => {
// if (parseFloat(manage.BI) > 0) {
// let ratio = parseFloat(manage.RD) / parseFloat(manage.BI);
// let 百分比 = (ratio * 100).toFixed(2) + "%";
// let 达标状态: string;
// // 判断是否已达标
// if(ratio * 100 >= 80.5){
// 达标状态 = "已达标";
// }else{
// 达标状态 = "继续努力";
// }
// yfzb.push({
// 年份: moment(manage.annual).format("YYYY"),
// 研发占比: 百分比,
// 达标状态: 达标状态
// });
// }
// });
// });
// return yfzb;
// }
function
get
研发占比
(
data
)
{
let
yfzb
=
[];
data
.
forEach
(
info
=>
{
let
{
enterprise_manages
}
=
info
;
let
quarterlyRD
=
{
[
QUARTER
.
第一季度
]:
0
,
[
QUARTER
.
第二季度
]:
0
,
[
QUARTER
.
第三季度
]:
0
,
[
QUARTER
.
第四季度
]:
0
};
let
quarterlyBI
=
{
[
QUARTER
.
第一季度
]:
0
,
[
QUARTER
.
第二季度
]:
0
,
[
QUARTER
.
第三季度
]:
0
,
[
QUARTER
.
第四季度
]:
0
};
enterprise_manages
.
forEach
(
manage
=>
{
if
(
parseFloat
(
manage
.
BI
)
>
0
)
{
let
ratio
=
parseFloat
(
manage
.
RD
)
/
parseFloat
(
manage
.
BI
);
const
quarter
=
getQuarter
(
manage
.
annual
);
quarterlyRD
[
quarter
]
+=
parseFloat
(
manage
.
RD
);
quarterlyBI
[
quarter
]
+=
parseFloat
(
manage
.
BI
);
}
});
// 计算每个季度的研发占比,并生成年份信息
for
(
let
quarter
of
[
QUARTER
.
第一季度
,
QUARTER
.
第二季度
,
QUARTER
.
第三季度
,
QUARTER
.
第四季度
])
{
if
(
quarterlyBI
[
quarter
]
>
0
)
{
let
ratio
=
quarterlyRD
[
quarter
]
/
quarterlyBI
[
quarter
];
let
百分比
=
(
ratio
*
100
).
toFixed
(
2
)
+
"%"
;
let
达标状态
:
string
;
// 判断是否已达标
if
(
ratio
*
100
>=
80.5
)
{
if
(
ratio
*
100
>=
80.5
)
{
达标状态
=
"已达标"
;
}
else
{
}
else
{
达标状态
=
"继续努力"
;
}
// 确保年份信息从 manage 中正确提取
let
年份
=
moment
(
enterprise_manages
[
0
]?.
annual
).
format
(
"YYYY"
);
// 假设所有季度属于同一年
yfzb
.
push
({
年份
:
moment
(
manage
.
annual
).
format
(
"YYYY"
)
,
年份
,
研发占比
:
百分比
,
达标状态
:
达标状态
达标状态
,
目标值
:
"80.5%"
,
});
}
}
);
}
});
return
yfzb
;
}
function
getQuarter
(
dateString
:
string
):
QUARTER
{
const
date
=
moment
(
dateString
);
if
(
!
date
.
isValid
())
{
console
.
error
(
"无效的日期字符串:"
,
dateString
);
return
QUARTER
.
第一季度
;
// 或者抛出异常,具体取决于业务需求
}
const
month
=
date
.
month
()
+
1
;
// JavaScript 月份从0开始
if
(
month
<=
3
)
return
QUARTER
.
第一季度
;
if
(
month
<=
6
)
return
QUARTER
.
第二季度
;
if
(
month
<=
9
)
return
QUARTER
.
第三季度
;
return
QUARTER
.
第四季度
;
}
/**
* 企业自画像
*/
function
get
企业自画像
(
企业经营信息
,
企业融资信息
,
企业专利信息
)
{
// 初始化企业自画像数据
let
qyzp
=
{
企业总得分
:
"
良好
"
,
企业融资
:
""
,
企业总得分
:
"
-
"
,
企业融资
:
"
-
"
,
本月融资额
:
0
,
短期营收
:
""
,
短期营收
:
"
-
"
,
营收金额
:
0
,
知识产权
:
""
,
知识产权
:
"
-
"
,
专利个数
:
0
,
研发投入
:
""
,
研发投入
:
"
-
"
,
投入金额
:
0
,
研发占比
:
""
,
研发占比
:
"
-
"
,
};
// 获取当前月份
...
...
@@ -350,12 +412,17 @@ function get企业自画像(企业经营信息, 企业融资信息, 企业专利
qyzp
[
"本月融资额"
]
=
本月融资总额
;
// 返回本月融资额
if
(
本月融资总额
>=
100000
)
{
// 修改为企业融资:10W及以上为优秀
if
(
本月融资总额
>
0
)
{
if
(
本月融资总额
>=
100000
)
{
// 修改为企业融资:10W及以上为优秀,
qyzp
[
"企业融资"
]
=
"优秀"
;
优秀维度计数
++
;
}
else
{
}
else
{
qyzp
[
"企业融资"
]
=
"良好"
;
}
}
else
{
qyzp
[
"企业融资"
]
=
"-"
;
}
// 2. 判断短期营收是否优秀
let
短期营收总额
=
0
;
...
...
@@ -368,12 +435,16 @@ function get企业自画像(企业经营信息, 企业融资信息, 企业专利
qyzp
[
"营收金额"
]
=
短期营收总额
;
// 返回营收金额
if
(
短期营收总额
>
0
)
{
if
(
短期营收总额
>=
1000000
)
{
// 修改为营收:100W及以上为优秀
qyzp
[
"短期营收"
]
=
"优秀"
;
优秀维度计数
++
;
}
else
{
}
else
{
qyzp
[
"短期营收"
]
=
"良好"
;
}
}
else
{
qyzp
[
"短期营收"
]
=
"-"
;
}
// 3. 判断知识产权是否优秀
let
专利总数
=
0
;
...
...
@@ -384,12 +455,17 @@ function get企业自画像(企业经营信息, 企业融资信息, 企业专利
qyzp
[
"专利个数"
]
=
专利总数
;
// 返回专利个数
if
(
专利总数
>
0
)
{
if
(
专利总数
>=
2
)
{
// 修改为知识产权:两个及以上为优秀
qyzp
[
"知识产权"
]
=
"优秀"
;
优秀维度计数
++
;
}
else
if
(
专利总数
===
1
)
{
qyzp
[
"知识产权"
]
=
"良好"
;
}
}
else
{
qyzp
[
"知识产权"
]
=
"-"
;
}
// 4. 判断研发投入是否优秀
let
研发投入总额
=
0
;
...
...
@@ -402,27 +478,37 @@ function get企业自画像(企业经营信息, 企业融资信息, 企业专利
});
});
let
研发占比
=
总收入
>
0
?
(
研发投入总额
/
总收入
)
:
0
;
qyzp
[
"投入金额"
]
=
研发投入总额
;
// 返回研发投入金额
let
研发占比
=
总收入
>
0
?
(
研发投入总额
/
总收入
)
:
0
;
qyzp
[
"投入金额"
]
=
研发投入总额
;
// 返回研发投入金额
qyzp
[
"研发占比"
]
=
`
${(
研发占比
*
100
).
toFixed
(
2
)}
%`
;
if
(
研发占比
>
0
)
{
if
(
研发占比
>=
0.2
)
{
// 修改为研发占比:20%以上为优秀
qyzp
[
"研发投入"
]
=
"优秀"
;
优秀维度计数
++
;
}
else
{
}
else
{
qyzp
[
"研发投入"
]
=
"良好"
;
}
}
else
{
qyzp
[
"研发投入"
]
=
"-"
;
}
// 根据优秀维度计数确定企业总评等级
if
(
优秀维度计数
>
0
)
{
if
(
优秀维度计数
>=
2
)
{
qyzp
[
"企业总得分"
]
=
"优秀"
;
}
else
{
qyzp
[
"企业总得分"
]
=
"良好"
;
}
}
else
{
qyzp
[
"企业总得分"
]
=
"-"
;
}
return
qyzp
;
}
/**
* 租房补贴
*/
...
...
@@ -559,7 +645,7 @@ function get租房补贴(企业资质信息, 企业专利信息, 参保记录信
function
get
资质达标情况
(
data
,
key
:
string
)
{
let
result
=
{
占比
:
0
,
是否达标
:
"
未达标
"
,
是否达标
:
"
继续努力
"
,
};
data
.
forEach
(
info
=>
{
...
...
@@ -568,7 +654,7 @@ function get资质达标情况(data, key: string) {
if
(
item
[
key
])
{
result
.
占比
=
100
;
result
.
是否达标
=
"已达标"
;
}
else
{
}
else
{
result
.
占比
=
0
;
result
.
是否达标
=
"继续努力"
;
}
...
...
@@ -766,6 +852,7 @@ function get营收情况(data) {
})
})
for
(
let
i
=
0
;
i
<
year
.
length
;
i
++
)
{
let
营业收入
=
0
;
let
研发投入
=
0
;
...
...
@@ -783,8 +870,11 @@ function get营收情况(data) {
})
})
ysbhqsInfo
.
营业收入
.
push
({
key
:
year
[
i
],
value
:
营业收入
});
ysbhqsInfo
.
研发投入
.
push
({
key
:
year
[
i
],
value
:
研发投入
});
// ysbhqsInfo.营业收入.push({ key: year[i], value: 营业收入 });
// ysbhqsInfo.研发投入.push({ key: year[i], value: 研发投入 });
// 将营业收入和研发投入转换为“千万”单位
ysbhqsInfo
.
营业收入
.
push
({
key
:
year
[
i
],
value
:
营业收入
/
1000
});
ysbhqsInfo
.
研发投入
.
push
({
key
:
year
[
i
],
value
:
研发投入
/
1000
});
// ysbhqsInfo.纳税金额.push({ key: year[i], value: 纳税金额 });
}
...
...
@@ -821,7 +911,7 @@ function get企业动态(data) {
enterprise_honors
.
forEach
(
honors
=>
{
let
awardLevel
=
changeEnumValue
(
AWARDLEVEL
,
honors
.
awardLevel
);
let
awardTime
=
moment
(
honors
.
awardTime
).
format
(
"YYYY-MM-DD"
);
qydt
.
push
([
honorsCount
,
honors
.
awardName
,
awardTime
,
honors
.
awardingUnit
,
awardLevel
]);
qydt
.
push
([
honorsCount
,
honors
.
awardName
,
awardTime
,
honors
.
awardingUnit
,
awardLevel
]);
})
})
...
...
@@ -899,6 +989,21 @@ function get活动变化趋势分析(data) {
return
hdbhqsfx
;
}
//荣誉资质
function
get
荣誉资质
(
data
)
{
let
ryzz
=
[];
data
.
forEach
(
info
=>
{
let
{
enterprise_honors
}
=
info
;
enterprise_honors
.
forEach
(
honors
=>
{
let
awardLevel
=
changeEnumValue
(
AWARDLEVEL
,
honors
.
awardLevel
);
let
awardImg
=
JSON
.
parse
(
honors
.
awardImg
)
let
imgPath
=
`
${
systemConfig
.
imgFileUrl
}${
awardImg
[
0
]}
`
;
ryzz
.
push
([
imgPath
,
awardLevel
]);
})
})
return
ryzz
;
}
function
get
服务记录
(
data
)
{
let
fwjl
=
{
...
...
@@ -925,11 +1030,3 @@ function get服务记录(data) {
return
fwjl
;
}
src/data/db/zhyy.ts
View file @
e6628d8f
import
moment
=
require
(
"moment"
);
import
{
AWARDLEVEL
,
EMIGRATIONTYPE
,
FOLLOWUPSTATUS
,
FUHUASTATE
,
INDUSTRY
,
MOVEOUTTYPE
,
NEEDCATEGORY
,
OPERATIONALDATATYPE
,
TABLENAME
}
from
"../../config/enum"
;
import
{
AWARDLEVEL
,
EMIGRATIONTYPE
,
FOLLOWUPSTATUS
,
FUHUASTATE
,
INDUSTRY
,
MOVEOUTTYPE
,
NEEDCATEGORY
,
OPERATIONALDATATYPE
,
QUARTER
,
TABLENAME
}
from
"../../config/enum"
;
import
{
selectData
,
selectManyTableData
}
from
"./operationalData"
;
import
{
changeEnumValue
}
from
"../../tools/eccEnum"
;
import
{
getChart
,
getYearList
}
from
"./out"
;
...
...
@@ -18,6 +18,69 @@ function getStartAndEndTimeYearList(startTime, endTime) {
return
result
;
}
// 获取当前年份的四个季度
function
getQuarterList
(
year
:
number
)
{
const
quarters
=
[];
for
(
let
quarter
=
1
;
quarter
<=
4
;
quarter
++
)
{
const
start
=
moment
()
.
year
(
year
)
.
quarter
(
quarter
)
.
startOf
(
'quarter'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
const
end
=
moment
()
.
year
(
year
)
.
quarter
(
quarter
)
.
endOf
(
'quarter'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
quarters
.
push
({
quarter
,
start
,
end
});
}
return
quarters
;
}
/**
* 获取指定季度的起止时间
* @param year 年份
* @param quarter 季度 (1-4)
* @returns 当前季度的起止时间对象 { start, end }
*/
function
getQuarterRange
(
year
:
number
,
quarter
:
number
)
{
const
start
=
moment
()
.
year
(
year
)
.
quarter
(
quarter
)
.
startOf
(
'quarter'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
const
end
=
moment
()
.
year
(
year
)
.
quarter
(
quarter
)
.
endOf
(
'quarter'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
return
{
start
,
end
};
}
/**
* 查询指定时间段的企业经营信息并计算总营收
* @param start 开始时间
* @param end 结束时间
* @returns 总营收
*/
async
function
calculateRevenue
(
start
:
string
,
end
:
string
)
{
const
data
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{
annual
:
{
"%between%"
:
[
start
,
end
]
}
},
[
"BI"
]
// BI 字段表示营收
);
let
totalRevenue
=
0
;
data
.
forEach
(
info
=>
{
if
(
info
.
BI
)
{
totalRevenue
+=
parseFloat
(
info
.
BI
);
}
});
return
totalRevenue
;
}
export
async
function
getZhyy
()
{
// let zhyy = {
// 在孵企业数据:{dataList:[], titleList:['key', 'value']},
...
...
@@ -443,26 +506,19 @@ export async function getZhyy() {
const
currentDate
=
new
Date
();
// const currentYear = currentDate.getFullYear();
const
currentMonth
=
currentDate
.
getMonth
()
+
1
;
// JavaScript 的月份从0开始
// 计算当前月份的开始时间和结束时间
const
startOfMonth
=
new
Date
(
currentYear
,
currentMonth
-
1
,
1
);
const
endOfMonth
=
new
Date
(
currentYear
,
currentMonth
,
0
);
// 计算去年同期的开始时间和结束时间
const
startOfLastYearMonth
=
new
Date
(
currentYear
-
1
,
currentMonth
-
1
,
1
);
const
endOfLastYearMonth
=
new
Date
(
currentYear
-
1
,
currentMonth
,
0
);
// 查询本月新增就业数据
let
currentMonthNewJobs
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,
{
annual
:
{
"%between%"
:
[
startOfMonth
.
toISOString
(),
endOfMonth
.
toISOString
()]
}
},
null
);
let
currentMonthNewJobs
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,{
annual
:
{
"%between%"
:
[
startOfMonth
.
toISOString
(),
endOfMonth
.
toISOString
()]
}
},
null
);
// 查询去年同期新增就业数据
let
lastYearMonthNewJobs
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,
{
annual
:
{
"%between%"
:
[
startOfLastYearMonth
.
toISOString
(),
endOfLastYearMonth
.
toISOString
()]
}
},
null
);
let
lastYearMonthNewJobs
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,{
annual
:
{
"%between%"
:
[
startOfLastYearMonth
.
toISOString
(),
endOfLastYearMonth
.
toISOString
()]
}
},
null
);
// 计算本月新增就业人数
let
currentMonthJobCount
=
0
;
currentMonthNewJobs
.
forEach
(
info
=>
{
...
...
@@ -474,6 +530,7 @@ export async function getZhyy() {
if
(
info
.
boshiyishang
)
itemCount
+=
parseInt
(
info
.
boshiyishang
);
currentMonthJobCount
+=
itemCount
;
});
// 计算去年同期新增就业人数
let
lastYearMonthJobCount
=
0
;
lastYearMonthNewJobs
.
forEach
(
info
=>
{
...
...
@@ -485,6 +542,7 @@ export async function getZhyy() {
if
(
info
.
boshiyishang
)
itemCount
+=
parseInt
(
info
.
boshiyishang
);
lastYearMonthJobCount
+=
itemCount
;
});
// 计算同比增长率
let
growthRate
=
0
;
if
(
lastYearMonthJobCount
!==
0
)
{
...
...
@@ -496,6 +554,7 @@ export async function getZhyy() {
* 年度就业人数趋势分析
*/
let
jiuYeList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,
{},
null
);
let
年度就业人数趋势分析
Map
=
{};
jiuYeList
.
forEach
(
info
=>
{
let
{
eId
,
annual
}
=
info
;
...
...
@@ -510,12 +569,11 @@ export async function getZhyy() {
if
(
!
年度就业人数趋势分析
Map
[
itemYear
])
年度就业人数趋势分析
Map
[
itemYear
]
=
{
key
:
itemYear
,
value
:
0
};
年度就业人数趋势分析
Map
[
itemYear
].
value
+=
itemCount
;
});
let
年度就业人数趋势分析
=
Object
.
values
(
年度就业人数趋势分析
Map
);
let
年度就业人数趋势分析
=
Object
.
values
(
年度就业人数趋势分析
Map
);
/**
* 产业规模分析todo
* 按季度展示quarter季度: 1:第一季度 2:第二季度 3:第三季度 4:第四季度
* 产业规模分析
*/
let
jingYingThisYear
=
moment
().
startOf
(
"year"
).
format
(
"YYYY-MM-DD HH:mm:ss"
);
let
jingYingList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{
annual
:
jingYingThisYear
},
null
);
...
...
@@ -525,6 +583,7 @@ export async function getZhyy() {
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
},
...
...
@@ -548,7 +607,6 @@ export async function getZhyy() {
在孵企业营收占比
.
push
({
key
,
value
});
})
let
zhyy
=
{
园区概况
:
{
dataList
:
园区概况
,
title
:
[
"key"
,
"value"
]
},
在孵企业数据
:
{
dataList
:
在孵企业数据
,
titleList
:
[
'key'
,
'value'
]
},
...
...
@@ -563,14 +621,13 @@ export async function getZhyy() {
// 企业服务: { dataList: 企业服务, titleList: ['key', 'value'] },
// 企业服务类型: { dataList: fuWuQiYeTypeList, titleList: ['key', 'value'] },
荣誉资质
:
{
dataList
:
荣誉资质
,
titleList
:
[
'key'
,
'value'
]
},
荣誉资质图片
:
荣誉资质图片
,
//
荣誉资质图片: 荣誉资质图片,
就业分析
:
{
dataList
:
[
{
key
:
"本月新增就业"
,
value
:
`
${
currentMonthJobCount
}
人`
},
{
key
:
"同比去年"
,
value
:
`
${
growthRate
.
toFixed
(
2
)}
%`
}
],
titleList
:
[
'key'
,
'value'
]
},
年度就业人数趋势分析
:
[{
name
:
"年度就业人数趋势分析"
,
data
:
年度就业人数趋势分析
}],
在孵企业营收占比
:
{
dataList
:
在孵企业营收占比
,
title
:
[
"key"
,
"value"
]
},
企业服务
:
{
...
...
@@ -601,6 +658,7 @@ export async function getZhyy() {
}
}
return
zhyy
;
}
...
...
src/data/table/qyszhxData.ts
View file @
e6628d8f
...
...
@@ -25,14 +25,29 @@ 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
;
}
export
function
fxyjTableData
()
{
let
blockDataList
=
onceSheetBecomeOfblockData
(
'yuyiServer.xlsx'
,
'风险预警'
);
let
keyValueOrTitleList
=
[
"风险预警"
,];
//适配 饼图 键值以及需要多个key的
let
barChartList
=
[];
//适配 柱状图 折线图
let
stringList
=
[];
let
decollatePlanarList
=
[];
//适配 表格
let
titltListConfig
=
{};
let
result
=
packageDataProcess
(
blockDataList
,
titltListConfig
,
keyValueOrTitleList
,
barChartList
,
stringList
,
decollatePlanarList
);
return
result
;
}
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