Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
7827b5d6
提交
7827b5d6
authored
2月 08, 2025
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
上传接口初步提交
上级
32de84af
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
78 行增加
和
6 行删除
+78
-6
add_exception_info_wizard.py
ccs_base/wizard/add_exception_info_wizard.py
+11
-0
order_controller.py
ccs_connect_tiktok/controllers/order_controller.py
+59
-4
cc_bill_loading.py
ccs_connect_tiktok/models/cc_bill_loading.py
+8
-2
没有找到文件。
ccs_base/wizard/add_exception_info_wizard.py
浏览文件 @
7827b5d6
...
@@ -37,6 +37,17 @@ class AddExceptionInfoWizard(models.TransientModel):
...
@@ -37,6 +37,17 @@ class AddExceptionInfoWizard(models.TransientModel):
(
'en_US'
,
'English'
)
(
'en_US'
,
'English'
)
],
string
=
'Email Language'
,
default
=
get_language
)
# 邮件语言
],
string
=
'Email Language'
,
default
=
get_language
)
# 邮件语言
def
create_add_exception_wizard
(
self
,
action_type
,
exception_ids
,
big_package_ids
=
[],
ship_package_ids
=
[],
send_email
=
False
,
email_language
=
'zh_CN'
):
vals
=
{
'action_type'
:
action_type
,
'big_package_ids'
:
[(
6
,
0
,
big_package_ids
)],
'exception_ids'
:
[(
6
,
0
,
exception_ids
)],
'send_email'
:
True
,
'email_language'
:
email_language
,
}
return
vals
def
confirm
(
self
):
def
confirm
(
self
):
for
record
in
self
:
for
record
in
self
:
# 更新小包的异常信息
# 更新小包的异常信息
...
...
ccs_connect_tiktok/controllers/order_controller.py
浏览文件 @
7827b5d6
...
@@ -4,6 +4,7 @@ import logging
...
@@ -4,6 +4,7 @@ import logging
import
math
import
math
import
random
import
random
import
re
import
re
from
datetime
import
timedelta
from
odoo
import
http
,
fields
,
exceptions
,
_
from
odoo
import
http
,
fields
,
exceptions
,
_
from
odoo.http
import
request
from
odoo.http
import
request
...
@@ -128,6 +129,7 @@ class OrderController(http.Controller):
...
@@ -128,6 +129,7 @@ class OrderController(http.Controller):
bl_no
=
kwargs
[
'bl_no'
]
bl_no
=
kwargs
[
'bl_no'
]
# bl_obj = request.env['cc.bl'].sudo().search([('bl_no', '=', bl_no)]) # 提单
# bl_obj = request.env['cc.bl'].sudo().search([('bl_no', '=', bl_no)]) # 提单
state_arr
=
[
'draft'
,
'ccing'
]
state_arr
=
[
'draft'
,
'ccing'
]
tally_time
=
''
bl_obj
=
request
.
env
[
'cc.bl'
]
.
sudo
()
.
deal_bl_no
(
bl_no
)
# 提单号去掉杠和空格,并转换为小写
bl_obj
=
request
.
env
[
'cc.bl'
]
.
sudo
()
.
deal_bl_no
(
bl_no
)
# 提单号去掉杠和空格,并转换为小写
if
bl_obj
:
if
bl_obj
:
if
bl_obj
.
state
in
state_arr
:
if
bl_obj
.
state
in
state_arr
:
...
@@ -144,7 +146,7 @@ class OrderController(http.Controller):
...
@@ -144,7 +146,7 @@ class OrderController(http.Controller):
ship_package_obj
=
request
.
env
[
'cc.ship.package'
]
.
sudo
()
.
search
(
ship_package_obj
=
request
.
env
[
'cc.ship.package'
]
.
sudo
()
.
search
(
[(
'logistic_order_no'
,
'='
,
logistic_order_no
)])
# 大包号
[(
'logistic_order_no'
,
'='
,
logistic_order_no
)])
# 大包号
if
ship_package_obj
:
if
ship_package_obj
:
ship_package_ids
.
append
(
ship_package_obj
.
id
)
ship_package_ids
.
append
(
ship_package_obj
)
for
excep_item
in
exception_cause_ids
:
for
excep_item
in
exception_cause_ids
:
ship_package_exception_arr
[
excep_item
]
=
[
ship_package_obj
.
id
]
ship_package_exception_arr
[
excep_item
]
=
[
ship_package_obj
.
id
]
ship_package_obj
.
update_exception_info
(
exception_cause_ids
)
# 修改异常信息
ship_package_obj
.
update_exception_info
(
exception_cause_ids
)
# 修改异常信息
...
@@ -174,15 +176,17 @@ class OrderController(http.Controller):
...
@@ -174,15 +176,17 @@ class OrderController(http.Controller):
big_package_obj
=
request
.
env
[
'cc.big.package'
]
.
sudo
()
.
search
(
big_package_obj
=
request
.
env
[
'cc.big.package'
]
.
sudo
()
.
search
(
[(
'big_package_no'
,
'='
,
big_package_no
)])
# 大包号
[(
'big_package_no'
,
'='
,
big_package_no
)])
# 大包号
if
big_package_obj
:
if
big_package_obj
:
ship_package_arr
+=
big_package_obj
.
ship_package_ids
# 小包
if
exception_cause_ids
:
for
excep_item
in
exception_cause_ids
:
for
excep_item
in
exception_cause_ids
:
big_package_exception_arr
[
excep_item
]
=
[
big_package_obj
.
id
]
big_package_exception_arr
[
excep_item
]
=
[
big_package_obj
.
id
]
big_package_obj
.
update_exception_info
(
exception_cause_ids
)
# 修改异常信息
if
big_package_obj
.
tally_state
==
'unprocessed_goods'
:
if
big_package_obj
.
tally_state
==
'unprocessed_goods'
:
ship_package_ids
+=
big_package_obj
.
ship_package_ids
# 小包
big_package_obj
.
update_big_package_info
(
action_type
=
action_type
,
big_package_obj
.
update_big_package_info
(
action_type
=
action_type
,
tally_state
=
tally_state
,
tally_state
=
tally_state
,
tally_user_id
=
tally_user_id
,
tally_user_id
=
tally_user_id
,
tally_time
=
tally_time
)
# 修改理货信息
tally_time
=
tally_time
)
# 修改理货信息
big_package_obj
.
update_exception_info
(
exception_cause_ids
)
# 修改异常信息
else
:
else
:
error_no_arr
.
append
(
big_package_no
)
error_no_arr
.
append
(
big_package_no
)
if
len
(
error_no_arr
)
>
0
:
if
len
(
error_no_arr
)
>
0
:
...
@@ -211,14 +215,16 @@ class OrderController(http.Controller):
...
@@ -211,14 +215,16 @@ class OrderController(http.Controller):
[(
'pallet_number'
,
'='
,
pallet_number
),
(
'bl_id'
,
'='
,
bl_obj
.
id
)])
[(
'pallet_number'
,
'='
,
pallet_number
),
(
'bl_id'
,
'='
,
bl_obj
.
id
)])
if
big_package_obj
:
if
big_package_obj
:
for
big_package_item
in
big_package_obj
:
for
big_package_item
in
big_package_obj
:
if
exception_cause_ids
:
for
excep_item
in
exception_cause_ids
:
for
excep_item
in
exception_cause_ids
:
big_package_exception_arr
[
excep_item
]
.
append
(
big_package_item
.
id
)
big_package_exception_arr
[
excep_item
]
.
append
(
big_package_item
.
id
)
big_package_item
.
update_exception_info
(
exception_cause_ids
)
# 修改异常信息
if
big_package_item
.
tally_state
==
'unprocessed_goods'
:
if
big_package_item
.
tally_state
==
'unprocessed_goods'
:
big_package_item
.
update_big_package_info
(
action_type
=
action_type
,
big_package_item
.
update_big_package_info
(
action_type
=
action_type
,
tally_state
=
tally_state
,
tally_state
=
tally_state
,
tally_user_id
=
tally_user_id
,
tally_user_id
=
tally_user_id
,
tally_time
=
tally_time
)
# 修改理货信息
tally_time
=
tally_time
)
# 修改理货信息
big_package_item
.
update_exception_info
(
exception_cause_ids
)
# 修改异常信息
else
:
else
:
error_no_arr
.
append
(
pallet_number
)
error_no_arr
.
append
(
pallet_number
)
if
len
(
error_no_arr
)
>
0
:
if
len
(
error_no_arr
)
>
0
:
...
@@ -233,6 +239,55 @@ class OrderController(http.Controller):
...
@@ -233,6 +239,55 @@ class OrderController(http.Controller):
# 同一批异常原因的,同一种类型(大包/小包)发送一封邮件,发送给异常原因上配置的邮箱。
# 同一批异常原因的,同一种类型(大包/小包)发送一封邮件,发送给异常原因上配置的邮箱。
logging
.
info
(
'big:
%
s'
%
big_package_exception_arr
)
logging
.
info
(
'big:
%
s'
%
big_package_exception_arr
)
logging
.
info
(
'ship:
%
s'
%
ship_package_exception_arr
)
logging
.
info
(
'ship:
%
s'
%
ship_package_exception_arr
)
lang
=
'zh_CN'
if
pda_lang
==
'zh'
else
'en_US'
# 语言
for
exception_id
,
big_package_ids
in
big_package_exception_arr
.
items
():
if
big_package_ids
:
# Create the wizard record for big packages
big_wizard_obj
=
request
.
env
[
'add.exception.info.wizard'
]
.
sudo
()
.
create_add_exception_wizard
(
'big package'
,
big_package_ids
,
[
exception_id
],
True
,
lang
)
big_wizard_obj
.
confirm
()
# 发送邮件
for
exception_id
,
ship_package_ids
in
ship_package_exception_arr
.
items
():
if
ship_package_ids
:
# Create the wizard record for ship packages
ship_wizard_obj
=
request
.
env
[
'add.exception.info.wizard'
]
.
sudo
()
.
create_add_exception_wizard
(
'ship package'
,
ship_package_ids
,
[
exception_id
],
True
,
lang
)
ship_wizard_obj
.
confirm
()
# 发送邮件
# 该大包变为已理货/尾程交接后,为大包关联的小包和扫描到的小包,符合条件的小包进度变更为对应的清关节点
# (根据配置清关节点上对应的大包状态为已理货/尾程交接,若配置了多个,则生成多条,按照节点次序,扫码的时间间隔加20分钟作为下一条节点的操作时间)
# 且小包当前的状态需在生成对应节点状态前。
# 需生成同步日志,并推送TIKTOK,同步包裹状态。
tally_state
=
'checked_goods'
if
action_type
==
'tally'
else
'handover_completed'
node_obj
=
request
.
env
[
'cc.node'
]
.
sudo
()
.
search
([
(
'node_type'
,
'='
,
'package'
),
(
'tally_state'
,
'='
,
tally_state
)
# Check for both states
],
order
=
'seq asc'
)
# Order by sequence and creation date ascending
if
node_obj
:
for
index
,
node
in
enumerate
(
node_obj
):
operation_time
=
(
fields
.
Datetime
.
from_string
(
tally_time
)
+
timedelta
(
minutes
=
20
*
index
))
if
tally_time
else
fields
.
Datetime
.
now
()
+
timedelta
(
minutes
=
20
*
index
)
# Increment time by 20 minutes for each node
# Update the ship packages based on the node's state and operation time
for
ship_package
in
ship_package_ids
:
state_node_obj
=
request
.
env
[
'cc.node'
]
.
sudo
()
.
search
(
[(
'node_type'
,
'='
,
'package'
),
(
'name'
,
'='
,
ship_package
.
state
)],
limit
=
1
)
if
state_node_obj
.
seq
<
node
.
seq
:
# Ensure the current state is valid
ship_package
.
write
(
{
'state'
:
node
.
id
,
'process_time'
:
operation_time
,
'state_explain'
:
node
.
desc
,
'is_sync'
:
True
if
node
.
is_default
else
False
})
# 调用同步
is_ok
=
bl_obj
.
package_callback_func
(
ship_package
)
# 如果提单有小包变成了清关开始,提单状态变为清关中
if
bl_obj
.
state
==
'draft'
and
bl_obj
.
ship_package_ids
.
filtered
(
lambda
line
:
line
.
state
.
tk_code
==
'cb_imcustoms_start'
):
bl_obj
.
ccing_func
()
else
:
else
:
res
[
'message'
]
=
bill_state_msg_dic
[
pda_lang
]
# 没有在系统中找到未完成清关的该提单信息
res
[
'message'
]
=
bill_state_msg_dic
[
pda_lang
]
# 没有在系统中找到未完成清关的该提单信息
else
:
else
:
...
...
ccs_connect_tiktok/models/cc_bill_loading.py
浏览文件 @
7827b5d6
...
@@ -262,8 +262,14 @@ class CcBl(models.Model):
...
@@ -262,8 +262,14 @@ class CcBl(models.Model):
is_ok
=
True
is_ok
=
True
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
)])
# for package in ship_packages:
is_ok
=
item
.
package_callback_func
(
ship_packages
)
# package.callback_track()
return
is_ok
def
package_callback_func
(
self
,
ship_packages
):
"""
同步小包状态
"""
is_ok
=
True
tt_api_obj
=
self
.
env
[
"ao.tt.api"
]
.
sudo
()
tt_api_obj
=
self
.
env
[
"ao.tt.api"
]
.
sudo
()
async
def
perform_requests
():
async
def
perform_requests
():
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论