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
cd9c50ab
Commit
cd9c50ab
authored
May 28, 2025
by
chenjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
ff053674
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 @
cd9c50ab
<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 @
cd9c50ab
This diff is collapsed.
Click to expand it.
src/biz/dataInit.ts
View file @
cd9c50ab
...
...
@@ -433,7 +433,7 @@ async function 工商信息(uscc) {
// isNaturalPersonHolding: 工商信息., //是否自然人控股
// industry: 工商信息., //领域
// moreMail: 工商信息., //更多邮箱
logonAddress
:
工商信息
.
Address
,
//注册地址
//
logonAddress: 工商信息.Address, //注册地址
// tongXinDiZhi: 工商信息., //通信地址
// liaison: 工商信息., //联系人
// liaisonPhone: 工商信息., //联系电话
...
...
src/biz/fuWu.ts
View file @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
This diff is collapsed.
Click to expand it.
src/config/eccParam/enterprise.ts
View file @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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 @
cd9c50ab
...
...
@@ -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