初始化项目
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import asyncio
|
||||
import json
|
||||
|
||||
import apps
|
||||
import dock
|
||||
from dock.dcm import dcm_api
|
||||
from tornado.httpclient import HTTPResponse, HTTPRequest
|
||||
|
||||
from models.dcm_task import DcmTask
|
||||
from paste.core.logging import echo_log
|
||||
from models.dcm_dispose import DcmDispose
|
||||
from paste.web import requests
|
||||
|
||||
|
||||
async def get_conv_dispose_request(dcm_dispose: DcmDispose, dcm_task: DcmTask):
|
||||
"""
|
||||
创建便民批转请求对象。方法仅创建请求对象,并未实际提交请求,具体由调度方法处理。
|
||||
|
||||
:param dcm_dispose: 保存在数据库的批转对象
|
||||
:param dcm_task: 待办工单对象
|
||||
"""
|
||||
api_url = '/home/form/formpreview/save'
|
||||
|
||||
form_param = {
|
||||
'recID': dcm_task.rec_id,
|
||||
'actID': dcm_dispose.act_id
|
||||
}
|
||||
component_list = [
|
||||
{"componentID": 9, "value": dcm_dispose.undertake_user_name}, # 承办人员
|
||||
{"componentID": 12, "value": dcm_dispose.undertake_phone} # 联系电话
|
||||
]
|
||||
body = {
|
||||
"formID": 377,
|
||||
"isInsert": "0",
|
||||
"briefParam": True,
|
||||
"formParam": json.dumps(form_param, ensure_ascii=False),
|
||||
"componentList": json.dumps(component_list, ensure_ascii=False)
|
||||
}
|
||||
conv_request = await dcm_api.new_api_request(api_url, body)
|
||||
return conv_request
|
||||
|
||||
|
||||
async def after_conv_dispose_request(response: HTTPResponse, retry_queue: asyncio.Queue[HTTPRequest]):
|
||||
"""
|
||||
提交数字城管后的处理程序。
|
||||
|
||||
:param response: 响应对象
|
||||
:param retry_queue: 重试队列
|
||||
"""
|
||||
echo_log(response.body.decode())
|
||||
echo_log('便民批转请求成功.')
|
||||
# TODO: 这里要做实际的推送成功检查
|
||||
|
||||
|
||||
async def push_conv_dispose_request(dcm_dispose: DcmDispose, dcm_task: DcmTask):
|
||||
"""
|
||||
推送批转请求。
|
||||
|
||||
:param dcm_dispose: 保存在数据库的批转对象
|
||||
:param dcm_task: 待办工单对象
|
||||
"""
|
||||
echo_log(f"正在准备提交便民批转请求...")
|
||||
if apps.get_active_env() in ('dev', '', None):
|
||||
echo_log(f"非生产环境,不实际提交.")
|
||||
return
|
||||
|
||||
request = await get_conv_dispose_request(dcm_dispose, dcm_task)
|
||||
queue = asyncio.Queue()
|
||||
await queue.put(request)
|
||||
# 需要让调用方获取extendInfo参数
|
||||
return await requests.async_concurrency(
|
||||
queue, con_count=dock.CONCURRENCY_COUNT, retry=dock.MAX_RETRY_COUNT,
|
||||
after_request=after_conv_dispose_request
|
||||
)
|
||||
Reference in New Issue
Block a user