Commit a228529d by lixinming

no message

parent 330c1ab3
"use strict";
/**
* 初始化数据
* 初始化数据 老的,可以不考虑
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.initData = exports.test111 = void 0;
......
......@@ -20,6 +20,19 @@ function paramInCheckStr(checkStr, ...param) {
function checkInmatch(match, check) {
return match.indexOf(check) > -1;
}
/**
* 用于判断企业时什么类型
* @param 名称
* @param 企业类型
* @param 国标大类
* @param 国标一类
* @param 国标二类
* @param 企查查大类
* @param 企查查一类
* @param 企查查二类
* @param 主营业务
* @returns
*/
function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类, 国标二类, 企查查大类, 企查查一类, 企查查二类, 主营业务) {
//去除个体户
if (checkInmatch(企业类型, "个体")) {
......@@ -224,6 +237,10 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
}
return { industry: enum_1.INDUSTRY.综合, subIndustry: enum_1.COMPREHENSIVE.综合其他 };
}
/**
* 导出方法
* 这个方法时1031日的时候按要求匹配了表里面的企业类型
*/
async function out20251031() {
let 企业名单 = (0, analysisExcel_1.onceSheetBecomeOfblockData)('企业户管库_开发区镇查看202508.xlsx', "企业户管库");
let dataList = 企业名单[0].blockData;
......
"use strict";
/**
* 初始化数据
* 初始化数据 老的
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.雨艺 = exports.initData = exports.test111 = void 0;
......
......@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.getQcc = void 0;
const request = require("request");
const bizError_1 = require("../../util/bizError");
/**
* 企查查 请求地址
* @param url
* @param query
* @param headers
* @returns
*/
function getQcc(url, query, headers) {
if (!url || (url.search(/http:/) && url.search(/https:/)))
throw new bizError_1.BizError(!url ? "请求地址为空" : "请求地址错误");
......
{"version":3,"file":"getQCC.js","sourceRoot":"","sources":["../../../src/biz/dataSync/getQCC.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,kDAA+C;AAG/C,SAAgB,MAAM,CAAC,GAAU,EAAE,KAAM,EAAE,OAAQ;IAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAG,MAAM,IAAI,mBAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QAClC,IAAI,SAAS,GAAO,EAAE,GAAG,EAAE,IAAI,EAAC,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK;YAAE,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC;QAChC,IAAI,OAAO;YAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE,IAAI;YACzC,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;oBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;oBAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC;AAlBD,wBAkBC"}
\ No newline at end of file
{"version":3,"file":"getQCC.js","sourceRoot":"","sources":["../../../src/biz/dataSync/getQCC.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,kDAA+C;AAE/C;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,GAAU,EAAE,KAAM,EAAE,OAAQ;IAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAG,MAAM,IAAI,mBAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QAClC,IAAI,SAAS,GAAO,EAAE,GAAG,EAAE,IAAI,EAAC,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK;YAAE,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC;QAChC,IAAI,OAAO;YAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE,IAAI;YACzC,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;oBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;oBAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC;AAlBD,wBAkBC"}
\ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.latLngInZJ = exports.get = exports.getAddressLatAndLng = exports.addInZJ = exports.initEnterpriseData = void 0;
/**
* 这个文件放的是比较新的数据初始化方法
*/
const enum_1 = require("../../config/enum");
const analysisExcel_1 = require("../../util/analysisExcel");
const md5 = require("md5");
......@@ -14,7 +17,13 @@ const path = require('path');
const fs = require('fs');
const request = require("request");
const area_1 = require("../../config/area");
/**=========================================================工具 */
/**=========================================================工具类 */
/**
* 判断match中是否含有check
* @param match
* @param check
* @returns
*/
function checkInmatch(match, check) {
return match.indexOf(check) > -1;
}
......@@ -34,7 +43,7 @@ function paramInCheckStr(checkStr, ...param) {
return isCY;
}
/**
* 转换企业类型
* 获取企业类型
* @param enterpriseType
* @returns
*/
......@@ -65,6 +74,12 @@ function getEnterpriseType(enterpriseType) {
}
return enum_1.ENTERPRISETYPE.民营企业;
}
/**
* 解析企查查导出的二维数组中的subList,可以理解吗?导出的是[subList, subList]这样的,这个方法是用来解析subList的,把导出的企业按顺序解析成object
* 所以导出的时候要注意顺序
* @param subList
* @returns
*/
function analysisSubListData(subList) {
let 名称 = subList[0];
let 系统匹配企业名称 = subList[1];
......@@ -205,7 +220,8 @@ function analysisSubListData(subList) {
return addInfo;
}
/**
* 获取企业领域
* 获取企业领域 返回值是两个枚举里面的值 INDUSTRY(领域) 和 OTHERINDUSTRY(其他领域)
* 一般只用判断 INDUSTRY(领域)就好了,即返回的industry字段
* @param 名称
* @param 企业类型
* @param 国标大类
......@@ -415,7 +431,7 @@ function getEnterpriseIndustry(名称, 企业类型, 国标大类, 国标一类,
}
return { industry: enum_1.INDUSTRY.综合, subIndustry: enum_1.COMPREHENSIVE.综合其他 };
}
/**------------------------------------------------------------ */
/**------------------------------------------------------------ 工具类分割线结束 */
async function initEnterpriseData() {
await initHuGuanData3(); //初始化户管企业
// await guishangEnterprise();//初始化规上企业
......@@ -426,7 +442,7 @@ async function initEnterpriseData() {
}
exports.initEnterpriseData = initEnterpriseData;
/**
* 初始化账号
* 初始化管理员账号
*/
async function initUser() {
let tczxAdd2List = [
......@@ -460,7 +476,13 @@ async function initUser() {
];
await (0, user_1.createManyUser)(tczxAddList);
}
//初始化户管企业
/**
* 初始化企业
* 如果你要重新导入企业库,你可以把名单放到企查查里面查询之后导出成excel表格,放入res目录下,注意文件名称要匹配好
* 然后注意参考 analysisSubListData 里面的第二维数组的顺序
* 这里有一个需要注意的地方,百度地图一天只能查5000家企业的经纬度,切记,导入之前要稍微初步筛选看看上海市的有多家,超过5000家,就要好好的看下面的注释
*
*/
async function initHuGuanData() {
let 企业名单 = (0, analysisExcel_1.onceSheetBecomeOfblockData)('全部企业2.xlsx', "已匹配户管企业");
let dataList = 企业名单[0].blockData;
......@@ -471,20 +493,26 @@ async function initHuGuanData() {
if (addInfo.isFalse)
continue;
addInfo.labelList.push(enum_1.ENTERPRISELABEL.户管企业);
/**
* 这个是用来判断企业是否是张江区域内的,逻辑可以参考
* 这里有一个需要注意的地方,百度地图一天只能查5000家企业的经纬度,切记,导入之前要稍微初步筛选看看上海市的有多家,超过5000家,这里就要注释一下(if里面的注释)
*/
let inZJ = false;
if (addInfo.addInfo.logonAddress && addInfo.logonAddress.indexOf("上海") > -1) {
//是上海
// console.log("in sh", addInfo.logonAddress);
// inZJ = await addInZJ(addInfo.logonAddress, , addInfo.uscc);
if (addInfo.city && addInfo.logonAddress && addInfo.city == "上海") { //只判断市是上海的,因为不属于上海市必然不在张江内
inZJ = await addInZJ(addInfo.logonAddress, addInfo.city, addInfo.uscc);
}
addInfo.inZJ = inZJ;
enterpriseList.push(addInfo);
console.log(i);
console.log("进度", i);
}
;
await enterpriseData.initEnterpriseBase(enterpriseList);
console.log("企业数据导入成功");
}
/**
* 这个是临时写的导入方法,用来做匹配的,忽略不管
*
*/
async function initHuGuanData2() {
let 企业名单 = (0, analysisExcel_1.onceSheetBecomeOfblockData)('2025年新版“彩色服务包”重点企业名单(张江镇)企查查.xlsx', "Sheet1");
let dataList = 企业名单[0].blockData;
......@@ -529,6 +557,10 @@ async function initHuGuanData2() {
// await enterpriseData.initEnterpriseBase(enterpriseList);
console.log("企业数据导入成功");
}
/**
* 这个是临时写的导入方法,用来做匹配的,忽略不管
*
*/
async function initHuGuanData3() {
let 企业名单 = (0, analysisExcel_1.onceSheetBecomeOfblockData)('标记企业1112.xlsx', "sheet1");
let dataList = 企业名单[0].blockData;
......@@ -561,6 +593,7 @@ async function initHuGuanData3() {
}
/**
* 初始化规上企业
* 和初始化企业很像,但是这个方法里面没有判断是否是张江域内的
*/
async function guishangEnterprise() {
let 企业名单 = (0, analysisExcel_1.onceSheetBecomeOfblockData)('规上企业.xlsx', "sheet1");
......@@ -585,6 +618,7 @@ async function guishangEnterprise() {
}
/**
* 投促重点名单
* 和初始化企业很像,但是这个方法里面没有判断是否是张江域内的
*/
async function touchuEnterprise() {
let 企业名单 = (0, analysisExcel_1.onceSheetBecomeOfblockData)('投促重点.xlsx', "sheet1");
......@@ -607,7 +641,10 @@ async function touchuEnterprise() {
console.log("投促重点企业导入成功");
}
/**
* 初始化标签
* 初始化标签 参考一下就好了
* 给各种企业打上基础标签,例如:重点企业 专精特新之类的
*
* 逻辑是,有各种企业标签的excel,然后做企业库的匹配
*/
async function initLabel() {
let zdqy = (0, analysisExcel_1.onceSheetBecomeOfblockData)('重点企业.xlsx', "Sheet1");
......@@ -686,6 +723,13 @@ async function initLabel() {
// }
console.log("标签导入成功");
}
/**
* 地址是否在张江域内
* @param address
* @param city
* @param uscc
* @returns
*/
async function addInZJ(address, city, uscc) {
let pointInfo = await getAddressLatAndLng(address, city, uscc);
if (!pointInfo.error) {
......@@ -697,6 +741,13 @@ async function addInZJ(address, city, uscc) {
return false;
}
exports.addInZJ = addInZJ;
/**
* 获取地址的经纬度
* @param address
* @param city
* @param uscc
* @returns
*/
async function getAddressLatAndLng(address, city, uscc) {
let param = {
address: address,
......@@ -712,6 +763,13 @@ async function getAddressLatAndLng(address, city, uscc) {
return { error: true, errMsg: reuslt.message || JSON.stringify(reuslt) };
}
exports.getAddressLatAndLng = getAddressLatAndLng;
/**
* 百度地图依赖的请求方法
* @param url
* @param query
* @param headers
* @returns
*/
function get(url, query, headers) {
if (!url || (url.search(/http:/) && url.search(/https:/)))
throw new bizError_1.BizError(!url ? "请求地址为空" : "请求地址错误");
......@@ -731,6 +789,13 @@ function get(url, query, headers) {
});
}
exports.get = get;
/**
* 使用射线法判断一个经纬度是否是域内
* 这里的张江域内 是参考的张江科学城的
* @param lat
* @param lng
* @returns
*/
async function latLngInZJ(lat, lng) {
let point = { lat, lng };
/**射线法判断是否属于各个范围 命中一个就返回true*/
......@@ -747,6 +812,12 @@ async function latLngInZJ(lat, lng) {
return isInside;
}
exports.latLngInZJ = latLngInZJ;
/**
* 射线法逻辑
* @param point
* @param pts
* @returns
*/
function itemIsPointInPolygon(point, pts) {
var N = pts.length; //pts [{lat:xxx,lng:xxx},{lat:xxx,lng:xxx}]
var boundOrVertex = true; //如果点位于多边形的顶点或边上,也算做点在多边形内,直接返回true
......
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