Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yuyiAdminServer
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
yuyiAdminServer
Commits
3058730a
Commit
3058730a
authored
May 28, 2025
by
lixinming
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://123.207.147.179:8888/node_server/yuyiAdminServer
parents
ab4de35c
cd9c50ab
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
262 additions
and
157 deletions
+262
-157
serverConfig.xml
serverConfig.xml
+3
-3
admin.ts
src/biz/admin.ts
+0
-0
dataInit.ts
src/biz/dataInit.ts
+1
-1
fuWu.ts
src/biz/fuWu.ts
+12
-6
fuhua.ts
src/biz/fuhua.ts
+99
-58
mail.ts
src/biz/mail.ts
+9
-5
zaiFu.ts
src/biz/zaiFu.ts
+0
-0
enterprise.ts
src/config/eccParam/enterprise.ts
+1
-1
dbEnum.ts
src/config/enum/dbEnum.ts
+8
-4
enum.ts
src/config/enum/enum.ts
+26
-7
enterprise.ts
src/config/splitResult/enterprise.ts
+1
-1
operationalData.ts
src/data/operationalData.ts
+35
-2
admin.ts
src/routers/admin.ts
+4
-4
dbinit.ts
src/routers/dbinit.ts
+62
-62
public.ts
src/routers/public.ts
+1
-3
No files found.
serverConfig.xml
View file @
3058730a
<config>
<port>
9098
</port>
<sign>
xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas
</sign>
<dbServer>
http://192.168.0.7
2
:9096
</dbServer>
<imgUrl>
http://192.168.0.7
2
:9098
</imgUrl>
<imgFileUrl>
http://192.168.0.7
2
:9097
</imgFileUrl>
<dbServer>
http://192.168.0.7
1
:9096
</dbServer>
<imgUrl>
http://192.168.0.7
1
:9098
</imgUrl>
<imgFileUrl>
http://192.168.0.7
1
:9097
</imgFileUrl>
<fileUrl>
/yuyi/files/1/
</fileUrl>
<qcc>
<key>
2b14555ce89346e8b96684e2e2a1c7c2
</key>
...
...
src/biz/admin.ts
View file @
3058730a
This diff is collapsed.
Click to expand it.
src/biz/dataInit.ts
View file @
3058730a
...
...
@@ -427,7 +427,7 @@ async function 工商信息(uscc) {
// isNaturalPersonHolding: 工商信息., //是否自然人控股
// industry: 工商信息., //领域
// moreMail: 工商信息., //更多邮箱
logonAddress
:
工商信息
.
Address
,
//注册地址
//
logonAddress: 工商信息.Address, //注册地址
// tongXinDiZhi: 工商信息., //通信地址
// liaison: 工商信息., //联系人
// liaisonPhone: 工商信息., //联系电话
...
...
src/biz/fuWu.ts
View file @
3058730a
...
...
@@ -14,6 +14,7 @@ import moment = require("moment");
import
{
changeAdd
,
extractData
}
from
"../util/piecemeal"
;
import
{
EnterpriseApplyForConfig
}
from
"../config/splitResult/enterprise"
;
import
{
changeEnumValue
}
from
"../util/verificationEnum"
;
import
{
systemSendMail
}
from
"./mail"
;
...
...
@@ -80,7 +81,7 @@ export async function enterpriseServiceOption(esId:string, fangKui:string) {
*/
export
async
function
enterpriseServiceEnd
(
esId
:
string
,
outcome
:
number
,
desc
:
string
)
{
let
selectParam
:
any
=
{
esId
};
let
filesList
=
[
"esId"
];
let
filesList
=
[
"esId"
,
"eId"
];
let
resInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业服务表
,
selectParam
,
filesList
);
if
(
!
resInfo
||
!
resInfo
.
esId
)
{
throw
new
BizError
(
ERRORENUM
.
数据不存在
);
...
...
@@ -89,7 +90,13 @@ export async function enterpriseServiceEnd(esId:string, outcome:number, desc:str
let
updateInfo
=
{
outcome
,
followUpStatus
:
enumConfig
.
FOLLOWUPSTATUS
.
已完成
,
desc
,
resolveTime
:
getMySqlMs
()};
await
operationalData
(
OPERATIONALDATATYPE
.
修改
,
TABLENAME
.
企业服务表
,
updateInfo
,
{
esId
});
return
{
isSuccess
:
true
};
}
\ No newline at end of file
//发送邮件
let
mailStr
=
""
;
mailStr
+=
`<p>您的服务处理结果为:
${
changeEnumValue
(
enumConfig
.
OUTCOME
,
outcome
)}
</p>`
;
mailStr
+=
`<p>
${
desc
}
</p>`
;
await
systemSendMail
(
resInfo
.
eId
,
enumConfig
.
MAILTYPE
.
结束企业服务
,
mailStr
);
return
{
isSuccess
:
true
};
}
src/biz/fuhua.ts
View file @
3058730a
...
...
@@ -32,7 +32,7 @@ export async function getBaseData() {
"在孵企业"
:
0
,
"迁出企业"
:
0
,
"毕业企业"
:
0
,
"出租率"
:
""
,
// 添加出租率字段
//
"出租率": "", // 添加出租率字段
// "园区面积":0,//新增
// "产业规模": 0,
// "总资产投入金额": 0,
...
...
@@ -42,7 +42,7 @@ export async function getBaseData() {
fuhuaPinfen
:
0
,
//孵化器评分 没有该字段
fuhuaInfo
:{
//孵化器信息
},
entryInfo
:
{}
,
// 孵化器入驻信息
entryInfo
:
[]
,
// 孵化器入驻信息
promotionInfo
:
{}
// 运营推广信息
};
...
...
@@ -93,7 +93,7 @@ export async function getBaseData() {
// baseData.fuhuaData["总资产投入金额"] = yuyiList.totalAssetInvestmentAmount;
// baseData.fuhuaData["引入机构数量"] = yuyiList.numberOfInstitutionsIntroduced;
// baseData.fuhuaData["引入机构投资"] = yuyiList.introduceInstitutionalInvestment;
baseData
.
fuhuaData
[
"出租率"
]
=
yuyiList
.
rentRate
;
//出租率
//
baseData.fuhuaData["出租率"] = yuyiList.rentRate;//出租率
baseData
.
fuhuaInfo
=
{
"运营名称"
:
yuyiList
.
operateName
,
...
...
@@ -116,38 +116,55 @@ export async function getBaseData() {
* 孵化器入驻信息
*/
let
entryList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
入驻信息表
,
{},
[
`info_enterId`
,
`building`
,
`occupancyRate`
,
`enteredEnterprises`
]);
baseData
.
entryInfo
=
{
"1"
:{
"入驻率"
:
""
,
"入驻企业"
:
""
},
"3"
:{
"入驻率"
:
""
,
"入驻企业"
:
""
},
"4"
:{
"入驻率"
:
""
,
"入驻企业"
:
""
}};
let
entryInfo
=
{
"1"
:{
"入驻率"
:
""
,
"入驻企业"
:
""
},
"3"
:{
"入驻率"
:
""
,
"入驻企业"
:
""
},
"4"
:{
"入驻率"
:
""
,
"入驻企业"
:
""
}};
if
(
entryList
.
length
)
{
entryList
.
forEach
(
info
=>
{
// let building = changeEnumValue(BUILDING, info.building);
let
building
=
info
.
building
;
if
(
!
baseData
.
entryInfo
[
building
])
{
baseData
.
entryInfo
[
building
]
=
{
"入驻率"
:
""
,
"入驻企业"
:
""
};
if
(
!
entryInfo
[
building
])
{
entryInfo
[
building
]
=
{
"入驻率"
:
""
,
"入驻企业"
:
""
};
}
baseData
.
entryInfo
[
building
].
入驻率
=
info
.
occupancyRate
;
baseData
.
entryInfo
[
building
].
入驻企业
=
info
.
enteredEnterprises
;
entryInfo
[
building
].
入驻率
=
info
.
occupancyRate
;
entryInfo
[
building
].
入驻企业
=
info
.
enteredEnterprises
;
})
}
baseData
.
entryInfo
=
[];
for
(
let
key
in
entryInfo
)
{
let
dataList
=
[];
for
(
let
name
in
entryInfo
[
key
])
{
dataList
.
push
({
key
:
name
,
value
:
entryInfo
[
key
][
name
]});
}
baseData
.
entryInfo
.
push
({
name
:
changeEnumValue
(
BUILDING
,
parseInt
(
key
)),
dataList
});
}
/**
* 运营推广(次数)
*/
let
promotionList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
运营推广信息表
,{},
[
"opId"
,
"promotionType"
,
"promotionApp"
,
"promotionNum"
]);
baseData
.
promotionInfo
=
{
"线上推广"
:
{},
"线下推广"
:
{}};
let
promotionInfo
=
{
"线上推广"
:
{},
"线下推广"
:
{}};
if
(
promotionList
.
length
)
{
promotionList
.
forEach
(
info
=>
{
let
appStr
=
""
;
if
(
info
.
promotionType
==
PROMOTIONTYPE
.
线上推广
)
{
appStr
=
changeEnumValue
(
ONLINEPROMOTION
,
info
.
promotionApp
);
baseData
.
promotionInfo
[
"线上推广"
][
appStr
]
=
info
.
promotionNum
;
promotionInfo
[
"线上推广"
][
appStr
]
=
info
.
promotionNum
;
}
else
if
(
info
.
promotionType
==
PROMOTIONTYPE
.
线下推广
)
{
appStr
=
changeEnumValue
(
OFFLINEPROMOTION
,
info
.
promotionApp
);
baseData
.
promotionInfo
[
"线下推广"
][
appStr
]
=
info
.
promotionNum
;
promotionInfo
[
"线下推广"
][
appStr
]
=
info
.
promotionNum
;
}
})
}
baseData
.
promotionInfo
=
{
"线上推广"
:
[],
"线下推广"
:
[]};
for
(
let
key
in
promotionInfo
)
{
let
infoData
=
promotionInfo
[
key
];
for
(
let
name
in
infoData
)
{
baseData
.
promotionInfo
[
key
].
push
({
key
:
name
,
value
:
infoData
[
name
]});
}
}
return
{
baseData
};
}
...
...
@@ -269,20 +286,31 @@ export async function getOperateData(year) {
}
export
function
getYearList
()
{
// 获取当前年份
const
currentTime
=
moment
();
const
sixMonthsAgo
=
currentTime
.
clone
().
subtract
(
6
,
'year'
);
/**
* 根据传入的年份生成当前年份与目标年份之间的所有年份列表
* @param targetYear 传入的年份
* @returns
*/
export
function
getYearList
(
targetYear
)
{
const
currentYear
=
new
Date
().
getFullYear
();
// 初始化一个空数组来存储年份
const
years
=
[];
// 使用一个循环来添加当前年份到6年后的每一个年份到数组中
for
(
let
i
=
0
;
i
<=
6
;
i
++
)
{
years
.
push
(
currentYear
-
i
);
// 生成目标年份与当前年份之间的年份列表
const
startYear
=
Math
.
min
(
targetYear
,
currentYear
);
const
endYear
=
Math
.
max
(
targetYear
,
currentYear
);
let
years
=
[];
for
(
let
year
=
startYear
;
year
<=
endYear
;
year
++
)
{
years
.
push
(
year
);
}
// 如果结果不足5年,返回近5年列表
if
(
years
.
length
<
5
)
{
years
=
[];
for
(
let
year
=
currentYear
-
4
;
year
<=
currentYear
;
year
++
)
{
years
.
push
(
year
);
}
}
// 确保输出顺序始终为时间正序
years
.
sort
((
a
,
b
)
=>
{
return
a
-
b
;
})
...
...
@@ -350,16 +378,22 @@ export async function getWorthDate() {
/**纳税趋势 */
let
nashuiList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业经营信息
,
{},
{});
let
nashuiData
=
{};
nashuiList
.
forEach
(
info
=>
{
let
year
=
moment
(
info
.
annual
).
format
(
"YYYY"
);
if
(
!
nashuiData
[
year
])
nashuiData
[
year
]
=
0
;
nashuiData
[
year
]
+=
parseFloat
(
info
.
TXP
);
})
for
(
let
key
in
nashuiData
)
{
worthData
.
TXP
.
push
({
key
,
value
:
nashuiData
[
key
].
toString
()});
let
minNaShuiYear
=
Math
.
min
(
...
nashuiList
.
map
(
item
=>
new
Date
(
item
.
investmentDate
).
getFullYear
())
);
if
(
!
nashuiList
.
length
)
minNaShuiYear
=
new
Date
().
getFullYear
();
let
nashuiYear
=
getYearList
(
minNaShuiYear
);
for
(
let
i
=
0
;
i
<
nashuiYear
.
length
;
i
++
)
{
let
nashui
=
0
;
nashuiList
.
forEach
(
info
=>
{
let
parsedStartTime
=
moment
(
info
.
annual
);
if
(
parsedStartTime
.
isValid
()
&&
parsedStartTime
.
year
()
===
nashuiYear
[
i
])
{
nashui
+=
parseFloat
(
info
.
TXP
);
}
})
worthData
.
TXP
.
push
({
key
:
nashuiYear
[
i
],
value
:
nashui
.
toString
()});
}
//X轴排序
worthData
.
TXP
.
sort
(
(
a
,
b
)
=>
{
return
a
.
key
-
b
.
key
;
...
...
@@ -368,7 +402,9 @@ export async function getWorthDate() {
/**融资额趋势分析 */
let
融资情况
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业融资
,
{},
[]);
let
year
=
getYearList
();
let
minYear
=
Math
.
min
(
...
融资情况
.
map
(
item
=>
new
Date
(
item
.
investmentDate
).
getFullYear
())
);
if
(
!
融资情况
.
length
)
minYear
=
new
Date
().
getFullYear
();
let
year
=
getYearList
(
minYear
);
for
(
let
i
=
0
;
i
<
year
.
length
;
i
++
)
{
let
融资金额
=
0
;
融资情况
.
forEach
(
info
=>
{
...
...
@@ -381,33 +417,38 @@ export async function getWorthDate() {
}
/**就业人数趋势 */
let
jiuyeList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,
{},
{});
let
jiuyeInfo
=
{};
jiuyeList
.
forEach
(
info
=>
{
let
year
=
moment
(
info
.
annual
).
format
(
"YYYY"
);
if
(
!
jiuyeInfo
[
year
])
jiuyeInfo
[
year
]
=
0
;
if
(
info
.
zhuanKe
)
{
jiuyeInfo
[
year
]
+=
parseInt
(
info
.
zhuanKe
);
}
if
(
info
.
benKe
)
{
jiuyeInfo
[
year
]
+=
parseInt
(
info
.
benKe
);
}
if
(
info
.
shuoshi
)
{
jiuyeInfo
[
year
]
+=
parseInt
(
info
.
shuoshi
);
}
if
(
info
.
boShi
)
{
jiuyeInfo
[
year
]
+=
parseInt
(
info
.
boShi
);
}
if
(
info
.
boshiyishang
)
{
jiuyeInfo
[
year
]
+=
parseInt
(
info
.
boshiyishang
);
}
if
(
info
.
qiTa
)
{
jiuyeInfo
[
year
]
+=
parseInt
(
info
.
qiTa
);
}
})
for
(
let
key
in
jiuyeInfo
)
{
worthData
.
jiuye
.
push
({
key
,
value
:
jiuyeInfo
[
key
].
toString
()});
let
参保记录
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
参保记录
,
{},
{});
let
minJiuyeYear
=
Math
.
min
(
...
参保记录
.
map
(
item
=>
new
Date
(
item
.
investmentDate
).
getFullYear
())
);
if
(
!
参保记录
.
length
)
minJiuyeYear
=
new
Date
().
getFullYear
();
let
jiuyeyear
=
getYearList
(
minJiuyeYear
);
for
(
let
i
=
0
;
i
<
jiuyeyear
.
length
;
i
++
)
{
let
就业人数
=
0
;
参保记录
.
forEach
(
info
=>
{
let
参保日期
=
moment
(
info
.
annual
);
if
(
参保日期
.
isValid
()
&&
参保日期
.
year
()
===
jiuyeyear
[
i
])
{
if
(
info
.
zhuanKe
)
{
就业人数
+=
parseInt
(
info
.
zhuanKe
);
}
if
(
info
.
benKe
)
{
就业人数
+=
parseInt
(
info
.
benKe
);
}
if
(
info
.
shuoshi
)
{
就业人数
+=
parseInt
(
info
.
shuoshi
);
}
if
(
info
.
boShi
)
{
就业人数
+=
parseInt
(
info
.
boShi
);
}
if
(
info
.
boshiyishang
)
{
就业人数
+=
parseInt
(
info
.
boshiyishang
);
}
if
(
info
.
qiTa
)
{
就业人数
+=
parseInt
(
info
.
qiTa
);
}
}
});
worthData
.
jiuye
.
push
({
key
:
jiuyeyear
[
i
],
value
:
就业人数
.
toString
()});
}
//X轴排序
worthData
.
jiuye
.
sort
(
(
a
,
b
)
=>
{
return
a
.
key
-
b
.
key
;
...
...
src/biz/mail.ts
View file @
3058730a
...
...
@@ -18,8 +18,8 @@ let transporter = nodemailer.createTransport({
}
});
async
function
send
(
toMail
,
name
,
type
,
code
?)
{
let
{
title
,
mailStr
}
=
getModel
(
name
,
type
,
code
);
async
function
send
(
toMail
,
name
,
type
,
otherStr
?,
code
?)
{
let
{
title
,
mailStr
}
=
getModel
(
name
,
type
,
otherStr
,
code
);
// 设置邮件选项
let
mailOptions
=
{
from
:
'羽翼 <1685675085@qq.com>'
,
// 发送者地址
...
...
@@ -41,7 +41,7 @@ async function send(toMail, name, type, code?) {
}
function
getModel
(
name
,
type
,
code
?)
{
function
getModel
(
name
,
type
,
otherStr
?,
code
?)
{
let
str
=
""
;
let
title
=
""
;
switch
(
type
)
{
...
...
@@ -49,6 +49,10 @@ function getModel(name, type, code?) {
str
=
"您提交的企业材料审核成功,欢迎入驻羽翼孵化器。"
;
title
=
"审核通过"
;
break
;
case
MAILTYPE
.
结束企业服务
:
str
=
otherStr
;
title
=
"企业服务受理结果"
;
break
;
}
let
mailStr
=
""
...
...
@@ -65,14 +69,14 @@ function getModel(name, type, code?) {
* @param userId
* @param type
*/
export
async
function
systemSendMail
(
eId
,
type
)
{
export
async
function
systemSendMail
(
eId
,
type
,
otherStr
?
)
{
let
userInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
eId
},
[
"eId"
,
"enterpriseName"
,
"uscc"
,
"mail"
]);
if
(
!
userInfo
||
!
userInfo
.
eId
)
throw
new
BizError
(
ERRORENUM
.
企业不存在
);
if
(
!
userInfo
.
mail
)
{
new
BizError
(
ERRORENUM
.
该用户邮箱为空
,
eId
,
eId
.
enterpriseName
);
}
else
{
let
result
=
await
send
(
userInfo
.
mail
,
userInfo
.
enterpriseName
,
type
);
let
result
=
await
send
(
userInfo
.
mail
,
userInfo
.
enterpriseName
,
type
,
otherStr
);
}
return
successResult
();
...
...
src/biz/zaiFu.ts
View file @
3058730a
This diff is collapsed.
Click to expand it.
src/config/eccParam/enterprise.ts
View file @
3058730a
...
...
@@ -111,7 +111,7 @@ export const YuYiBaseDataUpdateConfig = {
synopsis
:{
type
:
"String"
},
//简介
totalArea
:{
type
:
"String"
},
//孵化器总面积
zaifuArea
:{
type
:
"String"
},
//在孵面积
rentRate
:{
type
:
"String"
},
//出租率
//
rentRate:{type:"String"},//出租率
// uscc:{type:"String"},//统一信用代码
entryInfo
:{
type
:
"object"
},
//孵化器入驻信息
...
...
src/config/enum/dbEnum.ts
View file @
3058730a
...
...
@@ -29,9 +29,9 @@ export enum TABLENAME {
企业资质
=
'enterprise_qualification'
,
参保记录
=
'enterprise_canbao'
,
创业团队
=
'enterprise_team'
,
知识产权
=
'enterprise_ipr'
,
//
知识产权 ='enterprise_ipr',
法人信息表
=
'enterprise_legal_person'
,
企业专利表
=
'enterprise_patent'
,
//
企业专利表 ='enterprise_patent',
园区通知表
=
'garden_notice'
,
园区活动表
=
'garden_activity'
,
企业服务表
=
'enterprise_service'
,
...
...
@@ -55,6 +55,10 @@ export enum TABLENAME {
入孵申请审批表
=
'approval_history'
,
入驻信息表
=
"info_enter"
,
运营推广信息表
=
"info_operation_promotion"
,
商标
=
"trade_mark"
,
作品著作权
=
"copy_right"
,
软件著作权
=
"software_copyright"
,
专利
=
"patent"
,
}
...
...
@@ -69,9 +73,9 @@ export enum TABLEID {
企业资质
=
'qu'
,
参保记录
=
'cb'
,
创业团队
=
'te'
,
知识产权
=
'ipr'
,
//
知识产权 ='ipr',
法人信息表
=
'ps'
,
企业专利表
=
'pe'
,
//
企业专利表 ='pe',
园区通知表
=
'nt'
,
园区活动表
=
'ac'
,
企业服务表
=
'es'
,
...
...
src/config/enum/enum.ts
View file @
3058730a
...
...
@@ -263,15 +263,33 @@ export enum QUARTER {
* 知识产权 全类型
*/
export
enum
IPRALLTYPE
{
软件著作权
=
1
,
专利
=
100
,
发明专利
=
101
,
海外专利
=
102
,
其他
=
200
,
植物新品种
=
201
,
集成电路布图
=
202
商标信息
=
1
,
作品著作权
,
软件著作权
,
外观设计专利
,
实用新型专利
,
发明专利
// 软件著作权 = 1,
// 专利 = 100,
// 发明专利 = 101,
// 海外专利 = 102,
// 其他 = 200,
// 植物新品种 = 201,
// 集成电路布图 =202
}
/**
* 专利表属于知识产权类型中的详细分类
*/
export
enum
KUNDCODE
{
发明公布
=
1
,
发明授权
,
实用新型
,
外观设计
}
export
enum
IPRTYPE
{
软件著作权
=
1
,
专利
=
100
,
...
...
@@ -377,6 +395,7 @@ export enum RISKTYPE {
*/
export
enum
MAILTYPE
{
通过入孵材料审核
=
1
,
结束企业服务
,
}
...
...
src/config/splitResult/enterprise.ts
View file @
3058730a
...
...
@@ -33,7 +33,7 @@ export const YuYiBaseDataConfig = {
synopsis
:{
key
:
"简介"
},
totalArea
:{
key
:
"孵化器总面积"
},
zaifuArea
:{
key
:
"在孵面积"
},
rentRate
:{
key
:
"出租率"
},
//
rentRate:{key:"出租率"},
// ziyonArea:{key:"自用面积"},
// parkArea:{key:"园区面积"},//新增
// enterpriseNum:{key:"企业数量"},
...
...
src/data/operationalData.ts
View file @
3058730a
...
...
@@ -98,4 +98,38 @@ export async function selectManyTableData(url, tableName, param, column, includ
if
(
result
.
code
!=
200
)
throw
new
BizError
(
ERRORENUM
.
数据联合查询失败
,
result
.
code
);
if
(
!
result
.
data
||
!
result
.
data
.
data
)
throw
new
BizError
(
ERRORENUM
.
数据联合查询失败
,
JSON
.
stringify
(
result
.
data
));
return
result
.
data
.
data
;
}
\ No newline at end of file
}
/**
* 数组分页函数
* @param {Array} data - 原始数组
* @param {Number} page - 当前页码(从1开始)
* @param {Number} pageSize - 每页数据量
* @returns {Object} 包含分页数据和元信息的对象
*/
export
async
function
paginateArray
(
data
,
page
=
1
,
pageSize
=
10
)
{
// 校验参数合法性
page
=
Math
.
max
(
1
,
page
)
||
1
;
pageSize
=
Math
.
max
(
1
,
pageSize
)
||
10
;
// 计算分页索引
const
startIndex
=
(
page
-
1
)
*
pageSize
;
const
endIndex
=
startIndex
+
pageSize
;
// 切割数据并生成结果
const
paginatedData
=
data
.
slice
(
startIndex
,
endIndex
);
return
{
data
:
paginatedData
,
meta
:
{
currentPage
:
page
,
//当前页码
pageSize
:
pageSize
,
//每页数据量
totalItems
:
data
.
length
,
//总条数
totalPages
:
Math
.
ceil
(
data
.
length
/
pageSize
),
//总页数
hasNextPage
:
endIndex
<
data
.
length
,
// 是否有下一页
hasPrevPage
:
startIndex
>
0
// 是否有上一页
}
};
}
src/routers/admin.ts
View file @
3058730a
...
...
@@ -337,8 +337,8 @@ async function outPutTalentList(req, res) {
*/
async
function
enterpriseList
(
req
,
res
)
{
const
UserInfo
=
req
.
userInfo
;
let
{
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
building
}
=
req
.
body
let
result
=
await
zaiFuBiz
.
enterpriseList
(
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
building
);
let
{
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
}
=
req
.
body
let
result
=
await
zaiFuBiz
.
enterpriseList
(
enterpriseName
,
page
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
);
res
.
success
(
result
);
}
...
...
@@ -430,8 +430,8 @@ async function enterpriseDetails(req, res) {
* @param res
*/
async
function
dwEnterpriseList
(
req
,
res
)
{
let
{
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
building
}
=
req
.
body
let
result
=
await
zaiFuBiz
.
dwEnterpriseTable
(
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
building
);
let
{
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
}
=
req
.
body
let
result
=
await
zaiFuBiz
.
dwEnterpriseTable
(
enterpriseName
,
type
,
logonStartTime
,
logonEndTime
,
startTime
,
endTime
,
building
);
// let {enterpriseName, type, files} = req.body
// let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, files);
...
...
src/routers/dbinit.ts
View file @
3058730a
...
...
@@ -243,76 +243,76 @@ export async function data1210(req, res) {
if
(
subList
[
31
])
{
for
(
let
i
=
0
;
i
<
parseInt
(
subList
[
31
]);
i
++
)
{
let
enterprise_2022iprInfo
=
{
iprId
:
randomId
(
TABLEID
.
知识产权
),
eId
,
year
:
getMySqlMs
(
"2022-01-01 00:00:00"
),
number
:
1
,
iprType
:
IPRALLTYPE
.
软件著作权
,
selectedValue
:
null
,
iprName
:
null
,
iprUrl
:
null
,
// softwareCopyrightCount:null,
// inventionPatentCount:null,
// overseasPatentCount:null,
// plantVarietyCount:null,
// icLayoutCount:null,
//
for(let i = 0; i < parseInt(subList[31]); i++) {
//
let enterprise_2022iprInfo = {
//
iprId:randomId(TABLEID.知识产权),
//
eId,
//
year:getMySqlMs("2022-01-01 00:00:00"),
//
number:1,
//
iprType:IPRALLTYPE.软件著作权,
//
selectedValue:null,
//
iprName:null,
//
iprUrl:null,
//
// softwareCopyrightCount:null,
//
// inventionPatentCount:null,
//
// overseasPatentCount:null,
//
// plantVarietyCount:null,
//
// icLayoutCount:null,
}
await
operationalData
(
OPERATIONALDATATYPE
.
增加
,
TABLENAME
.
知识产权
,
enterprise_2022iprInfo
,
{});
}
//
}
//
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022iprInfo, {});
//
}
}
if
(
subList
[
32
])
{
for
(
let
i
=
0
;
i
<
parseInt
(
subList
[
32
]);
i
++
)
{
let
enterprise_2023iprInfo
=
{
iprId
:
randomId
(
TABLEID
.
知识产权
),
eId
,
year
:
getMySqlMs
(
"2023-01-01 00:00:00"
),
number
:
1
,
iprType
:
IPRALLTYPE
.
软件著作权
,
selectedValue
:
null
,
iprName
:
null
,
iprUrl
:
null
,
// softwareCopyrightCount:null,
// inventionPatentCount:null,
// overseasPatentCount:null,
// plantVarietyCount:null,
// icLayoutCount:null,
}
await
operationalData
(
OPERATIONALDATATYPE
.
增加
,
TABLENAME
.
知识产权
,
enterprise_2023iprInfo
,
{});
}
//
for(let i = 0; i < parseInt(subList[32]); i++) {
//
let enterprise_2023iprInfo = {
//
iprId:randomId(TABLEID.知识产权),
//
eId,
//
year:getMySqlMs("2023-01-01 00:00:00"),
//
number:1,
//
iprType:IPRALLTYPE.软件著作权,
//
selectedValue:null,
//
iprName:null,
//
iprUrl:null,
//
// softwareCopyrightCount:null,
//
// inventionPatentCount:null,
//
// overseasPatentCount:null,
//
// plantVarietyCount:null,
//
// icLayoutCount:null,
//
}
//
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2023iprInfo, {});
//
}
}
if
(
subList
[
33
])
{
for
(
let
i
=
0
;
i
<
parseInt
(
subList
[
33
]);
i
++
)
{
let
enterprise_2022patent
=
{
iprId
:
randomId
(
TABLEID
.
知识产权
),
eId
,
year
:
getMySqlMs
(
"2022-01-01 00:00:00"
),
number
:
1
,
iprType
:
IPRALLTYPE
.
发明专利
,
selectedValue
:
null
,
iprName
:
null
,
iprUrl
:
null
,
}
await
operationalData
(
OPERATIONALDATATYPE
.
增加
,
TABLENAME
.
知识产权
,
enterprise_2022patent
,
{});
}
//
for(let i = 0; i < parseInt(subList[33]); i++) {
//
let enterprise_2022patent = {
//
iprId:randomId(TABLEID.知识产权),
//
eId,
//
year:getMySqlMs("2022-01-01 00:00:00"),
//
number:1,
//
iprType:IPRALLTYPE.发明专利,
//
selectedValue:null,
//
iprName:null,
//
iprUrl:null,
//
}
//
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022patent, {});
//
}
}
if
(
subList
[
34
])
{
for
(
let
i
=
0
;
i
<
parseInt
(
subList
[
34
]);
i
++
)
{
let
enterprise_2022patent
=
{
iprId
:
randomId
(
TABLEID
.
知识产权
),
eId
,
year
:
getMySqlMs
(
"2023-01-01 00:00:00"
),
number
:
1
,
iprType
:
IPRALLTYPE
.
发明专利
,
selectedValue
:
null
,
iprName
:
null
,
iprUrl
:
null
,
}
await
operationalData
(
OPERATIONALDATATYPE
.
增加
,
TABLENAME
.
知识产权
,
enterprise_2022patent
,
{});
}
//
for(let i = 0; i < parseInt(subList[34]); i++) {
//
let enterprise_2022patent = {
//
iprId:randomId(TABLEID.知识产权),
//
eId,
//
year:getMySqlMs("2023-01-01 00:00:00"),
//
number:1,
//
iprType:IPRALLTYPE.发明专利,
//
selectedValue:null,
//
iprName:null,
//
iprUrl:null,
//
}
//
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022patent, {});
//
}
}
if
(
subList
[
35
]
||
subList
[
36
]
||
subList
[
37
]
||
subList
[
38
])
{
...
...
src/routers/public.ts
View file @
3058730a
...
...
@@ -28,9 +28,7 @@ const config = {
"/public/policytype"
:
enumConfig
.
POLICYTYPE
,
// 政策文件类型
"/public/clientpolicytype"
:
enumConfig
.
CLIENTPOLICYTYPE
,
// 政策文件类型-前端用
"/public/building"
:
enumConfig
.
BUILDING
,
// 园区楼号
"/public/ipralltype"
:
enumConfig
.
IPRALLTYPE
,
//企查查知识产权类型
// "/public/output/basedata":outputEnumConfig.BASEDATA,
// "/public/output/opreatdata":outputEnumConfig.OPERATIONDATA,
// "/public/output/financingdata":outputEnumConfig.FINANCINGDATA,
...
...
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