def explain(self, info: AttrDict) -> str: 'Format the query results.' info.arrDep = dict(A='到达', D='离开').get(info.arrDepId, '到达') info.cdyName = dict(E='空车', L=info.cdyName).get(info.carLE, '') if info.cdyName[-1].isdigit(): info.cdyName += '类货物' if not info.carKind.endswith('车'): info.carKind += '车' if not info.wbID: info.wbID = info.wbNbr explaination = ''' 截至 {eventDate} 时为止,您查询的{conName[由{}托运的]} {carNo[ {} 号]}{carType[ {} 型]}{carKind} %s已{arrDep}{eventProvince[位于{}{eventCity}的]} {eventAdm}{eventStation}站 {dzlc[,距离终点站{destStation}站还有 {} km]}。 ''' explaination %= ''' 已被编入由{cdyAdm}{cdyStation}站 开{destAdm[往{}]}{destStation[{}站]} 的 {trainId} 次列车机后第 {trainOrder} 位, 负责运送{wbID[编号为 {} 的]}{cdyName}。 该列车现 ''' if int(info.trainOrder) else '' return self.format(strip_lines(explaination), **info)
def explain(self, info: AttrDict) -> str: 'Convert the query result to a human-readable text message.' # remove trailing whitespace and null values for k, v in info.items(): info[k] = str(v).rstrip() if info[k] in ['0', '-1', '发货人']: info[k] = '' # rename some fields to fit into the template converters = { 'fz': 'cdyStation', 'dz': 'destStation', 'pm': 'cdyName', 'xh': 'carNo', 'xt': 'arrDepId', 'carType': 'carKind', 'tyrName': 'shpName', 'conName': 'shpName', 'wbID': 'wbNbr', } for k, v in converters.items(): info[k] = info.get(k, '') info[v] = info.get(v) or info[k] if info.conName == info.shpName: info.conName = '' elif info.conName: info.conName = ',发往' + info.conName if info.xh: info.carKind = '集装箱' info.carLE = 'L' if info.cdyName else 'E' elif info.carType.startswith(info.carKind): info.carKind = '车辆' if not info.cdyName: status = '' elif info.carLE == 'L': status = '负责运送{wbNbr[单号为 {} 的]}{cdyName}' if info.cdyName[-1:].isdigit(): info.cdyName += '型集装箱' else: status = '当前状态为{cdyName}{wbNbr[,运单号为 {}]}' if info.cdyName.endswith('空'): info.cdyName += '车' if info.get('trainId'): info.train = ' %s 次列车' % info.trainId info.arrDep = { 'A': '到达', 'D': '离开', '在站': '到达', '在途': '离开', }.get(info.arrDepId, '到达') explanation = ''' 截至 {eventDate} 时为止,您查询的{shpName[由{}托运{conName}的]} {carNo[ {} 号]}{carType[ {} 型]}{carKind} {cdyStation[已从{cdyAdm}{}站发出,]} {destStation[正前往{destAdm}{}站,]}%s{cdyName[。该车]} {train[现被编入{}]}{trainOrder[机后第 {} 位]}{train[,]} 目前已{arrDep}{eventProvince[位于{}{eventCity}的]} {eventAdm}{eventStation}站 {dzlc[,距离终点站{destStation}站还有 {} km]}。 ''' % status return self.format(strip_lines(explanation), **info)