2 Commits 046e1a1bde ... 037fcb1bf6

Autor SHA1 Mensagem Data
  Administrator 037fcb1bf6 近期bug修改 há 6 meses atrás
  Administrator db65c5e559 华农车型查询问题处理 há 7 meses atrás

+ 165 - 6
spiders/guoshou/baojia/gs_bfjs.py

@@ -2149,13 +2149,11 @@ class gs_calculation(object):
 			# 评分
 			jq_mark = re.findall(r'underwritingScoreJQ":(.*?),', response.text, re.S)[0]
 			sy_mark = re.findall(r'underwritingScore":(.*?),', response.text, re.S)[0]
-			js_mark = re.findall(r'unionUnderwritingScore":(.*?),', response.text, re.S)[0]
-			if jq_mark!='null' and sy_mark!='null':
-				mark=js_mark
-			elif sy_mark=='null':
-				mark=jq_mark
-			elif jq_mark=='null':
+
+			if  sy_mark:
 				mark=sy_mark
+			else :
+				mark = jq_mark
 
 			#非车险
 
@@ -2186,6 +2184,51 @@ class gs_calculation(object):
 			carInfo['caryear'] = self.car_info.get('marketDate')
 
 
+			headers = {
+				"Accept": "application/json, text/plain, */*",
+				"Content-Type": "application/json;charset=UTF-8",
+				"OauthToken": self.token,
+				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
+			}
+			url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doQuotationProductContract"
+			data = {
+				"orderNo": self.orderId,
+				"structureId": self.zhanghao_info.get('data').get('provincialCom'),
+				"tranNo": self.tranNo,
+				"userCode": self.gs_info.get('userCode'),
+				"systemSource": "EM2",
+				"oriSysOperator": "EM2_user",
+				"oriSysOperatorKey": "RU0yZW0y"
+			}
+			data = json.dumps(data)
+			response = requests.post(url, headers=headers, data=data)
+			predict_info = []
+			if response.json().get('data'):
+				historicaList_list=response.json().get('data').get('historicaList')
+				if historicaList_list:
+					for i in historicaList_list:
+						opinion=i.get('ruleID')
+						description=i.get('description')
+						predict_info.append(
+							{
+								'opinion':opinion,
+								'description':description
+							}
+						)
+				historicbList_list = response.json().get('data').get('historicbList')
+				if historicbList_list:
+					for i in historicbList_list:
+						opinion=i.get('ruleID')
+						description=i.get('description')
+						predict_info.append(
+							{
+								'opinion':opinion,
+								'description':description
+							}
+						)
+
+
+
 			return {
 				'code':200,
 				'INSURANCE_TYPE': {
@@ -2224,6 +2267,7 @@ class gs_calculation(object):
 						'jq_discount':'',
 						'sy_discount': '',
 						'isQuoteGreenWay': '',
+						'predict_info':predict_info
 					},
 				'jq_repeatinfo': self.jq_repeatinfo,
 				'sy_repeatinfo': self.sy_repeatinfo,
@@ -2280,3 +2324,118 @@ class gs_calculation(object):
 
 
 
+car_type={
+  "B11": "重型普通半挂车",
+  "B12": "重型厢式半挂车",
+  "B13": "重型罐式半挂车",
+  "B14": "重型平板半挂车",
+  "B15": "重型集装箱半挂车",
+  "B16": "重型自卸半挂车",
+  "B17": "重型特殊结构半挂车",
+  "B21": "中型普通半挂车",
+  "B22": "中型厢式半挂车",
+  "B23": "中型罐式半挂车",
+  "B24": "中型平板半挂车",
+  "B25": "中型集装箱半挂车",
+  "B26": "中型自卸半挂车",
+  "B27": "中型特殊结构半挂车",
+  "B31": "轻型普通半挂车",
+  "B32": "轻型厢式半挂车",
+  "B33": "轻型罐式半挂车",
+  "B34": "轻型平板半挂车",
+  "B35": "轻型自卸半挂车",
+  "D11": "无轨电车",
+  "D12": "有轨电车",
+  "G11": "重型普通全挂车",
+  "G12": "重型厢式全挂车",
+  "G13": "重型罐式全挂车",
+  "G14": "重型平板全挂车",
+  "G15": "重型集装箱全挂车",
+  "G16": "重型自卸全挂车",
+  "G21": "中型普通全挂车",
+  "G22": "中型厢式全挂车",
+  "G23": "中型罐式全挂车",
+  "G24": "中型平板全挂车",
+  "G25": "中型集装箱全挂车",
+  "G26": "中型自卸全挂车",
+  "G31": "轻型普通全挂车",
+  "G32": "轻型厢式全挂车",
+  "G33": "轻型罐式全挂车",
+  "G34": "轻型平板全挂车",
+  "G35": "轻型自卸全挂车",
+  "H11": "重型普通货车",
+  "H12": "重型厢式货车",
+  "H13": "重型封闭货车",
+  "H14": "重型罐式货车",
+  "H15": "重型平板货车",
+  "H16": "重型集装厢车",
+  "H17": "重型自卸货车",
+  "H18": "重型特殊结构货车",
+  "H21": "中型普通货车",
+  "H22": "中型厢式货车",
+  "H23": "中型封闭货车",
+  "H24": "中型罐式货车",
+  "H25": "中型平板货车",
+  "H26": "中型集装厢车",
+  "H27": "中型自卸货车",
+  "H28": "中型特殊结构货车",
+  "H31": "轻型普通货车",
+  "H32": "轻型厢式货车",
+  "H33": "轻型封闭货车",
+  "H34": "轻型罐式货车",
+  "H35": "轻型平板货车",
+  "H37": "轻型自卸货车",
+  "H38": "轻型特殊结构货车",
+  "H41": "微型普通货车",
+  "H42": "微型厢式货车",
+  "H43": "微型封闭货车",
+  "H44": "微型罐式货车",
+  "H45": "微型自卸货车",
+  "H46": "微型特殊结构货车",
+  "H51": "低速普通货车",
+  "H52": "低速厢式货车",
+  "H53": "罐式低速货车",
+  "H54": "低速自卸货车",
+  "J11": "轮式装载机械",
+  "J12": "轮式挖掘机械",
+  "J13": "轮式平地机械",
+  "K11": "大型普通客车",
+  "K12": "大型双层客车",
+  "K13": "大型卧铺客车",
+  "K14": "大型铰接客车",
+  "K15": "大型越野客车",
+  "K21": "中型普通客车",
+  "K22": "中型双层客车",
+  "K23": "中型卧铺客车",
+  "K24": "中型铰接客车",
+  "K25": "中型越野客车",
+  "K31": "小型普通客车",
+  "K32": "小型越野客车",
+  "K33": "轿车",
+  "K41": "微型普通客车",
+  "K42": "微型越野客车",
+  "K43": "微型轿车",
+  "M11": "普通正三轮摩托车",
+  "M12": "轻便正三轮摩托车",
+  "M13": "正三轮载客摩托车",
+  "M14": "正三轮载货摩托车",
+  "M15": "侧三轮摩托车",
+  "M21": "普通二轮摩托车",
+  "M22": "轻便二轮摩托车",
+  "N11": "三轮农用运输车",
+  "Q11": "重型半挂牵引车",
+  "Q21": "中型半挂牵引车",
+  "Q31": "轻型半挂牵引车",
+  "S": "特种作业专用车",
+  "T11": "大型轮式拖拉机",
+  "T21": "中型轮式拖拉机",
+  "T22": "手扶拖拉机",
+  "T23": "手扶变形运输机",
+  "X99": "其它",
+  "Z11": "大型专项作业车",
+  "Z21": "中型专项作业车",
+  "Z31": "小型专项作业车",
+  "Z41": "微型专项作业车",
+  "Z51": "重型专项作业车",
+  "Z71": "轻型专项作业车"
+}

+ 32 - 22
spiders/hengbang/baojia/hb_bfjs.py

@@ -1,4 +1,5 @@
 # *_* coding:utf-8 *_*
+import json
 import re
 import time
 import os
@@ -170,6 +171,10 @@ class hb_calculation(object):
         #非车险信息
         self.accidentalDriving=accidentalDriving
 
+    def get_bjdata(self,x):
+        data=execjs.compile(open(js_path+'hengbang/decrypt.js','r',encoding='utf8').read()).call('get_data',x)
+        return data
+
     def get_actualvalue(self,beginDate):
         params = {
             'beginDate': beginDate,
@@ -806,7 +811,7 @@ class hb_calculation(object):
             self.repeat(ress)
 
         elif '重复投保' in response.text and '终保日期' in response.text:
-            if '失败:平台校验:' in response.text:
+            if '失败:平台校验:' in response.text or "失败:交强险平台提示" in response.text:
                 if re.findall(r'终保日期 (.*?);', response.text):
                     self.jiaoqiang_startDate = self.get_utctime(re.findall(r'终保日期 (.*?);', response.text)[0])
                 else:
@@ -969,42 +974,48 @@ class hb_calculation(object):
     def proposal(self):
         url = 'https://car.hbins.com.cn/new-insure/api/carinsurenew/proposal?plyappno=' + self.plyappno
         res = requests.get(url, headers=self.headers)
+        hb_encd = res.json().get('hb_enc_d')
+        res_data = self.get_bjdata(hb_encd)
+        res_data_json=json.loads(res_data)
 
         # 车险总价
-        premium = re.findall(r'"totalPremium" : "(.*?)"',res.text,re.S)
+        premium = re.findall(r'"totalPremium" : "(.*?)"',res_data,re.S)
         if premium:
             premium = premium[0]
         else:
             premium=0
 
         # 商业险价格
-        busiTotalPremium = re.findall(r'"busiTotalPremium" : (.*?),',res.text,re.S)
+        busiTotalPremium = re.findall(r'"busiTotalPremium" : (.*?),',res_data,re.S)
         if busiTotalPremium:
             busiTotalPremium = busiTotalPremium[0]
         else:
             busiTotalPremium = 0
 
         # 交强险价格
-        sumPremium = res.json().get('forceLiability')
+        sumPremium = res_data_json.get('forceLiability')
         if sumPremium:
-            sumPremium = res.json().get('forceLiability').get('liabprm')
+            sumPremium = res_data_json.get('forceLiability').get('liabprm')
         else:
             sumPremium = 0
 
         # 车船税
-        ccsumPremium = res.json().get('carInsureShiptax')
+        ccsumPremium = res_data_json.get('carInsureShiptax')
         if ccsumPremium != None:
-            ccsumPremium = res.json().get('carInsureShiptax').get('sumtax')
+            ccsumPremium = res_data_json.get('carInsureShiptax').get('sumtax')
 
-        message = res.json().get('busiCarInsureRisk')
+        message = res_data_json.get('busiCarInsureRisk')
         if message != None:
-            message = res.json().get('busiCarInsureRisk').get('info')
+            message = res_data_json.get('busiCarInsureRisk').get('info')
         if ccsumPremium == None:
             ccsumPremium = 0
 
         # 商业险各个险种价格
-        if res.json().get('carInsureLiabilityList') != []:
-            for i in res.json().get('carInsureLiabilityList'):
+
+
+        if res_data_json.get('carInsureLiabilityList') != []:
+
+            for i in res_data_json.get('carInsureLiabilityList'):
                 if i.get('liabname') == "机动车损失保险":
                     self.csx = i.get('liabprm')
                 elif i.get('liabname') == '机动车第三者责任保险':
@@ -1036,7 +1047,7 @@ class hb_calculation(object):
         #非车险信息
         fcxinfo_list=[]
         fcxinfo_dict ={}
-        fcx_list=res.json().get('accidentInsuranceList')
+        fcx_list=res_data_json.get('accidentInsuranceList')
         if fcx_list:
             for i in fcx_list:
                 fcxinfo_dict['price']=i.get('sumgrosspremium')
@@ -1044,7 +1055,7 @@ class hb_calculation(object):
                 fcxinfo_dict['policy'] = ''
                 fcxinfo_list.append(fcxinfo_dict)
         # 车船税逾期价格
-        zhinajin_list = res.json().get('ecarshiptaxSubList')
+        zhinajin_list = res_data_json.get('ecarshiptaxSubList')
         tax_arrears = []
         if zhinajin_list:
             for i in range(len(zhinajin_list)):
@@ -1089,18 +1100,18 @@ class hb_calculation(object):
         sy_startDate = ''
         sy_endDate = ''
         if self.jiaoqiang_chooseFlag=='on' and self.shangye_chooseFlag=='on':
-            jq_startDate=self.get_time(res.json().get('forceCarInsureRisk').get('begintime'))
-            jq_endDate =self.get_time(res.json().get('forceCarInsureRisk').get('endtime'))
+            jq_startDate=self.get_time(res_data_json.get('forceCarInsureRisk').get('begintime'))
+            jq_endDate =self.get_time(res_data_json.get('forceCarInsureRisk').get('endtime'))
 
-            sy_startDate = self.get_time(res.json().get('busiCarInsureRisk').get('begintime'))
-            sy_endDate = self.get_time(res.json().get('busiCarInsureRisk').get('endtime'))
+            sy_startDate = self.get_time(res_data_json.get('busiCarInsureRisk').get('begintime'))
+            sy_endDate = self.get_time(res_data_json.get('busiCarInsureRisk').get('endtime'))
 
         elif self.jiaoqiang_chooseFlag=='on':
-            jq_startDate = self.get_time(res.json().get('forceCarInsureRisk').get('begintime'))
-            jq_endDate = self.get_time(res.json().get('forceCarInsureRisk').get('endtime'))
+            jq_startDate = self.get_time(res_data_json.get('forceCarInsureRisk').get('begintime'))
+            jq_endDate = self.get_time(res_data_json.get('forceCarInsureRisk').get('endtime'))
         elif self.shangye_chooseFlag=='on':
-            sy_startDate = self.get_time(res.json().get('busiCarInsureRisk').get('begintime'))
-            sy_endDate = self.get_time(res.json().get('busiCarInsureRisk').get('endtime'))
+            sy_startDate = self.get_time(res_data_json.get('busiCarInsureRisk').get('begintime'))
+            sy_endDate = self.get_time(res_data_json.get('busiCarInsureRisk').get('endtime'))
 
 
         carInfo={}
@@ -1182,7 +1193,6 @@ class hb_calculation(object):
         self.quoteimmediately()
         res = self.calculation()
         self.repeat(res)
-
         info = ''
         if self.jq_repeatinfo and self.sy_repeatinfo:
             info = self.jq_repeatinfo + ';;;;;;;;;;;;;;;;;;;;;;;;;;' + self.sy_repeatinfo + ';;;;;;;;;;;;;;;;;;;;;;;;;;'

+ 304 - 172
spiders/huanong/baojia/hn_bfjs.py

@@ -43,18 +43,18 @@ class hn_calculation(object):
 
         self.username=username
         self.uname = uname
-        self.address = address.replace('长治县','上党区').replace('怀仁县','怀仁市').replace('大同市城区','大同市平城区').replace('屯留县','屯留区')
+        self.address = address.replace('大同县','云州区').replace('长治县','上党区').replace('怀仁县','怀仁市').replace('大同市城区','大同市平城区').replace('屯留县','屯留区')
         self.phone_number = phone_number
         self.identifyNumber = str(identifyNumber)
 
         self.tb_identifyNumber = str(tb_identifyNumber)
         self.tb_uname = tb_uname
-        self.tb_address = tb_address.replace('长治县','上党区').replace('怀仁县','怀仁市').replace('大同市城区','大同市平城区').replace('屯留县','屯留区')
+        self.tb_address = tb_address.replace('大同县','云州区').replace('长治县','上党区').replace('怀仁县','怀仁市').replace('大同市城区','大同市平城区').replace('屯留县','屯留区')
         self.tb_phone_number = tb_phone_number
 
         self.bb_identifyNumber = str(bb_identifyNumber)
         self.bb_uname = bb_uname
-        self.bb_address = bb_address.replace('长治县','上党区').replace('怀仁县','怀仁市').replace('大同市城区','大同市平城区').replace('屯留县','屯留区')
+        self.bb_address = bb_address.replace('大同县','云州区').replace('长治县','上党区').replace('怀仁县','怀仁市').replace('大同市城区','大同市平城区').replace('屯留县','屯留区')
         self.bb_phone_number = bb_phone_number
 
 
@@ -451,7 +451,7 @@ class hn_calculation(object):
         data = json.dumps(data)
         response = requests.post(url, headers=headers, params=params, data=data)
         carModel_list=response.json().get('carModel')
-        if '未查到车辆合格证信息'  in response.text or carModel_list==[]:
+        if '未查到车辆合格证信息'  in response.text or carModel_list==[] or '车辆信息预填异常' in response.text:
             #车型送所
             url = "https://channel-cx.chinahuanong.com.cn/singlePlatform/kscd.do"
             params = {
@@ -3435,180 +3435,305 @@ class hn_calculation(object):
                   }
                 ]
             else:
-                self.contractAccident=[
-                    {
-                    "choosed": True,
-                    "accident": [],
-                    "adjust": [],
-                    "autoPriceApqMainList": [],
-                    "contractMain": {
-                      "expenseRate": "",
-                      "productionDate": self.get_now(),
-                      "performanceRate": "",
-                      "choosed": True,
-                      "nvehRiskCode": "2781",
-                      "nvehRiskName": "安享驾",
-                      "nvehRiskType": "01",
-                      "paragraph": "1",
-                      "planCode": "112",
-                      "planName": "安享驾乘(100)",
-                      "unitPremium": 0,
-                      "commissionRate": 0,
-                      "validDate": next_day_midnight,
-                      "expiryDate": "",
-                      "discount": 100,
-                      "allQuantity": self.allQuantity,
-                      "planSubCode": "999",
-                      "insuredObjectCode": "7",
-                      "insuredObjectName": "从车",
-                      "eachDamageLimitAmount": "0"
-                    },
-                    "engage": [],
-                    "loocked": False,
-                    "coverage": [
-                      {
-                        "allAmount": "0",
-                        "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
-                        "deductible": 0,
-                        "dutyCode": "0393",
-                        "dutyName": "意外伤害身故保险责任",
-                        "eachDamageLimitAmount": 0,
-                        "kindCode": "Z27078-1",
-                        "kindName": "交通出行人身意外伤害保险条款",
-                        "listUnitAmount": [
+                if self.accidentalDriving.get('accidentType')=='111':
+                    pass
+                    self.contractAccident = [
+                        {
+                            "choosed": True,
+                            "accident": [],
+                            "adjust": [],
+                            "autoPriceApqMainList": [],
+                            "contractMain": {
+                                "expenseRate": "",
+                                "productionDate": self.get_now(),
+                                "performanceRate": "",
+                                "choosed": True,
+                                "nvehRiskCode": "2781",
+                                "nvehRiskName": "安享驾",
+                                "nvehRiskType": "01",
+                                "paragraph": "1",
+                                "planCode": self.accidentalDriving.get('accidentType'),
+                                "planName": self.accidentalDriving.get('planName'),
+                                "unitPremium": 0,
+                                "commissionRate": 0,
+                                "validDate": next_day_midnight,
+                                "expiryDate": "",
+                                "discount": 100,
+                                "allQuantity": self.allQuantity,
+                                "planSubCode": "999",
+                                "insuredObjectCode": "7",
+                                "insuredObjectName": "从车",
+                                "eachDamageLimitAmount": "0"
+                            },
+                            "engage": [],
+                            "loocked": False,
+                            "coverage": [
+			  {
+					"allAmount": "0",
+					"clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
+					"deductible": 0,
+					"dutyCode": "0393",
+					"dutyName": "意外伤害身故保险责任",
+					"eachDamageLimitAmount": 0,
+					"kindCode": "Z27078-1",
+					"kindName": "交通出行人身意外伤害保险条款",
+					"listUnitAmount": [{
+						"code": "30000",
+						"value": "30000"
+					}],
+					"rate": 0.06,
+					"remark": " ",
+					"seatCount": "0",
+					"term": "一年",
+					"unitAmount": "30000",
+					"unitAmountAdd": "3.0万元/座",
+					"unitPremium": 0
+				},
+				{
+					"allAmount": "0",
+					"clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
+					"deductible": 0,
+					"dutyCode": "0557",
+					"dutyName": "意外伤害伤残保险责任",
+					"eachDamageLimitAmount": 0,
+					"kindCode": "Z27078-2",
+					"kindName": "交通出行人身意外伤害保险条款",
+					"listUnitAmount": [{
+						"code": "30000",
+						"value": "30000"
+					}],
+					"rate": 0.04,
+					"remark": " ",
+					"seatCount": "0",
+					"term": "一年",
+					"unitAmount": "30000",
+					"unitAmountAdd": "3.0万元/座",
+					"unitPremium": 0
+				},
+				{
+					"allAmount": "0",
+					"clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=54c60d17-56b2-4533-bd56-22a39ba19253&clauseCode=F27002&type=pdf",
+					"deductible": 0,
+					"dutyCode": "0008",
+					"dutyName": "意外伤害医疗保险责任",
+					"eachDamageLimitAmount": 0,
+					"kindCode": "F27002",
+					"kindName": "附加团体意外伤害医疗保险条款",
+					"listUnitAmount": [{
+						"code": "1000",
+						"value": "1000"
+					}],
+					"rate": 0.24,
+					"remark": "每次事故免赔300后80%比例赔付",
+					"seatCount": "0",
+					"term": "一年",
+					"unitAmount": "1000",
+					"unitAmountAdd": "0.1万元/座",
+					"unitPremium": 0
+				},
+				{
+					"allAmount": "0",
+					"clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=9ff52b07-a962-4c51-a4e3-bc22184662cc&clauseCode=F27001&type=pdf",
+					"deductible": 0,
+					"dutyCode": "0032",
+					"dutyName": "意外伤害住院津贴保险责任",
+					"eachDamageLimitAmount": 0,
+					"kindCode": "F27001",
+					"kindName": "附加团体意外伤害住院津贴保险条款",
+					"listUnitAmount": [{
+						"code": "10",
+						"value": "10"
+					}],
+					"quantity": "180",
+					"rate": 0.2,
+					"remark": "10元/天/座",
+					"seatCount": "0",
+					"term": "一年",
+					"unitAmount": "10",
+					"unitAmountAdd": "0.001万元/座",
+					"unitPremium": 0
+				}
+			]
+
+                        }
+
+                    ]
+                else:
+
+                    self.contractAccident=[
+                        {
+                        "choosed": True,
+                        "accident": [],
+                        "adjust": [],
+                        "autoPriceApqMainList": [],
+                        "contractMain": {
+                          "expenseRate": "",
+                          "productionDate": self.get_now(),
+                          "performanceRate": "",
+                          "choosed": True,
+                          "nvehRiskCode": "2781",
+                          "nvehRiskName": "安享驾",
+                          "nvehRiskType": "01",
+                          "paragraph": "1",
+                          "planCode": self.accidentalDriving.get('accidentType'),
+                          "planName": self.accidentalDriving.get('planName'),
+                          "unitPremium": 0,
+                          "commissionRate": 0,
+                          "validDate": next_day_midnight,
+                          "expiryDate": "",
+                          "discount": 100,
+                          "allQuantity": self.allQuantity,
+                          "planSubCode": "999",
+                          "insuredObjectCode": "7",
+                          "insuredObjectName": "从车",
+                          "eachDamageLimitAmount": "0"
+                        },
+                        "engage": [],
+                        "loocked": False,
+                        "coverage": [
                           {
-                            "code": "80000",
-                            "value": "80000"
-                          }
-                        ],
-                        "rate": 0.051,
-                        "remark": " ",
-                        "seatCount": "0",
-                        "term": "一年",
-                        "unitAmount": "80000",
-                        "unitAmountAdd": "8.0万元/座",
-                        "unitPremium": 0
-                      },
-                      {
-                        "allAmount": "0",
-                        "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
-                        "deductible": 0,
-                        "dutyCode": "0557",
-                        "dutyName": "意外伤害伤残保险责任",
-                        "eachDamageLimitAmount": 0,
-                        "kindCode": "Z27078-2",
-                        "kindName": "交通出行人身意外伤害保险条款",
-                        "listUnitAmount": [
+                            "allAmount": "0",
+                            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
+                            "deductible": 0,
+                            "dutyCode": "0393",
+                            "dutyName": "意外伤害身故保险责任",
+                            "eachDamageLimitAmount": 0,
+                            "kindCode": "Z27078-1",
+                            "kindName": "交通出行人身意外伤害保险条款",
+                            "listUnitAmount": [
+                              {
+                                "code": "80000",
+                                "value": "80000"
+                              }
+                            ],
+                            "rate": 0.051,
+                            "remark": " ",
+                            "seatCount": "0",
+                            "term": "一年",
+                            "unitAmount": "80000",
+                            "unitAmountAdd": "8.0万元/座",
+                            "unitPremium": 0
+                          },
                           {
-                            "code": "80000",
-                            "value": "80000"
-                          }
-                        ],
-                        "rate": 0.034,
-                        "remark": " ",
-                        "seatCount": "0",
-                        "term": "一年",
-                        "unitAmount": "80000",
-                        "unitAmountAdd": "8.0万元/座",
-                        "unitPremium": 0
-                      },
-                      {
-                        "allAmount": "0",
-                        "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=54c60d17-56b2-4533-bd56-22a39ba19253&clauseCode=F27002&type=pdf",
-                        "deductible": 0,
-                        "dutyCode": "0008",
-                        "dutyName": "意外伤害医疗保险责任",
-                        "eachDamageLimitAmount": 0,
-                        "kindCode": "F27002",
-                        "kindName": "附加团体意外伤害医疗保险条款",
-                        "listUnitAmount": [
+                            "allAmount": "0",
+                            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
+                            "deductible": 0,
+                            "dutyCode": "0557",
+                            "dutyName": "意外伤害伤残保险责任",
+                            "eachDamageLimitAmount": 0,
+                            "kindCode": "Z27078-2",
+                            "kindName": "交通出行人身意外伤害保险条款",
+                            "listUnitAmount": [
+                              {
+                                "code": "80000",
+                                "value": "80000"
+                              }
+                            ],
+                            "rate": 0.034,
+                            "remark": " ",
+                            "seatCount": "0",
+                            "term": "一年",
+                            "unitAmount": "80000",
+                            "unitAmountAdd": "8.0万元/座",
+                            "unitPremium": 0
+                          },
                           {
-                            "code": "5000",
-                            "value": "5000"
-                          }
-                        ],
-                        "rate": 0.28,
-                        "remark": "每次事故免赔300后80%比例赔付",
-                        "seatCount": "0",
-                        "term": "一年",
-                        "unitAmount": "5000",
-                        "unitAmountAdd": "0.5万元/座",
-                        "unitPremium": 0
-                      },
-                      {
-                        "allAmount": "0",
-                        "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=9ff52b07-a962-4c51-a4e3-bc22184662cc&clauseCode=F27001&type=pdf",
-                        "deductible": 0,
-                        "dutyCode": "0032",
-                        "dutyName": "意外伤害住院津贴保险责任",
-                        "eachDamageLimitAmount": 0,
-                        "kindCode": "F27001",
-                        "kindName": "附加团体意外伤害住院津贴保险条款",
-                        "listUnitAmount": [
+                            "allAmount": "0",
+                            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=54c60d17-56b2-4533-bd56-22a39ba19253&clauseCode=F27002&type=pdf",
+                            "deductible": 0,
+                            "dutyCode": "0008",
+                            "dutyName": "意外伤害医疗保险责任",
+                            "eachDamageLimitAmount": 0,
+                            "kindCode": "F27002",
+                            "kindName": "附加团体意外伤害医疗保险条款",
+                            "listUnitAmount": [
+                              {
+                                "code": "5000",
+                                "value": "5000"
+                              }
+                            ],
+                            "rate": 0.28,
+                            "remark": "每次事故免赔300后80%比例赔付",
+                            "seatCount": "0",
+                            "term": "一年",
+                            "unitAmount": "5000",
+                            "unitAmountAdd": "0.5万元/座",
+                            "unitPremium": 0
+                          },
                           {
-                            "code": "30",
-                            "value": "30"
-                          }
-                        ],
-                        "quantity": "180",
-                        "rate": 0.2,
-                        "remark": "30元/天/座",
-                        "seatCount": "0",
-                        "term": "一年",
-                        "unitAmount": "30",
-                        "unitAmountAdd": "0.003万元/座",
-                        "unitPremium": 0
-                      },
-                      {
-                        "allAmount": "0",
-                        "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=248f113f-d232-4886-b0c2-4950005da07d&clauseCode=F27047&type=pdf",
-                        "deductible": 0,
-                        "dutyCode": "0094",
-                        "dutyName": "家庭辅助金",
-                        "eachDamageLimitAmount": 0,
-                        "kindCode": "F27047-5",
-                        "kindName": "附加辅助金保险条款",
-                        "listUnitAmount": [
+                            "allAmount": "0",
+                            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=9ff52b07-a962-4c51-a4e3-bc22184662cc&clauseCode=F27001&type=pdf",
+                            "deductible": 0,
+                            "dutyCode": "0032",
+                            "dutyName": "意外伤害住院津贴保险责任",
+                            "eachDamageLimitAmount": 0,
+                            "kindCode": "F27001",
+                            "kindName": "附加团体意外伤害住院津贴保险条款",
+                            "listUnitAmount": [
+                              {
+                                "code": "30",
+                                "value": "30"
+                              }
+                            ],
+                            "quantity": "180",
+                            "rate": 0.2,
+                            "remark": "30元/天/座",
+                            "seatCount": "0",
+                            "term": "一年",
+                            "unitAmount": "30",
+                            "unitAmountAdd": "0.003万元/座",
+                            "unitPremium": 0
+                          },
                           {
-                            "code": "20000",
-                            "value": "20000"
-                          }
-                        ],
-                        "rate": 0.026,
-                        "remark": " ",
-                        "seatCount": "0",
-                        "term": "一年",
-                        "unitAmount": "20000",
-                        "unitAmountAdd": "2.0万元/座",
-                        "unitPremium": 0
-                      },
-                      {
-                        "allAmount": "0",
-                        "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=04389354-df6e-443e-aff4-028a01807342&clauseCode=F27048&type=pdf",
-                        "deductible": 0,
-                        "dutyCode": "0095",
-                        "dutyName": "救护车费用",
-                        "eachDamageLimitAmount": 0,
-                        "kindCode": "F27048-6",
-                        "kindName": "附加救护车车费保险条款",
-                        "listUnitAmount": [
+                            "allAmount": "0",
+                            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=248f113f-d232-4886-b0c2-4950005da07d&clauseCode=F27047&type=pdf",
+                            "deductible": 0,
+                            "dutyCode": "0094",
+                            "dutyName": "家庭辅助金",
+                            "eachDamageLimitAmount": 0,
+                            "kindCode": "F27047-5",
+                            "kindName": "附加辅助金保险条款",
+                            "listUnitAmount": [
+                              {
+                                "code": "20000",
+                                "value": "20000"
+                              }
+                            ],
+                            "rate": 0.026,
+                            "remark": " ",
+                            "seatCount": "0",
+                            "term": "一年",
+                            "unitAmount": "20000",
+                            "unitAmountAdd": "2.0万元/座",
+                            "unitPremium": 0
+                          },
                           {
-                            "code": "1000",
-                            "value": "1000"
+                            "allAmount": "0",
+                            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=04389354-df6e-443e-aff4-028a01807342&clauseCode=F27048&type=pdf",
+                            "deductible": 0,
+                            "dutyCode": "0095",
+                            "dutyName": "救护车费用",
+                            "eachDamageLimitAmount": 0,
+                            "kindCode": "F27048-6",
+                            "kindName": "附加救护车车费保险条款",
+                            "listUnitAmount": [
+                              {
+                                "code": "1000",
+                                "value": "1000"
+                              }
+                            ],
+                            "rate": 0.2,
+                            "remark": "每次事故最高赔付300元",
+                            "seatCount": "0",
+                            "term": "一年",
+                            "unitAmount": "1000",
+                            "unitAmountAdd": "0.1万元/座",
+                            "unitPremium": 0
                           }
-                        ],
-                        "rate": 0.2,
-                        "remark": "每次事故最高赔付300元",
-                        "seatCount": "0",
-                        "term": "一年",
-                        "unitAmount": "1000",
-                        "unitAmountAdd": "0.1万元/座",
-                        "unitPremium": 0
+                        ]
                       }
-                    ]
-                  }
 
