def get_insurance_info(requestcic, dt): try: fTAppTm = utils.getlatedate(0) fTInsrncBgnTm = urllib.quote(urllib.quote(utils.getlatedate(1))) fTInsrncEndTm = urllib.quote(urllib.quote(utils.getlatedate(365))) headers = SE.headers sy_plyNo = dt['sy_plyNo'] jq_plyNo = dt['jq_plyNo'] user_info2 = "ADAPTER_TYPE=JSON_TYPE&SERVICE_TYPE=ACTION_SERVIC&CODE_TYPE=CODE_TYPE&BEAN_HANDLE=baseAction&ACTION_HANDLE=perform&SERVICE_NAME=offerDataLoadAction&SERVICE_MOTHOD=initOfferPage&DW_DATA=%255B%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522ONLY_DATA%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.Base_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-fCNewFlg%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522JQ__-fCNewFlg%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522SY__-fCTrunMrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522JQ__-fCTrunMrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-fTAppTm%2522%252C_-b%2522" + fTAppTm + "%2522%257D%252C%257B_-a%2522_-fTOprTm%2522%252C_-b%2522" + fTAppTm + "%2522%257D%252C%257B_-a%2522SY__-fTInsrncBgnTm%2522%252C_-b%2522" + fTInsrncBgnTm + "%252000%253A00%253A00%2522%257D%252C%257B_-a%2522SY__-fTInsrncEndTm%2522%252C_-b%2522" + fTInsrncEndTm + "%252023%253A59%253A59%2522%257D%252C%257B_-a%2522SY__-fCTmSysCde%2522%252C_-b%2522365%2522%257D%252C%257B_-a%2522SY__-fNRatioCoef%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522SY__-fCOfferNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fTInsrncBgnTm%2522%252C_-b%2522" + fTInsrncBgnTm + "%252000%253A00%253A00%2522%257D%252C%257B_-a%2522JQ__-fTInsrncEndTm%2522%252C_-b%2522" + fTInsrncEndTm + "%252023%253A59%253A59%2522%257D%252C%257B_-a%2522JQ__-fCTmSysCde%2522%252C_-b%2522365%2522%257D%252C%257B_-a%2522JQ__-fNRatioCoef%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522JQ__-fCOfferNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fNPrmRmbExch%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522_-fCDptCde%2522%252C_-b%252232010702%2522%257D%252C%257B_-a%2522_-fCProdNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fNAmt%2522%252C_-b%2522122000.00%2522%257D%252C%257B_-a%2522JQ__-fNPrm%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522SY__-fNAmt%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522SY__-fNPrm%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522_-fCAppTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-fTUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fTUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCCommonFlag%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-fCOprCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCInwdMrk%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCSlsNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fNCommRate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fNCommissionRateUpper%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fNMaxFeeProp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCPrnNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCMkupFlag%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fTUntilDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCGrpBaseMrk%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCPkgNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fCOrigPlyNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-fCOrigPlyNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCGrpMrk%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCIcCardId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCServiceId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCAppStatus%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCPayAgreement%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fNIncrementRate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fNNoTaxPrm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-fNNoTaxPrm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fNAddedTax%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-fNAddedTax%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fNDoublePayRatio%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCAgriMrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-fCDisptSttlCde%2522%252C_-b%2522007001%2522%257D%252C%257B_-a%2522_-fCFinTyp%2522%252C_-b%2522001%2522%257D%252C%257B_-a%2522_-fCRatioTyp%2522%252C_-b%2522D%2522%257D%252C%257B_-a%2522_-fCChaNmeCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCNewChaType%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCNewBsnsTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCBsnsTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCServiceCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCTeamName%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCTeamCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCSlsId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCSlsIdButton%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCSlsTel%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCBrkrCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCBrkrCdeButton%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCBrkrName%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCAgtAgrNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-hCAppNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-iCInsuredNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-fCUnfixSpc%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-fCUnfixSpcButton%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fCUnfixSpc%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-fCUnfixSpcButton%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-fCOfferPlan%2522%252C_-b%2522A%2522%257D%252C%257B_-a%2522_-fCClauseType%2522%252C_-b%252201%2522%257D%255D%257D%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522ONLY_DATA%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.Vhl_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522_-gNNewPurchaseTaxValue%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNKindredPrice%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNKindredPriceTax%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCVin%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCMonDespRate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNActualValue%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCLoanVehicleFlag%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522JQ__-gCQryCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-gCQryCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCVehlcleFamily%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCModelDesc%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gRMarketDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNAssignPrice%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNOfferPurChasePrice%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNOfferPurChasePriceMax%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNOfferPurChasePriceMin%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCSnModifyPrices%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCXnModifyPrices%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCFleetMrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-gCVhlPkgNO%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCIndustryModelCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCIndustryModelName%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCNoticeType%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCProdPlace%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCHfcode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCDragWeight%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCFamilyCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCFamilyName%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCEcdemicMrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-gCDevice1Mrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-gCNewVhlFlag%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522_-gCNewMrk%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-gCFstRegYm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCFrmNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCModelNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522CarModel%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522searcheVehicleModel%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522queryPlateCarInfo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCBrandId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCModelCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCModelCde2%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522CarSerachValidate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522CarSerachConfirm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCSearchCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCValidateCode%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCPlateNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCEngNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNDisplacement%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCPlateTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNNewPurchaseValue%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNDiscussActualValue%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-gCUsageCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-gCVhlTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCCarAge%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-gCUsageCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-gCVhlTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-g_-s6%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCRegVhlTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCCardDetail%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCNatOfBusines%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNTonage%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNSeatNum%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gTTransferDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCBillDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gNPoWeight%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCDisplacementLvl%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCTaxItemCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-gCFuelType%2522%252C_-b%25220%2522%257D%255D%257D%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522GRID_CVRG%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.Cvrg_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522ONLY_DATA%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.PrmCoef_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522JQ__-mNDiscountAmount%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-mNCoef%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-mNPriPre%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mCPlyNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-mCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-mCPlyNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mTUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-mNClaimTime%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNClaimTime%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-mNTotalClaimAmount%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNTotalClaimAmount%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNManualProduct%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNPreChannelFactor%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNPreUnderFactor%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNDrinkDriRiseRat%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNProcesseNum%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNProcesseNumB%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNAllDrinkRiseRat%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNLllegalNum%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNDrinkDriRiseRatB%2522%252C_-b%25220.15%2522%257D%252C%257B_-a%2522_-mNLllegalNumB%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNUnProcesseNum%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNDrunkDri%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNUnProcesseNumB%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNSpeedNum%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNBreakRul%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNOverloadNum%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNNoGood%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNOtherNum%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522JQ__-mCNdiscRsn%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNDeathToll%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522_-mNLyRepRiseRat%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522_-mNOneYearNoDanger%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mNRecordRiseRat%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522_-mCSafetyViola%2522%252C_-b%252200%2522%257D%252C%257B_-a%2522_-mCAccidentInfo%2522%252C_-b%252200%2522%257D%252C%257B_-a%2522_-mCDangerInfo%2522%252C_-b%252200%2522%257D%252C%257B_-a%2522SY__-mNDiscountAmount%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNCoef%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNPriPre%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-mCOfferPlan%2522%252C_-b%2522A%2522%257D%252C%257B_-a%2522_-mNNoLossRat%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNTrafficViolateRat%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNCarTypeRat%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNChannelFactor%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-mNIndeptUnderRat%2522%252C_-b%2522%2522%257D%255D%257D%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522ONLY_DATA%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.Vhlowner_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522_-jCOwnerCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jTUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-j_-s1%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522_-jCOwnerNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCOwnerAge%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCGender%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCCertfCls%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCCertfCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-jCCOwnerTyp%2522%252C_-b%2522%2522%257D%255D%257D%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522ONLY_DATA%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.VsTax_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522VsTax.NAggTaxVar%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522VsTax.NBefEdrTax%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522VsTax.NBalanceTax%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522VsTax.CTaxUnit%2522%252C_-b%25220.00%2522%257D%252C%257B_-a%2522VsTax.CVehicleNumber%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CVsTaxMrk%2522%252C_-b%2522N%2522%257D%252C%257B_-a%2522VsTax.CPaytaxTyp%2522%252C_-b%2522T%2522%257D%252C%257B_-a%2522VsTax.CAbateMrk%2522%252C_-b%2522002%2522%257D%252C%257B_-a%2522VsTax.CAbateRsn%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CFreeType%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CAbateProp%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522VsTax.CAbateAmt%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxReliefCertNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NBeforTax%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxItemCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NAnnUnitTaxAmt%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxYear%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CLastTaxYear%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.TBillDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxpayerId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxpayerCertTyp%2522%252C_-b%252201%2522%257D%252C%257B_-a%2522VsTax.CTaxpayerCertNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxpayerNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.TLastSaliEndDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CDrawbackOpr%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NOverdueDays%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NOverdueFineProp%2522%252C_-b%25220.0005%2522%257D%252C%257B_-a%2522VsTax.NOverdueAmt%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NChargeProp%2522%252C_-b%25220.05%2522%257D%252C%257B_-a%2522VsTax.NChargeAmt%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NLastYearTaxableMonths%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NLastYear%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NTaxableMonths%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NTaxableAmt%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.TTaxEffBgnTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.TTaxEffEndTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NExhaustCapacity%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NCurbWt%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxPaymentRecptNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CDepartmentNonLocal%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CTaxAuthorities%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CDrawbackOprMonth%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.NAggTax%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522VsTax.TSaliAppDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CDeclareStatusIA%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.TDeclareDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522VsTax.CCalcTaxFlag%2522%252C_-b%2522%2522%257D%255D%257D%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522ONLY_DATA%2522%252C%2522dwName%2522%253A%2522prodDef.vhl.VhlDrv_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522assignVhlDrv%2522%252C_-b%25220%2522%257D%252C%257B_-a%2522SY__-o1.CRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-o1.CRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.CCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.TCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.CUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.TUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-o1.CPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-o1.CPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.NAge%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1._-s9%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.NSeqNo%2522%252C_-b%25221%2522%257D%252C%257B_-a%2522_-o1.CDrvNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.CDrvLcnNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.CGendorCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.TBirthday%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.TDrvLcnIssueDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.CAllowedVhlTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o1.CDrvOccupationCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-o2.CRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-o2.CRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.CCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.TCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.CUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.TUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-o2.CPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-o2.CPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.NAge%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2._-s9%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.NSeqNo%2522%252C_-b%25222%2522%257D%252C%257B_-a%2522_-o2.CDrvNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.CDrvLcnNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.CGendorCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.TBirthday%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.TDrvLcnIssueDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.CAllowedVhlTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o2.CDrvOccupationCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-o3.CRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-o3.CRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.CCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.TCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.CUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.TUpdTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-o3.CPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-o3.CPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.NAge%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3._-s9%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.NSeqNo%2522%252C_-b%25223%2522%257D%252C%257B_-a%2522_-o3.CDrvNme%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.CDrvLcnNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.CGendorCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.TBirthday%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.TDrvLcnIssueDate%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.CAllowedVhlTyp%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-o3.CDrvOccupationCde%2522%252C_-b%2522%2522%257D%255D%257D%255D%257D%252C%257B%2522isFilter%2522%253A%2522false%2522%252C%2522dwType%2522%253A%2522GRID_EDIT%2522%252C%2522dwName%2522%253A%2522prodDef.common.Fee_DW%2522%252C%2522rsCount%2522%253A%25221%2522%252C%2522pageSize%2522%253A%252210%2522%252C%2522pageNo%2522%253A%25221%2522%252C%2522pageCount%2522%253A%25220%2522%252C%2522maxCount%2522%253A%25221000%2522%252C%2522toAddFlag%2522%253A%2522false%2522%252C%2522filterMapList%2522%253A%255B%255D%252C%2522dataObjVoList%2522%253A%255B%257B%2522index%2522%253A%25221%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y0%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25222%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y1%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25223%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y2%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25224%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y3%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25225%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y4%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25226%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y5%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25227%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y6%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25228%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y7%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%252C%257B%2522index%2522%253A%25229%2522%252C%2522selected%2522%253A%2522true%2522%252C%2522status%2522%253A%2522INSERTED%2522%252C%2522attributeVoList%2522%253A%255B%257B_-a%2522SY__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCPkId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCRowId%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522JQ__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522SY__-kCAppNo%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCFeetypCde%2522%252C_-b%2522Y8%2522%257D%252C%257B_-a%2522SY__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522SY__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFeeProp%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522JQ__-kNFee%2522%252C_-b%25220.0%2522%257D%252C%257B_-a%2522_-kCCrtCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTCrtTm%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kCUpdCde%2522%252C_-b%2522%2522%257D%252C%257B_-a%2522_-kTUpdTm%2522%252C_-b%2522%2522%257D%255D%257D%255D%257D%255D&HELPCONTROLMETHOD=common&SCENE=UNDEFINED&BIZ_SYNCH_CONTINUE=false&CUST_DATA=" AA = "dptCde%253D32010702%2526prodNo%253D0360%2526jq_plyNo%253D" + jq_plyNo + "%2526sy_plyNo%253D" + sy_plyNo + "%2526renewMrk%253D1" BB = "dptCde%253D32010702%2526prodNo%253D0335%2526sy_plyNo%253D" + sy_plyNo + "%2526renewMrk%253D1" # body=json.dumps(utils.convert(user_info),ensure_ascii=False,separators=(',',':')) if jq_plyNo == "": user_info2 = user_info2 + BB if jq_plyNo != "": user_info2 = user_info2 + AA url = 'http://carply.cic.cn/pcis/policy/universal/quickapp/actionservice.ai' headers['content-type'] = 'application/x-www-form-urlencoded' req = requestcic.post(url=url, data=user_info2, headers=headers) reqout = req.json() out = parse_renewal_data_userinfo(reqout) insuranceType = cic_parse_lastyear_premium(reqout) out['insuranceType'] = insuranceType return out except Exception as e: return {}
def get_hn_premium(session, alldata=None, body_org=None): # 获取body体 log = Logger() try: if body_org == None: body_org = get_hn_body(alldata) # print(json.dumps(body_org,ensure_ascii=False)) url = "http://qcar.chinahuanong.com.cn/quotepriceasync/preciseQuote.do" body = "model=" + urllib.quote(json.dumps(body_org)) headers[ 'Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8" rsp = session.post(url=url, data=body, headers=headers) rsp_text = rsp.text if "终保日期" in rsp_text and "起保日期" in rsp_text: log.error(u"华农重复投保 正在重复请求") str1 = "\d{4}-\d{2}-\d{2}" datelist = re.findall(str1, rsp_text, re.S) if len(datelist) == 2: bigdate = compare_date(datelist[0], datelist[1]) bigdate = compare_date(bigdate, getlatedate(0)) endDate = getlatedate(0, bigdate) # alldata['carInfo']['endDate'] = endDate alldata['carInfo']['insuranceTime']['jqStart'] = endDate alldata['carInfo']['insuranceTime']['syStart'] = endDate # rsp = get_hn_premium(session, alldata) return get_hn_premium(session, alldata) # rsp_text = rsp.text if "重复投保" in rsp_text and "reinsureStr" in rsp_text: errmsg = rsp.json() msg = errmsg['base']['reinsureStr'] log.error(msg) return msg if "发生异常" in rsp_text: log.error(rsp_text) return rsp.text if "agentComm" in rsp_text: all = {} rsp_json = rsp.json() PriumeInf = hn_getPriumeInf(rsp_json) all['fee'] = PriumeInf all['c01beginTime'] = body_org['base']['startDate'] all['c01endTime'] = body_org['base']['endDate'] all['vehicleSeats'] = body_org['vehicleJingyou']['seat'] JQ = jsonpath.jsonpath(body_org, "$.kinds[?(@.kindCode=='BZ')]") if JQ != False: r.set_vin(body_org['car']['vinNo'], "13", json.dumps(body_org, ensure_ascii=False)) return all except Exception as e: import traceback log.error(e) log.error(traceback.format_exc()) return "未知异常"
def cic_entrance_renwal(requestcic, CPlateNo): try: dts = renewal_data(requestcic, CPlateNo=CPlateNo) if dts != 0: jq_plyNo = getLastPlyByVhl(requestcic, CPlyNo=dts['CPlyNo']) dts['jq_plyNo'] = jq_plyNo dts['sy_plyNo'] = CPlyNo = dts['CPlyNo'] user = get_insurance_info(requestcic, dts) # user['endDate']=dts['TInsrncEndTm'].split(" ")[0] #保险结束时间 # 修改问题 2017-03-09 :中华联合返回的数据为 日期 23:59:59 加一天为启保时间 user['endDate'] = getlatedate( 1, str_date=dts['TInsrncEndTm'].split(" ")[0]) user["COMPANY_ID"] = "4" return user return 0 except Exception as e: print(e) return 0
def is_ancheng_renewal(session, plateNumber): try: # 获取CPlyNo, 判断有没有续保信息 ret = get_xubao_1(session, plateNumber) if 'JSP Processing Error' in ret.text: session = login_ancheng() return is_ancheng_renewal(session, plateNumber) ra = "DATA:\['(.*?)'\]" rb = re.compile(ra) title_list = re.findall(rb, ret.content) html = title_list[0] # 没有续保信息返回0 if "CPlyNo" not in html: log.info(u"未查询到续信息%s" % plateNumber) return 0 soup = BeautifulSoup(html, 'html.parser') sy_premium, jq_premium = 0, 0 syPlyNo, jqPlyNo = 0, 0 try: premiums = soup.findAll("attribute", attrs={"name": "NPrm"}) PlyNo = soup.findAll("attribute", attrs={"name": "CPlyNo"}) premium_1 = float(premiums[0].get_text()) premium_2 = float(premiums[1].get_text()) if premium_1 > premium_2: syPlyNo = PlyNo[0].get_text() jqPlyNo = PlyNo[1].get_text() else: syPlyNo = PlyNo[1].get_text() jqPlyNo = PlyNo[0].get_text() sy_premium = max(premium_1, premium_2) jq_premium = min(premium_1, premium_2) except Exception as e: log.info('查询商业险和交强险出错 - {0}'.format(e)) if not syPlyNo or not jqPlyNo: log.info('查询保单号出错') return # 获取续保信息 ret = get_xubao_2(session, syPlyNo, jqPlyNo) response_body = json.loads(ret.content) fields = ["Insured.CInsuredNme", "Insured.CCertfCde", "Insured.CMobile", "Insured.CSuffixAddr", "Vhl.CFrmNo", "Vhl.CPlateNo", "Vhl.CEngNo", "Vhl.CModelCde", "Vhl.CModelNme", "Vhl.CFstRegYm", "Vhl.NSeatNum", "SY_Base.TInsrncEndTm", "SY_Base.TInsrncBgnTm", "JQ_Base.TInsrncEndTm", "JQ_Base.TInsrncBgnTm", "Vhl.CRegVhlTyp"] Insured_DW = jsonpath.jsonpath(response_body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Insured_DW')]")[0] Insured_DW_dataObjVoList = jsonpath.jsonpath(Insured_DW, "$.dataObjVoList") dict_1 = Insured_DW_dataObjVoList[0][0]['attributeVoList'] Vhl_DW = jsonpath.jsonpath(response_body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Vhl_DW')]")[0] Vhl_DW_dataObjVoList = jsonpath.jsonpath(Vhl_DW, "$.dataObjVoList") dict_2 = Vhl_DW_dataObjVoList[0][0]['attributeVoList'] Base_DW = jsonpath.jsonpath(response_body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Base_DW')]")[0] Base_DW_dataObjVoList = jsonpath.jsonpath(Base_DW, "$.dataObjVoList") dict_3 = Base_DW_dataObjVoList[0][0]['attributeVoList'] dict_4 = dict(dict_1, **dict_2) dict_5 = dict(dict_4, **dict_3) # print dict_5 _data = {field: dict_5[field]['value'] for field in fields} VsTax_DW = jsonpath.jsonpath(response_body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.VsTax_DW')]")[0] VsTax_DW_dataObjVoList = jsonpath.jsonpath(VsTax_DW, "$.dataObjVoList") dict_6 = VsTax_DW_dataObjVoList[0][0]['attributeVoList'] VsTax_NAggTax = dict_6.get('VsTax.NTaxableAmt').get('value', 0) jq_premium += float(VsTax_NAggTax) nAggTax = '1' if VsTax_NAggTax else '0' # 获取险别 Cvrg_DW = jsonpath.jsonpath(response_body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Cvrg_DW')]")[ 0] Cvrg_DW_dataObjVoList = jsonpath.jsonpath(Cvrg_DW, "$.dataObjVoList") attrs = Cvrg_DW_dataObjVoList[0] # print attrs insuranceType = { "otherHurtPremium": { "Amount": '0', "isCheck": "0" }, "driverDutyPremium": { "Amount": "0", "isCheck": "0" }, "passengerDutyPremium": { "Amount": '0', "isCheck": "0" }, "carDamagePremium": "0", "carFireBrokenBenchMarkPremium": "0", "carTheftPremium": "0", "otherHurtBenchMarkPremium": "0", "carTheftBenchMarkPremium": "0", "engineWadingBenchMarkPremium": "0", "JqSumPremium": jq_premium, "carNickPremium": { "Amount": "0", "isCheck": "0" }, "carDamageBenchMarkPremium": "0", "carNickBenchMarkPremium": "0", "engineWadingPremium": "0", "passengerBenchMarkPremium": "0", "SySumPremium": sy_premium, "driverDutyBenchMarkPremium": "0", "carFirePremium": "0", "glassBrokenPremium": "0", "compulsoryInsurance": "0", "nAggTax": nAggTax } for i, k in enumerate(attrs): num = int(k["attributeVoList"]["Cvrg.NSeqNo"]["value"]) if num == 15: _otherHurtPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 三者险 otherHurtBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_otherHurtPremium) + u' 三者险') otherHurtPremium = {} otherHurtPremium['Amount'] = str(_otherHurtPremium) otherHurtPremium['isCheck'] = '1' insuranceType['otherHurtPremium'] = otherHurtPremium insuranceType['otherHurtBenchMarkPremium'] = '1' if otherHurtBenchMarkPremium == '345021001' else '0' elif num == 20: _carDamagePremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 车损险 carDamageBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_carDamagePremium) + u' 车损险') carDamagePremium = '1' insuranceType['carDamagePremium'] = carDamagePremium insuranceType['carDamageBenchMarkPremium'] = '1' if carDamageBenchMarkPremium == '345021001' else '0' elif num == 13: _driverDutyPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 车上人员险(司机) driverDutyBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_driverDutyPremium) + u' 车上人员险(司机)') driverDutyPremium = {} driverDutyPremium['Amount'] = _driverDutyPremium driverDutyPremium['isCheck'] = '1' insuranceType['driverDutyPremium'] = driverDutyPremium insuranceType['driverDutyBenchMarkPremium'] = '1' if driverDutyBenchMarkPremium == '345021001' else '0' elif num == 14: _passengerDutyPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 车上人员险(乘客) passengerBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_passengerDutyPremium) + u' 车上人员险(乘客)') passengerDutyPremium = {} passengerDutyPremium['Amount'] = _passengerDutyPremium passengerDutyPremium['isCheck'] = '1' insuranceType['passengerDutyPremium'] = passengerDutyPremium insuranceType['passengerBenchMarkPremium'] = '1' if passengerBenchMarkPremium == '345021001' else '0' elif num == 18: _carTheftPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 盗抢险 carTheftBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_carTheftPremium) + u' 盗抢险') carTheftPremium = '1' insuranceType['carTheftPremium'] = carTheftPremium insuranceType['carTheftBenchMarkPremium'] = '1' if carTheftBenchMarkPremium == '345021001' else '0' elif num == 19: _carNickPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 划痕险 carNickBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_carNickPremium) + u' 划痕险') carNickPremium = {} carNickPremium['Amount'] = _carNickPremium carNickPremium['isCheck'] = '1' insuranceType['carNickPremium'] = carNickPremium insuranceType['carNickBenchMarkPremium'] = '1' if carNickBenchMarkPremium == '345021001' else '0' elif num == 8: _glassBrokenPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 玻璃破碎险 glassBrokenMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_glassBrokenPremium) + u' 玻璃破碎险') glassBrokenPremium = '1' insuranceType['glassBrokenPremium'] = glassBrokenPremium insuranceType['glassBrokenMarkPremium'] = '1' if glassBrokenMarkPremium == '345021001' else '0' elif num == 5: _carFirePremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 自燃险 carFireBrokenBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_carFirePremium) + u' 自燃险') carFirePremium = '1' insuranceType['carFirePremium'] = carFirePremium insuranceType[ 'carFireBrokenBenchMarkPremium'] = '1' if carFireBrokenBenchMarkPremium == '345021001' else '0' elif num == 10: _engineWadingPremium = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 涉水险 engineWadingBenchMarkPremium = k["attributeVoList"]["Cvrg.CDductMrk"]["value"] log.info(str(_engineWadingPremium) + u' 涉水险') engineWadingPremium = '1' insuranceType['engineWadingPremium'] = engineWadingPremium insuranceType[ 'engineWadingBenchMarkPremium'] = '1' if engineWadingBenchMarkPremium == '345021001' else '0' elif num == 1: _compulsory_insurance = float(k["attributeVoList"]["Cvrg.NAmt"]["value"]) # 交强险 log.info(str(_compulsory_insurance) + u' 交强险') compulsoryInsurance = '1' insuranceType['compulsoryInsurance'] = compulsoryInsurance # print _data out = { 'licenseNo': _data['Vhl.CPlateNo'], # 车牌号 'vinNo': _data['Vhl.CFrmNo'], # 车架号 'endDate': utils.getlatedate(-365, str_date=_data['SY_Base.TInsrncEndTm'][:10]), # 保险结束期 'CCardDetail': _data['Vhl.CRegVhlTyp'], # 车辆类型 'brandName': _data['Vhl.CModelNme'], # 汽车名字 'insuredName': _data['Insured.CInsuredNme'], # 车主 'identifyNumber': _data['Insured.CCertfCde'], # 身份证号 'mobile': _data['Insured.CMobile'], # 手机号 'insuredAddress': _data['Insured.CSuffixAddr'], # 地址 'CUsageCde': "", 'NNewPurchaseValue': "", 'enrollDate': _data['Vhl.CFstRegYm'], # 初登日期 'engineNo': _data['Vhl.CEngNo'], # 发动机号 'CModelCde': _data['Vhl.CModelCde'], 'NSeatNum': _data['Vhl.NSeatNum'], # 座位数 'COMPANY_ID': "12", 'insuranceType': insuranceType, 'insuranceTime': { 'syEnd': utils.getlatedate(-365, str_date=_data['SY_Base.TInsrncEndTm'][:10]) + ' 23:59:59', 'syStart': utils.getlatedate(-365, str_date=_data['SY_Base.TInsrncBgnTm'][:10]) + ' 00:00:00', 'jqStart': utils.getlatedate(-365, str_date=_data['JQ_Base.TInsrncBgnTm'][:10]) + ' 00:00:00', 'jqEnd': utils.getlatedate(-365, str_date=_data['JQ_Base.TInsrncEndTm'][:10]) + ' 23:59:59'} } # print out return out except Exception as e: log.error(e) log.error(traceback.format_exc()) return 0
def get_hn_body(alldata): body = copy.deepcopy(premiumTemp) carowner = alldata['car']['remark'] headers[ 'Content-Type'] = "application/x-www-form-urlencoded; charset=UTF-8" body['vehicleJingyou'] = alldata['vehicleJingyou'] body['car']['licenseType'] = alldata['car']['licenseType'] body['car']['colorCode'] = alldata['car']['colorCode'] body['car']['netWeight'] = alldata['car']['netWeight'] seats = str(alldata['car']['seatCount']) body['car']['seatCount'] = seats alldata['vehicleJingyou']['seat'] = seats body['car']['seatCountOld'] = seats if int(seats) < 6: carKindCodeNew = "K1" elif int(seats) >= 6 and int(seats) < 10: carKindCodeNew = "K2" elif int(seats) >= 10 and int(seats) < 20: carKindCodeNew = "K3" elif int(seats) >= 20 and int(seats) < 36: carKindCodeNew = "K4" elif int(seats) >= 36: carKindCodeNew = "K5" else: carKindCodeNew = "K1" enrollDate = alldata['car']['enrollDate'] body['car']['carKindCodeNew'] = carKindCodeNew # 座位数类型 body['car']['modelAlias'] = alldata.get("vehicleJingyou", {}).get( "vehicleAlias", "") # alldata['vehicleJingyou']['vehicleAlias'] body['car']['enrollDate'] = enrollDate body['car']['licenseNo'] = alldata['car']['licenseNo'] body['car']['modelName'] = alldata['car']['modelName'] body['car']['carKindCode'] = alldata['vehicleJingyou']['carKindCode'] body['car']['exhaustScale'] = str(alldata['car']['exhaustScale']) body['car']['industryModelCode'] = alldata['other']['industryModelCode'] body['car']['exhaustScaleOld'] = alldata['car']['exhaustScale'] body['car']['modelCodePlat'] = alldata['other']['modelCode'] body['car']['modelCode'] = alldata['other']['modelCode'] body['car']['engineNo'] = alldata['car']['engineNo'] body['car']['tradeName'] = alldata['vehicleJingyou']['factoryName'] body['car']['brand'] = alldata['other']['brandCN'] body['car']['modelNamePlat'] = alldata['car']['modelName'] body['car']['vinNo'] = alldata['car']['vinNo'] body['car']['noticeType'] = alldata['vehicleJingyou'][ 'searchCode'] # CAF7209A purchasePriceOld = alldata['vehicleJingyou']['price'] body['car']['purchasePriceOld'] = purchasePriceOld body['car']['purchasePrice'] = purchasePriceOld body['car']['netWeightOld'] = str("%.3f" % alldata['car']['netWeight']) body['car']['carName'] = alldata['car']['modelName'] body['car']['tonCount'] = str("%.4f" % alldata['car']['tonCount']) body['car']['vehicleStyle'] = alldata['car']['vehicleStyle'] body['car']['vehicleCode'] = alldata['vehicleJingyou']['vehicleCode'] Address = alldata.get("carInfo", {}).get("insuredAddress", "") mobile = alldata.get("carInfo", {}).get("mobile", "") taxPayerIdentifyNumber = alldata.get("carInfo", {}).get("identifyNumber", "") Address = [Address, "江苏南京"][Address == ""] mobile = [mobile, ""][mobile == ""] taxPayerIdentifyNumber = [taxPayerIdentifyNumber, ""][taxPayerIdentifyNumber == ""] # body tax信息 body['tax']['taxPayerIdentifyNumber'] = taxPayerIdentifyNumber # 身份证号码 body['tax']['taxPayer'] = taxPayerIdentifyNumber # 身份证号码 body['tax']['taxPayerName'] = carowner body['tax']['net'] = alldata['car']['netWeight'] # 整备质量 body['tax']['taxPayerAddress'] = Address # 身份证号码 # body person body['persons'][0]['insuredName'] = carowner body['persons'][0]['insuredAddress'] = Address body['persons'][0]['mobile'] = mobile body['persons'][0]['identifyNumber'] = taxPayerIdentifyNumber # body base operateDate = getlatedate(0) # 当前时间 startDate = alldata.get('carInfo', {}).get("insuranceTime", {}).get("syStart", getlatedate(1)) endDate = getlatedate(364, startDate) startDateCI = alldata.get('carInfo', {}).get("insuranceTime", {}).get("jqStart", getlatedate(1)) endDateCI = getlatedate(364, startDateCI) # 交强结束 ''' MyendDate = alldata['carInfo']['endDate'] if MyendDate != "": datestr = compare_date(MyendDate, getlatedate(0)) startDate = getlatedate(1, datestr) ##商业开始 endDate = getlatedate(365, datestr) # 商业结束 startDateCI = startDate # 交强开始 endDateCI = endDate # 交强结束 else: startDate = getlatedate(1) ##商业开始 endDate = getlatedate(365) # 商业结束 startDateCI = startDate # 交强开始 endDateCI = endDate # 交强结束 ''' body['base']['operateDate'] = operateDate body['base']['startDate'] = startDate body['base']['endDate'] = endDate body['base']['startDateCI'] = startDateCI body['base']['endDateCI'] = endDateCI body['car']['useYears'] = calc_user_years(startDate, enrollDate) # 使用年限 CarActualValue = calculateActualValue(purchasePriceOld, '85', seats, 'A0', '', enrollDate, today=datetime.datetime.strptime( startDate, "%Y-%m-%d")) body['car']['actualValue'] = str(CarActualValue) CarActualValue = str("%.2f" % CarActualValue) body['car']['actualValueOld'] = CarActualValue # 车辆实际价格 # 拼装险种组合 insuranceType = alldata['carInfo']['insuranceType'] kinds = get_hn_insurance_type(insuranceType, float(CarActualValue), seats, purchasePriceOld) body['kinds'] = kinds if insuranceType.get("compulsoryInsurance", "1") == "0": body["tax"] = {} return body
def parse_renewal_data_userinfo(body): dt = {} Insured_DW = jsonpath.jsonpath( body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Insured_DW')]")[0] Insured_DW_dataObjVoList = jsonpath.jsonpath(Insured_DW, "$.dataObjVoList") CInsuredNme = Insured_DW_dataObjVoList[0][0]['attributeVoList'][ 'Insured.CInsuredNme']['value'] # 用户名 idCard = Insured_DW_dataObjVoList[0][0]['attributeVoList'][ 'Insured.CCertfCde']['value'] # 身份证号码 CMobile = Insured_DW_dataObjVoList[0][0]['attributeVoList'][ 'Insured.CMobile']['value'] # 手机号 Addr = Insured_DW_dataObjVoList[0][0]['attributeVoList'][ 'Insured.CSuffixAddr']['value'] # 家庭住址 Vhl_DW = jsonpath.jsonpath( body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Vhl_DW')]")[0] Vhl_DW_dataObjVoList = jsonpath.jsonpath(Vhl_DW, "$.dataObjVoList") CFrmNo = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.CFrmNo'][ 'value'] CPlateNo = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.CPlateNo'][ 'value'] CEngNo = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.CEngNo'][ 'value'] CModelCde = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.CModelCde'][ 'value'] CModelNme = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.CModelNme'][ 'value'] NNewPurchaseValue = Vhl_DW_dataObjVoList[0][0]['attributeVoList'][ 'Vhl.NNewPurchaseValue']['value'] CUsageCde = Vhl_DW_dataObjVoList[0][0]['attributeVoList'][ 'JQ_Vhl.CUsageCde']['value'] CFstRegYm = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.CFstRegYm'][ 'value'] # 注册时间 NSeatNum = Vhl_DW_dataObjVoList[0][0]['attributeVoList']['Vhl.NSeatNum'][ 'value'] # 座位数 CCardDetail = Vhl_DW_dataObjVoList[0][0]['attributeVoList'][ 'Vhl.CCardDetail']['value'] # k33 # 获取交强险与商业险的开始结束时间 Base_DW = jsonpath.jsonpath( body, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Base_DW')]")[0] Base_DW_dataObjVoList = jsonpath.jsonpath(Base_DW, "$.dataObjVoList") syStart = Base_DW_dataObjVoList[0][0]['attributeVoList'][ 'SY_Base.TInsrncBgnTm']['value'] syEnd = Base_DW_dataObjVoList[0][0]['attributeVoList'][ 'SY_Base.TInsrncEndTm']['value'] jqStart = Base_DW_dataObjVoList[0][0]['attributeVoList'][ 'JQ_Base.TInsrncBgnTm']['value'] jqEnd = Base_DW_dataObjVoList[0][0]['attributeVoList'][ 'JQ_Base.TInsrncEndTm']['value'] SY_JQ_TIME = {} SY_JQ_TIME['syStart'] = getlatedate(-365, syStart.split(" ")[0]) SY_JQ_TIME['syEnd'] = getlatedate(-365, syEnd.split(" ")[0]) SY_JQ_TIME['jqStart'] = getlatedate(-365, jqStart.split(" ")[0]) SY_JQ_TIME['jqEnd'] = getlatedate(-365, jqEnd.split(" ")[0]) dt['insuredName'] = CInsuredNme dt['insuredAddress'] = Addr dt['identifyNumber'] = idCard dt['mobile'] = CMobile dt['vinNo'] = CFrmNo dt['licenseNo'] = CPlateNo dt['engineNo'] = CEngNo dt['CModelCde'] = CModelCde dt['brandName'] = CModelNme dt['NNewPurchaseValue'] = NNewPurchaseValue dt['CUsageCde'] = CUsageCde dt['enrollDate'] = CFstRegYm dt['NSeatNum'] = NSeatNum dt['CCardDetail'] = CCardDetail dt['insuranceTime'] = SY_JQ_TIME return dt
def get_premium(session, data): if not session: session = login_ancheng() if not session: log.info(u'安诚登录失败') return searchVin = data['vinNo'] insureCarId = data['insureCarId'] isPhone = data['isPhone'] sessionId = data['sessionId'] client = data['client'] CPlateNo = data['plateNumber'] insuranceType = data.get("insuranceType", {}) insuranceType_list = [] if isinstance(insuranceType, list): insuranceType_list = insuranceType else: insuranceType_list.append(insuranceType) insuranceTypeGroupId = insuranceType_list[0].get("insuranceTypeGroupId", "") insuranceTypeGroup = insuranceType_list[0].get("insuranceTypeGroup", "") try: insuranceTime = data.get("insuranceTime", None) if insuranceTime: jqStart = insuranceTime.get("jqStart") syStart = insuranceTime.get("syStart") else: jqStart, syStart = utils.getlatedate(1), utils.getlatedate(1) # 查询redis中是否有信息 r = CRedis() car_info = r.get_vin(searchVin, "12") if not car_info: car_info = query_car_info(session, data, syStart, CPlateNo, searchVin) else: car_info = eval(car_info) if not car_info: log.error(u'查询车辆信息失败') send_mq(client, CPlateNo, "查询车辆信息失败", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return for insuranceType in insuranceType_list: # 车辆信息中塞入 licenseType car_info['licenseType'] = data.get("licenseType", "02") DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue = get_premium_request( session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info) ret = get_premium_data(session, DW_DATA) ratio, jq_ratio = '0', '0' try: if '计算完毕' not in ret.json( )['RESULT_MSG'] and '重复投保' in ret.json()['RESULT_MSG']: log.info(u'重复投保,重新获取终保日期') sy_end_date, jq_end_date, = None, None if Base_CProdNo == "0336" or Base_CProdNo == "0335": if '计算完毕' not in ret.json( )['RESULT_MSG'] and '商业' in ret.json()['RESULT_MSG']: ra = "\\\\n终保日期:(.+?)\\\\n" rb = re.compile(ra) rc = re.findall(rb, ret.content) if rc and 'null' not in rc: sy_end_date = rc[0][:4] + '-' + rc[0][ 4:6] + '-' + rc[0][6:8] log.info(u'商业险终保日期 - {0}'.format(sy_end_date)) if Base_CProdNo == "0330": ra = "\d{4}-\d{2}-\d{2}" rb = re.compile(ra) rc = re.findall(rb, ret.json()['RESULT_MSG']) if rc and 'null' not in rc: if len(rc) == 2: jq_end_date = rc[1] if rc[1] > rc[0] else rc[0] else: jq_end_date = rc[0] log.info(u'交强险终保日期 - {0}'.format(jq_end_date)) if Base_CProdNo == "0336_0330" or Base_CProdNo == "0335_0330": if '计算完毕' not in ret.json( )['RESULT_MSG'] and '商业' in ret.json()['RESULT_MSG']: ra = "\\\\n终保日期:(.+?)\\\\n" rb = re.compile(ra) rc = re.findall(rb, ret.content) if rc and 'null' not in rc: end_date = rc[0][:4] + '-' + rc[0][ 4:6] + '-' + rc[0][6:8] if 'E51' in ret.json()['RESULT_MSG']: jq_end_date = end_date log.info( u'交强险终保日期 - {0}'.format(jq_end_date)) else: sy_end_date = end_date log.info( u'商业险终保日期 - {0}'.format(sy_end_date)) elif '计算完毕' not in ret.json( )['RESULT_MSG'] and '商业' not in ret.json( )['RESULT_MSG']: ra = "\d{4}-\d{2}-\d{2}" rb = re.compile(ra) rc = re.findall(rb, ret.json()['RESULT_MSG']) if rc and 'null' not in rc: if len(rc) == 2: end_date = rc[1] if rc[1] > rc[0] else rc[0] else: end_date = rc[0] if 'E51' in ret.json()['RESULT_MSG']: jq_end_date = end_date log.info( u'交强险终保日期 - {0}'.format(jq_end_date)) else: sy_end_date = end_date log.info( u'商业险终保日期 - {0}'.format(sy_end_date)) if sy_end_date or jq_end_date: if jq_end_date: jqStart = jq_end_date if sy_end_date: syStart = sy_end_date # car_info['endDate'] = endDate # 当是重复投保,取终保日期重新发送获取保费请求 DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue = get_premium_request( session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info) ret = get_premium_data(session, DW_DATA) # 将交强险的终保日期替换后还是重复投保 if '终保日期' in ret.json( )['RESULT_MSG'] and '重复投保' in ret.json()['RESULT_MSG']: log.info(u'将交强险的终保日期替换后还是重复投保') if '商业' in json.dumps(ret.json(), ensure_ascii=False): ra = "\\\\n终保日期:(.+?)\\\\n" rb = re.compile(ra) rc = re.findall(rb, ret.content) if rc and 'null' not in rc: sy_end_date = rc[0][:4] + '-' + rc[0][ 4:6] + '-' + rc[0][6:8] log.info( u'商业险终保日期 - {0}'.format(sy_end_date)) if sy_end_date: syStart = sy_end_date DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue = get_premium_request( session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info) ret = get_premium_data(session, DW_DATA) if '计算完毕' not in ret.json( )['RESULT_MSG'] and '重复投保' in ret.json()['RESULT_MSG']: log.info(u'重复投保,获取终保日期还是重复投保') send_mq(client, CPlateNo, "重复投保,获取终保日期还是重复投保", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return else: log.info(u'重复投保,无法获取终保日期,程序结束') send_mq(client, CPlateNo, "重复投保,无法获取终保日期", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return if len(ret.json()['WEB_DATA']) > 0: response_body_1 = json.loads(ret.text) PrmCoef_DW = \ jsonpath.jsonpath(response_body_1, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.PrmCoef_DW')]")[0] PrmCoef_DW_dataObjVoList = jsonpath.jsonpath( PrmCoef_DW, "$.dataObjVoList") PrmCoef_DW_dict = PrmCoef_DW_dataObjVoList[0][0][ 'attributeVoList'] SY_PrmCoef_NResvNum1, PrmCoef_NTrafficVi = None, None if PrmCoef_DW_dict["SY_PrmCoef.NResvNum1"]["value"]: SY_PrmCoef_NResvNum1 = float( PrmCoef_DW_dict["SY_PrmCoef.NResvNum1"] ["value"]) # 无忧赔款优待系数 if PrmCoef_DW_dict["PrmCoef.NTrafficVi"]["value"]: PrmCoef_NTrafficVi = float( PrmCoef_DW_dict["PrmCoef.NTrafficVi"] ["value"]) # 交通违法调整系数 if SY_PrmCoef_NResvNum1 and PrmCoef_NTrafficVi: PrmCoef_NExpectTotal = float( SY_PrmCoef_NResvNum1) * float( PrmCoef_NTrafficVi) * 0.85 * 0.85 # 整单期望折扣 # 带上整单期望折扣重新发送请求 DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue = get_premium_request( session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info, PrmCoef_NExpectTotal=str(PrmCoef_NExpectTotal)) ret = get_premium_data(session, DW_DATA) VsTax_NAggTax = None if len(ret.json()['WEB_DATA']) > 0: response_body_2 = json.loads(ret.text) PrmCoef_DW = \ jsonpath.jsonpath(response_body_2, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.PrmCoef_DW')]")[0] PrmCoef_DW_dataObjVoList = jsonpath.jsonpath( PrmCoef_DW, "$.dataObjVoList") PrmCoef_DW_dict = PrmCoef_DW_dataObjVoList[0][0][ 'attributeVoList'] # 获取商业险系数 if PrmCoef_DW_dict["SY_PrmCoef.NTotDisc"]["value"]: ratio = float( PrmCoef_DW_dict["SY_PrmCoef.NTotDisc"] ["value"]) # 商业险系数 if PrmCoef_DW_dict["JQ_PrmCoef.NTotDisc"]["value"]: jq_ratio = float( PrmCoef_DW_dict["JQ_PrmCoef.NTotDisc"] ["value"]) / 100 # 交强险系数 VsTax_DW = \ jsonpath.jsonpath(response_body_2, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.VsTax_DW')]")[0] VsTax_DW_dataObjVoList = jsonpath.jsonpath( VsTax_DW, "$.dataObjVoList") if VsTax_DW_dataObjVoList[0]: VsTax_DW_dict = VsTax_DW_dataObjVoList[0][0][ 'attributeVoList'] VsTax_NAggTax = float( VsTax_DW_dict["VsTax.NAggTax"]["value"]) # 车船税 log.info('车船税 - {0}'.format(VsTax_NAggTax)) Cvrg_DW = jsonpath.jsonpath( response_body_2, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Cvrg_DW')]" )[0] Cvrg_DW_dataObjVoList = jsonpath.jsonpath( Cvrg_DW, "$.dataObjVoList") attrs = Cvrg_DW_dataObjVoList[0] else: msg = ret.json()['RESULT_MSG'].replace("\n", "") if '期望折扣' in msg: ra = "[0-9]*\.?[0-9]+" rb = re.compile(ra) msg_list = re.findall(rb, msg) PrmCoef_NExpectTotal = float(msg_list[0]) # 返回期望折扣错误重新发送请求 DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue = get_premium_request( session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info, PrmCoef_NExpectTotal=str(PrmCoef_NExpectTotal)) ret = get_premium_data(session, DW_DATA) if len(ret.json()['WEB_DATA']) > 0: response_body_2 = json.loads(ret.text) PrmCoef_DW = \ jsonpath.jsonpath(response_body_2, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.PrmCoef_DW')]")[0] PrmCoef_DW_dataObjVoList = jsonpath.jsonpath( PrmCoef_DW, "$.dataObjVoList") PrmCoef_DW_dict = PrmCoef_DW_dataObjVoList[0][ 0]['attributeVoList'] # 获取商业险系数 if PrmCoef_DW_dict["SY_PrmCoef.NTotDisc"][ "value"]: ratio = float( PrmCoef_DW_dict["SY_PrmCoef.NTotDisc"] ["value"]) # 商业险系数 if PrmCoef_DW_dict["JQ_PrmCoef.NTotDisc"][ "value"]: jq_ratio = float( PrmCoef_DW_dict["JQ_PrmCoef.NTotDisc"] ["value"]) / 100 # 交强险系数 VsTax_DW = \ jsonpath.jsonpath(response_body_2, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.VsTax_DW')]")[0] VsTax_DW_dataObjVoList = jsonpath.jsonpath( VsTax_DW, "$.dataObjVoList") if VsTax_DW_dataObjVoList[0]: VsTax_DW_dict = VsTax_DW_dataObjVoList[0][ 0]['attributeVoList'] VsTax_NAggTax = float( VsTax_DW_dict["VsTax.NAggTax"] ["value"]) # 车船税 log.info('车船税 - {0}'.format(VsTax_NAggTax)) Cvrg_DW = \ jsonpath.jsonpath(response_body_2, "$.WEB_DATA[?(@.dwName=='prodDef.vhl.Cvrg_DW')]")[ 0] Cvrg_DW_dataObjVoList = jsonpath.jsonpath( Cvrg_DW, "$.dataObjVoList") attrs = Cvrg_DW_dataObjVoList[0] else: msg = ret.json()['RESULT_MSG'].replace( "\n", "") if '无法加载模板缓存' in msg: log.info(u'无法加载模板缓存, 重新请求') return get_premium(session, data) log.error(msg) send_mq(client, CPlateNo, msg, "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return else: if '无法加载模板缓存' in msg: log.info(u'无法加载模板缓存, 重新请求') return get_premium(session, data) log.error(msg) send_mq(client, CPlateNo, msg, "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return else: msg = ret.json()['RESULT_MSG'].replace("\n", "") if '无法加载模板缓存' in msg: log.info(u'无法加载模板缓存, 重新请求') return get_premium(session, data) log.error(msg) send_mq(client, CPlateNo, msg, "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return except Exception as e: log.error(e) log.error(traceback.format_exc()) send_mq(client, CPlateNo, "未知异常", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return Premium = {} MarkPremium = {} hebao_premium = {} total_money = 0 total_mark_money = 0 # 计算保费 for i, k in enumerate(attrs): num = int(k["attributeVoList"]["Cvrg.NSeqNo"]["value"]) if num == 15: # otherHurtPremium = float(k["attributeVoList"]["Cvrg.NBefPrm"]["value"]) * ratio # 三者险 otherHurtPremium = float( k["attributeVoList"]["Cvrg.NCalcAnnPrm"] ["value"]) # 三者险 total_money += otherHurtPremium log.info(str(otherHurtPremium) + u' 三者险') Premium['otherHurtPremium'] = round(otherHurtPremium, 2) hebao_premium['otherHurtPremium'] = otherHurtPremium otherHurtBenchMarkPremium = otherHurtPremium * 0.15 # 三者险不计免赔 total_mark_money += otherHurtBenchMarkPremium MarkPremium['otherHurtBenchMarkPremium'] = round( otherHurtBenchMarkPremium, 2) elif num == 20: # carDamagePremium = float(k["attributeVoList"]["Cvrg.NBefPrm"]["value"]) * ratio # 车损险应缴保费 carDamagePremium = float( k["attributeVoList"]["Cvrg.NCalcAnnPrm"] ["value"]) # 车损险应缴保费 total_money += carDamagePremium log.info(str(carDamagePremium) + u' 车损险应缴保费') Premium['carDamagePremium'] = round(carDamagePremium, 2) hebao_premium['carDamagePremium'] = carDamagePremium carDamageBenchMarkPremium = carDamagePremium * 0.15 # 车损险不计免赔 total_mark_money += carDamageBenchMarkPremium MarkPremium['carDamageBenchMarkPremium'] = round( carDamageBenchMarkPremium, 2) elif num == 13: driverDutyPremium = float( k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 车上人员险(司机) total_money += driverDutyPremium log.info(str(driverDutyPremium) + u' 车上人员险(司机)') Premium['driverDutyPremium'] = round(driverDutyPremium, 2) hebao_premium['driverDutyPremium'] = driverDutyPremium driverDutyBenchMarkPremium = driverDutyPremium * 0.15 # 车上人员险(司机)不计免赔 total_mark_money += driverDutyBenchMarkPremium MarkPremium['driverDutyBenchMarkPremium'] = round( driverDutyBenchMarkPremium, 2) elif num == 14: passengerDutyPremium = float( k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 车上人员险(乘客) total_money += passengerDutyPremium log.info(str(passengerDutyPremium) + u' 车上人员险(乘客)') Premium['passengerDutyPremium'] = round( passengerDutyPremium, 2) hebao_premium[ 'passengerDutyPremium'] = passengerDutyPremium passengerBenchMarkPremium = passengerDutyPremium * 0.15 # 车上人员险(乘客)不计免赔 total_mark_money += passengerBenchMarkPremium MarkPremium['passengerBenchMarkPremium'] = round( passengerBenchMarkPremium, 2) elif num == 18: carTheftPremium = float( k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 盗抢险 total_money += carTheftPremium log.info(str(carTheftPremium) + u' 盗抢险') Premium['carTheftPremium'] = round(carTheftPremium, 2) hebao_premium['carTheftPremium'] = carTheftPremium carTheftBenchMarkPremium = carTheftPremium * 0.20 # 盗抢险不计免赔 total_mark_money += carTheftBenchMarkPremium MarkPremium['carTheftBenchMarkPremium'] = round( carTheftBenchMarkPremium, 2) elif num == 19: carNickPremium = float(k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 划痕险 total_money += carNickPremium log.info(str(carNickPremium) + u' 划痕险') Premium['carNickPremium'] = round(carNickPremium, 2) hebao_premium['carNickPremium'] = carNickPremium carNickBenchMarkPremium = carNickPremium * 0.15 # 划痕险不计免赔 total_mark_money += carNickBenchMarkPremium MarkPremium['carNickBenchMarkPremium'] = round( carNickBenchMarkPremium, 2) elif num == 8: glassBrokenPremium = float( k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 玻璃破碎险 total_money += glassBrokenPremium log.info(str(glassBrokenPremium) + u' 玻璃破碎险') Premium['glassBrokenPremium'] = round( glassBrokenPremium, 2) hebao_premium['glassBrokenPremium'] = glassBrokenPremium glassBrokenMarkPremium = glassBrokenPremium * 0.20 # 玻璃破碎险不计免赔 total_mark_money += glassBrokenMarkPremium MarkPremium['glassBrokenMarkPremium'] = round( glassBrokenMarkPremium, 2) elif num == 5: carFirePremium = float(k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 自燃险 total_money += carFirePremium log.info(str(carFirePremium) + u' 自燃险') Premium['carFirePremium'] = round(carFirePremium, 2) hebao_premium['carFirePremium'] = carFirePremium carFireMarkPremium = carFirePremium * 0.20 # 自燃险不计免赔 total_mark_money += carFireMarkPremium MarkPremium['carFireMarkPremium'] = round( carFireMarkPremium, 2) elif num == 10: engineWadingPremium = float( k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * ratio # 涉水险 total_money += engineWadingPremium log.info(str(engineWadingPremium) + u' 涉水险') Premium['engineWadingPremium'] = round( engineWadingPremium, 2) hebao_premium['engineWadingPremium'] = engineWadingPremium engineWadingMarkPremium = engineWadingPremium * 0.15 # 涉水险不计免赔 total_mark_money += engineWadingMarkPremium MarkPremium['engineWadingMarkPremium'] = round( engineWadingMarkPremium, 2) elif num == 1: compulsory_insurance = float( k["attributeVoList"]["Cvrg.NBefPrm"] ["value"]) * jq_ratio # 交强险 log.info(str(compulsory_insurance) + u' 交强险') Premium['compulsory_insurance'] = round( compulsory_insurance, 2) hebao_premium[ 'compulsory_insurance'] = compulsory_insurance if VsTax_NAggTax: Premium['NAggTax'] = round(VsTax_NAggTax, 2) hebao_premium['NAggTax'] = VsTax_NAggTax total_premium = total_money + total_mark_money log.info(u'商业险应缴保费总额 - {0}'.format(total_money)) log.info(u'应缴保费不计免赔总额 - {0}'.format(total_mark_money)) log.info(u'应缴保费总额 - {0}'.format(total_premium)) # hebao_premium = Premium hebao_premium['total_mark_premium'] = total_mark_money hebao_premium['total_premium'] = total_premium BaoE = {} _driverDutyPremium = insuranceType.get("driverDutyPremium", None) _carDamagePremium = insuranceType.get("carDamagePremium", "0") _otherHurtPremium = insuranceType.get("otherHurtPremium", None) _passengerDutyPremium = insuranceType.get("passengerDutyPremium", None) _carTheftPremium = insuranceType.get("carTheftPremium", "0") _carFireBrokenBenchMarkPremium = insuranceType.get( "carFirePremium", "0") _engineWadingBenchMarkPremium = insuranceType.get( "engineWadingPremium", "0") _carNickPremium = insuranceType.get("carNickPremium", None) # 划痕险 Vhl_NNewPurchaseValue = car_info['Vhl_NNewPurchaseValue'] seats = car_info.get('seats', 5) otherHurtBaoE = float( _otherHurtPremium.get("Amount")) if _otherHurtPremium and int( _otherHurtPremium.get("isCheck"), 0) and int( _otherHurtPremium.get("Amount"), 0) else None # 三者险保额 if otherHurtBaoE: BaoE['otherHurtBaoE'] = round(otherHurtBaoE, 2) carDamageBaoE = float(Vhl_NNewPurchaseValue) if int( _carDamagePremium) else None # 车损险保额 if carDamageBaoE: BaoE['carDamageBaoE'] = round(carDamageBaoE, 2) driverDutyBaoE = float( _driverDutyPremium.get("Amount") ) if _driverDutyPremium and int( _driverDutyPremium.get("isCheck"), 0) and int( _driverDutyPremium.get("Amount"), 0) else None # 驾驶人责任险 if driverDutyBaoE: BaoE['driverDutyBaoE'] = round(driverDutyBaoE, 2) passengerDutyBaoE = float(_passengerDutyPremium.get("Amount")) * ( seats - 1) if _passengerDutyPremium and int( _passengerDutyPremium.get("isCheck"), 0) and int( _passengerDutyPremium.get("Amount"), 0) else None # 乘客责任险 if passengerDutyBaoE: BaoE['passengerDutyBaoe'] = round(passengerDutyBaoE, 2) carTheftBaoE = float(Vhl_NNewPurchaseValue) if int( _carTheftPremium) else None # 车盗险保额 if carTheftBaoE: BaoE['carTheftBaoE'] = round(carTheftBaoE, 2) carNickBaoE = float( _carNickPremium.get("Amount")) if _carNickPremium and int( _carNickPremium.get("isCheck"), 0) and int( _carNickPremium.get("Amount"), 0) else None # 划痕险保额 if carNickBaoE: BaoE['carNickBaoE'] = round(carNickBaoE, 2) engineWadingBaoE = float(Vhl_NNewPurchaseValue) if int( _engineWadingBenchMarkPremium) else None # 涉水险保额 if engineWadingBaoE: BaoE['engineWadingBaoE'] = round(engineWadingBaoE, 2) carFireBaoE = float(Vhl_NNewPurchaseValue) if int( _carFireBrokenBenchMarkPremium) else None # 自燃险保额 if carFireBaoE: BaoE['carFireBaoE'] = round(carFireBaoE, 2) disCount = {"sy_disCount": ratio, "jq_disCount": jq_ratio} PremiumInfo = [Premium, BaoE, MarkPremium, disCount] log.info(PremiumInfo) soupDb(PremiumInfo, [ utils.getlatedate(1) + ' 00:00:00', utils.getlatedate(365) + " 23:59:59", seats, insuranceTypeGroupId, insureCarId, "12" ]) send_mq(client, CPlateNo, "", "1", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) log.info(u"安城入库成功:%s|%s" % (CPlateNo, searchVin)) if HEBAO_KEY and car_info.get("licenseType", "02") != "02": r = CRedis() try: DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue = get_premium_request( session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info, hebao_premium=hebao_premium) ret = save_premium(session, DW_DATA) WEB_DATA = ret.json()['WEB_DATA'] sy_appno, jq_appno = '', '' for data in WEB_DATA: if data['dataObjVoList']: if 'SY_Base.CAppNo' in data['dataObjVoList'][0][ 'attributeVoList']: sy_appno = data['dataObjVoList'][0][ 'attributeVoList']['SY_Base.CAppNo'][ 'value'] if 'JQ_Base.CAppNo' in data['dataObjVoList'][0][ 'attributeVoList']: jq_appno = data['dataObjVoList'][0][ 'attributeVoList']['JQ_Base.CAppNo'][ 'value'] if sy_appno: log.info(u'商业险投保单号 - {0}'.format(sy_appno)) ret = he_bao2(session, sy_appno) RESULT_TYPE = ret.json()["RESULT_TYPE"] RESULT_MSG = ret.json()["RESULT_MSG"].replace("\n", "") log.info(u'核保状态 - {0} - {1}'.format( RESULT_TYPE, RESULT_MSG)) SY_PremiumInfo = PremiumInfo if 'compulsory_insurance' in SY_PremiumInfo[0]: SY_PremiumInfo[0].pop('compulsory_insurance') if 'jq_disCount' in SY_PremiumInfo[3]: SY_PremiumInfo[3].pop('jq_disCount') if RESULT_TYPE == "SUCCESS": data = { 'appNo': sy_appno, 'PremiumInfo': SY_PremiumInfo, 'insuranceType': insuranceType, 'create_date': time.strftime('%Y-%m-%d %X', time.localtime(time.time())), 'companyId': '12', 'Status_Code': '0', 'CPlateNo': CPlateNo, 'sessionId': sessionId, 'isphone': isPhone } mg_insert('hebaoinfo', data) r.set_appno(sy_appno, '12') log.info(u'商业险投保单号 - {0} - 入库成功'.format(sy_appno)) send_mq(client, CPlateNo, "", "1", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup, licenseType=car_info.get( "VEHICLE_TYPE", '02'), vehicle_style=car_info.get( "VEHICLE_STYLE", "K33")) else: send_mq(client, CPlateNo, "", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup, licenseType=car_info.get( "VEHICLE_TYPE", '02'), vehicle_style=car_info.get( "VEHICLE_STYLE", "K33")) if jq_appno: log.info(u'交强险投保单号 - {0}'.format(jq_appno)) ret = he_bao2(session, jq_appno) RESULT_TYPE = ret.json()["RESULT_TYPE"] RESULT_MSG = ret.json()["RESULT_MSG"].replace("\n", "") log.info(u'核保状态 - {0} - {1}'.format( RESULT_TYPE, RESULT_MSG)) JQ_PremiumInfo = [{ 'compulsory_insurance': compulsory_insurance }, {}, {}, { 'jq_disCount': jq_ratio }] if RESULT_TYPE == "SUCCESS": data = { 'appNo': jq_appno, 'PremiumInfo': JQ_PremiumInfo, 'insuranceType': insuranceType, 'create_date': time.strftime('%Y-%m-%d %X', time.localtime(time.time())), 'companyId': '12', 'Status_Code': '0', 'CPlateNo': CPlateNo, 'sessionId': sessionId, 'isphone': isPhone } mg_insert('hebaoinfo', data) log.info(u'交强险投保单号 - {0} - 入库成功'.format(jq_appno)) else: send_mq(client, CPlateNo, "", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup, licenseType=car_info.get("VEHICLE_TYPE", '02'), vehicle_style=car_info.get( "VEHICLE_STYLE", "K33")) except Exception as e: log.error(e) log.error(traceback.format_exc()) return except Exception as e: log.error(traceback.format_exc()) send_mq(client, CPlateNo, "未知异常", "2", "12", sessionId, isPhone, insuranceTypeGroupId, insuranceTypeGroup) return 0
def get_premium_request(session, jqStart, syStart, CPlateNo, searchVin, insuranceType, car_info, PrmCoef_NExpectTotal='0', CAppNo='', hebao_premium={}): Applicant_CAppNme = car_info.get('Applicant_CAppNme', '') Insured_CInsuredNme = car_info.get('Insured_CInsuredNme', '') seats = car_info.get('seats', '') Vhl_CEngNo = car_info.get('Vhl_CEngNo', '') Vhl_CFstRegYm = car_info.get('Vhl_CFstRegYm', '') Vhl_CRegVhlTyp = car_info.get('Vhl_CRegVhlTyp', '') Vhl_CProdPlace = car_info.get('Vhl_CProdPlace', '') Vhl_CBrandNme = car_info.get('Vhl_CBrandNme', '') VEHICLE_REGISTER_DATE = car_info.get('VEHICLE_REGISTER_DATE', '') Vhl_NResvNum2 = car_info.get('Vhl_NResvNum2', '') Vehcle_Code = car_info.get('Vehcle_Code', '') Cmodel_Code = car_info.get('Cmodel_Code', '') Vhl_NDisplacement = car_info.get('Vhl_NDisplacement', '') VsTax_NCurbWt = car_info.get('VsTax_NCurbWt', '') SY_Vhl_CMonDespRate = car_info.get('SY_Vhl_CMonDespRate', '') Vhl_NNewPurchaseValue = car_info.get('Vhl_NNewPurchaseValue', '') Vhl_CModelNme = car_info.get('Vhl_CModelNme', '') Vhl_NPoWeight = car_info.get('Vhl_NPoWeight', '') NewVehicleClass = car_info.get('NewVehicleClass', '') Vhl_CGroupNme = car_info.get('Vhl_CGroupNme', '') Base_CAreaFlag = car_info['Base_CAreaFlag'] Base_CCountyCde = car_info['Base_CCountyCde'] Applicant_CClntMrk = car_info['Applicant_CClntMrk'] Insured_CClntMrk = car_info['Insured_CClntMrk'] SY_Vhl_CVhlTransFlag = car_info.get('SY_Vhl_CVhlTransFlag', '') # 商 车辆过户 JQ_Vhl_CVhlTransFlag = car_info.get('JQ_Vhl_CVhlTransFlag', '') # 交 车辆过户 SY_Vhl_TTransferDate = car_info.get('SY_Vhl_TTransferDate', '') # 过户日期 SY_Vhl_TTransferDate = SY_Vhl_TTransferDate[:4] + '-' + SY_Vhl_TTransferDate[ 4:6] + '-' + SY_Vhl_TTransferDate[6:8] Vhl_CPlateTyp = car_info.get("VEHICLE_TYPE", "02") # 号牌种类 01 大型汽车 02 小型汽车 15 挂车 Applicant_CAppNme = Insured_CInsuredNme Applicant_CCertfCls = "123007" Applicant_CCertfCde = "510130197608144113" Applicant_CResvTxt12 = "1" Applicant_CClntAddr = "中国四川省成都市成华区保和乡东升村10组29号附1号" Applicant_CMobile = "13981876776" Insured_CInsuredNme = Applicant_CAppNme Insured_CCertfCls = Applicant_CCertfCls Insured_CCertfCde = Applicant_CCertfCde Insured_CResvTxt12 = Applicant_CResvTxt12 Insured_CClntAddr = Applicant_CClntAddr Insured_CMobile = Applicant_CMobile Vhlowner_COwnerNme = Applicant_CAppNme Vhlowner_CCertfCls = Applicant_CCertfCls Vhlowner_CCertfCde = Applicant_CCertfCde Base_TAppTm = utils.getlatedate(0) # (计算)投保日期 Base_TIssueTm = utils.getlatedate(0) # 签单日期 SY_Base_TInsrncBgnTm = syStart + ' 00:00:00' # 保险起止期(商) SY_Base_TInsrncEndTm = utils.getlatedate(364, syStart) + " 23:59:59" # 保险起止期(商) JQ_Base_TInsrncBgnTm = jqStart + " 00:00:00" # 保险起止期(交) JQ_Base_TInsrncEndTm = utils.getlatedate(364, jqStart) + " 23:59:59" # 保险起止期(交) Base_TInsrncBgnTm = JQ_Base_TInsrncBgnTm if jqStart else SY_Base_TInsrncBgnTm Base_TInsrncEndTm = JQ_Base_TInsrncEndTm if jqStart else SY_Base_TInsrncEndTm log.info(u'保险开始时间 (商) - {0}'.format(SY_Base_TInsrncBgnTm)) log.info(u'保险开始时间 (交) - {0}'.format(JQ_Base_TInsrncBgnTm)) Base_CAreaFlag = Base_CAreaFlag # 地区标识 Base_CCountyCde = Base_CCountyCde # 保单归属地 Base_CVhlchanlFlag = "0" # 车型渠道(固定) Base_CDisptSttlCde = "007001" # 争议处理(固定) Base_CFinTyp = "002001" # 缴费方式(固定) Base_CBsnsTyp = "19002" # 业务来源(固定) Base_CChaType = "191008" # 渠道中级(固定) Base_CChaSubtype = "19100801" # 渠道子类(固定) Base_CSlsId = "132021610" # 渠道维护员工号(固定) Base_CSlsNme = "田江平" # 渠道维护员名称(固定) Base_CBrkrCde = "10000001502" # 代理人(固定) Base_CAgtAgrNo = "B32201700075" # 代理协议(固定) Base_NSubCoNo = "0" # 补充协议号(固定) Base_CAgtSls = "32020203008033" # 中介经办人(固定) Base_CTel = "13771615588" # 联系电话(固定) Base_CRatioTyp = "1" # 短期费率类型(固定) Base_CAgriMrk = "2" # 涉农标志(固定) Vhl_CNewMrk = "0" # 是否上牌(固定)'0 是 1 否' Vhl_CNewVhlFlag = "0" # 是否新车(固定)'1 是 0 否' Vhl_CPlateTyp = Vhl_CPlateTyp # 号牌种类(获取) Vhl_CPlateNo = CPlateNo # 车牌号 Vhl_CFrmNo = searchVin # 车架号 Vhl_CEngNo = Vhl_CEngNo # 发动机号(获取) Vhl_CFstRegYm = Vhl_CFstRegYm # 初登日期(获取) Vhl_CRegVhlTyp = Vhl_CRegVhlTyp # 交管车辆种类(获取) Vhl_NNewPurchaseValue = Vhl_NNewPurchaseValue # 协商价值(获取) Vhl_CProdPlace = Vhl_CProdPlace # 国产/进口 国产-0 进口-1 (手动输入) SY_Vhl_CMonDespRate = SY_Vhl_CMonDespRate # 折旧率(计算) Vhl_CBrandNme = Vhl_CBrandNme # 品牌车型(获取) userYear = get_user_years(syStart, VEHICLE_REGISTER_DATE) # 商 车龄(计算获取)345020003 if searchVin[0].upper() == 'L': glassBrokenPremium = '303011001' # 国产玻璃 else: glassBrokenPremium = '303011002' # 进口玻璃 SY_Vhl_CUseYear = codeMap.get(userYear, '345020004') # 商车龄 SY_Vhl_CAddriskVhlAge = PHCC_VHL_USEYEAR_MAP.get(userYear, '345003010') JQ_Vhl_CUseYear = JQ_PHCC_VHL_USEYEAR_MAP.get(userYear, '345011005') # 交 车龄 SY_Vhl_CEcdemicMrk = "0" # 商是否外地车(获取)本地车-0 JQ_Vhl_CEcdemicMrk = "0" # 交是否外地车(获取)本地车-0 Vhl_NSeatNum = seats # 座位数(获取) JQ_Vhl_CFuelType = "0" # 交能源类型(燃油) Vhl_CProjCde = "A3201ZZ001" # 项目代码 (固定) CDductMrk = "345021001" # 不计免赔 是 No_CDductMrk = "345021007" # 不计免赔 否 SY_Vhl_CBizMrk = car_info['SY_Vhl_CBizMrk'] JQ_Vhl_CBizMrk = car_info['JQ_Vhl_CBizMrk'] SY_Vhl_CUsageCde = car_info['SY_Vhl_CUsageCde'] JQ_Vhl_CUsageCde = car_info['JQ_Vhl_CUsageCde'] SY_Vhl_CVhlTyp = car_info['SY_Vhl_CVhlTyp'] JQ_Vhl_CVhlTyp = car_info['JQ_Vhl_CVhlTyp'] Vhl_NTonage = car_info['Vhl_NTonage'] # 车船税 VsTax_CPaytaxTyp = 'T' # 纳税类型代码(固定) VsTax_CTaxdptVhltyp = '345030002' # 行驶证车辆类型(固定) VsTax_TTaxEffBgnTm = time.strftime( "%Y", time.localtime()) + '-01-01' # 税款所属期始(获取) VsTax_TTaxEffEndTm = time.strftime( "%Y", time.localtime()) + '-12-31' # 税款所属期止(获取) VsTax_CTaxpayerComId = '370784197612165510' # 纳税人识别号 VsTax_CMotorvehFueltyp = 'A' # 燃油种类 is_tezhongche = int(car_info.get('is_tezhongche', 0)) is_guache = int(car_info.get('is_guache', 0)) _driverDutyPremium = insuranceType.get("driverDutyPremium", None) # 驾驶人责任险 check _driverDutyBenchMarkPremium = CDductMrk if int( insuranceType.get("driverDutyBenchMarkPremium", "0")) else No_CDductMrk _carDamagePremium = insuranceType.get("carDamagePremium", "0") # 车损险 _carDamageBenchMarkPremium = CDductMrk if int( insuranceType.get("carDamageBenchMarkPremium", "0")) else No_CDductMrk _otherHurtPremium = insuranceType.get("otherHurtPremium", None) # 机动车第三责任保险 check _otherHurtBenchMarkPremium = CDductMrk if int( insuranceType.get("otherHurtBenchMarkPremium", "0")) else No_CDductMrk _passengerDutyPremium = insuranceType.get("passengerDutyPremium", None) # 乘客责任险 check _passengerBenchMarkPremium = CDductMrk if int( insuranceType.get("passengerBenchMarkPremium", "0")) else No_CDductMrk _carTheftPremium = insuranceType.get("carTheftPremium", "0") # 盗抢险 _carTheftBenchMarkPremium = CDductMrk if int( insuranceType.get("carTheftBenchMarkPremium", "0")) else No_CDductMrk _carFireBrokenBenchMarkPremium = insuranceType.get("carFirePremium", "0") # 自燃险 _carFireBrokenBenchMarkPremium22 = CDductMrk if int( insuranceType.get("carFireBrokenBenchMarkPremium", "0")) else No_CDductMrk _glassBrokenPremium = insuranceType.get("glassBrokenPremium", "0") # 玻璃破碎险 _engineWadingBenchMarkPremium = insuranceType.get("engineWadingPremium", "0") # 涉水险 _engineWadingBenchMarkPremium22 = CDductMrk if int( insuranceType.get("engineWadingBenchMarkPremium", "0")) else No_CDductMrk _carNickPremium = insuranceType.get("carNickPremium", None) # 划痕险 check _carNickBenchMarkPremium = CDductMrk if int( insuranceType.get("carNickBenchMarkPremium", "0")) else No_CDductMrk # 删除车损险需删除其他险 if not int(_carDamagePremium): _carFireBrokenBenchMarkPremium = '0' # 自燃险 _glassBrokenPremium = '0' # 玻璃破碎险 _carNickPremium['isCheck'] = '0' # 划痕险 _engineWadingBenchMarkPremium = '0' # 涉水险 # 根据所传的参数生成动态消息体 damage_insurance_namt_20 = _damage_insurance_namt_20( Vhl_NNewPurchaseValue, _carDamageBenchMarkPremium, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if int( _carDamagePremium) else '' # 机动车损失保险 third_party_insurance_15 = _third_party_insurance_15( _otherHurtPremium, _otherHurtBenchMarkPremium, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if _otherHurtPremium and int( _otherHurtPremium.get("isCheck", 0)) else '' # 第三者责任险 driver_liability_insurance_13 = _driver_liability_insurance_13( _driverDutyPremium, _driverDutyBenchMarkPremium, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if _driverDutyPremium and int( _driverDutyPremium.get("isCheck", 0)) else '' # 驾驶人责任险 pass_liability_insurance_14 = _pass_liability_insurance_14( _passengerDutyPremium, seats, _passengerBenchMarkPremium, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if _passengerDutyPremium and int( _passengerDutyPremium.get("isCheck", 0)) else '' # 乘客责任险 theft_insurance_namt_18 = _theft_insurance_namt_18( Vhl_NNewPurchaseValue, _carTheftBenchMarkPremium, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if int(_carTheftPremium) else '' # 盗抢险 autoignition_insurance_namt_5 = _autoignition_insurance_namt_5( Vhl_NNewPurchaseValue, _carFireBrokenBenchMarkPremium22, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if int( _carFireBrokenBenchMarkPremium) else '' # 自燃险 crush_insurance_namt_8 = _crush_insurance_namt_8( Vhl_NResvNum2, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, glassBrokenPremium, CAppNo=CAppNo, hebao_premium=hebao_premium) if int( _glassBrokenPremium) else '' # 玻璃破碎险险 wade_insurance_namt_10 = _wade_insurance_namt_10( Vhl_NNewPurchaseValue, _engineWadingBenchMarkPremium22, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if int( _engineWadingBenchMarkPremium) else '' # 涉水险 scratch_insurance_namt_19 = _scratch_insurance_namt_19( _carNickPremium, _carNickBenchMarkPremium, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, CAppNo=CAppNo, hebao_premium=hebao_premium) if _carNickPremium and int( _carNickPremium.get("isCheck", 0)) else '' # 划痕险 if not scratch_insurance_namt_19 and not wade_insurance_namt_10 and not crush_insurance_namt_8 and not autoignition_insurance_namt_5 and not theft_insurance_namt_18 and not pass_liability_insurance_14 and not driver_liability_insurance_13 and not third_party_insurance_15 and not damage_insurance_namt_20: Base_CProdNo = '0330' elif not int(insuranceType.get("compulsoryInsurance", "0")) and not is_tezhongche: Base_CProdNo = '0336' elif not int(insuranceType.get("compulsoryInsurance", "0")) and is_tezhongche: Base_CProdNo = '0335' elif int(insuranceType.get("compulsoryInsurance", "0")) and is_tezhongche: Base_CProdNo = '0335_0330' else: Base_CProdNo = '0336_0330' if is_tezhongche: wade_insurance_namt_10 = '' scratch_insurance_namt_19 = '' if is_guache: driver_liability_insurance_13 = '' pass_liability_insurance_14 = '' wade_insurance_namt_10 = '' scratch_insurance_namt_19 = '' crush_insurance_namt_8 = '' log.info(Base_CProdNo) DW_DATA = get_dw( Applicant_CAppNme, Applicant_CCertfCls, Applicant_CCertfCde, Applicant_CResvTxt12, Applicant_CClntAddr, Applicant_CMobile, Insured_CInsuredNme, Insured_CCertfCls, Insured_CCertfCde, Insured_CResvTxt12, Insured_CClntAddr, Insured_CMobile, Vhlowner_COwnerNme, Vhlowner_CCertfCls, Vhlowner_CCertfCde, Base_TAppTm, SY_Base_TInsrncBgnTm, SY_Base_TInsrncEndTm, JQ_Base_TInsrncBgnTm, JQ_Base_TInsrncEndTm, Base_CAreaFlag, Base_CCountyCde, Base_CVhlchanlFlag, Base_CDisptSttlCde, Base_CFinTyp, Base_CBsnsTyp, Base_CChaType, Base_CChaSubtype, Base_CSlsId, Base_CSlsNme, Base_CBrkrCde, Base_CAgtAgrNo, Base_NSubCoNo, Base_CAgtSls, Base_CTel, Base_CRatioTyp, Base_CAgriMrk, SY_Vhl_CBizMrk, SY_Vhl_CUsageCde, SY_Vhl_CVhlTyp, JQ_Vhl_CBizMrk, JQ_Vhl_CUsageCde, JQ_Vhl_CVhlTyp, Vhl_CPlateTyp, Vhl_CPlateNo, Vhl_CFrmNo, Vhl_CEngNo, Vhl_CFstRegYm, Vhl_CRegVhlTyp, Vhl_NNewPurchaseValue, Vhl_CProdPlace, SY_Vhl_CMonDespRate, Vhl_CBrandNme, SY_Vhl_CUseYear, JQ_Vhl_CUseYear, SY_Vhl_CEcdemicMrk, JQ_Vhl_CEcdemicMrk, Vhl_NSeatNum, Vhl_NTonage, JQ_Vhl_CFuelType, Base_TIssueTm, Vhl_CNewMrk, Vhl_CNewVhlFlag, SY_Vhl_CVhlTransFlag, Vhl_CProjCde, damage_insurance_namt_20, third_party_insurance_15, driver_liability_insurance_13, pass_liability_insurance_14, theft_insurance_namt_18, autoignition_insurance_namt_5, crush_insurance_namt_8, wade_insurance_namt_10, scratch_insurance_namt_19, Vehcle_Code, Cmodel_Code, SY_Vhl_CAddriskVhlAge, Vhl_NResvNum2, JQ_Vhl_CVhlTransFlag, VsTax_CPaytaxTyp, VsTax_CTaxdptVhltyp, VsTax_TTaxEffBgnTm, VsTax_TTaxEffEndTm, VsTax_CTaxpayerComId, VsTax_CMotorvehFueltyp, Vhl_NDisplacement, PrmCoef_NExpectTotal, VsTax_NCurbWt, Base_CProdNo, SY_Vhl_TTransferDate, CAppNo, hebao_premium, Vhl_CModelNme, NewVehicleClass, Vhl_CGroupNme, Applicant_CClntMrk, Insured_CClntMrk, Base_TInsrncBgnTm, Base_TInsrncEndTm, Vhl_NPoWeight) DW_DATA = urllib.quote(urllib.quote(str(DW_DATA))) return DW_DATA, Base_CProdNo, Vhl_NNewPurchaseValue
def getFeebody(fee): insuranceType = fee.get("insuranceType", {}) # endDate = JQ_fTInsrncBgnTm = fee.get("endDate", "") ''' if endDate != "": # 保险结束时间与当前时间比较 datestr = compare_date(endDate, utils.getlatedate(0)) TLastSaliEndDate = "" SY_fTInsrncBgnTm = utils.getlatedate(1, datestr) + ' 00:00:00' # 保险起止期(商) SY_fTInsrncEndTm = utils.getlatedate(365, datestr) + " 23:59:59" # 保险起止期(商) JQ_fTInsrncBgnTm = utils.getlatedate(1, datestr) + " 00:00:00" # 保险起止期(交) JQ_fTInsrncEndTm = utils.getlatedate(365, datestr) + " 23:59:59" # 保险起止期(交) else: TLastSaliEndDate = utils.getlatedate(0) ##当前日期 SY_fTInsrncBgnTm = utils.getlatedate(1) + ' 00:00:00' # 保险起止期(商) SY_fTInsrncEndTm = utils.getlatedate(365) + " 23:59:59" # 保险起止期(商) JQ_fTInsrncBgnTm = utils.getlatedate(1) + " 00:00:00" # 保险起止期(交) JQ_fTInsrncEndTm = utils.getlatedate(365) + " 23:59:59" # 保险起止期(交) ''' SY_fTInsrncBgnTm = fee.get("syStart", utils.getlatedate(1)) + ' 00:00:00' # 保险起止期(商) SY_fTInsrncEndTm = utils.getlatedate( 364, SY_fTInsrncBgnTm.split(" ")[0]) + " 23:59:59" # 保险起止期(商) JQ_fTInsrncBgnTm = fee.get("jqStart", utils.getlatedate(1)) + " 00:00:00" # 保险起止期(交) JQ_fTInsrncEndTm = utils.getlatedate( 364, SY_fTInsrncBgnTm.split(" ")[0]) + " 23:59:59" # 保险起止期(交) JQ__fCTmSysCde = "365" # 默认间隔 SY__fCTmSysCde = "365" # 默认间隔 fTOprTm = fTAppTm = utils.getlatedate(0) ##当前日期 fCOprCde = "ex_fanglulu001" # 用户名 JQgCVhlTyp = fee['JQgCVhlTyp'] SYgCVhlTyp = fee['SYgCVhlTyp'] gNNewPurchaseTaxValue = fee['gNNewPurchaseTaxValue'] # 新车购置价(含税) gNKindredPrice = fee['gNKindredPrice'] # 类比价格 gNKindredPriceTax = fee['gNKindredPriceTax'] # 类比价(含税) gNNewPurchaseValue = fee['gNNewPurchaseValue'] # >新车购置价 gNDiscussActualValue = fee['gNDiscussActualValue'] # 协商实际价值 gCFrmNo = gCVin = fee['gCFrmNo'] # 车架号 gCMonDespRate = fee['gCMonDespRate'] # 月折旧率 gNActualValue = fee['gNActualValue'] # <!-- 车辆实际价值 --> gNOfferPurChasePriceMax = fee['gNOfferPurChasePriceMax'] # 新车购置价浮动上限 gNOfferPurChasePriceMin = fee['gNOfferPurChasePriceMin'] # 新车购置价浮动下 gCIndustryModelCode = fee['gCIndustryModelCode'] # 行业车型编码 gCIndustryModelName = fee['gCIndustryModelName'] # 行业车型名称 gCNoticeType = fee['gCNoticeType'] # 行业公告车型 gCProdPlace = "0" # 系别名称"0";//国产 "1";//进口 "2";//合资 fee['gCProdPlace']= gCFamilyCode = fee['gCFamilyCode'] # 车系编码 gCFamilyName = fee['gCFamilyName'] # 车系名称 gCFstRegYm = fee['gCFstRegYm'] # 初登日期 gCModelNme = fee['gCModelNme'] # 车型名称 gCBrandId = fee['gCBrandId'] gCModelCde = fee['gCModelCde'] # 精友车型代码 gCSearchCode = fee['gCSearchCode'] # code查询码 gCValidateCode = fee['gCValidateCode'] # 验证码 gCPlateNo = fee['gCPlateNo'] # 车牌 gCEngNo = fee['gCEngNo'] # 发动机 gNDisplacement = NExhaustCapacity = fee['gNDisplacement'] # 排气量 gCPlateTyp = fee['gCPlateTyp'] # 号牌种类 try: gCCarAge = calc_user_years(SY_fTInsrncBgnTm.split(" ")[0], gCFstRegYm) fee['gCCarAge'] = gCCarAge except: fee['gCCarAge'] = gCCarAge = "306007" # 车龄等级??????????????????????????? gNSeatNum = fee['gNSeatNum'] # 座位数 gNPoWeight = fee['gNPoWeight'] # 整备质量 gNTonage = fee['RVehlcleTonnage'] # 机动车损失保险(主险)#保额----------------------------------------- lNVhlActVal = lNAmt_036001 = fee['lNVhlActVal'] # 机动车损失保险(主险)#保额 fee['lNDeductible_036001'] = lNDeductible_036001 = "2000" # 免赔额 fee['lNDductRate_036001'] = lNDductRate_036001 = "0.15" # http://carply.cic.cn/pcis/policy/universal/quickapp/vhl_quick_offer.jsp?isOffer=1&prodNo=0360&dptCde=32010101&CUnionMrk=0&id=479A78C22656FB9CAFE2C29B6280C930 # 玻璃单独破碎险################################################## # fee['lNAmt_036002']=lNAmt_036002="036002" #玻璃单独破碎险 # fee['lNAmt_036002']=lNAmt_036002=lNIndemLmt_036002="500000" # fee['lCIndemLmtLvl_036002']=lCIndemLmtLvl_036002="306006009" #50万 # fee['lNDductRate__036002']=lNDductRate__036002="0.15" ####################机动车车上人员责任保险(司机)############### # fee['lNDductRate_036003']=lNDductRate_036003="0.15" ####################机动车车上人员责任保险(乘客)############### lNLiabDaysLmt_036004 = int(fee['gNSeatNum']) - 1 # 座位数-1 ######################机动车全车盗窃保险(主险)</################ lNVhlActVal_036005 = lNAmt_036005 = fee['lNVhlActVal_036005'] # fee['lNDductRate_036005']=lNDductRate_036005="0.2" ########################机动车交通事故强制责任险@##################### # fee['lNAmt_033201']=lNAmt_033201='122000' ########玻璃单独破碎险 fee['_l_s30'] = _l_s30 = "303011001" # 国产 # 自燃损失险 lNVhlActVal_036007 = NAmt_036007 = fee['lNVhlActVal_036007'] # 自燃损失险 # fee['lNDductRate_036007']=lNDductRate_036007="0.2" ##########发动机涉水损失险############# ###############车身划痕损失险############## # fee['lNAmt_036013']=lNAmt_036013="2000" # fee['lCIndemLmtLvl_306013']=lCIndemLmtLvl_306013="N03001001" #// 2000元 # lNDductRate_306013="0.15" ###交通违法次数 hCAppNme = iCInsuredNme = jCOwnerNme = fee['hCAppNme'] jCGender = fee['jCGender'] # "1061"#男 jCOwnerAge = fee['jCOwnerAge'] # ="341060"#年龄阶段 # fee['NExhaustCapacity']=NExhaustCapacity="2.354" #排气量 NCurbWt = fee['NCurbWt'] # 整备质量(吨) CTaxItemCde = '398014' gCRegVhlTyp = gCCardDetail = fee['gCRegVhlTyp'] # ='K33' """ PHCC_VHL_CARAGE_341023="341023";//1年以下 PHCC_VHL_CARAGE_341024="341024";// 1-2年 PHCC_VHL_CARAGE_341025="341025";// 2-6年 PHCC_VHL_CARAGE_341026="341026";// 6年以上 PHCC_VHL_CARAGE_341027="341027";// 2年以下 PHCC_VHL_CARAGE_341029="341029";// 2-3年 PHCC_VHL_CARAGE_341030="341030";// 3-4年 PHCC_VHL_CARAGE_341031="341031";// 4年以上 """ # http://carply.cic.cn/pcis/core/js/compress/vhl_offer_app.js?version=704557 # 9900行 判断税目 if int(gNSeatNum) <= 9 and int(float(gNDisplacement) * 1000) <= 1000: CTaxItemCde = "398013" # ["398013", "乘用车9人(含)以下排量1.0升(含)以下的"] elif int(gNSeatNum) <= 9 and int( float(gNDisplacement) * 1000) > 1000 and int( float(gNDisplacement) * 1000) <= 1600: CTaxItemCde = "398014" # ["398014", "乘用车9人(含)以下排量1.0升以上至1.6升(含)的"]); elif int(gNSeatNum) <= 9 and int( float(gNDisplacement) * 1000) > 1600 and int( float(gNDisplacement) * 1000) <= 2000: CTaxItemCde = "398015" # ["398015", "乘用车9人(含)以下排量1.6升以上至2.0升(含)的"]); elif int(gNSeatNum) <= 9 and int( float(gNDisplacement) * 1000) > 2000 and int( float(gNDisplacement) * 1000) <= 2500: CTaxItemCde = "398016" # ["398016", "乘用车9人(含)以下排量2.0升以上至2.5升(含)的"]); elif int(gNSeatNum) <= 9 and int( float(gNDisplacement) * 1000) > 2500 and int( float(gNDisplacement) * 1000) <= 3000: CTaxItemCde = "398017" # ["398017", "乘用车9人(含)以下排量2.5升以上至3.0升(含)的"]); elif int(gNSeatNum) <= 9 and int( float(gNDisplacement) * 1000) > 3000 and int( float(gNDisplacement) * 1000) <= 4000: CTaxItemCde = "398018" # ["398017", "乘用车9人(含)以下排量2.5升以上至3.0升(含)的"]); elif int(gNSeatNum) <= 9 and int(float(gNDisplacement) * 1000) > 4000: CTaxItemCde = "398019" # ["398017", "乘用车9人(含)以下排量2.5升以上至3.0升(含)的"]); elif int(gNSeatNum) > 9 and int(gNSeatNum) < 20: CTaxItemCde = "398020" # ["398020", "商用车9人以上20人以下的中型客车及电车"]); elif int(gNSeatNum) >= 20: CTaxItemCde = "398021" # ["398021", "商用车20人以上(含)的大型客车及电车"]); body = ''' [ { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.Base_DW", "rsCount": "5", "pageSize": "8", "pageNo": "1", "pageCount": "1", "maxCount": "undefined", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "false", "status": "UPDATED", "attributeVoList": [ { _-a"_-fCRenewMrk", _-b"" }, { _-a"SY__-fCAppNo", _-b"" }, { _-a"JQ__-fCAppNo", _-b"" }, { _-a"JQ__-fCOfferNo", _-b"" }, { _-a"SY__-fCOfferNo", _-b"" }, { _-a"JQ__-fNRiskCost", _-b"" }, { _-a"SY__-fNRiskCost", _-b"" }, { _-a"JQ__-fNTargetPrm", _-b"" }, { _-a"SY__-fNTargetPrm", _-b"" }, { _-a"JQ__-fNProfitRatio", _-b"" }, { _-a"SY__-fNProfitRatio", _-b"" }, { _-a"JQ__-fNPayRatio", _-b"" }, { _-a"_-fCPayRatioLevel", _-b"" }, { _-a"SY__-fNPayRatio", _-b"" }, { _-a"_-fNDoubleRiskCost", _-b"" }, { _-a"_-fNDoublePrm", _-b"" }, { _-a"_-fNDoublePayRatio", _-b"" }, { _-a"_-fCDoublePayRatioLevel", _-b"" }, { _-a"JQ__-fNCostRatio", _-b"" }, { _-a"SY__-fNCostRatio", _-b"" }, { _-a"JQ__-fNCostRate", _-b"" }, { _-a"SY__-fNCostRate", _-b"" }, { _-a"JQ__-fCCostRatioLevel", _-b"" }, { _-a"SY__-fCCostRatioLevel", _-b"" }, { _-a"_-fNDoubleCostRate", _-b"" }, { _-a"_-fNDoubleCostRatio", _-b"" }, { _-a"_-fCDoubleCostRatioLevel", _-b"" }, { _-a"_-fCCommonFlag", _-b"0" }, { _-a"_-fCAppTyp", _-b"A" }, { _-a"SY__-fCPlyNo", _-b"" }, { _-a"JQ__-fCPlyNo", _-b"" }, { _-a"_-fNEdrPrjNo", _-b"" }, { _-a"_-fCRelPlyNo", _-b"" }, { _-a"_-fCProdNo", _-b"${SY_JQ_fCProdNo}" }, { _-a"_-fCDptCde", _-b"32010702" }, { _-a"_-fCSlsCde", _-b"" }, { _-a"_-fCHandLe", _-b"" }, { _-a"_-fCBsnsTyp", _-b"1900101" }, { _-a"_-fCChaType", _-b"" }, { _-a"_-fCBsnsSubtyp", _-b"" }, { _-a"_-fCBrkrCde", _-b"" }, { _-a"_-fCBrkrName", _-b"" }, { _-a"_-fCSaleNme", _-b"" }, { _-a"_-fCAgtAgrNo", _-b"" }, { _-a"_-fNSubCoNo", _-b"" }, { _-a"_-fNCommRate", _-b"" }, { _-a"_-fNCommissionRateUpper", _-b"" }, { _-a"SY__-fCRenewMrk", _-b"" }, { _-a"JQ__-fCRenewMrk", _-b"" }, { _-a"JQ__-fCTrunMrk", _-b"0" }, { _-a"SY__-fCTrunMrk", _-b"0" }, { _-a"_-fCPlyTyp", _-b"" }, { _-a"JQ__-fCOrigPlyNo", _-b"" }, { _-a"SY__-fCOrigPlyNo", _-b"" }, { _-a"_-fCOrigInsurer", _-b"" }, { _-a"_-fCAmtCur", _-b"" }, { _-a"SY__-fNAmt", _-b"0.00" }, { _-a"JQ__-fNAmt", _-b"122000.00" }, { _-a"_-fNAmtRmbExch", _-b"" }, { _-a"_-fCPrmCur", _-b"" }, { _-a"SY__-fNCalcPrm", _-b"" }, { _-a"JQ__-fNCalcPrm", _-b"" }, { _-a"SY__-fNPrm", _-b"0.00" }, { _-a"JQ__-fNPrm", _-b"0.00" }, { _-a"_-fNPrmRmbExch", _-b"1" }, { _-a"_-fNIndemLmt", _-b"" }, { _-a"_-fCRatioTyp", _-b"D" }, { _-a"SY__-fNRatioCoef", _-b"1" }, { _-a"JQ__-fNRatioCoef", _-b"1" }, { _-a"_-fNSavingAmt", _-b"" }, { _-a"_-fCPlySts", _-b"" }, { _-a"_-fTTermnTm", _-b"" }, { _-a"_-fCInwdMrk", _-b"" }, { _-a"_-fCCiMrk", _-b"" }, { _-a"_-fCCiTyp", _-b"" }, { _-a"_-fNCiJntAmt", _-b"" }, { _-a"_-fNCiJntPrm", _-b"" }, { _-a"_-fCLongTermMrk", _-b"" }, { _-a"_-fTAppTm", _-b"${fTOprTm}" }, { _-a"_-fCOprTyp", _-b"" }, { _-a"_-fCPrnNo", _-b"" }, { _-a"_-fCIcCardId", _-b"" }, { _-a"SY__-fTInsrncBgnTm", _-b"${SY_fTInsrncBgnTm}" }, { _-a"SY__-fTInsrncEndTm", _-b"${SY_fTInsrncEndTm}" }, { _-a"SY__-fCTmSysCde", _-b"${SY__fCTmSysCde}" }, { _-a"JQ__-fTInsrncBgnTm", _-b"${JQ_fTInsrncBgnTm}" }, { _-a"JQ__-fTInsrncEndTm", _-b"${JQ_fTInsrncEndTm}" }, { _-a"JQ__-fCTmSysCde", _-b"${JQ__fCTmSysCde}" }, { _-a"SY__-fCUnfixSpc", _-b"" }, { _-a"JQ__-fCUnfixSpc", _-b"" }, { _-a"_-fCGrpMrk", _-b"" }, { _-a"_-fCListorcolMrk", _-b"" }, { _-a"_-fCMasterMrk", _-b"" }, { _-a"_-fCPkgNo", _-b"" }, { _-a"_-fCRegMrk", _-b"" }, { _-a"_-fCDecMrk", _-b"" }, { _-a"_-fCJuriCde", _-b"" }, { _-a"_-fCAgriMrk", _-b"0" }, { _-a"_-fCForeignMrk", _-b"" }, { _-a"_-fCImporexpMrk", _-b"" }, { _-a"JQ__-fCManualMrk", _-b"" }, { _-a"SY__-fCManualMrk", _-b"" }, { _-a"_-fCManualMrk", _-b"" }, { _-a"_-fCInstMrk", _-b"" }, { _-a"_-fCVipMrk", _-b"" }, { _-a"_-fCOpenCoverNo", _-b"" }, { _-a"_-fCDisptSttlCde", _-b"007001" }, { _-a"_-fCDisptSttlOrg", _-b"" }, { _-a"_-fCOprCde", _-b"${fCOprCde}" }, { _-a"_-fTOprTm", _-b"${fTOprTm}" }, { _-a"_-fCChkCde", _-b"" }, { _-a"_-fTIssueTm", _-b"" }, { _-a"_-fTUdrTm", _-b"" }, { _-a"_-fCUdrDptCde", _-b"" }, { _-a"_-fCUdrCde", _-b"" }, { _-a"_-fCUdrMrk", _-b"" }, { _-a"_-fCRiFacMrk", _-b"" }, { _-a"_-fCRiChkCde", _-b"" }, { _-a"_-fCRiMrk", _-b"" }, { _-a"_-fTNextEdrBgnTm", _-b"" }, { _-a"_-fTNextEdrEndTm", _-b"" }, { _-a"_-fTNextEdrUdrTm", _-b"" }, { _-a"_-fCRemark", _-b"" }, { _-a"_-fTEdrAppTm", _-b"" }, { _-a"_-fTEdrBgnTm", _-b"" }, { _-a"_-fTEdrEndTm", _-b"" }, { _-a"_-fCEdrMrk", _-b"" }, { _-a"_-fCEdrType", _-b"" }, { _-a"_-fCCrtCde", _-b"" }, { _-a"_-fTCrtTm", _-b"" }, { _-a"_-fCUpdCde", _-b"" }, { _-a"SY__-fTUpdTm", _-b"" }, { _-a"JQ__-fTUpdTm", _-b"" }, { _-a"_-fNRate", _-b"" }, { _-a"_-f_-s1", _-b"" }, { _-a"_-f_-s2", _-b"" }, { _-a"_-f_-s3", _-b"" }, { _-a"_-f_-s4", _-b"" }, { _-a"_-fCLatestMrk", _-b"" }, { _-a"_-fCBidMrk", _-b"" }, { _-a"_-fCPrmSts", _-b"" }, { _-a"_-fNAmtVar", _-b"" }, { _-a"_-fNCalcPrmVar", _-b"" }, { _-a"_-fNPrmVar", _-b"" }, { _-a"_-fNIndemLmtVar", _-b"" }, { _-a"_-fCAppPrsnCde", _-b"" }, { _-a"_-fCAppPrsnNme", _-b"" }, { _-a"_-fCEdrCtnt", _-b"" }, { _-a"_-fCOcPlyNo", _-b"" }, { _-a"_-fCRevertMrk", _-b"" }, { _-a"_-fCEdrRsnBundleCde", _-b"" }, { _-a"_-fNBefEdrPrjNo", _-b"" }, { _-a"_-fNBefEdrAmt", _-b"" }, { _-a"_-fNBefEdrPrm", _-b"" }, { _-a"_-fCEdrNo", _-b"" }, { _-a"JQ__-fCEdrNo", _-b"" }, { _-a"SY__-fCEdrNo", _-b"" }, { _-a"_-fNPrmDisc", _-b"" }, { _-a"_-fNDiscRate", _-b"" }, { _-a"_-fNMaxFeeProp", _-b"" }, { _-a"_-fCFinTyp", _-b"001" }, { _-a"_-fCGrantDptCde", _-b"" }, { _-a"_-fCVipCus", _-b"" }, { _-a"_-fNOrigTimes", _-b"" }, { _-a"_-fCDptAttr", _-b"" }, { _-a"_-fCSalegrpCde", _-b"" }, { _-a"_-fCSlsId", _-b"" }, { _-a"_-fCSlsTel", _-b"" }, { _-a"_-fCSlsNme", _-b"" }, { _-a"_-fCMinUndrDpt", _-b"" }, { _-a"_-fCMinUndrCls", _-b"" }, { _-a"_-fCPkgMrk", _-b"" }, { _-a"_-fCAppStatus", _-b"" }, { _-a"JQ__-fCImmeffMrk", _-b"" }, { _-a"SY__-fCImmeffMrk", _-b"" }, { _-a"_-fCInsrncTm", _-b"" }, { _-a"_-fNBasePrm", _-b"" }, { _-a"_-fNAllPrm", _-b"" }, { _-a"_-fCSusBusiness", _-b"" }, { _-a"JQ__-fCNewFlg", _-b"1" }, { _-a"SY__-fCNewFlg", _-b"1" }, { _-a"_-fTInsrncTm", _-b"" }, { _-a"_-fCOprNm", _-b"" }, { _-a"_-fCSaleTeam", _-b"" }, { _-a"_-fCAgantPer", _-b"" }, { _-a"_-fCVisInsure", _-b"" }, { _-a"_-fCIsTender", _-b"" }, { _-a"_-fCTenderNo", _-b"" }, { _-a"_-fTRepstopExtLastEndTm", _-b"" }, { _-a"_-fCRepstopextStatus", _-b"" }, { _-a"_-fTRepStopExtBgnTm", _-b"" }, { _-a"_-fTRepStopExtEndTm", _-b"" }, { _-a"_-fCRepStopExtRleAppNo", _-b"" }, { _-a"_-fTUntilDate", _-b"" }, { _-a"_-fCMkupFlag", _-b"" }, { _-a"_-fCGrpBaseMrk", _-b"" }, { _-a"_-fCComputerIp", _-b"" }, { _-a"_-fCUsbKey", _-b"" }, { _-a"_-fCPosNo", _-b"" }, { _-a"_-fCChaNmeCode", _-b"B" }, { _-a"_-fCChannelNme", _-b"" }, { _-a"_-fCNewChaType", _-b"B01" }, { _-a"_-fCNewBsnsTyp", _-b"B0105" }, { _-a"_-fCServiceCode", _-b"" }, { _-a"_-fCTeamCode", _-b"" }, { _-a"_-fCTeamName", _-b"" }, { _-a"_-fCServiceId", _-b"" }, { _-a"_-fCPubNetFlag", _-b"" }, { _-a"_-fCDeptName", _-b"" }, { _-a"_-fCAppointAreaCode", _-b"" }, { _-a"_-fCIsFullEndor", _-b"" }, { _-a"_-fNAdditionalCostRate", _-b"" }, { _-a"_-fCOfferPlan", _-b"A" }, { _-a"_-fCClauseType", _-b"01" }, { _-a"_-fCPrmCalcProTyp", _-b"" }, { _-a"_-fCPriskPremFlag", _-b"" }, { _-a"_-fNCarLossPrm", _-b"" }, { _-a"JQ__-fCOfferUseSpc", _-b"" }, { _-a"SY__-fCOfferUseSpc", _-b"" }, { _-a"_-fCOperDpt", _-b"" }, { _-a"_-fCPayAgreement", _-b"" }, { _-a"_-fNIncrementRate", _-b"" }, { _-a"JQ__-fNNoTaxPrm", _-b"" }, { _-a"SY__-fNNoTaxPrm", _-b"" }, { _-a"JQ__-fNAddedTax", _-b"" }, { _-a"SY__-fNAddedTax", _-b"" }, { _-a"_-fCDataSrc", _-b"" }, { _-a"_-fNExpectPayrate", _-b"" }, { _-a"_-fCFiMrk", _-b"" }, { _-a"_-fNJsPrm", _-b"" }, { _-a"_-fNJsAmt", _-b"" }, { _-a"_-fNJcPrm", _-b"" }, { _-a"_-fNJcAmt", _-b"" }, { _-a"_-fCPropertyMrk", _-b"" }, { _-a"_-fNPropertyPrm", _-b"" }, { _-a"_-fNPropertyAmt", _-b"" }, { _-a"_-fCCvrgResult", _-b"" } ] } ] }, { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.Vhl_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "true", "status": "INSERTED", "attributeVoList": [ { _-a"_-gNNewPurchaseTaxValue", _-b"${gNNewPurchaseTaxValue}" }, { _-a"_-gNKindredPrice", _-b"${gNKindredPrice}" }, { _-a"_-gNKindredPriceTax", _-b"${gNKindredPriceTax}" }, { _-a"_-gCVin", _-b"${gCFrmNo}" }, { _-a"_-gCMonDespRate", _-b"${gCMonDespRate}" }, { _-a"_-gNActualValue", _-b"${gNActualValue}" }, { _-a"_-gCLoanVehicleFlag", _-b"0" }, { _-a"JQ__-gCQryCde", _-b"" }, { _-a"SY__-gCQryCde", _-b"" }, { _-a"_-gCVehlcleFamily", _-b"" }, { _-a"_-gCModelDesc", _-b"" }, { _-a"_-gRMarketDate", _-b"" }, { _-a"_-gNAssignPrice", _-b"" }, { _-a"_-gNOfferPurChasePrice", _-b"" }, { _-a"_-gNOfferPurChasePriceMax", _-b"${gNOfferPurChasePriceMax}" }, { _-a"_-gNOfferPurChasePriceMin", _-b"${gNOfferPurChasePriceMin}" }, { _-a"_-gCSnModifyPrices", _-b"0" }, { _-a"_-gCXnModifyPrices", _-b"0" }, { _-a"_-gCFleetMrk", _-b"0" }, { _-a"_-gCVhlPkgNO", _-b"" }, { _-a"_-gCIndustryModelCode", _-b"${gCIndustryModelCode}" }, { _-a"_-gCIndustryModelName", _-b"${gCIndustryModelName}" }, { _-a"_-gCNoticeType", _-b"${gCNoticeType}" }, { _-a"_-gCProdPlace", _-b"${gCProdPlace}" }, { _-a"_-gCHfcode", _-b"0" }, { _-a"_-gCDragWeight", _-b"" }, { _-a"_-gCFamilyCode", _-b"${gCFamilyCode}" }, { _-a"_-gCFamilyName", _-b"${gCFamilyName}" }, { _-a"_-gCEcdemicMrk", _-b"0" }, { _-a"_-gCDevice1Mrk", _-b"0" }, { _-a"_-gCNewVhlFlag", _-b"1" }, { _-a"_-gCNewMrk", _-b"0" }, { _-a"_-gCFstRegYm", _-b"${gCFstRegYm}" }, { _-a"_-gCFrmNo", _-b"${gCFrmNo}" }, { _-a"_-gCModelNme", _-b"${gCModelNme}" }, { _-a"CarModel", _-b"" }, { _-a"searcheVehicleModel", _-b"" }, { _-a"queryPlateCarInfo", _-b"" }, { _-a"_-gCBrandId", _-b"${gCBrandId}" }, { _-a"_-gCModelCde", _-b"${gCModelCde}" }, { _-a"_-gCModelCde2", _-b"" }, { _-a"CarSerachValidate", _-b"" }, { _-a"CarSerachConfirm", _-b"" }, { _-a"_-gCSearchCode", _-b"${gCSearchCode}" }, { _-a"_-gCValidateCode", _-b"${gCValidateCode}" }, { _-a"_-gCPlateNo", _-b"${gCPlateNo}" }, { _-a"_-gCEngNo", _-b"${gCEngNo}" }, { _-a"_-gNDisplacement", _-b"${gNDisplacement}" }, { _-a"_-gCPlateTyp", _-b"${gCPlateTyp}" }, { _-a"_-gNNewPurchaseValue", _-b"${gNNewPurchaseValue}" }, { _-a"_-gNDiscussActualValue", _-b"${gNDiscussActualValue}" }, { _-a"JQ__-gCUsageCde", _-b"309001" }, { _-a"JQ__-gCVhlTyp", _-b"${JQgCVhlTyp}" }, { _-a"_-gCCarAge", _-b"${gCCarAge}" }, { _-a"SY__-gCUsageCde", _-b"309001" }, { _-a"SY__-gCVhlTyp", _-b"${SYgCVhlTyp}" }, { _-a"SY__-g_-s6", _-b"11" }, { _-a"_-gCRegVhlTyp", _-b"${gCRegVhlTyp}" }, { _-a"_-gCCardDetail", _-b"${gCRegVhlTyp}" }, { _-a"_-gCNatOfBusines", _-b"359002" }, { _-a"_-gNTonage", _-b"${gNTonage}" }, { _-a"_-gNSeatNum", _-b"${gNSeatNum}" }, { _-a"_-gTTransferDate", _-b"" }, { _-a"_-gCBillDate", _-b"" }, { _-a"_-gNPoWeight", _-b"${gNPoWeight}" }, { _-a"_-gCDisplacementLvl", _-b"" }, { _-a"_-gCTaxItemCde", _-b"" }, { _-a"_-gCFuelType", _-b"0" } ] } ] }, { "isFilter": "false", "dwType": "GRID_CVRG", "dwName": "prodDef.vhl.Cvrg_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], ${dataObjVoList} }, { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.PrmCoef_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "true", "status": "INSERTED", "attributeVoList": [ { _-a"JQ__-mNDiscountAmount", _-b"" }, { _-a"JQ__-mNCoef", _-b"" }, { _-a"JQ__-mNPriPre", _-b"" }, { _-a"SY__-mCAppNo", _-b"" }, { _-a"SY__-mCPlyNo", _-b"" }, { _-a"JQ__-mCAppNo", _-b"" }, { _-a"JQ__-mCPlyNo", _-b"" }, { _-a"_-mCCrtCde", _-b"" }, { _-a"_-mTCrtTm", _-b"" }, { _-a"_-mCUpdCde", _-b"" }, { _-a"_-mTUpdTm", _-b"" }, { _-a"JQ__-mNClaimTime", _-b"" }, { _-a"SY__-mNClaimTime", _-b"" }, { _-a"JQ__-mNTotalClaimAmount", _-b"" }, { _-a"SY__-mNTotalClaimAmount", _-b"" }, { _-a"_-mNManualProduct", _-b"" }, { _-a"_-mNPreChannelFactor", _-b"" }, { _-a"_-mNPreUnderFactor", _-b"" }, { _-a"_-mNDrinkDriRiseRat", _-b"0" }, { _-a"_-mNProcesseNum", _-b"0" }, { _-a"_-mNProcesseNumB", _-b"0" }, { _-a"_-mNAllDrinkRiseRat", _-b"0" }, { _-a"_-mNLllegalNum", _-b"0" }, { _-a"_-mNDrinkDriRiseRatB", _-b"0.15" }, { _-a"_-mNLllegalNumB", _-b"0" }, { _-a"_-mNUnProcesseNum", _-b"" }, { _-a"_-mNDrunkDri", _-b"0" }, { _-a"_-mNUnProcesseNumB", _-b"" }, { _-a"_-mNSpeedNum", _-b"0" }, { _-a"_-mNBreakRul", _-b"0" }, { _-a"_-mNOverloadNum", _-b"0" }, { _-a"_-mNNoGood", _-b"0" }, { _-a"_-mNOtherNum", _-b"0" }, { _-a"JQ__-mCNdiscRsn", _-b"0" }, { _-a"_-mNDeathToll", _-b"0" }, { _-a"_-mNLyRepRiseRat", _-b"1" }, { _-a"_-mNOneYearNoDanger", _-b"" }, { _-a"_-mNRecordRiseRat", _-b"1" }, { _-a"_-mCSafetyViola", _-b"00" }, { _-a"_-mCAccidentInfo", _-b"00" }, { _-a"_-mCDangerInfo", _-b"00" }, { _-a"SY__-mNDiscountAmount", _-b"" }, { _-a"SY__-mNCoef", _-b"" }, { _-a"SY__-mNPriPre", _-b"" }, { _-a"_-mCOfferPlan", _-b"A" }, { _-a"_-mNNoLossRat", _-b"" }, { _-a"SY__-mNTrafficViolateRat", _-b"" }, { _-a"SY__-mNCarTypeRat", _-b"" }, { _-a"SY__-mNChannelFactor", _-b"" }, { _-a"SY__-mNIndeptUnderRat", _-b"" } ] } ] }, { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.Vhlowner_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "true", "status": "INSERTED", "attributeVoList": [ { _-a"_-jCOwnerCde", _-b"" }, { _-a"_-jCCrtCde", _-b"" }, { _-a"_-jTCrtTm", _-b"" }, { _-a"_-jCUpdCde", _-b"" }, { _-a"_-jTUpdTm", _-b"" }, { _-a"_-j_-s1", _-b"1" }, { _-a"_-jCOwnerNme", _-b"${hCAppNme}" }, { _-a"_-jCOwnerAge", _-b"${jCOwnerAge}" }, { _-a"_-jCGender", _-b"${jCGender}" }, { _-a"_-jCCertfCls", _-b"" }, { _-a"_-jCCertfCde", _-b"" }, { _-a"_-jCCOwnerTyp", _-b"" } ] } ] }, { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.Applicant_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "true", "status": "INSERTED", "attributeVoList": [ { _-a"_-hCAppNme", _-b"${hCAppNme}" } ] } ] }, { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.Insured_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "true", "status": "INSERTED", "attributeVoList": [ { _-a"_-iCInsuredNme", _-b"${hCAppNme}" } ] } ] }, { "isFilter": "false", "dwType": "ONLY_DATA", "dwName": "prodDef.vhl.VsTax_DW", "rsCount": "1", "pageSize": "10", "pageNo": "1", "pageCount": "0", "maxCount": "1000", "toAddFlag": "false", "filterMapList": [ ], "dataObjVoList": [ { "index": "1", "selected": "true", "status": "INSERTED", "attributeVoList": [ { _-a"VsTax.NAggTaxVar", _-b"0.00" }, { _-a"VsTax.NBefEdrTax", _-b"0.00" }, { _-a"VsTax.NBalanceTax", _-b"0.00" }, { _-a"VsTax.CTaxUnit", _-b"0.00" }, { _-a"VsTax.CVehicleNumber", _-b"" }, { _-a"VsTax.CVsTaxMrk", _-b"N" }, { _-a"VsTax.CPaytaxTyp", _-b"T" }, { _-a"VsTax.CAbateMrk", _-b"002" }, { _-a"VsTax.CAbateRsn", _-b"" }, { _-a"VsTax.CFreeType", _-b"" }, { _-a"VsTax.CAbateProp", _-b"" }, { _-a"VsTax.CAbateAmt", _-b"" }, { _-a"VsTax.CTaxReliefCertNo", _-b"" }, { _-a"VsTax.NBeforTax", _-b"" }, { _-a"VsTax.CTaxItemCde", _-b"${CTaxItemCde}" }, { _-a"VsTax.NAnnUnitTaxAmt", _-b"0" }, { _-a"VsTax.CTaxYear", _-b"2017" }, { _-a"VsTax.CLastTaxYear", _-b"2016" }, { _-a"VsTax.TBillDate", _-b"" }, { _-a"VsTax.CTaxpayerId", _-b"" }, { _-a"VsTax.CTaxpayerCertTyp", _-b"01" }, { _-a"VsTax.CTaxpayerCertNo", _-b"" }, { _-a"VsTax.CTaxpayerNme", _-b"" }, { _-a"VsTax.TLastSaliEndDate", _-b"${fTOprTm}" }, { _-a"VsTax.CDrawbackOpr", _-b"" }, { _-a"VsTax.NOverdueDays", _-b"" }, { _-a"VsTax.NOverdueFineProp", _-b"0.0005" }, { _-a"VsTax.NOverdueAmt", _-b"" }, { _-a"VsTax.NChargeProp", _-b"0.05" }, { _-a"VsTax.NChargeAmt", _-b"" }, { _-a"VsTax.NLastYearTaxableMonths", _-b"" }, { _-a"VsTax.NLastYear", _-b"" }, { _-a"VsTax.NTaxableMonths", _-b"" }, { _-a"VsTax.NTaxableAmt", _-b"0.00" }, { _-a"VsTax.TTaxEffBgnTm", _-b"" }, { _-a"VsTax.TTaxEffEndTm", _-b"" }, { _-a"VsTax.NExhaustCapacity", _-b"${gNDisplacement}" }, { _-a"VsTax.NCurbWt", _-b"${NCurbWt}" }, { _-a"VsTax.CTaxPaymentRecptNo", _-b"" }, { _-a"VsTax.CDepartmentNonLocal", _-b"" }, { _-a"VsTax.CTaxAuthorities", _-b"" }, { _-a"VsTax.CDrawbackOprMonth", _-b"" }, { _-a"VsTax.NAggTax", _-b"0" }, { _-a"VsTax.TSaliAppDate", _-b"" }, { _-a"VsTax.CDeclareStatusIA", _-b"" }, { _-a"VsTax.TDeclareDate", _-b"" }, { _-a"VsTax.CCalcTaxFlag", _-b"" } ] } ] } ] ''' # from collections import OrderedDict # body=json.dumps(body, ensure_ascii=False,object_pairs_hook=OrderedDict) # json.loads() # print(body) dataObjVoList = get_insurance_type(insuranceType, gNDiscussActualValue, fee['gNSeatNum'], gCFrmNo) from string import Template body = Template(body) flag = "1" SY_JQ_fCProdNo = "0360_0332" # 商业险_交强险 if insuranceType.get("otherHurtPremium", "0") == "1" or insuranceType.get( "carNickPremium", "0") == "1" or insuranceType.get( "driverDutyPremium", "0") == "1" or insuranceType.get( "passengerDutyPremium", "0") == "1" or insuranceType.get( "carDamagePremium", "0") == "1": flag = "1" else: flag = "0" if insuranceType.get("compulsoryInsurance", "1") == "1" and flag == "1": SY_JQ_fCProdNo = "0360_0332" elif insuranceType.get("compulsoryInsurance", "1") == "0" and flag == "1": SY_JQ_fCProdNo = "0360" # 0360_0332 elif insuranceType.get("compulsoryInsurance", "1") == "1" and flag == "0": SY_JQ_fCProdNo = "0332" body = body.substitute(dataObjVoList=dataObjVoList, gNOfferPurChasePriceMin=gNOfferPurChasePriceMin, gCFamilyCode=gCFamilyCode, SY_fTInsrncBgnTm=SY_fTInsrncBgnTm, gNOfferPurChasePriceMax=gNOfferPurChasePriceMax, gCMonDespRate=gCMonDespRate, JQ__fCTmSysCde=JQ__fCTmSysCde, gNKindredPriceTax=gNKindredPriceTax, gCPlateTyp=gCPlateTyp, SYgCVhlTyp=SYgCVhlTyp, gNPoWeight=gNPoWeight, JQ_fTInsrncEndTm=JQ_fTInsrncEndTm, gCValidateCode=gCValidateCode, gNActualValue=gNActualValue, fCOprCde=fCOprCde, gCModelNme=gCModelNme, gCProdPlace=gCProdPlace, gCPlateNo=gCPlateNo, CTaxItemCde=CTaxItemCde, SY__fCTmSysCde=SY__fCTmSysCde, gNNewPurchaseTaxValue=gNNewPurchaseTaxValue, gNDiscussActualValue=gNDiscussActualValue, gCIndustryModelCode=gCIndustryModelCode, gNSeatNum=gNSeatNum, NCurbWt=NCurbWt, fTOprTm=fTOprTm, NAmt_036007=NAmt_036007, lNVhlActVal=lNVhlActVal, gNKindredPrice=gNKindredPrice, gCBrandId=gCBrandId, gCIndustryModelName=gCIndustryModelName, SY_fTInsrncEndTm=SY_fTInsrncEndTm, gCNoticeType=gCNoticeType, gCFamilyName=gCFamilyName, jCGender=jCGender, gCRegVhlTyp=gCRegVhlTyp, gNTonage=gNTonage, gNDisplacement=gNDisplacement, gCCarAge=gCCarAge, JQ_fTInsrncBgnTm=JQ_fTInsrncBgnTm, hCAppNme=hCAppNme, gCFrmNo=gCFrmNo, gCEngNo=gCEngNo, gCFstRegYm=gCFstRegYm, gCModelCde=gCModelCde, gCSearchCode=gCSearchCode, lNVhlActVal_036005=lNVhlActVal_036005, gNNewPurchaseValue=gNNewPurchaseValue, jCOwnerAge=jCOwnerAge, JQgCVhlTyp=JQgCVhlTyp, SY_JQ_fCProdNo=SY_JQ_fCProdNo) body = body.__str__().replace("\n", "") return urllib.quote(urllib.quote(body))