Commit 46fbbcd6 authored by chuwanshun's avatar chuwanshun

增加字典映射

parent e9b1fa47
package com.cesgroup.common.utils;
import lombok.Getter;
@Getter
public enum PatentTypeEnum {
E0101("01-01","谷类食品"),
E0102("01-02","蔬菜水果"),
E0103("01-03","乳制品"),
E0104("01-04","肉制品"),
E0105("01-05",""),
E0106("01-06","动物用食"),
E0199("01-99","其他食品"),
E0201("02-01","内衣"),
E0202("02-02","服装"),
E0203("02-03","帽子"),
E0204("02-04","鞋袜"),
E0205("02-05","领带、手"),
E0206("02-06","手套"),
E0207("02-07","服饰附件"),
E0299("02-99","其他服装"),
E0301("03-01","箱、包、"),
E0302("03-02",""),
E0303("03-03","伞、手杖"),
E0304("03-04","扇子"),
E0399("03-99","其他旅行"),
E0401("04-01","扫把"),
E0402("04-02","梳妆、服"),
E0403("04-03","工业用刷"),
E0404("04-04","油漆、烹"),
E0499("04-99","其他刷具"),
E0501("05-01","纺纱制品"),
E0502("05-02","蕾丝"),
E0503("05-03","绣花"),
E0504("05-04","缎、穗带"),
E0505("05-05","纺织纤维"),
E0506("05-06","片材类"),
E0599("05-99","其他"),
E0601("06-01","床和椅子"),
E0602("06-02",""),
E0604("06-04","存物用家"),
E0605("06-05","组合家具"),
E0606("06-06","其他家具"),
E0607("06-07","镜子和框"),
E0608("06-08","挂衣架"),
E0609("06-09","床垫和垫"),
E0610("06-10","窗帘、百"),
E0611("06-11","地毯、席"),
E0612("06-12","挂毯"),
E0613("06-13","覆盖物"),
E0699("06-99","其他"),
E0701("07-01","陶瓷、玻"),
E0702("07-02","烹调器皿"),
E0703("07-03","刀叉、汤"),
E0704("07-04","料理食物"),
E0705("07-05","熨烫、洗"),
E0706("07-06","其他桌上"),
E0707("07-07","其他家用"),
E0708("07-08","公寓壁炉"),
E0799("07-99","其他家用"),
E0801("08-01","钻、碾、"),
E0802("08-02","鎚类工具"),
E0803("08-03","切削工具"),
E0804("08-04","螺丝起子"),
E0805("08-05","其他工具"),
E0806("08-06","把手和绞"),
E0807("08-07","锁"),
E0808("08-08","其他扣紧"),
E0809("08-09","门窗金属"),
E0810("08-10","自行车架"),
E0899("08-99","其他五金"),
E0901("09-01","带喷雾容"),
E0902("09-02","贮藏容器"),
E0903("09-03","箱、盒、"),
E0904("09-04","柳条箱、"),
E0905("09-05","袋、管、"),
E0906("09-06","捆箍材料"),
E0907("09-07","密封装置"),
E0908("09-08","托板和装"),
E0909("09-09","垃圾容器"),
E1001("10-01","钟"),
E1002("10-02","手表"),
E1003("10-03","其他计时"),
E1004("10-04","其他计测"),
E1005("10-05","检验用仪"),
E1006("10-06","信号设备"),
E1007("10-07","检测仪部"),
E1099("10-99","其他计测"),
E1101("11-01","珠宝"),
E1102("11-02","小摆设"),
E1103("11-03","徽章"),
E1104("11-04","人造植物"),
E1105("11-05","节日装饰"),
E1199("11-99","其他装饰"),
E1201("12-01","畜力车辆"),
E1202("12-02","手推车"),
E1203("12-03","轨道车"),
E1204("12-04","空中缆车"),
E1205("12-05","电梯和升"),
E1206("12-06","船和艇"),
E1207("12-07","飞机及太"),
E1208("12-08","汽车"),
E1209("12-09","拖车头"),
E1210("12-10","拖车"),
E1211("12-11","自行车、"),
E1212("12-12","婴儿车、"),
E1213("12-13","专用车辆"),
E1214("12-14","其他载具"),
E1215("12-15","车辆轮胎"),
E1216("12-16","其他车辆"),
E1299("12-99","其他运输"),
E1301("13-01","发电机、"),
E1302("13-02","变压器、"),
E1303("13-03","配电和控"),
E1399("13-99","其他电力"),
E1401("14-01","声、图的"),
E1402("14-02","数据处理"),
E1403("14-03","通讯设备"),
E1499("14-99","其他录制"),
E1501("15-01","引擎"),
E1502("15-02","泵和压缩"),
E1503("15-03","农业机具"),
E1504("15-04","建筑机具"),
E1505("15-05","工业洗洁"),
E1506("15-06","纺织、绣"),
E1507("15-07","冷冻机具"),
E1508("15-08",""),
E1509("15-09","研磨和铸"),
E1599("15-99","其他机具"),
E1601("16-01","照相机、"),
E1602("16-02","放映机"),
E1603("16-03","复印装备"),
E1604("16-04","显影器械"),
E1605("16-05","附件"),
E1606("16-06","光学制品"),
E1699("16-99","其他光学"),
E1701("17-01","键盘乐器"),
E1702("17-02","管乐器"),
E1703("17-03","弦乐器"),
E1704("17-04","打击乐器"),
E1705("17-05","自动演奏"),
E1799("17-99","其他约起"),
E1801("18-01","打字机、"),
E1802("18-02","印刷机器"),
E1803("18-03","印刷活字"),
E1804("18-04","装订、裁"),
E1899("18-99","其他办公"),
E1901("19-01","书写纸、"),
E1902("19-02","办公设备"),
E1903("19-03","日历"),
E1904("19-04","书本类"),
E1905("19-05",""),
E1906("19-06","绘写、雕"),
E1907("19-07","教学器材"),
E1908("19-08","其他印刷"),
E1999("19-99","其他办公"),
E2001("20-01","自动贩卖"),
E2002("20-02","陈列设备"),
E2003("20-03","标志、广"),
E2099("20-99","其他广告"),
E2101("21-01","游戏器具"),
E2102("21-02","运动器具"),
E2103("21-03","其他娱乐"),
E2104("21-04","帐篷及附"),
E2199("21-99","其他玩具"),
E2201("22-01","射击武器"),
E2202("22-02","其他武器"),
E2203("22-03","弹药、火"),
E2204("22-04","靶"),
E2205("22-05","狩猎和钓"),
E2206("22-06","捕捉器,灭"),
E2299("22-99","其他武器"),
E2301("23-01","液体分配"),
E2302("23-02","卫生设备"),
E2303("23-03","供热设备"),
E2304("23-04","空调设备"),
E2305("23-05","固体燃料"),
E2399("23-99","其他空调"),
E2401("24-01","医疗、实"),
E2402("24-02","医疗、实"),
E2403("24-03","修复手术"),
E2404("24-04","医疗用材"),
E2499("24-99","其他医疗"),
E2501("25-01","建筑材料"),
E2502("25-02","预制建筑"),
E2503("25-03","房屋等建"),
E2504("25-04","梯子、鹰"),
E2599("25-99","其他建筑"),
E2601("26-01","烛台、烛"),
E2602("26-02","手灯、灯"),
E2603("26-03","公共照明"),
E2604("26-04","光源"),
E2605("26-05","灯、灯罩"),
E2606("26-06","车辆照明"),
E2699("26-99","其他照明"),
E2701("27-01","烟草、雪"),
E2702("27-02","烟嘴"),
E2703("27-03","烟灰缸"),
E2704("27-04","火柴"),
E2705("27-05","打火机"),
E2706("27-06","烟盒"),
E2799("27-99","其他烟草"),
E2801("28-01","药品"),
E2802("28-02","化妆用品"),
E2803("28-03","梳洗用品"),
E2804("28-04","假发"),
E2899("28-99","其他化妆"),
E2901("29-01","防火救援"),
E2902("29-02","救生装备"),
E2999("29-99","其他救生"),
E3001("30-01","动物服装"),
E3002("30-02","圈、笼、"),
E3003("30-03","喂食器"),
E3004("30-04","马具"),
E3005("30-05","鞭子、刺"),
E3006("30-06","睡垫、窝"),
E3007("30-07","栖木、笼"),
E3008("30-08","烙印器"),
E3009("30-09","栓柱"),
E3099("30-99","其他动物"),
A01("A01","农林牧渔 "),
A21("A21","焙烤 "),
A22("A22","屠宰及肉类"),
A23("A23","其他食品和"),
A24("A24","烟草和制品"),
A41("A41","服装 "),
A42("A42","帽类制品 "),
A43("A43","鞋类 "),
A44("A44","服饰附属品"),
A45("A45","旅行品 "),
A46("A46","刷类制品 "),
A47("A47","家用品 "),
A61("A61","医学 "),
A62("A62","救生、消防"),
A63("A63","运动、娱乐"),
A99("A99","其他人类生"),
B01("B01","物理、化学"),
B02("B02","粉磨及预处"),
B03("B03","分离固体 "),
B04("B04","离心装置 "),
B05("B05","喷射、涂覆"),
B06("B06","机械振动 "),
B07("B07","固体分选 "),
B08("B08","清洁 "),
B09("B09","固体废物及"),
B21("B21","金属机械加"),
B22("B22","铸造 "),
B23("B23","机床 "),
B24("B24","磨削、抛光"),
B25("B25","车间 "),
B26("B26","切割、切断"),
B27("B27","木材类加工"),
B28("B28","加工水泥、"),
B29("B29","塑料加工 "),
B30("B30","压力机 "),
B31("B31","纸品加工 "),
B32("B32","层状产品 "),
B41("B41","印刷、排版"),
B42("B42","装订、图册"),
B43("B43","办公用品 "),
B44("B44","装饰艺术 "),
B60("B60","一般车辆 "),
B61("B61","铁路 "),
B62("B62","无轨陆用车"),
B63("B63","船舶及设备"),
B64("B64","飞行器 "),
B65("B65","包装、贮存"),
B66("B66","卷扬、牵引"),
B67("B67","液体贮运 "),
B68("B68","鞍具 "),
B81("B81","微观结构 "),
B82("B82","纳米超微 "),
B99("B99","其他作业、"),
C02("C02","水、污泥处"),
C03("C03","玻璃、渣棉"),
C04("C04","水泥、耐火"),
C05("C05","肥料及制造"),
C06("C06","炸药、火柴"),
C07("C07","有机化学 "),
C08("C08","有机高分子"),
C09("C09","染料、黏合"),
C10("C10","石油、煤气"),
C11("C11","油、脂、蜡"),
C12("C12","酿造、生物"),
C13("C13","糖工业 "),
C14("C14","皮革 "),
C21("C21","铁的冶金 "),
C23("C23","表面化学处"),
C25("C25","电解、电泳"),
C30("C30","晶体生长 "),
C40("C40","组合技术 "),
C99("C99","其他化学、"),
D01("D01","线、纤维、"),
D02("D02","纱线、绳索"),
D03("D03","织造 "),
D04("D04","针织、花边"),
D05("D05","缝纫、绣花"),
D06("D06","织物处理 "),
D07("D07","绳 "),
D21("D21","造纸 "),
D99("D99","其他纺织类"),
E01("E01","道路、铁路"),
E02("E02","水利工程 "),
E03("E03","给水、排水"),
E04("E04","建筑物 "),
E05("E05","钥匙、门窗"),
E06("E06","门、窗、梯"),
E21("E21","岩石钻进、"),
E99("E99","其他建筑物"),
F01("F01","发动机、蒸"),
F02("F02","热气发动机"),
F03("F03","其他动力发"),
F04("F04","液体变容式"),
F15("F15","流压执行机"),
F16("F16","工程元件 "),
F17("F17","气体、液体"),
F21("F21","照明 "),
F22("F22","蒸汽的发生"),
F23("F23","燃烧设备 "),
F24("F24","供热、通风"),
F25("F25","制冷、热泵"),
F26("F26","干燥 "),
F27("F27","炉、窑 "),
F28("F28","一般热交换"),
F41("F41","武器 "),
F42("F42","弹药、爆破"),
F99("F99","其他机械工"),
G01("G01","测量、测试"),
G02("G02","光学 "),
G03("G03","摄影、电记"),
G04("G04","测时学 "),
G05("G05","控制、调节"),
G06("G06","计算、推算"),
G07("G07","核算装置 "),
G08("G08","信号装置 "),
G09("G09","教育、密码"),
G10("G10","乐器、声学"),
G11("G11","信息存储 "),
G12("G12","仪器的零部"),
G21("G21","核物理、核"),
G99("G99","其他物理 "),
H01("H01","电气元件 "),
H02("H02","发电、变配"),
H03("H03","电子电路 "),
H04("H04","电通信技术"),
H05("H05","其他电技术"),
H99("H99","其他电学 ");
private String code;
private String message;
PatentTypeEnum(String code, String message) {
this.code = code;
this.message = message;
}
/**
* @param code
* @return
*/
public static PatentTypeEnum parse(String code) {
PatentTypeEnum[] values = values();
for (PatentTypeEnum value : values) {
if (value.getCode().equals(code) ) {
return value;
}
}
return null;
}
}
package com.cesgroup.common.utils;
import lombok.Getter;
@Getter
public enum TypeEnum {
AM("AM", "亚美尼亚 "), AP("AP", "非洲地区知"), AR("AR", "阿根廷 "), AU("AU", "澳大利亚 "), AT("AT", "奥地利 "), BA("BA", "波斯尼亚和"),
BE("BE", "比利时 "), BG("BG", "保加利亚 "), BR("BR", "巴西 "), BY("BY", "白俄罗斯 "), CA("CA", "加拿大 "),
CL("CL", "智利 "), CO("CO", "哥伦比亚 "), CR("CR", "哥斯达黎加"), CS("CS", "捷克斯洛伐"), CU("CU", "古巴 "),
CY("CY", "塞浦路斯 "), CZ("CZ", "捷克共和国"), DK("DK", "丹麦 "), DO("DO", "多米尼加共"), DZ("DZ", "阿尔及利亚"), EA("EA", "欧亚专利局"),
EC("EC", "厄瓜多尔 "), EE("EE", "爱沙尼亚 "), EG("EG", "埃及 "), ES("ES", "西班牙 "), FI("FI", "芬兰 "),
GC("GC", "海湾地区阿员会专利局(GCC)"), GE("GE", "格鲁吉 "), GR("GR", "希腊 "), GT("GT", "危地马拉 "), MO("MO", "中国澳门 "),
HN("HN", "洪都拉斯 "), HR("HR", "克罗地亚 "), HU("HU", "匈牙利 "), ID("ID", "印度尼西亚"), IE("IE", "爱尔兰 "), IL("IL", "以色列 "),
IN("IN", "印度 "), IS("IS", "冰岛 "), IT("IT", "意大利 "), JO("JO", "约旦 "), KE("KE", "肯尼亚 "),
KG("KG", "吉尔吉斯斯"), KZ("KZ", "哈萨克斯坦"), LT("LT", "立陶宛 "), LU("LU", "卢森堡 "), LV("LV", "拉脱维亚 "), MA("MA", "摩洛哥 "),
MC("MC", "摩纳哥 "), MD("MD", "摩尔多瓦共"), ME("ME", "黑山 "), MN("MN", "蒙古 "), MT("MT", "马耳他 "),
MW("MW", "马拉维墨西"), MX("MX", "墨西哥 "), MY("MY", "马来西亚 "), NI("NI", "尼加拉瓜 "), NL("NL", "荷兰 "),
NO("NO", "挪威 "), NZ("NZ", "新西兰 "), OA("OA", "非洲知识产"), PA("PA", "巴拿马 "), PE("PE", "秘鲁 "),
PH("PH", "菲律宾 "), PL("PL", "波兰 "), PT("PT", "葡萄牙 "), RO("RO", "罗马尼亚 "), RS("RS", "塞尔维亚 "),
SE("SE", "瑞典 "), SI("SI", "斯洛文尼亚"), SG("SG", "新加坡 "), SK("SK", "斯洛伐克 "), SM("SM", "圣马力诺 "),
SU("SU", "前苏联 "), SV("SV", "萨尔瓦多 "), TH("TH", "泰国 "), TJ("TJ", "塔吉克斯坦"), TN("TN", "突尼斯 "),
TR("TR", "土耳其 "), TT("TT", "特立尼达和"), UA("UA", "乌克兰 "), UY("UY", "乌拉圭 "), UZ("UZ", "乌兹别克斯"),
VN("VN", "越南 "), YU("YU", "南斯拉夫 "), ZA("ZA", "南非 "), ZM("ZM", "赞比亚 "), ZW("ZW", "津巴布韦 "),
WO("WO", "世界知识产"), CN("CN", "中国 "), JP("JP", "日本 "), GB("GB", "英国 "), DE("DE", "德国 "),
CH("CH", "瑞士 "), US("US", "美国 "), KR("KR", "韩国 "), FR("FR", "法国 "), RU("RU", "俄罗斯 "),
EP("EP", "欧洲专利局"), HK("HK", "中国香港 "), TW("TW", "中国台湾 ");
private String code;
private String message;
TypeEnum(String code, String message) {
this.code = code;
this.message = message;
}
/**
* @param code
* @return
*/
public static TypeEnum parse(String code) {
TypeEnum[] values = values();
for (TypeEnum value : values) {
if (value.getCode().equals(code) ) {
return value;
}
}
return null;
}
}
package com.cesgroup.kingkong.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cesgroup.common.utils.http.HttpClientHelper;
import com.cesgroup.common.utils.PatentTypeEnum;
import com.cesgroup.common.utils.TypeEnum;
import com.cesgroup.kingkong.mapper.EsMapper;
@Service
public class QueryService {
private Logger LOGGER = LoggerFactory.getLogger(HttpClientHelper.class);
@Autowired
private EsMapper esMapper;
/** 根据id查出数据处理后的结果
* @param id
* @return
* Map<String,Object>
/**
* 通过ID获取数据
*
* @param index 索引,类似数据库
* @param type 类型,类似表
* @param id 数据ID
* @param fields 需要显示的字段,逗号分隔(缺省为全部字段)
* @return Map<String,Object>
*/
public Map<String, Object> getById(String id) {
Map<String, Object> result = new HashMap<String, Object>();
......@@ -58,7 +59,7 @@ public class QueryService {
id = id.substring(0, id.lastIndexOf("."));
result = queryById(id);
}
LOGGER.info("查询id: " + id);
System.out.println("查询id: " + id);
return result;
}
......@@ -82,7 +83,7 @@ public class QueryService {
*/
public Map<String, Object> queryById(String id) {
// 需要返回的字段
String fields = "[\"title\",\"appno\",\"appdate\",\"pubno\",\"pubdate\",\"legal_status\",\"granted_status\",\"patent_type\",\"ipcs\",\"agents\",\"inventors\",\"applicants\",\"owners\",\"abstract\"]";
String fields = "[\"title\",\"legal_status_result\",\"appno\",\"appdate\",\"pubno\",\"pubdate\",\"legal_status\",\"granted_status\",\"patent_type\",\"ipcs\",\"agents\",\"inventors\",\"applicants\",\"owners\",\"abstract\"]";
Map<String, Object> resultMap = new HashMap<String, Object>();
JSONObject sourceJsonObject = null;
String query = new String("{\"_source\":" + fields
......@@ -90,7 +91,6 @@ public class QueryService {
String resultString = esMapper.postQuery(query);
JSONObject hitJsonObject = JSONObject.parseObject(resultString).getJSONObject("hits");
JSONArray hitsArray = (JSONArray) hitJsonObject.get("hits");
LOGGER.info("查询出的数据有"+hitsArray.size()+"条!");
if (hitsArray.size() > 0) {
sourceJsonObject = hitsArray.getJSONObject(0).getJSONObject("_source");
resultMap = parseResult(sourceJsonObject);
......@@ -105,7 +105,6 @@ public class QueryService {
resultMap.put("title", StringUtils.isNotBlank(cnTitle) ? cnTitle : enTitle);
String application_number = sourceJsonObject.getString("appno");
resultMap.put("application_number", application_number);
String application_date1 = sourceJsonObject.getString("appdate");
String application_date = "";
if (StringUtils.isNotBlank(application_date1)) {
......@@ -123,23 +122,26 @@ public class QueryService {
+ publication_date1.substring(6, 8);
}
resultMap.put("publication_date", publication_date);
String legal_status = sourceJsonObject.getString("legal_status");
String legal_status = sourceJsonObject.getJSONObject("legal_status_result").getString("legalstatus");
resultMap.put("legal_status", legal_status);
String granted_status = sourceJsonObject.getString("granted_status");
String granted_status = sourceJsonObject.getJSONObject("legal_status_result").getString("granted_status");
resultMap.put("granted_status", granted_status);
String kind_code_desc = sourceJsonObject.getString("patent_type");
resultMap.put("kind_code_desc", kind_code_desc);
JSONArray IPC_list = sourceJsonObject.getJSONObject("ipcs").getJSONArray("mainclass");
List<String> ipcNames = new ArrayList<String>();
for (int j = 0; j < IPC_list.size(); j++) {
String nameString=null!=IPC_list.getString(j)?PatentTypeEnum.parse(IPC_list.getString(j)).getMessage().replaceAll(" ", ""):"";
ipcNames.add(nameString);
}
resultMap.put("IPC_list", IPC_list);
//目前没有
resultMap.put("IPC_desc", "");
// appno前两位根据另外提供的表进行匹配
resultMap.put("IPC_desc", ipcNames);
String appcountry = StringUtils.isNoneBlank(sourceJsonObject.getString("appno"))
? sourceJsonObject.getString("appno").substring(0, 2)
: "";
resultMap.put("appcountry", appcountry);
resultMap.put("appcountry", null!=TypeEnum.parse(appcountry)?TypeEnum.parse(appcountry).getMessage().replaceAll(" ", ""):"");
JSONArray agengtObjectArray = sourceJsonObject.getJSONArray("agents");
List<String> newAgengts = new ArrayList<String>();
......@@ -149,7 +151,6 @@ public class QueryService {
newAgengts.add(agency);
}
resultMap.put("agency", newAgengts);
JSONArray inventorObjectArray = sourceJsonObject.getJSONArray("inventors");
List<String> newInventors = new ArrayList<String>();
for (int i = 0; i < inventorObjectArray.size(); i++) {
......@@ -160,7 +161,6 @@ public class QueryService {
newInventors.add(nameString);
}
resultMap.put("inventors", newInventors);
JSONArray applicantsArray = sourceJsonObject.getJSONArray("applicants");
List<Map<String, Object>> newApplicants = new ArrayList<Map<String, Object>>();
for (int i = 0; i < applicantsArray.size(); i++) {
......@@ -214,7 +214,6 @@ public class QueryService {
}else {
resultMap.put("owners", newApplicants);
}
String abstract1 = StringUtils.isNotBlank(sourceJsonObject.getJSONObject("abstract").getString("text_zh"))
? sourceJsonObject.getJSONObject("abstract").getString("text_zh")
: sourceJsonObject.getJSONObject("abstract").getString("text_en");
......
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