初始化项目
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
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_rollback import DcmRollback
|
||||
from paste.web import requests
|
||||
|
||||
|
||||
async def get_conv_rollback_request(rollback: DcmRollback, dcm_task: DcmTask):
|
||||
"""
|
||||
创建便民回退请求对象。方法仅创建请求对象,并未实际提交请求,具体由调度方法处理。
|
||||
|
||||
:param rollback: 保存在数据库的回退对象
|
||||
:param dcm_task: 待办工单对象
|
||||
"""
|
||||
api_url = '/home/form/formpreview/save'
|
||||
form_param = {
|
||||
'recID': dcm_task.rec_id,
|
||||
'actID': rollback.act_id
|
||||
}
|
||||
component_list = [
|
||||
{"componentID": 8, "value": rollback.not_assigned_reason}, # 不交办原因
|
||||
{"componentID": 4, "value": rollback.not_assigned}, # 是否不交办
|
||||
{"componentID": 9, "value": rollback.undertake_user_name}, # 承办人员
|
||||
{"componentID": 12, "value": rollback.undertake_phone}, # 联系电话
|
||||
]
|
||||
body = {
|
||||
"formID": 352,
|
||||
"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_rollback_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_rollback_request(dcm_rollback: DcmRollback, dcm_task: DcmTask):
|
||||
"""
|
||||
推送回退请求。
|
||||
|
||||
:param dcm_rollback: 保存在数据库的回退对象
|
||||
:param dcm_task: 待办工单对象
|
||||
"""
|
||||
echo_log(f"正在准备提交便民回退请求...")
|
||||
if apps.get_active_env() in ('dev', '', None):
|
||||
echo_log(f"非生产环境,不实际提交.")
|
||||
return
|
||||
|
||||
request = await get_conv_rollback_request(dcm_rollback, 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_rollback_request
|
||||
)
|
||||
Reference in New Issue
Block a user