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 个修改的文件
包含
95 行增加
和
16 行删除
+95
-16
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
+15
-4
order_controller.py
ccs_connect_tiktok/controllers/order_controller.py
+33
-7
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 ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 0
2:14
+0000\n"
"PO-Revision-Date: 2025-02-10 1
0:24
+0800\n"
"POT-Creation-Date: 2025-02-10 0
8:06
+0000\n"
"PO-Revision-Date: 2025-02-10 1
6:06
+0800\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: zh_CN\n"
...
...
@@ -148,6 +148,11 @@ msgstr ""
msgid "<span class=\"o_stat_text\">Big Packages</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
#: 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
...
...
@@ -944,6 +949,18 @@ msgstr "申报价格"
msgid "Declare Type"
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
#: model:ir.model.fields,field_description:ccs_base.field_cc_big_package__delivery_time
msgid "Delivery Time"
...
...
@@ -952,7 +969,7 @@ msgstr "尾程交货时间"
#. module: ccs_base
#: model:ir.model.fields,field_description:ccs_base.field_cc_big_package__delivery_user_id
msgid "Delivery User"
msgstr "尾程交
货
人"
msgstr "尾程交
付
人"
#. module: ccs_base
#: 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):
item
.
big_package_ids
.
filtered
(
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
)
# 关务提单号
...
...
@@ -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'
,
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'
)
...
...
@@ -967,6 +982,16 @@ class CcBL(models.Model):
'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
def
action_show_ship_package
(
self
):
# 返回一个action,显示包裹
...
...
ccs_base/views/cc_bl_view.xml
浏览文件 @
bbc2be6f
...
...
@@ -8,7 +8,8 @@
<field
name=
"model"
>
cc.bl
</field>
<field
name=
"arch"
type=
"xml"
>
<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_date"
string=
"B/L Date"
/>
<field
optional=
"show"
name=
"customer_id"
string=
"Customer"
/>
...
...
@@ -47,7 +48,8 @@
<header>
<!-- # 为action_batch_input_ship_package_wizard添加一个按钮, 上下文中添加bl_id-->
<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'}"
/>
</header>
...
...
@@ -68,6 +70,15 @@
<span
class=
"o_stat_text"
>
Tally Big Packages
</span>
</div>
</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"
class=
"oe_stat_button"
icon=
"fa-cubes"
>
<div
class=
"o_stat_info"
>
...
...
@@ -335,7 +346,7 @@
</field>
</record>
<record
id=
"export_flight_png_server"
model=
"ir.actions.server"
>
<record
id=
"export_flight_png_server"
model=
"ir.actions.server"
>
<field
name=
"name"
>
Export customs clearance bill of lading file
</field>
<field
name=
"model_id"
ref=
"model_cc_bl"
/>
<field
name=
"binding_model_id"
ref=
"model_cc_bl"
/>
...
...
@@ -346,7 +357,7 @@
</field>
</record>
<record
id=
"batch_input_ship_package_status_server"
model=
"ir.actions.server"
>
<record
id=
"batch_input_ship_package_status_server"
model=
"ir.actions.server"
>
<field
name=
"name"
>
Update the status of the small package
</field>
<field
name=
"model_id"
ref=
"model_cc_bl"
/>
<field
name=
"binding_model_id"
ref=
"model_cc_bl"
/>
...
...
ccs_connect_tiktok/controllers/order_controller.py
浏览文件 @
bbc2be6f
# -*- coding: utf-8 -*-
import
aiohttp
import
asyncio
import
certifi
import
json
import
logging
import
math
import
random
import
re
import
ssl
import
threading
from
datetime
import
datetime
,
timedelta
from
odoo
import
http
,
fields
,
exceptions
,
_
from
odoo.addons.queue_job
import
job
from
odoo.http
import
request
_logger
=
logging
.
getLogger
(
__name__
)
...
...
@@ -79,6 +85,7 @@ class OrderController(http.Controller):
"""
kwargs
=
json
.
loads
(
request
.
httprequest
.
data
)
pda_lang
=
kwargs
.
get
(
'pda_lang'
)
or
'zh'
action_type
=
kwargs
.
get
(
'action_type'
)
or
'tally'
# tally / handover
res
=
{
'state'
:
201
,
'message'
:
''
}
try
:
logging
.
info
(
'bl_info kwargs:
%
s'
%
kwargs
)
...
...
@@ -89,7 +96,7 @@ class OrderController(http.Controller):
bl_obj
=
request
.
env
[
'cc.bl'
]
.
sudo
()
.
deal_bl_no
(
bl_no
)
# 提单号去掉杠和空格,并转换为小写
if
bl_obj
:
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
else
:
res
[
'message'
]
=
bill_state_msg_dic
[
pda_lang
]
# 没有在系统中找到未完成清关的该提单信息
...
...
@@ -166,10 +173,12 @@ class OrderController(http.Controller):
'id'
:
package_obj
,
'tally_time'
:
tally_time
})
else
:
ship_packages
+=
[{
'id'
:
ship_package
,
'tally_time'
:
tally_time
}
for
ship_package
in
package_obj
.
ship_package_ids
if
ship_package
.
tally_state
==
'unprocessed_goods'
]
# 小包
# if package.tally_state == 'unprocessed_goods'
for
package
in
package_obj
:
ship_packages
+=
[{
'id'
:
ship_package
,
'tally_time'
:
tally_time
}
for
ship_package
in
package
.
ship_package_ids
if
package
.
tally_state
==
'unprocessed_goods'
]
# 小包
package_obj
.
update_big_package_info
(
action_type
=
action_type
,
tally_state
=
package_item
.
get
(
'tally_state'
),
tally_user_id
=
package_item
.
get
(
...
...
@@ -253,11 +262,28 @@ class OrderController(http.Controller):
'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
()
res
[
'state'
]
=
200
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
else
:
res
[
'message'
]
=
bill_noexist_msg_dic
[
pda_lang
]
# 提单不存在
else
:
...
...
ccs_connect_tiktok/models/cc_bill_loading.py
浏览文件 @
bbc2be6f
...
...
@@ -338,13 +338,13 @@ class CcBl(models.Model):
'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
=
{
'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
self
.
big_package_ids
],
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论