-                ]
+                    ]
 
     #获取人员信息
     def get_peopleinfo(self):
@@ -4036,6 +4161,7 @@ class hn_calculation(object):
         sign = self.get_postsign(json.dumps(data1))
         data['head']['sign'] = sign
         data = json.dumps(data)
+
         response = requests.post(url, headers=headers, params=params, data=data)
         return response
 
@@ -4058,7 +4184,10 @@ class hn_calculation(object):
             # 商业险重复投保信息
             biReinsureMessage="".join(re.findall(r'biReinsureMessage":"(.*?)"', res.text, re.S))
 
-
+            if ciReinsureMessage=='':
+                ciReinsureEndDate=''
+            if biReinsureMessage=='':
+                biReinsureEndDate=''
 
             if (ciReinsureEndDate and '终保日期' in ciReinsureMessage) or (biReinsureEndDate  and '终保日期' in biReinsureMessage):
                 if len(ciReinsureEndDate)==10:
@@ -4246,8 +4375,9 @@ class hn_calculation(object):
                 }
 
 
-            elif "".join(re.findall(r'checkCode":"(.*?)"',res.text,re.S)) and ("".join(re.findall(r'claimAdjustLevel":"(.*?)"',res.text,re.S))=='' or "".join(re.findall(r'claimAdjustLevel":"(.*?)"',res.text,re.S))=='0') and res.json().get('comeCode')==None:
+            # elif "".join(re.findall(r'checkCode":"(.*?)"',res.text,re.S)) and ("".join(re.findall(r'claimAdjustLevel":"(.*?)"',res.text,re.S))=='' or "".join(re.findall(r'claimAdjustLevel":"(.*?)"',res.text,re.S))=='0') and res.json().get('comeCode')==None:
 
