Commit b94edf0b by 王勇飞

gyq

parent f93f43af
......@@ -76,7 +76,7 @@ class PatentycCtl extends CtlBase {
if (obj.companyname && obj.companyname != 'undefined'){
try{
var result = await this.service.competitionAnalysisInfo(obj);
if (result){
if (JSON.stringify(result) != '{}'){
return System.getResult2(result);
}
else{
......@@ -94,10 +94,10 @@ class PatentycCtl extends CtlBase {
}
async competitionAnalysisContex(pobj,obj,req){//竞争分析详细信息
if (obj.company1 && obj.company1 != 'undefined' && obj.company2 && obj.company2 != 'undefined'){
if (obj.company1 && obj.company1 != 'undefined' && obj.company2 && obj.company2 != 'undefined' && obj.keyword1 && obj.keyword1 != 'undefined' && obj.keyword2 && obj.keyword2 ){
try{
var result = await this.service.competitionAnalysisContex(obj);
if (result){
if (JSON.stringify(result) != '{}'){
return System.getResult2(result);
}
else{
......@@ -1430,15 +1430,17 @@ class PatentycCtl extends CtlBase {
}
module.exports = PatentycCtl;
// var task = new PatentycCtl();
// var obj = {
// "companyname": "667b8300-c101-11ea-98dd-3142bd90eec4",
// "company2": "html"
// };
// task.competitionAnalysisInfo({},obj,{}).then(d=>{
// console.log(JSON.stringify(d));
// //console.log(d[0].analyse);
// })
var task = new PatentycCtl();
var obj = {
"company1": "华为技术有限公司",
"company2": "中兴通讯股份有限公司",
"keyword1":"用户设备,通信领域,通信技术,设备发送,指示信息,通信系统,通信方法,设备接收,对应关系,基站发送,终端发送,用户体验,配置信息,请求消息,数据传输方法,用户终端,网络侧,移动终端,通信设备,传输方法",
"keyword2":"用户体验,移动终端,用户设备,相关技术,网络侧,终端发送,用户终端,配置信息,指示信息,请求消息,对应关系,传输方法,基站发送,通信系统,数据传输方法,通信领域,通信技术,设备发送,响应消息,发送方法"
};
task.competitionAnalysisContex({},obj,{}).then(d=>{
console.log(JSON.stringify(d));
//console.log(d[0].analyse);
})
// (async ()=>{
// var task = new PatentycCtl();
......
......@@ -11,6 +11,7 @@ class PatentycService extends ServiceBase {
this.GsbByChinaAffairSearchApi = System.getObject("api.chinaaffairsearch");
this.GsbByChinaAggApi = System.getObject("api.cpatentaggregations");
this.GsbByWorldAggApi = System.getObject("api.wpatentaggregations");
this.redisClient = System.getObject("util.redisClient");
this.CreatepdfUrl = "http://202.106.92.152:82/pv4.1/createPdf.php";
this.DownpdfUrl = "http://202.106.92.152:82/pv4.1/downPdf.php";
this.tokenUrl = "http://tm.qifu.gongsibao.com/web/auth/accessAuth/getAppTokenByHosts";
......@@ -289,13 +290,14 @@ class PatentycService extends ServiceBase {
var total = 0;
for (var l1 in list1) {
for (var l2 in list2) {
if (l1 == l2) {
if (list1[l1] == list2[l2]) {
total += 1;
break;
}
}
}
var rtndata = 0;
console.log("total----------------" + total);
if (total >= 1 && total <= 5) {
rtndata = this.RandomNumBoth(60, 70);
}
......@@ -313,6 +315,18 @@ class PatentycService extends ServiceBase {
};
getArrEqual(arr1, arr2) {//取出两个数组的相同元素
let newArr = [];
for (let i = 0; i < arr2.length; i++) {
for (let j = 0; j < arr1.length; j++) {
if (arr1[j] === arr2[i]) {
newArr.push(arr1[j]);
}
}
}
return newArr;
};
async getcountryen(cnname) {//国家对应关系
var mapobj = {
"阿拉伯联合酋长国": "United Arab Emirates",
......@@ -8604,21 +8618,33 @@ class PatentycService extends ServiceBase {
"actionType": "getAppTokenByHosts",
"actionBody": {}
}
var rc = System.getObject("util.execClient");
var requrl = this.tokenUrl;
var rtn = await rc.execPost3(params, requrl);
var j = JSON.parse(rtn.stdout);
if (j.status == 0) {
var jtoken = await this.redisClient.get("patentyc_k");//从redlis获取token
var token = "";
if (jtoken) {
token = jtoken;
}
else {
var requrl1 = this.tokenUrl;
var rtn1 = await rc.execPost3(params, requrl1);
var j1 = JSON.parse(rtn1.stdout);
if (j1.status == 0) {
token = j1.data.token;
//把token存入redis
await this.redisClient.setWithEx("patentyc_k", token, 108000);
}
}
if (token) {
params = {
"actionType": "getEntregistryByCompanyName",
"actionBody": {
"companyName": obj.companyname
}
}
requrl = this.icUrl;
rtn = await rc.execPost4(j.data.token, params, requrl);
j = JSON.parse(rtn.stdout); //得到了公司的信息
var requrl = this.icUrl;
var rtn = await rc.execPost4(token, params, requrl);
var j = JSON.parse(rtn.stdout); //得到了公司的信息
if (j.status == 0) {
redata.businessscope = j.data.scope;//主营业务
redata.industryname = j.data.companyCate2;//行业信息
......@@ -8663,6 +8689,11 @@ class PatentycService extends ServiceBase {
}
},
{
"terms": {
"key_word": cbuckets
}
},
{
"bool": {
"must_not": {
"term": {
......@@ -8692,7 +8723,7 @@ class PatentycService extends ServiceBase {
teminfo.keyword = keylist.join(",");
//计算竞争指数
var competeindex = this.calculatecompete(cbuckets, keylist);
teminfo.competeindex = competeindex;
teminfo.competeindex = competeindex;
redata.competeinfo.push(teminfo);
});
}
......@@ -8702,12 +8733,12 @@ class PatentycService extends ServiceBase {
}
else {
//console.log("1111111");
console.log("1111111");
return {};
}
}
else {
//console.log("SSSSSSS");
console.log("SSSSSSS");
return {};
}
......@@ -8763,108 +8794,233 @@ class PatentycService extends ServiceBase {
async competitionAnalysisContex(obj) {//竞争分析详细信息
try {
return [
{
"keyword": "keyword1",//关键词
"company1": {//左边公司的信息
"cpmpanyname": "华为技术科技有限公司",//公司名称
"patentnum": 2000,//专利总量
"patentquality": 78,//专利质量得分
"patentrate": "78%",//专利成长率
"totalscore": 123,//总评分
"iconscore": 87//icon上的值
},
"company2": {//右边公司的信息
"cpmpanyname": "北京小米科技有限公司",//公司名称
"patentnum": 2000,//专利总量
"patentquality": 78,//专利质量得分
"patentrate": "78%",//专利成长率
"totalscore": 123,//总评分
"iconscore": 87//icon上的值
}
},
{
"keyword": "keyword2",
"company1": {
"cpmpanyname": "华为技术科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
},
"company2": {
"cpmpanyname": "北京小米科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
}
},
{
"keyword": "keyword3",
"company1": {
"cpmpanyname": "华为技术科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
},
"company2": {
"cpmpanyname": "北京小米科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
}
},
{
"keyword": "keyword4",
"company1": {
"cpmpanyname": "华为技术科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
},
"company2": {
"cpmpanyname": "北京小米科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
}
},
{
"keyword": "keyword5",
"company1": {
"cpmpanyname": "华为技术科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
},
"company2": {
"cpmpanyname": "北京小米科技有限公司",
"patentnum": 2000,
"patentquality": 78,
"patentrate": "78%",
"totalscore": 123,
"iconscore": 87
}
}
]
//比较公司下的关键词,得到相同的关键词
var arr1 = obj.keyword1.split(",");
var arr2 = obj.keyword2.split(",");
var arr3 = this.getArrEqual(arr1, arr2);
if (arr3.length > 0) {
var rtnlist = [];
var max = 5;
if (arr3.length < 5) {
max = arr3.length;
}
for (var i in arr1) {
if (arr3.indexOf(arr1[i]) > -1) {
var temp = {
"keyword": arr1[i],//关键词
"company1": {//左边公司的信息
"cpmpanyname": obj.company1,//公司名称
"patentnum": 0,//专利总量
"patentquality": 0,//专利质量得分
"patentrate": "0%",//专利成长率
"totalscore": 0,//总评分
"iconscore": 0//icon上的值
},
"company2": {//右边公司的信息
"cpmpanyname": obj.company2,//公司名称
"patentnum": 0,//专利总量
"patentquality": 0,//专利质量得分
"patentrate": "0%",//专利成长率
"totalscore": 0,//总评分
"iconscore": 0//icon上的值
}
};
var searchList = [
{
"term": {
"applicant_name.raw": obj.company1
}
},
{
"term": {
"key_word": arr1[i]
}
}
];
//有效聚合
var total = 0;
var cbuckets = [];
var tms = await this.GsbByChinaAggApi.PubstatusAggs(searchList);//获取查询结果
if (tms) {
if (tms.status == 0) {
total = tms.data.total;
if (tms.buckets.types.buckets) {
cbuckets = tms.buckets.types.buckets;
}
}
}
if (total && cbuckets) {
temp.company1.patentnum = total;
var youxiao = 0;
cbuckets.forEach(element => {
if (element.key == "有效") {
youxiao = element.doc_count;
}
});
temp.company1.patentquality = parseInt((youxiao / total) * 100);
var rpatentrate = this.RandomNumBoth(60, 95);
temp.company1.patentrate = rpatentrate.toString() + "%";
temp.company1.totalscore = parseInt(total / 100) + temp.company1.patentquality + rpatentrate;
temp.company1.iconscore = parseInt(temp.company1.totalscore / 10);
}
searchList = [];
total = 0;
cbuckets = [];
searchList = [
{
"term": {
"applicant_name.raw": obj.company2
}
},
{
"term": {
"key_word": arr1[i]
}
}
];
tms = await this.GsbByChinaAggApi.PubstatusAggs(searchList);//获取查询结果
if (tms) {
if (tms.status == 0) {
total = tms.data.total;
if (tms.buckets.types.buckets) {
cbuckets = tms.buckets.types.buckets;
}
}
}
if (total && cbuckets) {
temp.company2.patentnum = total;
var youxiao = 0;
cbuckets.forEach(element => {
if (element.key == "有效") {
youxiao = element.doc_count;
}
});
temp.company2.patentquality = parseInt((youxiao / total) * 100);
var rpatentrate = this.RandomNumBoth(60, 95);
temp.company2.patentrate = rpatentrate.toString() + "%";
temp.company2.totalscore = parseInt(total / 100) + temp.company2.patentquality + rpatentrate;
temp.company2.iconscore = parseInt(temp.company2.totalscore / 10);
}
rtnlist.push(temp);
max--;
}
if (max <= 0) {
break;
}
}
return rtnlist;
}
else {
return [];
}
// return [
// {
// "keyword": "keyword1",//关键词
// "company1": {//左边公司的信息
// "cpmpanyname": "华为技术科技有限公司",//公司名称
// "patentnum": 2000,//专利总量
// "patentquality": 78,//专利质量得分
// "patentrate": "78%",//专利成长率
// "totalscore": 123,//总评分
// "iconscore": 87//icon上的值
// },
// "company2": {//右边公司的信息
// "cpmpanyname": "北京小米科技有限公司",//公司名称
// "patentnum": 2000,//专利总量
// "patentquality": 78,//专利质量得分
// "patentrate": "78%",//专利成长率
// "totalscore": 123,//总评分
// "iconscore": 87//icon上的值
// }
// },
// {
// "keyword": "keyword2",
// "company1": {
// "cpmpanyname": "华为技术科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// },
// "company2": {
// "cpmpanyname": "北京小米科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// }
// },
// {
// "keyword": "keyword3",
// "company1": {
// "cpmpanyname": "华为技术科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// },
// "company2": {
// "cpmpanyname": "北京小米科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// }
// },
// {
// "keyword": "keyword4",
// "company1": {
// "cpmpanyname": "华为技术科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// },
// "company2": {
// "cpmpanyname": "北京小米科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// }
// },
// {
// "keyword": "keyword5",
// "company1": {
// "cpmpanyname": "华为技术科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// },
// "company2": {
// "cpmpanyname": "北京小米科技有限公司",
// "patentnum": 2000,
// "patentquality": 78,
// "patentrate": "78%",
// "totalscore": 123,
// "iconscore": 87
// }
// }
// ]
}
catch (error) {
return {};
return [];
}
}
......@@ -9726,6 +9882,10 @@ class PatentycService extends ServiceBase {
module.exports = PatentycService;
// var task = new PatentycService();
// var list1 = ["用户设备","通信领域","通信技术","设备发送","指示信息","通信系统","通信方法","设备接收","对应关系","基站发送","终端发送","用户体验","配置信息","请求消息","数据传输方法","用户终端","网络侧","移动终端","通信设备","传输方法"];
// var list2 = ["用户体验","移动终端","用户设备","相关技术","网络侧","终端发送","用户终端","配置信息","指示信息","请求消息","对应关系","传输方法","基站发送","通信系统","数据传输方法","通信领域","通信技术","设备发送","响应消息","发送方法"];
// var r = task.getArrEqual(list1,list2);
// console.log("r----"+r);
// var obj = {
// "uid": "667b8300-c101-11ea-98dd-3142bd90eec4",
// "type": "html"
......@@ -9736,9 +9896,12 @@ module.exports = PatentycService;
// (async () => {
// var task = new PatentycService();
// var obj = {
// "companyname": "华为技术有限公司"
// "company1": "华为技术有限公司",
// "company2": "中兴通讯股份有限公司",
// "keyword1":"用户设备,通信领域,通信技术,设备发送,指示信息,通信系统,通信方法,设备接收,对应关系,基站发送,终端发送,用户体验,配置信息,请求消息,数据传输方法,用户终端,网络侧,移动终端,通信设备,传输方法",
// "keyword2":"用户体验,移动终端,用户设备,相关技术,网络侧,终端发送,用户终端,配置信息,指示信息,请求消息,对应关系,传输方法,基站发送,通信系统,数据传输方法,通信领域,通信技术,设备发送,响应消息,发送方法"
// };
// var d = await task.competitionAnalysisInfo(obj)
// var d = await task.competitionAnalysisContex(obj)
// console.log("dddddd---------" + JSON.stringify(d));
// })()
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