Commit 442f2421 by Zllgogo
parents 6b0e04e8 88bef37f
...@@ -5,38 +5,117 @@ import { onceSheetBecomeOfblockData } from "../util/analysisExcel"; ...@@ -5,38 +5,117 @@ import { onceSheetBecomeOfblockData } from "../util/analysisExcel";
const md5 = require("md5"); const md5 = require("md5");
import moment = require("moment"); import moment = require("moment");
import { getQcc } from "../util/request"; 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 xlsx = require('node-xlsx');
const path = require('path'); const path = require('path');
const fs = require('fs'); 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() { export async function qccData() {
// test();
统计();
return
let iMap = await 领域补充();
let 企业名单 = onceSheetBecomeOfblockData('在孵企业导入1210.xlsx', "Sheet1"); let 企业名单 = onceSheetBecomeOfblockData('在孵企业导入1210.xlsx', "Sheet1");
let dataList = 企业名单[0].blockData; let dataList = 企业名单[0].blockData;
let titleList = ["企业名称", "注册时间", "注册地址", "注册资本", "实缴资本", "上市类型", "投资人", "联系方式", "行业分类", "标签", "软著", "风险提示", "专利数", "失信核查", "资质数量", "融资信息"]; let titleList = ["企业名称", "注册时间", "注册地址", "注册资本", "实缴资本", "上市类型", "投资人", "联系方式", "行业分类", "标签", "软著", "风险提示", "专利数", "失信核查", "资质数量", "融资信息"];
let excelList = [titleList]; let excelList = [titleList];
for (let i =1; i < dataList.length; i++) { for (let i =1; i < dataList.length; i++) {
let uscc = dataList[i][6]; let uscc = dataList[i][6];
let res = await 同步数据(uscc); if (!iMap[uscc]) console.log(dataList[i][0]);
excelList.push(res); continue;
console.log(i); await awaitData(uscc);
console.log(`${dataList[i][1]} 同步成功, 下标 ${i}`);
} }
let enterpriseList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业基础信息表, {}, ["eId", "uscc", "enterpriseName"]);
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) { function getReqParam(uscc) {
const TimeSpan = Math.round(new Date().valueOf()/ 1000); const TimeSpan = Math.round(new Date().valueOf()/ 1000);
let header = { let header = {
Token:md5(`${systemConfig.qccKey}${TimeSpan}${systemConfig.qccSecretKey}`).toUpperCase(), Token:md5(`${systemConfig.qccKey}${TimeSpan}${systemConfig.qccSecretKey}`).toUpperCase(),
...@@ -47,89 +126,541 @@ async function 同步数据(uscc:string) { ...@@ -47,89 +126,541 @@ async function 同步数据(uscc:string) {
searchKey:uscc, searchKey:uscc,
// keyNo:"云合智网(上海)技术有限公司" // keyNo:"云合智网(上海)技术有限公司"
}; };
// let 工商信息:any = await getQcc('https://api.qichacha.com/ECIInfoVerify/GetInfo', query, header);//获取工商信息 return {header, query};
await 工商信息(query, header); }
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 工商信息:any = await getQcc('https://api.qichacha.com/ECIInfoVerify/GetInfo', query, header);//获取工商信息
// //联系信息
// let TagListStr = "";//企业标签 let enterpriseInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {uscc}, ["eId"]);
// if (工商信息.TagList) { let eId = enterpriseInfo.eId;
// 工商信息.TagList.forEach(item => {
// TagListStr += `${item.Name};` //股权结构
// }); if (工商信息.Partners) {
// } let ownershipList = [];
// let 著作权软著:any = await getQcc('https://api.qichacha.com/CopyRight/SearchCopyRight', query, header); 工商信息.Partners.forEach(info => {
// let 准入尽职调查:any = await getQcc('https://api.qichacha.com/AcctScan/GetInfo', query, header); let addInfo:any = {
// let 专利查询:any = await getQcc('https://api.qichacha.com/PatentV4/Search', query, header); owId:randomId(TABLEID.股权结构),
// let 失信核查:any = await getQcc('https://api.qichacha.com/ShixinCheck/GetList', query, header); eId,
// let 资质证书:any = await getQcc('https://api.qichacha.com/ECICertification/SearchCertification', query, header); name:info.StockName,
// let 融资信息:any = await getQcc('https://api.qichacha.com/CompanyFinancingSearch/GetList', query, header); 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) { async function 企查查数据集(uscc) {
const TimeSpan = Math.round(new Date().valueOf()/ 1000); const TimeSpan = Math.round(new Date().valueOf()/ 1000);
......
...@@ -37,7 +37,21 @@ export enum TABLENAME { ...@@ -37,7 +37,21 @@ export enum TABLENAME {
企业服务表 ='enterprise_service', 企业服务表 ='enterprise_service',
企业基础信息表 ='enterprise', 企业基础信息表 ='enterprise',
政策表 = 'policy', 政策表 = '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",
入孵申请审批表 ='approval_history', 入孵申请审批表 ='approval_history',
入驻信息表 = "info_enter", 入驻信息表 = "info_enter",
运营推广信息表 = "info_operation_promotion", 运营推广信息表 = "info_operation_promotion",
...@@ -64,6 +78,20 @@ export enum TABLEID { ...@@ -64,6 +78,20 @@ export enum TABLEID {
企业基础信息表 ='e', 企业基础信息表 ='e',
图片存储='img', 图片存储='img',
政策表 = 'zc', 政策表 = 'zc',
变更信息表 = "iu",
企业标签表 = "el",
股权结构 = "os",
行业信息分类 = "ei",
主要人员 = "em",
分支机构 = "br",
行政许可核查 = "li",
空壳扫描 = "emp",
风险 = "er",
科创分 = "stem",
资质证书 = "cc",
失信核查 = "dis",
严重违法犯罪 = "bt",
对外投资 = "ot",
入孵申请审批表 = 'ah', 入孵申请审批表 = 'ah',
入驻信息表 = "ei", 入驻信息表 = "ei",
运营推广信息表 = "opi", 运营推广信息表 = "opi",
......
...@@ -295,4 +295,56 @@ export enum RUFUSTATE { ...@@ -295,4 +295,56 @@ export enum RUFUSTATE {
材料审核完成 = 7 材料审核完成 = 7
} }
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
}
...@@ -9,7 +9,7 @@ async function lanuch() { ...@@ -9,7 +9,7 @@ async function lanuch() {
await initConfig(); await initConfig();
httpServer.createServer(systemConfig.port); httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.'); console.log('This indicates that the server is started successfully.');
// await qccData(); await qccData();
} }
......
...@@ -9,6 +9,7 @@ import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from '../config/enum/dbEnum'; ...@@ -9,6 +9,7 @@ import { OPERATIONALDATATYPE, TABLEID, TABLENAME } from '../config/enum/dbEnum';
import { changeEnumValue } from '../util/verificationEnum'; import { changeEnumValue } from '../util/verificationEnum';
import { DEGREE, FUHUASTATE, IPRALLTYPE, ZZMM } from '../config/enum/enum'; import { DEGREE, FUHUASTATE, IPRALLTYPE, ZZMM } from '../config/enum/enum';
import { operationalData } from '../data/operationalData'; import { operationalData } from '../data/operationalData';
import { onceSheetBecomeOfblockData } from '../util/analysisExcel';
const xlsx = require('node-xlsx'); const xlsx = require('node-xlsx');
const path = require('path'); const path = require('path');
const fs = require('fs'); const fs = require('fs');
...@@ -18,7 +19,6 @@ export function setRouter(httpServer) { ...@@ -18,7 +19,6 @@ export function setRouter(httpServer) {
httpServer.post('/admin/data/maintenance/datainit/1210', checkInterior, asyncHandler(data1210)); httpServer.post('/admin/data/maintenance/datainit/1210', checkInterior, asyncHandler(data1210));
} }
export async function data1210(req, res) { export async function data1210(req, res) {
let 入驻信息add = [ let 入驻信息add = [
{ {
...@@ -108,7 +108,6 @@ export async function data1210(req, res) { ...@@ -108,7 +108,6 @@ export async function data1210(req, res) {
} }
//
let 去重={}; let 去重={};
for (let i = 1; i < data2List.length; i++) { for (let i = 1; i < data2List.length; i++) {
let subList = data2List[i]; let subList = data2List[i];
...@@ -118,7 +117,6 @@ export async function data1210(req, res) { ...@@ -118,7 +117,6 @@ export async function data1210(req, res) {
} }
console.log()
for (let i = 1; i < data2List.length; i++) { for (let i = 1; i < data2List.length; i++) {
let subList = data2List[i]; let subList = data2List[i];
let enterpriseName = subList[1]; let enterpriseName = subList[1];
...@@ -154,7 +152,8 @@ export async function data1210(req, res) { ...@@ -154,7 +152,8 @@ export async function data1210(req, res) {
liaisonPhone:subList[14]+'', liaisonPhone:subList[14]+'',
shuiWuJu:subList[17] || '', shuiWuJu:subList[17] || '',
state:1, state:1,
register:1 register:1,
}; };
let enterprise_leaseInfo:any = {//租赁信息表 let enterprise_leaseInfo:any = {//租赁信息表
......
...@@ -34,12 +34,15 @@ export function getQcc(url:string, query?, headers?) { ...@@ -34,12 +34,15 @@ export function getQcc(url:string, query?, headers?) {
if (query) paramater.qs = query; if (query) paramater.qs = query;
if (headers) paramater.headers = headers; if (headers) paramater.headers = headers;
request.get(paramater, function (err, r, body) { request.get(paramater, function (err, r, body) {
if (err) return reject(err); if (err) {
return reject(err);
}
if (body) { if (body) {
if (body.Status == 200) return resolve(body.Result); if (body.Status == 200) return resolve(body.Result);
else if (body.Status == 201) return resolve({}); else if (body.Status == 201) return resolve({});
} }
return reject(new Error('httpError:'+r.statusCode)); console.log(query.searchKey, body.Message || body);
return resolve({});
}); });
}) })
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment