规范标准及CCS分类
导入StradardDoc节点
LOAD CSV WITH HEADERS
FROM 'file:///NewStandardDocument.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
导入StradardDoc节点 (水利部分)
LOAD CSV WITH HEADERS
FROM 'file:///StandardDocument_shuili.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
导入CCS下的节点及层级关系
LOAD CSV WITH HEADERS FROM "file:///CCS_All.csv" AS row
merge (f:CCS{CCS_Code:row.from_CCS_Code,CCS_Name:row.from_CCS_Name,CCSType:row.from_CCSType})
merge (to:CCS{CCS_Code:row.to_CCS_Code,CCS_Name:row.to_CCS_Name,CCSType:row.to_CCSType})
with f,to
match (ff:CCS{CCS_Code:f.CCS_Code,CCS_Name:f.CCS_Name,CCSType:f.CCSType}),(tt:CCS{CCS_Code:to.CCS_Code,CCS_Name:to.CCS_Name,CCSType:to.CCSType})
merge (ff)-[r:Contained]->(tt)
根据hasGBW_CCS 属性值(多个用|分隔),创建StandardizingDocument 和 CCS 节点关系
match (s:StandardizingDocument)
with s, split(coalesce(s.hasGBW_CCS,""), "|") AS ccsList
unwind ccsList as ccsT
with s, ccsT
match (ccs:CCS)
where ccs.CCS_Code=ccsT
merge (s)-[r:`中文分类`]->(ccs)
创建索引,采用官方自带中文分词器
CALL db.index.fulltext.createNodeIndex("sd_hasNoAndnameCN",["StandardizingDocument"],["hasNO", "nameCN"],{analyzer: "cjk"})
材料库
导入材料库数据
LOAD CSV WITH HEADERS
FROM 'file:///Materials.csv' AS row
MERGE (m:Material {uuid: row.uuid}) ON CREATE SET
m.dataType=row.dataType,
m.typeUuid=CASE row.typeUuid when "" THEN null ELSE row.typeUuid END,
m.cName=CASE row.cName when "" THEN null ELSE row.cName END,
m.eName=CASE row.eName when "" THEN null ELSE row.eName END,
m.explain=CASE row.explain when "" THEN null ELSE row.explain END,
m.clauseExplain=CASE row.clauseExplain when "" THEN null ELSE row.clauseExplain END,
m.standardNos=CASE row.standardNos when "" THEN null ELSE row.standardNos END,
m.picIds=CASE row.picIds when "" THEN null ELSE row.picIds END,
m.videoIds=CASE row.videoIds when "" THEN null ELSE row.videoIds END
导入图片视频节点数据
LOAD CSV WITH HEADERS
FROM 'file:///MediaFiles.csv' AS row
MERGE (f:MediaFile{uuid:row.uuid}) ON CREATE SET
f.filePath=row.filePath,
f.mediaType=row.mediaType
根据材料库picIds和videoIds(多个用|分隔),与媒体文件库建立关系
match (m:Material)
with m, split(coalesce(m.picIds,""), "|")+split(coalesce(m.videoIds,""), "|") AS mediaList
unwind mediaList as mediaid
with m, mediaid
match (mf:MediaFile)
where mf.uuid=mediaid
merge (m)-[r:`包含文件`]->(mf)
材料库规范数据导入
LOAD CSV WITH HEADERS
FROM 'file:///材料库用规范.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
根据材料库standardNos,与标准规范库创建关系
match (m:Material{dataType:'1'}) where m.standardNos is not null
with m, split(coalesce(m.standardNos,""), "|") AS standardNoList
unwind standardNoList as standardNo
with m, standardNo
match (s:StandardizingDocument)
where s.path contains standardNo
merge (m)-[r:`涉及规范`]->(s)
媒体文件与材料节点关系表导入关系
LOAD CSV WITH HEADERS
FROM 'file:///meidaFile&material.csv' AS row
match (m:Material{uuid:row.Materialuuid}),(mf:MediaFile{uuid:row.MediaFileuuid})
with m,mf
merge (m)-[r:`包含文件`]->(mf)
材料上下级关系建立,根据uuid
create index on :Material(uuid);
:auto match (r:Material)
where r.typeUuid is not null
unwind (r) as i
call {
with i
match (rp:Material)
where rp.uuid=i.typeUuid
with i,rp
merge (i)<-[:`下级分类`]-(rp)
} IN TRANSACTIONS OF 2000 ROWS
材料创建全文检索_cName,explain
CALL db.index.fulltext.createNodeIndex("Material_CName",["Material"],["cName", "explain"],{analyzer: "cjk"})
通用标准
通用标准信息-婚姻状态
LOAD CSV WITH HEADERS
FROM 'file:///MaritalStatus.csv' AS row
MERGE (m:MaritalStatus {code: row.Code}) ON CREATE SET
m.maritalStatus=row.MaritalStatus,
m.sourceStandardNo=row.SourceStandardNo
通用标准信息-民族
LOAD CSV WITH HEADERS
FROM 'file:///Nation.csv' AS row
MERGE (m:Nation {code: row.Code}) ON CREATE SET
m.name=row.Name,
m.romeName=row.RomeName,
m.letterCode=row.LetterCode,
m.sourceStandardNo=row.SourceStandardNo
通用标准信息-政治面貌
LOAD CSV WITH HEADERS
FROM 'file:///PoliticalStatus.csv' AS row
MERGE (m:PoliticalStatus {code: row.Code}) ON CREATE SET
m.politicalStatus=row.PoliticalStatus,
m.romeName=row.RomeName,
m.shortName=CASE row.ShortName when "" THEN null ELSE row.ShortName END,
m.sourceStandardNo=row.SourceStandardNo
通用标准信息-宗教
LOAD CSV WITH HEADERS
FROM 'file:///Religion.csv' AS row
MERGE (m:Religion {code: row.Code}) ON CREATE SET
m.name=row.Name,
m.sourceStandardNo=row.SourceStandardNo
通用标准信息-性别
LOAD CSV WITH HEADERS
FROM 'file:///Sex.csv' AS row
MERGE (m:Sex {code: row.Code}) ON CREATE SET
m.sexName=row.SexName,
m.sourceStandardNo=row.SourceStandardNo
通用标准信息-行政区划(先创建索引,之后再导)
create index on :Region(id);
:auto LOAD CSV WITH HEADERS
FROM 'file:///xzqh_Region.csv' AS row
call {
with row
MERGE (m:Region {id: row.region_id}) ON CREATE SET
m.parentId=CASE row.parent_id when "" THEN null ELSE row.parent_id END,
m.code=row.code,
m.name=row.name,
m.countryId=row.country_id,
m.level=row.level,
m.startDate=row.start_date,
m.endDate=CASE row.end_date when "" THEN null ELSE row.end_date END
} IN TRANSACTIONS OF 5000 ROWS;
通用标准信息-国家
:auto LOAD CSV WITH HEADERS
FROM 'file:///xzqh_Country.csv' AS row
call {
with row
MERGE (m:Country {id: row.country_id}) ON CREATE SET
m.code_n=CASE row.code_n when "" THEN null ELSE row.code_n END,
m.code_s=CASE row.code_s when "" THEN null ELSE row.code_s END,
m.code_t=CASE row.code_t when "" THEN null ELSE row.code_t END,
m.name=row.name,
m.eName=row.english_name,
m.continent=row.continent
} IN TRANSACTIONS OF 1000 ROWS
通用标准信息-行政区划根据父级id 创建关系
:auto match (r:Region)
where r.parentId is not null
unwind (r) as i
call {
with i
match (rp:Region)
where rp.id=i.parentId
with i,rp
merge (i)-[:`隶属`]->(rp)
} IN TRANSACTIONS OF 2000 ROWS
或者
:auto LOAD CSV WITH HEADERS
FROM 'file:///xzqh_Region_Relationship.csv' AS row
call {
with row
match (r:Region{id:row.region_id}),(rr:Region{id:row.parent_id})
merge (r)-[:`隶属`]->(rr)
} IN TRANSACTIONS OF 2000 ROWS
通用标准信息-行政区划与国家创建关系
match (r:Region) where r.parentId is null
unwind (r) as i
match (c:Country{id:i.countryId})
merge (i)-[:`所属国家`]->(c)
通用标准用到的规范导入
LOAD CSV WITH HEADERS
FROM 'file:///新增民族婚姻状态等规范.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
通用标准信息-婚姻状态、民族、政治面貌、宗教、性别与规范关联
match (ms:MaritalStatus),(s:StandardizingDocument)
where s.hasNO=ms.sourceStandardNo
merge (ms)-[:`来源规范`]->(s);
match (ms:Nation),(s:StandardizingDocument)
where s.hasNO=ms.sourceStandardNo
merge (ms)-[:`来源规范`]->(s);
match (ms:PoliticalStatus),(s:StandardizingDocument)
where s.hasNO=ms.sourceStandardNo
merge (ms)-[:`来源规范`]->(s);
match (ms:Religion),(s:StandardizingDocument)
where s.hasNO=ms.sourceStandardNo
merge (ms)-[:`来源规范`]->(s);
match (ms:Sex),(s:StandardizingDocument)
where s.hasNO=ms.sourceStandardNo
merge (ms)-[:`来源规范`]->(s);
国民经济
国民经济行业分类导入
create index on :NationEconomyIndustryClass(code);
:auto LOAD CSV WITH HEADERS
FROM 'file:///national_economy_industry.csv' AS row
call {
with row
MERGE (m:NationEconomyIndustryClass {code: row.code}) ON CREATE SET
m.name=row.name,
m.explain=CASE row.explain WHEN "" THEN null ELSE row.explain END,
m.annotation=CASE row.annotation WHEN "" THEN null ELSE row.annotation END,
m.parentCode=row.parentCode,
m.classType=row.classType,
m.level=row.level
} IN TRANSACTIONS OF 2000 ROWS
国民经济行业分类关系创建
:auto match (n:NationEconomyIndustryClass)
where n.parentCode <> 0
unwind (n) as i
call {
with i
match (ne:NationEconomyIndustryClass)
where ne.code=i.parentCode
with i,ne
merge (i)<-[:`下级分类`]-(ne)
} IN TRANSACTIONS OF 2000 ROWS
国民经济行业添加来源规范属性并创建规范关系
LOAD CSV WITH HEADERS
FROM 'file:///国民经济分类.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END;
MATCH (n:NationEconomyIndustryClass)
where n.parentCode='0'
set n.sourceStandardNo='GB/T 4754-2017';
MATCH (n:NationEconomyIndustryClass)
where n.parentCode='0'
match (s:StandardizingDocument{hasNO:'GB/T 4754-2017'})
merge (n)-[:`来源规范`]->(s)
产品分类库导入
create index on :ProductCategory(code);
:auto LOAD CSV WITH HEADERS
FROM 'file:///产品分类库.csv' AS row
call {
with row
MERGE (m:ProductCategory {code: row.code}) ON CREATE SET
m.name=row.name,
m.explain=CASE row.explain WHEN "" THEN null ELSE row.explain END,
m.parentCode=row.parentCode,
m.level=row.level
} IN TRANSACTIONS OF 2000 ROWS
产品分类库关系创建
:auto match (n:ProductCategory)
where n.parentCode <> 0
unwind (n) as i
call {
with i
match (ne:ProductCategory)
where ne.code=i.parentCode
with i,ne
merge (i)<-[:`下级分类`]-(ne)
} IN TRANSACTIONS OF 2000 ROWS
组织机构库导入
create index on :Organization(UnifiedSocialCreditCode);
:auto LOAD CSV WITH HEADERS
FROM 'file:///组织机构_港通_数据.csv' AS row
call {
with row
MERGE (m:Organization {UnifiedSocialCreditCode: row.UnifiedSocialCreditCode})
ON CREATE SET
m.CName=CASE row.CName WHEN "" THEN null ELSE row.CName END,
m.CShortName=CASE row.CShortName WHEN "" THEN null ELSE row.CShortName END,
m.EName=CASE row.EName WHEN "" THEN null ELSE row.EName END,
m.EShortName=CASE row.EShortName WHEN "" THEN null ELSE row.EShortName END,
m.OrganizationStructureCategory=CASE row.OrganizationStructureCategory WHEN "" THEN null ELSE row.OrganizationStructureCategory END,
m.LegalPersonProperty=CASE row.LegalPersonProperty WHEN "" THEN null ELSE row.LegalPersonProperty END,
m.LegalRepresentative=CASE row.LegalRepresentative WHEN "" THEN null ELSE row.LegalRepresentative END,
m.IsUsing=CASE row.IsUsing WHEN "" THEN null ELSE row.IsUsing END,
m.RegistrationAuthority=CASE row.RegistrationAuthority WHEN "" THEN null ELSE row.RegistrationAuthority END,
m.Introduction=CASE row.Introduction WHEN "" THEN null ELSE row.Introduction END,
m.Coordinate=CASE row.Coordinate WHEN "" THEN null ELSE row.Coordinate END,
m.DetailedAddress=CASE row.DetailedAddress WHEN "" THEN null ELSE row.DetailedAddress END,
m.CountryCode=CASE row.CountryCode WHEN "" THEN null ELSE row.CountryCode END,
m.ProvinceCode=CASE row.ProvinceCode WHEN "" THEN null ELSE row.ProvinceCode END,
m.CityCode=CASE row.CityCode WHEN "" THEN null ELSE row.CityCode END,
m.DistrictCode=CASE row.DistrictCode WHEN "" THEN null ELSE row.DistrictCode END,
m.NationEconomyIndustryCode=CASE row.NationEconomyIndustryCode WHEN "" THEN null ELSE row.NationEconomyIndustryCode END,
m.ProductClassCode=CASE row.ProductClassCode WHEN "" THEN null ELSE row.ProductClassCode END,
m.Tel=CASE row.Tel WHEN "" THEN null ELSE row.Tel END,
m.Email=CASE row.Email WHEN "" THEN null ELSE row.Email END,
m.PostalCode=CASE row.PostalCode WHEN "" THEN null ELSE row.PostalCode END,
m.Fax=CASE row.Fax WHEN "" THEN null ELSE row.Fax END,
m.OfficialWebsite=CASE row.OfficialWebsite WHEN "" THEN null ELSE row.OfficialWebsite END,
m.ManagementState=CASE row.ManagementState WHEN "" THEN null ELSE row.ManagementState END,
m.BusinessRegistrationNo=CASE row.BusinessRegistrationNo WHEN "" THEN null ELSE row.BusinessRegistrationNo END,
m.RegisteredCapital=CASE row.RegisteredCapital WHEN "" THEN null ELSE row.RegisteredCapital END,
m.EstablishedDate=CASE row.EstablishedDate WHEN "" THEN null ELSE row.EstablishedDate END,
m.CancelDate=CASE row.CancelDate WHEN "" THEN null ELSE row.CancelDate END,
m.BusinessTerm=CASE row.BusinessTerm WHEN "" THEN null ELSE row.BusinessTerm END,
m.BusinessScope=CASE row.BusinessScope WHEN "" THEN null ELSE row.BusinessScope END
} IN TRANSACTIONS OF 2000 ROWS
组织机构与产品分类建立关系
match (o:Organization)
with o, split(coalesce(o.ProductClassCode,""), ",") AS pcodeList
unwind pcodeList as pcode
with o, pcode
match (p:ProductCategory{code:pcode})
merge (o)-[r:`产品`]->(p)
组织机构与国民行业分类建立关系
match (o:Organization)
with o, split(coalesce(o.NationEconomyIndustryCode,""), ",") AS pcodeList
unwind pcodeList as pcode
with o, pcode
match (p:NationEconomyIndustryClass{code:pcode})
merge (o)-[r:`行业`]->(p)
组织机构与国家建立关系
match (o:Organization),(r:Country{code_n:o.CountryCode})
merge (o)-[:国家]->(r)
组织机构与行政区划建立关系
match (o:Organization),(r:Region{code:o.ProvinceCode})
merge (o)-[:行政区划]->(r);
match (o:Organization),(r:Region{code:o.CityCode})
merge (o)-[:行政区划]->(r);
match (o:Organization),(r:Region{code:o.DistrictCode)
merge (o)-[:行政区划]->(r);
机械库-通用
导入通用机械库数据
LOAD CSV WITH HEADERS
FROM 'file:///通用机械入库.csv' AS row
MERGE (m:Machine:Common {uuid: row.uuid}) ON CREATE SET
m.dataType=row.dataType,
m.typeUuid=CASE row.typeUuid when "" THEN null ELSE row.typeUuid END,
m.cName=CASE row.cName when "" THEN null ELSE row.cName END,
m.eName=CASE row.eName when "" THEN null ELSE row.eName END,
m.explain=CASE row.explain when "" THEN null ELSE row.explain END,
m.clauseExplain=CASE row.clauseExplain when "" THEN null ELSE row.clauseExplain END,
m.standardNos=CASE row.standardNos when "" THEN null ELSE row.standardNos END,
m.picIds=CASE row.picIds when "" THEN null ELSE row.picIds END,
m.videoIds=CASE row.videoIds when "" THEN null ELSE row.videoIds END
机械库根据uuid创建上下级关系
create index on :Machine(uuid);
:auto match (r:Machine:Common)
where r.typeUuid is not null
unwind (r) as i
call {
with i
match (rp:Machine:Common)
where rp.uuid=i.typeUuid
with i,rp
merge (i)<-[:`下级分类`]-(rp)
} IN TRANSACTIONS OF 2000 ROWS
通用机械库规范入库
LOAD CSV WITH HEADERS
FROM 'file:///通用机械规范属性表.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
根据机械库standardNos,与标准规范库建立关系
match (m:Machine:Common{dataType:'1'}) where m.standardNos is not null
with m, split(coalesce(m.standardNos,""), "|") AS standardNoList
unwind standardNoList as standardNo
with m, standardNo
match (s:StandardizingDocument)
where s.path contains standardNo
merge (m)-[r:`涉及规范`]->(s)
通用机械媒体文件导入且与机械节点创建关系
LOAD CSV WITH HEADERS
FROM 'file:///通用机械-图片.csv' AS row
MERGE (f:MediaFile{uuid:row.uuid}) ON CREATE SET
f.filePath=row.filePath,
f.mediaType=row.mediaType
with f,row
match (j:Common{uuid:row.jixieUuid})
merge (j)-[r:`包含文件`]->(f)
机械库-产品
导入产品机械库数据
LOAD CSV WITH HEADERS
FROM 'file:///建筑机械与设备-产品类入库.csv' AS row
MERGE (m:Machine:PdType {uuid: row.uuid}) ON CREATE SET
m.dataType=row.dataType,
m.typeUuid=CASE row.typeUuid when "" THEN null ELSE row.typeUuid END,
m.cName=CASE row.cName when "" THEN null ELSE row.cName END,
m.eName=CASE row.eName when "" THEN null ELSE row.eName END,
m.explain=CASE row.explain when "" THEN null ELSE row.explain END,
m.clauseExplain=CASE row.clauseExplain when "" THEN null ELSE row.clauseExplain END,
m.standardNos=CASE row.standardNos when "" THEN null ELSE row.standardNos END,
m.picIds=CASE row.picIds when "" THEN null ELSE row.picIds END,
m.videoIds=CASE row.videoIds when "" THEN null ELSE row.videoIds END
机械库根据uuid创建上下级关系
create index on :Machine(uuid);
:auto match (r:Machine:PdType)
where r.typeUuid is not null
unwind (r) as i
call {
with i
match (rp:Machine:PdType)
where rp.uuid=i.typeUuid
with i,rp
merge (i)<-[:`下级分类`]-(rp)
} IN TRANSACTIONS OF 2000 ROWS
产品机械库规范入库
LOAD CSV WITH HEADERS
FROM 'file:///第二批机械库规范属性表.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
根据产品机械库standardNos,与标准规范库建立关系
match (m:Machine:PdType{dataType:'1'}) where m.standardNos is not null
with m, split(coalesce(m.standardNos,""), "|") AS standardNoList
unwind standardNoList as standardNo
with m, standardNo
match (s:StandardizingDocument)
where s.hasNO=standardNo
merge (m)-[r:`涉及规范`]->(s)
创建机械库类型,并与机械库建立关系
Create (n:JiXieType{typeCode:0,typeName:'建筑机械与设备——通用类'});
Create (n:JiXieType{typeCode:1,typeName:'建筑机械与设备——产品类'});
Create (n:JiXieType{typeCode:2,typeName:'船舶'});
match (m:Common),(n:JiXieType{typeCode:0}) merge (m)-[r:JiXieType]->(n);
match (m:PdType),(n:JiXieType{typeCode:1}) merge (m)-[r:JiXieType]->(n);
match (m:Ship),(n:JiXieType{typeCode:2}) merge (m)-[r:JiXieType]->(n);
MATCH (n:Common) remove n:Common;
MATCH (n:PdType) remove n:PdType;
MATCH (n:Ship) remove n:Ship
产品机械数据修改
LOAD CSV WITH HEADERS
FROM 'file:///建筑机械与设备-产品类入库.csv' AS row
MERGE (m:Machine{uuid: row.uuid}) ON match SET
m.dataType=row.dataType,
m.typeUuid=CASE row.typeUuid when "" THEN null ELSE row.typeUuid END,
m.cName=CASE row.cName when "" THEN null ELSE row.cName END,
m.eName=CASE row.eName when "" THEN null ELSE row.eName END,
m.explain=CASE row.explain when "" THEN null ELSE row.explain END,
m.clauseExplain=CASE row.clauseExplain when "" THEN null ELSE row.clauseExplain END,
m.standardNos=CASE row.standardNos when "" THEN null ELSE row.standardNos END,
m.picIds=CASE row.picIds when "" THEN null ELSE row.picIds END,
m.videoIds=CASE row.videoIds when "" THEN null ELSE row.videoIds END
产品机械补充规范标准数据导入
LOAD CSV WITH HEADERS
FROM 'file:///第二批机械库规范属性表2022727补充.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
产品机械图片数据导入,并建立关系
LOAD CSV WITH HEADERS
FROM 'file:///建筑机械与设备-产品类图片路径.csv' AS row
MERGE (f:MediaFile{uuid:row.uuid}) ON CREATE SET
f.filePath=row.filePath,
f.mediaType=row.mediaType
with f,row
match (j:Machine{uuid:row.JXuuid})
merge (j)-[r:`包含文件`]->(f)
机械库-船舶
导入船舶机械库数据并与类型创建关系
LOAD CSV WITH HEADERS
FROM 'file:///船舶入库.csv' AS row
MERGE (m:Machine {uuid: row.uuid}) ON CREATE SET
m.dataType=row.dataType,
m.typeUuid=CASE row.typeUuid when "" THEN null ELSE row.typeUuid END,
m.cName=CASE row.cName when "" THEN null ELSE row.cName END,
m.eName=CASE row.eName when "" THEN null ELSE row.eName END,
m.explain=CASE row.explain when "" THEN null ELSE row.explain END,
m.clauseExplain=CASE row.clauseExplain when "" THEN null ELSE row.clauseExplain END,
m.standardNos=CASE row.standardNos when "" THEN null ELSE row.standardNos END,
m.picIds=CASE row.picIds when "" THEN null ELSE row.picIds END,
m.videoIds=CASE row.videoIds when "" THEN null ELSE row.videoIds END
with m,row
match (n:JiXieType{typeCode:2})
merge (m)-[r:JiXieType]->(n);
导入船舶新增规范
LOAD CSV WITH HEADERS
FROM 'file:///第三批机械库规范属性表.csv' AS row
MERGE (s:StandardizingDocument {hasNO: row.hasNO}) ON CREATE SET
s.nameCN = row.nameCN,
s.nameEN = CASE row.nameEN WHEN "" THEN null ELSE row.nameEN END,
s.levelsOrCategories = CASE row.levelsOrCategories WHEN "" THEN null ELSE row.levelsOrCategories END,
s.fileCode = CASE row.fileCode WHEN "" THEN null ELSE row.fileCode END,
s.standardCode = CASE row.standardCode WHEN "" THEN null ELSE row.standardCode END,
s.hasSN = CASE row.hasSN WHEN "" THEN null ELSE row.hasSN END,
s.releaseYear = CASE row.releaseYear WHEN "" THEN null ELSE row.releaseYear END,
s.hasIS = CASE row.hasIS WHEN "" THEN null ELSE row.hasIS END,
s.hasCCS = CASE row.hasCCS WHEN "" THEN null ELSE row.hasCCS END,
s.releaseDate = CASE row.releaseDate WHEN "" THEN null ELSE date(row.releaseDate) END,
s.implementationDate = CASE row.implementationDate WHEN "" THEN null ELSE date(row.implementationDate) END,
s.hasAQ = CASE row.hasAQ WHEN "" THEN null ELSE row.hasAQ END,
s.replacedNO = CASE row.replacedNO WHEN "" THEN null ELSE row.replacedNO END,
s.degreeOfConsistencyIdentification = CASE row.degreeOfConsistencyIdentification WHEN "" THEN null ELSE row.degreeOfConsistencyIdentification END,
s.releaseMechanism = CASE row.releaseMechanism WHEN "" THEN null ELSE row.releaseMechanism END,
s.updated = CASE row.updated WHEN "" THEN null ELSE date(row.updated) END,
s.maintainerNO = CASE row.maintainerNO WHEN "" THEN null ELSE row.maintainerNO END,
s.hasGBW_CCS = CASE row.hasGBW_CCS WHEN "" THEN null ELSE row.hasGBW_CCS END,
s.state = CASE row.state WHEN "" THEN null ELSE row.state END,
s.path = CASE row.path WHEN "" THEN null ELSE row.path END
船舶类机械与规范创建关系
match (m:Machine)-[]->(:JiXieType{typeCode: 2}) where m.standardNos is not null
with m, split(coalesce(m.standardNos,""), "|") AS standardNoList
unwind standardNoList as standardNo
with m, standardNo
match (s:StandardizingDocument)
where s.hasNO=standardNo
merge (m)-[r:`涉及规范`]->(s)
船舶类机械图片视频导入,并创建关系
LOAD CSV WITH HEADERS
FROM 'file:///船舶图片路径.csv' AS row
MERGE (f:MediaFile{uuid:row.uuid}) ON CREATE SET
f.filePath=row.filePath,
f.mediaType=row.mediaType
with f,row
match (j:Machine{uuid:row.JXuuid})
merge (j)-[r:`包含文件`]->(f)
字典
导入相关字典(key-value类)
LOAD CSV WITH HEADERS
FROM 'file:///工程类别.csv' AS row
MERGE (f:工程类别 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name
导入相关字典,并建立上下级关系(树类)
LOAD CSV WITH HEADERS
FROM 'file:///组织机构类别.csv' AS row
MERGE (f:组织机构类别 :字典{Code:row.Code}) ON CREATE SET
f.ParentCode=row.ParentCode,
f.Name=row.Name;
:auto match (n:组织机构类别)
where n.ParentCode is not null
unwind (n) as i
call {
with i
match (ne:组织机构类别)
where ne.Code=i.ParentCode
with i,ne
merge (i)<-[:`下级分类`]-(ne)
} IN TRANSACTIONS OF 2000 ROWS
组织机构库
导入组织机构库
LOAD CSV WITH HEADERS
FROM 'file:///组织机构库.csv' AS row
MERGE (s:组织机构{组织机构编码: row.组织机构编码}) ON CREATE SET
s.组织名称= CASE row.组织名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.组织名称 END,
s.组织机构类别= CASE row.组织机构类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.组织机构类别 END,
s.法人类型= CASE row.法人类型 WHEN "" THEN null WHEN "0" THEN null ELSE row.法人类型 END,
s.登记机关 = CASE row.登记机关 WHEN "" THEN null WHEN "0" THEN null ELSE row.登记机关 END,
s.管辖机关 = CASE row.管辖机关 WHEN "" THEN null WHEN "0" THEN null ELSE row.管辖机关 END,
s.统一社会信用代码 = CASE row.统一社会信用代码 WHEN "" THEN null WHEN "0" THEN null ELSE row.统一社会信用代码 END,
s.经营状态= CASE row.经营状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.经营状态 END,
s.注册资本= CASE row.注册资本 WHEN "" THEN null WHEN "0" THEN null ELSE row.注册资本 END,
s.所属行业 = CASE row.所属行业 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属行业 END,
s.主要产品= CASE row.主要产品 WHEN "" THEN null WHEN "0" THEN null ELSE row.主要产品 END,
s.成立时间 = CASE row.成立时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.成立时间 END,
s.注销时间 = CASE row.注销时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.注销时间 END,
s.营业期限开始 = CASE row.营业期限开始 WHEN "" THEN null WHEN "0" THEN null ELSE row.营业期限开始 END,
s.营业期限结束 = CASE row.营业期限结束 WHEN "" THEN null WHEN "0" THEN null ELSE row.营业期限结束 END,
s.法人或负责人 = CASE row.法人或负责人 WHEN "" THEN null WHEN "0" THEN null ELSE row.法人或负责人 END,
s.所属层级 = CASE row.所属层级 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属层级 END,
s.上级部门 = CASE row.上级部门 WHEN "" THEN null WHEN "0" THEN null ELSE row.上级部门 END,
s.联系电话 = CASE row.联系电话 WHEN "" THEN null WHEN "0" THEN null ELSE row.联系电话 END,
s.电子邮箱 = CASE row.电子邮箱 WHEN "" THEN null WHEN "0" THEN null ELSE row.电子邮箱 END,
s.邮政编码 = CASE row.邮政编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.邮政编码 END,
s.登记号 = CASE row.登记号 WHEN "" THEN null WHEN "0" THEN null ELSE row.登记号 END,
s.坐标点 = CASE row.坐标点 WHEN "" THEN null WHEN "0" THEN null ELSE row.坐标点 END,
s.详细地址 = CASE row.详细地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.详细地址 END,
s.简介 = CASE row.简介 WHEN "" THEN null WHEN "0" THEN null ELSE row.简介 END,
s.主要职责 = CASE row.主要职责 WHEN "" THEN null WHEN "0" THEN null ELSE row.主要职责 END,
s.范围 = CASE row.范围 WHEN "" THEN null WHEN "0" THEN null ELSE row.范围 END,
s.行政区划代码 = CASE row.行政区划代码 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政区划代码 END,
s.宗旨原则 = CASE row.宗旨原则 WHEN "" THEN null WHEN "0" THEN null ELSE row.宗旨原则 END,
s.传真 = CASE row.传真 WHEN "" THEN null WHEN "0" THEN null ELSE row.传真 END,
s.行政级别 = CASE row.行政级别 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政级别 END
组织机构库自己关联上级部门
:auto match (n:组织机构)
where n.上级部门 is not null
unwind (n) as i
call {
with i
match (ne:组织机构)
where ne.组织机构编码=i.上级部门
with i,ne
merge (i)<-[:`下级部门`]-(ne)
} IN TRANSACTIONS OF 2000 ROWS
组织机构关联字典
:auto match (n:组织机构)
where n.组织机构类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.组织机构类别
with i,ne
merge (i)-[:`组织机构类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:组织机构)
where n.法人类型 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.法人类型
with i,ne
merge (i)-[:`法人类型`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:组织机构)
where n.经营状态 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.经营状态
with i,ne
merge (i)-[:`经营状态`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:组织机构)
where n.行政级别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.行政级别
with i,ne
merge (i)-[:`行政级别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
组织机构与行政区划关联
:auto match (n:组织机构)
where n.行政区划代码 is not null
unwind (n) as i
call {
with i
match (ne:Region)
where ne.code=i.行政区划代码
with i,ne
merge (i)-[:`行政区划`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
组织机构库与行业关联
:auto match (o:组织机构)
with o, split(coalesce(o.所属行业), ",") AS hcodeList
unwind hcodeList as hcode
call {
with o, hcode
match (p:NationEconomyIndustryClass{code:hcode})
merge (o)-[r:`行业`]->(p)
}IN TRANSACTIONS OF 2000 ROWS;
组织机构与产品关联
:auto match (o:组织机构)
with o, split(coalesce(o.主要产品), ",") AS pcodeList
unwind pcodeList as pcode
call {
with o, pcode
match (p:ProductCategory{code:pcode})
merge (o)-[r:`产品`]->(p)
}IN TRANSACTIONS OF 2000 ROWS;
客户库
客户库数据导入
LOAD CSV WITH HEADERS
FROM 'file:///客户库.csv' AS row
MERGE (s:客户{客户编码:row.客户编码}) ON CREATE SET
s.客户名称= CASE row.客户名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户名称 END,
s.客户类别= CASE row.客户类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户类别 END,
s.客户等级= CASE row.客户等级 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户等级 END,
s.客户分类 = CASE row.客户分类 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户分类 END,
s.公司类别 = CASE row.公司类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.公司类别 END,
s.行政区划编码 = CASE row.行政区划编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政区划编码 END,
s.客户地址= CASE row.客户地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户地址 END,
s.客户状态= CASE row.客户状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户状态 END,
s.维护状态 = CASE row.维护状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.所维护状态 END,
s.组织机构编码= CASE row.组织机构编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.组织机构编码 END,
s.专业特长= CASE row.专业特长 WHEN "" THEN null WHEN "0" THEN null ELSE row.专业特长 END
客户关联字典
:auto match (n:客户)
where n.客户类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.客户类别
with i,ne
merge (i)-[:`客户类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:客户)
where n.客户等级 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.客户等级
with i,ne
merge (i)-[:`客户等级`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:客户)
where n.客户分类 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.客户分类
with i,ne
merge (i)-[:`客户分类`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:客户)
where n.公司类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.公司类别
with i,ne
merge (i)-[:`公司类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:客户)
where n.客户状态 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.客户状态
with i,ne
merge (i)-[:`客户状态`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:客户)
where n.维护状态 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.维护状态
with i,ne
merge (i)-[:`维护状态`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
客户关联组织机构
:auto match (n:客户)
where n.组织机构编码 is not null
unwind (n) as i
call {
with i
match (ne:组织机构)
where ne.组织机构编码=i.组织机构编码
with i,ne
merge (i)-[:`组织机构`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
客户与行政区划关联
:auto match (n:客户)
where n.行政区划编码 is not null
unwind (n) as i
call {
with i
match (ne:Region)
where ne.code=i.行政区划编码
with i,ne
merge (i)-[:`行政区划`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
合同库
合同库导入
LOAD CSV WITH HEADERS
FROM 'file:///合同库.csv' AS row
MERGE (s:合同{合同编码: row.合同编码}) ON CREATE SET
s.合同名称= CASE row.合同名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同名称 END,
s.合同编号= CASE row.合同编号 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同编号 END,
s.业务类别= CASE row.业务类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.业务类别 END,
s.业务部门= CASE row.业务部门 WHEN "" THEN null WHEN "0" THEN null ELSE row.业务部门 END,
s.业主联系人 = CASE row.业主联系人 WHEN "" THEN null WHEN "0" THEN null ELSE row.业主联系人 END,
s.业主联系方式 = CASE row.业主联系方式 WHEN "" THEN null WHEN "0" THEN null ELSE row.业主联系方式 END,
s.业主可提供条件= CASE row.业主可提供条件 WHEN "" THEN null WHEN "0" THEN null ELSE row.业主可提供条件 END,
s.合同地点= CASE row.合同地点 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同地点 END,
s.工程类别= CASE row.工程类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.工程类别 END,
s.工程等级= CASE row.工程等级 WHEN "" THEN null WHEN "0" THEN null ELSE row.工程等级 END,
s.工程规模= CASE row.工程规模 WHEN "" THEN null WHEN "0" THEN null ELSE row.工程规模 END,
s.投资额= CASE row.投资额 WHEN "" THEN null WHEN "0" THEN null ELSE row.投资额 END,
s.评审时间= CASE row.评审时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.评审时间 END,
s.签订时间= CASE row.签订时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.签订时间 END,
s.合同开始时间= CASE row.合同开始时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同开始时间 END,
s.合同终止时间= CASE row.合同终止时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同终止时间 END,
s.合同历时= CASE row.合同历时 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同历时 END,
s.质量要求= CASE row.质量要求 WHEN "" THEN null WHEN "0" THEN null ELSE row.质量要求 END,
s.付款条款= CASE row.付款条款 WHEN "" THEN null WHEN "0" THEN null ELSE row.付款条款 END,
s.服务范围= CASE row.服务范围 WHEN "" THEN null WHEN "0" THEN null ELSE row.服务范围 END,
s.工期要求= CASE row.工期要求 WHEN "" THEN null WHEN "0" THEN null ELSE row.工期要求 END,
s.人员要求= CASE row.人员要求 WHEN "" THEN null WHEN "0" THEN null ELSE row.人员要求 END,
s.其他人员要求= CASE row.其他人员要求 WHEN "" THEN null WHEN "0" THEN null ELSE row.其他人员要求 END,
s.其他要求= CASE row.其他要求 WHEN "" THEN null WHEN "0" THEN null ELSE row.其他要求 END,
s.付款费率= CASE row.付款费率 WHEN "" THEN null WHEN "0" THEN null ELSE row.付款费率 END,
s.合同额= CASE row.合同额 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同额 END,
s.有效合同额= CASE row.有效合同额 WHEN "" THEN null WHEN "0" THEN null ELSE row.有效合同额 END,
s.平均人数= CASE row.平均人数 WHEN "" THEN null WHEN "0" THEN null ELSE row.平均人数 END,
s.预计人月= CASE row.预计人月 WHEN "" THEN null WHEN "0" THEN null ELSE row.预计人月 END,
s.人均产值= CASE row.人均产值 WHEN "" THEN null WHEN "0" THEN null ELSE row.人均产值 END,
s.保修期= CASE row.保修期 WHEN "" THEN null WHEN "0" THEN null ELSE row.保修期 END,
s.保修款= CASE row.保修款 WHEN "" THEN null WHEN "0" THEN null ELSE row.保修款 END,
s.延期条款= CASE row.延期条款 WHEN "" THEN null WHEN "0" THEN null ELSE row.延期条款 END,
s.风险概述= CASE row.风险概述 WHEN "" THEN null WHEN "0" THEN null ELSE row.风险概述 END,
s.是否为合作项目= CASE row.是否为合作项目 WHEN "" THEN null WHEN "0" THEN null ELSE row.是否为合作项目 END,
s.合作单位= CASE row.合作单位 WHEN "" THEN null WHEN "0" THEN null ELSE row.合作单位 END,
s.合作情况说明= CASE row.合作情况说明 WHEN "" THEN null WHEN "0" THEN null ELSE row.合作情况说明 END,
s.承揽方式= CASE row.承揽方式 WHEN "" THEN null WHEN "0" THEN null ELSE row.承揽方式 END,
s.合同总监编号= CASE row.合同总监编号 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同总监编号 END,
s.现场负责人编号= CASE row.现场负责人编号 WHEN "" THEN null WHEN "0" THEN null ELSE row.现场负责人编号 END,
s.申请人编号= CASE row.申请人编号 WHEN "" THEN null WHEN "0" THEN null ELSE row.申请人编号 END,
s.申请时间= CASE row.申请时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.申请时间 END,
s.行政区划编码= CASE row.行政区划编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政区划编码 END,
s.经度= CASE row.经度 WHEN "" THEN null WHEN "0" THEN null ELSE row.经度 END,
s.纬度= CASE row.纬度 WHEN "" THEN null WHEN "0" THEN null ELSE row.纬度 END,
s.实际合同额= CASE row.实际合同额 WHEN "" THEN null WHEN "0" THEN null ELSE row.实际合同额 END,
s.合同执行状态= CASE row.合同执行状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同执行状态 END,
s.客户编码= CASE row.客户编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.客户编码 END,
s.备注= CASE row.备注 WHEN "" THEN null WHEN "0" THEN null ELSE row.备注 END,
s.合同性质= CASE row.合同性质 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同性质 END,
s.主合同编码= CASE row.主合同编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.主合同编码 END
更新合同中合同额数字
create index on :合同(合同编码);
:auto LOAD CSV WITH HEADERS
FROM 'file:///合同额.csv' AS row
call {
with row
match (m:合同 {合同编码: row.合同编码})
SET
m.合同额=row.合同额,
m.有效合同额=row.有效合同额,
m.实际合同额=row.实际合同额
} IN TRANSACTIONS OF 1000 ROWS
合同与行政区划关联
:auto match (n:合同)
where n.行政区划编码 is not null
unwind (n) as i
call {
with i
match (ne:Region)
where ne.code=i.行政区划编码
with i,ne
merge (i)-[:`行政区划`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
合同与客户关联
:auto match (n:合同)
where n.客户编码 is not null
unwind (n) as i
call {
with i
match (ne:客户)
where ne.客户编码=i.客户编码
with i,ne
merge (i)-[:`客户`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
合同与自身主合同关联
:auto match (n:合同)
where n.主合同编码 is not null
unwind (n) as i
call {
with i
match (ne:合同)
where ne.合同编码=i.主合同编码
with i,ne
merge (i)-[:`主合同`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
合同关联字典
:auto match (n:合同)
where n.业务类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.业务类别
with i,ne
merge (i)-[:`业务类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:合同)
where n.工程类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.工程类别
with i,ne
merge (i)-[:`工程类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:合同)
where n.工程等级 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.工程等级
with i,ne
merge (i)-[:`工程等级`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:合同)
where n.承揽方式 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.承揽方式
with i,ne
merge (i)-[:`承揽方式`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:合同)
where n.合同执行状态 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.合同执行状态
with i,ne
merge (i)-[:`合同执行状态`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
监理项目库
导入监理项目库
LOAD CSV WITH HEADERS
FROM 'file:///监理项目库.csv' AS row
MERGE (s:监理:项目{项目编码: row.项目编码}) ON CREATE SET
s.项目名称= CASE row.项目名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.项目名称 END,
s.工程类别= CASE row.工程类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.工程类别 END,
s.所属部门 = CASE row.所属部门 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属部门 END,
s.行政区划编码 = CASE row.行政区划编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政区划编码 END,
s.详细地址= CASE row.详细地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.详细地址 END,
s.项目状态= CASE row.项目状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.项目状态 END,
s.缩略图地址 = CASE row.缩略图地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.缩略图地址 END,
s.质量目标= CASE row.质量目标 WHEN "" THEN null WHEN "0" THEN null ELSE row.质量目标 END,
s.进度目标 = CASE row.进度目标 WHEN "" THEN null WHEN "0" THEN null ELSE row.进度目标 END,
s.投资目标 = CASE row.投资目标 WHEN "" THEN null WHEN "0" THEN null ELSE row.投资目标 END,
s.安全目标 = CASE row.安全目标 WHEN "" THEN null WHEN "0" THEN null ELSE row.安全目标 END,
s.计划开始时间 = CASE row.计划开始时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.计划开始时间 END,
s.计划结束时间 = CASE row.计划结束时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.计划结束时间 END,
s.实际开始时间 = CASE row.实际开始时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.实际开始时间 END,
s.实际结束时间 = CASE row.实际结束时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.实际结束时间 END,
s.项目简介 = CASE row.项目简介 WHEN "" THEN null WHEN "0" THEN null ELSE row.项目简介 END,
s.创建时间 = CASE row.创建时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.创建时间 END,
s.创建人 = CASE row.创建人 WHEN "" THEN null WHEN "0" THEN null ELSE row.创建人 END,
s.项目是否归档 = CASE row.项目是否归档 WHEN "" THEN null WHEN "0" THEN null ELSE row.项目是否归档 END,
s.业务类型 = CASE row.业务类型 WHEN "" THEN null WHEN "0" THEN null ELSE row.业务类型 END,
s.地址 = CASE row.地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.地址 END,
s.坐标 = CASE row.坐标 WHEN "" THEN null WHEN "0" THEN null ELSE row.坐标 END,
s.合同编码 = CASE row.合同编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.合同编码 END,
s.实际进场时间 = CASE row.实际进场时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.实际进场时间 END,
s.实际撤场时间 = CASE row.实际撤场时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.实际撤场时间 END
监理项目库与字典关联
:auto match (n:监理:项目)
where n.工程类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.工程类别
with i,ne
merge (i)-[:`工程类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:监理:项目)
where n.项目状态 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.项目状态
with i,ne
merge (i)-[:`项目状态`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:监理:项目)
where n.业务类型 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.业务类型
with i,ne
merge (i)-[:`业务类型`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
监理项目库与行政区划关联
:auto match (n:监理:项目)
where n.行政区划编码 is not null
unwind (n) as i
call {
with i
match (ne:Region)
where ne.code=i.行政区划编码
with i,ne
merge (i)-[:`行政区划`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
监理项目库与合同关联
:auto match (n:监理:项目)
where n.合同编码 is not null
unwind (n) as i
call {
with i
match (ne:合同)
where ne.合同编码=i.合同编码
with i,ne
merge (i)-[:`合同`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
院校库(组织机构)
导入高校数据
LOAD CSV WITH HEADERS
FROM 'file:///高校.csv' AS row
MERGE (s:组织机构:高等院校{组织机构编码: row.组织机构编码}) ON CREATE SET
s.中文名称= CASE row.中文名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.中文名称 END,
s.中文简称= CASE row.中文简称 WHEN "" THEN null WHEN "0" THEN null ELSE row.中文简称 END,
s.英文名称= CASE row.英文名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.英文名称 END,
s.英文简称= CASE row.英文简称 WHEN "" THEN null WHEN "0" THEN null ELSE row.英文简称 END,
s.组织机构类别= CASE row.组织机构类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.组织机构类别 END,
s.法人类型= CASE row.法人类型 WHEN "" THEN null WHEN "0" THEN null ELSE row.法人类型 END,
s.登记机关 = CASE row.登记机关 WHEN "" THEN null WHEN "0" THEN null ELSE row.登记机关 END,
s.统一社会信用代码 = CASE row.统一社会信用代码 WHEN "" THEN null WHEN "0" THEN null ELSE row.统一社会信用代码 END,
s.经营状态= CASE row.经营状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.经营状态 END,
s.注册资本= CASE row.注册资本 WHEN "" THEN null WHEN "0" THEN null ELSE row.注册资本 END,
s.所属行业 = CASE row.所属行业 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属行业 END,
s.主要产品= CASE row.主要产品 WHEN "" THEN null WHEN "0" THEN null ELSE row.主要产品 END,
s.成立时间 = CASE row.成立时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.成立时间 END,
s.注销时间 = CASE row.注销时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.注销时间 END,
s.营业期限开始 = CASE row.营业期限开始 WHEN "" THEN null WHEN "0" THEN null ELSE row.营业期限开始 END,
s.营业期限结束 = CASE row.营业期限结束 WHEN "" THEN null WHEN "0" THEN null ELSE row.营业期限结束 END,
s.法人或负责人 = CASE row.法人或负责人 WHEN "" THEN null WHEN "0" THEN null ELSE row.法人或负责人 END,
s.所属层级 = CASE row.所属层级 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属层级 END,
s.上级部门 = CASE row.上级部门 WHEN "" THEN null WHEN "0" THEN null ELSE row.上级部门 END,
s.联系电话 = CASE row.联系电话 WHEN "" THEN null WHEN "0" THEN null ELSE row.联系电话 END,
s.电子邮箱 = CASE row.电子邮箱 WHEN "" THEN null WHEN "0" THEN null ELSE row.电子邮箱 END,
s.邮政编码 = CASE row.邮政编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.邮政编码 END,
s.坐标 = CASE row.坐标 WHEN "" THEN null WHEN "0" THEN null ELSE row.坐标 END,
s.详细地址 = CASE row.详细地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.详细地址 END,
s.简介 = CASE row.简介 WHEN "" THEN null WHEN "0" THEN null ELSE row.简介 END,
s.经营范围= CASE row.经营范围 WHEN "" THEN null WHEN "0" THEN null ELSE row.经营范围 END,
s.行政区划代码 = CASE row.行政区划代码 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政区划代码 END,
s.优势业务 = CASE row.优势业务 WHEN "" THEN null WHEN "0" THEN null ELSE row.优势业务 END,
s.传真 = CASE row.传真 WHEN "" THEN null WHEN "0" THEN null ELSE row.传真 END,
s.资质资格 = CASE row.资质资格 WHEN "" THEN null WHEN "0" THEN null ELSE row.资质资格 END,
s.荣誉与获奖 = CASE row.荣誉与获奖 WHEN "" THEN null WHEN "0" THEN null ELSE row.荣誉与获奖 END,
s.学校标识码 = CASE row.学校标识码 WHEN "" THEN null WHEN "0" THEN null ELSE row.学校标识码 END,
s.办学层次 = CASE row.办学层次 WHEN "" THEN null WHEN "0" THEN null ELSE row.办学层次 END,
s.办学性质 = CASE row.办学性质 WHEN "" THEN null WHEN "0" THEN null ELSE row.办学性质 END,
s.备注 = CASE row.备注 WHEN "" THEN null WHEN "0" THEN null ELSE row.备注 END
导入其他学校数据
LOAD CSV WITH HEADERS
FROM 'file:///其他教育机构.csv' AS row
MERGE (s:组织机构 :其他教育机构{组织机构编码: row.组织机构编码}) ON CREATE SET
s.中文名称= CASE row.中文名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.中文名称 END,
s.中文简称= CASE row.中文简称 WHEN "" THEN null WHEN "0" THEN null ELSE row.中文简称 END,
s.英文名称= CASE row.英文名称 WHEN "" THEN null WHEN "0" THEN null ELSE row.英文名称 END,
s.英文简称= CASE row.英文简称 WHEN "" THEN null WHEN "0" THEN null ELSE row.英文简称 END,
s.组织机构类别= CASE row.组织机构类别 WHEN "" THEN null WHEN "0" THEN null ELSE row.组织机构类别 END,
s.法人类型= CASE row.法人类型 WHEN "" THEN null WHEN "0" THEN null ELSE row.法人类型 END,
s.登记机关 = CASE row.登记机关 WHEN "" THEN null WHEN "0" THEN null ELSE row.登记机关 END,
s.统一社会信用代码 = CASE row.统一社会信用代码 WHEN "" THEN null WHEN "0" THEN null ELSE row.统一社会信用代码 END,
s.经营状态= CASE row.经营状态 WHEN "" THEN null WHEN "0" THEN null ELSE row.经营状态 END,
s.注册资本= CASE row.注册资本 WHEN "" THEN null WHEN "0" THEN null ELSE row.注册资本 END,
s.所属行业 = CASE row.所属行业 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属行业 END,
s.主要产品= CASE row.主要产品 WHEN "" THEN null WHEN "0" THEN null ELSE row.主要产品 END,
s.成立时间 = CASE row.成立时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.成立时间 END,
s.注销时间 = CASE row.注销时间 WHEN "" THEN null WHEN "0" THEN null ELSE row.注销时间 END,
s.营业期限开始 = CASE row.营业期限开始 WHEN "" THEN null WHEN "0" THEN null ELSE row.营业期限开始 END,
s.营业期限结束 = CASE row.营业期限结束 WHEN "" THEN null WHEN "0" THEN null ELSE row.营业期限结束 END,
s.法人或负责人 = CASE row.法人或负责人 WHEN "" THEN null WHEN "0" THEN null ELSE row.法人或负责人 END,
s.所属层级 = CASE row.所属层级 WHEN "" THEN null WHEN "0" THEN null ELSE row.所属层级 END,
s.上级部门 = CASE row.上级部门 WHEN "" THEN null WHEN "0" THEN null ELSE row.上级部门 END,
s.联系电话 = CASE row.联系电话 WHEN "" THEN null WHEN "0" THEN null ELSE row.联系电话 END,
s.电子邮箱 = CASE row.电子邮箱 WHEN "" THEN null WHEN "0" THEN null ELSE row.电子邮箱 END,
s.邮政编码 = CASE row.邮政编码 WHEN "" THEN null WHEN "0" THEN null ELSE row.邮政编码 END,
s.坐标 = CASE row.坐标 WHEN "" THEN null WHEN "0" THEN null ELSE row.坐标 END,
s.详细地址 = CASE row.详细地址 WHEN "" THEN null WHEN "0" THEN null ELSE row.详细地址 END,
s.简介 = CASE row.简介 WHEN "" THEN null WHEN "0" THEN null ELSE row.简介 END,
s.经营范围= CASE row.经营范围 WHEN "" THEN null WHEN "0" THEN null ELSE row.经营范围 END,
s.行政区划代码 = CASE row.行政区划代码 WHEN "" THEN null WHEN "0" THEN null ELSE row.行政区划代码 END,
s.优势业务 = CASE row.优势业务 WHEN "" THEN null WHEN "0" THEN null ELSE row.优势业务 END,
s.传真 = CASE row.传真 WHEN "" THEN null WHEN "0" THEN null ELSE row.传真 END,
s.资质资格 = CASE row.资质资格 WHEN "" THEN null WHEN "0" THEN null ELSE row.资质资格 END,
s.荣誉与获奖 = CASE row.荣誉与获奖 WHEN "" THEN null WHEN "0" THEN null ELSE row.荣誉与获奖 END,
s.学校标识码 = CASE row.学校标识码 WHEN "" THEN null WHEN "0" THEN null ELSE row.学校标识码 END,
s.办学层次 = CASE row.办学层次 WHEN "" THEN null WHEN "0" THEN null ELSE row.办学层次 END,
s.办学性质 = CASE row.办学性质 WHEN "" THEN null WHEN "0" THEN null ELSE row.办学性质 END,
s.备注 = CASE row.备注 WHEN "" THEN null WHEN "0" THEN null ELSE row.备注 END
教学机构关联字典
:auto match (n:组织机构:高等院校)
where n.组织机构类别 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.组织机构类别
with i,ne
merge (i)-[:`组织机构类别`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:组织机构:高等院校)
where n.法人类型 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.法人类型
with i,ne
merge (i)-[:`法人类型`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
:auto match (n:组织机构:高等院校)
where n.经营状态 is not null
unwind (n) as i
call {
with i
match (ne:字典)
where ne.Code=i.经营状态
with i,ne
merge (i)-[:`经营状态`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
教育机构与行政区划关联
:auto match (n:组织机构:高等院校)
where n.行政区划代码 is not null
unwind (n) as i
call {
with i
match (ne:Region)
where ne.code=i.行政区划代码
with i,ne
merge (i)-[:`行政区划`]->(ne)
} IN TRANSACTIONS OF 2000 ROWS;
教育机构库与行业关联
:auto match (o:组织机构:高等院校)
with o, split(coalesce(o.所属行业), ",") AS hcodeList
unwind hcodeList as hcode
call {
with o, hcode
match (p:NationEconomyIndustryClass{code:hcode})
merge (o)-[r:`行业`]->(p)
}IN TRANSACTIONS OF 2000 ROWS;
教育机构与产品关联
:auto match (o:组织机构:高等院校)
with o, split(coalesce(o.主要产品), ",") AS pcodeList
unwind pcodeList as pcode
call {
with o, pcode
match (p:ProductCategory{code:pcode})
merge (o)-[r:`产品`]->(p)
}IN TRANSACTIONS OF 2000 ROWS;
人员信息相关导入
相关字典导入
LOAD CSV WITH HEADERS
FROM 'file:///户口性质.csv' AS row
MERGE (f:户口性质 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
LOAD CSV WITH HEADERS
FROM 'file:///户口转入状态.csv' AS row
MERGE (f:户口转入状态 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
LOAD CSV WITH HEADERS
FROM 'file:///学历.csv' AS row
MERGE (f:学历 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
LOAD CSV WITH HEADERS
FROM 'file:///档案转移.csv' AS row
MERGE (f:档案转移 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
LOAD CSV WITH HEADERS
FROM 'file:///缴纳身份.csv' AS row
MERGE (f:缴纳身份 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
LOAD CSV WITH HEADERS
FROM 'file:///学科专业.csv' AS row
MERGE (f:学科专业 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
证书数据导入
LOAD CSV WITH HEADERS
FROM 'file:///职称证书.csv' AS row
MERGE (f:职称证书:证书{编码:row.编号}) ON CREATE SET
f.名称=row.名称;
LOAD CSV WITH HEADERS
FROM 'file:///资格证书.csv' AS row
MERGE (f:资格证书:证书{编码:row.编号}) ON CREATE SET
f.名称=row.名称,
f.分类=row.分类,
f.发证机关=row.发证机关;
LOAD CSV WITH HEADERS
FROM 'file:///注册证书.csv' AS row
MERGE (f:注册证书:证书{编码:row.编号}) ON CREATE SET
f.名称=row.名称,
f.发证机关=row.发证机关;
人员信息导入
:auto LOAD CSV WITH HEADERS
FROM 'file:///人员信息表.csv' AS row
call {
with row
Merge (m:员工:人 {编码: row.编码}) ON CREATE
SET
m.员工工号=row.员工工号,
m.姓名=row.姓名,
m.性别=row.性别,
m.民族=row.民族,
m.政治面貌=row.政治面貌,
m.婚姻状态=row.婚姻状态,
m.入职时间=case row.入职时间 when "" Then null when "0001-01-01" then null else row.入职时间 END,
m.参加工作时间=case row.参加工作时间 when "" Then null when "0001-01-01" then null else row.参加工作时间 END,
m.居住地编码=case row.居住地编码 when "" Then null else row.居住地编码 END,
m.居住地详细地址=case row.居住地详细地址 when "" Then null else row.居住地详细地址 END,
m.户籍地编码=case row.户籍地编码 when "" Then null else row.户籍地编码 END,
m.户籍地=case row.户籍地 when "" Then null else row.户籍地 END,
m.身份证号码=case row.身份证号码 when "" Then null else row.身份证号码 END,
m.工位座机=case row.工位座机 when "" Then null else row.工位座机 END,
m.手机号码=case row.手机号码 when "" Then null else row.手机号码 END,
m.头像=case row.头像 when "" Then null else row.头像 END,
m.姓名缩写=case row.姓名缩写 when "" Then null else row.姓名缩写 END,
m.主部门=case row.主部门 when "" Then null else row.主部门 END,
m.职级=case row.职级 when "" Then null else row.职级 END,
m.邮箱=case row.邮箱 when "" Then null else row.邮箱 END,
m.户口性质=case row.户口性质 when "" Then null else row.户口性质 END,
m.户口转入状态=case row.户口转入状态 when "" Then null else row.户口转入状态 END,
m.公积金账号=case row.公积金账号 when "" Then null else row.公积金账号 END,
m.社保账号=case row.社保账号 when "" Then null else row.社保账号 END,
m.工资卡号=case row.工资卡号 when "" Then null else row.工资卡号 END,
m.档案转移=case row.档案转移 when "" Then null else row.档案转移 END,
m.缴纳身份=case row.缴纳身份 when "" Then null else row.缴纳身份 END,
m.档案所在地=case row.档案所在地 when "" Then null else row.档案所在地 END,
m.出生日期=case row.出生日期 when "" Then null when "0001-01-01" then null else row.出生日期 END,
m.身份证图片=case row.身份证图片 when "" Then null else row.身份证图片 END
} IN TRANSACTIONS OF 1000 ROWS
人员与字典关联
(居住地行政区划,籍贯行政区划,户口性质,户口转入状态,政治面貌,民族,婚姻状态,档案转移,缴纳身份)
//居住地
match (e:员工),(rg:Region{code:e.居住地编码})
merge (e)-[r:居住地{详细地址:e.居住地详细地址 }]->(rg);
//户籍地
match (e:员工),(rg:Region{code:e.户籍地编码})
merge (e)-[r:户籍地{详细地址:e.户籍地}]->(rg);
//婚姻状态
match (e:员工),(rg:MaritalStatus{code:e.婚姻状态})
merge (e)-[r:婚姻状态]->(rg);
//性别
match (e:员工),(rg:Sex{code:e.性别})
merge (e)-[r:性别]->(rg);
//政治面貌
match (e:员工),(rg:PoliticalStatus{code:e.政治面貌})
merge (e)-[r:政治面貌]->(rg);
//民族
match (e:员工),(rg:Nation{code:e.民族})
merge (e)-[r:民族]->(rg);
//户口性质
match (e:员工),(rg:户口性质{Code:e.户口性质})
merge (e)-[r:户口性质]->(rg);
//户口转入状态
match (e:员工),(rg:户口转入状态{Code:e.户口转入状态})
merge (e)-[r:户口转入状态]->(rg);
//档案转移
match (e:员工),(rg:档案转移{Code:e.档案转移})
merge (e)-[r:档案转移]->(rg);
//缴纳身份
match (e:员工),(rg:缴纳身份{Code:e.缴纳身份})
merge (e)-[r:缴纳身份]->(rg);
导入人员工作经历并建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///工作经历.csv' AS row
call {
with row
Merge (m:工作经历 {编码: row.编码}) ON CREATE
SET
m.开始时间=case row.开始时间 when "" Then null when "0001-01-01" then null else row.开始时间 END,
m.结束时间=case row.结束时间 when "" Then null when "0001-01-01" then null else row.结束时间 END,
m.工作单位=case row.工作单位 when "" Then null else row.工作单位 END,
m.职务=case row.职务 when "" Then null else row.职务 END,
m.证明人=case row.证明人 when "" Then null else row.证明人 END,
m.工作内容=case row.工作内容 when "" Then null else row.工作内容 END,
m.证明人联系方式=case row.证明人联系方式 when "" Then null else row.证明人联系方式 END,
m.员工编码=case row.员工编码 when "" Then null else row.员工编码 END
with m,row
match (e:员工{编码:row.员工编码})
merge (m)<-[:工作经历]-(e)
} IN TRANSACTIONS OF 1000 ROWS
导入人员家庭成员并建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///家庭成员表.csv' AS row
call {
with row
Merge (m:人 {编码: row.编码}) ON CREATE
SET
m.出生日期=case row.出生日期 when "" Then null when "0001-01-01" then null else row.出生日期 END,
m.工作单位=case row.工作单位 when "" Then null else row.工作单位 END,
m.姓名=row.姓名,
m.联系方式=row.联系方式,
m.员工编码=case row.员工编号 when "" Then null else row.员工编号 END
with m,row
match (e:员工{编码:row.员工编号})
merge (m)-[:家庭成员{关系字典值:row.关系字典值,关系:row.关系}]-(e)
} IN TRANSACTIONS OF 1000 ROWS
导入人员教育经历并建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///教育经历.csv' AS row
call {
with row
Merge (m:教育经历 {编码: row.编码}) ON CREATE
SET
m.开始时间=case row.开始时间 when "" Then null when "0001-01-01" then null else row.开始时间 END,
m.结束时间=case row.结束时间 when "" Then null when "0001-01-01" then null else row.结束时间 END,
m.教育类型=case row.教育类型 when "" Then null else row.教育类型 END,
m.学校=case row.学校 when "" Then null else row.学校 END,
m.学历字典值=case row.学历字典值 when "" Then null else row.学历字典值 END,
m.学历=case row.学历 when "" Then null else row.学历 END,
m.专业字典值=case row.专业字典值 when "" Then null else row.专业字典值 END,
m.专业=case row.专业 when "" Then null else row.专业 END,
m.证书=case row.证书 when "" Then null else row.证书 END,
m.员工编码=case row.员工编号 when "" Then null else row.员工编号 END
with m,row
match (e:员工{编码:row.员工编号})
merge (m)<-[:教育经历]-(e)
} IN TRANSACTIONS OF 1000 ROWS
职称证书与人建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///职称证书-人.csv' AS row
call {
with row
match (e:员工{编码:row.人员编号}),(c:证书{编码:row.证书uuid})
merge (e)-[r:持有]-(c) on create set
r.证书编号=case row.证书编号 when "" Then null else row.证书编号 END,
r.等级=case row.等级 when "" Then null else row.等级 END,
r.专业=case row.专业 when "" Then null else row.专业 END,
r.发证日期=case row.发证日期 when "" Then null else row.发证日期 END,
r.状态=case row.状态 when "" Then null else row.状态 END
} IN TRANSACTIONS OF 1000 ROWS
注册证书与人建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///注册证书-人.csv' AS row
call {
with row
match (e:员工{编码:row.人员编号}),(c:证书{编码:row.证书No})
merge (e)-[r:持有]-(c) on create set
r.证书编号=case row.证书编号 when "" Then null else row.证书编号 END,
r.发证日期=case row.发证日期 when "" Then null when "0001-01-01" then null else row.发证日期 END,
r.有效期=case row.有效期 when "" Then null when "0001-01-01" then null else row.有效期 END,
r.状态=case row.证书状态 when "" Then null else row.状态 END
} IN TRANSACTIONS OF 1000 ROWS
资质证书与人建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///资格证书-人.csv' AS row
call {
with row
match (e:员工{编码:row.人员编号}),(c:证书{编码:row.证书No})
merge (e)-[r:持有]-(c) on create set
r.证书编号=case row.证书编号 when "" Then null else row.证书编号 END,
r.发证日期=case row.发证日期 when "" Then null when "0001-01-01" then null else row.发证日期 END,
r.等级=case row.等级 when "" Then null else row.等级 END,
r.状态=case row.证书状态 when "" Then null else row.状态 END
} IN TRANSACTIONS OF 1000 ROWS
导入部门数据,部门间建立上下级关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///部门.csv' AS row
call {
with row
merge (e:部门{编码:row.编码}) on create set
e.父级编码=row.父级编码,
e.名称=row.名称
} IN TRANSACTIONS OF 1000 ROWS
:auto match (n:部门)
where n.父级编码 <> '1001'
unwind (n) as i
call {
with i
match (ne:部门)
where ne.编码=i.父级编码
with i,ne
merge (i)<-[:`下级部门`]-(ne)
} IN TRANSACTIONS OF 2000 ROWS
match (n:部门) where n.父级编码='1001'
match (m:组织机构) where m.组织名称='山东港通工程管理咨询有限公司'
merge (m)-[:部门]->(n)
部门与员工建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///人员-部门.csv' AS row
call {
with row
match (e:员工{编码:row.人员编号}),(c:部门{编码:row.部门编号})
merge (e)-[r:任职于]-(c) on create set
r.岗位编号=case row.岗位编号 when "" Then null else row.岗位编号 END,
r.岗位名称=case row.岗位名称 when "" Then null when "0001-01-01" then null else row.岗位名称 END
} IN TRANSACTIONS OF 1000 ROWS
经营信息录入并与员工建立关系
:auto LOAD CSV WITH HEADERS
FROM 'file:///经营信息.csv' AS row
call {
with row
Merge (m:经营信息 {编码: row.编码}) ON CREATE
SET
m.项目名称=case row.项目名称 when "" Then null else row.项目名称 END,
m.部门编码=case row.部门编码 when "" Then null else row.部门编码 END,
m.业务类型=case row.业务类型 when "" Then null else row.业务类型 END,
m.行政区划编码=case row.行政区划编码 when "" Then null else row.行政区划编码 END,
m.详细地址=case row.详细地址 when "" Then null else row.详细地址 END,
m.投资额=case row.投资额 when "" Then null when '/' Then null else row.投资额 END,
m.项目概况=case row.项目概况 when "" Then null when '/' Then null else row.项目概况 END,
m.建设单位=case row.建设单位 when "" Then null when '/' Then null else row.建设单位 END,
m.跟踪状态=case row.跟踪状态 when "" Then null else row.跟踪状态 END,
m.经营负责人=case row.经营负责人 when "" Then null else row.经营负责人 END,
m.项目进展情况=case row.项目进展情况 when "" Then null else row.项目进展情况 END,
m.需要协调的问题=case row.需要协调的问题 when "" Then null else row.需要协调的问题 END
with m,split(coalesce(row.经营负责人,""), "|") AS List
unwind List as ee
match (e:员工{编码:ee})
merge (m)<-[:跟踪项目]-(e)
} IN TRANSACTIONS OF 1000 ROWS
经营信息与行政区划建立关联
match (e:经营信息),(r:Region{code:e.行政区划编码})
merge (e)-[rr:业务地点]->(r)
set rr.详细地址=e.详细地址
经营信息与国家建立关联
match (e:经营信息),(r:Country{code_n:e.行政区划编码}) where size(e.行政区划编码)=3
merge (e)-[rr:业务地点]->(r)
set rr.详细地址=e.详细地址
经营信息与部门建立关系
match (e:经营信息),(r:部门{编码:e.部门编码})
merge (e)-[:业务部门]->(r)
相关字典导入
LOAD CSV WITH HEADERS
FROM 'file:///经营跟踪状态.csv' AS row
MERGE (f:经营跟踪状态 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
LOAD CSV WITH HEADERS
FROM 'file:///经营项目类型.csv' AS row
MERGE (f:经营项目类型 :字典{Code:row.Code}) ON CREATE SET
f.Name=row.Name;
经营项目与字典关联
match (e:经营信息),(r:经营跟踪状态{Code:e.跟踪状态})
merge (e)-[:跟踪状态]->(r);
match (e:经营信息)
with e, split(e.业务类型,'|') as list
unwind list as item
with item,e
match (r:经营项目类型{Code:item})
merge (e)-[:业务类型]->(r);
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 流年 丶!