|
@@ -0,0 +1,2896 @@
|
|
|
+# *_* coding:utf-8 *_*
|
|
|
+import datetime
|
|
|
+import re
|
|
|
+
|
|
|
+import execjs
|
|
|
+import requests
|
|
|
+import json
|
|
|
+import time
|
|
|
+from config import *
|
|
|
+from spiders.edian.guishu.ed_config import *
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+class ed_calculation(object):
|
|
|
+ def __init__( # token、车辆、人员信息
|
|
|
+ self,username, modelCName, engineNo, vin, licenseNo,seatCount, purchasePrice,vehicleUse,limitLoad,cartype,
|
|
|
+ identifyNumber, uname, address, phone_number,
|
|
|
+ tb_identifyNumber, tb_uname, tb_address, tb_phone_number,
|
|
|
+ bb_identifyNumber, bb_uname, bb_address, bb_phone_number,
|
|
|
+ registerDate, issueDate, isTransfer,
|
|
|
+ # 交强险、商业险是否选择,起止日期信息
|
|
|
+ jiaoqiang_chooseFlag, chesun_chooseFlag, jiaoqiang_startDate, jiaoqiang_endDate, chesun_startDate,
|
|
|
+ chesun_endDate, shangye_chooseFlag,
|
|
|
+ # # 三者责任险、价格,司机、乘客责任险、价格,划痕险、价格
|
|
|
+ sanzhe_chooseFlag, sanzhe_amount, sjzeren_chooseFlag, sjzeren_amount, ckzeren_chooseFlag, ckzeren_amount,
|
|
|
+ huahen_chooseFlag, huahen_amount,
|
|
|
+ # # 附加险信息
|
|
|
+ fujiachesun_chooseFlag, fujiachesun_amount, fujiasanzhe_chooseFlag, fujiasanzhe_amount,
|
|
|
+ fujiasiji_chooseFlag, fujiasiji_amount, fujiachengke_chooseFlag, fujiachengke_amount,
|
|
|
+ fujia_jiejiari_chooseFlag, fujia_jiejiari_amount,
|
|
|
+ ybw_sanzhe_chooseFlag, ybw_sanzhe_amount,
|
|
|
+ ybw_siji_chooseFlag, ybw_siji_amount, ybw_ck_chooseFlag, ybw_ck_amount,
|
|
|
+ accidentalDrivingVo,secondhandcarflag,discount,plyappno
|
|
|
+ ):
|
|
|
+
|
|
|
+ # 商业折扣系数
|
|
|
+ self.discount = discount
|
|
|
+ # 订单号
|
|
|
+ self.plyappno = plyappno
|
|
|
+
|
|
|
+ self.username=username
|
|
|
+ self.uname = uname
|
|
|
+ self.address = address
|
|
|
+ self.phone_number = phone_number
|
|
|
+ self.identifyNumber = str(identifyNumber)
|
|
|
+ self.seat=seatCount
|
|
|
+ self.tb_identifyNumber = str(tb_identifyNumber)
|
|
|
+ self.tb_uname = tb_uname
|
|
|
+ self.tb_address = tb_address
|
|
|
+ self.tb_phone_number = tb_phone_number
|
|
|
+
|
|
|
+ self.bb_identifyNumber = str(bb_identifyNumber)
|
|
|
+ self.bb_uname = bb_uname
|
|
|
+ self.bb_address = bb_address
|
|
|
+ self.bb_phone_number = bb_phone_number
|
|
|
+ self.modelCName = modelCName.replace('牌', '')
|
|
|
+ self.engineNo = engineNo
|
|
|
+ self.vin = vin
|
|
|
+ self.licenseNo = licenseNo
|
|
|
+ self.purchasePrice = purchasePrice
|
|
|
+
|
|
|
+ self.limitLoad = limitLoad
|
|
|
+ self.cartype = cartype
|
|
|
+ for i in car_type:
|
|
|
+ if str(i)==(self.cartype):
|
|
|
+ self.vehiclestyleName=car_type.get(i)
|
|
|
+ self.vehicleUse = vehicleUse
|
|
|
+
|
|
|
+ if self.vehicleUse == '08' or self.vehicleUse == '04':
|
|
|
+ self.carType = 'H0'
|
|
|
+ self.carTypeName = '货车'
|
|
|
+ else:
|
|
|
+ self.carType = 'A0'
|
|
|
+ self.carTypeName = '客车'
|
|
|
+
|
|
|
+
|
|
|
+ # carUserType使用性质编码
|
|
|
+ # carUserTypeName使用性质名称
|
|
|
+ if self.vehicleUse == '04':
|
|
|
+ self.carUserType = '9D'
|
|
|
+ self.carUserTypeName = '营业货运'
|
|
|
+ elif self.vehicleUse=='08':
|
|
|
+ self.carUserType = '8D'
|
|
|
+ self.carUserTypeName = '非营业个人'
|
|
|
+ else:
|
|
|
+ self.carUserType = '8A'
|
|
|
+ self.carUserTypeName = '家庭自用'
|
|
|
+
|
|
|
+
|
|
|
+ # 是否过户
|
|
|
+ self.isTransfer = isTransfer
|
|
|
+ self.registerDate = registerDate
|
|
|
+ self.issueDate = issueDate
|
|
|
+
|
|
|
+ # 保险起止日期
|
|
|
+ self.jiaoqiang_chooseFlag = jiaoqiang_chooseFlag
|
|
|
+ self.chesun_chooseFlag = chesun_chooseFlag
|
|
|
+ self.shangye_chooseFlag = shangye_chooseFlag
|
|
|
+ self.jiaoqiang_startDate = jiaoqiang_startDate
|
|
|
+ self.jiaoqiang_endDate = jiaoqiang_endDate
|
|
|
+ self.chesun_startDate = chesun_startDate
|
|
|
+ self.chesun_endDate = chesun_endDate
|
|
|
+
|
|
|
+ # 商业险选择信息
|
|
|
+ self.sanzhe_chooseFlag = sanzhe_chooseFlag
|
|
|
+ self.sanzhe_amount = sanzhe_amount
|
|
|
+ self.sjzeren_chooseFlag = sjzeren_chooseFlag
|
|
|
+ self.sjzeren_amount = sjzeren_amount
|
|
|
+ self.ckzeren_chooseFlag = ckzeren_chooseFlag
|
|
|
+ self.ckzeren_amount = ckzeren_amount
|
|
|
+ self.huahen_chooseFlag = huahen_chooseFlag
|
|
|
+ self.huahen_amount = str(int(huahen_amount))
|
|
|
+
|
|
|
+ # 附加险选择信息
|
|
|
+ self.fujiachesun_chooseFlag = fujiachesun_chooseFlag
|
|
|
+ self.fujiachesun_amount = fujiachesun_amount
|
|
|
+ self.fujiasanzhe_chooseFlag = fujiasanzhe_chooseFlag
|
|
|
+ self.fujiasanzhe_amount = fujiasanzhe_amount
|
|
|
+ self.fujiasiji_chooseFlag = fujiasiji_chooseFlag
|
|
|
+ self.fujiasiji_amount = fujiasiji_amount
|
|
|
+ self.fujiachengke_chooseFlag = fujiachengke_chooseFlag
|
|
|
+ self.fujiachengke_amount = fujiachengke_amount
|
|
|
+ self.fujia_jiejiari_chooseFlag = fujia_jiejiari_chooseFlag
|
|
|
+ self.fujia_jiejiari_amount = fujia_jiejiari_amount
|
|
|
+
|
|
|
+ self.ybw_sanzhe_chooseFlag = ybw_sanzhe_chooseFlag
|
|
|
+ self.ybw_sanzhe_amount = ybw_sanzhe_amount
|
|
|
+ self.ybw_siji_chooseFlag = ybw_siji_chooseFlag
|
|
|
+ self.ybw_siji_amount = ybw_siji_amount
|
|
|
+ self.ybw_ck_chooseFlag = ybw_ck_chooseFlag
|
|
|
+ self.ybw_ck_amount = ybw_ck_amount
|
|
|
+ self.secondhandcarflag=secondhandcarflag
|
|
|
+
|
|
|
+ #非车险参数
|
|
|
+ self.accidentalDrivingVo=accidentalDrivingVo
|
|
|
+
|
|
|
+ self.fcxres_message = None
|
|
|
+ # self.fcx_chooseflag = {
|
|
|
+ # 'choose': '12',
|
|
|
+ # 'productId': '77bcfb9bff014a93bfca0ed792c30258'
|
|
|
+ # }
|
|
|
+ self.mesOrderNcispList = []
|
|
|
+
|
|
|
+ self.headers = None
|
|
|
+ self.res_guishu=None
|
|
|
+
|
|
|
+
|
|
|
+ self.userCode=None
|
|
|
+ self.token=None
|
|
|
+ self.bid=None
|
|
|
+ self.orderId=None
|
|
|
+ self.tranNo=None
|
|
|
+
|
|
|
+ #get_carinfo参数
|
|
|
+ self.userID=None
|
|
|
+ self.encrypt=None
|
|
|
+ self.car_info=None
|
|
|
+ self.desensitizationJson=None
|
|
|
+
|
|
|
+ #险种价格
|
|
|
+ self.chesun_price=0
|
|
|
+ self.sanzhe_price=0
|
|
|
+ self.siji_price=0
|
|
|
+ self.chengke_price=0
|
|
|
+ self.huahen_price=0
|
|
|
+ self.mpv_csprice=0
|
|
|
+ self.mpv_szprice=0
|
|
|
+ self.mpv_sjprice = 0
|
|
|
+ self.mpv_ckprice = 0
|
|
|
+ self.jjr_price = 0
|
|
|
+ self.ybw_sanzheprice=0
|
|
|
+ self.ybw_ckprice=0
|
|
|
+ self.ybw_sjprice=0
|
|
|
+ self.fcx_price=0
|
|
|
+ self.sy_price=0
|
|
|
+ self.jq_price=0
|
|
|
+ self.chechuan_price=0
|
|
|
+ self.all_price=0
|
|
|
+
|
|
|
+
|
|
|
+ #归属信息
|
|
|
+ self.zhanghao_info=None
|
|
|
+ self.gs_name=None
|
|
|
+ self.gs_info=None
|
|
|
+
|
|
|
+ self.jq_repeatinfo=''
|
|
|
+ self.sy_repeatinfo=''
|
|
|
+
|
|
|
+ self.zhejiu_price=''
|
|
|
+ self.businessNatureCode=''
|
|
|
+
|
|
|
+ self.data=''
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def get_sex(self, a):
|
|
|
+ if int(a[16]) % 2 == 0:
|
|
|
+ sex = '2'
|
|
|
+ else:
|
|
|
+ sex = '1'
|
|
|
+ return sex
|
|
|
+ def get_ProvinceCode(self, a):
|
|
|
+ area=''
|
|
|
+ city = ''
|
|
|
+ province = ''
|
|
|
+ a=a[0:13]
|
|
|
+ for ii in city_conde:
|
|
|
+ if ii[-1] in a:
|
|
|
+ if len(ii)==4:
|
|
|
+ ii.insert(3, ii[2].replace('市', ''))
|
|
|
+ area = str(ii[0])
|
|
|
+ city_name = ii[-2]
|
|
|
+ province_name = ii[2]
|
|
|
+ for iii in city_conde:
|
|
|
+ if city_name == iii[-1]:
|
|
|
+ city = str(iii[0])
|
|
|
+
|
|
|
+ for iii in city_conde:
|
|
|
+ if province_name == iii[-1]:
|
|
|
+ province = str(iii[0])
|
|
|
+
|
|
|
+ return [area, city, province]
|
|
|
+ def get_cityname(self,a):
|
|
|
+ a=a[0:16]
|
|
|
+ z=city_conde.copy()
|
|
|
+ z.reverse()
|
|
|
+ for ii in z:
|
|
|
+ if ii[-1] in a and len(ii) > 4:
|
|
|
+ return ii
|
|
|
+ elif ii[-1] in a and len(ii) == 4:
|
|
|
+ ii.insert(2,ii[2].replace('市',''))
|
|
|
+ return ii
|
|
|
+ def get_time(self):
|
|
|
+ timestamp = int(time.time())
|
|
|
+ timeArray = time.localtime(timestamp + 86400)
|
|
|
+ timeArray1 = time.localtime(timestamp + 31536000)
|
|
|
+ Time = time.strftime("%Y-%m-%d", timeArray) + ' 00:00:00'
|
|
|
+ Time2 = time.strftime("%Y-%m-%d", timeArray1) + ' 23:59:59'
|
|
|
+ return Time, Time2
|
|
|
+ def get_age(self, a):
|
|
|
+ age = int(self.get_time()[0][0:4]) - int(a[6:10])
|
|
|
+ return str(age)
|
|
|
+ def get_birthday(self,a):
|
|
|
+
|
|
|
+ birthday = a[6:10] + '-' + a[10:12] + '-' + a[12:14]
|
|
|
+ return birthday
|
|
|
+
|
|
|
+ def get_createDate(self):
|
|
|
+ return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
|
|
|
+ def get_year(self):
|
|
|
+ timestamp = int(time.time())+86400
|
|
|
+ timeArray = time.localtime(timestamp)
|
|
|
+ Time = time.strftime("%Y", timeArray)
|
|
|
+ return Time
|
|
|
+ def get_syendday(self,a):
|
|
|
+ a = a.split('-')
|
|
|
+ a[0] = str(int(a[0]) + 1)
|
|
|
+ a = "-".join(a)
|
|
|
+ try:
|
|
|
+ s_t = time.strptime(a, "%Y-%m-%d %H:%M:%S")
|
|
|
+
|
|
|
+ except Exception as err:
|
|
|
+ if str(err) == 'day is out of range for month':
|
|
|
+ x = a.split(' ')
|
|
|
+ x[0] = x[0].split('-')
|
|
|
+ x[0][-1] = str(int(x[0][-1]) - 1)
|
|
|
+ x[0] = "-".join(x[0])
|
|
|
+ x = " ".join(x)
|
|
|
+ s_t = time.strptime(x, '%Y-%m-%d %H:%M:%S')
|
|
|
+
|
|
|
+
|
|
|
+ mkt = int(time.mktime(s_t))
|
|
|
+
|
|
|
+ if str(a[11:13]) != '00':
|
|
|
+ s_l = time.localtime(mkt)
|
|
|
+ ts = time.strftime("%Y-%m-%d %H:%M:%S", s_l)
|
|
|
+ date = ts[0:10] + ' 00:00:00'
|
|
|
+ else:
|
|
|
+ s_l = time.localtime(mkt)
|
|
|
+ ts = time.strftime("%Y-%m-%d %H:%M:%S", s_l)
|
|
|
+ date = ts
|
|
|
+ return date
|
|
|
+ def get_jqendday(self,a):
|
|
|
+ year = str(int(a[0:4]) + 1)
|
|
|
+ a=a.replace(a[0:4],year)
|
|
|
+
|
|
|
+ try:
|
|
|
+ s_t = time.strptime(a, "%Y-%m-%d %H:%M:%S")
|
|
|
+ mkt = int(time.mktime(s_t))
|
|
|
+ except Exception as err:
|
|
|
+ if str(err) == 'day is out of range for month':
|
|
|
+ x = a.split(' ')
|
|
|
+ x[0] = x[0].split('-')
|
|
|
+ x[0][-1] = str(int(x[0][-1]) - 1)
|
|
|
+ x[0] = "-".join(x[0])
|
|
|
+ x = " ".join(x)
|
|
|
+ s_t = time.strptime(x, '%Y-%m-%d %H:%M:%S')
|
|
|
+ mkt = int(time.mktime(s_t))
|
|
|
+ time_local = time.localtime(mkt)
|
|
|
+ dt = time.strftime('%Y-%m-%d %H:%M:%S', time_local)
|
|
|
+
|
|
|
+ return dt
|
|
|
+
|
|
|
+
|
|
|
+ def RSA_encrypt(self):
|
|
|
+ js_code=open(js_path+'guoshou/RSA.js','r',encoding='utf-8').read()
|
|
|
+ self.encrypt=execjs.compile(js_code)
|
|
|
+
|
|
|
+ def check_login(self):
|
|
|
+ # redis取出token
|
|
|
+ self.token = str(redis_conn.hget('edian_' + self.username, 'token'), 'utf8')
|
|
|
+ self.userCode = str(redis_conn.hget('edian_' + self.username, 'userCode'), 'utf8')
|
|
|
+ self.gs_name = str(redis_conn.hget('edian_' + self.username, 'gs_name'), 'utf8')
|
|
|
+ self.prefillCode=str(redis_conn.hget('edian_' + self.username, 'prefillCode'), 'utf8')
|
|
|
+ if self.token == '':
|
|
|
+ self.token = '用户名、密码错误'
|
|
|
+
|
|
|
+ else:
|
|
|
+ headers = {
|
|
|
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
|
|
|
+ "Content-Type": "application/json;charset=UTF-8",
|
|
|
+ "OauthToken": self.token,
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ }
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/sales/SalesManager/getLoginInfo"
|
|
|
+ data = {
|
|
|
+ "userCode": self.userCode,
|
|
|
+ "bid": '14000000',
|
|
|
+ "systemSource": "ESHOP",
|
|
|
+ "salesGethdbyhpFlag": "1"
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=headers, data=json.dumps(data))
|
|
|
+
|
|
|
+ if response.json().get('status')!='200':
|
|
|
+ get_userinfo(self.username)
|
|
|
+ self.check_login()
|
|
|
+ else:
|
|
|
+ self.headers = {
|
|
|
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
|
|
|
+ "Content-Type": "application/json;charset=UTF-8",
|
|
|
+ "OauthToken": self.token,
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ }
|
|
|
+ self.zhanghao_info=response.json()
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/sales/SalesManagerBind/getBindInfo"
|
|
|
+ data = {
|
|
|
+ "userCode": response.json().get('data').get('userCode'),
|
|
|
+ "systemSource": "ESHOP"
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=headers, data=json.dumps(data))
|
|
|
+ for i in response.json().get('data'):
|
|
|
+ if self.gs_name==i.get('handlerName'):
|
|
|
+ self.gs_info=i
|
|
|
+ break
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def get_orderId(self):
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/searchBylicensePlateNo"
|
|
|
+ data={
|
|
|
+ # "businessOffice": "1401955003",
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ # "businessOfficeName": "太原市中心支公司营业部重客条线三部",
|
|
|
+ "businessOfficeName":self.zhanghao_info.get('data').get('groupType'),
|
|
|
+ # "structureId": "14019500",
|
|
|
+ "structureId": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ # "saleBusinessSourceCode": "2",
|
|
|
+ "saleBusinessSourceCode": self.gs_info.get('userResourceCode'),
|
|
|
+ # "saleBusinessSourceName": "专业代理",
|
|
|
+ "saleBusinessSourceName": self.gs_info.get('userResource'),
|
|
|
+ # "saleAgreementCode": "91140100779576782A",
|
|
|
+ "saleAgreementCode": self.gs_info.get('userAgentCode'),
|
|
|
+ # "saleAgreementName": "太原天勤保险代理有限公司",
|
|
|
+ "saleAgreementName": self.gs_info.get('userAgentName'),
|
|
|
+
|
|
|
+ # "saleChnnelCode": "05",
|
|
|
+ "saleChnnelCode": self.gs_info.get('channelType'),
|
|
|
+
|
|
|
+ # "saleChnnelName": "重客",
|
|
|
+ "saleChnnelName": self.gs_info.get('channelName'),
|
|
|
+
|
|
|
+ "syProductCode": "0521" if len(self.licenseNo)==7 else '0531',
|
|
|
+
|
|
|
+ # "userCode": "140104197306170867",
|
|
|
+ "userCode": self.gs_info.get('userCode'),
|
|
|
+
|
|
|
+ # "licnesNo": "EAlkc+prv1FRFBxitHEMeTXnmWoDt/3E3By4aKvJTZOIljJkx5cta7yB+x5JlTne6eOVHkKdkZ/RvQ04ETopZYOy70uRU/Qdq3HKCcFY6xqKON7e8Vl3HATJoACR18ePiJRFU4eac8F1gJd2DjgdA7WkL1+tEOVEUIsIAuHILZs=",
|
|
|
+ # "licnesNo": self.encrypt.call('get_RSAencrypt', self.licenseNo),
|
|
|
+
|
|
|
+ "licnesNo":"",
|
|
|
+
|
|
|
+
|
|
|
+ "licnesType": "02",
|
|
|
+ "licnesTypeName": "小型汽车号牌",
|
|
|
+
|
|
|
+ "positionCode": "",
|
|
|
+ "positionName": "",
|
|
|
+
|
|
|
+ "loginUserCode": self.gs_info.get('userCode'),
|
|
|
+
|
|
|
+
|
|
|
+ "lifeInsuranceUserCode": None,
|
|
|
+ "newCarFlag": "",
|
|
|
+ # "bindId": "f8983bbed5c042039c85ae7d038cab9e",
|
|
|
+
|
|
|
+ "bindId": self.gs_info.get('id'),
|
|
|
+ "reformFlag": "1",
|
|
|
+ "agreementSerialNo": "",
|
|
|
+ "agreementNo": "",
|
|
|
+ "fixedCode": "",
|
|
|
+ "officeid": self.zhanghao_info.get('data').get('officeid'),
|
|
|
+ "practfno": "",
|
|
|
+ "sellCode": None,
|
|
|
+ "agreementCoinsFlag": None,
|
|
|
+ "agreementName": "",
|
|
|
+ "systemSource": "ESHOP",
|
|
|
+ "initialSystemSource": "ESHOP",
|
|
|
+ "oldPolicyFlag": "2",
|
|
|
+ # "userName": "弓琢琦",
|
|
|
+ "userName": self.zhanghao_info.get('data').get('userName'),
|
|
|
+
|
|
|
+ "handerCode": self.gs_info.get('handlerCode'),
|
|
|
+ "handerName": self.gs_info.get('handlerName'),
|
|
|
+ # "permitNo": "202930000000800",
|
|
|
+ "permitNo": self.gs_info.get('permitNo'),
|
|
|
+
|
|
|
+ "qlfyctfNo": None,
|
|
|
+ "teamType": self.zhanghao_info.get('data').get('userLevel'),
|
|
|
+ "identificationCode": None,
|
|
|
+ "saleschlcode": None,
|
|
|
+ # "qfdepttype": "05",
|
|
|
+ "qfdepttype":self.gs_info.get('qfdepttype'),
|
|
|
+ # "recommendGarageFlag": "0",
|
|
|
+ "recommendGarageFlag":self.gs_info.get('recommendGarageFlag'),
|
|
|
+ "recommendGarageName": None,
|
|
|
+ "recommendGarageCode": None,
|
|
|
+ # "userLoginType": "1",
|
|
|
+ "userLoginType": self.zhanghao_info.get('data').get('userLoginType'),
|
|
|
+
|
|
|
+ "extparams": "",
|
|
|
+ "userid": "",
|
|
|
+ "userinfo": "",
|
|
|
+ "salesGethdbyhpFlag": "1",
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ "bpUserCode": None,
|
|
|
+ "prefillCode":self.prefillCode,
|
|
|
+ "collectionSourcesName": None,
|
|
|
+ "collectionSourcesCode": None,
|
|
|
+ "customerPhone": "",
|
|
|
+ "groupCarCacheKey": "",
|
|
|
+ "groupCarCode": "",
|
|
|
+ "groupGrade": ""
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ self.orderId=response.json().get('data').get('orderNo')
|
|
|
+
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/salesFCBelongInfo"
|
|
|
+ data = {
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "userLoginCode": self.gs_info.get('userCode')
|
|
|
+ }
|
|
|
+ headers = {
|
|
|
+ "Content-Type": "application/json;charset=UTF-8",
|
|
|
+ "OauthToken": self.token,
|
|
|
+ "Sec-Fetch-Site": "same-site",
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
|
|
|
+ }
|
|
|
+ data = json.dumps(data)
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+ self.businessNatureCode = response.json().get('data').get('businessNatureCode')
|
|
|
+
|
|
|
+ def get_tranNo(self):
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/getInsuranceInformation"
|
|
|
+ data = {
|
|
|
+ "thisId": self.orderId,
|
|
|
+ "recordNo": ""
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ self.tranNo=response.json().get('data').get('mesOrderVo').get('transactionNo')
|
|
|
+ self.desensitizationJson = response.json().get('data').get('desensitizationJson')
|
|
|
+
|
|
|
+
|
|
|
+ def get_carinfo(self):
|
|
|
+ #vin搜索车辆信息
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/car/MesCarInfo/getVinModePage"
|
|
|
+ data = {
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "carKindCode": "A0",
|
|
|
+ "engineNumber": "",
|
|
|
+ "enrollDate": "",
|
|
|
+ "frameNo": self.encrypt.call('get_RSAencrypt',self.vin),
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "productCode": "0521",
|
|
|
+ "structureId": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "tranNo": self.tranNo,
|
|
|
+ "userCode": self.zhanghao_info.get('data').get('userCode'),
|
|
|
+ "systemSource": self.zhanghao_info.get('data').get('coreSystemSource'),
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ "desensitizationJson": self.desensitizationJson,
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ if response.json().get('status')=='302':
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/car/MesCarInfo/getJllxVinModePage"
|
|
|
+ data["newCarFlag"]="0"
|
|
|
+ data["licensePlateNo"] = self.encrypt.call('get_RSAencrypt',self.licenseNo)
|
|
|
+ dataa = data
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(dataa))
|
|
|
+ car_list = response.json().get('data').get('vehicleModeList')
|
|
|
+ for i in car_list:
|
|
|
+ if int(i.get('marketDate')) <= int(self.registerDate.replace('-', '')[0:6]) and self.seat==i.get('seat'):
|
|
|
+ self.car_info = i
|
|
|
+ break
|
|
|
+
|
|
|
+ elif response.json().get('status')=='200':
|
|
|
+ car_list=response.json().get('data').get('data')
|
|
|
+ for i in car_list:
|
|
|
+ if i.get('marketDate'):
|
|
|
+
|
|
|
+ if int(i.get('marketDate'))<= int(self.registerDate.replace('-','')[0:6]) and self.seat==i.get('seat'):
|
|
|
+ self.car_info=i
|
|
|
+ break
|
|
|
+ if self.car_info==None:
|
|
|
+ self.car_info=car_list[0]
|
|
|
+ def get_nextstep(self):
|
|
|
+ if self.isTransfer==False:
|
|
|
+ self.isTransfer='0'
|
|
|
+ transferdate=None
|
|
|
+ else:
|
|
|
+ self.isTransfer = '1'
|
|
|
+ transferdate=self.issueDate
|
|
|
+ vehicleQuality=''
|
|
|
+ if self.car_info.get('vehicleQuality'):
|
|
|
+ vehicleQuality=int(self.car_info.get('vehicleQuality'))
|
|
|
+
|
|
|
+ if self.secondhandcarflag==True:
|
|
|
+ self.secondhandcarflag='1'
|
|
|
+ else:
|
|
|
+ self.secondhandcarflag='0'
|
|
|
+ data={
|
|
|
+ "carVoFront": {
|
|
|
+ "standardName": self.car_info.get('standardName'),
|
|
|
+ "brandCode": self.car_info.get('brandCode'),
|
|
|
+ "brandName": self.car_info.get('brandName'),
|
|
|
+ "rbCode": self.car_info.get('rbCode'),
|
|
|
+ "vehiclecode": self.car_info.get('standardName'),
|
|
|
+ "vehiclestyledesc": self.car_info.get('standardName'),
|
|
|
+ "exhaustscale":self.car_info.get('displacement'),
|
|
|
+ "passengersNumber": self.car_info.get('seat'),
|
|
|
+ "localpurchaseprice": self.car_info.get('purchasePrice'),
|
|
|
+ "fcVehicle": self.car_info.get('fcVehicle'),
|
|
|
+ "vehicleRemark":self.car_info.get('remark'),
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "structureId": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "customerType": "1",
|
|
|
+ "mailAddress": "",
|
|
|
+ "homeAddress": self.encrypt.call('get_RSAencrypt',self.address),
|
|
|
+ "provinceCode": self.get_ProvinceCode(self.address)[-1],
|
|
|
+ "provinceName": self.get_cityname(self.address)[-3].replace('省',''),
|
|
|
+ "cityCode": self.get_ProvinceCode(self.address)[1],
|
|
|
+ "cityName": self.get_cityname(self.address)[-2],
|
|
|
+ "districtCode": self.get_ProvinceCode(self.address)[0],
|
|
|
+ "districtName": self.get_cityname(self.address)[-1],
|
|
|
+ "registAddCode": "",
|
|
|
+ "registAddName": "",
|
|
|
+ "registCityCode": "",
|
|
|
+ "registCityName": "",
|
|
|
+ "registDistrictCode": "",
|
|
|
+ "registDistrictName": "",
|
|
|
+ "registyAddress": "",
|
|
|
+ "regAddress": "",
|
|
|
+ "post": "",
|
|
|
+ "mailAddressPost": "",
|
|
|
+ "organizationType": "",
|
|
|
+ "organizationName": "",
|
|
|
+ "ratingType": "",
|
|
|
+ "ratingTypeNote": "",
|
|
|
+ "carOwner": self.encrypt.call('get_RSAencrypt',self.uname),
|
|
|
+ "carOwnerCardNo": self.encrypt.call('get_RSAencrypt',self.identifyNumber),
|
|
|
+ "carOwnerCardType": "01",
|
|
|
+ "carOwnerCardTypeName": "居民身份证",
|
|
|
+ "carType": self.carType,
|
|
|
+ "carTypeName": self.carTypeName,
|
|
|
+ "carUserType": self.carUserType,
|
|
|
+ "carUserCode": "",
|
|
|
+ "carUserTypeName": self.carUserTypeName,
|
|
|
+ "certificateDate": self.issueDate,
|
|
|
+ "certificateNo": "",
|
|
|
+ "certificateType": "",
|
|
|
+ "chgownerflag":self.isTransfer,
|
|
|
+ "engineNo": self.encrypt.call('get_RSAencrypt',self.engineNo),
|
|
|
+ "enrollDate":self.registerDate,
|
|
|
+ "buyDate": self.registerDate,
|
|
|
+ "foreignCarFlag": "0",
|
|
|
+ "frameNo": self.encrypt.call('get_RSAencrypt',self.vin),
|
|
|
+ "licenseNo": self.encrypt.call('get_RSAencrypt',self.licenseNo),
|
|
|
+ "licenseType": "02",
|
|
|
+ "licenseTypeName": "小型汽车号牌",
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "platModelCode": self.car_info.get('platModelCode'),
|
|
|
+ "platModelName": self.car_info.get('platModelName'),
|
|
|
+ "position": "",
|
|
|
+ "productCode": "0521" if len(self.licenseNo)==7 else '0531',
|
|
|
+ 'energyTypesCode':'' if len(self.licenseNo)==7 else '1',
|
|
|
+ "startDate": "",
|
|
|
+ "startDateChangeFlag": "",
|
|
|
+ "tranNo": self.tranNo,
|
|
|
+ "transferdate": transferdate,
|
|
|
+ "updateFlag": "",
|
|
|
+ "userCode": self.gs_info.get('userCode'),
|
|
|
+ "vehiclestyle": self.cartype,
|
|
|
+ "vehiclestyleName": self.vehiclestyleName,
|
|
|
+ "newCarFlag": "0",
|
|
|
+ "secondhandcarflag": self.secondhandcarflag,
|
|
|
+ "fullWeightMax":self.car_info.get('fullWeightMax'),
|
|
|
+ "benefitName": "",
|
|
|
+ "importFlag": "1",
|
|
|
+ "carCertificateType": "",
|
|
|
+ "carCertificateTypeName": "",
|
|
|
+ "certificateDateBJ": "",
|
|
|
+ "age": self.get_age(self.identifyNumber),
|
|
|
+ "sex": self.get_sex(self.identifyNumber),
|
|
|
+ "mobile": self.encrypt.call('get_RSAencrypt',self.phone_number),
|
|
|
+ "carpriceType": "1" if len(self.licenseNo)==7 else '',
|
|
|
+ "carpriceTypeName": "实际价值" if len(self.licenseNo)==7 else '',
|
|
|
+ "fairMarketValue": "",
|
|
|
+ "licenseColorCode": None,
|
|
|
+ "licenseColorName": None,
|
|
|
+ "colorcode": self.car_info.get('colorcode'),
|
|
|
+ "colorname": self.car_info.get('colorname'),
|
|
|
+ "vehicleQuality": vehicleQuality,
|
|
|
+ "vehicleTonnage": self.car_info.get('vehicleTonnage'),
|
|
|
+ "energyTypesName": self.car_info.get('energyTypesName'),
|
|
|
+ "enginePower": self.car_info.get('enginePower'),
|
|
|
+ "speciesOriginCode": self.car_info.get('speciesOriginCode'),
|
|
|
+ "speciesOrigin": self.car_info.get('speciesOrigin'),
|
|
|
+ "newClassName": self.car_info.get('newClassName'),
|
|
|
+ "newClassCode": self.car_info.get('newClassCode'),
|
|
|
+ "marketDate": self.car_info.get('marketDate'),
|
|
|
+ "tradeName": self.car_info.get('tradeName'),
|
|
|
+ "saleCompany": "",
|
|
|
+ "saleAreaCode": "",
|
|
|
+ "saleAreaName": "",
|
|
|
+ "saleAreaProvinceCode": "",
|
|
|
+ "saleAreaProvinceName": "",
|
|
|
+ "sale4SFlag": self.car_info.get('energyTypesCode'),
|
|
|
+ "deptName": self.car_info.get('familyName'),
|
|
|
+ "registModel": "",
|
|
|
+ "nationalityName": "",
|
|
|
+ "nationality": "",
|
|
|
+ "signDepartmentName": "",
|
|
|
+ "email": "",
|
|
|
+ "carOwnerStartDate": "",
|
|
|
+ "carOwnerEndDate": "",
|
|
|
+ "isLong": 0,
|
|
|
+ "birthDate": self.get_birthday(self.identifyNumber),
|
|
|
+ "occupationCodeName": "",
|
|
|
+ "occupationCode": "",
|
|
|
+ "workType": "",
|
|
|
+ "workTypeName": "",
|
|
|
+ "workTypeMidClass": "",
|
|
|
+ "workTypeMidClassName": "",
|
|
|
+ "workTypeSmallClass": "",
|
|
|
+ "workTypeSmallClassName": "",
|
|
|
+ "citizenshipName": "中国",
|
|
|
+ "citizenship": "CHN",
|
|
|
+ "car2": "0",
|
|
|
+ "agreementCarTypeNull": "",
|
|
|
+ "agreementUseTypeNull": "",
|
|
|
+ "familyID": self.car_info.get('familyID'),
|
|
|
+ "hfEndTime":self.car_info.get('hfEndTime') if self.car_info.get('hfEndTime') else '',
|
|
|
+ "hfStartTime": self.car_info.get('hfStartTime') if self.car_info.get('hfStartTime') else '',
|
|
|
+ "batteryClass": self.car_info.get('batteryClass') if self.car_info.get('batteryClass') else '',
|
|
|
+ "batteryCompany": self.car_info.get('batteryCompany') if self.car_info.get('batteryCompany') else '',
|
|
|
+ "drivingRange":self.car_info.get('drivingRange') if self.car_info.get('drivingRange') else '',
|
|
|
+ "batteryWarranty": self.car_info.get('batteryWarranty') if self.car_info.get('batteryWarranty') else '',
|
|
|
+ "electricClass": self.car_info.get('electricClass') if self.car_info.get('electricClass') else '',
|
|
|
+ "isbuyOrnot": "",
|
|
|
+ "isbuyOrnotDescribe": "",
|
|
|
+ "dataFrom": "",
|
|
|
+ "dataFromDescribe": "",
|
|
|
+ "modelSegmentation": "",
|
|
|
+ "elecBatteryType": "",
|
|
|
+ "elecBatteryTypeDescribe": "",
|
|
|
+ "isNewEnergy": "",
|
|
|
+ "isNewEnergyDescribe": "",
|
|
|
+ "modelEnergyType": "0" if len(self.licenseNo)==7 else '1' ,
|
|
|
+ "modelEnergyTypeName": self.car_info.get('modelEnergyTypeName'),
|
|
|
+ "vehicleCodeSh": "",
|
|
|
+ "jqxClassId": self.car_info.get('jqxClassId') if len(self.licenseNo)==7 else '',
|
|
|
+ "jqxClassName": self.car_info.get('jqxClassName') if len(self.licenseNo)==7 else '',
|
|
|
+ "syxClassId": self.car_info.get('syxClassId') if len(self.licenseNo)==7 else '',
|
|
|
+ "syxClassName": self.car_info.get('syxClassName') if len(self.licenseNo)==7 else '',
|
|
|
+ "prefillCarInfoCheck": {},
|
|
|
+ "carProvinceCode": "",
|
|
|
+ "carProvinceName": "",
|
|
|
+ "carCityCode": "",
|
|
|
+ "carCityName": "",
|
|
|
+ "carDistrictCode": "",
|
|
|
+ "carDistrictName": "",
|
|
|
+ "carPostalAddress": ""
|
|
|
+ },
|
|
|
+ "customerVo": {
|
|
|
+ "applicantIVo": {
|
|
|
+ "customerName": self.encrypt.call('get_RSAencrypt',self.tb_uname),
|
|
|
+ "identifyNumber": self.encrypt.call('get_RSAencrypt',self.tb_identifyNumber),
|
|
|
+ "identifyType": "01",
|
|
|
+ "identifyTypeName": "居民身份证",
|
|
|
+ "occupationCode": "3990000",
|
|
|
+ "occupationCodeName": "其它办事人员和有关人员",
|
|
|
+ "workType": "3",
|
|
|
+ "workTypeName": "办事人员和有关人员",
|
|
|
+ "workTypeMidClass": "399",
|
|
|
+ "workTypeMidClassName": "其它办事人员和有关人员",
|
|
|
+ "workTypeSmallClass": "39900",
|
|
|
+ "workTypeSmallClassName": "其它办事人员及有关部门人员",
|
|
|
+ "phone": self.encrypt.call('get_RSAencrypt',self.tb_phone_number),
|
|
|
+ "relationOfCarCode": "",
|
|
|
+ "relationOfCarName": "",
|
|
|
+ "sex": self.get_sex(self.tb_identifyNumber),
|
|
|
+ "endDate": "2030-07-26",
|
|
|
+ "startDate": "2020-07-26",
|
|
|
+ "isLong": 0,
|
|
|
+ "address": self.encrypt.call('get_RSAencrypt', self.tb_address),
|
|
|
+ "provinceCode": self.get_ProvinceCode(self.tb_address)[-1],
|
|
|
+ "provinceName": self.get_cityname(self.tb_address)[-3].replace('省',''),
|
|
|
+ "cityCode": self.get_ProvinceCode(self.tb_address)[1],
|
|
|
+ "cityName":self.get_cityname(self.tb_address)[-2],
|
|
|
+ "districtCode": self.get_ProvinceCode(self.tb_address)[0],
|
|
|
+ "districtName": self.get_cityname(self.tb_address)[-1],
|
|
|
+ "email": "",
|
|
|
+ "birthDate":self.get_birthday(self.tb_identifyNumber),
|
|
|
+ "mobileOwnerIdType": "",
|
|
|
+ "mobileOwnerIdName": "",
|
|
|
+ "mobileOwnerIdNum": "",
|
|
|
+ "mobileOwnerName": "",
|
|
|
+ "age": self.get_age(self.tb_identifyNumber),
|
|
|
+ "nationalityName": "",
|
|
|
+ "nationality": "",
|
|
|
+ "signDepartmentName": "",
|
|
|
+ "specialLabelSubTypeName": "",
|
|
|
+ "specialLabelSubTypeCode": "",
|
|
|
+ "specialLabelTypeName": "",
|
|
|
+ "specialLabelTypeCode": "",
|
|
|
+ "serviceLevelCode": "",
|
|
|
+ "citizenship": "CHN",
|
|
|
+ "citizenshipName": "中国",
|
|
|
+ "post": "",
|
|
|
+ "financialValue": '',
|
|
|
+ "customerRiskGradeName": ""
|
|
|
+ },
|
|
|
+ "applicantOVo": {
|
|
|
+ "busiLicense": "",
|
|
|
+ "customerName": "",
|
|
|
+ "endDate": "",
|
|
|
+ "identifyNumber": "",
|
|
|
+ "identifyType": "22",
|
|
|
+ "identifyTypeName": "统一社会信用代码",
|
|
|
+ "industryCategory": "",
|
|
|
+ "industryCategoryName": "",
|
|
|
+ "industrySCategory": "",
|
|
|
+ "industrySCategoryName": "",
|
|
|
+ "industryTCategory": "",
|
|
|
+ "industryTCategoryName": "",
|
|
|
+ "industryFCategory": "",
|
|
|
+ "industryFCategoryName": "",
|
|
|
+ "isLong": 0,
|
|
|
+ "linkName": "",
|
|
|
+ "linkPhone1": "",
|
|
|
+ "linkPhone2": "",
|
|
|
+ "mailAddressPost": "",
|
|
|
+ "organizationName": "",
|
|
|
+ "organizationType": "",
|
|
|
+ "ratingType": "",
|
|
|
+ "ratingTypeNote": "",
|
|
|
+ "postAddress": "",
|
|
|
+ "regAddress": "",
|
|
|
+ "registAddCode": "",
|
|
|
+ "registAddName": "",
|
|
|
+ "registCityCode": "",
|
|
|
+ "registCityName": "",
|
|
|
+ "registDistrictCode": "",
|
|
|
+ "registDistrictName": "",
|
|
|
+ "regPlaceName": "中国",
|
|
|
+ "regPlace": "CHN",
|
|
|
+ "startDate": "",
|
|
|
+ "taxRegistrationNo": "",
|
|
|
+ "email": "",
|
|
|
+ "mainBussiness": "",
|
|
|
+ "managerName": "",
|
|
|
+ "managerIdType": "",
|
|
|
+ "managerIdTypeName": "",
|
|
|
+ "managerIdNum": "",
|
|
|
+ "managerType": "",
|
|
|
+ "managerTypeName": "",
|
|
|
+ "managerPhoneNum": "",
|
|
|
+ "managerEmail": "",
|
|
|
+ "mobileOwnerName": "",
|
|
|
+ "mobileOwnerIdType": "",
|
|
|
+ "mobileOwnerIdName": "",
|
|
|
+ "mobileOwnerIdNum": "",
|
|
|
+ "payAccountName": "",
|
|
|
+ "financialValue": "",
|
|
|
+ "customerRiskGradeName": "",
|
|
|
+ "isOther": "0"
|
|
|
+ },
|
|
|
+ "applicantSameOwern": 0,
|
|
|
+ "applicantType": "1",
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "publicinsurantIVo": {
|
|
|
+ "customerName": self.encrypt.call('get_RSAencrypt',self.bb_uname),
|
|
|
+ "identifyNumber": self.encrypt.call('get_RSAencrypt',self.bb_identifyNumber),
|
|
|
+ "identifyType": "01",
|
|
|
+ "identifyTypeName": "居民身份证",
|
|
|
+ "occupationCode": "3990000",
|
|
|
+ "occupationCodeName": "其它办事人员和有关人员",
|
|
|
+ "workType": "3",
|
|
|
+ "workTypeName": "办事人员和有关人员",
|
|
|
+ "workTypeMidClass": "399",
|
|
|
+ "workTypeMidClassName": "其它办事人员和有关人员",
|
|
|
+ "workTypeSmallClass": "39900",
|
|
|
+ "workTypeSmallClassName": "其它办事人员及有关部门人员",
|
|
|
+ "phone": self.encrypt.call('get_RSAencrypt',self.bb_phone_number),
|
|
|
+ "sex": self.get_sex(self.bb_identifyNumber),
|
|
|
+ "endDate": "2030-07-26",
|
|
|
+ "startDate": "2020-07-26",
|
|
|
+ "isLong": 0,
|
|
|
+ "address": self.encrypt.call('get_RSAencrypt', self.bb_address),
|
|
|
+ "provinceCode": self.get_ProvinceCode(self.bb_address)[-1],
|
|
|
+ "provinceName": self.get_cityname(self.bb_address)[-3].replace('省', ''),
|
|
|
+ "cityCode": self.get_ProvinceCode(self.bb_address)[1],
|
|
|
+ "cityName": self.get_cityname(self.bb_address)[-2],
|
|
|
+ "districtCode": self.get_ProvinceCode(self.bb_address)[0],
|
|
|
+ "districtName": self.get_cityname(self.bb_address)[-1],
|
|
|
+ "relationOfCarCode": "1",
|
|
|
+ "relationOfCarName": "所有",
|
|
|
+ "email": "",
|
|
|
+ "birthDate": self.get_birthday(self.bb_identifyNumber),
|
|
|
+ "mobileOwnerIdType": "",
|
|
|
+ "mobileOwnerIdName": "",
|
|
|
+ "mobileOwnerIdNum": "",
|
|
|
+ "mobileOwnerName": "",
|
|
|
+ "age": self.get_age(self.bb_identifyNumber),
|
|
|
+ "nationalityName": "",
|
|
|
+ "nationality": "",
|
|
|
+ "signDepartmentName": "",
|
|
|
+ "specialLabelSubTypeName": "",
|
|
|
+ "specialLabelSubTypeCode": "",
|
|
|
+ "specialLabelTypeName": "",
|
|
|
+ "specialLabelTypeCode": "",
|
|
|
+ "serviceLevelCode": "",
|
|
|
+ "citizenship": "CHN",
|
|
|
+ "citizenshipName": "中国",
|
|
|
+ "post": "",
|
|
|
+ "financialValue": '',
|
|
|
+ "customerRiskGradeName": ""
|
|
|
+ },
|
|
|
+ "publicinsurantOVo": {
|
|
|
+ "busiLicense": "",
|
|
|
+ "customerName": "",
|
|
|
+ "endDate": "",
|
|
|
+ "identifyNumber": "",
|
|
|
+ "identifyType": "22",
|
|
|
+ "identifyTypeName": "统一社会信用代码",
|
|
|
+ "industryCategory": "",
|
|
|
+ "industryCategoryName": "",
|
|
|
+ "industrySCategory": "",
|
|
|
+ "industrySCategoryName": "",
|
|
|
+ "industryTCategory": "",
|
|
|
+ "industryTCategoryName": "",
|
|
|
+ "industryFCategory": "",
|
|
|
+ "industryFCategoryName": "",
|
|
|
+ "isLong": 0,
|
|
|
+ "linkName": "",
|
|
|
+ "linkPhone1": "",
|
|
|
+ "linkPhone2": "",
|
|
|
+ "mailAddressPost": "",
|
|
|
+ "organizationName": "",
|
|
|
+ "organizationType": "",
|
|
|
+ "ratingType": "",
|
|
|
+ "ratingTypeNote": "",
|
|
|
+ "postAddress": "",
|
|
|
+ "regAddress": "",
|
|
|
+ "registAddCode": "",
|
|
|
+ "registAddName": "",
|
|
|
+ "registCityCode": "",
|
|
|
+ "registCityName": "",
|
|
|
+ "registDistrictCode": "",
|
|
|
+ "registDistrictName": "",
|
|
|
+ "regPlace": "CHN",
|
|
|
+ "regPlaceName": "中国",
|
|
|
+ "startDate": "",
|
|
|
+ "taxRegistrationNo": "",
|
|
|
+ "relationOfCarCode": "1",
|
|
|
+ "relationOfCarName": "所有",
|
|
|
+ "email": "",
|
|
|
+ "mainBussiness": "",
|
|
|
+ "financialValue": "",
|
|
|
+ "customerRiskGradeName": "",
|
|
|
+ "isOther": "0"
|
|
|
+ },
|
|
|
+ "publicinsurantSameOwern": 0,
|
|
|
+ "publicinsurantSame": 1,
|
|
|
+ "publicinsurantType": "1",
|
|
|
+ "samePerson": "",
|
|
|
+ "sysStatus": "0",
|
|
|
+ "readonlyApplicantIVo": {
|
|
|
+ },
|
|
|
+ "readonlyApplicantOVo": {
|
|
|
+ },
|
|
|
+ "readonlyPublicinsurantIVo": {
|
|
|
+ },
|
|
|
+ "readonlyPublicinsurantOVo": {
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "deviceList": None,
|
|
|
+ "chargerList": None,
|
|
|
+ "mesOrderVo": {
|
|
|
+ "ifNewDevice": "0",
|
|
|
+ "ifNewCharge": "0",
|
|
|
+ "agricultureCode": "",
|
|
|
+ "agricultureFlag": "0",
|
|
|
+ "agricultureName": "非涉农",
|
|
|
+ "applicantInsuredRelationCode": "01",
|
|
|
+ "applicantInsuredRelationName": "本人",
|
|
|
+ "arbitboardCode": "",
|
|
|
+ "arbitboardName": "",
|
|
|
+ "argueSolution": "1",
|
|
|
+ "carAliases": self.car_info.get('standardName'),
|
|
|
+ "checkCarFlag": "0",
|
|
|
+ "checkCarPerson": "",
|
|
|
+ "cityCode": self.get_ProvinceCode(self.tb_address)[1],
|
|
|
+ "cityName": "",
|
|
|
+ "comTrafficFlag": "",
|
|
|
+ "doubtfulFlag": "",
|
|
|
+ "feeDiscountFlag": "",
|
|
|
+ "frameNo": self.encrypt.call('get_RSAencrypt', self.vin),
|
|
|
+ "groupPolicyFlag": "",
|
|
|
+ "jqEndDate": self.get_jqendday(self.jiaoqiang_startDate),
|
|
|
+ "jqPay": "",
|
|
|
+ "jqStartDate": self.jiaoqiang_startDate ,
|
|
|
+ "ktaxComCode": "",
|
|
|
+ "ktaxComName": "",
|
|
|
+ "ktaxEndDate": "",
|
|
|
+ "ktaxReductionDesc": "",
|
|
|
+ "ktaxReductionRate": "",
|
|
|
+ "ktaxStartDate": "",
|
|
|
+ "licensePlateNo": self.encrypt.call('get_RSAencrypt', self.licenseNo),
|
|
|
+ "licenseType": "02",
|
|
|
+ "licenseTypeName": "小型汽车号牌",
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "orderStatus": "0",
|
|
|
+ "orderType": "",
|
|
|
+ "paidFreeCertificate": "",
|
|
|
+ "placeNanme": "",
|
|
|
+ "placeNo": "",
|
|
|
+ "policyType": "1",
|
|
|
+ "prePayTax": "",
|
|
|
+ "provinceCode": self.get_ProvinceCode(self.tb_address)[-1],
|
|
|
+ "provinceName": "",
|
|
|
+ "realPay": "",
|
|
|
+ "realSxfPay": "",
|
|
|
+ "recommendGarageCode": "",
|
|
|
+ "recommendGarageFlag": "0",
|
|
|
+ "recommendGarageName": "",
|
|
|
+ "shareholderCode": "",
|
|
|
+ "shareholderFlag": "0",
|
|
|
+ "shareholderName": "",
|
|
|
+ "sxfDiscountRange": "",
|
|
|
+ "syAmount": "",
|
|
|
+ "syDiscount": "",
|
|
|
+ "syDiscountRange": "",
|
|
|
+ "syEndDate": self.get_syendday(self.chesun_startDate),
|
|
|
+ "syPay": "",
|
|
|
+ "syProductCode": "0521" if len(self.licenseNo)==7 else '0531',
|
|
|
+ "syRealPayRate": "",
|
|
|
+ "syStartDate": self.chesun_startDate,
|
|
|
+ "taxAuthorityCode": "",
|
|
|
+ "taxAuthorityName": "",
|
|
|
+ "taxDocumentDate": "",
|
|
|
+ "taxPay": "",
|
|
|
+ "taxPayerAddress": "",
|
|
|
+ "taxPayerIdentifyNumber": "",
|
|
|
+ "taxPayerName": "",
|
|
|
+ "taxPayerTypeCode": "",
|
|
|
+ "taxPayerTypeName": "",
|
|
|
+ "taxRegistrationNo": "",
|
|
|
+ "taxTypeCode": "",
|
|
|
+ "thisPayTax": "",
|
|
|
+ "transactionNo": self.tranNo,
|
|
|
+ "insureMethodType": "1",
|
|
|
+ "policyElectricType": "1",
|
|
|
+ "jqPolicyElectricType": "1",
|
|
|
+ "otherRemarks": "",
|
|
|
+ "userCode":self.gs_info.get('userCode'),
|
|
|
+ "doubleRecordName": "",
|
|
|
+ "doubleRecordNumber": "",
|
|
|
+ "docSalesName": "",
|
|
|
+ "docSalePracticeNo": "",
|
|
|
+ "docSalesPhone": "",
|
|
|
+ "ifFalse": "2",
|
|
|
+ "customerName": None,
|
|
|
+ "identifyType": None,
|
|
|
+ "identifyName": None,
|
|
|
+ "identifyNumber": None,
|
|
|
+ "mailAddress": None,
|
|
|
+ "agreementNo": None,
|
|
|
+ "customerPhone": None,
|
|
|
+ "multiplexJqPolicy": None,
|
|
|
+ "multiplexJqStart": None,
|
|
|
+ "multiplexJqEnd": None,
|
|
|
+ "multiplexSyPolicy": None,
|
|
|
+ "multiplexSyStart": None,
|
|
|
+ "multiplexSyEnd": None,
|
|
|
+ "setMealNo": None,
|
|
|
+ "payTaxesFlag": None,
|
|
|
+ "agreeCustomerShareFlag": "",
|
|
|
+ "agreementFixedFlag": "0",
|
|
|
+ "agreementUseAgrRateFlag": None,
|
|
|
+ "vocationDocSaleSource": None,
|
|
|
+ "applicantToCarowner": "1",
|
|
|
+ "publicinsurantToApplicant": "1",
|
|
|
+ "createDate":self.get_createDate(),
|
|
|
+ "beijingToQuanguoOnoff": None,
|
|
|
+ "policeConfirmedFlag": "0",
|
|
|
+ "businessChannelCode": "0",
|
|
|
+ "recommendBusinessName": "",
|
|
|
+ "otherRecommendBusinessName": "",
|
|
|
+ "initialSystemSource": "ESHOP",
|
|
|
+ "userLoginType": "1",
|
|
|
+ "bailoutDiscountMsg": ""
|
|
|
+ },
|
|
|
+ "salesInfoVO": {
|
|
|
+ "addressname": "",
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "classcode": "0521" if len(self.licenseNo)==7 else '0531',
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "qfdepttype": self.gs_info.get('qfdepttype'),
|
|
|
+ "saleAgreementCode": self.gs_info.get('userAgentCode'),
|
|
|
+ "saleAgreementName": self.gs_info.get('userAgentName'),
|
|
|
+ "saleBusinessSourceCode": self.gs_info.get('userResourceCode'),
|
|
|
+ "saleBusinessSourceName": self.gs_info.get('userResource'),
|
|
|
+ "saleChnnelCode": self.gs_info.get('channelType'),
|
|
|
+ "saleChnnelName": self.gs_info.get('channelName'),
|
|
|
+ "userCode": self.gs_info.get('userCode'),
|
|
|
+ "userName": self.zhanghao_info.get('data').get('userName'),
|
|
|
+ "handlerCode": self.gs_info.get('handlerCode'),
|
|
|
+ "handlerName": self.gs_info.get('handlerName'),
|
|
|
+ "saleschlcode": "",
|
|
|
+ "provincialCom": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "bindFlag": "0",
|
|
|
+ "bindId": self.gs_info.get('id'),
|
|
|
+ "businessOfficeName": "",
|
|
|
+ "identificationCode": "",
|
|
|
+ "ifFalse": "",
|
|
|
+ "lifeInsuranceUserCode": "",
|
|
|
+ "lifeInsuranceUserName": "",
|
|
|
+ "loginUserCode": "",
|
|
|
+ "permitNo": self.gs_info.get('permitNo'),
|
|
|
+ "qlfyctfNo": "",
|
|
|
+ "teamType": "",
|
|
|
+ "officeid": self.zhanghao_info.get('data').get('officeid'),
|
|
|
+ "practfno": "",
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ "coreSystemSource": self.zhanghao_info.get('data').get('coreSystemSource'),
|
|
|
+ "bid": "",
|
|
|
+ "bidName": "",
|
|
|
+ "tid": "",
|
|
|
+ "tidFlag": "",
|
|
|
+ "tidVersionNo": "",
|
|
|
+ "teamName": "",
|
|
|
+ "agentCode": "",
|
|
|
+ "agentName": "",
|
|
|
+ "recommendGarageCode": "",
|
|
|
+ "recommendGarageName": "",
|
|
|
+ "recommendGarageFlag": "0",
|
|
|
+ "sellCode": "",
|
|
|
+ "salesOrderInfoVo": {
|
|
|
+ "teamName": None,
|
|
|
+ "ifFalse": None,
|
|
|
+ "orderId":self.orderId,
|
|
|
+ "subBranchCode": None,
|
|
|
+ "saleChnnelName": self.gs_info.get('channelName'),
|
|
|
+ "sellCode": None,
|
|
|
+ "agentCode": None,
|
|
|
+ "businessOfficeName": None,
|
|
|
+ "groupId": None,
|
|
|
+ "saleAgreementName": self.gs_info.get('userAgentName'),
|
|
|
+ "handlerCode": self.gs_info.get('handlerCode'),
|
|
|
+ "handlerName": self.gs_info.get('handlerName'),
|
|
|
+ "addressname": None,
|
|
|
+ "bindId": self.gs_info.get('id'),
|
|
|
+ "tid": None,
|
|
|
+ "saleChnnelCode": self.gs_info.get('channelType'),
|
|
|
+ "systemSource": None,
|
|
|
+ "classcode": "0521" if len(self.licenseNo)==7 else '0531',
|
|
|
+ "showBank": "false",
|
|
|
+ "lifeInsuranceUserCode": None,
|
|
|
+ "agentRate": None,
|
|
|
+ "salesOrderInfoVo": None,
|
|
|
+ "provincialCom": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "subBranchName": None,
|
|
|
+ "sellName": None,
|
|
|
+ "qfdepttype": self.zhanghao_info.get('data').get('qfdepttype'),
|
|
|
+ "loginUserCode": None,
|
|
|
+ "agentName": None,
|
|
|
+ "getGroupType": None,
|
|
|
+ "oriSysOperatorKey": None,
|
|
|
+ "permitNo": self.gs_info.get('permitNo'),
|
|
|
+ "saleBusinessSourceName": self.gs_info.get('userResource'),
|
|
|
+ "bindFlag": None,
|
|
|
+ "saleAgreementCode": self.gs_info.get('userAgentCode'),
|
|
|
+ "saleschlcode": None,
|
|
|
+ "officeid": self.zhanghao_info.get('data').get('officeid'),
|
|
|
+ "oriSysOperator": None,
|
|
|
+ "tidFlag": None,
|
|
|
+ "teamType": None,
|
|
|
+ "shareImgFlag": None,
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "identificationCode": None,
|
|
|
+ "recommendGarageCode": None,
|
|
|
+ "shareImgUserCode": None,
|
|
|
+ "cgbBranchName": None,
|
|
|
+ "userCode": self.gs_info.get('userCode'),
|
|
|
+ "collectionSourcesCode": None,
|
|
|
+ "comeFrom": None,
|
|
|
+ "recommendGarageFlag": "0",
|
|
|
+ "qlfyctfNo": None,
|
|
|
+ "salesGethdbyhpFlag": None,
|
|
|
+ "bidName": None,
|
|
|
+ "tidVersionNo": None,
|
|
|
+ "mobile": None,
|
|
|
+ "versionFlag": None,
|
|
|
+ "userName": None,
|
|
|
+ "coreSystemSource": None,
|
|
|
+ "practfno": None,
|
|
|
+ "cgbBranchCode": None,
|
|
|
+ "saleBusinessSourceCode": self.gs_info.get('userResourceCode'),
|
|
|
+ "recommendGarageName": None,
|
|
|
+ "collectionSourcesName": None,
|
|
|
+ "lifeInsuranceUserName": None,
|
|
|
+ "bid": None
|
|
|
+ },
|
|
|
+ "collectionSourcesCode": "",
|
|
|
+ "collectionSourcesName": ""
|
|
|
+ },
|
|
|
+ "desensitizationJson": self.desensitizationJson,
|
|
|
+ "newVehicleRecordFlag": "0"
|
|
|
+ }
|
|
|
+ response = requests.post("https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/submitInsuranceInformation", headers=self.headers, data=json.dumps(data))
|
|
|
+ if response.json().get('status')=='500':
|
|
|
+ return response.json().get('msg')
|
|
|
+ else:
|
|
|
+ return '200'
|
|
|
+
|
|
|
+
|
|
|
+ def get_fcxdata(self):
|
|
|
+
|
|
|
+ if self.accidentalDrivingVo:
|
|
|
+
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/login/encryptionConvert"
|
|
|
+ data = {
|
|
|
+ "convert": self.gs_info.get('userCode')
|
|
|
+ }
|
|
|
+ headers = {
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ "Connection": "keep-alive",
|
|
|
+ "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
|
|
|
+ "OauthToken":self.token,
|
|
|
+ "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",
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+ encrypt_userCode=response.json().get('data')
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/login/employeeLogin"
|
|
|
+ data = {
|
|
|
+ "userCode": encrypt_userCode,
|
|
|
+ "loginUserType": "1",
|
|
|
+ "isApp": "1"
|
|
|
+ }
|
|
|
+
|
|
|
+ headerss=self.headers
|
|
|
+ headerss['Content-Type']="application/x-www-form-urlencoded;charset=UTF-8"
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+
|
|
|
+
|
|
|
+ managerId=response.json().get('data').get('id')
|
|
|
+ saleAgreementNo = response.json().get('data').get('saleAgreementNo')
|
|
|
+ userName = response.json().get('data').get('userName')
|
|
|
+ branchOfficeName= response.json().get('data').get('branchOfficeName')
|
|
|
+
|
|
|
+
|
|
|
+ #-----------------------------------------------------------------------------------------------
|
|
|
+ productId = self.accidentalDrivingVo.get('id')
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/manageProducts/getProductInfoById"
|
|
|
+ data = {
|
|
|
+ "productId": productId,
|
|
|
+ "managerId": managerId,
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "comCode": self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=headerss, data=data)
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/carOrderInfo/getIndividualVo"
|
|
|
+ data = {
|
|
|
+ "thisId": self.orderId
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=headerss, data=data)
|
|
|
+
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/manageProducts/fromCarModelCheck"
|
|
|
+ headers = {
|
|
|
+ "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/113.0.0.0 Safari/537.36",
|
|
|
+ "bid": self.bid,
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ }
|
|
|
+ data = {
|
|
|
+ "productId": productId,
|
|
|
+ "carUserNatureCode": "8A",
|
|
|
+ "passengersNumber": self.car_info.get('seat'),
|
|
|
+ "carKindCode": "A0"
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=headers, data=json.dumps(data))
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/manageProducts/getUnderwritingById"
|
|
|
+ data = {
|
|
|
+ "productId": productId,
|
|
|
+ "managerId": managerId,
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "systemSource": "fromCar",
|
|
|
+ "comCode": self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+
|
|
|
+ next_data=response.json().get('data')
|
|
|
+
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/order/underwritingPre"
|
|
|
+ next_data['carOrderId']=self.orderId
|
|
|
+ next_data['systemSource'] ='fromCar'
|
|
|
+ next_data['comCode'] = self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ data=json.dumps(next_data)
|
|
|
+ headers = {
|
|
|
+ "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/113.0.0.0 Safari/537.36",
|
|
|
+ "bid": self.bid,
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+ preId=response.json().get('data').get('preId')
|
|
|
+
|
|
|
+
|
|
|
+ #-----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/salesFCBelongInfo"
|
|
|
+ data = {
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "userLoginCode": self.gs_info.get('userCode')
|
|
|
+ }
|
|
|
+ headers = {
|
|
|
+ "Content-Type": "application/json;charset=UTF-8",
|
|
|
+ "OauthToken": self.token,
|
|
|
+ "Sec-Fetch-Site": "same-site",
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
|
|
|
+ }
|
|
|
+ data = json.dumps(data)
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+ salesman=response.json().get('data').get('salesman')
|
|
|
+ saleAgreementNo=response.json().get('data').get('saleAgreementNo')
|
|
|
+ businessNatureName=response.json().get('data').get('businessNatureName')
|
|
|
+ channelType=response.json().get('data').get('channelType')
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/manageProducts/FindAgentRate"
|
|
|
+ data = {
|
|
|
+ "productId": productId,
|
|
|
+ "managerId": managerId,
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "salesman": salesman
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/carOrderInfo/getIndividualVo"
|
|
|
+ data = {
|
|
|
+ "thisId": self.orderId
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+ serial="".join(re.findall(r'"insuranceOrderNo":"(.*?)"',response.text,re.S))
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/manageProducts/getUnderwritingById"
|
|
|
+ data = {
|
|
|
+ "productId": productId,
|
|
|
+ "managerId": managerId,
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "preId": preId,
|
|
|
+ "isPreUnderwriting": "1",
|
|
|
+ "systemSource": "fromCar",
|
|
|
+ "comCode":self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+
|
|
|
+ second_data=response.json().get('data')
|
|
|
+
|
|
|
+
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ for modular in second_data.get('modularList'):
|
|
|
+ if productId == 'fd2dc8abe5f94eacbc8efd3bf62a8581' or productId == '39f47efbd6004899b4fa7c80bfdba801' \
|
|
|
+ or productId == '71d3c2271fe5404d82c78fb07d116cf0' or productId == '77bcfb9bff014a93bfca0ed792c30258' :
|
|
|
+ if modular.get('sortNo')==0:
|
|
|
+ new_ncispUnderwritingInfoList=[]
|
|
|
+ ncispUnderwritingInfoList=modular.get('ncispUnderwritingInfoList')
|
|
|
+ for i in ncispUnderwritingInfoList:
|
|
|
+ if i.get('backEndTranslationNameYl')=='customerName':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldType']='-1'
|
|
|
+ i['mustFill']='2'
|
|
|
+ i['display']='block'
|
|
|
+ i['fieldValue']=self.encrypt.call('get_RSAencrypt', self.tb_uname)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.tb_uname)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='mobile':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldType'] = '-1'
|
|
|
+ i['mustFill'] = '2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.tb_phone_number)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.tb_phone_number)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='identifyType':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['readonly'] = '1'
|
|
|
+ i['fieldValue'] = 'idCard'
|
|
|
+ i['fieldValueName'] = '居民身份证'
|
|
|
+ i['mustFill'] = '2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='identifyNumber':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldType'] = '-1'
|
|
|
+ i['mustFill'] = '2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.tb_identifyNumber)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.tb_identifyNumber)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='age':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='sex':
|
|
|
+ if i['type'] == '1':
|
|
|
+ if i.get('fieldValueName') == '2':
|
|
|
+ i['fieldValueName'] = '女'
|
|
|
+ else:
|
|
|
+ i['fieldValueName'] = '男'
|
|
|
+ i['fieldValue'] = '1'
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='identifyEffectiveStartDate':
|
|
|
+ if i['type'] == '1':
|
|
|
+ maxDate=str(datetime.date.today())
|
|
|
+ i['fieldType'] = '-1'
|
|
|
+ i['mustFill'] = '0'
|
|
|
+ i['display'] = 'block'
|
|
|
+ i['minDate'] = '1900-01-01'
|
|
|
+ i['maxDate'] = maxDate
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='identifyEffectiveTerm':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldType'] = '-1'
|
|
|
+ i['fieldValue'] = '100'
|
|
|
+ i['mustFill'] = '0'
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='citizenship':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='provinceCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['readonly'] = '1'
|
|
|
+ i['fieldDescribe'] ='省市地区'
|
|
|
+ i['fieldValue'] =self.get_ProvinceCode(self.tb_address)[-1]
|
|
|
+ i['fieldValueName'] =self.get_cityname(self.tb_address)[-3].replace('省','')
|
|
|
+ i['areaCodeList']=[self.get_ProvinceCode(self.tb_address)[-1],self.get_ProvinceCode(self.tb_address)[-2],self.get_ProvinceCode(self.tb_address)[0]]
|
|
|
+ i['remarks'] =self.get_cityname(self.tb_address)[-3].replace('省','')
|
|
|
+ i['display'] ='block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='cityCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['readonly'] = '1'
|
|
|
+ i['fieldValue'] =self.get_ProvinceCode(self.tb_address)[-2]
|
|
|
+ i['fieldValueName'] =self.get_cityname(self.tb_address)[-2]
|
|
|
+ i['remarks'] =self.get_cityname(self.tb_address)[-2]
|
|
|
+ i['display'] ='none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='districtCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['readonly'] = '1'
|
|
|
+ i['fieldValue'] =self.get_ProvinceCode(self.tb_address)[0]
|
|
|
+ i['fieldValueName'] =self.get_cityname(self.tb_address)[-1]
|
|
|
+ i['remarks'] =self.get_cityname(self.tb_address)[-1]
|
|
|
+ i['display'] ='none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl')=='email':
|
|
|
+ if i['type'] == None:
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ modular['selected']=True
|
|
|
+ modular['ncispUnderwritingInfoList']=new_ncispUnderwritingInfoList
|
|
|
+
|
|
|
+ elif modular.get('sortNo')==100:
|
|
|
+ new_ncispUnderwritingInfoList = []
|
|
|
+ ncispUnderwritingInfoList = modular.get('ncispUnderwritingInfoList')
|
|
|
+ for i in ncispUnderwritingInfoList:
|
|
|
+ if i.get('backEndTranslationNameYl') == 'relationToApplicantCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldValue'] = '1'
|
|
|
+ i['fieldValueName'] = '本人'
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'customerName':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.bb_uname)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.bb_uname)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'mobile':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.bb_phone_number)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.bb_phone_number)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'identifyType':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ i['fieldValueName'] = '居民身份证'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'identifyNumber':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.bb_identifyNumber)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.bb_identifyNumber)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'sex':
|
|
|
+ if i['type'] == '1':
|
|
|
+ if i.get('fieldValueName') == '2':
|
|
|
+ i['fieldValueName'] = '女'
|
|
|
+ else:
|
|
|
+ i['fieldValueName'] = '男'
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'citizenship':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'age':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'identifyEffectiveStartDate':
|
|
|
+ if i['type'] == '1':
|
|
|
+ maxDate = str(datetime.date.today())
|
|
|
+ i['minDate'] = '1900-01-01'
|
|
|
+ i['maxDate'] = maxDate
|
|
|
+ i['display'] = 'none'
|
|
|
+ i['mustFill'] = '0'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'identifyEffectiveTerm':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['display'] = 'none'
|
|
|
+ i['mustFill'] = '0'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'provinceCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldValue'] = self.get_ProvinceCode(self.bb_address)[-1]
|
|
|
+ i['fieldValueName'] = self.get_cityname(self.bb_address)[-3].replace('省','')
|
|
|
+ i["fieldDescribe"] ="省市地区"
|
|
|
+ i['remarks'] = self.get_cityname(self.bb_address)[-3].replace('省','')
|
|
|
+ i['areaCodeList'] = [self.get_ProvinceCode(self.bb_address)[-1], self.get_ProvinceCode(self.bb_address)[-2], self.get_ProvinceCode(self.bb_address)[-3]]
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'cityCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldValue'] = self.get_ProvinceCode(self.bb_address)[-2]
|
|
|
+ i['fieldValueName'] = self.get_cityname(self.bb_address)[-2]
|
|
|
+ i['remarks'] = self.get_cityname(self.bb_address)[-2]
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'districtCode':
|
|
|
+ if i['type'] == '1':
|
|
|
+ i['fieldValue'] = self.get_ProvinceCode(self.bb_address)[0]
|
|
|
+ i['fieldValueName'] = self.get_cityname(self.bb_address)[-1]
|
|
|
+ i['remarks'] = self.get_cityname(self.bb_address)[-1]
|
|
|
+ i['display'] = 'none'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ modular['selected'] = True
|
|
|
+ modular['ncispUnderwritingInfoList'] = new_ncispUnderwritingInfoList
|
|
|
+
|
|
|
+ elif modular.get('sortNo')==200:
|
|
|
+ new_ncispUnderwritingInfoList = []
|
|
|
+ ncispUnderwritingInfoList = modular.get('ncispUnderwritingInfoList')
|
|
|
+ for i in ncispUnderwritingInfoList:
|
|
|
+ if i.get('backEndTranslationNameYl') == 'licensePlateNo':
|
|
|
+ if i['type'] == None:
|
|
|
+ i["fieldType"] ="-1"
|
|
|
+ # i['fieldValue'] = '-1'
|
|
|
+ i['mustFill'] = '2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.licenseNo)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.licenseNo)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'engineNumber':
|
|
|
+ if i['type'] == None:
|
|
|
+ i['fieldType'] = '-1'
|
|
|
+ i['mustFill'] = '2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.engineNo)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.engineNo)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'frameNo':
|
|
|
+ if i['type'] == None:
|
|
|
+ i['fieldType'] = '-1'
|
|
|
+ i['mustFill'] = '2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ i['fieldValue'] = self.encrypt.call('get_RSAencrypt', self.vin)
|
|
|
+ i['fieldValueName'] = self.encrypt.call('get_RSAencrypt', self.vin)
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'passengersNumber':
|
|
|
+ if i['type'] == None:
|
|
|
+ i['readonly'] = '1'
|
|
|
+ i['fieldValue'] =self.car_info.get('seat')
|
|
|
+ i['fieldValueName']=self.car_info.get('seat')+'座'
|
|
|
+ i['mustFill']='2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ elif i.get('backEndTranslationNameYl') == 'carUserNatureCode':
|
|
|
+ if i['type'] == None:
|
|
|
+ i['readonly'] = '1'
|
|
|
+ i['fieldValue'] ='8A'
|
|
|
+ i['fieldValueName']='家庭自用'
|
|
|
+ i['mustFill']='2'
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ modular['selected'] = True
|
|
|
+ modular['ncispUnderwritingInfoList'] = new_ncispUnderwritingInfoList
|
|
|
+
|
|
|
+ elif modular.get('sortNo')==9999:
|
|
|
+ new_ncispUnderwritingInfoList = []
|
|
|
+ ncispUnderwritingInfoList = modular.get('ncispUnderwritingInfoList')
|
|
|
+ for i in ncispUnderwritingInfoList:
|
|
|
+ if i.get('backEndTranslationNameYl') == 'mark1':
|
|
|
+ if i['type'] == None:
|
|
|
+ i['display'] = 'block'
|
|
|
+ new_ncispUnderwritingInfoList.append(i)
|
|
|
+ modular['selected'] = True
|
|
|
+ modular['ncispUnderwritingInfoList'] = new_ncispUnderwritingInfoList
|
|
|
+
|
|
|
+ if productId == 'fd2dc8abe5f94eacbc8efd3bf62a8581' or productId == '39f47efbd6004899b4fa7c80bfdba801' \
|
|
|
+ or productId == '71d3c2271fe5404d82c78fb07d116cf0' or productId == '77bcfb9bff014a93bfca0ed792c30258':
|
|
|
+ second_data['salesmanCode']=self.gs_info.get('userCode')
|
|
|
+ second_data['channelType'] = channelType
|
|
|
+ second_data['lockType'] = '0'
|
|
|
+ second_data['recommendGarageFlag'] = '0'
|
|
|
+ second_data['remarks'] =self.tb_phone_number
|
|
|
+ second_data['selectGroupId']=None
|
|
|
+ second_data['fromCarSystemSource'] = None
|
|
|
+ second_data['orderSource'] = '0'
|
|
|
+ second_data['policyHolderTypeOption']=None
|
|
|
+ second_data['policyHolderType']='1'
|
|
|
+ second_data['insuredPersonType']='1'
|
|
|
+ second_data['insuredPersonTypeOption']=None
|
|
|
+ second_data['saleAgreementNo'] = saleAgreementNo
|
|
|
+ second_data['businessNatureName'] = businessNatureName
|
|
|
+ second_data['salesman'] =salesman
|
|
|
+ second_data['comCode'] = self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ second_data['systemSource'] = "fromCar"
|
|
|
+ second_data['saleAgreementName'] =self.gs_info.get('userAgentName')
|
|
|
+ second_data['businessOfficeName'] =branchOfficeName
|
|
|
+ second_data['makeCom'] =self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ second_data['policeConfirmedFlag'] ="0"
|
|
|
+ second_data['startDate'] =self.get_time()[0]
|
|
|
+ second_data['period']='1y'
|
|
|
+ second_data['recordClerkCode']=self.gs_info.get('userCode')
|
|
|
+ second_data['agreeCusFlag']="0"
|
|
|
+ second_data['endDate'] = self.get_time()[1]
|
|
|
+ second_data["docSalePracticeNo"] = None
|
|
|
+ second_data["docSalesName"] = None
|
|
|
+ second_data["docSalesPhone"] = None
|
|
|
+ second_data["recommendGarageName"] = None
|
|
|
+ second_data["recommendGarageCode"] = None
|
|
|
+ second_data['businessNatureCode']=self.businessNatureCode
|
|
|
+ second_data['prefillCode'] = self.prefillCode
|
|
|
+ second_data['serial']=serial
|
|
|
+ second_data['insuranceOrderNo']=serial
|
|
|
+ second_data['handlerCode']= self.gs_info.get('handlerCode')
|
|
|
+ headers = {
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
|
+ "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/113.0.0.0 Safari/537.36",
|
|
|
+ }
|
|
|
+ url = 'https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/order/underwritingVariablePremiumVariablePremium'
|
|
|
+ response = requests.post(url, headers=headers, data=json.dumps(second_data))
|
|
|
+ self.fcx_price=response.json().get('data')
|
|
|
+ if response.json().get('status')=='SUCCESS':
|
|
|
+ second_data['fromCarSystemSource']='ESHOP'
|
|
|
+ second_data['premium']=self.fcx_price
|
|
|
+ second_data['collectionSourcesCode']=''
|
|
|
+ second_data['collectionSourcesName'] = ''
|
|
|
+
|
|
|
+ url='https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/order/underwriting'
|
|
|
+ headers = {
|
|
|
+ "Accept": "application/json, text/plain, */*",
|
|
|
+ "Content-Type": "application/json;charset=UTF-8",
|
|
|
+ "OauthToken": self.token,
|
|
|
+ "Origin": "https://hub.chinalife-p.com.cn",
|
|
|
+ "Referer": "https://hub.chinalife-p.com.cn/",
|
|
|
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
|
|
|
+ "type": "0"
|
|
|
+ }
|
|
|
+ data = json.dumps(second_data)
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+ if response.json().get('status')=='SUCCESS':
|
|
|
+ fxc_orderId = response.json().get('data')
|
|
|
+ # -----------------------------------------------------------------------------------------------
|
|
|
+ url = "https://messh.chinalife-p.com.cn/ncisp/gatewayncisp/ncisp/ncisp/order/getProposalByInsuranceNumber"
|
|
|
+ data = {
|
|
|
+ "orderId": fxc_orderId
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=data).json()
|
|
|
+ #非车险参数
|
|
|
+ mesOrderNcispList={}
|
|
|
+ mesOrderNcispList['ncispPlanName']=response.get('data').get('data').get('planName')
|
|
|
+ mesOrderNcispList['ncispPlanCode'] = response.get('data').get('data').get('planCode')
|
|
|
+ mesOrderNcispList['ncispProductName'] = response.get('data').get('data').get('productName')
|
|
|
+ mesOrderNcispList['ncispProductCode'] = response.get('data').get('data').get('productCode')
|
|
|
+ mesOrderNcispList['ncispAmount'] = response.get('data').get('data').get('sumInsured')
|
|
|
+ mesOrderNcispList['ncispPay'] = response.get('data').get('data').get('taxedPremium')
|
|
|
+ mesOrderNcispList['ncispStartDate'] = response.get('data').get('data').get('policyStartDate')
|
|
|
+ mesOrderNcispList['ncispEndDate'] = response.get('data').get('data').get('policyEndDate')
|
|
|
+ mesOrderNcispList['ncispProposalNo'] = response.get('data').get('data').get('proposalNo')
|
|
|
+ mesOrderNcispList['orderNo'] = self.orderId
|
|
|
+ mesOrderNcispList['businessNatureCode'] = self.businessNatureCode
|
|
|
+ mesOrderNcispList['businessNatureName'] = response.get('data').get('data').get('businessNatureName')
|
|
|
+ mesOrderNcispList['saleaman'] = self.gs_info.get('userCode')
|
|
|
+ mesOrderNcispList['saleamanName'] = response.get('data').get('data').get('saleamanName')
|
|
|
+ mesOrderNcispList['plcRelClauseLiabilityVOList'] = response.get('data').get('data').get('plcRelClauseLiabilityVOList')
|
|
|
+ mesOrderNcispList['size'] ='1'
|
|
|
+ mesOrderNcispList['isCommerce'] = response.get('data').get('data').get('isCommerce')
|
|
|
+ mesOrderNcispList['quotaProjectNo'] = response.get('data').get('data').get('quotaProjectNo')
|
|
|
+ mesOrderNcispList['identifyType'] = response.get('data').get('data').get('identifyType')
|
|
|
+ mesOrderNcispList['identifyName'] = response.get('data').get('data').get('identifyName')
|
|
|
+ mesOrderNcispList['identifyNumber'] = response.get('data').get('data').get('identifyNumber')
|
|
|
+ mesOrderNcispList['customerName'] = response.get('data').get('data').get('customerName')
|
|
|
+ mesOrderNcispList['insuredIdentifyType'] = response.get('data').get('data').get('insuredIdentifyType')
|
|
|
+ mesOrderNcispList['insuredIdentifyName'] = response.get('data').get('data').get('insuredIdentifyName')
|
|
|
+ mesOrderNcispList['insuredIdentifyNumber'] = response.get('data').get('data').get('insuredIdentifyNumber')
|
|
|
+ mesOrderNcispList['insuredCustomerName'] = response.get('data').get('data').get('insuredCustomerName')
|
|
|
+ mesOrderNcispList['vehicleName'] = response.get('data').get('data').get('vehicleName')
|
|
|
+ mesOrderNcispList['toncount'] = response.get('data').get('data').get('toncount')
|
|
|
+ mesOrderNcispList['caraddType'] = response.get('data').get('data').get('caraddType')
|
|
|
+ mesOrderNcispList['productLine'] = response.get('data').get('data').get('productLine')
|
|
|
+ mesOrderNcispList['ncispPublicinsurantStr'] =''
|
|
|
+ mesOrderNcispList['isDriveInsurance'] = response.get('data').get('data').get('isDriveInsurance')
|
|
|
+ mesOrderNcispList['productId'] = response.get('data').get('data').get('productId')
|
|
|
+ mesOrderNcispList['combinationNo'] = response.get('data').get('data').get('combinationNo')
|
|
|
+
|
|
|
+ self.mesOrderNcispList.append(mesOrderNcispList)
|
|
|
+ else:
|
|
|
+ self.fcxres_message=response.json().get('msg')
|
|
|
+ self.mesOrderNcispList=[]
|
|
|
+
|
|
|
+
|
|
|
+ def calculation(self):
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesCarInfo/getCarConfirmInfoForFrontByOrderId"
|
|
|
+ data = {
|
|
|
+ "orderId": self.orderId
|
|
|
+ }
|
|
|
+ self.headers['Content-Type']='application/json;charset=UTF-8'
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ n_data=response.json().get('data')
|
|
|
+ if n_data.get('vehicleQuality'):
|
|
|
+ vehicleQuality = int(n_data.get('vehicleQuality'))
|
|
|
+ else:
|
|
|
+ vehicleQuality = ''
|
|
|
+ if n_data.get('localpurchaseprice'):
|
|
|
+ localpurchaseprice = int(n_data.get('localpurchaseprice'))
|
|
|
+ else:
|
|
|
+ localpurchaseprice = ''
|
|
|
+ if n_data.get('enginePower'):
|
|
|
+ enginePower = int(n_data.get('enginePower'))
|
|
|
+ else:
|
|
|
+ enginePower = ''
|
|
|
+ n_data['tranNo']=self.tranNo
|
|
|
+ n_data['oriSysOperatorKey'] = self.zhanghao_info.get('data').get('oriSysOperatorKey')
|
|
|
+ n_data['oriSysOperator'] =self.zhanghao_info.get('data').get('oriSysOperator')
|
|
|
+ n_data['frameNo'] = self.vin
|
|
|
+ n_data['localpurchaseprice'] = localpurchaseprice
|
|
|
+ n_data['licenseColorCode'] = '01' if len(self.licenseNo)==7 else '06'
|
|
|
+ n_data['vehicleQuality'] = vehicleQuality
|
|
|
+ n_data['licenseColorName'] = '蓝' if len(self.licenseNo)==7 else '渐变绿'
|
|
|
+ n_data['userCode'] = self.gs_info.get('userCode')
|
|
|
+ n_data['licensePlateNo']=self.licenseNo
|
|
|
+ n_data['energyTypesCode']=self.car_info.get('energyTypesCode')
|
|
|
+ n_data['engineNumber'] = self.engineNo
|
|
|
+ n_data['enginePower'] = enginePower
|
|
|
+ n_data['energyTypesName'] = self.car_info.get('modelEnergyTypeName')
|
|
|
+ n_data['vehicleTonnage'] = self.car_info.get('vehicleTonnage')
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/updateCarInfo"
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(n_data))
|
|
|
+ # -------------------------------------------------------------------------------------------------------
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/getPlatCarInfo"
|
|
|
+ data = {
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "structureId": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "userCode": self.gs_info.get('userCode'),
|
|
|
+ "systemSource": "ESHOP",
|
|
|
+ "oriSysOperator":self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ "mesCarInfo": None,
|
|
|
+ "desensitizationJson": "",
|
|
|
+ "businessType": "main"
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ if response.json().get('data'):
|
|
|
+ n_data['vehiclecode']=response.json().get('data')[0].get('vehiclecode')
|
|
|
+ n_data['localpurchaseprice'] = response.json().get('data')[0].get('localpurchaseprice')
|
|
|
+ n_data['platModelName'] = response.json().get('data')[0].get('platModelName')
|
|
|
+ n_data['vehicleRemark'] = response.json().get('data')[0].get('vehicleRemark')
|
|
|
+ n_data['vehicleId'] = response.json().get('data')[0].get('vehicleId')
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/updateCarInfo"
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(n_data))
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/getPlatCarInfo"
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+
|
|
|
+ # -------------------------------------------------------------------------------------------------------
|
|
|
+ url='https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/getInsuranceInformation'
|
|
|
+ data={
|
|
|
+ "thisId": self.orderId,
|
|
|
+ "doCalculateFlag": "1"
|
|
|
+ }
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ self.desensitizationJson=eval(response.json().get('data').get('desensitizationJson').replace('null','None'))
|
|
|
+ self.desensitizationJson['taxPayerAddress']=self.desensitizationJson['address']
|
|
|
+ self.desensitizationJson['taxPayerAddressChange'] = "0"
|
|
|
+ self.desensitizationJson['taxPayerIdentifyNumber'] = self.desensitizationJson['carOwnerCardNo']
|
|
|
+ self.desensitizationJson['taxPayerIdentifyNumberChange'] = "0"
|
|
|
+ self.desensitizationJson=str(self.desensitizationJson).replace('None','null')
|
|
|
+
|
|
|
+ #-------------------------------------------------------------------------------------------------------
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/calculationInitialization"
|
|
|
+ data = {
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "structureId": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "orderId": self.orderId,
|
|
|
+ "userCode":self.gs_info.get('userCode'),
|
|
|
+ "isDatail": "",
|
|
|
+ "reformFlag": "1",
|
|
|
+ "systemSource": "ESHOP",
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ "bindId": "",
|
|
|
+ "psnType": ""
|
|
|
+ }
|
|
|
+ data = json.dumps(data)
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+
|
|
|
+ orderVo_list=response.json().get('data').get('orderVo')
|
|
|
+
|
|
|
+ orderVo_list['companyAgentrateFlag'] = '1'
|
|
|
+ orderVo_list['ktaxComName']='国家税务总局太原市小店区税务局'
|
|
|
+ orderVo_list['taxPayerTypeCode'] = '1'
|
|
|
+ orderVo_list['districtName'] = ''
|
|
|
+ orderVo_list['taxAuthorityName'] = '国家税务总局太原市小店区税务局'
|
|
|
+ orderVo_list['taxPayerAddress'] = self.encrypt.call('get_RSAencrypt',self.tb_address)
|
|
|
+ orderVo_list['calculateMode'] = 'C1' if len(self.licenseNo)==7 else 'C2'
|
|
|
+ orderVo_list['policyType'] ='1'
|
|
|
+ orderVo_list['taxPayerIdentifyNumber'] = self.encrypt.call('get_RSAencrypt',self.tb_identifyNumber)
|
|
|
+ orderVo_list['taxAuthorityCode'] = '11401050000'
|
|
|
+ orderVo_list['ktaxComCode']='11401050000'
|
|
|
+ orderVo_list['taxPayerTypeName'] = '投保人'
|
|
|
+ orderVo_list['calculateModeValue'] = '使用一年以上车辆'
|
|
|
+
|
|
|
+
|
|
|
+ orderVo_list['syStartDate'] = self.chesun_startDate
|
|
|
+ orderVo_list['syEndDate'] = self.get_syendday(self.chesun_startDate)
|
|
|
+ orderVo_list['jqStartDate'] = self.jiaoqiang_startDate
|
|
|
+ orderVo_list['jqEndDate'] = self.get_jqendday(self.jiaoqiang_startDate)
|
|
|
+ # orderVo_list['multiplexSyEnd']=None
|
|
|
+
|
|
|
+
|
|
|
+ if self.jiaoqiang_chooseFlag == 'on' and self.shangye_chooseFlag=='on':
|
|
|
+ orderVo_list['orderType']='0'
|
|
|
+ elif self.jiaoqiang_chooseFlag == 'on' and self.shangye_chooseFlag!='on':
|
|
|
+ orderVo_list['orderType'] = '2'
|
|
|
+ elif self.jiaoqiang_chooseFlag != 'on' and self.shangye_chooseFlag=='on':
|
|
|
+ orderVo_list['orderType'] = '1'
|
|
|
+
|
|
|
+
|
|
|
+ syShow=response.json().get('data').get('syShow')
|
|
|
+ clauseInfoList=response.json().get('data').get('clauseInfoList')
|
|
|
+
|
|
|
+ #险种参数
|
|
|
+ for i in clauseInfoList:
|
|
|
+ if i.get('clauseName')!='特约服务条款':
|
|
|
+ if i.get('clauseName')=='机动车损失保险' or i.get('clauseName')=='新能源汽车损失保险':
|
|
|
+ if self.chesun_chooseFlag=='on':
|
|
|
+ i['effect'] = "Y"
|
|
|
+ for ii in i.get('clauseInfoVoList'):
|
|
|
+ if ii.get('clauseName')=='附加车身划痕损失险':
|
|
|
+ if self.huahen_chooseFlag == 'on':
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+ ii['oriCurAmount'] = self.huahen_amount
|
|
|
+ elif ii.get('clauseName')=='附加绝对免赔率特约险(机动车损失保险)' or ii.get('clauseName')=='附加绝对免赔率特约条款(新能源汽车损失保险)':
|
|
|
+ if self.fujiachesun_chooseFlag=='on':
|
|
|
+ ii['deductibleRate'] = self.fujiachesun_amount
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+ else:
|
|
|
+ i['effect'] = "N"
|
|
|
+
|
|
|
+ elif i.get('clauseName')=='机动车第三者责任保险' or i.get('clauseName')=='新能源汽车第三者责任保险':
|
|
|
+ if self.sanzhe_chooseFlag=='on':
|
|
|
+ i['effect'] = "Y"
|
|
|
+ i['adjustment'] = "levelkeep"
|
|
|
+ i['oriCurAmount']=str(self.sanzhe_amount)
|
|
|
+ for ii in i.get('clauseInfoVoList'):
|
|
|
+ if ii.get('clauseName')=='附加绝对免赔率特约险(机动车第三者责任保险)' or ii.get('clauseName')=='附加绝对免赔率特约条款(新能源汽车第三者责任保险)':
|
|
|
+ if self.fujiasanzhe_chooseFlag=='on':
|
|
|
+ ii['deductibleRate']=self.fujiasanzhe_amount
|
|
|
+ ii['effect'] ='Y'
|
|
|
+
|
|
|
+
|
|
|
+ elif ii.get('clauseName') == '附加法定节假日限额翻倍险':
|
|
|
+ if self.fujia_jiejiari_chooseFlag == 'on':
|
|
|
+ ii['oriCurAmount'] = self.sanzhe_amount
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+
|
|
|
+ elif ii.get('clauseName') == '附加医保外医疗费用责任险(机动车第三者责任保险)' or ii.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车第三者责任保险)':
|
|
|
+ if self.ybw_sanzhe_chooseFlag == 'on':
|
|
|
+ ii['oriCurAmount'] = str(int(self.ybw_sanzhe_amount))
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+
|
|
|
+ elif i.get('clauseName')=='机动车车上人员责任保险(驾驶人)' or i.get('clauseName')=='新能源汽车车上人员责任保险(驾驶人)':
|
|
|
+ if self.sjzeren_chooseFlag=='on':
|
|
|
+ i['effect'] = "Y"
|
|
|
+ i['oriCurAmount']=str(self.sjzeren_amount)
|
|
|
+ for ii in i.get('clauseInfoVoList'):
|
|
|
+ if ii.get('clauseName')=='附加绝对免赔率特约险(机动车车上人员责任保险-驾驶人)' or ii.get('clauseName')=='附加绝对免赔率特约条款(新能源汽车车上人员责任保险-驾驶人)':
|
|
|
+ if self.fujiasiji_chooseFlag=='on':
|
|
|
+ ii['deductibleRate']=self.fujiasiji_amount
|
|
|
+ ii['effect'] ='Y'
|
|
|
+
|
|
|
+
|
|
|
+ elif ii.get('clauseName') == '附加医保外医疗费用责任险(机动车车上人员责任保险-驾驶人)' or ii.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车车上人员责任保险-驾驶人)':
|
|
|
+ if self.ybw_siji_chooseFlag == 'on':
|
|
|
+ self.ybw_siji_amount=str(int(self.ybw_siji_amount))
|
|
|
+ ii['oriCurAmount'] = self.ybw_siji_amount
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+
|
|
|
+
|
|
|
+ elif i.get('clauseName')=='机动车车上人员责任保险(乘客)' or i.get('clauseName')=='新能源汽车车上人员责任保险(乘客)':
|
|
|
+ if self.ckzeren_chooseFlag=='on':
|
|
|
+ i['effect'] = "Y"
|
|
|
+ i['oriCurAmount']=str(int(self.ckzeren_amount)*(int(self.car_info.get('seat'))-1))
|
|
|
+ i['everyoneAmount']=self.ckzeren_amount
|
|
|
+ for ii in i.get('clauseInfoVoList'):
|
|
|
+ if ii.get('clauseName')=='附加绝对免赔率特约险(机动车车上人员责任保险-乘客)' or ii.get('clauseName')=='附加绝对免赔率特约条款(新能源汽车车上人员责任保险-乘客)':
|
|
|
+ if self.fujiachengke_chooseFlag=='on':
|
|
|
+ ii['deductibleRate']=self.fujiachengke_amount
|
|
|
+ ii['effect'] ='Y'
|
|
|
+ ii['typeFlag'] = None
|
|
|
+ ii['newControl'] = False
|
|
|
+ elif ii.get('clauseName') == '附加医保外医疗费用责任险(机动车车上人员责任保险-乘客)' or ii.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车车上人员责任保险-乘客)':
|
|
|
+ if self.ybw_ck_chooseFlag == 'on':
|
|
|
+ self.ybw_ck_amount=str(int(self.ybw_ck_amount))
|
|
|
+ ii['everyoneAmount']=self.ybw_ck_amount
|
|
|
+ ii['oriCurAmount'] = str((int(self.car_info.get('seat'))-1)*int(self.ybw_ck_amount))
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+
|
|
|
+ else:
|
|
|
+ if self.chesun_chooseFlag=='on':
|
|
|
+ i['effect'] = 'Y'
|
|
|
+ for ii in i.get('clauseInfoVoList'):
|
|
|
+ if ii.get('clauseName')=='附加机动车道路救援服务特约条款':
|
|
|
+ ii['compensationDays']='12'
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+ elif ii.get('clauseName')=='附加新能源汽车道路救援服务特约条款':
|
|
|
+ ii['compensationDays'] = '12'
|
|
|
+ ii['effect'] = 'Y'
|
|
|
+ else:
|
|
|
+ ii['effect'] = 'N'
|
|
|
+
|
|
|
+ else:
|
|
|
+ i['effect'] = 'N'
|
|
|
+ for ii in i.get('clauseInfoVoList'):
|
|
|
+ # if ii.get('clauseName')=='附加机动车道路救援服务特约条款':
|
|
|
+ ii['effect'] = 'N'
|
|
|
+ #报价请求
|
|
|
+ url='https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doCalculate'
|
|
|
+
|
|
|
+ data = {
|
|
|
+ "ncispSetList":None,
|
|
|
+ "desensitizationJson": self.desensitizationJson,
|
|
|
+ "businessCalcFeeVo": None,
|
|
|
+ "isCalcFee": None,
|
|
|
+ "errorCode": None,
|
|
|
+ "mesOrderNcispList": self.mesOrderNcispList,
|
|
|
+ "lastOrderVo": None,
|
|
|
+ 'orderVo': orderVo_list,
|
|
|
+ "clauseInfoList": clauseInfoList,
|
|
|
+ "syShow": syShow,
|
|
|
+ "ifSameSalesMan": None,
|
|
|
+ "clauseInfoListXuBao": None,
|
|
|
+ "telemarketingFlagForAgree": None,
|
|
|
+ "riskInfoParam": None,
|
|
|
+ "calculateMsg": None,
|
|
|
+ "ncdVo": None,
|
|
|
+ "anXiningShowFlag": None,
|
|
|
+ "ncispsBeforeList": None,
|
|
|
+ "telemarketingFlag": None,
|
|
|
+ "crossCalcFeeVo": None,
|
|
|
+ "businessNatureCode": self.businessNatureCode,
|
|
|
+ "businessOffice": self.zhanghao_info.get('data').get('userDepartment'),
|
|
|
+ "structureId": self.zhanghao_info.get('data').get('provincialCom'),
|
|
|
+ "userCode": self.gs_info.get('userCode'),
|
|
|
+ "reformFlag": "1",
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey":self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ "solutionType": "1"
|
|
|
+ }
|
|
|
+
|
|
|
+ self.jiaoqiang_startDate=data.get('orderVo').get('jqStartDate')
|
|
|
+ self.chesun_startDate = data.get('orderVo').get('syStartDate')
|
|
|
+ self.data=data
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return response
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def repeat(self, response):
|
|
|
+ if response.json().get('status')=="200":
|
|
|
+ self.tranNo = response.json().get('data').get('orderVo').get('transactionNo')
|
|
|
+ self.orderId= response.json().get('data').get('orderVo').get('orderNo')
|
|
|
+
|
|
|
+ if '商业险' in response.text and '重复投保' in response.text and '保险期间:' in response.text:
|
|
|
+ self.sy_repeatinfo = response.json().get('msg')
|
|
|
+ if '<br' in response.text:
|
|
|
+ self.sy_repeatinfo = self.sy_repeatinfo.split('<br')[0]
|
|
|
+
|
|
|
+ sy_startdate=re.findall(r'~(.*?),',response.text)
|
|
|
+ if sy_startdate:
|
|
|
+ sy_startdate=sy_startdate[0]
|
|
|
+ sy_startdate=sy_startdate[0:4]+'-'+sy_startdate[4:6]+'-'+sy_startdate[6:8]+' '+sy_startdate[8:10]+':'+sy_startdate[10:12]+':'+'00'
|
|
|
+
|
|
|
+ self.data['orderVo']['syStartDate'] =sy_startdate
|
|
|
+ self.data['orderVo']['syEndDate'] = self.get_syendday(sy_startdate)
|
|
|
+ url = 'https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doCalculate'
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(self.data))
|
|
|
+ return self.repeat(response)
|
|
|
+ elif '交强险' in response.text and '重复投保' in response.text and '终保日期' in response.text:
|
|
|
+ self.jq_repeatinfo = response.json().get('msg')
|
|
|
+ jq_startdate=re.findall(r'终保日期 (.*?);',response.text)
|
|
|
+ if jq_startdate:
|
|
|
+ jq_startdate=jq_startdate[0]
|
|
|
+ jq_startdate=jq_startdate+':00'
|
|
|
+ self.data['orderVo']['jqStartDate'] =jq_startdate
|
|
|
+ self.data['orderVo']['jqEndDate'] = self.get_syendday(jq_startdate)
|
|
|
+ url = 'https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doCalculate'
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(self.data))
|
|
|
+ return self.repeat(response)
|
|
|
+
|
|
|
+ elif '交强险' in response.text and '重复投保' in response.text and '自动更新为' in response.text:
|
|
|
+
|
|
|
+ self.jq_repeatinfo = response.json().get('data').get('doubleMsg')
|
|
|
+ jq_startdate=re.findall(r'自动更新为(.*?)~',response.text)
|
|
|
+ if jq_startdate:
|
|
|
+ jq_startdate=jq_startdate[0]
|
|
|
+ jq_startdate=jq_startdate+':00'
|
|
|
+ self.data['orderVo']['jqStartDate'] =jq_startdate
|
|
|
+ self.data['orderVo']['jqEndDate'] = self.get_syendday(jq_startdate)
|
|
|
+ url = 'https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doCalculate'
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(self.data))
|
|
|
+ return self.repeat(response)
|
|
|
+
|
|
|
+
|
|
|
+ elif response.json().get('status')!='200':
|
|
|
+ info = ''
|
|
|
+ if self.jq_repeatinfo and self.sy_repeatinfo:
|
|
|
+ info = self.jq_repeatinfo + ';' + self.sy_repeatinfo + ';'
|
|
|
+ elif self.jq_repeatinfo:
|
|
|
+ info = self.jq_repeatinfo + ';'
|
|
|
+ elif self.sy_repeatinfo:
|
|
|
+ info = self.sy_repeatinfo + ';'
|
|
|
+
|
|
|
+ return {
|
|
|
+ 'code': 400,
|
|
|
+ 'message': info+response.json().get('msg')
|
|
|
+ }
|
|
|
+
|
|
|
+ elif response.json().get('data').get('orderVo').get('taxTypeName')=='减税' and response.json().get('data').get('orderVo').get('relifReasonName')==None:
|
|
|
+ data=response.json().get('data')
|
|
|
+ data['orderVo']['ktaxComName']=data.get('orderVo').get('taxAuthorityName')
|
|
|
+ data['orderVo']['relifReason'] = 'M1'
|
|
|
+ data['orderVo']['relifReasonName'] = '具备减免税证明'
|
|
|
+ data['syShow']= self.data.get('syShow')
|
|
|
+ data['businessNatureCode']= self.businessNatureCode
|
|
|
+ data['businessOffice'] = self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ data['structureId'] = self.zhanghao_info.get('data').get('provincialCom')
|
|
|
+ data['userCode'] = self.gs_info.get('userCode')
|
|
|
+ data['reformFlag'] = '1'
|
|
|
+
|
|
|
+ data["oriSysOperator"]= self.zhanghao_info.get('data').get('oriSysOperator')
|
|
|
+ data["oriSysOperatorKey"]= self.zhanghao_info.get('data').get('oriSysOperatorKey')
|
|
|
+ data["solutionType"]= "1"
|
|
|
+ url = 'https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doCalculate'
|
|
|
+ response = requests.post(url, headers=self.headers, data=json.dumps(data))
|
|
|
+ return self.repeat(response)
|
|
|
+
|
|
|
+ else:
|
|
|
+ self.creatorder()
|
|
|
+ jq_startDate = ''
|
|
|
+ jq_endDate = ''
|
|
|
+ sy_startDate = ''
|
|
|
+ sy_endDate = ''
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ for z in self.data.get('clauseInfoList'):
|
|
|
+ if z.get('clauseName') == '机动车损失保险' or z.get('clauseName') == '新能源汽车损失保险':
|
|
|
+ self.zhejiu_price = z.get('oriCurAmount')
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ self.zhejiu_price = '0'
|
|
|
+
|
|
|
+
|
|
|
+ if self.jiaoqiang_chooseFlag == 'on' and self.shangye_chooseFlag == 'on':
|
|
|
+ jq_startDate = self.data.get('orderVo').get('jqStartDate')
|
|
|
+ jq_endDate = self.data.get('orderVo').get('jqEndDate')
|
|
|
+ sy_startDate = self.data.get('orderVo').get('syStartDate')
|
|
|
+ sy_endDate = self.data.get('orderVo').get('syEndDate')
|
|
|
+ elif self.jiaoqiang_chooseFlag == 'on' and self.shangye_chooseFlag != 'on':
|
|
|
+ jq_startDate = self.data.get('orderVo').get('jqStartDate')
|
|
|
+ jq_endDate = self.data.get('orderVo').get('jqEndDate')
|
|
|
+ sy_startDate = ''
|
|
|
+ sy_endDate = ''
|
|
|
+ elif self.jiaoqiang_chooseFlag != 'on' and self.shangye_chooseFlag == 'on':
|
|
|
+ jq_startDate = ''
|
|
|
+ jq_endDate = ''
|
|
|
+ sy_startDate = self.data.get('orderVo').get('syStartDate')
|
|
|
+ sy_endDate = self.data.get('orderVo').get('syEndDate')
|
|
|
+
|
|
|
+ msg = response.json().get('msg')
|
|
|
+ kindprice_list=response.json().get('data').get('clauseInfoList')
|
|
|
+ for xz in kindprice_list:
|
|
|
+ if xz.get('clauseName') == '机动车损失保险' or xz.get('clauseName')=='新能源汽车损失保险':
|
|
|
+ self.chesun_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加车身划痕损失险' :
|
|
|
+ self.huahen_price = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ elif xz.get('clauseName') == '机动车第三者责任保险' or xz.get('clauseName') == '新能源汽车第三者责任保险' :
|
|
|
+ self.sanzhe_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加法定节假日限额翻倍险':
|
|
|
+ self.jjr_price = fjxz.get('totalPay')
|
|
|
+ elif fjxz.get('clauseName') == '附加医保外医疗费用责任险(机动车第三者责任保险)' or fjxz.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车第三者责任保险)':
|
|
|
+ self.ybw_sanzheprice = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ elif xz.get('clauseName') == '机动车车上人员责任保险(驾驶人)' or xz.get('clauseName') == '新能源汽车车上人员责任保险(驾驶人)':
|
|
|
+ self.siji_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加医保外医疗费用责任险(机动车车上人员责任保险-驾驶人)' or fjxz.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车车上人员责任保险-驾驶人)':
|
|
|
+ self.ybw_sjprice = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ elif xz.get('clauseName') == '机动车车上人员责任保险(乘客)' or xz.get('clauseName') == '新能源汽车车上人员责任保险(乘客)':
|
|
|
+ self.chengke_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加医保外医疗费用责任险(机动车车上人员责任保险-乘客)' or fjxz.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车车上人员责任保险-乘客)' :
|
|
|
+ self.ybw_ckprice = fjxz.get('totalPay')
|
|
|
+
|
|
|
+
|
|
|
+ self.sy_price=response.json().get('data').get('orderVo').get('syPay')
|
|
|
+ if self.sy_price:
|
|
|
+ self.sy_price=float(self.sy_price)
|
|
|
+ else:
|
|
|
+ self.sy_price=0
|
|
|
+
|
|
|
+ self.jq_prine=response.json().get('data').get('orderVo').get('jqPay')
|
|
|
+ if self.jq_prine:
|
|
|
+ self.jq_prine=float(self.jq_prine)
|
|
|
+ else:
|
|
|
+ self.jq_prine=0
|
|
|
+
|
|
|
+ self.chechuan_price=response.json().get('data').get('orderVo').get('taxPay')
|
|
|
+ if self.chechuan_price:
|
|
|
+ self.chechuan_price=float(self.chechuan_price)
|
|
|
+ else:
|
|
|
+ self.chechuan_price=0
|
|
|
+
|
|
|
+ self.all_price = response.json().get('data').get('orderVo').get('realPay')
|
|
|
+ if self.all_price:
|
|
|
+ self.all_price=float(self.all_price)
|
|
|
+ else:
|
|
|
+ self.all_price=0
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ plyappno=self.orderId
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'username', self.username)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'orderId', plyappno)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'tranNo', self.tranNo)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'businessOffice',self.zhanghao_info.get('data').get('userDepartment'))
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'structureId', self.zhanghao_info.get('data').get('provincialCom'))
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'userCode', self.gs_info.get('userCode'))
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'token', self.token)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'data', response.json().get('data'))
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'syShow', self.data.get('syShow'))
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'license', self.licenseNo)
|
|
|
+
|
|
|
+
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'zhanghao_info', self.zhanghao_info)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'gs_info', self.gs_info)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'bj_res', response.text)
|
|
|
+ redis_conn.hset('edian_' + plyappno, 'carinfo',self.car_info)
|
|
|
+
|
|
|
+ # 评分
|
|
|
+ jq_mark = "".join(re.findall(r'underwritingScoreJQ":(.*?),', response.text, re.S))
|
|
|
+ sy_mark = "".join(re.findall(r'underwritingScore":(.*?),', response.text, re.S))
|
|
|
+ mark = "".join(re.findall(r'unionUnderwritingScore":(.*?),', response.text, re.S))
|
|
|
+
|
|
|
+ #非车险
|
|
|
+
|
|
|
+ fcx_list = []
|
|
|
+ if self.accidentalDrivingVo:
|
|
|
+ mesOrderNcispList = response.json().get('data').get('mesOrderNcispList')
|
|
|
+ drivingInsurances = {}
|
|
|
+ for i in mesOrderNcispList:
|
|
|
+ drivingInsurances['price'] = i.get('ncispPay')
|
|
|
+ drivingInsurances['name'] = i.get('ncispPlanName')
|
|
|
+ drivingInsurances['policy'] = i.get('ncispProposalNo')
|
|
|
+ fcx_list.append(drivingInsurances)
|
|
|
+
|
|
|
+ carInfo = {}
|
|
|
+ # 车型名称
|
|
|
+ carInfo['modelcname'] = self.car_info.get('standardName')
|
|
|
+ # 车型编码
|
|
|
+ carInfo['modelCode'] = self.car_info.get('rbCode')
|
|
|
+ # 排量
|
|
|
+ carInfo['exhaustscale'] = self.car_info.get('displacement')
|
|
|
+ # 座位数
|
|
|
+ carInfo['seatCount'] = self.car_info.get('seat')
|
|
|
+ # 价格
|
|
|
+ carInfo['purchasePrice'] = self.car_info.get('purchasePrice')
|
|
|
+ # 功率
|
|
|
+ carInfo['power'] = self.car_info.get('enginePower')
|
|
|
+ # 年款
|
|
|
+ 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": "ESHOP",
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ }
|
|
|
+ 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': {
|
|
|
+ "A": self.chesun_price if self.chesun_price else '0',
|
|
|
+ "A_amount": self.zhejiu_price,
|
|
|
+ "B": self.sanzhe_price if self.sanzhe_price else '0',
|
|
|
+ "D3": self.siji_price if self.siji_price else '0',
|
|
|
+ "D4": self.chengke_price if self.chengke_price else '0',
|
|
|
+ "L": self.huahen_price if self.huahen_price else '0',
|
|
|
+ "MJ1":self.mpv_csprice if self.mpv_csprice else '0',
|
|
|
+ "MJ2":self.mpv_szprice if self.mpv_szprice else '0',
|
|
|
+ "MJ3":self.mpv_sjprice if self.mpv_sjprice else '0',
|
|
|
+ "MJ4":self.mpv_ckprice if self.mpv_ckprice else '0',
|
|
|
+ "SY_FJ_YBW1": self.ybw_sanzheprice if self.ybw_sanzheprice else '0',
|
|
|
+ "SY_FJ_YBW2": self.ybw_ckprice if self.ybw_ckprice else '0',
|
|
|
+ "SY_FJ_YBW3": self.ybw_sjprice if self.ybw_sjprice else '0',
|
|
|
+ },
|
|
|
+ # 交强险价格
|
|
|
+ 'forceCarInsureRisk': self.jq_prine,
|
|
|
+ # 车船税
|
|
|
+ 'carInsureShiptax': self.chechuan_price,
|
|
|
+ # 商业险价格
|
|
|
+ 'busiTotalPremium': self.sy_price,
|
|
|
+ # 总价
|
|
|
+ 'carInsureMain': self.all_price,
|
|
|
+ # 订单号
|
|
|
+ 'plyappno': plyappno,
|
|
|
+ 'message':msg,
|
|
|
+
|
|
|
+ 'jq_startDate': jq_startDate if self.jiaoqiang_chooseFlag=='on' else '',
|
|
|
+ 'jq_endDate': jq_endDate if self.jiaoqiang_chooseFlag=='on' else '',
|
|
|
+ 'sy_startDate': sy_startDate if self.shangye_chooseFlag=='on' else '',
|
|
|
+ 'sy_endDate': sy_endDate if self.shangye_chooseFlag=='on' else '',
|
|
|
+ 'other':{
|
|
|
+ 'mark': mark,
|
|
|
+ 'jq_mark':jq_mark,
|
|
|
+ 'sy_mark':sy_mark,
|
|
|
+ 'discount':str(self.discountRate),
|
|
|
+ 'jq_discount': str(self.jq_discountRate),
|
|
|
+ 'sy_discount': str(self.sy_discountRate),
|
|
|
+ 'isQuoteGreenWay': '',
|
|
|
+ 'predict_info':predict_info,
|
|
|
+ },
|
|
|
+ 'jq_repeatinfo': self.jq_repeatinfo,
|
|
|
+ 'sy_repeatinfo': self.sy_repeatinfo,
|
|
|
+ 'drivingInsurances':fcx_list,
|
|
|
+ 'carInfo':carInfo
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def get_discountprice(self):
|
|
|
+ self.bj_res = json.loads(str(redis_conn.hget('edian_' + self.plyappno, 'bj_res'), 'utf8'))
|
|
|
+ self.gs_info = eval(str(redis_conn.hget('edian_' + self.plyappno, 'gs_info'), 'utf8'))
|
|
|
+ self.zhanghao_info = eval(str(redis_conn.hget('edian_' + self.plyappno, 'zhanghao_info'), 'utf8'))
|
|
|
+ self.syShow = str(redis_conn.hget('edian_' + self.plyappno, 'syShow'), 'utf8')
|
|
|
+ self.data= eval(str(redis_conn.hget('edian_' + self.plyappno, 'data'), 'utf8'))
|
|
|
+ self.car_info= eval(str(redis_conn.hget('edian_' + self.plyappno, 'carinfo'), 'utf8'))
|
|
|
+ firstdata=self.bj_res.get('data')
|
|
|
+ firstdata['syShow']=self.syShow
|
|
|
+ firstdata["calcFeeParamVo"]= {
|
|
|
+ "finalRat": "0",
|
|
|
+ "agentRate": "0",
|
|
|
+ "crossAgentRate": "",
|
|
|
+ "isFee": "0",
|
|
|
+ "inOrOut": "out",
|
|
|
+ "flag": "1",
|
|
|
+ "isChange": "0",
|
|
|
+ "feeDisLinkAgeFlagRation": "0"
|
|
|
+ }
|
|
|
+
|
|
|
+ firstdata["businessNatureCode"] =self.zhanghao_info.get('data').get('userResourceCode')
|
|
|
+ firstdata["businessOffice"] = self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ firstdata["structureId"] = self.zhanghao_info.get('data').get('provincialCom')
|
|
|
+ firstdata["userCode"] = self.zhanghao_info.get('data').get('userCode')
|
|
|
+ firstdata["oriSysOperator"] = self.zhanghao_info.get('data').get('oriSysOperator')
|
|
|
+ firstdata["oriSysOperatorKey"] = self.zhanghao_info.get('data').get('oriSysOperatorKey')
|
|
|
+
|
|
|
+ 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/doCalcFee"
|
|
|
+ data = json.dumps(firstdata)
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+
|
|
|
+ firstdata['businessCalcFeeVo']=response.json().get('data').get('businessCalcFeeVo')
|
|
|
+ firstdata['crossCalcFeeVo']=response.json().get('data').get('crossCalcFeeVo')
|
|
|
+ firstdata['calcFeeParamVo']={
|
|
|
+ "finalRat": str(self.discount),
|
|
|
+ "agentRate": response.json().get('data').get('businessCalcFeeVo').get('agentRate'),
|
|
|
+ "crossAgentRate": response.json().get('data').get('crossCalcFeeVo').get('agentRate'),
|
|
|
+ "isFee": "1",
|
|
|
+ "inOrOut": "inFinalRat",
|
|
|
+ "flag": "1",
|
|
|
+ "isChange": "0",
|
|
|
+ "feeDisLinkAgeFlagRation": "0",
|
|
|
+ "artifSelfPricesRat": response.json().get('data').get('businessCalcFeeVo').get('artifSelfPricesRat'),
|
|
|
+ }
|
|
|
+ data = json.dumps(firstdata)
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+ if response.json().get('msg')=='手续费计算成功':
|
|
|
+ self.creatorder()
|
|
|
+
|
|
|
+ if response.json().get('data').get('businessCalcFeeVo'):
|
|
|
+ self.sy_discountRate=response.json().get('data').get('businessCalcFeeVo').get('discountRate')
|
|
|
+ self.discountRate = response.json().get('data').get('businessCalcFeeVo').get('artifSelfPricesRat')
|
|
|
+ else:
|
|
|
+ self.sy_discountRate =""
|
|
|
+ self.discountRate =""
|
|
|
+ if response.json().get('data').get('crossCalcFeeVo'):
|
|
|
+ self.jq_discountRate=response.json().get('data').get('crossCalcFeeVo').get('runPoundageRatio')
|
|
|
+ else:
|
|
|
+ self.jq_discountRate =''
|
|
|
+
|
|
|
+ jq_startDate = ''
|
|
|
+ jq_endDate = ''
|
|
|
+ sy_startDate = ''
|
|
|
+ sy_endDate = ''
|
|
|
+
|
|
|
+ for z in self.data.get('clauseInfoList'):
|
|
|
+ if z.get('clauseName') == '机动车损失保险' or z.get('clauseName') == '新能源汽车损失保险':
|
|
|
+ self.zhejiu_price = z.get('oriCurAmount')
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ self.zhejiu_price = '0'
|
|
|
+
|
|
|
+ if self.jiaoqiang_chooseFlag == 'on' and self.shangye_chooseFlag == 'on':
|
|
|
+ jq_startDate = self.data.get('orderVo').get('jqStartDate')
|
|
|
+ jq_endDate = self.data.get('orderVo').get('jqEndDate')
|
|
|
+ sy_startDate = self.data.get('orderVo').get('syStartDate')
|
|
|
+ sy_endDate = self.data.get('orderVo').get('syEndDate')
|
|
|
+ elif self.jiaoqiang_chooseFlag == 'on' and self.shangye_chooseFlag != 'on':
|
|
|
+ jq_startDate = self.data.get('orderVo').get('jqStartDate')
|
|
|
+ jq_endDate = self.data.get('orderVo').get('jqEndDate')
|
|
|
+ sy_startDate = ''
|
|
|
+ sy_endDate = ''
|
|
|
+ elif self.jiaoqiang_chooseFlag != 'on' and self.shangye_chooseFlag == 'on':
|
|
|
+ jq_startDate = ''
|
|
|
+ jq_endDate = ''
|
|
|
+ sy_startDate = self.data.get('orderVo').get('syStartDate')
|
|
|
+ sy_endDate = self.data.get('orderVo').get('syEndDate')
|
|
|
+
|
|
|
+ msg = response.json().get('msg')
|
|
|
+ kindprice_list = response.json().get('data').get('clauseInfoList')
|
|
|
+ for xz in kindprice_list:
|
|
|
+ if xz.get('clauseName') == '机动车损失保险' or xz.get('clauseName') == '新能源汽车损失保险':
|
|
|
+ self.chesun_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加车身划痕损失险':
|
|
|
+ self.huahen_price = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ elif xz.get('clauseName') == '机动车第三者责任保险' or xz.get('clauseName') == '新能源汽车第三者责任保险':
|
|
|
+ self.sanzhe_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加法定节假日限额翻倍险':
|
|
|
+ self.jjr_price = fjxz.get('totalPay')
|
|
|
+ elif fjxz.get('clauseName') == '附加医保外医疗费用责任险(机动车第三者责任保险)' or fjxz.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车第三者责任保险)':
|
|
|
+ self.ybw_sanzheprice = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ elif xz.get('clauseName') == '机动车车上人员责任保险(驾驶人)' or xz.get('clauseName') == '新能源汽车车上人员责任保险(驾驶人)':
|
|
|
+ self.siji_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加医保外医疗费用责任险(机动车车上人员责任保险-驾驶人)' or fjxz.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车车上人员责任保险-驾驶人)':
|
|
|
+ self.ybw_sjprice = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ elif xz.get('clauseName') == '机动车车上人员责任保险(乘客)' or xz.get('clauseName') == '新能源汽车车上人员责任保险(乘客)':
|
|
|
+ self.chengke_price = xz.get('totalPay')
|
|
|
+ for fjxz in xz.get('clauseInfoVoList'):
|
|
|
+ if fjxz.get('clauseName') == '附加医保外医疗费用责任险(机动车车上人员责任保险-乘客)' or fjxz.get('clauseName') == '附加医保外医疗费用责任险(新能源汽车车上人员责任保险-乘客)':
|
|
|
+ self.ybw_ckprice = fjxz.get('totalPay')
|
|
|
+
|
|
|
+ self.sy_price = response.json().get('data').get('orderVo').get('syPay')
|
|
|
+ if self.sy_price:
|
|
|
+ self.sy_price = float(self.sy_price)
|
|
|
+ else:
|
|
|
+ self.sy_price = 0
|
|
|
+
|
|
|
+ self.jq_prine = response.json().get('data').get('orderVo').get('jqPay')
|
|
|
+ if self.jq_prine:
|
|
|
+ self.jq_prine = float(self.jq_prine)
|
|
|
+ else:
|
|
|
+ self.jq_prine = 0
|
|
|
+
|
|
|
+ self.chechuan_price = response.json().get('data').get('orderVo').get('taxPay')
|
|
|
+ if self.chechuan_price:
|
|
|
+ self.chechuan_price = float(self.chechuan_price)
|
|
|
+ else:
|
|
|
+ self.chechuan_price = 0
|
|
|
+
|
|
|
+ self.all_price = response.json().get('data').get('orderVo').get('realPay')
|
|
|
+ if self.all_price:
|
|
|
+ self.all_price = float(self.all_price)
|
|
|
+ else:
|
|
|
+ self.all_price = 0
|
|
|
+
|
|
|
+ # 评分
|
|
|
+ jq_mark = "".join(re.findall(r'underwritingScoreJQ":(.*?),', response.text, re.S))
|
|
|
+ sy_mark = "".join(re.findall(r'underwritingScore":(.*?),', response.text, re.S))
|
|
|
+ mark="".join(re.findall(r'unionUnderwritingScore":(.*?),', response.text, re.S))
|
|
|
+
|
|
|
+
|
|
|
+ # 非车险
|
|
|
+
|
|
|
+ fcx_list = []
|
|
|
+ if self.accidentalDrivingVo:
|
|
|
+ mesOrderNcispList = response.json().get('data').get('mesOrderNcispList')
|
|
|
+ drivingInsurances = {}
|
|
|
+ for i in mesOrderNcispList:
|
|
|
+ drivingInsurances['price'] = i.get('ncispPay')
|
|
|
+ drivingInsurances['name'] = i.get('ncispPlanName')
|
|
|
+ drivingInsurances['policy'] = i.get('ncispProposalNo')
|
|
|
+ fcx_list.append(drivingInsurances)
|
|
|
+
|
|
|
+ carInfo = {}
|
|
|
+ # 车型名称
|
|
|
+ carInfo['modelcname'] = self.car_info.get('standardName')
|
|
|
+ # 车型编码
|
|
|
+ carInfo['modelCode'] = self.car_info.get('rbCode')
|
|
|
+ # 排量
|
|
|
+ carInfo['exhaustscale'] = self.car_info.get('displacement')
|
|
|
+ # 座位数
|
|
|
+ carInfo['seatCount'] = self.car_info.get('seat')
|
|
|
+ # 价格
|
|
|
+ carInfo['purchasePrice'] = self.car_info.get('purchasePrice')
|
|
|
+ # 功率
|
|
|
+ carInfo['power'] = self.car_info.get('enginePower')
|
|
|
+ # 年款
|
|
|
+ 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": "ESHOP",
|
|
|
+ "oriSysOperator": self.zhanghao_info.get('data').get('oriSysOperator'),
|
|
|
+ "oriSysOperatorKey": self.zhanghao_info.get('data').get('oriSysOperatorKey'),
|
|
|
+ }
|
|
|
+ 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': {
|
|
|
+ "A": self.chesun_price if self.chesun_price else '0',
|
|
|
+ "A_amount": self.zhejiu_price,
|
|
|
+ "B": self.sanzhe_price if self.sanzhe_price else '0',
|
|
|
+ "D3": self.siji_price if self.siji_price else '0',
|
|
|
+ "D4": self.chengke_price if self.chengke_price else '0',
|
|
|
+ "L": self.huahen_price if self.huahen_price else '0',
|
|
|
+ "MJ1": self.mpv_csprice if self.mpv_csprice else '0',
|
|
|
+ "MJ2": self.mpv_szprice if self.mpv_szprice else '0',
|
|
|
+ "MJ3": self.mpv_sjprice if self.mpv_sjprice else '0',
|
|
|
+ "MJ4": self.mpv_ckprice if self.mpv_ckprice else '0',
|
|
|
+ "SY_FJ_YBW1": self.ybw_sanzheprice if self.ybw_sanzheprice else '0',
|
|
|
+ "SY_FJ_YBW2": self.ybw_ckprice if self.ybw_ckprice else '0',
|
|
|
+ "SY_FJ_YBW3": self.ybw_sjprice if self.ybw_sjprice else '0',
|
|
|
+ },
|
|
|
+ # 交强险价格
|
|
|
+ 'forceCarInsureRisk': self.jq_prine,
|
|
|
+ # 车船税
|
|
|
+ 'carInsureShiptax': self.chechuan_price,
|
|
|
+ # 商业险价格
|
|
|
+ 'busiTotalPremium': self.sy_price,
|
|
|
+ # 总价
|
|
|
+ 'carInsureMain': self.all_price,
|
|
|
+ # 订单号
|
|
|
+ 'plyappno': self.plyappno,
|
|
|
+ 'message': msg,
|
|
|
+
|
|
|
+ 'jq_startDate': jq_startDate if self.jiaoqiang_chooseFlag == 'on' else '',
|
|
|
+ 'jq_endDate': jq_endDate if self.jiaoqiang_chooseFlag == 'on' else '',
|
|
|
+ 'sy_startDate': sy_startDate if self.shangye_chooseFlag == 'on' else '',
|
|
|
+ 'sy_endDate': sy_endDate if self.shangye_chooseFlag == 'on' else '',
|
|
|
+ 'other': {
|
|
|
+ 'mark': mark,
|
|
|
+ 'jq_mark':jq_mark,
|
|
|
+ 'sy_mark':sy_mark,
|
|
|
+ 'discount':str(self.discountRate),
|
|
|
+ 'jq_discount': str(self.jq_discountRate),
|
|
|
+ 'sy_discount': str(self.sy_discountRate),
|
|
|
+ 'isQuoteGreenWay': '',
|
|
|
+ 'predict_info': predict_info,
|
|
|
+ },
|
|
|
+ 'jq_repeatinfo': self.jq_repeatinfo,
|
|
|
+ 'sy_repeatinfo': self.sy_repeatinfo,
|
|
|
+ 'drivingInsurances': fcx_list,
|
|
|
+ 'carInfo': carInfo
|
|
|
+ }
|
|
|
+
|
|
|
+ else:
|
|
|
+ return {
|
|
|
+ 'code':400,
|
|
|
+ 'message':"修改折扣失败,请联系管理员处理"
|
|
|
+ }
|
|
|
+
|
|
|
+ def creatorder(self):
|
|
|
+ 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/doAutoGenerate"
|
|
|
+ if self.orderId:
|
|
|
+ self.structureId=self.zhanghao_info.get('data').get('provincialCom')
|
|
|
+ self.businessOffice=self.zhanghao_info.get('data').get('userDepartment')
|
|
|
+ else:
|
|
|
+ self.orderId=self.plyappno
|
|
|
+ self.tranNo = str(redis_conn.hget('edian_' + self.plyappno, 'tranNo'), 'utf8')
|
|
|
+ self.userCode=str(redis_conn.hget('edian_' + self.plyappno, 'userCode'), 'utf8')
|
|
|
+ self.businessOffice=str(redis_conn.hget('edian_' + self.plyappno, 'businessOffice'), 'utf8')
|
|
|
+ self.username=str(redis_conn.hget('edian_' + self.plyappno, 'username'), 'utf8')
|
|
|
+ self.structureId=self.zhanghao_info.get('data').get('provincialCom')
|
|
|
+ if self.plyappno and self.discount:
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doCalcFee"
|
|
|
+ data =self.data
|
|
|
+ data['syShow'] = self.data.get('syShow')
|
|
|
+ data['businessNatureCode'] = self.businessNatureCode
|
|
|
+ data['businessOffice'] = self.businessOffice
|
|
|
+ data['structureId'] = self.structureId
|
|
|
+ data['userCode'] = self.username
|
|
|
+ data['reformFlag'] = '1'
|
|
|
+ data['oriSysOperator'] = 'E11_user'
|
|
|
+ data['oriSysOperatorKey'] = 'RTExZTEx'
|
|
|
+ data['solutionType'] = '1'
|
|
|
+ data['calcFeeParamVo'] = {
|
|
|
+ "finalRat": "0",
|
|
|
+ "agentRate": "0",
|
|
|
+ "crossAgentRate": "",
|
|
|
+ "isFee": "0",
|
|
|
+ "inOrOut": "out",
|
|
|
+ "flag": "1",
|
|
|
+ "isChange": "0",
|
|
|
+ "feeDisLinkAgeFlagRation": "0"
|
|
|
+ }
|
|
|
+ data = json.dumps(data)
|
|
|
+ response = requests.post(url, headers=self.headers, data=data)
|
|
|
+
|
|
|
+ if response.json().get('data').get('businessCalcFeeVo'):
|
|
|
+ self.sy_discountRate = response.json().get('data').get('businessCalcFeeVo').get('discountRate')
|
|
|
+ self.discountRate = response.json().get('data').get('businessCalcFeeVo').get('artifSelfPricesRat')
|
|
|
+ else:
|
|
|
+ self.sy_discountRate = ""
|
|
|
+ self.discountRate = ""
|
|
|
+ if response.json().get('data').get('crossCalcFeeVo'):
|
|
|
+ self.jq_discountRate = response.json().get('data').get('crossCalcFeeVo').get('runPoundageRatio')
|
|
|
+ else:
|
|
|
+ self.jq_discountRate = ''
|
|
|
+
|
|
|
+
|
|
|
+ #确认报价
|
|
|
+ data = {
|
|
|
+ "orderNo":self.orderId,
|
|
|
+ "tranNo": self.tranNo,
|
|
|
+ "userCode": self.username,
|
|
|
+ "structureId":self.structureId,
|
|
|
+ "businessOffice": self.businessOffice,
|
|
|
+ "systemSource": "E11",
|
|
|
+ "oriSysOperator": "E11_user",
|
|
|
+ "oriSysOperatorKey": "RTExZTEx"
|
|
|
+ }
|
|
|
+ data = json.dumps(data, separators=(',', ':'))
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doMesOrderDetail"
|
|
|
+ data = {
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "structureId": self.structureId,
|
|
|
+ "userCode": self.username,
|
|
|
+ "userLoginType": "1",
|
|
|
+ "sellCode": None
|
|
|
+ }
|
|
|
+ data = json.dumps(data, separators=(',', ':'))
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/img/ImgRest/getUploadSuccess"
|
|
|
+ data = {
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "userCode": self.username
|
|
|
+ }
|
|
|
+ data = json.dumps(data, separators=(',', ':'))
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doQueryLog"
|
|
|
+ data = {
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "tranNo": self.tranNo,
|
|
|
+ "structureId": self.structureId,
|
|
|
+ "userCode": self.username,
|
|
|
+ "oriSysOperator": "E11_user",
|
|
|
+ "oriSysOperatorKey": "RTExZTEx",
|
|
|
+ "bancassuranceFlag": 0,
|
|
|
+ "checkOrganizationFlag": "0"
|
|
|
+ }
|
|
|
+
|
|
|
+ data = json.dumps(data, separators=(',', ':'))
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+ if response.json().get('msg') == '请求成功':
|
|
|
+ if response.json().get('data').get('vinUseFlag') != '1':
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doQueryLog"
|
|
|
+ data = {
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "tranNo": self.tranNo,
|
|
|
+ "structureId": self.structureId,
|
|
|
+ "userCode": self.username,
|
|
|
+ "oriSysOperator": "E11_user",
|
|
|
+ "oriSysOperatorKey": "RTExZTEx",
|
|
|
+ "bancassuranceFlag": 0,
|
|
|
+ "checkOrganizationFlag": "0",
|
|
|
+ "vinUseChangeStatusFlag": "1"
|
|
|
+ }
|
|
|
+
|
|
|
+ data = json.dumps(data, separators=(',', ':'))
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+ else:
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ pass
|
|
|
+
|
|
|
+ url = "https://mesbj.chinalife-p.com.cn/mesci/order/MesOrderInfos/doMesOrderDetail"
|
|
|
+ data = {
|
|
|
+ "orderNo": self.orderId,
|
|
|
+ "structureId": self.structureId,
|
|
|
+ "userCode": self.username,
|
|
|
+ "userLoginType": "1",
|
|
|
+ "sellCode": None
|
|
|
+ }
|
|
|
+ data = json.dumps(data, separators=(',', ':'))
|
|
|
+ response = requests.post(url, headers=headers, data=data)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def main(self):
|
|
|
+ self.check_login()
|
|
|
+ if '密码错误' not in self.token:
|
|
|
+ if self.plyappno and self.discount:
|
|
|
+
|
|
|
+ return self.get_discountprice()
|
|
|
+ else:
|
|
|
+ self.RSA_encrypt()
|
|
|
+ self.get_orderId()
|
|
|
+ self.get_tranNo()
|
|
|
+ self.get_carinfo()
|
|
|
+ ret=self.get_nextstep()
|
|
|
+ if ret=='200':
|
|
|
+
|
|
|
+ if self.car_info:
|
|
|
+ if self.accidentalDrivingVo:
|
|
|
+ self.get_fcxdata()
|
|
|
+ if self.fcxres_message:
|
|
|
+ return {
|
|
|
+ 'code':400,
|
|
|
+ 'message':'附加险:'+self.fcxres_message
|
|
|
+ }
|
|
|
+ else:
|
|
|
+ return self.repeat(self.calculation())
|
|
|
+ else:
|
|
|
+ return self.repeat(self.calculation())
|
|
|
+ else:
|
|
|
+ return {
|
|
|
+ 'code':400,
|
|
|
+ 'message':'暂未查询到车型'
|
|
|
+ }
|
|
|
+ else:
|
|
|
+ return {
|
|
|
+ 'code':400,
|
|
|
+ 'message':ret
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ elif self.gs_info==None:
|
|
|
+
|
|
|
+ return {
|
|
|
+ 'code': 400,
|
|
|
+ 'message': '请输入正确的归属信息'
|
|
|
+ }
|
|
|
+
|
|
|
+ else:
|
|
|
+ return {
|
|
|
+ 'code': 400,
|
|
|
+ 'message': '账号密码错误'
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+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": "轻型专项作业车"
|
|
|
+}
|