## 2. 專利上架流程
**參與專利上架流程的對象:**
1. 爬蟲
2. 審核程序
3. 后臺人工
> 審核通過后才可以進行上架出售,但其實現在已沒有審核的概念了,補錄過程就是審核,雖然字段有這個值(2,3),但目前來看,狀態不會停留在這個值
>
> 目前是爬蟲和定時程序一起來定時校驗數據,補全和自動上架,失敗的才需要由后臺人員進行補錄上架,不論人工還是機器 補全后 都是直接 【上架出售】
*****
### 是否下證判斷規則
> 其中已下證包含的法律狀態為:等待頒證公告;專利權維持;等年費滯納金;未繳年費專利權終止,等恢復
> 授權未下證包含的法律狀態為:等年登印費;視為放棄,等恢復;待發授權辦登通知書
原則上我們系統不存真實法律狀態,但是也有例外情況,當爬到數據,但是不滿足我們的狀態的,即不在陳總這個規則之類的,我們也不丟棄,也不算校驗失敗,此時存的就是真實法律狀態。
*****
### 爬蟲需要更新的字段
```sql
`goods_name` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '專利名稱' ,
`s_patent_number` varchar(50) NOT NULL DEFAULT '' COMMENT '專利號,如:2011104299451',
`s_patent_apply_date` varchar(50) NOT NULL DEFAULT '' COMMENT '專利申請日期',
`s_patent_authorize_date` varchar(50) NOT NULL DEFAULT '' COMMENT '專利授權日期',
`s_patent_apply_publish_date` varchar(50) NOT NULL DEFAULT '' COMMENT '申請發布日期',
`s_patent_patentee` varchar(255) NOT NULL DEFAULT '' COMMENT '專利持有人',
`s_patent_patentee_addr` varchar(255) NOT NULL DEFAULT '' COMMENT '專利持有人地址',
`s_patent_agency` varchar(255) NOT NULL DEFAULT '' COMMENT '專利代理機構',
`s_patent_patent_agency_num` varchar(50) NOT NULL DEFAULT '' COMMENT '代理機構編號 空',
`s_patent_agent` varchar(255) NOT NULL DEFAULT '' COMMENT '專利代理人 空',
`s_patent_designer` varchar(255) NOT NULL DEFAULT '' COMMENT '專利發明人',
`s_patent_legal_status_text` char(50) NOT NULL DEFAULT '' COMMENT '專利案件的法律狀態文字',
`s_patent_main_number` varchar(50) NOT NULL DEFAULT '' COMMENT '主分次號:行業分類就是根據這個分的,如 A61K 36/88',
`s_patent_apply_name` varchar(100) NOT NULL DEFAULT '' COMMENT '申請人:如 陳為人/高德軟件有限公司',
`s_patent_apply_address` varchar(200) NOT NULL DEFAULT '' COMMENT '申請人地址',
`pay_last_date` varchar(50) NOT NULL DEFAULT '' COMMENT '繳費截至日期'
```
> 通常來說,如果能爬到,就應該能全部爬到這些,具體情況程順到時候再看一下,會不會存在哪些數據確實爬不到沒有的。
>
> 專利名稱,專利號,專利申請日期,專利代理機構,代理機構編號,專利代理人,專利發明人,專利案件的法律狀態文字(專利持有人,專利持有人地址,與何總商定改為申請人及申請人地址,因為爬不到持有人信息)
*****
### 處理過程
1. 爬蟲
爬蟲只做校驗
爬蟲定時遍歷 `where s_patent_claim_status = 0
`
爬蟲更新狀態 `set s_patent_claim_status = 1`(校驗失敗,未爬到數據)、`set s_patent_claim_status = 2`(校驗成功,爬到數據)
、`set s_patent_claim_status = -1`(無效數據,爬到數據,但不滿足狀態)
、`set s_patent_claim_status = -2`(特殊情況,需人工補錄,爬到數據,但情況特殊,爬蟲不好處理)
2. 定時審核程序
定時審核程序 檢查 爬蟲校驗成功后的數據的完整性
定時審核程序遍歷 `where s_patent_claim_status = 2
`
定時審核程序更新狀態 `set s_patent_claim_status = 5`(審核通過,自動上架) 和 `set s_patent_claim_status = 4`(審核失敗)
3. 人工
人工“待審核列表” `where s_patent_claim_status in (1,4,-2)` (爬蟲校驗失敗的 和 特殊情況的 和 機器審核失敗的)
人工補錄更新狀態 `set s_patent_claim_status = 5`(補錄完成,上架)
*****
>[tip] 注意:上面的上架狀態的更新沒寫完整,完整的上架出售 狀態更新sql為 :
```sql
set s_patent_claim_status = 5, s_patent_sale_status = 2, s_patent_trade_status = 1
```
**附狀態字段:**
```
`s_patent_claim_status` 認領狀態:-2 特殊情況,-1 無效數據,爬到數據,但不滿足狀態,0-待校驗,1-校驗失敗,2-待審核,3-審核通過,4-審核失敗,5-出售中
`s_patent_sale_status` '上架狀態:0-待上架,1-上架審核中,2-已上架,3-已下架',
`s_patent_lock_status` '是否鎖定(下單后會鎖定,交易結束就解鎖):0-未鎖定,1-已鎖定',
`s_patent_sale_out_status` '是否賣出:0-未賣出,1-已賣出',
`s_patent_trade_status` '是否可售:0-不可售,1-正在出售中',
```
last update: 2019-03-30 08:17:52