def create_rebate_cost_fee(waybill_number, source, waybill_servercode): """ 造运单应付返点数据 :param waybill_number: :param source: :param waybill_servercode: :return: """ service_order_number = "Srv" + str(random.randint(10000000, 99999999)) params = { "shipperCode": waybill_number, "serviceOrderNumber": service_order_number, "serverCode": waybill_servercode, "ytAmount": random.randint(1, 99), "ytCurrency": "RMB", "serviceAmount": random.randint(1, 99), "serviceCurrency": "RMB", "sourceId": source, "serviceBillAmount": random.randint(1, 99), "chargeweight": random.random() * 10, "productCode": ProductCode.yt_product_code, "serverChannelCode": ServerChannelCode.server_channel_code, "shipperOgId": 74, "branchAmount": random.randint(1, 99), "sallerId": 99, "sallerAmount": random.randint(1, 99), "costAmount": random.randint(1, 99), "billCycle": ymd() + "-" + ymd() } request_url = BaseUrl.fms_url + Path.PayableRebate request_interface(request_url, params)
def create_WayBill_fee(waybill_number, waybill_servercode, source): """ 末端运单费用接口 :param waybill_number: :param waybill_servercode: :param source: :return: """ request_data = params_WayBill_fee(waybill_number, waybill_servercode, source) request_url = BaseUrl.fms_url + Path.EndFee request_interface(request_url, request_data)
def create_bill_income_fee(waybill_code, customer_code, income_type, source): """ 空运/清关/中转/末端应收费用接口 :param waybill_code: :param customer_code: :param income_type: :param source: :return: """ if source == 1: source = "YT" else: source = "WT" # 币种 currency_list = ["RMB", "USD", "EUR", "HKD"] currency = random.choice(currency_list) # 销售产品 product_code_list = ["DHL-NL", "FDXGR-CA"] product_code = random.choice(product_code_list) params = [] fee_code_list = ["E1", "QQ", "H5", "E2"] for fee_code in fee_code_list: arrival_date = faker.past_datetime() fee_data = { "Waybill_Code": waybill_code, "Fee_Code": fee_code, "Fee_Name": fee_code, "Fee_Expense_Time": now(), "Zone_Code": None, "Zone_Name": None, "Price_Total_Value": round(random.uniform(100, 999), 2), "Currency": currency, "system_source": source, "Fk_type": "N", "calculate_unit": "KG", "note": "脚本测试数据", "income_type": income_type, "price_level": None, "Customer_Code": customer_code, "Charge_Weight": round(random.uniform(10, 99), 2), "express_sallerid": None, "business_ownership": None, "Product_Code": product_code, "Product_Name": None, "Arrival_Date": str(arrival_date) } params.append(fee_data) request_url = BaseUrl.fms_url + Path.BillIncomeFee request_interface(request_url, params)
def create_clearance_vat_fee(lading_number, waybill_list, fee_count): """ 清关运单费用接口 :param lading_number: :param waybill_list: :param fee_count: :return: """ request_data = params_clearance_vat_fee(lading_number, waybill_list, fee_count) request_url = BaseUrl.fms_url + Path.CustomsVatFee request_interface(request_url, request_data)
def create_clearance_fee(lading_number, fee_count, clearance_servercode): """ 清关提单费用接口 :param lading_number: :param fee_count: :param clearance_servercode: :return: """ request_data = params_clearance_fee(lading_number, fee_count, clearance_servercode) request_url = BaseUrl.fms_url + Path.CustomsFee request_interface(request_url, request_data)
def create_AirTransport_fee(lading_number, fee_count, air_servercode, source, charge_type): """ 空运提单费用接口 :param lading_number: :param fee_count: :param air_servercode: :return: """ request_data = params_AirTransport_fee(lading_number, fee_count, air_servercode, source, charge_type) request_url = BaseUrl.fms_url + Path.AirFee request_interface(request_url, request_data)
def create_OverseasReturn_fee(waybill_number, waybill_servercode, fee_count, source): """ 海外退件运单费用接口 :param waybill_number: :param waybill_servercode: :param fee_count: :param source: :return: """ request_data = params_OverseasReturn_fee(waybill_number, waybill_servercode, fee_count, source) request_url = BaseUrl.fms_url + Path.ReturnFee request_interface(request_url, request_data)
def create_car_fee(car_number, departure_number, server_code, fee_count, order_type): """ 海外中转/发货中转/调拨运输费用接口 :param car_number: :param departure_number: :param server_code: :param fee_count: :param order_type: :return: """ request_data = params_car_fee(car_number, departure_number, server_code, fee_count, order_type) request_url = BaseUrl.fms_url + Path.TransferFee request_interface(request_url, request_data)
def pqm_to_OpeLabrary_fee(waybill_number, operation_type_code): """ 调拨库内应付报价计费接口参数 :param waybill_number: :return: """ params = { "shipper_hawbcode": waybill_number, "orig_warehouse_og_code": "YT-SZ", "operation_type_code": operation_type_code, "operation_time": now(), "weight": round(random.uniform(10, 99), 2), "weight_unit_code": "KG", "system_source_code": 101 } request_url = BaseUrl.pqm_url + Path.CostAllocate request_interface(request_url, params)
def create_rebate_income_fee(waybill_number, source, customer_code): """ 造运单应收返点数据 :param waybill_number: :param source: :param customer_code: :return: """ params = { "shipperCode": waybill_number, "ablerebateAmount": random.random() * 10, "currency": "RMB", "sourceId": source, "customerCode": customer_code, "billCycle": ymd(), "productCode": "productCode" + str(random.randint(1000, 9999)), "chargeweight": random.random() * 10, "shipperOgId": 1, "totaleFreight": random.random() * 10 } request_url = BaseUrl.fms_url + Path.ReceivableRebate request_interface(request_url, params)
def pqm_to_cost(waybill_number, waybill_list, server_code, product_code, customer_code, cost_type, charge_type, source): global api_Cost, jsonstring if source == 1: source = "YT" else: source = "WT" # 判断下income_type,如果是末端环节就不添加下面的子单 detailEntities_list = [] if cost_type != "PS": for sonwaybill_code in waybill_list: ExtraServiceCodes_list = ["CR", "B4", "null"] # "T5", "B3", ExtraServiceCodes = random.sample(ExtraServiceCodes_list, 1) detailEntities_detail = { "sonwaybill_code": sonwaybill_code, "declared_value": 6, "declared_value_currency": "RMB", "charged_weight": "5", "Country": "US", "ExtraServiceCodes": ExtraServiceCodes } detailEntities_list.append(detailEntities_detail) # 空运 jsonstring_air = { "Waybill_Code": waybill_number, "Volume_Weight": round(random.uniform(1000, 9999), 2), "Charge_Weight": round(random.uniform(1000, 9999), 2), "PV_Weight": round(random.uniform(1000, 9999), 2), "PvPlateParam": None, "Tune_Weight": None, "AirServer_Code": None, "Server_Code": server_code, "Airline_Two_Code": "TV", "Airport_Code_Start": "HKG", "Airport_Code_End": "AMS", "Rule_Type": "ZB", # 板型 "Server_Type": "FWF", # 服务类型 "Quo_Type": "FDF", # 价格类型 "Status": None, "Current_date": now_T(), "System_Code": source, "OrgShortCode": source + "-SZ", "Unit_Code": None, "Ticket": 3427, "Box_Number": 100, "CargoRatio": None, "AirCharge_Type": charge_type, "detailEntities": detailEntities_list, "Dimension_TimeType": "DG" } # 清关 jsonstring_clearance = { "waybill_code": waybill_number, "currency_code": "TD", "Server_Code": server_code, "server_type": cost_type, "serverplace_code": "IC0165", "system_code": source, "arrival_date": now(), "country": "", "charge_weight": round(random.uniform(100, 999), 2), "unit_code": "KG", "pieces": 13536, "declared_value": 10, "declared_value_currency": "RMB", "currency": "RMB", "airline": None, "departure_airport": "HKG", "destination_airport": "CDG", "customs_clearance_port": "CDG", # AMS,PRG,CDG "end_place": "", "ticket": 8057, "hs_code": 1, "box_number": 2, "businesstime": now(), "airline_two_code": "TV", "chargtype": "Cost", "lcustomsnumber": 8057, "lcargovaluenumber": 72305.52, "timeunti": "Day", "trackingnumber": "", "dock_system": "CIS", "clearancecharge_type": charge_type, "detailEntities": detailEntities_list, "End_PlaceList": [{ "End_Place_Code": "CPS010", "End_Box_Number": 1, "End_Weight": round(random.uniform(10, 99), 2) }] } # 末端 jsonstring_deliver = { "Waybill_Code": waybill_number, "Currency_Code": "YD", "Server_Code": server_code, "Server_Type": cost_type, "ServerPlace_Code": "LM0252", "System_Code": source, "Og_id_ChargeFirst": source + "-SZ", "Og_id_ChargeSecond": None, "Arrival_Date": now(), "Country": None, "Postcode": None, "City": None, "Province": None, "Charge_Weight": round(random.uniform(10, 99), 2), "Unit_Code": "KG", "Unit_Length": None, "Unit_Area": None, "Unit_Bulk": None, "Unit_Volume": None, "ExtraService": None, "ExtraService_Coefficient": None, "Pieces": 0, "Category_Code": None, "Declared_Value": 0, "Currency": None, "Tariff": None, "Airline": None, "Departure_Airport": None, "Destination_Airport": None, "Customs_Clearance_Port": None, "Start_Place": "AF#01", "end_Place": "AF#01", "Remark": None, "Ticket": 0, "HS_Code": 0, "Box_Number": 0, "First_Long": 0, "Two_Long": 0, "Three_Long": 0, "BusinessTime": now(), "airline_two_code": None, "detailEntities": None, "Goods_Code": None, "IsFinalCharge": False, "ChargType": None, "HCustomsNumber": 0, "MCustomsNumber": 0, "LCustomsNumber": 0, "HCargoValueNumber": 0, "MCargoValueNumber": 0, "LCargoValueNumber": 0, "Charge_Volume": 2, "Tray_Number": 0, "Truck_Number": 0, "TimeUnti": None, "TimeVaule": 0, "TrackingNumber": None } jsonstring_OverseasDispatch = { "Waybill_Code": str(waybill_number), "Currency_Code": "YD", "Customer_Code": customer_code, "Server_Code": server_code, "Server_Type": "PS", "ServerPlace_Code": "LM0252", "System_Code": source, "Og_id_ChargeFirst": source + "-SZ", "Arrival_Date": now(), "Country": "US", "Postcode": 518000, "City": "AT", "Charge_Weight": round(random.uniform(10, 99), 2), "Dock_system": "RMS", "Charge_Pattern": "0" } jsonstring_OverseasReturn = { "Waybill_Code": waybill_number, "Currency_Code": "YD", "Server_Code": server_code, "ServerPlace_Code": "LM0252", "System_Code": source, "Og_id_ChargeFirst": source + "-SZ", "Og_id_ChargeSecond": None, "Arrival_Date": now(), "Charge_Weight": round(random.uniform(10, 99), 2), "Country": "US", "Postcode": 518000, "Unit_Code": "KG", "Unit_Length": None, "Pieces": 0, "Category_Code": None, "Declared_Value": 0, "airline_two_code": None, "Ticket": 0, "Box_Number": 0, "First_Long": 0, "Two_Long": 0, "Three_Long": 0, "detailEntities": [], "Dock_system": "RMS", "Extra_ServicesList": [], "Charge_Pattern": 2 # 末端海外业务方案(0表示正常派送 1表示海外重派 2表示海外退件) } if cost_type == "KY": api_Cost = Path.CostAir jsonstring = json.dumps(jsonstring_air, ensure_ascii=False) elif cost_type == "QG": api_Cost = Path.CostClearance jsonstring = json.dumps(jsonstring_clearance, ensure_ascii=False) elif cost_type == "PS": api_Cost = Path.CostDeliver jsonstring = json.dumps(jsonstring_deliver, ensure_ascii=False) elif cost_type == "CP": api_Cost = Path.CostDeliver jsonstring = json.dumps(jsonstring_OverseasDispatch, ensure_ascii=False) elif cost_type == "TJ": api_Cost = Path.CostDeliver jsonstring = json.dumps(jsonstring_OverseasReturn, ensure_ascii=False) # 请求参数 request_data = { "waybill_code": waybill_number, "jsonstring": jsonstring, "system_source": source, "product_code": product_code, "cost_type": cost_type } if jsonstring_air["AirCharge_Type"] == 1: request_data["cost_type"] = cost_type + "-F" request_url = BaseUrl.pqm_url + api_Cost request_interface(request_url, request_data)
def pqm_to_transport_fee(transport_info, transport_type_code): """ 调拨运输报价计费接口参数 :param transport_info: :param transport_type_code: :return: """ params = { "allocation_labelcode": transport_info["allocation_labelcode"], "transport_hawbcode": transport_info["transport_hawbcode"], "transport_server_code": transport_info["transport_server_code"], "bag_count": transport_info["bag_count"], "express_count": transport_info["express_count"], "transport_total_weight": transport_info["transport_total_weight"], "weight_unit_code": "kg", "orig_warehouse_code": transport_info["orig_warehouse_code"], "dest_warehouse_code": transport_info["dest_warehouse_code"], "transport_send_time": now(), "transport_type_code": transport_info["transport_type_code"], "load_type_code": transport_info["load_type_code"], "transport_service_body_code": transport_info["transport_service_body_code"], "settlement_code": "KC", "transport_code": "ZY", "system_source_code": transport_info["system_source_code"], "first_billing_location_code": "YT-XM", "dest_country_code": "AF", "kc_count": "1", "airline_company_code": "TV", "take_off_code": "HKG", "take_ground_code": "AMS", "service_type_code": "FWF", "fare_type_code": "FDF", "charge_type_code": "", "transport_receive_time": now() } if transport_type_code == "AN": params["charge_type_code"] = "KY" params["transport_code"] = "" request_url = BaseUrl.pqm_url + Path.CostAirTransfer request_interface(request_url, params)
def pqm_to_TransitTransport_fee(waybill_number, waybill_list, car_number, server_code, product_code, start_place, end_place, cost_type, source): """ 海外中转/发货中转应付报价计费接口参数 :param waybill_number: :param car_number: :param server_code: :param product_code: :param start_place: :param end_place: :param cost_type: :param source: :return: """ if source == 1: source = "YT" else: source = "WT" # 判断下income_type,如果是末端环节就不添加下面的子单 detailEntities_list = [] if cost_type != "PS": for sonwaybill_code in waybill_list: ExtraServiceCodes_list = ["CR", "B4"] # "T5", "B3", ExtraServiceCodes = random.sample(ExtraServiceCodes_list, 2) detailEntities_detail = { "sonwaybill_code": sonwaybill_code, "declared_value": 6, "declared_value_currency": "RMB", "charged_weight": "5", "Country": "US", "ExtraServiceCodes": ExtraServiceCodes } detailEntities_list.append(detailEntities_detail) jsonstring = { "Waybill_Code": waybill_number, "Currency_Code": "KC", "Server_Code": server_code, "ServerPlace_Code": server_code, "System_Code": source, "Og_id_ChargeFirst": source + "-SZ", "Arrival_Date": now(), "Charge_Weight": round(random.uniform(10, 99), 2), "Start_Place": start_place, # "US33--美东ACI仓" "DE02--德国WT仓" "end_Place": end_place, "Dock_system": "OTS", "Car_Number": car_number, "Extra_ServicesList": [], "detailEntities": detailEntities_list, "Tray_Number": 0 } request_data = { "waybill_code": waybill_number, "jsonstring": json.dumps(jsonstring, ensure_ascii=False), "system_source": source, "product_code": product_code, "cost_type": cost_type } request_url = BaseUrl.pqm_url + Path.CostTransfer request_interface(request_url, request_data)
def pqm_to_income(waybill_number, waybill_list, server_code, product_code, customer_code, income_type, source): global api_Income if source == 1: source = "YT" else: source = "WT" Country_list = ["US"] # 判断下income_type,如果是末端环节就不添加下面的子单 detailEntities_list = [] if income_type != "PS": for sonwaybill_code in waybill_list: ExtraServiceCodes_list = ["CR", "B4", ""] # "T5", "B3", ExtraServiceCodes = random.sample(ExtraServiceCodes_list, 1) detailEntities_detail = { "sonwaybill_code": sonwaybill_code, "declared_value": 6, "declared_value_currency": "RMB", "charged_weight": "5", "Country": "US", "ExtraServiceCodes": ExtraServiceCodes } detailEntities_list.append(detailEntities_detail) jsonstring = { "Waybill_Code": waybill_number, "Customer_Code": customer_code, "Product_Code": product_code, "Currency_Code": "", "System_Code": source, "Server_Code": server_code, "Og_id_ChargeFirst": source + "-SZ", "Og_id_ChargeSecond": None, "Arrival_Date": now(), "Charge_Weight": random.randint(20, 55), "Country": "US", "Postcode": None, "Unit_Code": "KG", "Pieces": 0, "Category_Code": None, "Declared_Value": 17415.02, "airline_two_code": "KE", "HS_Code": 0, "First_Long": 0, "Two_Long": 0, "Three_Long": 0, "detailEntities": detailEntities_list, "Dock_system": None, "Extra_ServicesList": [], "Currency": "RMB", "sku_number": 71 } # 环节不同,需要更改某些参数 if income_type == "KY": jsonstring["Currency_Code"] = "TD" api_Income = Path.Income elif income_type == "ZY": jsonstring["Currency_Code"] = "KC" api_Income = Path.Income elif income_type == "QG": jsonstring["Currency_Code"] = "TD" api_Income = Path.IncomeClearance elif income_type == "PS": jsonstring["Currency_Code"] = "YD" api_Income = Path.Income request_data = { "waybill_code": waybill_number, "jsonstring": json.dumps(jsonstring, ensure_ascii=False), "system_source": source, "product_code": product_code, "income_type": income_type } request_url = BaseUrl.pqm_url + api_Income request_interface(request_url, request_data)
def create_OpeLabrary_fee(waybill_number, operation_type_code, source): request_data = params_OpeLabrary_fee(waybill_number, operation_type_code, source) request_url = BaseUrl.fms_url + Path.OpeLabraryFee request_interface(request_url, request_data)