From 7689701ab1c33a14901a247c0b0e7ae370e4d4ee Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Wed, 28 Jun 2023 20:49:16 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=80=E5=85=B7=E5=90=8C=E6=AD=A5?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=8C=E6=88=90=EF=BC=8C=E5=AD=97=E6=AE=B5?=
=?UTF-8?q?=E5=B7=B2=E6=B7=BB=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_base/models/tool_base_new.py | 29 ++++++-
sf_base/views/tool_views.xml | 13 ++-
sf_mrs_connect/models/res_config_setting.py | 87 ++-------------------
sf_mrs_connect/models/sync_common.py | 40 +++++++---
4 files changed, 72 insertions(+), 97 deletions(-)
diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py
index 65d2e4cb..c7f95a3f 100644
--- a/sf_base/models/tool_base_new.py
+++ b/sf_base/models/tool_base_new.py
@@ -21,7 +21,7 @@ class FunctionalCuttingTool(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
- mrs_cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='功能刀具类型')
+ mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='刀具型号')
diameter = fields.Float('直径(mm)')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
@@ -68,6 +68,9 @@ class CuttingToolModel(models.Model):
# 整体式刀具特有字段
integral_code = fields.Char('整体式刀具编码')
+ integral_accuracy = fields.Float('精度(μm)')
+ integral_hardness = fields.Float('加工硬度(HRC)')
+ integral_coating_material = fields.Char('涂层材质')
integral_total_length = fields.Float('总长度(mm)')
integral_shank_length = fields.Float('柄部长度(mm)')
integral_blade_length = fields.Float('刃部长度(mm)')
@@ -81,6 +84,7 @@ class CuttingToolModel(models.Model):
# 刀片特有字段
blade_code = fields.Char('刀片编码')
+ blade_coating_material = fields.Char('涂层材质')
blade_length = fields.Float('长度L(mm)')
blade_width = fields.Float('宽度D(mm)')
blade_height = fields.Float('高度T(mm)')
@@ -157,9 +161,16 @@ class CuttingToolModel(models.Model):
# 刀柄特有字段
handle_code = fields.Char('刀柄编码', readonly=True)
- handle_length = fields.Float('L(mm)')
- handle_length1 = fields.Float('L1(mm)')
- handle_diameter1 = fields.Float('D1(mm)')
+ # 柄长L(mm)、法兰柄长L1(mm)、法兰直径D1(mm)
+ handle_length = fields.Float('柄长L(mm)')
+ handle_diameter = fields.Float('直径D(mm)')
+ handle_flange_length = fields.Float('法兰柄长L1(mm)')
+ handle_flange_diameter = fields.Float('法兰直径D1(mm)')
+ # 夹持直径min、夹持直径max、径跳精度、最大转速n/min、3D模型图
+ handle_clamping_diameter_min = fields.Float('夹持直径min')
+ handle_clamping_diameter_max = fields.Float('夹持直径max')
+ handle_jump_accuracy = fields.Float('径跳精度')
+ handle_max_speed = fields.Float('最大转速n/min')
handle_weight = fields.Float('重量(kg)')
handle_body_accuracy = fields.Float('本体精度(mm)')
handle_nut = fields.Float('配对螺母(mm)')
@@ -180,6 +191,9 @@ class CuttingToolModel(models.Model):
# 夹头特有字段
chuck_code = fields.Char('夹头编码', readonly=True)
chuck_accuracy = fields.Float('精度(mm)')
+ # 夹持直径min、夹持直径max、3D模型图
+ chuck_clamping_diameter_min = fields.Float('夹持直径min')
+ chuck_clamping_diameter_max = fields.Float('夹持直径max')
chuck_diameter = fields.Float('外径(mm)')
chuck_inner_diameter = fields.Float('内径(mm)')
chuck_height = fields.Float('高度(mm)')
@@ -197,6 +211,7 @@ class CuttingToolModel(models.Model):
chuck_feature = fields.Char('特性')
image = fields.Binary('图片')
+ three_d_model = fields.Many2one('ir.attachment', '3D模型')
hide_integral = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏整体式刀具')
hide_blade = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏刀片')
@@ -205,6 +220,12 @@ class CuttingToolModel(models.Model):
hide_handler = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏刀柄')
hide_chuck = fields.Boolean(compute='_compute_hide_model_number', default=False, string='隐藏夹头')
hide_model = fields.Boolean(compute='_compute_hide_model_number', default=True, string='隐藏型号')
+ image_is_visible = fields.Boolean(compute='_compute_image_is_visible', default=True, string='隐藏图片')
+
+ @api.depends('mrs_cutting_tool_material_id')
+ def _compute_image_is_visible(self):
+ for record in self:
+ record.image_is_visible = not (record.hide_handler or record.hide_chuck)
@api.depends('mrs_cutting_tool_material_id')
def _compute_hide_model_number(self):
diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml
index 6909519a..27619b6d 100644
--- a/sf_base/views/tool_views.xml
+++ b/sf_base/views/tool_views.xml
@@ -213,6 +213,8 @@
+
+
@@ -236,10 +238,13 @@
-
-
+
+
+
+
+
@@ -253,12 +258,14 @@
+
+
@@ -282,6 +289,8 @@
+
+
diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py
index 566b63b4..c04c70b8 100644
--- a/sf_mrs_connect/models/res_config_setting.py
+++ b/sf_mrs_connect/models/res_config_setting.py
@@ -42,93 +42,18 @@ class ResConfigSettings(models.TransientModel):
_logger.info("同步资源库机床类型")
# self.env['sf.production.process.parameter'].sync_all_production_process_parameter()
# _logger.info("同步表面工艺参数")
- _logger.info("定时同步每日功能刀具类型列表...")
- # self.env['sf.functional.cutting.tool.model'].sync_functional_cutting_tool_model()
- _logger.info("同步每日功能刀具类型完成")
- _logger.info("同步所有功能刀具类型...")
- self.env['sf.functional.cutting.tool.model'].sync_all_functional_cutting_tool_model()
- _logger.info("同步所有功能刀具类型完成")
_logger.info("同步每日刀具物料...")
self.env['sf.cutting.tool.material'].sync_cutting_tool_material()
_logger.info("同步每日刀具物料完成")
_logger.info("同步所有刀具物料...")
self.env['sf.cutting.tool.material'].sync_all_cutting_tool_material()
_logger.info("同步所有刀具物料完成")
- # _logger.info("同步每日刀片类型列表...")
- # self.env['sf.blade.model'].sync_blade_model()
- # _logger.info("同步每日刀片类型完成")
- # _logger.info("同步所有刀片类型列表...")
- # self.env['sf.blade.model'].sync_all_blade_model()
- # _logger.info("同步所有刀片类型完成")
- # _logger.info("同步每日刀杆类型...")
- # self.env['sf.cutter.bar.model'].sync_cutter_bar_model()
- # _logger.info("同步每日刀杆类型完成")
- # _logger.info("同步所有刀杆类型...")
- # self.env['sf.cutter.bar.model'].sync_all_cutter_bar_model()
- # _logger.info("同步所有刀杆类型完成")
- # _logger.info("同步每日刀盘类型...")
- # self.env['sf.cutter.pad.model'].sync_cutter_pad_model()
- # _logger.info("同步每日刀盘类型完成")
- # _logger.info("同步所有刀盘类型...")
- # self.env['sf.cutter.pad.model'].sync_all_cutter_pad_model()
- # _logger.info("同步所有刀盘类型完成")
- # _logger.info("同步每日刀柄类型...")
- # self.env['sf.handle.model'].sync_handle_model()
- # _logger.info("同步每日刀柄类型完成")
- # _logger.info("同步所有刀柄类型...")
- # self.env['sf.handle.model'].sync_all_handle_model()
- # _logger.info("同步所有刀柄类型完成")
- # _logger.info("同步每日夹头类型...")
- # self.env['sf.chuck.model'].sync_chuck_model()
- # _logger.info("同步每日夹头类型完成")
- # _logger.info("同步所有夹头类型...")
- # self.env['sf.chuck.model'].sync_all_chuck_model()
- # _logger.info("同步所有夹头类型完成")
- # _logger.info("同步每日整体式刀具类型...")
- # self.env['sf.integral.cutting.tool.model'].sync_integral_cutting_tool_model()
- # _logger.info("同步每日整体式刀具类型完成")
- # _logger.info("同步所有整体式刀具类型...")
- # self.env['sf.integral.cutting.tool.model'].sync_all_integral_cutting_tool_model()
- # _logger.info("同步所有整体式刀具类型完成")
- # _logger.info("同步每日刀片列表...")
- # self.env['sf.blade'].sync_blade()
- # _logger.info("同步每日刀片完成")
- # _logger.info("同步所有刀片列表...")
- # self.env['sf.blade'].sync_all_blade()
- # _logger.info("同步所有刀片完成")
- # _logger.info("同步每日刀杆列表...")
- # self.env['sf.cutter.bar'].sync_cutter_bar()
- # _logger.info("同步每日刀杆完成")
- # _logger.info("同步所有刀杆列表...")
- # self.env['sf.cutter.bar'].sync_all_cutter_bar()
- # _logger.info("同步所有刀杆完成")
- # # _logger.info("同步每日刀盘列表...")
- # # self.env['sf.cutter.pad'].sync_cutter_pad()
- # # _logger.info("同步每日刀盘完成")
- # _logger.info("同步所有刀盘列表...")
- # self.env['sf.cutter.pad'].sync_all_cutter_pad()
- # _logger.info("同步所有刀盘完成")
- # # _logger.info("同步每日刀柄列表...")
- # # self.env['sf.handle'].sync_handle()
- # # _logger.info("同步每日刀柄完成")
- # _logger.info("同步所有刀柄列表...")
- # self.env['sf.handle'].sync_all_handle()
- # _logger.info("同步所有刀柄完成")
- # # _logger.info("同步每日夹头列表...")
- # # self.env['sf.chuck'].sync_chuck()
- # # _logger.info("同步每日夹头完成")
- # _logger.info("同步所有夹头列表...")
- # self.env['sf.chuck'].sync_all_chuck()
- # _logger.info("同步所有夹头完成")
- # # _logger.info("同步每日整体式刀具列表...")
- # # self.env['sf.integral.cutting.tool'].sync_integral_cutting_tool()
- # # _logger.info("同步每日整体式刀具完成")
- # _logger.info("同步所有整体式刀具列表...")
- # self.env['sf.integral.cutting.tool'].sync_all_integral_cutting_tool()
- # _logger.info("同步所有整体式刀具完成")
- # _logger.info("同步每日同步功能刀具列表...")
- # self.env['sf.functional.cutting.tool'].sync_functional_cutting_tool()
- # _logger.info("同步每日功能刀具列表完成")
+ _logger.info("定时同步每日功能刀具类型列表...")
+ self.env['sf.functional.cutting.tool.model'].sync_functional_cutting_tool_model()
+ _logger.info("同步每日功能刀具类型完成")
+ _logger.info("定时同步所有功能刀具类型列表...")
+ self.env['sf.functional.cutting.tool.model'].sync_all_functional_cutting_tool_model()
+ _logger.info("同步所有功能刀具类型完成")
_logger.info("同步每日刀具类型...")
self.env['sf.cutting.tool.type'].sync_tool_type()
_logger.info("同步每日刀具类型完成")
diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py
index 87f8128c..67548349 100644
--- a/sf_mrs_connect/models/sync_common.py
+++ b/sf_mrs_connect/models/sync_common.py
@@ -3294,7 +3294,7 @@ class SfToolType(models.Model):
"chuck_type_code": item['chuck_type_code'],
"remark": item['remark'],
})
- print('同步每日刀柄类型列表成功')
+
else:
raise ValidationError("认证未通过")
@@ -3343,7 +3343,7 @@ class SfToolType(models.Model):
"chuck_type_code": item['chuck_type_code'],
"remark": item['remark'],
})
- print('同步所有刀柄类型列表成功')
+
else:
raise ValidationError("认证未通过")
@@ -3477,8 +3477,13 @@ class SfToolModel(models.Model):
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
- "handle_length1": item['handle_length1'],
- "handle_diameter1": item['handle_diameter1'],
+ "handle_diameter": item['handle_diameter'],
+ "handle_flange_length": item['handle_flange_length'],
+ "handle_flange_diameter": item['handle_flange_diameter'],
+ "handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
+ "handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
+ "handle_jump_accuracy": item['handle_jump_accuracy'],
+ "handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
@@ -3578,8 +3583,13 @@ class SfToolModel(models.Model):
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
- "handle_length1": item['handle_length1'],
- "handle_diameter1": item['handle_diameter1'],
+ "handle_diameter": item['handle_diameter'],
+ "handle_flange_length": item['handle_flange_length'],
+ "handle_flange_diameter": item['handle_flange_diameter'],
+ "handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
+ "handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
+ "handle_jump_accuracy": item['handle_jump_accuracy'],
+ "handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
@@ -3743,8 +3753,13 @@ class SfToolModel(models.Model):
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
- "handle_length1": item['handle_length1'],
- "handle_diameter1": item['handle_diameter1'],
+ "handle_diameter": item['handle_diameter'],
+ "handle_flange_length": item['handle_flange_length'],
+ "handle_flange_diameter": item['handle_flange_diameter'],
+ "handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
+ "handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
+ "handle_jump_accuracy": item['handle_jump_accuracy'],
+ "handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
@@ -3840,8 +3855,13 @@ class SfToolModel(models.Model):
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
- "handle_length1": item['handle_length1'],
- "handle_diameter1": item['handle_diameter1'],
+ "handle_diameter": item['handle_diameter'],
+ "handle_flange_length": item['handle_flange_length'],
+ "handle_flange_diameter": item['handle_flange_diameter'],
+ "handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
+ "handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
+ "handle_jump_accuracy": item['handle_jump_accuracy'],
+ "handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
From ec95e095532e593fdcaa3a29aeb2a64b0fef0177 Mon Sep 17 00:00:00 2001
From: yuxianghui <1608204036@qq.com>
Date: Thu, 29 Jun 2023 09:36:54 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F?=
=?UTF-8?q?=E5=87=BA=E5=BA=93=E5=8A=9F=E8=83=BD=EF=BC=88=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E5=B7=B2=E5=AE=8C=E6=88=90=EF=BC=8C=E6=8C=89=E9=94=AE=E6=9C=AA?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=EF=BC=89=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=87=AA?=
=?UTF-8?q?=E5=8A=A8=E7=BB=84=E8=A3=85=E6=96=B9=E6=B3=95=EF=BC=88todo?=
=?UTF-8?q?=EF=BC=89=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=87=BA=E5=BA=93=E6=8C=89?=
=?UTF-8?q?=E9=94=AE=E5=BC=B9=E7=AA=97=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_tool_management/__manifest__.py | 3 +
sf_tool_management/models/base.py | 78 +++++++++++++++++---
sf_tool_management/static/src/change.scss | 11 +++
sf_tool_management/views/tool_base_views.xml | 25 ++-----
sf_tool_management/wizard/wizard.py | 16 +++-
sf_tool_management/wizard/wizard_view.xml | 17 +++--
6 files changed, 114 insertions(+), 36 deletions(-)
create mode 100644 sf_tool_management/static/src/change.scss
diff --git a/sf_tool_management/__manifest__.py b/sf_tool_management/__manifest__.py
index 6fbf1152..d46a14d8 100644
--- a/sf_tool_management/__manifest__.py
+++ b/sf_tool_management/__manifest__.py
@@ -24,6 +24,9 @@
'web.assets_qweb': [
],
+ 'web.assets_backend':[
+ 'sf_tool_management/static/src/change.scss'
+ ]
},
diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py
index 8563fed3..43a55b18 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -8,7 +8,7 @@ class FunctionalCuttingToolEntity(models.Model):
_description = '功能刀具管理'
order = fields.Char(string='序')
- functional_cutting_tool_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具', invisible=True)
+ functional_cutting_tool_id = fields.Char(string='功能刀具', invisible=True)
# 功能刀具预警 特有字段
install_tool_time = fields.Char("装刀时间")
outbound_time = fields.Char('出库时间')
@@ -104,11 +104,11 @@ class MachineTableToolChangingApply(models.Model):
_name = 'sf.machine.table.tool.changing.apply'
_description = '机床换刀申请'
- apply_to_tool_change_ids = fields.One2many(
- 'sf.tool.change.requirement.information',
- 'tool_change_to_apply_id',
- string='换刀需求信息',
- attrs="{'invisible': 1}")
+ # apply_to_tool_change_ids = fields.One2many(
+ # 'sf.tool.change.requirement.information',
+ # 'tool_change_to_apply_id',
+ # string='换刀需求信息',
+ # attrs="{'invisible': 1}")
CNC_machine_table = fields.Char(string='CNC机床')
# todo 机床类型和刀位号 为 Many2one
@@ -260,7 +260,7 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
def automation_apply_for_tooling(self):
"""
- todo 自动申请装刀
+ 自动申请装刀
:return:
"""
self.env['sf.functional.tool.assembly'].create({
@@ -303,6 +303,7 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
class FunctionalToolAssembly(models.Model):
_name = 'sf.functional.tool.assembly'
_description = '功能刀具组装'
+ _order = 'use_tool_time asc'
functional_tool_code = fields.Char(string='功能刀具编码')
functional_tool_name = fields.Char(string='功能刀具名称')
@@ -317,7 +318,6 @@ class FunctionalToolAssembly(models.Model):
knife_handle_name = fields.Char(string='刀柄名称')
knife_handle_brand = fields.Char(string='品牌')
knife_handle_type = fields.Char(string='型号')
-
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精')
tool_loading_length = fields.Char(string='装刀长')
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧')
@@ -330,7 +330,6 @@ class FunctionalToolAssembly(models.Model):
applicant = fields.Char(string='申请人')
reason_for_applying = fields.Char(string='申请原因')
apply_time = fields.Datetime(string='申请时间', default=fields.Datetime.now())
-
assemble_status = fields.Selection([('0', '待组装'), ('1', '已组装'), ('2', '已出库')],string='组装状态', default='0')
use_tool_time = fields.Datetime(string='用刀时间')
production_line_name = fields.Char(string='产线名称')
@@ -343,6 +342,8 @@ class FunctionalToolAssembly(models.Model):
receive_time = fields.Datetime(string='领用出库时间')
remark = fields.Char(string='备注说明')
+ check_box = fields.Boolean(string='复选框', default=False, attrs="{'readonly': [('assemble_status', '!=', '1')]}")
+
def cancel_functional_tool_assembly(self):
"""
取消功能刀具组装
@@ -367,3 +368,62 @@ class FunctionalToolAssembly(models.Model):
'cut_number': None,
'assemble_status': '0'
})
+
+
+ def show_popup(self):
+ """
+ 单个功能刀具出库
+ :return:
+ """
+ self.env['sf.delivery.of.cargo.from.storage'].search([]).unlink()
+
+ vals = self.env['sf.functional.tool.assembly'].search([('check_box', '=', True),('assemble_status', '=', '1')])
+
+ if vals:
+ for val in vals:
+ self.env['sf.delivery.of.cargo.from.storage'].create({
+ 'functional_tool_code': val.functional_tool_code,
+ 'functional_tool_name': val.functional_tool_name,
+ 'functional_tool_type': val.functional_tool_type,
+ 'production_line_name': val.production_line_name,
+ 'machine_tool_code': val.machine_tool_code,
+ 'receive_person': val.receive_person,
+ 'receive_time': val.receive_time
+ })
+ else:
+ self.env['sf.delivery.of.cargo.from.storage'].create({
+ 'functional_tool_code': self.functional_tool_code,
+ 'functional_tool_name': self.functional_tool_name,
+ 'functional_tool_type': self.functional_tool_type,
+ 'production_line_name': self.production_line_name,
+ 'machine_tool_code': self.machine_tool_code,
+ 'receive_person': self.receive_person,
+ 'receive_time': self.receive_time
+ })
+
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': '功能刀具出库',
+ 'res_model': 'sf.delivery.of.cargo.from.storage',
+ 'view_mode': 'tree',
+ 'view_type': 'tree',
+ 'target': 'new'
+ }
+
+ def automated_assembly(self):
+ """
+ todo 自动组装
+ :return:
+ """
+
+ def automatic_printing_of_QR_code(self):
+ """
+ todo 自动打印二维码
+ :return:
+ """
+
+ def assemble_single_print(self):
+ """
+ todo 组装单打印
+ :return:
+ """
\ No newline at end of file
diff --git a/sf_tool_management/static/src/change.scss b/sf_tool_management/static/src/change.scss
new file mode 100644
index 00000000..40fdcc8e
--- /dev/null
+++ b/sf_tool_management/static/src/change.scss
@@ -0,0 +1,11 @@
+.modal-content .o_cp_buttons {
+ display:none
+}
+
+.modal-content .o_control_panel {
+ display:none
+}
+
+.modal-content .o_list_button {
+
+}
\ No newline at end of file
diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml
index 6ccaedbc..328a053d 100644
--- a/sf_tool_management/views/tool_base_views.xml
+++ b/sf_tool_management/views/tool_base_views.xml
@@ -417,31 +417,20 @@
class="btn-primary"/>
-
-
+
+
-
+
-
+
-
+
+
-
+
diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py
index 22a5a0d7..63381cf3 100644
--- a/sf_tool_management/wizard/wizard.py
+++ b/sf_tool_management/wizard/wizard.py
@@ -1,11 +1,11 @@
-from odoo import fields, models, api
+from odoo import fields, models
class ToolChangeRequirementInformation(models.TransientModel):
_name = 'sf.tool.change.requirement.information'
_description = '换刀需求信息'
- tool_change_to_apply_id = fields.Many2one('sf.machine.table.tool.changing.apply', string='机床换刀申请')
+ # tool_change_to_apply_id = fields.Many2one('sf.machine.table.tool.changing.apply', string='机床换刀申请')
CNC_machine_table = fields.Char(string='CNC机床', readonly=True)
machine_tool_code = fields.Char(string='机台号', readonly=True)
@@ -224,6 +224,7 @@ class DeliveryOfCargoFromStorage(models.TransientModel):
_name = 'sf.delivery.of.cargo.from.storage'
_description = '出库'
+ order = fields.Integer(string='序')
functional_tool_code = fields.Char(string='功能刀具编码')
functional_tool_name = fields.Char(string='功能刀具名称')
functional_tool_type = fields.Char(string='功能刀具类型')
@@ -236,4 +237,13 @@ class DeliveryOfCargoFromStorage(models.TransientModel):
"""
出库
:return:
- """
\ No newline at end of file
+ """
+ vals = self.env['sf.delivery.of.cargo.from.storage'].search([])
+ if vals:
+ for val in vals:
+ self.env['sf.functional.tool.assembly'].search([
+ ('functional_tool_code', '=', val.functional_tool_code),
+ ('functional_tool_name', '=', val.functional_tool_name)
+ ]).write({
+ 'assemble_status': '2'
+ })
diff --git a/sf_tool_management/wizard/wizard_view.xml b/sf_tool_management/wizard/wizard_view.xml
index d6900757..59f4c6dc 100644
--- a/sf_tool_management/wizard/wizard_view.xml
+++ b/sf_tool_management/wizard/wizard_view.xml
@@ -273,14 +273,19 @@
sf.delivery.of.cargo.from.storage
-
-
-
-
-
+
+
+
+
+
+
-
+
+
From 2aae162f73fdd703dd004343cf64526a3f97c9e2 Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Thu, 29 Jun 2023 09:56:31 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96sf=E5=AD=97=E6=AE=B5?=
=?UTF-8?q?=E5=BD=A2=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_base/models/tool_base_new.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py
index c7f95a3f..d6f69dd0 100644
--- a/sf_base/models/tool_base_new.py
+++ b/sf_base/models/tool_base_new.py
@@ -94,6 +94,7 @@ class CuttingToolModel(models.Model):
blade_main_included_angle = fields.Float('主偏角(°)')
blade_r_angle = fields.Float('R角(°)')
blade_hardness = fields.Char('加工硬度')
+ blade_accuracy = fields.Char('精度等级')
blade_radius = fields.Float('刀尖半径(mm)')
blade_nut = fields.Float('配对螺母(mm)')
mrs_cutting_tool_model_blade_cutter_bar_ids = fields.Many2many(
@@ -116,7 +117,7 @@ class CuttingToolModel(models.Model):
)
# 刀杆特有字段
- bar_code = fields.Char('刀杆编码', readonly=True)
+ bar_code = fields.Char('刀杆编码')
bar_c_diameter = fields.Float('C柄径(mm)')
bar_total_length = fields.Float('L总长(mm)')
bar_blade_number = fields.Integer('刃数')
@@ -138,7 +139,7 @@ class CuttingToolModel(models.Model):
bar_scope = fields.Char('适用范围')
# 刀盘特有字段
- pad_code = fields.Char('刀盘编码', readonly=True)
+ pad_code = fields.Char('刀盘编码')
pad_c_diameter = fields.Float('C柄径(mm)')
pad_total_length = fields.Float('L总长(mm)')
pad_blade_number = fields.Integer('刃数')
@@ -160,7 +161,7 @@ class CuttingToolModel(models.Model):
pad_scope = fields.Char('适用范围')
# 刀柄特有字段
- handle_code = fields.Char('刀柄编码', readonly=True)
+ handle_code = fields.Char('刀柄编码')
# 柄长L(mm)、法兰柄长L1(mm)、法兰直径D1(mm)
handle_length = fields.Float('柄长L(mm)')
handle_diameter = fields.Float('直径D(mm)')
@@ -189,7 +190,7 @@ class CuttingToolModel(models.Model):
handle_standard_speed = fields.Float('标准转速')
# 夹头特有字段
- chuck_code = fields.Char('夹头编码', readonly=True)
+ chuck_code = fields.Char('夹头编码')
chuck_accuracy = fields.Float('精度(mm)')
# 夹持直径min、夹持直径max、3D模型图
chuck_clamping_diameter_min = fields.Float('夹持直径min')