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 {}
Exemple #2
0
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 "未知异常"
Exemple #3
0
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
Exemple #4
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
Exemple #5
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
Exemple #6
0
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
Exemple #8
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
Exemple #9
0
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))