优化案件模块
This commit is contained in:
@@ -1340,46 +1340,47 @@ class roxyExhibition(APIView):
|
||||
exclude_project_id=project_id
|
||||
)
|
||||
|
||||
# 处理冲突记录中的JSON格式数据,只显示name字段
|
||||
def process_conflict_records(records):
|
||||
"""处理冲突记录中的JSON格式字段,只提取name"""
|
||||
# 处理冲突记录:将 client_info、party_info、BiddingUnit 字段从 JSON 字符串解析为列表
|
||||
# 直接返回原始列表,不提取 name 字段
|
||||
def parse_json_fields(records):
|
||||
"""将记录中的 JSON 字符串字段解析为列表,不提取 name"""
|
||||
processed = []
|
||||
for record in records:
|
||||
new_record = dict(record)
|
||||
# 处理 client_info 字段
|
||||
# 处理 client_info 字段:如果是 JSON 字符串,解析为列表
|
||||
if 'client_info' in new_record and new_record['client_info']:
|
||||
try:
|
||||
client_data = json.loads(new_record['client_info'])
|
||||
if isinstance(client_data, list):
|
||||
names = [item.get('name', '') for item in client_data if isinstance(item, dict) and item.get('name')]
|
||||
new_record['client_info'] = '、'.join(names) if names else new_record['client_info']
|
||||
if isinstance(new_record['client_info'], str):
|
||||
parsed = json.loads(new_record['client_info'])
|
||||
if isinstance(parsed, list):
|
||||
new_record['client_info'] = parsed
|
||||
except (json.JSONDecodeError, TypeError, ValueError):
|
||||
pass
|
||||
# 处理 party_info 字段
|
||||
pass # 解析失败,保持原值
|
||||
# 处理 party_info 字段:如果是 JSON 字符串,解析为列表
|
||||
if 'party_info' in new_record and new_record['party_info']:
|
||||
try:
|
||||
party_data = json.loads(new_record['party_info'])
|
||||
if isinstance(party_data, list):
|
||||
names = [item.get('name', '') for item in party_data if isinstance(item, dict) and item.get('name')]
|
||||
new_record['party_info'] = '、'.join(names) if names else new_record['party_info']
|
||||
if isinstance(new_record['party_info'], str):
|
||||
parsed = json.loads(new_record['party_info'])
|
||||
if isinstance(parsed, list):
|
||||
new_record['party_info'] = parsed
|
||||
except (json.JSONDecodeError, TypeError, ValueError):
|
||||
pass
|
||||
# 处理 BiddingUnit 字段
|
||||
pass # 解析失败,保持原值
|
||||
# 处理 BiddingUnit 字段:如果是 JSON 字符串,解析为列表
|
||||
if 'BiddingUnit' in new_record and new_record['BiddingUnit']:
|
||||
try:
|
||||
bidding_data = json.loads(new_record['BiddingUnit'])
|
||||
if isinstance(bidding_data, list):
|
||||
names = [item.get('name', '') for item in bidding_data if isinstance(item, dict) and item.get('name')]
|
||||
new_record['BiddingUnit'] = '、'.join(names) if names else new_record['BiddingUnit']
|
||||
if isinstance(new_record['BiddingUnit'], str):
|
||||
parsed = json.loads(new_record['BiddingUnit'])
|
||||
if isinstance(parsed, list):
|
||||
new_record['BiddingUnit'] = parsed
|
||||
except (json.JSONDecodeError, TypeError, ValueError):
|
||||
pass
|
||||
pass # 解析失败,保持原值
|
||||
processed.append(new_record)
|
||||
return processed
|
||||
|
||||
# 添加三个冲突字段,并处理其中的JSON格式数据
|
||||
itme["prefiling_conflicts"] = process_conflict_records(conflict_records.get('prefiling_conflicts', []))
|
||||
itme["project_conflicts"] = process_conflict_records(conflict_records.get('project_conflicts', []))
|
||||
itme["bid_conflicts"] = process_conflict_records(conflict_records.get('bid_conflicts', []))
|
||||
# 添加三个冲突字段,解析 JSON 字符串为列表
|
||||
itme["prefiling_conflicts"] = parse_json_fields(conflict_records.get('prefiling_conflicts', []))
|
||||
itme["project_conflicts"] = parse_json_fields(conflict_records.get('project_conflicts', []))
|
||||
itme["bid_conflicts"] = parse_json_fields(conflict_records.get('bid_conflicts', []))
|
||||
else:
|
||||
# 如果没有找到项目或缺少信息,返回空数组
|
||||
itme["prefiling_conflicts"] = []
|
||||
|
||||
Reference in New Issue
Block a user