Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
39e4150e
提交
39e4150e
authored
4月 23, 2025
作者:
刘擎阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.优化小包同步
上级
f771f662
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
98 行增加
和
21 行删除
+98
-21
cc_bill_loading.py
ccs_connect_tiktok/models/cc_bill_loading.py
+98
-21
没有找到文件。
ccs_connect_tiktok/models/cc_bill_loading.py
浏览文件 @
39e4150e
...
@@ -560,39 +560,116 @@ class CcBl(models.Model):
...
@@ -560,39 +560,116 @@ class CcBl(models.Model):
# 在 Odoo 中运行异步任务
# 在 Odoo 中运行异步任务
responses
=
asyncio
.
run
(
perform_requests
())
responses
=
asyncio
.
run
(
perform_requests
())
# log_values=[]
# log_values=[]
result_dict
=
{}
select_ids
=
[
i
[
2
]
for
i
in
responses
]
if
select_ids
:
select_ids_str
=
'(
%
s)'
%
str
(
select_ids
)[
1
:
-
1
]
sql
=
"select id,tracking_no,state,state_explain,process_time from cc_ship_package where id in
%
s"
%
select_ids_str
self
.
_cr
.
execute
(
sql
)
result
=
self
.
_cr
.
fetchall
()
result_dict
=
{
row
[
0
]:
row
for
row
in
result
}
package_node_sql
=
"select id,tk_code from cc_node where node_type='package'"
self
.
_cr
.
execute
(
package_node_sql
)
package_node_result
=
self
.
_cr
.
fetchall
()
package_node_result_dict
=
{
row
[
0
]:
row
for
row
in
package_node_result
}
update_false_arr
=
[]
# 更新小包is_sync为False
update_true_arr
=
[]
# 更新小包is_sync为True
create_sync_log_value_arr
=
[]
# 创建小包同步日志数据
create_api_log_value_arr
=
[]
# 创建api_log日志数据
utc_time
=
datetime
.
utcnow
()
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
)
user_id
=
self
.
env
.
user
.
id
for
response_item
in
responses
:
for
response_item
in
responses
:
response_data
=
response_item
[
0
]
response_data
=
response_item
[
0
]
logging
.
info
(
'ship response_data:
%
s'
%
response_data
)
logging
.
info
(
'ship response_data:
%
s'
%
response_data
)
data
=
response_item
[
1
]
data
=
response_item
[
1
]
package_id
=
response_item
[
2
]
package_id
=
response_item
[
2
]
package_order
=
self
.
env
[
'cc.ship.package'
]
.
sudo
()
.
browse
(
package_id
)
tuple_data
=
result_dict
.
get
(
package_id
,
[])
if
not
tuple_data
:
continue
tracking_no
=
tuple_data
[
1
]
or
''
state
=
tuple_data
[
2
]
or
''
state_explain
=
tuple_data
[
3
]
or
''
process_time
=
tuple_data
[
4
]
or
''
data_text
=
json
.
dumps
(
data
)
# package_order = self.env['cc.ship.package'].sudo().browse(package_id)
if
response_data
[
'code'
]
!=
0
:
if
response_data
[
'code'
]
!=
0
:
package_order
.
is_sync
=
False
#
package_order.is_sync = False
self
.
_cr
.
commit
()
# 提交事务
update_false_arr
.
append
(
package_id
)
# 更新 is_sync为 False
error_msg
=
response_data
[
'msg'
]
error_msg
=
response_data
[
'msg'
]
request_id
=
response_data
[
'requestID'
]
request_id
=
response_data
[
'requestID'
]
code
=
response_data
[
'code'
]
create_api_log_value_arr
.
append
((
tracking_no
,
utc_time
,
'小包状态轨迹回传:'
+
error_msg
,
False
,
data_text
,
request_id
,
'推出'
,
utc_time
))
self
.
env
[
'ao.tt.api.log'
]
.
sudo
()
.
create_api_log
(
package_order
.
tracking_no
or
''
,
'小包状态轨迹回传:'
+
error_msg
,
data
,
code
,
request_id
,
source
=
'推出'
)
is_ok
=
False
is_ok
=
False
else
:
else
:
# 回传成功
# 回传成功
package_order
.
is_sync
=
True
update_true_arr
.
append
(
package_id
)
# 更新 is_sync为 True
self
.
env
[
'cc.ship.package.sync.log'
]
.
sudo
()
.
create_sync_log
(
state_arr
=
package_node_result_dict
.
get
(
state
,
[])
package_order
.
id
,
'Tiktok'
,
package_order
.
state
.
tk_code
,
package_order
.
state_explain
,
tk_code
=
state_arr
[
1
]
if
state_arr
else
''
package_order
.
process_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
))
create_sync_log_value_arr
.
append
((
package_id
,
utc_time
,
'Tiktok'
,
tk_code
,
process_time
,
state_explain
,
user_id
))
self
.
_cr
.
commit
()
# 提交事务
request_id
=
response_data
[
'requestID'
]
request_id
=
response_data
[
'requestID'
]
self
.
env
[
'ao.tt.api.log'
]
.
sudo
()
.
create_api_log
(
create_api_log_value_arr
.
append
((
tracking_no
,
utc_time
,
''
,
True
,
data_text
,
request_id
,
'推出'
,
utc_time
))
package_order
.
tracking_no
or
''
,
''
,
data
,
0
,
request_id
,
source
=
'推出'
)
if
update_false_arr
:
# log_values.append(
update_false_ids
=
'(
%
s)'
%
str
(
update_false_arr
)[
1
:
-
1
]
# (package_order.id,
sql
=
"update cc_ship_package set is_sync=False where id in
%
s"
%
update_false_ids
# 'Tiktok',
self
.
_cr
.
execute
(
sql
)
# package_order.state.tk_code,
if
update_true_arr
:
# package_order.state_explain or '',
update_true_ids
=
'(
%
s)'
%
str
(
update_true_arr
)[
1
:
-
1
]
# package_order.process_time.strftime('%Y-%m-%d %H:%M:%S')
sql
=
"update cc_ship_package set is_sync=True where id in
%
s"
%
update_true_ids
# ))
self
.
_cr
.
execute
(
sql
)
if
create_sync_log_value_arr
:
# 插入 SQL 语句
insert_sql
=
"""
INSERT INTO cc_ship_package_sync_log (package_id, sync_time, api_customer, process_code, operate_time, operate_remark, operate_user)
VALUES (
%
s,
%
s,
%
s,
%
s,
%
s,
%
s,
%
s)
"""
self
.
_cr
.
executemany
(
insert_sql
,
create_sync_log_value_arr
)
if
create_api_log_value_arr
:
insert_log_sql
=
"""
INSERT INTO ao_tt_api_log (big_bag_no, push_time, error_msg, success_bl, data_text, request_id, source, create_date)
VALUES (
%
s,
%
s,
%
s,
%
s,
%
s,
%
s,
%
s,
%
s)
"""
self
.
_cr
.
executemany
(
insert_log_sql
,
create_api_log_value_arr
)
self
.
_cr
.
commit
()
if
self
.
id
:
update_bl_sql
=
"update cc_bl set unsync_package_count=(select count(*) from cc_ship_package where "
\
"bl_id=
%
s and is_sync=False) where id=
%
s;"
%
(
self
.
id
,
self
.
id
)
self
.
_cr
.
execute
(
update_bl_sql
)
self
.
_cr
.
commit
()
# for response_item in responses:
# response_data = response_item[0]
# logging.info('ship response_data:%s' % response_data)
# data = response_item[1]
# package_id = response_item[2]
# package_order = self.env['cc.ship.package'].sudo().browse(package_id)
# if response_data['code'] != 0:
# package_order.is_sync = False
# self._cr.commit() # 提交事务
# error_msg = response_data['msg']
# request_id = response_data['requestID']
# code = response_data['code']
# self.env['ao.tt.api.log'].sudo().create_api_log(
# package_order.tracking_no or '', '小包状态轨迹回传:' + error_msg, data, code, request_id,
# source='推出')
# is_ok = False
# else:
# # 回传成功
# package_order.is_sync = True
# self.env['cc.ship.package.sync.log'].sudo().create_sync_log(
# package_order.id, 'Tiktok', package_order.state.tk_code, package_order.state_explain,
# package_order.process_time.strftime('%Y-%m-%d %H:%M:%S'))
# self._cr.commit() # 提交事务
# request_id = response_data['requestID']
# self.env['ao.tt.api.log'].sudo().create_api_log(
# package_order.tracking_no or '', '', data, 0, request_id, source='推出')
# # log_values.append(
# # (package_order.id,
# # 'Tiktok',
# # package_order.state.tk_code,
# # package_order.state_explain or '',
# # package_order.process_time.strftime('%Y-%m-%d %H:%M:%S')
# # ))
# self.batch_create_package_sync_logs_by_sql(log_values)
# self.batch_create_package_sync_logs_by_sql(log_values)
# 如果提单有小包变成了清关开始,提单状态变为清关中;如果提单所有小包的清关节点变成"是完成节点",则该提单状态变成已完成
# 如果提单有小包变成了清关开始,提单状态变为清关中;如果提单所有小包的清关节点变成"是完成节点",则该提单状态变成已完成
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论