def _insurance_calculate(cargo_list: list): insurance_calculate = {} insurance = {} for _cargo in cargo_list: insurance['cargo_insurance'] = utils.get_cargo_insurance(_cargo) insurance['transport_insurance'] = utils.get_liability_insurance( _cargo) insurance_calculate[_cargo] = insurance return insurance_calculate
def _filter_normal_cargo(self): """剔除超限额货物""" normal_cargo_list = [] for _cargo in self.cargo_list: cargo_meta = utils.get_cargo_insurance(_cargo) if self.cargoMoney < float( cargo_meta['CARGO_VALUE_LIMITATION']) * 10000.0: cargo_meta['CARGO_NAME'] = _cargo normal_cargo_list.append(cargo_meta) return normal_cargo_list
def is_over_limitation(self): """判断是否超限额,如果超限返回dict,如果不超限,返回list""" normal_cargo_list = self._filter_normal_cargo() if not normal_cargo_list: cargo_meta = utils.get_cargo_insurance(self.cargo_list[0]) return { 'CARGO_VALUE_LIMITATION': float(cargo_meta['CARGO_VALUE_LIMITATION']), 'CARGO_VALUE_OVER_LIMIT': '1' } else: return normal_cargo_list
def special_cargo_no_insurance(self, user_cargo=None, user_weight=None): # 不保货物 cargo_list = ['锑锭'] if not user_cargo else user_cargo _cargo = random.choice(cargo_list) print(_cargo) cargo_info = self._get_cargo_status_by_name(_cargo) if cargo_info['STATE'] != '1': raise ValueError('货物未审核通过') cargo_insurance = utils.get_cargo_insurance(_cargo) if cargo_insurance: raise ValueError('该货物非不保货物') cargo_insurance_info_dict = self._handle_category_insurance( cargo_insurance) cargo_info.update(cargo_insurance_info_dict) return cargo_info
def special_cargo_in_examine(self, user_cargo=None): # 审核中货物 cargo_list = ['银矿石'] if not user_cargo else user_cargo _cargo = random.choice(cargo_list) print(_cargo) cargo_info = self._get_cargo_status_by_name(_cargo) if cargo_info['STATE'] != '3': raise ValueError('货物状态不是审核中') cargo_insurance = utils.get_cargo_insurance(_cargo) if cargo_insurance != '货物审核中': raise ValueError('审核中货物不应该有保险信息') cargo_insurance_info_dict = self._handle_category_insurance( cargo_insurance) cargo_info.update(cargo_insurance_info_dict) return cargo_info
def special_cargo_single_type(self): # 单险种货物。只有货运险 cargo_list = ['笔记本电脑'] _cargo = random.choice(cargo_list) print(_cargo) cargo_info = self._get_cargo_status_by_name(_cargo) if cargo_info['STATE'] != '1': raise ValueError('货物未审核通过') cargo_insurance = utils.get_cargo_insurance(_cargo) if len(cargo_insurance) != 1: raise ValueError('该货物非单货运险货物。') if cargo_insurance[0]['INSURANCE_TYPE'] != 1: raise ValueError('该货物保险属性错误') cargo_insurance_info_dict = self._handle_category_insurance( cargo_insurance) cargo_info.update(cargo_insurance_info_dict) return cargo_info
def special_cargo_over_limitation(self, user_cargo=None): # 超限额保险货物 cargo_list = ['化妆品'] if not user_cargo else user_cargo _cargo = random.choice(cargo_list) print(_cargo) cargo_info = self._get_cargo_status_by_name(_cargo) if cargo_info['STATE'] != '1': raise ValueError('货物未审核通过') cargo_insurance = utils.get_cargo_insurance(_cargo) if len(cargo_insurance) != 2: raise ValueError('货物支持保险数量错误') for item in cargo_insurance: if item['COMPANY_ID'] != 7: insurance_type = '货运险' if item['INSURANCE_TYPE'] == 1 else '责任险' msg = cargo + '的' + insurance_type + '不是<中国平安保险股份有限公司>' raise ValueError(msg) cargo_insurance_info_dict = {'cargo_insurance_info': cargo_insurance} cargo_info.update(cargo_insurance_info_dict) return cargo_info