Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
bbc2be6f
提交
bbc2be6f
authored
2月 10, 2025
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、提单增加已交货大包数量,右上角增加已交货大包的查看
2、查询提单信息的接口优化,理货的已扫大包:大包理货状态为已理货和尾程交接的数量 交货的已扫大包:大包理货状态为尾程交接的数量
上级
d06ed2a2
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
90 行增加
和
11 行删除
+90
-11
zh_CN.po
ccs_base/i18n/zh_CN.po
+20
-3
cc_bill_loading.py
ccs_base/models/cc_bill_loading.py
+25
-0
cc_bl_view.xml
ccs_base/views/cc_bl_view.xml
+13
-2
order_controller.py
ccs_connect_tiktok/controllers/order_controller.py
+30
-4
cc_bill_loading.py
ccs_connect_tiktok/models/cc_bill_loading.py
+2
-2
没有找到文件。
ccs_base/i18n/zh_CN.po
浏览文件 @
bbc2be6f
...
@@ -6,8 +6,8 @@ msgid ""
...
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 0
2:14
+0000\n"
"POT-Creation-Date: 2025-02-10 0
8:06
+0000\n"
"PO-Revision-Date: 2025-02-10 1
0:24
+0800\n"
"PO-Revision-Date: 2025-02-10 1
6:06
+0800\n"
"Last-Translator: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language-Team: \n"
"Language: zh_CN\n"
"Language: zh_CN\n"
...
@@ -148,6 +148,11 @@ msgstr ""
...
@@ -148,6 +148,11 @@ msgstr ""
msgid "<span class=\"o_stat_text\">Big Packages</span>"
msgid "<span class=\"o_stat_text\">Big Packages</span>"
msgstr "<span class=\"o_stat_text\">大包</span>"
msgstr "<span class=\"o_stat_text\">大包</span>"
#. module: ccs_base
#: model_terms:ir.ui.view,arch_db:ccs_base.form_cc_bl_view
msgid "<span class=\"o_stat_text\">Delivered Big Packages</span>"
msgstr "<span class=\"o_stat_text\">已交货大包</span>"
#. module: ccs_base
#. module: ccs_base
#: model_terms:ir.ui.view,arch_db:ccs_base.form_cc_big_package_view
#: model_terms:ir.ui.view,arch_db:ccs_base.form_cc_big_package_view
#: model_terms:ir.ui.view,arch_db:ccs_base.form_cc_bl_view
#: model_terms:ir.ui.view,arch_db:ccs_base.form_cc_bl_view
...
@@ -944,6 +949,18 @@ msgstr "申报价格"
...
@@ -944,6 +949,18 @@ msgstr "申报价格"
msgid "Declare Type"
msgid "Declare Type"
msgstr "申报类型"
msgstr "申报类型"
#. module: ccs_base
#. odoo-python
#: code:addons/ccs_base/models/cc_bill_loading.py:0
#, python-format
msgid "Delivered Big Package"
msgstr "已交货大包"
#. module: ccs_base
#: model:ir.model.fields,field_description:ccs_base.field_cc_bl__delivered_big_package_qty
msgid "Delivered Big Package Qty"
msgstr "已交货大包数量"
#. module: ccs_base
#. module: ccs_base
#: model:ir.model.fields,field_description:ccs_base.field_cc_big_package__delivery_time
#: model:ir.model.fields,field_description:ccs_base.field_cc_big_package__delivery_time
msgid "Delivery Time"
msgid "Delivery Time"
...
@@ -952,7 +969,7 @@ msgstr "尾程交货时间"
...
@@ -952,7 +969,7 @@ msgstr "尾程交货时间"
#. module: ccs_base
#. module: ccs_base
#: model:ir.model.fields,field_description:ccs_base.field_cc_big_package__delivery_user_id
#: model:ir.model.fields,field_description:ccs_base.field_cc_big_package__delivery_user_id
msgid "Delivery User"
msgid "Delivery User"
msgstr "尾程交
货
人"
msgstr "尾程交
付
人"
#. module: ccs_base
#. module: ccs_base
#: model:ir.model.fields,field_description:ccs_base.field_cc_node__desc
#: model:ir.model.fields,field_description:ccs_base.field_cc_node__desc
...
...
ccs_base/models/cc_bill_loading.py
浏览文件 @
bbc2be6f
...
@@ -604,6 +604,16 @@ class CcBL(models.Model):
...
@@ -604,6 +604,16 @@ class CcBL(models.Model):
item
.
big_package_ids
.
filtered
(
item
.
big_package_ids
.
filtered
(
lambda
package
:
package
.
tally_state
==
'checked_goods'
and
not
package
.
is_cancel
))
lambda
package
:
package
.
tally_state
==
'checked_goods'
and
not
package
.
is_cancel
))
@api.depends
(
'big_package_ids'
,
'big_package_ids.tally_state'
,
'big_package_ids.is_cancel'
)
def
cal_delivered_big_package_qty
(
self
):
"""
已交货的大包数量
"""
for
item
in
self
:
item
.
delivered_big_package_qty
=
len
(
item
.
big_package_ids
.
filtered
(
lambda
package
:
package
.
tally_state
==
'handover_completed'
and
not
package
.
is_cancel
))
# 提单号
# 提单号
bl_no
=
fields
.
Char
(
string
=
'B/L No'
,
index
=
True
)
bl_no
=
fields
.
Char
(
string
=
'B/L No'
,
index
=
True
)
# 关务提单号
# 关务提单号
...
@@ -618,6 +628,11 @@ class CcBL(models.Model):
...
@@ -618,6 +628,11 @@ class CcBL(models.Model):
# 理货大包数量
# 理货大包数量
tally_big_package_qty
=
fields
.
Integer
(
string
=
'Tally Big Package Qty'
,
compute
=
'cal_tally_big_package_qty'
,
tally_big_package_qty
=
fields
.
Integer
(
string
=
'Tally Big Package Qty'
,
compute
=
'cal_tally_big_package_qty'
,
store
=
True
)
store
=
True
)
# 已交货大包数量
delivered_big_package_qty
=
fields
.
Integer
(
string
=
'Delivered Big Package Qty'
,
compute
=
'cal_delivered_big_package_qty'
,
store
=
True
)
# 大包售卖国家
# 大包售卖国家
big_package_sell_country
=
fields
.
Char
(
string
=
'Sell Country'
)
big_package_sell_country
=
fields
.
Char
(
string
=
'Sell Country'
)
...
@@ -967,6 +982,16 @@ class CcBL(models.Model):
...
@@ -967,6 +982,16 @@ class CcBL(models.Model):
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_cancel'
,
'='
,
False
),
(
'tally_state'
,
'='
,
'checked_goods'
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_cancel'
,
'='
,
False
),
(
'tally_state'
,
'='
,
'checked_goods'
)],
}
}
def
action_show_big_package_delivered
(
self
):
# 返回一个action,显示已交货的大包
return
{
'name'
:
_
(
'Delivered Big Package'
),
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.big.package'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_cancel'
,
'='
,
False
),
(
'tally_state'
,
'='
,
'handover_completed'
)],
}
# 创建显示包裹的action
# 创建显示包裹的action
def
action_show_ship_package
(
self
):
def
action_show_ship_package
(
self
):
# 返回一个action,显示包裹
# 返回一个action,显示包裹
...
...
ccs_base/views/cc_bl_view.xml
浏览文件 @
bbc2be6f
...
@@ -8,7 +8,8 @@
...
@@ -8,7 +8,8 @@
<field
name=
"model"
>
cc.bl
</field>
<field
name=
"model"
>
cc.bl
</field>
<field
name=
"arch"
type=
"xml"
>
<field
name=
"arch"
type=
"xml"
>
<tree
string=
"Bill of Loading"
decoration-warning=
"is_cancel==True"
>
<tree
string=
"Bill of Loading"
decoration-warning=
"is_cancel==True"
>
<field
optional=
"show"
name=
"state"
string=
"Status"
widget=
"badge"
decoration-info=
"state=='draft'"
decoration-primary=
"state=='ccing'"
decoration-success=
"state=='done'"
/>
<field
optional=
"show"
name=
"state"
string=
"Status"
widget=
"badge"
decoration-info=
"state=='draft'"
decoration-primary=
"state=='ccing'"
decoration-success=
"state=='done'"
/>
<field
optional=
"show"
name=
"bl_no"
string=
"Bill of Loading No."
/>
<field
optional=
"show"
name=
"bl_no"
string=
"Bill of Loading No."
/>
<field
optional=
"show"
name=
"bl_date"
string=
"B/L Date"
/>
<field
optional=
"show"
name=
"bl_date"
string=
"B/L Date"
/>
<field
optional=
"show"
name=
"customer_id"
string=
"Customer"
/>
<field
optional=
"show"
name=
"customer_id"
string=
"Customer"
/>
...
@@ -47,7 +48,8 @@
...
@@ -47,7 +48,8 @@
<header>
<header>
<!-- # 为action_batch_input_ship_package_wizard添加一个按钮, 上下文中添加bl_id-->
<!-- # 为action_batch_input_ship_package_wizard添加一个按钮, 上下文中添加bl_id-->
<button
name=
"%(action_batch_input_ship_package_wizard)d"
type=
"action"
class=
"oe_highlight"
<button
name=
"%(action_batch_input_ship_package_wizard)d"
type=
"action"
class=
"oe_highlight"
string=
"Update Ship Package Status"
context=
"{'default_bl_id': active_id, 'active_id': id}"
/>
string=
"Update Ship Package Status"
context=
"{'default_bl_id': active_id, 'active_id': id}"
/>
<field
name=
"state"
widget=
"statusbar"
options=
"{'clickable': '1'}"
/>
<field
name=
"state"
widget=
"statusbar"
options=
"{'clickable': '1'}"
/>
</header>
</header>
...
@@ -68,6 +70,15 @@
...
@@ -68,6 +70,15 @@
<span
class=
"o_stat_text"
>
Tally Big Packages
</span>
<span
class=
"o_stat_text"
>
Tally Big Packages
</span>
</div>
</div>
</button>
</button>
<button
name=
"action_show_big_package_delivered"
type=
"object"
class=
"oe_stat_button"
icon=
"fa-cube"
>
<div
class=
"o_stat_info"
>
<field
name=
"delivered_big_package_qty"
class=
"o_stat_value"
/>
<span
class=
"o_stat_text"
>
Delivered Big Packages
</span>
</div>
</button>
<button
name=
"action_show_ship_package"
type=
"object"
<button
name=
"action_show_ship_package"
type=
"object"
class=
"oe_stat_button"
icon=
"fa-cubes"
>
class=
"oe_stat_button"
icon=
"fa-cubes"
>
<div
class=
"o_stat_info"
>
<div
class=
"o_stat_info"
>
...
...
ccs_connect_tiktok/controllers/order_controller.py
浏览文件 @
bbc2be6f
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import
aiohttp
import
asyncio
import
certifi
import
json
import
json
import
logging
import
logging
import
math
import
math
import
random
import
random
import
re
import
re
import
ssl
import
threading
from
datetime
import
datetime
,
timedelta
from
datetime
import
datetime
,
timedelta
from
odoo
import
http
,
fields
,
exceptions
,
_
from
odoo
import
http
,
fields
,
exceptions
,
_
from
odoo.addons.queue_job
import
job
from
odoo.http
import
request
from
odoo.http
import
request
_logger
=
logging
.
getLogger
(
__name__
)
_logger
=
logging
.
getLogger
(
__name__
)
...
@@ -79,6 +85,7 @@ class OrderController(http.Controller):
...
@@ -79,6 +85,7 @@ class OrderController(http.Controller):
"""
"""
kwargs
=
json
.
loads
(
request
.
httprequest
.
data
)
kwargs
=
json
.
loads
(
request
.
httprequest
.
data
)
pda_lang
=
kwargs
.
get
(
'pda_lang'
)
or
'zh'
pda_lang
=
kwargs
.
get
(
'pda_lang'
)
or
'zh'
action_type
=
kwargs
.
get
(
'action_type'
)
or
'tally'
# tally / handover
res
=
{
'state'
:
201
,
'message'
:
''
}
res
=
{
'state'
:
201
,
'message'
:
''
}
try
:
try
:
logging
.
info
(
'bl_info kwargs:
%
s'
%
kwargs
)
logging
.
info
(
'bl_info kwargs:
%
s'
%
kwargs
)
...
@@ -89,7 +96,7 @@ class OrderController(http.Controller):
...
@@ -89,7 +96,7 @@ class OrderController(http.Controller):
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
:
res
[
'bl_info'
]
=
bl_obj
.
search_bl_info
(
pda_lang
=
pda_lang
)
res
[
'bl_info'
]
=
bl_obj
.
search_bl_info
(
pda_lang
=
pda_lang
,
type
=
action_type
)
res
[
'state'
]
=
200
res
[
'state'
]
=
200
else
:
else
:
res
[
'message'
]
=
bill_state_msg_dic
[
pda_lang
]
# 没有在系统中找到未完成清关的该提单信息
res
[
'message'
]
=
bill_state_msg_dic
[
pda_lang
]
# 没有在系统中找到未完成清关的该提单信息
...
@@ -166,10 +173,12 @@ class OrderController(http.Controller):
...
@@ -166,10 +173,12 @@ class OrderController(http.Controller):
'id'
:
package_obj
,
'id'
:
package_obj
,
'tally_time'
:
tally_time
})
'tally_time'
:
tally_time
})
else
:
else
:
# if package.tally_state == 'unprocessed_goods'
for
package
in
package_obj
:
ship_packages
+=
[{
ship_packages
+=
[{
'id'
:
ship_package
,
'id'
:
ship_package
,
'tally_time'
:
tally_time
}
for
ship_package
in
package_obj
.
ship_package_ids
'tally_time'
:
tally_time
}
for
ship_package
in
package
.
ship_package_ids
if
ship_
package
.
tally_state
==
'unprocessed_goods'
]
# 小包
if
package
.
tally_state
==
'unprocessed_goods'
]
# 小包
package_obj
.
update_big_package_info
(
action_type
=
action_type
,
package_obj
.
update_big_package_info
(
action_type
=
action_type
,
tally_state
=
package_item
.
get
(
'tally_state'
),
tally_state
=
package_item
.
get
(
'tally_state'
),
tally_user_id
=
package_item
.
get
(
tally_user_id
=
package_item
.
get
(
...
@@ -253,10 +262,27 @@ class OrderController(http.Controller):
...
@@ -253,10 +262,27 @@ class OrderController(http.Controller):
'state_explain'
:
node
.
desc
,
'state_explain'
:
node
.
desc
,
'is_sync'
:
True
if
node
.
is_default
else
False
'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
(
if
bl_obj
.
state
==
'draft'
and
bl_obj
.
ship_package_ids
.
filtered
(
lambda
line
:
line
.
state
.
tk_code
==
'cb_imcustoms_start'
):
lambda
line
:
line
.
state
.
tk_code
==
'cb_imcustoms_start'
):
bl_obj
.
ccing_func
()
bl_obj
.
ccing_func
()
ship_package_ids
=
tuple
(
ship_package_dict
[
'id'
]
.
id
for
ship_package_dict
in
ship_packages
if
ship_package_dict
[
'id'
])
ship_package_objs
=
request
.
env
[
'cc.ship.package'
]
.
sudo
()
.
search
(
[(
'id'
,
'in'
,
ship_package_ids
)])
bl_obj
.
package_callback_func
(
ship_package_objs
)
# asyncio.create_task(bl_obj.package_callback_func(ship_package_objs)) # 异步执行 报错 没有什么loop
# threading.Thread(target=bl_obj.package_callback_func, args=(ship_package_objs,)).start()#方法里报错
# # 定义一个函数来在新线程中执行异步任务
# def run_async_task():
# loop = asyncio.new_event_loop() # 创建新的事件循环
# asyncio.set_event_loop(loop) # 设置事件循环
# loop.run_until_complete(bl_obj.package_callback_func(ship_package_objs)) # 运行异步函数
# loop.close() # 关闭事件循环
#
# # 创建并启动新线程
# threading.Thread(target=run_async_task).start()
# bl_obj.with_delay(description=bl_obj.bl_no).package_callback_func(ship_package_objs) # 不执行了
res
[
'state'
]
=
200
res
[
'state'
]
=
200
else
:
else
:
res
[
'message'
]
=
bill_noexist_msg_dic
[
pda_lang
]
# 提单不存在
res
[
'message'
]
=
bill_noexist_msg_dic
[
pda_lang
]
# 提单不存在
...
...
ccs_connect_tiktok/models/cc_bill_loading.py
浏览文件 @
bbc2be6f
...
@@ -338,13 +338,13 @@ class CcBl(models.Model):
...
@@ -338,13 +338,13 @@ class CcBl(models.Model):
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_sync'
,
'='
,
False
)],
'domain'
:
[(
'bl_id'
,
'='
,
self
.
id
),
(
'is_sync'
,
'='
,
False
)],
}
}
def
search_bl_info
(
self
,
pda_lang
=
False
):
def
search_bl_info
(
self
,
pda_lang
=
False
,
type
=
'tally'
):
"""
"""
查询提单信息
查询提单信息
"""
"""
vals
=
{
vals
=
{
'bl_no'
:
self
.
bl_no
or
''
,
# 提单号
'bl_no'
:
self
.
bl_no
or
''
,
# 提单号
'scan_big_package_qty'
:
self
.
tally_big_package_qty
,
'scan_big_package_qty'
:
self
.
tally_big_package_qty
+
self
.
delivered_big_package_qty
if
type
==
'tally'
else
self
.
delivered_big_package_qty
,
# 已扫大包数量
# 已扫大包数量
'big_package_arr'
:
[
big_package_item
.
search_big_package_info
(
pda_lang
=
pda_lang
)
for
big_package_item
in
'big_package_arr'
:
[
big_package_item
.
search_big_package_info
(
pda_lang
=
pda_lang
)
for
big_package_item
in
self
.
big_package_ids
],
self
.
big_package_ids
],
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论