1.batchSavePatentUpdateByPA (专利增量按照申请人(高校名称)模糊增量)
- 查询表etl_college_iu(status=0)未跑的数据。如果查不到则 从表 etl_college 中查出所有高校名称 插入表 etl_college_iu;
- 遍历表 etl_college_iu 根据name(高校名称)查询表 st_patentinfo_sub1 max(pd) (最新公开(公告日)日期)。
- 根据name,pd 等参数调用 http://111.198.99.173:8080/cnipr-ds/patinfo 接口获取专利信息;
- 根据 recordCount(接口返回数据条数),计算分页数page(50条一页);
- 根据条件 name,pd,page(分页数)等参数调用http://111.198.99.173:8080/cnipr-ds/patinfo 接口;
- 根据sysid(专利唯一ID)判断专利是否已经在st_patentinfo_sub1中存在;
- 将不存在数据放入集合sysidList中;
- 根据条件 sysid=sysidList去调用 http://111.198.99.173:8080/cnipr-ds/patinfo 接口;
- 判断接口返回数据在 st_patentinfo_sub1 是否存在。
不存在:将数据插入表 st_patentinfo_sub1、st_patentinfo_sub3、etl_college_page
存在:做更新操作
11.遍历接口返回值 legalStatusInfo、patPrsExploitationInfo、patPrsPreservationInfo、patPrsTransferInfo patFeeInfo 判断是否存在,不存 在则分别插入表 st_legalstatusinfo、st_patprsexploitationinfo、st_patprspreservationinfo、 st_patprstraansferinfo、st_patfeeinfo;
12.更新表 etl_college_iu (status)字段为1;
2.saveScorePatchPatent(评估数据新加 全量:sub3 未评估数据评估)
- 更新表 etl_score 状态为2,3,4的数据为0(0未跑 1跑结束 2异常 3数据未生成 4数据处理中)往表 etl_score(表 st_patentinfo_sub3 score=null数据)中插入数据,
- 更新表 etl_score状态为0的数据为4 并查询出来表 etl_score状态为4的数据 并做遍历。根据表etl_score 表中pnm作为参数 调用 http://e.cnipr.com/services/rs/score/loadScoreInfo接口。根据返回值更新表** st_patentinfo_sub3 ,再根据接口返回的值 插入表 st_scoreinfo 最后更新 etl_sore **状态为1(跑结束)
判断表etl_score为0(未跑) 数据条目是否大于0
否:结束
是:重复操作2步骤;
3.svaePdfurlPatchPatent(批量更新st_patentinfo_sub3 pdfurl为NULL数据)
1.查询表 st_patentinfo_sub3中 pdfUrl为null的数据 遍历查询结果集合。
2.根据条件 pnm,pd调用 http://111.198.99.173:8080/cnipr-ds/pdf接口。根据接口返回值 更新表 st_patentinfo_sub3中pdfUrl字段。
4.savePagePatentSysid(页出现问题重新跑, 通过sysid去跑)
1.查询表 etl_college_page(status=2)的数据,根据查询到的sysid 查询表 st_patentinfo_sub1中数据是否存在。
存在:更新 etl_college_page 状态(status=1)
不存在: 将sysid作为条件 调用http://111.198.99.173:8080/cnipr-ds/patinfo接口,遍历接口返回的结果集
2. 根据sysid查询st_patentinfo_sub1是否存在
否:将接口返回数据插入表 st_patentinfo_sub1、st_patentinfo_sub3、并记录在表 etl_college_page(保存一条插入的记录)
是:分别将sysid 和新的查询信息作为条件 查询表 st_patentinfo_sub1、st_patentinfo_sub3 无则更新。
遍历接口返回值 legalStatusInfo、patPrsExploitationInfo、patPrsPreservationInfo、patPrsTransferInfo patFeeInfo 判断是否存在,不存在则分别插入表 st_legalstatusinfo、st_patprsexploitationinfo、st_patprspreservationinfo、 st_patprstraansferinfo、st_patfeeinfo;
更新表 etl_college_iu (status)字段为1;
5.savePagePatentByPage(学校某页出现网络连接问题,只存了一条page页,重新跑,通过college/page去跑)
查询表 etl_college_page(status=2 or =3,type=1),遍历结果集,调用 http://111.198.99.173:8080/cnipr-ds/patinfo接口。遍历接口返回的结果集,根据sysid 查询表 st_patentinfo_sub1 中是否存在
否:将数据插入表 st_patentinfo_sub1、st_patentinfo_sub3、etl_college_page
是:重复操作4
6.savePatentInfoToMongo(变更数据,存入Mongo数据库)
根据条件(省略)查询表 st_patentinfo_sub3 统计需要同步的专利总数,判断mongo中是否存在 st_patentinfo_sub3查询到的数据,
否:根据st_patentinfo_sub3 中sysid 查询st_patentinfo_sub1 ,将 两者构造 数据插入到mongo中。将st_patentinfo_sub3 中 lastLegalStatus和an 等构造LegalTypeChange(法律状态变更数据)存到mongo;
是:根据st_patentinfo_sub3 中sysid查询 st_patentinfo_sub1,将两者构造数据 更新到 mongo。判断mongo中 LastLegalStatus和 st_patentinfo_sub3是否一致,不一致 则更新 LegalTypeChange(法律状态变更数据)根据条件(省略)查询表 st_patentinfo_sub1统计需要同步的专利总数,根据sysid 判断mongo中是否存在 st_patentinfo_sub1查询到的数据。
否:根据st_patentinfo_sub1中sysid查询 st_patentinfo_sub3,将两者构造数据插入到mongo中。
是:根据st_patentinfo_sub1中sysid查询 st_patentinfo_sub3,将两者构造数据更新到mongo中。legalstatusinfo同步到mongo子流程,feeInfo、transferinfo、PreservationInfo、ExploitationInfo同步到mongo子流程。
legalstatusInfo同步到mongo子流程:
1.根据条件(省略)查询表 st_legalstatusinfo获取总的条目数。将查询到的数据存入mongo中。
2.存入mongo是否有异常
否:结束
是:则 stran(申请号)存入 transferinfo.txt文件
an(申请号)存入preservation.txt文件(PreservationInfo同步到mongo子流程)
an(申请号)存入exploitationinfo.txt文件(ExploitaionInfo同步到mongo子流程)
7.saveTJChangePatentUpdate()
saveAllCompanyPatentToRdsFromFile(从增量文件如__Rds)
搜索 /home/vsftpd/ftptg/chang路径下面文件,遍历,读取文件的第一条不为空的那一行并解析为TKCompanyPatentUpdateFileResult对象,分别根据 increasePatents 和 reducePatents构建
holder_an_change表入参。
updateHolderAnchangeCheckAn(更新__holderanchange checkAn)
1.将 holder_an_change中 check_an是空,change_type=1,status=0,且 an 在 表 st_patentinfo_sub1中存在的数据的check_an字段更新为 st_patentinfo_sub1的an值;
2.将 holder_an_change中check_an是空,chanage_type=1,status=0,且 appNo在表st_patentinfo_sub1中存在的数据的check_an字段更新为 st_patentinfo_sub1的an值;
更新AN
insertEtlAn()
1.将holder_an_change中满足 check_an =null,change_type=1 并且status=0的数据插入 etl_an中。
savePagePatentAnIU()
1.将etl_an中 type=1的数据,status更新为0
2.查询etl_an 中 type=1,status=0的数据,遍历结果集,根据字段an 调用 http://111.198.99.173:8080/cnipr-ds/patinfo接口。。。。(重复操作4)
updateHolderAnchangeCheckAn()
1.将 holder_an_change 中状态为0的数据更新为1
saveAllCompanyPatentFromRdsToMongo()
1.分页查询 holder_an_change 中 status=1数据,判断 holder_an_change 中changetype是否为1
是:将入参数据构造存入mongo
否:将mongo中数据删除
2.将 holder_an_change中 status=1数据更新为2;
8.syncGoodsPatent(新加商品从出版社同步未同步的专利)