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
a0806426
Commit
a0806426
authored
May 15, 2025
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
897d59a7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
717 additions
and
104 deletions
+717
-104
在孵企业excel.xlsx
res/在孵企业excel.xlsx
+0
-0
科学城在孵企业.xlsx
res/科学城在孵企业.xlsx
+0
-0
dataInit.ts
src/biz/dataInit.ts
+624
-93
dbEnum.ts
src/config/enum/dbEnum.ts
+31
-3
enum.ts
src/config/enum/enum.ts
+53
-1
main.ts
src/main.ts
+1
-1
dbinit.ts
src/routers/dbinit.ts
+3
-4
request.ts
src/util/request.ts
+5
-2
No files found.
res/在孵企业excel.xlsx
0 → 100644
View file @
a0806426
File added
res/科学城在孵企业.xlsx
0 → 100644
View file @
a0806426
File added
src/biz/dataInit.ts
View file @
a0806426
...
...
@@ -5,38 +5,117 @@ import { onceSheetBecomeOfblockData } from "../util/analysisExcel";
const
md5
=
require
(
"md5"
);
import
moment
=
require
(
"moment"
);
import
{
getQcc
}
from
"../util/request"
;
import
{
OPERATIONALDATATYPE
,
TABLEID
,
TABLENAME
}
from
"../config/enum/dbEnum"
;
import
{
operationalData
,
selectData
}
from
"../data/operationalData"
;
import
{
getMySqlMs
,
randomId
}
from
"../tools/system"
;
import
{
FINANCINGROUNDS
,
IPRALLTYPE
}
from
"../config/enum/enum"
;
import
{
table
}
from
"console"
;
import
{
changeEnumValue
}
from
"../util/verificationEnum"
;
const
xlsx
=
require
(
'node-xlsx'
);
const
path
=
require
(
'path'
);
const
fs
=
require
(
'fs'
);
/**
* 获取当个excel文件数据
* @param filePath
* @returns
*/
function
getExcel
(
filePath
)
{
const
workSheetsFromFile
=
xlsx
.
parse
(
filePath
);
let
sheetMap
=
{};
let
sheetList
=
[];
for
(
let
i
=
0
;
i
<
workSheetsFromFile
.
length
;
i
++
)
{
let
sheetInfo
=
workSheetsFromFile
[
i
];
sheetMap
[
sheetInfo
.
name
]
=
sheetInfo
.
data
;
sheetList
.
push
(
sheetInfo
);
}
return
{
sheetMap
,
sheetList
}
}
export
async
function
统计
()
{
let
iMap
=
领域补充
();
let
fuhuaqiExcelData
=
getExcel
(
path
.
join
(
__dirname
.
substring
(
0
,
__dirname
.
indexOf
(
"out"
)),
"res"
,
'在孵企业导入_孵化器提供1210.xlsx'
));
let
data2List
=
fuhuaqiExcelData
.
sheetMap
[
'雨艺孵化器孵化企业明细'
];
let
{
sheetMap
}
=
getExcel
(
path
.
join
(
__dirname
.
substring
(
0
,
__dirname
.
indexOf
(
"out"
)),
"res"
,
'在孵企业导入1210.xlsx'
));
let
dataList
=
sheetMap
[
'Sheet1'
];
let
usccMap
=
{};
dataList
.
forEach
(
subList
=>
{
usccMap
[
subList
[
0
]]
=
subList
[
6
];
})
let
dataMap
=
{};
for
(
let
i
=
0
;
i
<
data2List
.
length
;
i
++
)
{
let
subList
=
data2List
[
i
];
if
(
!
i
)
continue
;
let
uscc
=
usccMap
[
subList
[
1
]];
let
industry
=
iMap
[
uscc
];
let
室号
=
subList
[
3
];
let
楼栋
=
室号
.
substring
(
0
,
室号
.
indexOf
(
"-"
));
if
(
industry
)
{
if
(
industry
.
indexOf
(
","
)
>
-
1
)
industry
=
industry
.
substring
(
0
,
industry
.
indexOf
(
","
));
else
industry
=
industry
;
}
else
{
industry
=
""
;
console
.
log
(
楼栋
,
subList
[
1
])
}
let
规模
=
await
获取规模
(
uscc
);
if
(
!
dataMap
[
楼栋
])
dataMap
[
楼栋
]
=
{};
if
(
!
dataMap
[
楼栋
][
industry
])
dataMap
[
楼栋
][
industry
]
=
{};
if
(
!
dataMap
[
楼栋
][
industry
][
规模
])
dataMap
[
楼栋
][
industry
][
规模
]
=
0
;
dataMap
[
楼栋
][
industry
][
规模
]
+=
1
;
console
.
log
();
}
console
.
log
();
}
export
async
function
test
()
{
let
uscc
=
"91310115MADM8EA654"
;
await
工商信息
(
uscc
);
await
软件著作
(
uscc
);
await
国际专利
(
uscc
);
await
专利查询
(
uscc
);
await
融资信息核查
(
uscc
);
console
.
log
();
}
export
async
function
获取规模
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
工商信息
:
any
=
await
getQcc
(
'https://api.qichacha.com/CustomerDueDiligence/KYC'
,
query
,
header
);
//获取工商信息
return
工商信息
.
Data
.
Scale
;
}
export
async
function
qccData
()
{
// test();
统计
();
return
let
iMap
=
await
领域补充
();
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
);
if
(
!
iMap
[
uscc
])
console
.
log
(
dataList
[
i
][
0
]);
continue
;
await
awaitData
(
uscc
);
console
.
log
(
`
${
dataList
[
i
][
1
]}
同步成功, 下标
${
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
();
}
let
enterpriseList
=
await
selectData
(
OPERATIONALDATATYPE
.
查询多个
,
TABLENAME
.
企业基础信息表
,
{},
[
"eId"
,
"uscc"
,
"enterpriseName"
]);
}
async
function
同步数据
(
uscc
:
string
)
{
function
getReqParam
(
uscc
)
{
const
TimeSpan
=
Math
.
round
(
new
Date
().
valueOf
()
/
1000
);
let
header
=
{
Token
:
md5
(
`
${
systemConfig
.
qccKey
}${
TimeSpan
}${
systemConfig
.
qccSecretKey
}
`
).
toUpperCase
(),
...
...
@@ -47,89 +126,541 @@ async function 同步数据(uscc:string) {
searchKey
:
uscc
,
// keyNo:"云合智网(上海)技术有限公司"
};
// let 工商信息:any = await getQcc('https://api.qichacha.com/ECIInfoVerify/GetInfo', query, header);//获取工商信息
await
工商信息
(
query
,
header
);
return
{
header
,
query
};
}
async
function
addManyData
(
tableName
,
dataList
)
{
return
;
for
(
let
i
=
0
;
i
<
dataList
.
length
;
i
++
)
{
let
info
=
dataList
[
i
];
await
operationalData
(
OPERATIONALDATATYPE
.
增加
,
tableName
,
info
,
null
);
}
console
.
log
(
tableName
,
"写入成功"
);
}
async
function
awaitData
(
uscc
:
string
)
{
await
工商信息
(
uscc
);
await
软件著作
(
uscc
);
// await 主要人员(uscc);
// await 分支机构(uscc);
// await 行政许可核查(uscc);
// await 空壳扫描(uscc);
// await 准入尽职调查(uscc);
// await 融资信息核查(uscc);
await
国际专利
(
uscc
);
// await 科创分(uscc);
// await 资质证书(uscc);
// await 专利查询(uscc);
// await 失信核查(uscc);
// await 严重违法核查(uscc);
// await 企业对外投资核查(uscc);
console
.
log
(
"企查查数据同步成功"
);
}
function
领域补充
()
{
let
企业名单
=
onceSheetBecomeOfblockData
(
'科学城在孵企业.xlsx'
,
"Sheet1"
);
let
dataList
=
企业名单
[
0
].
blockData
;
let
map
=
{};
dataList
.
forEach
((
sub
,
index
)
=>
{
if
(
!
index
)
return
;
map
[
sub
[
6
]]
=
sub
[
7
];
});
return
map
;
}
async
function
工商信息
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
// //联系信息
// 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);
let
工商信息
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECIInfoVerify/GetInfo'
,
query
,
header
);
//获取工商信息
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
//股权结构
if
(
工商信息
.
Partners
)
{
let
ownershipList
=
[];
工商信息
.
Partners
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
owId
:
randomId
(
TABLEID
.
股权结构
),
eId
,
name
:
info
.
StockName
,
finalBenefitPercent
:
info
.
FinalBenefitPercent
,
stockPercent
:
info
.
StockPercent
,
stockType
:
info
.
StockType
,
realCapi
:
info
.
RealCapi
,
paidUpCapitalUnit
:
info
.
PaidUpCapitalUnit
,
subscribedCapital
:
info
.
SubscribedCapital
,
subscribedCapitalUnit
:
info
.
SubscribedCapitalUnit
,
};
if
(
info
.
CapiDate
)
addInfo
.
capiDate
=
getMySqlMs
(
info
.
CapiDate
);
if
(
info
.
ShoudDate
)
addInfo
.
shoudDate
=
getMySqlMs
(
info
.
ShoudDate
);
ownershipList
.
push
(
addInfo
);
});
await
addManyData
(
TABLENAME
.
股权结构
,
ownershipList
);
}
if
(
工商信息
.
TagList
)
{
let
enterpriseLabelList
=
[];
工商信息
.
TagList
.
forEach
(
info
=>
{
enterpriseLabelList
.
push
({
elId
:
randomId
(
TABLEID
.
企业标签表
),
eId
,
type
:
info
.
Type
,
labelName
:
info
.
Name
,
});
});
await
addManyData
(
TABLENAME
.
企业标签表
,
enterpriseLabelList
);
}
if
(
工商信息
.
Industry
)
{
let
industryInfo
=
{
eiId
:
randomId
(
TABLEID
.
行业信息分类
),
eId
,
industryCode
:
工商信息
.
Industry
.
IndustryCode
,
//行业门类code
industry
:
工商信息
.
Industry
.
Industry
,
//行业门类描述
subIndustryCode
:
工商信息
.
Industry
.
SubIndustryCode
,
//行业大类code
subIndustry
:
工商信息
.
Industry
.
SubIndustry
,
//行业大类描述
middleCategoryCode
:
工商信息
.
Industry
.
MiddleCategoryCode
,
//行业中类code
middleCategory
:
工商信息
.
Industry
.
MiddleCategory
,
//行业中类描述
smallCategoryCode
:
工商信息
.
Industry
.
SmallCategoryCode
,
//行业小类code
smallCategory
:
工商信息
.
Industry
.
SmallCategory
,
//行业小类描述
};
await
addManyData
(
TABLENAME
.
行业信息分类
,
[
industryInfo
]);
}
if
(
工商信息
.
ChangeRecords
)
{
let
infoupdateList
=
[];
工商信息
.
ChangeRecords
.
forEach
(
info
=>
{
infoupdateList
.
push
({
updateId
:
randomId
(
TABLEID
.
变更信息表
),
eId
,
afterContent
:
info
.
AfterContent
,
//变更前
beforeContent
:
info
.
BeforeContent
,
//变更后
changeDate
:
getMySqlMs
(
info
.
ChangeDate
),
//变更时间
projectName
:
info
.
ProjectName
,
//变更类型
});
});
await
addManyData
(
TABLENAME
.
变更信息表
,
infoupdateList
);
}
return
}
async
function
软件著作
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
著作权软著
:
any
=
await
getQcc
(
'https://api.qichacha.com/CopyRight/SearchCopyRight'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
Array
.
isArray
(
著作权软著
))
{
let
addList
=
[];
著作权软著
.
forEach
(
info
=>
{
addList
.
push
({
iprId
:
randomId
(
TABLEID
.
知识产权
),
eId
,
year
:
getMySqlMs
(
info
.
RegisterDate
),
number
:
1
,
iprType
:
IPRALLTYPE
.
软件著作权
,
iprName
:
info
.
Name
,
category
:
info
.
Category
,
});
});
await
addManyData
(
TABLENAME
.
知识产权
,
addList
);
}
console
.
log
();
}
async
function
主要人员
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
主要人员数据
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECIEmployee/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
Array
.
isArray
(
主要人员数据
))
{
let
addList
=
[];
主要人员数据
.
forEach
(
info
=>
{
addList
.
push
({
emId
:
randomId
(
TABLEID
.
主要人员
),
eId
,
job
:
info
.
Job
,
name
:
info
.
Name
});
});
await
addManyData
(
TABLENAME
.
主要人员
,
addList
);
}
}
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
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
分支机构数据
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECIBranch/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
Array
.
isArray
(
分支机构数据
))
{
let
addList
=
[];
分支机构数据
.
forEach
(
info
=>
{
addList
.
push
({
brId
:
randomId
(
TABLEID
.
分支机构
),
eId
,
name
:
info
.
Name
,
status
:
info
.
Status
,
employeesName
:
info
.
OperInfo
.
Name
});
});
await
addManyData
(
TABLENAME
.
分支机构
,
addList
);
}
}
async
function
行政许可核查
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
行政许可核查数据
:
any
=
await
getQcc
(
'https://api.qichacha.com/AdminLicenseCheck/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
行政许可核查数据
.
Data
)
{
let
addList
=
[];
行政许可核查数据
.
Data
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
liId
:
randomId
(
TABLEID
.
行政许可核查
),
eId
,
source
:
info
.
Source
,
licenseNo
:
info
.
LicenseNo
,
licenseName
:
info
.
LicenseName
,
licensOffice
:
info
.
LicensOffice
,
licensContent
:
info
.
LicensContent
,
documentNo
:
info
.
DocumentNo
,
permissionNo
:
info
.
PermissionNo
,
};
if
(
info
.
ValidityFrom
)
addInfo
.
validityFrom
=
getMySqlMs
(
info
.
ValidityFrom
);
if
(
info
.
ValidityTo
)
addInfo
.
validityTo
=
getMySqlMs
(
info
.
ValidityTo
);
addList
.
push
(
addInfo
);
});
await
addManyData
(
TABLENAME
.
行政许可核查
,
addList
);
}
}
async
function
空壳扫描
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/ShellScan/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
addList
.
push
({
emptyId
:
randomId
(
TABLEID
.
空壳扫描
),
eId
,
title
:
info
.
Title
,
description
:
info
.
Description
,
});
});
await
addManyData
(
TABLENAME
.
空壳扫描
,
addList
);
}
}
async
function
准入尽职调查
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/AcctScan/GetInfo'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
addList
.
push
({
riskId
:
randomId
(
TABLEID
.
风险
),
eId
,
title
:
info
.
Title
,
description
:
info
.
Description
,
passage
:
info
.
Passage
,
riskType
:
info
.
RiskType
,
typeCode
:
parseInt
(
info
.
TypeCode
),
});
});
await
addManyData
(
TABLENAME
.
风险
,
addList
);
}
}
function
getFinancingRounds
(
str
)
{
if
(
str
.
indexOf
(
"天使"
))
return
FINANCINGROUNDS
.
天使投资
;
if
(
str
.
indexOf
(
"种子"
))
return
FINANCINGROUNDS
.
种子轮
;
if
(
str
.
indexOf
(
"A"
))
return
FINANCINGROUNDS
.
A
轮
;
if
(
str
.
indexOf
(
"B"
))
return
FINANCINGROUNDS
.
B
轮
;
if
(
str
.
indexOf
(
"C"
))
return
FINANCINGROUNDS
.
C
轮
;
if
(
str
.
indexOf
(
"以上"
))
return
FINANCINGROUNDS
.
C
轮以上
;
return
FINANCINGROUNDS
.
天使投资
;
}
async
function
融资信息核查
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/CompanyFinancingSearch/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
addList
.
push
({
rId
:
randomId
(
TABLEID
.
企业融资
),
eId
,
financingAmount
:
isNaN
(
info
.
Amoun
)
?
0
:
parseFloat
(
info
.
Amount
),
financingRounds
:
getFinancingRounds
(
info
.
Round
),
investmentDate
:
getMySqlMs
(
info
.
Date
),
investmentInstitutionsName
:
info
.
Investment
,
});
});
await
addManyData
(
TABLENAME
.
企业融资
,
addList
);
}
}
async
function
国际专利
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/InternationalPatentCheck/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
addList
.
push
({
iprId
:
randomId
(
TABLEID
.
知识产权
),
eId
,
year
:
getMySqlMs
(
info
.
PublicationDate
),
number
:
1
,
iprType
:
IPRALLTYPE
.
海外专利
,
iprName
:
info
.
Title
,
});
});
await
addManyData
(
TABLENAME
.
知识产权
,
addList
);
}
}
async
function
科创分
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/TechScore/GetInfo'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addInfo
=
{
stemId
:
randomId
(
TABLEID
.
科创分
),
eId
,
industry
:
qccselectdata
.
Data
.
Industry
.
Industry
,
subIndustry
:
qccselectdata
.
Data
.
Industry
.
SubIndustry
,
industryRanking
:
qccselectdata
.
Data
.
IndustryRanking
,
score
:
qccselectdata
.
Data
.
Score
,
};
await
addManyData
(
TABLENAME
.
科创分
,
[
addInfo
]);
}
}
async
function
资质证书
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/ECICertification/SearchCertification'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
Array
.
isArray
(
qccselectdata
))
{
let
addList
=
[];
qccselectdata
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
cerId
:
randomId
(
TABLEID
.
资质证书
),
eId
,
name
:
info
.
Name
,
type
:
info
.
Type
,
no
:
info
.
No
,
typeDesc
:
info
.
TypeDesc
,
institutionList
:
info
.
InstitutionList
?
info
.
InstitutionList
[
0
]
:
""
,
status
:
info
.
Status
,
};
if
(
info
.
StartDate
)
addInfo
.
startDate
=
getMySqlMs
(
info
.
StartDate
)
if
(
info
.
EndDate
)
addInfo
.
endDate
=
getMySqlMs
(
info
.
EndDate
)
addList
.
push
(
addInfo
);
});
await
addManyData
(
TABLENAME
.
资质证书
,
addList
);
}
}
async
function
专利查询
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/PatentV4/Search'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
Array
.
isArray
(
qccselectdata
))
{
console
.
log
();
//todo 没有做
let
addList
=
[];
qccselectdata
.
forEach
(
info
=>
{
addList
.
push
({
iprId
:
randomId
(
TABLEID
.
知识产权
),
});
});
}
console
.
log
();
}
async
function
失信核查
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/ShixinCheck/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
disId
:
randomId
(
TABLEID
.
失信核查
),
eId
,
anno
:
info
.
Anno
,
executegov
:
info
.
Executegov
,
executestatus
:
info
.
Executestatus
,
executeno
:
info
.
Executeno
,
actionRemark
:
info
.
ActionRemark
,
amount
:
info
.
Amount
,
};
if
(
info
.
Liandate
)
addInfo
.
liandate
=
getMySqlMs
(
info
.
Liandate
);
if
(
info
.
Publicdate
)
addInfo
.
publicdate
=
getMySqlMs
(
info
.
Publicdate
);
addList
.
push
(
addInfo
);
});
await
addManyData
(
TABLENAME
.
失信核查
,
addList
);
}
}
async
function
严重违法核查
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/SeriousIllegalCheck/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
stemId
:
randomId
(
TABLEID
.
严重违法犯罪
),
eId
,
type
:
info
.
Type
,
addReason
:
info
.
AddReason
,
addOffice
:
info
.
AddOffice
,
removeReason
:
info
.
RemoveReason
,
removeOffice
:
info
.
RemoveOffice
,
};
if
(
info
.
AddDate
)
addInfo
.
addDate
=
getMySqlMs
(
info
.
AddDate
);
if
(
info
.
RemoveDate
)
addInfo
.
removeDate
=
getMySqlMs
(
info
.
RemoveDate
);
addList
.
push
(
addInfo
);
});
await
addManyData
(
TABLENAME
.
严重违法犯罪
,
addList
);
}
}
async
function
企业对外投资核查
(
uscc
)
{
let
{
header
,
query
}
=
getReqParam
(
uscc
);
let
qccselectdata
:
any
=
await
getQcc
(
'https://api.qichacha.com/InvestmentCheck/GetList'
,
query
,
header
);
let
enterpriseInfo
=
await
selectData
(
OPERATIONALDATATYPE
.
查询单个
,
TABLENAME
.
企业基础信息表
,
{
uscc
},
[
"eId"
]);
let
eId
=
enterpriseInfo
.
eId
;
if
(
qccselectdata
.
Data
)
{
let
addList
=
[];
qccselectdata
.
Data
.
forEach
(
info
=>
{
let
addInfo
:
any
=
{
oilId
:
randomId
(
TABLENAME
.
对外投资
),
eId
,
name
:
info
.
Name
,
registCapi
:
info
.
RegistCapi
,
registeredCapital
:
info
.
RegisteredCapital
,
registeredCapitalUnit
:
info
.
RegisteredCapitalUnit
,
registeredCapitalCCY
:
info
.
RegisteredCapitalCCY
,
fundedRatio
:
info
.
FundedRatio
,
shouldCapi
:
info
.
ShouldCapi
,
subscribedCapital
:
info
.
SubscribedCapital
,
subscribedCapitalUnit
:
info
.
SubscribedCapitalUnit
,
subscribedCapitalCCY
:
info
.
SubscribedCapitalCCY
,
status
:
info
.
Status
,
operName
:
info
.
Oper
.
Name
};
if
(
info
.
StartDate
)
addInfo
.
StartDate
=
getMySqlMs
(
addInfo
.
StartDate
);
if
(
info
.
investDate
)
addInfo
.
InvestDate
=
getMySqlMs
(
addInfo
.
InvestDate
);
addList
.
push
(
addInfo
);
});
await
addManyData
(
TABLENAME
.
对外投资
,
addList
);
}
}
// async function 企业年报信息(uscc, query, header) {
// let qccselectdata:any = await getQcc('https://api.qichacha.com/AR/GetAnnualReport', query, header);
// let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {uscc}, ["eId"]);
// let eId = enterpriseInfo.eId;
// if (qccselectdata.Data) {
// let addList = [];
// qccselectdata.Data.forEach(info => {
// addList.push({
// stemId:randomId(TABLENAME.知识产权),
// eId,
// industry:info.Industry,
// subIndustry:info.SubIndustry,
// industryRanking:info.IndustryRanking,
// score:info.Score,
// });
// });
// }
// console.log();
// }
async
function
企查查数据集
(
uscc
)
{
const
TimeSpan
=
Math
.
round
(
new
Date
().
valueOf
()
/
1000
);
...
...
src/config/enum/dbEnum.ts
View file @
a0806426
...
...
@@ -37,8 +37,21 @@ export enum TABLENAME {
企业服务表
=
'enterprise_service'
,
企业基础信息表
=
'enterprise'
,
政策表
=
'policy'
,
管理后台用户
=
'adminUser'
管理后台用户
=
'adminUser'
,
//以下为新表
变更信息表
=
"info_update"
,
企业标签表
=
"enterprise_label"
,
股权结构
=
"ownership"
,
行业信息分类
=
"enterprise_industry"
,
主要人员
=
"employees"
,
分支机构
=
"branches"
,
行政许可核查
=
"license"
,
空壳扫描
=
"empty"
,
风险
=
"enterprise_risk"
,
科创分
=
"enterprise_stem"
,
资质证书
=
"certification"
,
失信核查
=
"dishonesty"
,
严重违法犯罪
=
"break_the_law"
,
对外投资
=
"overseas_investment"
}
export
enum
TABLEID
{
...
...
@@ -60,5 +73,19 @@ export enum TABLEID {
企业服务表
=
'es'
,
企业基础信息表
=
'e'
,
图片存储
=
'img'
,
政策表
=
'zc'
政策表
=
'zc'
,
变更信息表
=
"iu"
,
企业标签表
=
"el"
,
股权结构
=
"os"
,
行业信息分类
=
"ei"
,
主要人员
=
"em"
,
分支机构
=
"br"
,
行政许可核查
=
"li"
,
空壳扫描
=
"emp"
,
风险
=
"er"
,
科创分
=
"stem"
,
资质证书
=
"cc"
,
失信核查
=
"dis"
,
严重违法犯罪
=
"bt"
,
对外投资
=
"ot"
}
\ No newline at end of file
src/config/enum/enum.ts
View file @
a0806426
...
...
@@ -221,4 +221,56 @@ export enum IPRTYPECLIENTZL {
export
enum
RISKTYPE
{
严重违法失信
=
1510
,
股权冻结
=
1810
,
股权出质
=
2510
,
被列入失信
=
1710
,
被列入经营异常
_l
未移出
_r
=
1610
,
法定代表人频繁变更
=
2610
,
大股东频繁变更
=
2710
,
实际控制人频繁变更
=
2810
,
联系方式或注册地址重复
=
2010
,
法定代表人失信
=
3010
,
来自
I
类高风险
=
1410
,
来自
II
类
_dIII
类高风险
=
1411
,
同实际控制人企业众多
=
2310
,
关联企业注册地分散
=
2210
,
简易注销
=
5010
,
税收违法
=
5020
,
抽查检查不合格
=
5030
,
环保处罚
=
5040
,
疑似洗钱风险
=
6101
,
疑似停业
_d
歇业
_d
停产或被吊销证照
=
6314
,
控制权分散
=
6803
,
历史经营异常
=
6908
,
同注册地址企业存在异常
=
6599
,
同联系方式企业存在异常
=
6499
,
关联企业存在司法风险
=
6707
,
关联企业存在违法事项
=
6706
,
关联企业涉高风险行业
=
6710
,
分支机构存在关联风险
=
6807
,
分支机构中企业存在异常
=
6899
,
关联企业集中注册
=
6709
,
受益所有人控制企业众多
=
6613
,
所有权与经营权分离
=
6802
,
实控人控制企业司法风险
=
6606
,
实控人控制企业洗钱风险
=
6607
,
实控人控制企业集中注册
=
6609
,
实控人控制企业行业风险
=
6610
,
实控人控制企业地区风险
=
6611
,
实控人控制企业地区风险高
=
6612
,
经营范围频繁变更
=
6904
,
注册地址频繁变更
=
6905
,
企业名称频繁变更
=
6906
,
注册资本降幅过大
=
6907
,
关联方成员企业存在异常
=
7099
,
主要人员存在外部关联风险
=
6999
,
公安通告
=
1311
,
支付许可中止或到期
=
1312
,
被列入被执行人
=
1711
,
注销备案
=
1611
,
负面新闻
=
6318
,
破产重整
=
2520
,
监管处罚
=
5050
}
src/main.ts
View file @
a0806426
...
...
@@ -7,7 +7,7 @@ async function lanuch() {
await
initConfig
();
httpServer
.
createServer
(
systemConfig
.
port
);
console
.
log
(
'This indicates that the server is started successfully.'
);
//
await qccData();
await
qccData
();
}
...
...
src/routers/dbinit.ts
View file @
a0806426
...
...
@@ -9,6 +9,7 @@ import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from '../config/enum/dbEnum';
import
{
changeEnumValue
}
from
'../util/verificationEnum'
;
import
{
DEGREE
,
FUHUASTATE
,
IPRALLTYPE
,
ZZMM
}
from
'../config/enum/enum'
;
import
{
operationalData
}
from
'../data/operationalData'
;
import
{
onceSheetBecomeOfblockData
}
from
'../util/analysisExcel'
;
const
xlsx
=
require
(
'node-xlsx'
);
const
path
=
require
(
'path'
);
const
fs
=
require
(
'fs'
);
...
...
@@ -18,7 +19,6 @@ export function setRouter(httpServer) {
httpServer
.
post
(
'/admin/data/maintenance/datainit/1210'
,
checkInterior
,
asyncHandler
(
data1210
));
}
export
async
function
data1210
(
req
,
res
)
{
//读取文件
let
{
sheetMap
}
=
getExcel
(
path
.
join
(
__dirname
.
substring
(
0
,
__dirname
.
indexOf
(
"out"
)),
"res"
,
'在孵企业导入1210.xlsx'
));
...
...
@@ -86,7 +86,6 @@ export async function data1210(req, res) {
}
//
let
去重
=
{};
for
(
let
i
=
1
;
i
<
data2List
.
length
;
i
++
)
{
let
subList
=
data2List
[
i
];
...
...
@@ -96,7 +95,6 @@ export async function data1210(req, res) {
}
console
.
log
()
for
(
let
i
=
1
;
i
<
data2List
.
length
;
i
++
)
{
let
subList
=
data2List
[
i
];
let
enterpriseName
=
subList
[
1
];
...
...
@@ -131,7 +129,8 @@ export async function data1210(req, res) {
liaisonPhone
:
subList
[
14
]
+
''
,
shuiWuJu
:
subList
[
17
]
||
''
,
state
:
1
,
register
:
1
register
:
1
,
};
let
enterprise_leaseInfo
:
any
=
{
//租赁信息表
...
...
src/util/request.ts
View file @
a0806426
...
...
@@ -34,12 +34,15 @@ export function getQcc(url:string, query?, headers?) {
if
(
query
)
paramater
.
qs
=
query
;
if
(
headers
)
paramater
.
headers
=
headers
;
request
.
get
(
paramater
,
function
(
err
,
r
,
body
)
{
if
(
err
)
return
reject
(
err
);
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
));
console
.
log
(
query
.
searchKey
,
body
.
Message
||
body
);
return
resolve
({});
});
})
}
...
...
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