Commit f3a6484e by chenjinjing

no message

parent e8011e22
......@@ -18,32 +18,199 @@ import { areaList } from "../../config/area";
/**=========================================================工具类 */
/**
* 判断match中是否含有check
* @param match
* @param check
* @returns
*/
function checkInmatch(match:string, check:string) {
function checkInmatch(match: string, check: string): boolean {
if (!match || !check) return false;
return match.indexOf(check) > -1;
}
/**
* 增强版包含检查,自动排除包含指定否定词的情况
* @param str 待检查的字符串
* @param keyword 要匹配的关键词
* @param excludeWords 要排除的否定词数组,默认包含"非医疗"
* @returns
*/
function checkInmatchExclude(str: string, keyword: string, excludeWords: string[] = ["非医疗"]): boolean {
if (!str || !keyword) return false;
// 如果关键词包含"医疗"且字符串包含任何排除词,则返回false
if (keyword.includes("医疗")) {
for (let exclude of excludeWords) {
if (str.includes(exclude)) {
return false;
}
}
}
return str.includes(keyword);
}
/**
* 检查字符串是否包含任何排除词
* @param str 待检查的字符串
* @param excludeWords 排除词数组
* @returns
*/
function containsExcludeWord(str: string, excludeWords: string[]): boolean {
if (!str) return false;
for (let word of excludeWords) {
if (str.includes(word)) {
return true;
}
}
return false;
}
/**
* paramInCheckStr
* 用法 判断 checkStr 中是否含有 param中的任意一个
* @param checkStr 被判断的字符串
* @param param 目标字符串
* 用法 判断 checkStr 是否包含在 param中的任意一个中
* @param checkStr 被判断的字符串(关键词)
* @param param 目标字符串数组
* @returns
*/
function paramInCheckStr(checkStr, ...param) {
let isCY = false;
for (let i = 0; i < param.length; i++) {
if (param[i].indexOf(checkStr) > -1) isCY = true
if (param[i] && param[i].indexOf(checkStr) > -1) isCY = true;
}
return isCY;
}
/**
* 增强版paramInCheckStr,自动排除包含否定词的情况
* @param checkStr 要匹配的关键词
* @param excludeWords 要排除的否定词数组
* @param param 目标字符串数组
* @returns
*/
function paramInCheckStrExclude(checkStr: string, excludeWords: string[] = ["非医疗"], ...param: string[]): boolean {
// 如果关键词包含"医疗",先检查所有参数中是否包含排除词
if (checkStr.includes("医疗")) {
for (let p of param) {
if (p) {
for (let exclude of excludeWords) {
if (p.includes(exclude)) {
return false;
}
}
}
}
}
// 再正常检查
return paramInCheckStr(checkStr, ...param);
}
/**
* 判断是否为真正的生物医药企业(增强版)
* @param 名称
* @param 主营业务
* @param 国标一类
* @param 企查查大类
* @param 国标二类
* @param 企查查二类
* @param 企查查一类
* @returns
*/
function isBioMedicalEnterprise(名称: string, 主营业务: string, 国标一类: string, 企查查大类: string, 国标二类: string, 企查查二类: string, 企查查一类: string): boolean {
// 定义排除词(非医药领域)
const EXCLUDE_PATTERNS = ["非医疗", "生物质", "生态", "环保", "环境", "园林", "园艺", "农业", "种植", "养殖", "绿化", "生态保护", "水污染", "土壤污染"];
// 如果名称或主营业务包含排除词,且没有强医药关键词,则判定为非生物医药
const hasExcludeInName = containsExcludeWord(名称, EXCLUDE_PATTERNS);
const hasExcludeInBusiness = containsExcludeWord(主营业务, EXCLUDE_PATTERNS);
// 强医药关键词(直接判定为生物医药)
const STRONG_MEDICAL_KEYWORDS = ["制药", "药业", "医药制造", "药品生产", "临床试验", "药物研发", "生物制药", "化学制药", "医药科技", "生物科技"];
for (let keyword of STRONG_MEDICAL_KEYWORDS) {
if (checkInmatch(名称, keyword) || checkInmatch(主营业务, keyword)) {
// 即使有排除词,如果是强关键词也认为是生物医药(如"生物科技"可能被"生态"排除,但"生物科技"本身是强相关)
if (keyword === "生物科技" && hasExcludeInName) {
// 特殊处理:如果名称包含"生物科技"但也包含"生态",需要看上下文
if (containsExcludeWord(名称, ["生态", "环保", "环境"])) {
continue; // 跳过,继续判断
}
}
return true;
}
}
// 国标和企查查大类匹配(权威数据优先)
if (国标一类 === "医药制造业" || 企查查大类 === "医药生物") {
// 但需要排除明显的非医药领域(如生态环保类)
if (!hasExcludeInName && !hasExcludeInBusiness) {
return true;
}
// 如果有排除词,需要检查是否有强医药关联
if ((hasExcludeInName || hasExcludeInBusiness) &&
(checkInmatch(主营业务, "医药") || checkInmatch(主营业务, "医疗") || checkInmatch(国标二类, "医药") || checkInmatch(企查查二类, "医药"))) {
return true;
}
}
// 如果包含排除词,且没有其他强医药证据,则返回false
if (hasExcludeInName || hasExcludeInBusiness) {
return false;
}
// 中等相关关键词(需要谨慎判断)
const MEDIUM_MEDICAL_KEYWORDS = [
{ keyword: "生物", requireContext: true },
{ keyword: "医药", requireContext: false },
{ keyword: "医疗", requireContext: false, excludeCheck: true },
{ keyword: "医疗器械", requireContext: false, excludeCheck: true },
{ keyword: "医学技术", requireContext: false },
{ keyword: "药", requireContext: true },
{ keyword: "治疗", requireContext: true },
{ keyword: "细胞", requireContext: true },
{ keyword: "基因", requireContext: true },
{ keyword: "蛋白", requireContext: true }
];
for (let item of MEDIUM_MEDICAL_KEYWORDS) {
let hasKeyword = false;
// 根据是否需要排除检查来调用不同的匹配函数
if (item.excludeCheck) {
hasKeyword = checkInmatchExclude(名称, item.keyword) || checkInmatchExclude(主营业务, item.keyword);
} else {
hasKeyword = checkInmatch(名称, item.keyword) || checkInmatch(主营业务, item.keyword);
}
if (hasKeyword) {
// 如果不需要上下文,直接返回true
if (!item.requireContext) {
return true;
}
// 需要上下文的情况:检查是否有医药相关上下文
const medicalContext = checkInmatch(主营业务, "医药") ||
checkInmatch(主营业务, "医疗") ||
checkInmatch(主营业务, "制药") ||
checkInmatch(主营业务, "临床") ||
checkInmatch(主营业务, "药物") ||
checkInmatch(国标二类, "医药") ||
checkInmatch(企查查二类, "医药") ||
checkInmatch(国标一类, "医药制造业") ||
checkInmatch(企查查大类, "医药生物") ||
paramInCheckStrExclude("医药", EXCLUDE_PATTERNS, 企查查一类) ||
paramInCheckStrExclude("医疗", EXCLUDE_PATTERNS, 企查查一类);
if (medicalContext) {
return true;
}
}
}
return false;
}
/**
* 获取企业类型
* @param enterpriseType
* @returns
......@@ -214,6 +381,7 @@ function analysisSubListData(subList) {
return addInfo;
}
/**
* 获取企业领域 返回值是两个枚举里面的值 INDUSTRY(领域) 和 OTHERINDUSTRY(其他领域)
* 一般只用判断 INDUSTRY(领域)就好了,即返回的industry字段
......@@ -228,8 +396,8 @@ function analysisSubListData(subList) {
* @param 主营业务
* @returns
*/
function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类, 主营业务) {
//去除个体户
export function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类, 主营业务) {
// 去除个体户
if (checkInmatch(企业类型, "个体")) {
if (名称.match(/^.*店$/) || checkInmatch(名称, "发廊") || ( checkInmatch(名称, "五金") && ( checkInmatch(国标大类, "零售") ||checkInmatch(国标大类, "批发") ) ) ) {
return {industry:INDUSTRY.其他, subIndustry:OTHERINDUSTRY.店铺};
......@@ -245,7 +413,7 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
} return {industry:INDUSTRY.其他, subIndustry:OTHERINDUSTRY.店铺};
}
//名字筛选
// 名字筛选
if ( checkInmatch(名称, "发廊") || checkInmatch(名称, "美容") ) {
return {industry:INDUSTRY.其他, subIndustry:OTHERINDUSTRY.店铺};
}
......@@ -280,7 +448,7 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
return {industry:INDUSTRY.其他, subIndustry:OTHERINDUSTRY.修理厂};
}
//行业类别
// 行业类别
if ( paramInCheckStr("零售", 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类 ) ) {
return {industry:INDUSTRY.其他, subIndustry:OTHERINDUSTRY.店铺};
}
......@@ -317,16 +485,73 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
return {industry:INDUSTRY.其他, subIndustry:OTHERINDUSTRY.其他服务业};
}
//生物医药
if ((国标一类 == "医药制造业" && 企查查大类 == "医药生物") || checkInmatch(名称, "生物") || checkInmatch(名称, "药业") || checkInmatch(名称, "医药") || checkInmatch(名称, "制药")) {
// ========== 生物医药判断(增强版) ==========
// 定义排除词常量
const EXCLUDE_PATTERNS = ["非医疗", "生物质", "生态", "环保", "环境", "园林", "园艺", "农业", "种植", "养殖", "绿化", "生态保护", "水污染", "土壤污染"];
// 1. 强相关关键词直接判断
if (checkInmatch(名称, "制药") || checkInmatch(名称, "药业") ||
checkInmatch(主营业务, "制药") || checkInmatch(主营业务, "药业") ||
checkInmatch(名称, "生物制药") || checkInmatch(主营业务, "生物制药")) {
return {industry:INDUSTRY.生物医药, subIndustry:INDUSTRY.生物医药};
}
// 2. 国标和企查查大类匹配(需排除干扰)
if ((国标一类 === "医药制造业" || 企查查大类 === "医药生物") &&
!containsExcludeWord(名称, EXCLUDE_PATTERNS) &&
!containsExcludeWord(主营业务, EXCLUDE_PATTERNS)) {
return {industry:INDUSTRY.生物医药, subIndustry:INDUSTRY.生物医药};
}
// 3. 名称包含医疗科技等(需排除"非医疗")
if ((checkInmatchExclude(名称, "医疗科技") ||
checkInmatchExclude(名称, "医疗器械") ||
checkInmatchExclude(名称, "医疗技术") ||
checkInmatch(名称, "医学技术")) &&
!containsExcludeWord(名称, EXCLUDE_PATTERNS)) {
return {industry:INDUSTRY.生物医药, subIndustry:INDUSTRY.生物医药};
}
// 4. 主营业务包含医药相关关键词(精细控制)
const hasMedicalInBusiness = (
checkInmatch(主营业务, "医药") ||
(checkInmatchExclude(主营业务, "医疗") && !containsExcludeWord(主营业务, ["非医疗"])) ||
(checkInmatchExclude(主营业务, "医疗器械") && !containsExcludeWord(主营业务, ["非医疗"])) ||
checkInmatch(主营业务, "药") ||
checkInmatch(主营业务, "治疗") ||
checkInmatch(主营业务, "细胞") ||
checkInmatch(主营业务, "基因") ||
checkInmatch(主营业务, "蛋白")
);
// 对于"生物"关键词,需要额外上下文验证
const hasBioInBusiness = checkInmatch(主营业务, "生物") &&
!containsExcludeWord(主营业务, ["生物质", "生态", "环保"]) &&
(checkInmatch(主营业务, "医药") ||
checkInmatch(主营业务, "医疗") ||
checkInmatch(主营业务, "制药") ||
checkInmatch(国标二类, "医药") ||
checkInmatch(企查查二类, "医药"));
if ((hasMedicalInBusiness || hasBioInBusiness) &&
!containsExcludeWord(主营业务, EXCLUDE_PATTERNS)) {
return {industry:INDUSTRY.生物医药, subIndustry:INDUSTRY.生物医药};
}
if ( checkInmatch(名称, "医疗科技") || checkInmatch(名称, "医疗器械") || checkInmatch(名称, "医疗技术") || checkInmatch(名称, "医学技术") ) {
// 5. 企查查一类中包含医药相关(需排除"非医疗")
if ((paramInCheckStrExclude("医药商业", EXCLUDE_PATTERNS, 企查查一类) ||
paramInCheckStrExclude("医疗器械制造", EXCLUDE_PATTERNS, 企查查一类) ||
paramInCheckStrExclude("医疗服务", EXCLUDE_PATTERNS, 企查查一类)) &&
!containsExcludeWord(企查查一类, EXCLUDE_PATTERNS)) {
return {industry:INDUSTRY.生物医药, subIndustry:INDUSTRY.生物医药};
}
if ( checkInmatch(主营业务, "医药") || checkInmatch(主营业务, "生物") || checkInmatch(主营业务, "生物医药") || checkInmatch(主营业务, "医疗") || checkInmatch(主营业务, "医疗器械") || checkInmatch(主营业务, "药") || checkInmatch(主营业务, "治疗") || checkInmatch(主营业务, "细胞")) {
// 6. 调用综合判断函数(备选)
if (isBioMedicalEnterprise(名称, 主营业务, 国标一类, 企查查大类, 国标二类, 企查查二类, 企查查一类)) {
return {industry:INDUSTRY.生物医药, subIndustry:INDUSTRY.生物医药};
}
// 其他领域判断(保持不变)
if( 企查查大类 == "信息技术" || 国标大类 == "信息传输、软件和信息技术服务业" ) {
if (主营业务.indexOf("集成电路") > -1) return {industry:INDUSTRY.集成电路, subIndustry:INDUSTRY.集成电路};
if (企查查二类 == "人工智能") return {industry:INDUSTRY.人工智能, subIndustry:INDUSTRY.人工智能};
......@@ -341,15 +566,16 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
if (paramInCheckStr("汽车零部件制造", 企查查一类 ) || paramInCheckStr("汽车整车制造", 企查查一类 ) ) {
return {industry:INDUSTRY.汽车产业, subIndustry:INDUSTRY.汽车产业};
}
//看这里
if (paramInCheckStr("新能源", 企查查一类 ) || checkInmatch(主营业务, "新能源") ) {
return {industry:INDUSTRY.新能源, subIndustry:INDUSTRY.新能源};
}
//这里结束n
if(paramInCheckStr("医药制造", 国标一类 ) || paramInCheckStr("医药生物", 企查查大类 ) ) {
// 这里也需要增加排除检查,避免"非医疗"干扰
if (!containsExcludeWord(企查查一类, EXCLUDE_PATTERNS)) {
if (paramInCheckStr("医药商业", 企查查一类 )) return {industry:INDUSTRY.生物医药, subIndustry:MEDICALSUB.医药商业};
else if (paramInCheckStr("医疗器械制造", 企查查一类 )) return {industry:INDUSTRY.生物医药, subIndustry:MEDICALSUB.医疗器械制造};
else if (paramInCheckStr("医疗服务", 企查查一类 )) return {industry:INDUSTRY.生物医药, subIndustry:MEDICALSUB.医疗服务};
}
return {industry:INDUSTRY.生物医药, subIndustry:MEDICALSUB.其他生物医药};
}
if (paramInCheckStr("制造", 企查查一类 ) || paramInCheckStr("制造", 国标大类 ) ) {
......@@ -413,24 +639,31 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
}
/**------------------------------------------------------------ 工具类分割线结束 */
export async function initEnterpriseData() {
await initHuGuanData();//初始化户管企业
// await initHuGuanData();//初始化户管企业
// await guishangEnterprise();//初始化规上企业
// await touchuEnterprise();//投促重点名单
// await initLabel();//初始化标签
// return
// await initUser();
await initUser();
}
/**
* 初始化管理员账号
*/
async function initUser() {
let tczxAdd3List = [
{userType:1, department:"投促中心", name:"奚王盛", loginId:"13816586688", userId:"tczx_13816586688", pwd:getPwdMd5("13816586688", md5("586688")), phone:"13816586688", },
];
await createManyUser(tczxAdd3List);
return
let jfbAdd2List = [
{userType:1, department:"张江镇经发办", name:"顾利晖", loginId:"13651954782", userId:"zjzjfb_13651954782", pwd:getPwdMd5("13651954782", md5("954782")), phone:"13651954782"},
];
......@@ -1097,7 +1330,6 @@ export async function test111222() {
export async function 匹配户管地址() {
//1.把地址复制到这里, 为啥要复制呢,不读表格呢,因为企查查的很多地址,有一个问题,指向的不是一个地址会有很多顿号之类的符号,这样匹配出来就不一定准确
//2.复制之后直接运行
//3.然后会得到一个数组list2
......@@ -1105,125 +1337,7 @@ export async function 匹配户管地址() {
//5.到表格中新建一列,粘贴上去
//就可以直接筛选了
let list = [
"中国(上海)自由贸易试验区碧波路912弄8号301室",
"中国(上海)自由贸易试验区祖冲之路2305号B幢1116室",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区碧波路912弄10-11号402-1室",
"中国(上海)自由贸易试验区沔北路985号2幢105室",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区建中路6号五层",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区碧波路912弄10-11号502-7室",
"中国(上海)自由贸易试验区碧波路690号6幢301-7室",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区中科路1600号二层T-L215",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区盛夏路500弄7号2楼201-A-5室",
"中国(上海)自由贸易试验区中科路1817号地下一层S-LG19",
"中国(上海)自由贸易试验区中科路1819号第40层4016单元",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区碧波路912弄10-11号502-1室",
"中国(上海)自由贸易试验区碧波路690号101-17室",
"中国(上海)自由贸易试验区中科路2555号一层",
"中国(上海)自由贸易试验区法拉第路249号2幢101室",
"中国(上海)自由贸易试验区中科路1819号第39层03B单元",
"中国(上海)自由贸易试验区盛荣路333号1幢15层1502-B室",
"中国(上海)自由贸易试验区海趣路208弄28号地下一层A18号",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区张东路1661号",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区中科路1717弄1-5号地下一层M-LG70",
"中国(上海)自由贸易试验区盛荣路333号1幢15层1502-A室",
"中国(上海)自由贸易试验区海趣路236号916室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区上科路366号",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区盛荣路88弄2号601C室",
"中国(上海)自由贸易试验区蔡伦路781号七层705室",
"中国(上海)自由贸易试验区中科路1819号第43层4312单元",
"中国(上海)自由贸易试验区盛夏路169号",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区碧波路912弄10-11号502-6室",
"中国(上海)自由贸易试验区盛荣路333号1幢410A室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区郭守敬路498号1幢1号楼402室",
"中国(上海)自由贸易试验区博宇路56弄1号1302室",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区蔡伦路450号",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区盛荣路333号1幢18层1802-A室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区盛荣路333号1幢18层1802-B室",
"中国(上海)自由贸易试验区博宇路56弄1号12层1206室",
"中国(上海)自由贸易试验区祖冲之路1239弄7号地下一层47-3室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区环科路515号914室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区祖冲之路2288弄3号835室",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区中科路1819号第5层511单元",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区张衡路200号2幢3层",
"中国(上海)自由贸易试验区碧波路889号4幢4层425室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区祖冲之路1239弄7号地下一层50-4室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区祖冲之路1077号2幢3楼3309室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区祖冲之路2305号B幢十二层1223工位",
"中国(上海)自由贸易试验区李冰路151号5幢三层2318室",
"中国(上海)自由贸易试验区碧波路690号4幢1层101-2A室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区丹桂路799号5幢717室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区海趣路162号103室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区盛夏路169号",
"中国(上海)自由贸易试验区盛荣路88弄7号201A-A室",
"中国(上海)自由贸易试验区盛荣路88弄7号201A-B室",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区荣科路615弄39号",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区张江路625号北二层A区",
"中国(上海)自由贸易试验区盛夏路565弄30号一层",
"中国(上海)自由贸易试验区博宇路56弄1号1512室",
"中国(上海)自由贸易试验区芳春路400号1幢3层",
"中国(上海)自由贸易试验区张江镇碧波路690号2号楼401-17室",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区博宇路56弄1号101室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区碧波路456号A207室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区孙桥路19号312室",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区张江路665号三层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区张衡路200号2幢3层",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区郭守敬路498号8幢19号楼3层",
"中国(上海)自由贸易试验区环科路999弄1号3层",
"中国(上海)自由贸易试验区中科路1867号1幢4层",
"中国(上海)自由贸易试验区中科路1717弄1-5号地下一层M-LG18",
"蔡伦路85弄95号",
]
......
import { INDUSTRY, OTHERINDUSTRY } from "../../config/enum";
import { onceSheetBecomeOfblockData } from "../../util/analysisExcel";
import { changeEnumValue } from "../../util/verificationEnum";
import { getEnterpriseIndustry } from "./newDataInit";
const xlsx = require('node-xlsx');
const path = require('path');
......@@ -117,9 +120,85 @@ export async function testtttttt() {
let ssNameListDataBuff = xlsx.build([ { name:"sheet1", data:ssNameList} ]);
fs.writeFileSync(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '20260208', `上市企业.xlsx` ), ssNameListDataBuff);
console.log("企业数据导入成功");
}
/**
* 梳理三大类型
*/
export async function 三大类型() {
let 企业名单 = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '20260312', `【企查查】其他户管.xlsx` ));
let dataList = 企业名单.sheetList[0].data;
console.log("企业数据导入成功");
let data = [];
for (let i = 1; i < dataList.length; i++){
let subList = dataList[i];
let 名称 = subList[0];
let 系统匹配企业名称 = subList[1];
let 经营状态 = subList[2];
let 法定代表人 = subList[3];
let 注册资本 = subList[4];
let 实缴资本 = subList[5];
let 成立日期 = subList[6];
let 统一社会信用代码 = subList[7];
let 企业地址 = subList[8];
let 所属省份 = subList[9];
let 所属城市 = subList[10];
let 所属区县 = subList[11];
let 电话 = subList[12];
let 更多电话 = subList[13];
let 邮箱 = subList[14];
let 更多邮箱 = subList[15];
let 企业类型 = subList[16];
let 纳税人识别号 = subList[17];
let 注册号 = subList[18];
let 组织机构代码 = subList[19];
let 参保人数 = subList[20];
let 参保人数所属年报 = subList[21];
let 营业期限 = subList[22];
let 国标大类 = subList[23];
let 国标一类 = subList[24];
let 国标二类 = subList[25];
let 国标行业小类 = subList[26];
let 企查查大类 = subList[27];
let 企查查一类 = subList[28];
let 企查查二类 = subList[29];
let 企查查行业小类 = subList[30];
let 企业规模 = subList[31];
let 曾用名 = subList[32];
let 英文名 = subList[33];
let 官网 = subList[34];
let 通信地址 = subList[35];
let 企业简介 = subList[36];
let 经营范围 = subList[37];
let 登记机关 = subList[38];
let 纳税人资质 = subList[39];
let 最新年报年份 = subList[40];
if ( 系统匹配企业名称== "未匹配到相关企业") {
return {isFalse:true};
}
let {industry, subIndustry} = getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类, 经营范围)
let addInfo:any = {
uscc:统一社会信用代码,
name:系统匹配企业名称,
};
addInfo.privateIndustry = changeEnumValue(INDUSTRY, industry);
addInfo.privateSubIndustry = changeEnumValue(OTHERINDUSTRY, subIndustry);
data.push(addInfo);
}
let 企业数据 = [];
data.forEach( info => {
企业数据.push([info.uscc, info.name, info.privateIndustry, info.privateSubIndustry]);
})
let 企业数据DataBuff = xlsx.build([ { name:"sheet1", data:企业数据} ]);
fs.writeFileSync(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '20260312', `企业数据.xlsx` ), 企业数据DataBuff);
return data;
}
......@@ -3,7 +3,7 @@ import { dataOut } from "./biz/dataOut";
import { out20251031 } from "./biz/dataSync/data";
import { initData, test111 } from "./biz/dataSync/dataInit";
import { initEnterpriseData, test111222, 匹配户管地址 } from "./biz/dataSync/newDataInit";
import { testtttttt } from "./biz/dataSync/newDataInit2";
import { testtttttt, 三大类型 } from "./biz/dataSync/newDataInit2";
import { initQueue } from "./biz/labelEnterpriseList";
import { initConfig, systemConfig} from "./config/serverConfig";
import { initDB } from "./db/mongo/dbInit";
......@@ -21,12 +21,14 @@ async function lanuch() {
/**创建http服务 */
httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.');
// await initEnterpriseData(); //初始化户管企业
await initEnterpriseData(); //初始化户管企业
// await out20251031();
// await dataOut();
// await test111222();
// await testtttttt();
// await 匹配户管地址();
// await 三大类型();
}
......
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