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
acb7ac54
Commit
acb7ac54
authored
Apr 22, 2025
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
7e809f25
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
269 additions
and
3 deletions
+269
-3
serverConfig.xml
serverConfig.xml
+5
-0
dataInit.ts
src/biz/dataInit.ts
+222
-0
ruFu.ts
src/biz/ruFu.ts
+6
-1
serverConfig.ts
src/config/serverConfig.ts
+4
-1
systemClass.ts
src/config/systemClass.ts
+4
-0
main.ts
src/main.ts
+2
-0
admin.ts
src/routers/admin.ts
+3
-1
dbinit.ts
src/routers/dbinit.ts
+6
-0
request.ts
src/util/request.ts
+17
-0
No files found.
serverConfig.xml
View file @
acb7ac54
...
...
@@ -4,4 +4,8 @@
<dbServer>
http://127.0.0.1:9096
</dbServer>
<imgUrl>
http://127.0.0.1:9098
</imgUrl>
<imgFileUrl>
http://192.168.0.189:9097
</imgFileUrl>
<qcc>
<key>
2b14555ce89346e8b96684e2e2a1c7c2
</key>
<SecretKey>
452AAE887A1CDCAB8C9D730BA8B8FBF0
</SecretKey>
</qcc>
</config>
\ No newline at end of file
src/biz/dataInit.ts
0 → 100644
View file @
acb7ac54
//初始化企查查数据
import
{
systemConfig
}
from
"../config/serverConfig"
;
import
{
onceSheetBecomeOfblockData
}
from
"../util/analysisExcel"
;
const
md5
=
require
(
"md5"
);
import
moment
=
require
(
"moment"
);
import
{
getQcc
}
from
"../util/request"
;
const
xlsx
=
require
(
'node-xlsx'
);
const
path
=
require
(
'path'
);
const
fs
=
require
(
'fs'
);
export
async
function
qccData
()
{
let
企业名单
=
onceSheetBecomeOfblockData
(
'在孵企业导入1210.xlsx'
,
"Sheet1"
);
let
dataList
=
企业名单
[
0
].
blockData
;
let
titleList
=
[
"企业名称"
,
"注册时间"
,
"注册地址"
,
"注册资本"
,
"实缴资本"
,
"上市类型"
,
"投资人"
,
"联系方式"
,
"行业分类"
,
"标签"
,
"软著"
,
"风险提示"
,
"专利数"
,
"失信核查"
,
"资质数量"
,
"融资信息"
];
let
excelList
=
[
titleList
];
for
(
let
i
=
1
;
i
<
dataList
.
length
;
i
++
)
{
let
uscc
=
dataList
[
i
][
6
];
let
res
=
await
同步数据
(
uscc
);
excelList
.
push
(
res
);
console
.
log
(
i
);
}
let
data
=
[
{
name
:
"sheet1"
,
data
:
excelList
}
];
let
buff
=
xlsx
.
build
(
data
);
fs
.
writeFileSync
(
path
.
join
(
__dirname
.
substring
(
0
,
__dirname
.
indexOf
(
"out"
)),
"res"
,
'在孵企业excel.xlsx'
),
buff
);
console
.
log
();
}
async
function
同步数据
(
uscc
:
string
)
{
const
TimeSpan
=
Math
.
round
(
new
Date
().
valueOf
()
/
1000
);
let
header
=
{
Token
:
md5
(
`
${
systemConfig
.
qccKey
}${
TimeSpan
}${
systemConfig
.
qccSecretKey
}
`
).
toUpperCase
(),
TimeSpan
};
let
query
=
{
key
:
systemConfig
.
qccKey
,
searchKey
:
uscc
,
// keyNo:"云合智网(上海)技术有限公司"
};
// let 工商信息:any = await getQcc('https://api.qichacha.com/ECIInfoVerify/GetInfo', query, header);//获取工商信息
await
工商信息
(
query
,
header
);
// //联系信息
// let TagListStr = "";//企业标签
// if (工商信息.TagList) {
// 工商信息.TagList.forEach(item => {
// TagListStr += `${item.Name};`
// });
// }
// let 著作权软著:any = await getQcc('https://api.qichacha.com/CopyRight/SearchCopyRight', query, header);
// let 准入尽职调查:any = await getQcc('https://api.qichacha.com/AcctScan/GetInfo', query, header);
// let 专利查询:any = await getQcc('https://api.qichacha.com/PatentV4/Search', query, header);
// let 失信核查:any = await getQcc('https://api.qichacha.com/ShixinCheck/GetList', query, header);
// let 资质证书:any = await getQcc('https://api.qichacha.com/ECICertification/SearchCertification', query, header);
// let 融资信息:any = await getQcc('https://api.qichacha.com/CompanyFinancingSearch/GetList', query, header);
return
[];
}
async
function
工商信息
(
query
,
header
)
{
let
keyDescMap
=
{
"Partners"
:
"工商登记股东信息(返回前100条)"
,
"Employees"
:
"主要人员(返回前100条)"
,
"Branches"
:
"分支机构(返回前100条)"
,
"ChangeRecords"
:
"变更信息(返回前100条)"
,
"ContactInfo"
:
"联系信息"
,
"Industry"
:
"国民行业分类"
,
"Area"
:
"行政区域"
,
"RevokeInfo"
:
"注销吊销信息"
,
"EmergingIndustyList"
:
"新兴行业分类(保留字段)"
,
"InsuredCount"
:
"参保人数"
,
"EnglishName"
:
"英文名"
,
"PersonScope"
:
"人员规模"
,
"IXCode"
:
"进出口企业代码"
,
"TagList"
:
"企业标签
\
企业画像"
,
"ARContactList"
:
"最新企业年报中的联系方式"
,
"EconKindCodeList"
:
"企业类型数组(具体枚举值请查看附件)"
,
"KeyNo"
:
"主键"
,
"QccCode"
:
"企查查编码(企查查科技股份有限公司推出,为全球各类商业实体提供唯一的识别码)"
,
"Name"
:
"企业名称"
,
"No"
:
"根据企业性质的不同返回不同的值,具体如下:EntType = 0/1/4/6/7/9/10/11/-1 中国境内企业时:该字段返回工商注册号;EntType = 3 中国香港企业时:该字段返回企业编号;EntType = 5 中国台湾企业时:该字段返回企业编号"
,
"BelongOrg"
:
"登记机关"
,
"OperId"
:
"法定代表人ID"
,
"OperName"
:
"法定代表人名称"
,
"StartDate"
:
"成立日期"
,
"EndDate"
:
"吊销日期"
,
"Status"
:
"登记状态"
,
"Province"
:
"省份"
,
"UpdatedDate"
:
"更新日期"
,
"CreditCode"
:
"根据企业性质的不同返回不同的值,具体如下:EntType = 0/1/4/6/7/9/10/11/-1 中国境内企业时:该字段返回统一社会信用代码;EntType = 3 中国香港企业时:该字段返回商业登记号码"
,
"RegistCapi"
:
"注册资本"
,
"RegisteredCapital"
:
"注册资本数额"
,
"RegisteredCapitalUnit"
:
"注册资本单位"
,
"RegisteredCapitalCCY"
:
"注册资本币种"
,
"EconKind"
:
"企业类型"
,
"Address"
:
"注册地址"
,
"Scope"
:
"经营范围"
,
"TermStart"
:
"营业期限始"
,
"TermEnd"
:
"营业 核准日期"
,
"OrgNo"
:
"组织机构代码"
,
"IsOnStock"
:
"是否上市(0-未上市,1-上市)"
,
"StockNumber"
:
"股票代码(如A股和港股同时存在,优先显示A股代码)"
,
"StockType"
:
"上市类型(A股、港股、美股、新三板、新四板)"
,
"OriginalName"
:
"曾用名"
,
"ImageUrl"
:
"企业Logo地址"
,
"EntType"
:
"企业性质,0-大陆企业,1-社会组织 ,3-中国香港公司,4-事业单位,5-中国台湾公司,6-基金会,7-医院,8-海外公司,9-律师事务所,10-学校 ,11-机关单位,-1-其他"
,
"RecCap"
:
"实缴资本"
,
"PaidUpCapital"
:
"实缴出资额数额"
,
"PaidUpCapitalUnit"
:
"实缴出资额单位"
,
"PaidUpCapitalCCY"
:
"实缴出资额币种"
,
"AreaCode"
:
"行政区划代码"
};
let
工商信息
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECIInfoVerify/GetInfo'
,
query
,
header
);
//获取工商信息
let
TagListStr
=
""
;
//企业标签
}
async
function
企查查数据集
(
uscc
)
{
const
TimeSpan
=
Math
.
round
(
new
Date
().
valueOf
()
/
1000
);
let
header
=
{
Token
:
md5
(
`
${
systemConfig
.
qccKey
}${
TimeSpan
}${
systemConfig
.
qccSecretKey
}
`
).
toUpperCase
(),
TimeSpan
};
let
query
=
{
key
:
systemConfig
.
qccKey
,
searchKey
:
uscc
,
// keyNo:"云合智网(上海)技术有限公司"
};
let
工商信息
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECIInfoVerify/GetInfo'
,
query
,
header
);
//获取工商信息
let
keyList
=
[
"Name"
,
"StartDate"
,
"Address"
,
"RegistCapi"
,
"RecCap"
,
"StockType"
];
let
dataList
=
[];
keyList
.
forEach
(
str
=>
{
dataList
.
push
(
工商信息
[
str
]
||
"-"
);
});
let
PartnersStr
=
""
;
//投资人
if
(
工商信息
.
Partners
)
{
工商信息
.
Partners
.
forEach
(
item
=>
{
PartnersStr
+=
`
${
item
.
StockName
}
:
${
item
.
StockPercent
}
;`
});
}
dataList
.
push
(
PartnersStr
);
dataList
.
push
(
工商信息
.
ContactInfo
.
PhoneNumber
||
"-"
);
dataList
.
push
(
工商信息
.
Industry
.
Industry
||
"-"
);
//联系信息
let
TagListStr
=
""
;
//企业标签
if
(
工商信息
.
TagList
)
{
工商信息
.
TagList
.
forEach
(
item
=>
{
TagListStr
+=
`
${
item
.
Name
}
;`
});
}
dataList
.
push
(
TagListStr
);
let
著作权软著
:
any
=
await
getQcc
(
'https://api.qichacha.com/CopyRight/SearchCopyRight'
,
query
,
header
);
let
著作权软著
Str
=
""
;
if
(
Object
.
keys
(
著作权软著
).
length
)
{
著作权软著
.
forEach
(
item
=>
{
著作权软著
Str
+=
item
.
Name
;
});
}
dataList
.
push
(
著作权软著
Str
);
let
准入尽职调查
:
any
=
await
getQcc
(
'https://api.qichacha.com/AcctScan/GetInfo'
,
query
,
header
);
let
风险
=
""
;
if
(
准入尽职调查
.
Data
)
{
准入尽职调查
.
Data
.
forEach
(
item
=>
{
风险
+=
item
.
Title
;
});
}
dataList
.
push
(
风险
);
let
专利查询
:
any
=
await
getQcc
(
'https://api.qichacha.com/PatentV4/Search'
,
query
,
header
);
let
专利查询
Str
=
0
;
if
(
Object
.
keys
(
专利查询
).
length
)
{
专利查询
.
forEach
(
item
=>
{
专利查询
Str
+=
item
.
items
.
length
;
})
}
dataList
.
push
(
专利查询
Str
);
let
失信核查
:
any
=
await
getQcc
(
'https://api.qichacha.com/ShixinCheck/GetList'
,
query
,
header
);
let
失信核查
Str
=
失信核查
.
VerifyResult
??
"-"
;
dataList
.
push
(
失信核查
Str
);
let
资质证书
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECICertification/SearchCertification'
,
query
,
header
);
let
资质证书
Str
=
0
;
if
(
Object
.
keys
(
资质证书
).
length
)
{
资质证书
Str
=
资质证书
.
length
;
}
dataList
.
push
(
资质证书
Str
);
let
融资信息
:
any
=
await
getQcc
(
'https://api.qichacha.com/CompanyFinancingSearch/GetList'
,
query
,
header
);
let
融资信息
Str
=
""
;
if
(
融资信息
.
Data
)
{
融资信息
.
Data
.
forEach
(
item
=>
{
融资信息
Str
+=
`
${
item
.
Amount
}
;`
})
}
dataList
.
push
(
融资信息
Str
);
return
dataList
;
}
\ No newline at end of file
src/biz/ruFu.ts
View file @
acb7ac54
...
...
@@ -190,9 +190,14 @@ export async function enterpriseRegisterExaminePass(eId:string) {
let
updateInfo
=
{
state
:
enumConfig
.
STATE
.
是
}
}
;
await
operationalData
(
OPERATIONALDATATYPE
.
修改
,
TABLENAME
.
企业基础信息表
,
updateInfo
,
{
eId
});
let
updateFuHuaInfo
=
{
state
:
enumConfig
.
FUHUASTATE
.
实体孵化
};
await
operationalData
(
OPERATIONALDATATYPE
.
修改
,
TABLENAME
.
企业孵化信息
,
updateFuHuaInfo
,
{
eId
});
return
{
isSuccess
:
true
};
}
...
...
src/config/serverConfig.ts
View file @
acb7ac54
...
...
@@ -16,7 +16,7 @@ export async function initConfig() {
if
(
!
configInfo
||
!
configInfo
.
config
)
throw
new
BizError
(
'xml中无配置'
);
else
{
let
{
port
,
sign
,
dbServer
,
imgUrl
,
imgFileUrl
}
=
configInfo
.
config
;
let
{
port
,
sign
,
dbServer
,
imgUrl
,
imgFileUrl
,
qcc
}
=
configInfo
.
config
;
systemConfig
.
port
=
parseInt
(
port
[
0
]);
systemConfig
.
dbSign
=
sign
[
0
];
...
...
@@ -25,6 +25,9 @@ export async function initConfig() {
systemConfig
.
imgUrl
=
imgUrl
[
0
];
systemConfig
.
imgFileUrl
=
imgFileUrl
[
0
];
systemConfig
.
qccKey
=
qcc
[
0
].
key
[
0
];
systemConfig
.
qccSecretKey
=
qcc
[
0
].
SecretKey
[
0
];
}
console
.
log
(
"config init success"
);
...
...
src/config/systemClass.ts
View file @
acb7ac54
...
...
@@ -10,4 +10,7 @@ export class ServerConfig {
dbPath
:
String
;
imgUrl
:
String
;
imgFileUrl
:
String
;
/**企查查 */
qccKey
:
string
;
qccSecretKey
:
string
;
}
\ No newline at end of file
src/main.ts
View file @
acb7ac54
import
{
qccData
}
from
"./biz/dataInit"
;
import
{
initConfig
,
systemConfig
}
from
"./config/serverConfig"
;
import
{
httpServer
}
from
"./net/http_server"
;
...
...
@@ -6,6 +7,7 @@ async function lanuch() {
await
initConfig
();
httpServer
.
createServer
(
systemConfig
.
port
);
console
.
log
(
'This indicates that the server is started successfully.'
);
// await qccData();
}
...
...
src/routers/admin.ts
View file @
acb7ac54
...
...
@@ -26,7 +26,7 @@ export function setRouter(httpServer) {
httpServer
.
post
(
'/admin/enterprise/settlein/out'
,
checkUser
,
asyncHandler
(
settleInOut
));
//审核
httpServer
.
post
(
'/admin/enterprise/settlein/examine/list'
,
checkUser
,
asyncHandler
(
examineSettleIn
));
httpServer
.
post
(
'/admin/enterprise/settlein/examine/pass'
,
checkUser
,
asyncHandler
(
examineSettleInPass
));
httpServer
.
post
(
'/admin/enterprise/settlein/examine/pass'
,
checkUser
,
asyncHandler
(
examineSettleInPass
));
//入孵材料审核 通过
httpServer
.
post
(
'/admin/enterprise/settlein/examine/out'
,
checkUser
,
asyncHandler
(
examineSettleInOut
));
// //通知
...
...
@@ -804,6 +804,8 @@ async function examineSettleIn(req, res) {
res
.
success
(
result
);
}
//入孵材料审核 通过
async
function
examineSettleInPass
(
req
,
res
)
{
const
UserInfo
=
req
.
userInfo
;
...
...
src/routers/dbinit.ts
View file @
acb7ac54
...
...
@@ -308,3 +308,8 @@ function getExcel(filePath) {
return
{
sheetMap
,
sheetList
}
}
export
async
function
asyncqccdata
(
req
,
res
)
{
}
\ No newline at end of file
src/util/request.ts
View file @
acb7ac54
...
...
@@ -27,6 +27,23 @@ export function get(url:string, query?, headers?) {
}
export
function
getQcc
(
url
:
string
,
query
?,
headers
?)
{
if
(
!
url
||
(
url
.
search
(
/http:/
)
&&
url
.
search
(
/https:/
))
)
throw
new
BizError
(
!
url
?
"请求地址为空"
:
"请求地址错误"
);
return
new
Promise
((
resolve
,
reject
)
=>
{
let
paramater
:
any
=
{
url
,
json
:
true
};
if
(
query
)
paramater
.
qs
=
query
;
if
(
headers
)
paramater
.
headers
=
headers
;
request
.
get
(
paramater
,
function
(
err
,
r
,
body
)
{
if
(
err
)
return
reject
(
err
);
if
(
body
)
{
if
(
body
.
Status
==
200
)
return
resolve
(
body
.
Result
);
else
if
(
body
.
Status
==
201
)
return
resolve
({});
}
return
reject
(
new
Error
(
'httpError:'
+
r
.
statusCode
));
});
})
}
export
function
post
(
url
,
body
,
headers
)
{
if
(
!
url
||
(
url
.
search
(
/http:/
)
&&
url
.
search
(
/https:/
))
)
throw
new
BizError
(
!
url
?
"请求地址为空"
:
"请求地址错误"
);
let
header
=
{
"content-type"
:
"application/json"
};
...
...
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