Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhangjiangzhenxcxserver
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
zhangjiangzhenxcxserver
Commits
a228529d
Commit
a228529d
authored
Nov 18, 2025
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
330c1ab3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
111 additions
and
16 deletions
+111
-16
dataInit.js
out/biz/dataInit.js
+1
-1
data.js
out/biz/dataSync/data.js
+17
-0
data.js.map
out/biz/dataSync/data.js.map
+0
-0
dataInit.js
out/biz/dataSync/dataInit.js
+1
-1
getQCC.js
out/biz/dataSync/getQCC.js
+7
-0
getQCC.js.map
out/biz/dataSync/getQCC.js.map
+2
-2
newDataInit.js
out/biz/dataSync/newDataInit.js
+83
-12
newDataInit.js.map
out/biz/dataSync/newDataInit.js.map
+0
-0
No files found.
out/biz/dataInit.js
View file @
a228529d
"use strict"
;
/**
* 初始化数据
* 初始化数据
老的,可以不考虑
*/
Object
.
defineProperty
(
exports
,
"__esModule"
,
{
value
:
true
});
exports
.
initData
=
exports
.
test111
=
void
0
;
...
...
out/biz/dataSync/data.js
View file @
a228529d
...
...
@@ -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
;
...
...
out/biz/dataSync/data.js.map
View file @
a228529d
This diff is collapsed.
Click to expand it.
out/biz/dataSync/dataInit.js
View file @
a228529d
"use strict"
;
/**
* 初始化数据
* 初始化数据
老的
*/
Object
.
defineProperty
(
exports
,
"__esModule"
,
{
value
:
true
});
exports
.
雨艺
=
exports
.
initData
=
exports
.
test111
=
void
0
;
...
...
out/biz/dataSync/getQCC.js
View file @
a228529d
...
...
@@ -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
?
"请求地址为空"
:
"请求地址错误"
);
...
...
out/biz/dataSync/getQCC.js.map
View file @
a228529d
{"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
out/biz/dataSync/newDataInit.js
View file @
a228529d
"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
...
...
out/biz/dataSync/newDataInit.js.map
View file @
a228529d
This diff is collapsed.
Click to expand it.
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