Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
48082121
提交
48082121
authored
9月 27, 2024
作者:
郑笛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
队列
上级
50fbbe32
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
222 行增加
和
30 行删除
+222
-30
__init__.py
ccs_base/models/__init__.py
+1
-0
common_common.py
ccs_base/models/common_common.py
+10
-0
redis_connection.py
ccs_base/models/redis_connection.py
+30
-0
zh_CN.po
ccs_connect_tiktok/i18n/zh_CN.po
+23
-0
cc_bill_loading.py
ccs_connect_tiktok/models/cc_bill_loading.py
+78
-29
cc_bl_view.xml
ccs_connect_tiktok/views/cc_bl_view.xml
+12
-1
config.py
consumers/config.py
+68
-0
没有可用的文件名
+0
-0
没有找到文件。
ccs_base/models/__init__.py
浏览文件 @
48082121
...
@@ -5,4 +5,5 @@ from . import cc_customs_declaration_order
...
@@ -5,4 +5,5 @@ from . import cc_customs_declaration_order
from
.
import
cc_node_exception_reason
from
.
import
cc_node_exception_reason
from
.
import
mail_thread
from
.
import
mail_thread
from
.
import
common_common
from
.
import
common_common
from
.
import
redis_connection
ccs_base/models/common_common.py
浏览文件 @
48082121
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import
datetime
import
datetime
import
re
import
re
from
.redis_connection
import
redis_connection
from
odoo
import
fields
,
models
,
exceptions
,
api
,
tools
from
odoo
import
fields
,
models
,
exceptions
,
api
,
tools
import
logging
import
logging
__author__
=
'zd'
__author__
=
'zd'
_logger
=
logging
.
getLogger
(
__name__
)
_logger
=
logging
.
getLogger
(
__name__
)
r
=
redis_connection
()
class
CommonCommon
(
models
.
Model
):
class
CommonCommon
(
models
.
Model
):
...
@@ -22,3 +25,10 @@ class CommonCommon(models.Model):
...
@@ -22,3 +25,10 @@ class CommonCommon(models.Model):
d
=
dt
+
datetime
.
timedelta
(
hours
=
8
)
d
=
dt
+
datetime
.
timedelta
(
hours
=
8
)
nTime
=
d
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
nTime
=
d
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
return
nTime
return
nTime
def
get_redis
(
self
):
"""
连接redis
:return:
"""
return
r
ccs_base/models/redis_connection.py
0 → 100644
浏览文件 @
48082121
# -*- coding: utf-8 -*-
from
odoo.tools
import
config
import
redis
import
logging
_logger
=
logging
.
getLogger
(
__name__
)
def
redis_connection
():
# 连接redis
redis_config
=
config
.
misc
.
get
(
"redis"
,
{})
if
redis_config
:
try
:
redis_options
=
dict
(
host
=
redis_config
.
get
(
'redis_host'
),
port
=
redis_config
.
get
(
'redis_port'
),
password
=
redis_config
.
get
(
'password'
),
decode_responses
=
True
,
db
=
redis_config
.
get
(
'db'
),
)
pool
=
redis
.
ConnectionPool
(
**
redis_options
)
r
=
redis
.
Redis
(
connection_pool
=
pool
)
return
r
except
Exception
as
e
:
_logger
.
error
(
u'连接redis失败,原因:
%
s'
%
str
(
e
))
return
'no'
else
:
_logger
.
error
(
u'conf文件中未配置redis连接信息'
)
return
'no'
ccs_connect_tiktok/i18n/zh_CN.po
浏览文件 @
48082121
...
@@ -22,6 +22,11 @@ msgstr ""
...
@@ -22,6 +22,11 @@ msgstr ""
msgid "<span class=\"o_stat_text\">Not Sync Ship Packages</span>"
msgid "<span class=\"o_stat_text\">Not Sync Ship Packages</span>"
msgstr "<span class=\"o_stat_text\">待同步小包</span>"
msgstr "<span class=\"o_stat_text\">待同步小包</span>"
#. module: ccs_connect_tiktok
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.form_cc_bl_view_inherit
msgid "<span class=\"o_stat_text\">Wait Sync Ship Packages</span>"
msgstr "<span class=\"o_stat_text\">等待同步小包</span>"
#. module: ccs_connect_tiktok
#. module: ccs_connect_tiktok
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.form_cc_bl_view_inherit
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.form_cc_bl_view_inherit
msgid "<span class=\"o_stat_text\">Ship Packages</span>"
msgid "<span class=\"o_stat_text\">Ship Packages</span>"
...
@@ -174,6 +179,13 @@ msgstr "未同步"
...
@@ -174,6 +179,13 @@ msgstr "未同步"
msgid "Not Sync Ship Packages"
msgid "Not Sync Ship Packages"
msgstr "待同步小包"
msgstr "待同步小包"
#. module: ccs_connect_tiktok
#. odoo-python
#: code:addons/ccs_connect_tiktok/models/cc_bill_loading.py:0
#, python-format
msgid "Wait Sync Ship Packages"
msgstr "等待同步小包"
#. module: ccs_connect_tiktok
#. module: ccs_connect_tiktok
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_cc_ship_package_sync_log__operate_remark
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_cc_ship_package_sync_log__operate_remark
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.form_cc_ship_package_sync_log_view
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.form_cc_ship_package_sync_log_view
...
@@ -388,3 +400,14 @@ msgstr ""
...
@@ -388,3 +400,14 @@ msgstr ""
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_ao_tt_api_log__request_id
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_ao_tt_api_log__request_id
msgid "请求id"
msgid "请求id"
msgstr ""
msgstr ""
#. module: ccs_connect_tiktok
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_cc_ship_package__wait_sync
#: model_terms:ir.ui.view,arch_db:ccs_connect_tiktok.search_cc_ship_package_view_inherit
msgid "Wait Sync"
msgstr "等待同步"
#. module: ccs_connect_tiktok
#: model:ir.model.fields,field_description:ccs_connect_tiktok.field_cc_bl__waitsync_package_count
msgid "Waitsync Package Count"
msgstr "等待同步小包数"
ccs_connect_tiktok/models/cc_bill_loading.py
浏览文件 @
48082121
import
base64
import
base64
import
json
import
json
import
logging
import
logging
import
time
import
pytz
import
pytz
from
datetime
import
datetime
from
datetime
import
datetime
from
lxml
import
etree
from
lxml
import
etree
...
@@ -124,6 +126,7 @@ class CcShipPackage(models.Model):
...
@@ -124,6 +126,7 @@ class CcShipPackage(models.Model):
_inherit
=
"cc.ship.package"
_inherit
=
"cc.ship.package"
is_sync
=
fields
.
Boolean
(
'Is Sync'
,
default
=
False
)
is_sync
=
fields
.
Boolean
(
'Is Sync'
,
default
=
False
)
wait_sync
=
fields
.
Boolean
(
'Wait Sync'
,
default
=
False
)
# 等待同步
tk_code
=
fields
.
Char
(
related
=
'state.tk_code'
,
store
=
True
,
string
=
'TK Code'
,
help
=
'TK Code'
)
tk_code
=
fields
.
Char
(
related
=
'state.tk_code'
,
store
=
True
,
string
=
'TK Code'
,
help
=
'TK Code'
)
# 增加同步日志纪录字段
# 增加同步日志纪录字段
...
@@ -181,35 +184,65 @@ class CcShipPackage(models.Model):
...
@@ -181,35 +184,65 @@ class CcShipPackage(models.Model):
if
not
self
.
is_sync
and
self
.
state
and
self
.
state
.
tk_code
:
if
not
self
.
is_sync
and
self
.
state
and
self
.
state
.
tk_code
:
data
=
self
.
get_callback_track_data
()
data
=
self
.
get_callback_track_data
()
if
is_push
:
if
is_push
:
# 连接redis
redis_conn
=
self
.
env
[
'common.common'
]
.
sudo
()
.
get_redis
()
if
redis_conn
==
'no'
:
raise
ValidationError
(
'请先配置redis'
)
tt_api_obj
=
self
.
env
[
"ao.tt.api"
]
.
sudo
()
tt_api_obj
=
self
.
env
[
"ao.tt.api"
]
.
sudo
()
response
=
tt_api_obj
.
callback_track
(
data
)
timestamp
=
int
(
time
.
time
())
response_data
=
response
.
json
()
sign
=
tt_api_obj
.
generate_sign
(
timestamp
,
data
)
if
response_data
[
'code'
]
!=
0
:
app_key
=
self
.
env
[
"ir.config_parameter"
]
.
sudo
()
.
get_param
(
'tt_app_key'
)
or
''
self
.
is_sync
=
False
version
=
self
.
env
[
"ir.config_parameter"
]
.
sudo
()
.
get_param
(
'tt_version'
)
or
'3.0'
self
.
_cr
.
commit
()
tt_url
=
self
.
env
[
"ir.config_parameter"
]
.
sudo
()
.
get_param
(
'tt_url'
)
or
''
error_msg
=
response_data
[
'msg'
]
vals
=
{
request_id
=
response_data
[
'requestID'
]
'action'
:
'post'
,
code
=
response_data
[
'code'
]
'url'
:
tt_url
+
'/logistics/provider/cross_border/callback_track?country=GB'
,
self
.
env
[
'ao.tt.api.log'
]
.
sudo
()
.
create_api_log
(
self
.
tracking_no
or
''
,
'data'
:
data
,
'小包状态轨迹回传:'
+
error_msg
,
'sign'
:
sign
,
data
,
'timestamp'
:
timestamp
,
code
,
'version'
:
version
,
request_id
,
source
=
'推出'
)
'app_key'
:
app_key
,
'ship_package_info'
:
{
return
error_msg
'id'
:
self
.
id
,
else
:
'tracking_no'
:
self
.
tracking_no
or
''
,
# 回传成功
'tk_code'
:
self
.
state
.
tk_code
,
self
.
is_sync
=
True
'state_explain'
:
self
.
state_explain
or
''
,
self
.
env
[
'cc.ship.package.sync.log'
]
.
sudo
()
.
create_sync_log
(
self
.
id
,
'Tiktok'
,
self
.
state
.
tk_code
,
'process_time'
:
self
.
process_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
),
self
.
state_explain
,
'create_user_id'
:
self
.
env
.
user
.
id
,
self
.
process_time
.
strftime
(
},
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
))
}
self
.
wait_sync
=
True
self
.
_cr
.
commit
()
self
.
_cr
.
commit
()
request_id
=
response_data
[
'requestID'
]
redis_conn
.
lpush
(
'package_track_list'
,
json
.
dumps
(
vals
))
self
.
env
[
'ao.tt.api.log'
]
.
sudo
()
.
create_api_log
(
self
.
tracking_no
or
''
,
''
,
data
,
0
,
request_id
,
# tt_api_obj = self.env["ao.tt.api"].sudo()
source
=
'推出'
)
# response = tt_api_obj.callback_track(data)
# response_data = response.json()
return
''
# if response_data['code'] != 0:
# self.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(self.tracking_no or '',
# '小包状态轨迹回传:' + error_msg,
# data,
# code,
# request_id, source='推出')
#
# return error_msg
# else:
# # 回传成功
# self.is_sync = True
# self.env['cc.ship.package.sync.log'].sudo().create_sync_log(self.id, 'Tiktok', self.state.tk_code,
# self.state_explain,
# self.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(self.tracking_no or '', '', data, 0, request_id,
# source='推出')
#
# return ''
else
:
else
:
self
.
is_sync
=
True
self
.
is_sync
=
True
self
.
env
[
'cc.ship.package.sync.log'
]
.
sudo
()
.
create_sync_log
(
self
.
id
,
'Tiktok'
,
self
.
state
.
tk_code
,
self
.
env
[
'cc.ship.package.sync.log'
]
.
sudo
()
.
create_sync_log
(
self
.
id
,
'Tiktok'
,
self
.
state
.
tk_code
,
...
@@ -229,8 +262,10 @@ class CcBl(models.Model):
...
@@ -229,8 +262,10 @@ class CcBl(models.Model):
# 增加未同步小包数量字段
# 增加未同步小包数量字段
unsync_package_count
=
fields
.
Integer
(
'Unsync Package Count'
,
compute
=
'_compute_unsync_package_count'
)
unsync_package_count
=
fields
.
Integer
(
'Unsync Package Count'
,
compute
=
'_compute_unsync_package_count'
)
# 增加等待同步小包数量字段
waitsync_package_count
=
fields
.
Integer
(
'Waitsync Package Count'
,
compute
=
'_compute_unsync_package_count'
)
# 计算未同步小包数量
# 计算未同步小包数量
,等待同步小包数量
@api.depends
(
'ship_package_ids'
)
@api.depends
(
'ship_package_ids'
)
def
_compute_unsync_package_count
(
self
):
def
_compute_unsync_package_count
(
self
):
for
record
in
self
:
for
record
in
self
:
...
@@ -239,11 +274,14 @@ class CcBl(models.Model):
...
@@ -239,11 +274,14 @@ class CcBl(models.Model):
record
.
unsync_package_count
=
len
(
record_counts
)
record
.
unsync_package_count
=
len
(
record_counts
)
else
:
else
:
record
.
unsync_package_count
=
0
record
.
unsync_package_count
=
0
wait_sync_counts
=
record
.
ship_package_ids
.
filtered
(
lambda
r
:
r
.
wait_sync
)
record
.
waitsync_package_count
=
len
(
wait_sync_counts
)
# 定义一个方法, 获取提单下的所有未同步的小包,并回传小包状态
# 定义一个方法, 获取提单下的所有未同步的小包,并回传小包状态
def
callback_track
(
self
):
def
callback_track
(
self
):
for
item
in
self
:
for
item
in
self
:
ship_packages
=
self
.
env
[
'cc.ship.package'
]
.
search
([(
'bl_id'
,
'='
,
item
.
id
),
(
'is_sync'
,
'='
,
False
)])
ship_packages
=
self
.
env
[
'cc.ship.package'
]
.
search
([
(
'bl_id'
,
'='
,
item
.
id
),
(
'is_sync'
,
'='
,
False
),
(
'wait_sync'
,
'='
,
False
)])
for
package
in
ship_packages
:
for
package
in
ship_packages
:
package
.
callback_track
()
package
.
callback_track
()
return
True
return
True
...
@@ -274,6 +312,17 @@ class CcBl(models.Model):
...
@@ -274,6 +312,17 @@ class CcBl(models.Model):
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_sync'
,
'='
,
False
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_sync'
,
'='
,
False
)],
}
}
# 创建显示包裹的action
def
action_show_wait_sync_ship_package
(
self
):
# 返回一个action,显示包裹
return
{
'name'
:
_
(
'Wait Sync Ship Packages'
),
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.ship.package'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'wait_sync'
,
'='
,
True
)],
}
def
search_bl_info
(
self
,
pda_lang
=
False
):
def
search_bl_info
(
self
,
pda_lang
=
False
):
"""
"""
查询提单信息
查询提单信息
...
...
ccs_connect_tiktok/views/cc_bl_view.xml
浏览文件 @
48082121
...
@@ -21,6 +21,9 @@
...
@@ -21,6 +21,9 @@
<field
name=
"inherit_id"
ref=
"ccs_base.form_cc_bl_view"
/>
<field
name=
"inherit_id"
ref=
"ccs_base.form_cc_bl_view"
/>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<!-- # header之间增加一个按钮,调用自定义的方法-->
<!-- # header之间增加一个按钮,调用自定义的方法-->
<xpath
expr=
"//button[@name='%(ccs_base.action_batch_input_ship_package_wizard)d']"
position=
"attributes"
>
<attribute
name=
"attrs"
>
{'invisible': [('waitsync_package_count', '>', 0)]}
</attribute>
</xpath>
<header
position=
"inside"
>
<header
position=
"inside"
>
<button
name=
"callback_track"
string=
"Sync Package Status"
type=
"object"
/>
<button
name=
"callback_track"
string=
"Sync Package Status"
type=
"object"
/>
<button
name=
"batch_action_sync"
string=
"Sync CC Attachment"
type=
"object"
/>
<button
name=
"batch_action_sync"
string=
"Sync CC Attachment"
type=
"object"
/>
...
@@ -44,6 +47,13 @@
...
@@ -44,6 +47,13 @@
<span
class=
"o_stat_text"
>
Not Sync Ship Packages
</span>
<span
class=
"o_stat_text"
>
Not Sync Ship Packages
</span>
</div>
</div>
</button>
</button>
<button
name=
"action_show_wait_sync_ship_package"
type=
"object"
class=
"oe_stat_button"
icon=
"fa-circle-o-notch"
>
<div
class=
"o_stat_info"
>
<field
name=
"waitsync_package_count"
widget=
"badge"
decoration-danger=
"1 == 1"
/>
<span
class=
"o_stat_text"
>
Wait Sync Ship Packages
</span>
</div>
</button>
</button>
</button>
</field>
</field>
</record>
</record>
...
@@ -57,7 +67,7 @@
...
@@ -57,7 +67,7 @@
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"state"
position=
"after"
>
<field
name=
"state"
position=
"after"
>
<field
name=
"is_sync"
/>
<field
name=
"is_sync"
/>
<field
name=
"wait_sync"
/>
</field>
</field>
<tree
position=
"attributes"
>
<tree
position=
"attributes"
>
...
@@ -74,6 +84,7 @@
...
@@ -74,6 +84,7 @@
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<search
position=
"inside"
>
<search
position=
"inside"
>
<filter
string=
"Not Sync"
name=
"filter_is_sync"
domain=
"[('is_sync','=',False)]"
/>
<filter
string=
"Not Sync"
name=
"filter_is_sync"
domain=
"[('is_sync','=',False)]"
/>
<filter
string=
"Wait Sync"
name=
"filter_wait_sync"
domain=
"[('wait_sync','=',True)]"
/>
</search>
</search>
</field>
</field>
</record>
</record>
...
...
consumers/config.py
0 → 100644
浏览文件 @
48082121
# coding=utf-8
# 本地
# db_ip = "127.0.0.1"
# db_port = "8066"
# db_name = "ao"
# db_user = "admin"
# db_password = "123"
#
redis_options
=
dict
(
host
=
'127.0.0.1'
,
port
=
6379
,
# password='topodoo1314',
decode_responses
=
True
,
db
=
0
)
postgresql_options
=
dict
(
host
=
"127.0.0.1"
,
port
=
5432
,
database
=
"hh_ccs"
,
user
=
"odoo"
,
password
=
"odoo"
,
)
# 测试
# db_ip = "121.199.167.133"
# db_port = "8369"
# db_name = "airorder0309"
# db_user = "admin"
# db_password = "123123"
#
# redis_options = dict(
# host='172.18.0.6',
# port=6379,
# # password='top123',
# decode_responses=True,
# db=3
# )
# postgresql_options = dict(
# host="172.18.0.2",
# port=5432,
# database="airorder0309",
# user="ao",
# password="ao",
# )
# product
# db_ip = "172.18.183.214"
# db_port = "9169"
# db_name = "air_order"
# db_user = "admin"
# db_password = "YHB1408ups"
#
# redis_options = dict(
# host='172.18.183.214',
# port=32768,
# password='top123',
# decode_responses=True,
# db=3
# )
# postgresql_options = dict(
# host="pgm-wz94v126235u6syw.pg.rds.aliyuncs.com",
# port="3433",
# database="air_order",
# user="ao",
# password="ao888123../",
# )
浏览文件 @
48082121
No preview for this file type
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论