+            elif "".join(re.findall(r'checkCode":"(.*?)"', res.text, re.S)) and res.json().get('comeCode')==None:
                 for i in res.json().get('businessData').get('contract'):
                     # 是否转保
                     #是否是交强险
@@ -4482,9 +4612,11 @@ class hn_calculation(object):
                 fcx_list = []
                 if self.accidentalDriving:
                     self.fcx_price = res.json().get('businessData').get('contractAccident')[0].get('contractMain').get('totalPremium')
+                    name=res.json().get('businessData').get('contractAccident')[0].get('contractMain').get('planName')
+
                     fcx_list.append({
                         'price': str(self.fcx_price),
-                        'name': '安享驾乘(100)',
+                        'name': name,
                         'policy': self.sy_saveid
                     })
                 else:

+ 183 - 0
spiders/huanong/guishu/hn_feichexian.py

@@ -3,6 +3,189 @@ import re
 
 def get_feichexian():
     fcx_list=[
+      {
+        "accessSources": "",
+        "certNo": "",
+        "choosed": False,
+        "commissionRate": 0,
+        "expandRate": 0,
+        "listInsureArea": [],
+        "operationNumber": "",
+        "paragraph": "1",
+        "performanceRate": 0,
+        "planCode": "111",
+        "planName": "安享驾乘(36)",
+        "planSubInfo": [{
+          "allQuantity": "1",
+          "choosed": False,
+          "discount": 100,
+          "eachDamageLimitAmount": "0",
+          "eachDamageLimitAmountUpperList": [{
+            "code": "100",
+            "value": "100"
+          }],
+          "expiryDate": "",
+          "insuredObjectCode": "7",
+          "insuredObjectName": "从车",
+          "isLimitFlag": "0",
+          "isRegistered": "0",
+          "limAmount": [{
+            "code": "1",
+            "value": "1"
+          }, {
+            "code": "2",
+            "value": "2"
+          }, {
+            "code": "3",
+            "value": "3"
+          }, {
+            "code": "4",
+            "value": "4"
+          }, {
+            "code": "5",
+            "value": "5"
+          }, {
+            "code": "6",
+            "value": "6"
+          }, {
+            "code": "7",
+            "value": "7"
+          }, {
+            "code": "8",
+            "value": "8"
+          }, {
+            "code": "9",
+            "value": "9"
+          }, {
+            "code": "10",
+            "value": "10"
+          }, {
+            "code": "11",
+            "value": "11"
+          }, {
+            "code": "12",
+            "value": "12"
+          }, {
+            "code": "13",
+            "value": "13"
+          }, {
+            "code": "14",
+            "value": "14"
+          }, {
+            "code": "15",
+            "value": "15"
+          }, {
+            "code": "16",
+            "value": "16"
+          }, {
+            "code": "17",
+            "value": "17"
+          }, {
+            "code": "18",
+            "value": "18"
+          }, {
+            "code": "19",
+            "value": "19"
+          }, {
+            "code": "20",
+            "value": "20"
+          }],
+          "listDiscount": [{
+            "code": "100",
+            "value": "100"
+          }],
+          "planNameSub": "驾乘险",
+          "planSubCode": "999",
+          "riskInfo": [{
+            "allAmount": "0",
+            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
+            "deductible": 0,
+            "dutyCode": "0393",
+            "dutyName": "意外伤害身故保险责任",
+            "eachDamageLimitAmount": 0,
+            "kindCode": "Z27078-1",
+            "kindName": "交通出行人身意外伤害保险条款",
+            "listUnitAmount": [{
+              "code": "30000",
+              "value": "30000"
+            }],
+            "rate": 0.06,
+            "remark": " ",
+            "seatCount": "0",
+            "term": "一年",
+            "unitAmount": "30000",
+            "unitAmountAdd": "3.0万元/座",
+            "unitPremium": 0
+          }, {
+            "allAmount": "0",
+            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=b77fc35e-e980-4b6b-9aed-ee7f3e133347&clauseCode=Z27078&type=pdf",
+            "deductible": 0,
+            "dutyCode": "0557",
+            "dutyName": "意外伤害伤残保险责任",
+            "eachDamageLimitAmount": 0,
+            "kindCode": "Z27078-2",
+            "kindName": "交通出行人身意外伤害保险条款",
+            "listUnitAmount": [{
+              "code": "30000",
+              "value": "30000"
+            }],
+            "rate": 0.04,
+            "remark": " ",
+            "seatCount": "0",
+            "term": "一年",
+            "unitAmount": "30000",
+            "unitAmountAdd": "3.0万元/座",
+            "unitPremium": 0
+          }, {
+            "allAmount": "0",
+            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=54c60d17-56b2-4533-bd56-22a39ba19253&clauseCode=F27002&type=pdf",
+            "deductible": 0,
+            "dutyCode": "0008",
+            "dutyName": "意外伤害医疗保险责任",
+            "eachDamageLimitAmount": 0,
+            "kindCode": "F27002",
+            "kindName": "附加团体意外伤害医疗保险条款",
+            "listUnitAmount": [{
+              "code": "1000",
+              "value": "1000"
+            }],
+            "rate": 0.24,
+            "remark": "每次事故免赔300后80%比例赔付",
+            "seatCount": "0",
+            "term": "一年",
+            "unitAmount": "1000",
+            "unitAmountAdd": "0.1万元/座",
+            "unitPremium": 0
+          }, {
+            "allAmount": "0",
+            "clauseUrl": "http://product.chinahuanong.com.cn/product-factory/file/viewNew?id=9ff52b07-a962-4c51-a4e3-bc22184662cc&clauseCode=F27001&type=pdf",
+            "deductible": 0,
+            "dutyCode": "0032",
+            "dutyName": "意外伤害住院津贴保险责任",
+            "eachDamageLimitAmount": 0,
+            "kindCode": "F27001",
+            "kindName": "附加团体意外伤害住院津贴保险条款",
+            "listUnitAmount": [{
+              "code": "10",
+              "value": "10"
+            }],
+            "quantity": "180",
+            "rate": 0.2,
+            "remark": "10元/天/座",
+            "seatCount": "0",
+            "term": "一年",
+            "unitAmount": "10",
+            "unitAmountAdd": "0.001万元/座",
+            "unitPremium": 0
+          }],
+          "seatCountLower": "0",
+          "seatCountUpper": "9999",
+          "toncountLower": "0",
+          "toncountUpper": "9999",
+          "validDate": ""
+        }],
+        "unitPremium": 0
+      },
       {
         "choosed": False,
         "commissionRate": 0,

+ 395 - 354
spiders/taiping/baojia/tp_bfjs.py

@@ -13,7 +13,7 @@ from config import *
 
 class tp_calculation(object):
     def __init__(  # token、车辆、人员信息
-            self,username, modelCName, engineNo, vin, licenseNo,seatCount, purchasePrice,vehicleUse,enginedesc,
+            self,username, modelCName, engineNo, vin, licenseNo,seatCount, purchasePrice,vehicleUse,enginedesc,limitLoad,
             identifyNumber, uname, address, phone_number,
             tb_identifyNumber, tb_uname, tb_address, tb_phone_number,
             bb_identifyNumber, bb_uname, bb_address, bb_phone_number,
@@ -65,6 +65,7 @@ class tp_calculation(object):
         self.vin = vin
         self.licenseNo = licenseNo
         self.enginedesc=enginedesc
+        self.limitLoad=limitLoad
         self.purchasePrice = purchasePrice
         # 交强险是否过户
         self.isTransfer = '' if isTransfer==False else '1'
@@ -118,6 +119,7 @@ class tp_calculation(object):
         #省市县码表
         self.mabiao=mabiao
 
+        self.err = ''
         #归属信息-简易
 
         # 销售信息代码
@@ -356,371 +358,374 @@ class tp_calculation(object):
 
     #获取归属信息
     def get_guishu(self):
-        if self.method == '简易':
-            #销售信息代码搜索
-            headers = {
-                "Accept": "application/json, text/plain, */*",
-                "Content-Type": "application/json",
-                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
-            }
-            url = "https://autopp.tpi.cntaiping.com/api/sales/agreement/findByProductCode"
-            data = {
-                "pageNo": 1,
-                "pageSize": 10,
-                "userCode": self.username,
-                "productCode": "1359",
-                "query": self.intermediaryCNName
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            self.intermediaryCNName_res=response.json().get('data').get('records')[0]
+        try:
+            if self.method == '简易':
+                #销售信息代码搜索
+                headers = {
+                    "Accept": "application/json, text/plain, */*",
+                    "Content-Type": "application/json",
+                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
+                }
+                url = "https://autopp.tpi.cntaiping.com/api/sales/agreement/findByProductCode"
+                data = {
+                    "pageNo": 1,
+                    "pageSize": 10,
+                    "userCode": self.username,
+                    "productCode": "1359",
+                    "query": self.intermediaryCNName
+                }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                self.intermediaryCNName_res=response.json().get('data').get('records')[0]
 
-            #销售信息子代码搜索
-            headers = {
-                "Accept": "application/json, text/plain, */*",
-                "Content-Type": "application/json",
-                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
-            }
-            url = "https://autopp.tpi.cntaiping.com/api/sales/agreement/findSolution"
-            data = {
-                "agreementNo": self.intermediaryCNName_res.get('agreementNo'),
-                "productCode": "0801",
-                "userCode": self.username
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            self.solutionCode_res=response.json().get('data')[0]
+                #销售信息子代码搜索
+                headers = {
+                    "Accept": "application/json, text/plain, */*",
+                    "Content-Type": "application/json",
+                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
+                }
+                url = "https://autopp.tpi.cntaiping.com/api/sales/agreement/findSolution"
+                data = {
+                    "agreementNo": self.intermediaryCNName_res.get('agreementNo'),
+                    "productCode": "0801",
+                    "userCode": self.username
+                }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                self.solutionCode_res=response.json().get('data')[0]
 
 
-            headers = {
-                "Accept": "application/json, text/plain, */*",
-                "Content-Type": "application/json",
-                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
-            }
-            url = "https://autopp.tpi.cntaiping.com/api/proposalform/order/create"
-            data = {
-                "businessMode": "2",  # 业务方式
-                "companyCode": self.intermediaryCNName_res.get('companyCode'),  # 业务归属机构
-                "agreementNo":  self.intermediaryCNName_res.get('agreementNo'),  # 销售信息代码
-                "solutionCode": self.solutionCode_res.get('solutionCode'),  # 销售信息子代码
-                "salesmanCode": self.solutionCode_res.get('salesmanCode'), # 业务员
-                "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),  # 业务项目
-                "priInd": "3",
-                "intermediaryCode": self.intermediaryCNName_res.get('intermediaryCode'),  # 搜索销售信息代码可获取
-                "salesmanRegisterNo": self.solutionCode_res.get('registerNo'),   # 业务员职业证号
-                "interSalesmanRegisterNo":self.interSalesmanRegisterNo,  # 综拓业务员职业证号
-                "interSalesmanCode": self.interSalesmanCode,  # 中介业务员
-                "policySort": "NSP",  # 目前无法比对,暂时写死
-                "loginSort": "NPC",  # 暂时写死
-                "personInd": "C",  # 暂时写死
-                "productType": "1"  # 暂时写死
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            self.orderNo=response.json().get('data')
+                headers = {
+                    "Accept": "application/json, text/plain, */*",
+                    "Content-Type": "application/json",
+                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
+                }
+                url = "https://autopp.tpi.cntaiping.com/api/proposalform/order/create"
+                data = {
+                    "businessMode": "2",  # 业务方式
+                    "companyCode": self.intermediaryCNName_res.get('companyCode'),  # 业务归属机构
+                    "agreementNo":  self.intermediaryCNName_res.get('agreementNo'),  # 销售信息代码
+                    "solutionCode": self.solutionCode_res.get('solutionCode'),  # 销售信息子代码
+                    "salesmanCode": self.solutionCode_res.get('salesmanCode'), # 业务员
+                    "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),  # 业务项目
+                    "priInd": "3",
+                    "intermediaryCode": self.intermediaryCNName_res.get('intermediaryCode'),  # 搜索销售信息代码可获取
+                    "salesmanRegisterNo": self.solutionCode_res.get('registerNo'),   # 业务员职业证号
+                    "interSalesmanRegisterNo":self.interSalesmanRegisterNo,  # 综拓业务员职业证号
+                    "interSalesmanCode": self.interSalesmanCode,  # 中介业务员
+                    "policySort": "NSP",  # 目前无法比对,暂时写死
+                    "loginSort": "NPC",  # 暂时写死
+                    "personInd": "C",  # 暂时写死
+                    "productType": "1"  # 暂时写死
+                }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                self.orderNo=response.json().get('data')
 
-            headers = {
-                "Accept": "application/json, text/plain, */*",
-                "Content-Type": "application/json",
-                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
-            }
-            url = "https://autopp.tpi.cntaiping.com/api/sales/decision/findApplyNo"
-            data = {
-                "applyNo": "",
-                "applyName": "",
-                "businessMode": "2",
-                "agreementNo": self.intermediaryCNName_res.get('agreementNo'),
-                "solutionCode":  self.solutionCode_res.get('solutionCode'),
-                "channelDetailCode": self.intermediaryCNName_res.get('channelSort'),
-                "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
-                "companyCode":  self.solutionCode_res.get('companyCode'),
-                "dsMakingTypeDetail": "",
-                "decisionMakingUnit": "",
-                "compLevel": "0",
-                "language": "C",
-                "modelNo": ""
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            for i in  response.json().get('data').get('gsApplyInfoMainDtos'):
-                if i.get('applyNo')==self.applyNo:
-                    self.gsApplyInfoMainDtos_res=i
-            self.pfMainDto={
-                    "renewalNo": "",
-                    "policySort": "NSP",
-                    "intermediaryCode": self.intermediaryCNName_res.get('intermediaryCode'),
-                    "businessSource": self.intermediaryCNName_res.get('businessSource'),
-                    "channelTip": self.intermediaryCNName_res.get('channelTip'),
-                    "solutionCode": self.solutionCode_res.get('solutionCode'),
-                    "channelDetailCode":  self.intermediaryCNName_res.get('channelSort'),
-                    "teamManager": self.solutionCode_res.get('teamManager'),
-                    "teamManagerName": "",
+                headers = {
+                    "Accept": "application/json, text/plain, */*",
+                    "Content-Type": "application/json",
+                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
+                }
+                url = "https://autopp.tpi.cntaiping.com/api/sales/decision/findApplyNo"
+                data = {
+                    "applyNo": "",
+                    "applyName": "",
                     "businessMode": "2",
                     "agreementNo": self.intermediaryCNName_res.get('agreementNo'),
-                    "companyCode":  self.intermediaryCNName_res.get('companyCode'),
-                    "companyName": self.intermediaryCNName_res.get('companyName'),
-                    "salesmanCode": self.solutionCode_res.get('salesmanCode'),
-                    "salesmanName":self.solutionCode_res.get('salesmanName'),
-                    "outerUserCode": "",
-                    "outerUserCName": "",
-                    "interSalesmanCode": self.interSalesmanCode,
-                    "interSalesmanName":self.interSalesmanRegisterNo,
-                    "salesmanRegisterNo": self.solutionCode_res.get('registerNo'),
-                    "interSalesmanRegisterNo": self.interSalesmanRegisterNo,
+                    "solutionCode":  self.solutionCode_res.get('solutionCode'),
+                    "channelDetailCode": self.intermediaryCNName_res.get('channelSort'),
                     "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
-                    "cooperateSiteName": self.solutionCode_res.get('cooperateSiteName'),
-                    "priInd": "3",
-                    "outerCompanyCode": self.intermediaryCNName_res.get('outerCompanyCode'),
-                    "outerCompanyName": self.intermediaryCNName_res.get('outerCompanyName'),
-                    "pioneerCode": "",
-                    "pioneerName": "",
-                    "outerSubCompanyCode": "",
-                    "outerSubCompanyName": "",
-                    "departmentCode": "",
-                    "departmentName": "",
-                    "governmentType": "",
-                    "itemAddress": "",
-                    "governmentServiceType": "",
-                    "agreementTypeName": self.intermediaryCNName_res.get('agreementTypeName'),
-                    "lables": self.intermediaryCNName_res.get('lables'),
-                    "agreementCode": self.intermediaryCNName_res.get('agreementCode'),
-                    "source": self.intermediaryCNName_res.get('source'),
-                    "producerName":  self.intermediaryCNName_res.get('producerName'),
-                    "intermediaryCNName":self.intermediaryCNName_res.get('intermediaryCNName'),
-                    "frontingCompany": self.intermediaryCNName_res.get('frontingCompany'),
-                    "frontingCompanyName": self.intermediaryCNName_res.get('frontingCompanyName'),
-                    "hengSangInd":  self.intermediaryCNName_res.get('hengSangInd'),
-                    "channelSortName":  self.intermediaryCNName_res.get('channelSortName'),
-                    "channelTipName":  self.intermediaryCNName_res.get('channelTipName'),
-                    "sourceId":self.intermediaryCNName_res.get('sourceId'),
-                    "channelSort": self.intermediaryCNName_res.get('channelSort'),
-                    "disabled": False,
-                    "creditPeriod": self.solutionCode_res.get('creditPeriod'),
-                    "teamName": self.solutionCode_res.get('teamName'),
-                    "registerNo": self.solutionCode_res.get('registerNo'),
-                    "taxRegistryNumber":  self.solutionCode_res.get('taxRegistryNumber'),
-                    "value":self.solutionCode_res.get('solutionCode'),
-                    "label": self.solutionCode_res.get('solutionCode')+'-'+self.solutionCode_res.get('salesmanName')+'-'+self.solutionCode_res.get('cooperateSiteName'),
-                    "governmentProvince": "",
-                    "governmentCity": "",
-                    "governmentCounty": "",
-                    "governmentProvinceName": "",
-                    "governmentCityName": "",
-                    "governmentCountyName": "",
-                    "modelNo": self.gsApplyInfoMainDtos_res.get('modelNo'),
-                    "query": "",
-                    "applySerialNo": 1,
-                    "applyNo": self.gsApplyInfoMainDtos_res.get('applyNo'),
-                    "queryApplyNo": "",
-                    "optBtn": "",
-                    "applyName": "",
-                    "decisionMakingUnit": self.gsApplyInfoMainDtos_res.get('decisionMakingUnit'),
-                    "dsMakingTypeDetail": self.gsApplyInfoMainDtos_res.get('dsMakingTypeDetail'),
+                    "companyCode":  self.solutionCode_res.get('companyCode'),
+                    "dsMakingTypeDetail": "",
+                    "decisionMakingUnit": "",
                     "compLevel": "0",
-                    "serialNo": "",
-                    "newCarFlag": "1",
-                    "doubleProtectFlag": "1",
-                    "oano": "",
-                    "poaSerialNo": "",
-                    "isDangerBz": '2',
-                    "tpFeeFlag": "0",
-                    "argueSolution": "1",
-                    "arbitoryName": "",
-                    "quotationPlanFlag": "0",
-                    "carIdRenewalFlag": "",
-                    "isSpecialCarFlag": "0",
-                    "carIdSplitFlag": "",
-                    "appId": "",
-                    "touchId": "",
-                    "premiumTrialFlag": "0"
+                    "language": "C",
+                    "modelNo": ""
                 }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                for i in  response.json().get('data').get('gsApplyInfoMainDtos'):
+                    if i.get('applyNo')==self.applyNo:
+                        self.gsApplyInfoMainDtos_res=i
+                self.pfMainDto={
+                        "renewalNo": "",
+                        "policySort": "NSP",
+                        "intermediaryCode": self.intermediaryCNName_res.get('intermediaryCode'),
+                        "businessSource": self.intermediaryCNName_res.get('businessSource'),
+                        "channelTip": self.intermediaryCNName_res.get('channelTip'),
+                        "solutionCode": self.solutionCode_res.get('solutionCode'),
+                        "channelDetailCode":  self.intermediaryCNName_res.get('channelSort'),
+                        "teamManager": self.solutionCode_res.get('teamManager'),
+                        "teamManagerName": "",
+                        "businessMode": "2",
+                        "agreementNo": self.intermediaryCNName_res.get('agreementNo'),
+                        "companyCode":  self.intermediaryCNName_res.get('companyCode'),
+                        "companyName": self.intermediaryCNName_res.get('companyName'),
+                        "salesmanCode": self.solutionCode_res.get('salesmanCode'),
+                        "salesmanName":self.solutionCode_res.get('salesmanName'),
+                        "outerUserCode": "",
+                        "outerUserCName": "",
+                        "interSalesmanCode": self.interSalesmanCode,
+                        "interSalesmanName":self.interSalesmanRegisterNo,
+                        "salesmanRegisterNo": self.solutionCode_res.get('registerNo'),
+                        "interSalesmanRegisterNo": self.interSalesmanRegisterNo,
+                        "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
+                        "cooperateSiteName": self.solutionCode_res.get('cooperateSiteName'),
+                        "priInd": "3",
+                        "outerCompanyCode": self.intermediaryCNName_res.get('outerCompanyCode'),
+                        "outerCompanyName": self.intermediaryCNName_res.get('outerCompanyName'),
+                        "pioneerCode": "",
+                        "pioneerName": "",
+                        "outerSubCompanyCode": "",
+                        "outerSubCompanyName": "",
+                        "departmentCode": "",
+                        "departmentName": "",
+                        "governmentType": "",
+                        "itemAddress": "",
+                        "governmentServiceType": "",
+                        "agreementTypeName": self.intermediaryCNName_res.get('agreementTypeName'),
+                        "lables": self.intermediaryCNName_res.get('lables'),
+                        "agreementCode": self.intermediaryCNName_res.get('agreementCode'),
+                        "source": self.intermediaryCNName_res.get('source'),
+                        "producerName":  self.intermediaryCNName_res.get('producerName'),
+                        "intermediaryCNName":self.intermediaryCNName_res.get('intermediaryCNName'),
+                        "frontingCompany": self.intermediaryCNName_res.get('frontingCompany'),
+                        "frontingCompanyName": self.intermediaryCNName_res.get('frontingCompanyName'),
+                        "hengSangInd":  self.intermediaryCNName_res.get('hengSangInd'),
+                        "channelSortName":  self.intermediaryCNName_res.get('channelSortName'),
+                        "channelTipName":  self.intermediaryCNName_res.get('channelTipName'),
+                        "sourceId":self.intermediaryCNName_res.get('sourceId'),
+                        "channelSort": self.intermediaryCNName_res.get('channelSort'),
+                        "disabled": False,
+                        "creditPeriod": self.solutionCode_res.get('creditPeriod'),
+                        "teamName": self.solutionCode_res.get('teamName'),
+                        "registerNo": self.solutionCode_res.get('registerNo'),
+                        "taxRegistryNumber":  self.solutionCode_res.get('taxRegistryNumber'),
+                        "value":self.solutionCode_res.get('solutionCode'),
+                        "label": self.solutionCode_res.get('solutionCode')+'-'+self.solutionCode_res.get('salesmanName')+'-'+self.solutionCode_res.get('cooperateSiteName'),
+                        "governmentProvince": "",
+                        "governmentCity": "",
+                        "governmentCounty": "",
+                        "governmentProvinceName": "",
+                        "governmentCityName": "",
+                        "governmentCountyName": "",
+                        "modelNo": self.gsApplyInfoMainDtos_res.get('modelNo'),
+                        "query": "",
+                        "applySerialNo": 1,
+                        "applyNo": self.gsApplyInfoMainDtos_res.get('applyNo'),
+                        "queryApplyNo": "",
+                        "optBtn": "",
+                        "applyName": "",
+                        "decisionMakingUnit": self.gsApplyInfoMainDtos_res.get('decisionMakingUnit'),
+                        "dsMakingTypeDetail": self.gsApplyInfoMainDtos_res.get('dsMakingTypeDetail'),
+                        "compLevel": "0",
+                        "serialNo": "",
+                        "newCarFlag": "1",
+                        "doubleProtectFlag": "1",
+                        "oano": "",
+                        "poaSerialNo": "",
+                        "isDangerBz": '2',
+                        "tpFeeFlag": "0",
+                        "argueSolution": "1",
+                        "arbitoryName": "",
+                        "quotationPlanFlag": "0",
+                        "carIdRenewalFlag": "",
+                        "isSpecialCarFlag": "0",
+                        "carIdSplitFlag": "",
+                        "appId": "",
+                        "touchId": "",
+                        "premiumTrialFlag": "0"
+                    }
 
-        elif self.method=='立保通':
-            #业务员搜索
-            headers = {
-                "Accept": "application/json, text/plain, */*",
-                "Content-Type": "application/json",
-                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
-            }
-            url = "https://autopp.tpi.cntaiping.com/api/sales/lbtsales/findSalesPerson"
-            data = {
-                "companyCode": self.companyCode,
-                "personInd": "C",
-                "upperCompanyCode": "",
-                "operateUserCode": "",
-                "operateUserName": "",
-                "pageNo": 1,
-                "pageSize": 10
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            for i in response.json().get('data').get('records'):
-                if i.get('userCName')==self.userCName:
-                    self.userCName_res=i
+            elif self.method=='立保通':
+                #业务员搜索
+                headers = {
+                    "Accept": "application/json, text/plain, */*",
+                    "Content-Type": "application/json",
+                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
+                }
+                url = "https://autopp.tpi.cntaiping.com/api/sales/lbtsales/findSalesPerson"
+                data = {
+                    "companyCode": self.companyCode,
+                    "personInd": "C",
+                    "upperCompanyCode": "",
+                    "operateUserCode": "",
+                    "operateUserName": "",
+                    "pageNo": 1,
+                    "pageSize": 10
+                }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                for i in response.json().get('data').get('records'):
+                    if i.get('userCName')==self.userCName:
+                        self.userCName_res=i
 
-            #销售信息子代码搜索
-            url = "https://autopp.tpi.cntaiping.com/api/sales/lbtsales/findSolutionCode"
-            data = {
-                "businessType": self.businessType,
-                "companyCode": self.companyCode,
-                "riskCode": "1359",
-                "salesManCode": self.userCName_res.get('userCode'),
-                "userCode": self.userCName_res.get('userCode'),
-                "pageNo": 1,
-                "pageSize": 10,
-                "personInd": "C"
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            for i in response.json().get('data').get('records'):
-                if i.get('solutionCode')==self.solutionCode:
-                    self.solutionCode_res=i
+                #销售信息子代码搜索
+                url = "https://autopp.tpi.cntaiping.com/api/sales/lbtsales/findSolutionCode"
+                data = {
+                    "businessType": self.businessType,
+                    "companyCode": self.companyCode,
+                    "riskCode": "1359",
+                    "salesManCode": self.userCName_res.get('userCode'),
+                    "userCode": self.userCName_res.get('userCode'),
+                    "pageNo": 1,
+                    "pageSize": 10,
+                    "personInd": "C"
+                }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                for i in response.json().get('data').get('records'):
+                    if i.get('solutionCode')==self.solutionCode:
+                        self.solutionCode_res=i
 
-            #综拓业务员搜索
-            with open(js_path+'taiping/get_requestId.js') as f:
-                js_code=f.read()
-            requestId=execjs.compile(js_code).call('get_requestsId')
+                #综拓业务员搜索
+                with open(js_path+'taiping/get_requestId.js') as f:
+                    js_code=f.read()
+                requestId=execjs.compile(js_code).call('get_requestsId')
 
-            url = "https://autopp.tpi.cntaiping.com/api/sales/lbtsales/getOuterUser"
-            data = {
-                "data": {
-                    "flag": "1",
-                    "orgid": self.userCName_res.get('companyCode'),
-                    "tipCode": self.solutionCode_res.get('channelTip'),
-                    "lifeOrgCode": self.solutionCode_res.get('outerCompanyCode'),
-                    "outerUserCode": "",
-                    "outerUserName": self.outerUserCName,
-                    "requestId": requestId,
-                    "agentNo": self.solutionCode_res.get('intermediaryCode'),
-                },
-                "pageNo": 1,
-                "pageSize": 10
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            self.outerUserCName_res=response.json().get('data').get('operateUserList')[0]
+                url = "https://autopp.tpi.cntaiping.com/api/sales/lbtsales/getOuterUser"
+                data = {
+                    "data": {
+                        "flag": "1",
+                        "orgid": self.userCName_res.get('companyCode'),
+                        "tipCode": self.solutionCode_res.get('channelTip'),
+                        "lifeOrgCode": self.solutionCode_res.get('outerCompanyCode'),
+                        "outerUserCode": "",
+                        "outerUserName": self.outerUserCName,
+                        "requestId": requestId,
+                        "agentNo": self.solutionCode_res.get('intermediaryCode'),
+                    },
+                    "pageNo": 1,
+                    "pageSize": 10
+                }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                self.outerUserCName_res=response.json().get('data').get('operateUserList')[0]
 
-            #获取订单号
-            url = "https://autopp.tpi.cntaiping.com/api/proposalform/order/create"
-            data = {
-                "businessMode": self.businessType,
-                "companyCode": self.companyCode,
-                "agreementNo": self.solutionCode_res.get('agreementNo'),
-                "solutionCode": self.solutionCode,
-                "salesmanCode": self.userCName_res.get('userCode'),
-                "cooperateSiteCode":  self.solutionCode_res.get('cooperateSiteCode'),
-                "priInd": "3",
-                "intermediaryCode": self.solutionCode_res.get('intermediaryCode'),
-                "salesmanRegisterNo": self.userCName_res.get('registerNo'),
-                "interSalesmanRegisterNo": self.outerUserCName_res.get('registerNo'),
-                "interSalesmanCode": "",
-                "policySort": "NQT",
-                "loginSort": "NPC",
-                "personInd": "C",
-                "productType": "1"
-            }
+                #获取订单号
+                url = "https://autopp.tpi.cntaiping.com/api/proposalform/order/create"
+                data = {
+                    "businessMode": self.businessType,
+                    "companyCode": self.companyCode,
+                    "agreementNo": self.solutionCode_res.get('agreementNo'),
+                    "solutionCode": self.solutionCode,
+                    "salesmanCode": self.userCName_res.get('userCode'),
+                    "cooperateSiteCode":  self.solutionCode_res.get('cooperateSiteCode'),
+                    "priInd": "3",
+                    "intermediaryCode": self.solutionCode_res.get('intermediaryCode'),
+                    "salesmanRegisterNo": self.userCName_res.get('registerNo'),
+                    "interSalesmanRegisterNo": self.outerUserCName_res.get('registerNo'),
+                    "interSalesmanCode": "",
+                    "policySort": "NQT",
+                    "loginSort": "NPC",
+                    "personInd": "C",
+                    "productType": "1"
+                }
 
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            self.orderNo = response.json().get('data')
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                self.orderNo = response.json().get('data')
 
-            #获取决策单元代码信息
-            url = "https://autopp.tpi.cntaiping.com/api/sales/decision/findApplyNo"
-            data = {
-                "applyNo": "",
-                "applyName": "",
-                "businessMode": "3",
-                "agreementNo": self.solutionCode_res.get('agreementNo'),
-                "solutionCode":self.solutionCode_res.get('solutionCode'),
-                "channelDetailCode": self.solutionCode_res.get('channelDetailCode'),
-                "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
-                "companyCode": self.companyCode,
-                "dsMakingTypeDetail": "",
-                "decisionMakingUnit": "",
-                "compLevel": "0",
-                "language": "C",
-                "modelNo": ""
-            }
-            data = json.dumps(data)
-            response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
-            for i in response.json().get('data').get('gsApplyInfoMainDtos'):
-                if i.get('applyNo')==self.applyNo:
-                    self.gsApplyInfoMainDtos_res=i
-
-
-
-
-
-            self.pfMainDto={
-                  "renewalNo": "",
-                  "policySort": "NQT",
-                  "agreementNo": self.solutionCode_res.get('agreementNo'),
-                  "departmentCode": self.outerUserCName_res.get('departmentCode'),
-                  "departmentName": self.outerUserCName_res.get('departmentName'),
-                  "outerSubCompanyCode": self.outerUserCName_res.get('outerSubCompanyCode'),
-                  "teamManager":self.userCName_res.get('userCode'),
-                  "teamManagerName": self.userCName_res.get('userCName'),
-                  "salesmanCode": self.userCName_res.get('userCode'),
-                  "salesmanName": self.userCName_res.get('userCName'),
-                  "companyCode": self.companyCode,
-                  "companyName": self.userCName_res.get('companyCName'),
-                  "businessMode": self.businessType,
-                  "channelTip": self.solutionCode_res.get('channelTip'),
-                  "channelTipName": self.solutionCode_res.get('channelTipName'),
-                  "channelDetailCode": self.solutionCode_res.get('channelDetailCode'),
-                  "channelDetailName": self.solutionCode_res.get('channelDetailName'),
-                  "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
-                  "cooperateSiteCName": self.solutionCode_res.get('cooperateSiteCName'),
-                  "solutionCode": self.solutionCode_res.get('solutionCode'),
-                  "intermediaryCode": self.solutionCode_res.get('intermediaryCode'),
-                  "intermediaryCName": self.solutionCode_res.get('intermediaryCName'),
-                  "salesmanRegisterNo": self.userCName_res.get('registerNo'),
-                  "outerUserCode": self.outerUserCName_res.get('outerUserCode'),
-                  "outerUserCName": self.outerUserCName_res.get('outerUserCName'),
-                  "pioneerCode": "",
-                  "pioneerName": "",
-                  "interSalesmanCode": "",
-                  "interSalesmanName": "",
-                  "interSalesmanRegisterNo": self.outerUserCName_res.get('registerNo'),
-                  "governmentType": "",
-                  "itemAddress": "",
-                  "governmentServiceType": "",
-                  "governmentProvince": "",
-                  "governmentCity": "",
-                  "governmentCounty": "",
-                  "governmentProvinceName": "",
-                  "governmentCityName": "",
-                  "governmentCountyName": "",
-                  "businessSource": self.solutionCode_res.get('businessSource'),
-                  "taxRegistryNumber": "91140100MA0GR71F7B",
-                  "modelNo": self.gsApplyInfoMainDtos_res.get('modelNo'),
-                  "query": "",
-                  "applySerialNo": 1,
-                  "applyNo": self.gsApplyInfoMainDtos_res.get('applyNo'),
-                  "queryApplyNo": "",
-                  "optBtn": "",
-                  "applyName": "",
-                  "decisionMakingUnit": self.gsApplyInfoMainDtos_res.get('decisionMakingUnit'),
-                  "dsMakingTypeDetail": self.gsApplyInfoMainDtos_res.get('dsMakingTypeDetail'),
-                  "compLevel": "0",
-                  "serialNo": "",
-                  "newCarFlag": "1",
-                  "doubleProtectFlag": "1",
-                  "oano": "",
-                  "poaSerialNo": "",
-                  "isDangerBz": None,
-                  "tpFeeFlag": "0",
-                  "argueSolution": "1",
-                  "arbitoryName": "",
-                  "quotationPlanFlag": "0",
-                    "quotationPlanFlag": "0",
-                    "carIdRenewalFlag": "",
-                    "isSpecialCarFlag": "0",
-                    "carIdSplitFlag": "",
-                    "appId": "",
-                    "touchId": "",
-                    "premiumTrialFlag": "0"
+                #获取决策单元代码信息
+                url = "https://autopp.tpi.cntaiping.com/api/sales/decision/findApplyNo"
+                data = {
+                    "applyNo": "",
+                    "applyName": "",
+                    "businessMode": "3",
+                    "agreementNo": self.solutionCode_res.get('agreementNo'),
+                    "solutionCode":self.solutionCode_res.get('solutionCode'),
+                    "channelDetailCode": self.solutionCode_res.get('channelDetailCode'),
+                    "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
+                    "companyCode": self.companyCode,
+                    "dsMakingTypeDetail": "",
+                    "decisionMakingUnit": "",
+                    "compLevel": "0",
+                    "language": "C",
+                    "modelNo": ""
                 }
+                data = json.dumps(data)
+                response = requests.post(url, headers=headers, cookies=self.cookies, data=data)
+                for i in response.json().get('data').get('gsApplyInfoMainDtos'):
+                    if i.get('applyNo')==self.applyNo:
+                        self.gsApplyInfoMainDtos_res=i
+
+
+
+
+
+                self.pfMainDto={
+                      "renewalNo": "",
+                      "policySort": "NQT",
+                      "agreementNo": self.solutionCode_res.get('agreementNo'),
+                      "departmentCode": self.outerUserCName_res.get('departmentCode'),
+                      "departmentName": self.outerUserCName_res.get('departmentName'),
+                      "outerSubCompanyCode": self.outerUserCName_res.get('outerSubCompanyCode'),
+                      "teamManager":self.userCName_res.get('userCode'),
+                      "teamManagerName": self.userCName_res.get('userCName'),
+                      "salesmanCode": self.userCName_res.get('userCode'),
+                      "salesmanName": self.userCName_res.get('userCName'),
+                      "companyCode": self.companyCode,
+                      "companyName": self.userCName_res.get('companyCName'),
+                      "businessMode": self.businessType,
+                      "channelTip": self.solutionCode_res.get('channelTip'),
+                      "channelTipName": self.solutionCode_res.get('channelTipName'),
+                      "channelDetailCode": self.solutionCode_res.get('channelDetailCode'),
+                      "channelDetailName": self.solutionCode_res.get('channelDetailName'),
+                      "cooperateSiteCode": self.solutionCode_res.get('cooperateSiteCode'),
+                      "cooperateSiteCName": self.solutionCode_res.get('cooperateSiteCName'),
+                      "solutionCode": self.solutionCode_res.get('solutionCode'),
+                      "intermediaryCode": self.solutionCode_res.get('intermediaryCode'),
+                      "intermediaryCName": self.solutionCode_res.get('intermediaryCName'),
+                      "salesmanRegisterNo": self.userCName_res.get('registerNo'),
+                      "outerUserCode": self.outerUserCName_res.get('outerUserCode'),
+                      "outerUserCName": self.outerUserCName_res.get('outerUserCName'),
+                      "pioneerCode": "",
+                      "pioneerName": "",
+                      "interSalesmanCode": "",
+                      "interSalesmanName": "",
+                      "interSalesmanRegisterNo": self.outerUserCName_res.get('registerNo'),
+                      "governmentType": "",
+                      "itemAddress": "",
+                      "governmentServiceType": "",
+                      "governmentProvince": "",
+                      "governmentCity": "",
+                      "governmentCounty": "",
+                      "governmentProvinceName": "",
+                      "governmentCityName": "",
+                      "governmentCountyName": "",
+                      "businessSource": self.solutionCode_res.get('businessSource'),
+                      "taxRegistryNumber": "91140100MA0GR71F7B",
+                      "modelNo": self.gsApplyInfoMainDtos_res.get('modelNo'),
+                      "query": "",
+                      "applySerialNo": 1,
+                      "applyNo": self.gsApplyInfoMainDtos_res.get('applyNo'),
+                      "queryApplyNo": "",
+                      "optBtn": "",
+                      "applyName": "",
+                      "decisionMakingUnit": self.gsApplyInfoMainDtos_res.get('decisionMakingUnit'),
+                      "dsMakingTypeDetail": self.gsApplyInfoMainDtos_res.get('dsMakingTypeDetail'),
+                      "compLevel": "0",
+                      "serialNo": "",
+                      "newCarFlag": "1",
+                      "doubleProtectFlag": "1",
+                      "oano": "",
+                      "poaSerialNo": "",
+                      "isDangerBz": None,
+                      "tpFeeFlag": "0",
+                      "argueSolution": "1",
+                      "arbitoryName": "",
+                      "quotationPlanFlag": "0",
+                        "quotationPlanFlag": "0",
+                        "carIdRenewalFlag": "",
+                        "isSpecialCarFlag": "0",
+                        "carIdSplitFlag": "",
+                        "appId": "",
+                        "touchId": "",
+                        "premiumTrialFlag": "0"
+                    }
+        except Exception as err:
+            self.err='归属配置信息错误'
 
     #获取车辆信息
     def get_carinfo(self,urll):
@@ -941,7 +946,6 @@ class tp_calculation(object):
 
         else:
             self.car_message='车型查询错误,请联系管理员'
-
         if self.carinfo:
             # self.seat=self.carinfo.get('seatCount')
             for i in self.carinfo:
@@ -1012,6 +1016,7 @@ class tp_calculation(object):
                 exhaustScale=int(exhaustScale)
             else:
                 exhaustScale=int(float(self.enginedesc)*1000)
+
             carKindCodeShow=''
             carKindCodeShowName=''
             if self.carinfo.get('carKindCodeShow'):
@@ -1030,6 +1035,36 @@ class tp_calculation(object):
                     carKindCodeShowName='6座以下客车'
                 else:
                     carKindCodeShowName = '6-10座客车'
+            #车辆用途
+            carUseType="01"
+            #使用性质
+            useNatureShow='02'
+            #行驶证使用性质
+            driveUseAttribute='A'
+            if self.vehicleUse=='08' or self.vehicleUse=='04':
+                if self.vehicleUse == '04':
+                    carUseType = "08"
+                    useNatureShow = "01"
+                    driveUseAttribute = 'F'
+
+                if int(self.limitLoad)>9999:
+                    #车辆种类
+                    carKindCodeShow=24
+                    carKindCodeShowName='10吨以上货车'
+                elif int(self.limitLoad)>4999:
+                    #车辆种类
+                    carKindCodeShow=23
+                    carKindCodeShowName='5-10吨货车'
+                elif int(self.limitLoad)>1999:
+                    #车辆种类
+                    carKindCodeShow=22
+                    carKindCodeShowName='2-5吨货车'
+                elif int(self.limitLoad)<=1999:
+                    #车辆种类
+                    carKindCodeShow=21
+                    carKindCodeShowName='2吨以下货车'
+
+
 
             car_info={
                       "isJy": False,
@@ -1044,13 +1079,14 @@ class tp_calculation(object):
                       "carKindCodeShowName":carKindCodeShowName,
                       "vehicleCategory":self.carinfo.get('vehicleCategory'),
                       "seatCount":self.seat,
-                      "tonCount": self.carinfo.get('tonCount'),
+                        #核定载质量
+                      "tonCount": self.limitLoad,
                         #折旧价格
                       "negotiatedActualValue": self.actualvalue,
                         #未知
-                      "useNatureShow": "01" if (self.vehicleUse=='04') else '02',
+                      "useNatureShow": useNatureShow,
                       "attachNature": "01",
-                      "carUseType": "08" if (self.vehicleUse=='04') else '01',
+                      "carUseType": carUseType,
                       "carID": "",
 
 
@@ -1114,7 +1150,7 @@ class tp_calculation(object):
                       "enrollDate": self.registerDate,
                       "useYears": self.get_useYears(),
                         #行驶证使用性质 A-非营运
-                      "driveUseAttribute":  "F" if (self.vehicleUse=='04') else 'A',
+                      "driveUseAttribute": driveUseAttribute,
 
                       "exhaustScale": exhaustScale,
                       "power": int(self.carinfo.get('power')),
@@ -2483,6 +2519,11 @@ class tp_calculation(object):
             }
         else:
             self.get_guishu()
+            if self.err:
+                return {
+                    'code':400,
+                    'message':self.err
+                }
             if self.orderNo:
                 self.get_carinfo("https://autopp.tpi.cntaiping.com/api/proposalform/intelligentRetrieval/process2/QueryRenewal")
                 if self.carinfo:

+ 3 - 1
spiders/zhongan/baodan/za_state.py

@@ -8,7 +8,9 @@ from config import *
 class za_Check():
     def __init__(self,plyappno):
         self.plyappno=plyappno
-        self.flowId=str(redis_conn.hget('zhongan_' + plyappno, 'flowId'), 'utf8')
+        username=str(redis_conn.hget('zhongan_' + plyappno, 'username'), 'utf8')
+
+        self.flowId=str(redis_conn.hget('zhongan_' + username, 'flowId'), 'utf8')
         self.zaLoginCookieKey = str(redis_conn.hget('zhongan_' + plyappno, 'zaLoginCookieKey'), 'utf8')
         self.license = str(redis_conn.hget('zhongan_' + plyappno, 'license'), 'utf8')
 

Diff do ficheiro suprimidas por serem muito extensas
+ 4255 - 0
static/JS/hengbang/decrypt.js


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff