80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
import json
|
|
import sys
|
|
|
|
import requests
|
|
|
|
|
|
def main() -> int:
|
|
api_base = sys.argv[1].rstrip("/")
|
|
account = sys.argv[2]
|
|
password = sys.argv[3]
|
|
template_id = sys.argv[4]
|
|
|
|
payload = {
|
|
"甲方名称": "甲方物业公司",
|
|
"乙方名称": "乙方服务公司",
|
|
"项目/物业名称": "测试小区",
|
|
"物业坐落": "北京市朝阳区测试路1号",
|
|
"物业类型": "住宅",
|
|
"服务区域/范围": "全区物业服务",
|
|
"服务内容和标准": "保洁安保维修",
|
|
"服务期限": "2026年1月1日至2026年12月31日",
|
|
"物业服务费标准": "每月10万元",
|
|
"费用计收方式": "按月支付",
|
|
"付款周期/缴费期限": "每月5日前支付",
|
|
"共用部位/共用设施设备维护": "乙方负责日常维护",
|
|
"维修资金/专项维修安排": "按维修基金制度执行",
|
|
"公共秩序和安全协助事项": "安保巡逻与秩序维护",
|
|
"环境卫生与绿化维护": "保洁与绿化养护",
|
|
"业主/使用人义务": "遵守物业管理制度",
|
|
"业主委员会/授权依据": "业委会授权决议",
|
|
"交接验收与资料移交": "完工交接清单",
|
|
"违约责任": "违约方承担违约责任",
|
|
"争议解决方式": "北京仲裁委员会仲裁",
|
|
"签署日期": "2026-05-27",
|
|
}
|
|
|
|
login = requests.post(
|
|
f"{api_base}/auth/login",
|
|
json={"account": account, "password": password},
|
|
timeout=30,
|
|
)
|
|
login.raise_for_status()
|
|
token = login.json()["data"]["access_token"]
|
|
headers = {"Authorization": f"Bearer {token}"}
|
|
|
|
form = {
|
|
"template_id": template_id,
|
|
"variable_values_json": json.dumps(payload, ensure_ascii=False),
|
|
"export_format": "txt",
|
|
}
|
|
|
|
preview = requests.post(
|
|
f"{api_base}/contracts/preview",
|
|
headers={**headers, "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"},
|
|
data=form,
|
|
timeout=60,
|
|
)
|
|
preview.raise_for_status()
|
|
|
|
generate = requests.post(
|
|
f"{api_base}/contracts/generate",
|
|
headers={**headers, "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"},
|
|
data=form,
|
|
timeout=180,
|
|
)
|
|
generate.raise_for_status()
|
|
|
|
result = {
|
|
"preview_status": preview.status_code,
|
|
"preview_body": preview.json(),
|
|
"generate_status": generate.status_code,
|
|
"generate_body": generate.json(),
|
|
}
|
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|