Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改设备基础参数

This commit is contained in:
qihao.gong@jikimo.com
2023-07-19 17:11:07 +08:00
8 changed files with 288 additions and 149 deletions

View File

@@ -23,6 +23,36 @@ class FunctionalCuttingTool(models.Model):
name = fields.Char('名称')
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='刀具型号')
# 整体式刀具型号
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_integral_model_functional_sf',
string='整体式刀具型号', domain=
[('mrs_cutting_tool_material_name', '=', '整体式刀具')])
# 刀片型号
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'rel_blade_model_functional_sf',
string='刀片型号', domain=
[('mrs_cutting_tool_material_name', '=', '刀片')])
# 刀杆型号
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
'rel_cutterbar_model_functional_sf',
string='刀杆型号', domain=
[('mrs_cutting_tool_material_name', '=', '刀杆')])
# 刀盘型号
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
'rel_cutterpad_model_functional_sf',
string='刀盘型号', domain=
[('mrs_cutting_tool_material_name', '=', '刀盘')])
# 刀柄型号
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
'rel_cutterhandle_model_functional_sf', string='刀柄型号',
domain=
[('mrs_cutting_tool_material_name', '=', '刀柄')])
# 夹头型号
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
'rel_cutterhead_model_functional_sf',
string='夹头型号', domain=
[('mrs_cutting_tool_material_name', '=', '夹头')])
diameter = fields.Float('直径(mm)')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
string='刀具等级')
@@ -36,6 +66,13 @@ class FunctionalCuttingTool(models.Model):
applicable_range = fields.Char('适用范围')
image = fields.Binary('图片')
def _get_functional_tool_model_ids(self, functional_tool_model_code):
functional_tool_model_ids = []
for item in functional_tool_model_code:
functional_tool_model = self.env['sf.cutting.tool.model'].search([('code', '=', item)])
functional_tool_model_ids.append(functional_tool_model.id)
return [(6, 0, functional_tool_model_ids)]
# 功能刀具类型
class FunctionalCuttingToolModel(models.Model):

View File

@@ -74,7 +74,7 @@
id="menu_sf_functional_cutting_tool"
parent="menu_sf_cutting_tool"
name="功能刀具"
sequence="4"
sequence="5"
action="action_sf_functional_cutting_tool"
/>
<!-- 功能刀具类型 -->
@@ -82,7 +82,7 @@
id="menu_sf_functional_cutting_tool_model_type"
parent="menu_sf_cutting_tool"
name="功能刀具类型"
sequence="5"
sequence="4"
action="action_sf_functional_cutting_tool_model_type"
/>
</data>

View File

@@ -58,6 +58,12 @@
<field name="code"/>
<field name="name"/>
<field name="mrs_cutting_tool_type_id"/>
<field name="mrs_cutting_tool_integral_model_ids" optional="hide"/>
<field name="mrs_cutting_tool_blade_model_ids" optional="hide"/>
<field name="mrs_cutting_tool_cutterbar_model_ids" optional="hide"/>
<field name="mrs_cutting_tool_cutterpad_model_ids" optional="hide"/>
<field name="mrs_cutting_tool_cutterhandle_model_ids" optional="hide"/>
<field name="mrs_cutting_tool_cutterhead_model_ids" optional="hide"/>
<field name="image" widget='image'/>
</tree>
</field>
@@ -72,10 +78,16 @@
<group col='1'>
<group string='基本信息'>
<group>
<field name="code"/>
<field name="name"/>
<field name="mrs_cutting_tool_type_id" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="mrs_cutting_tool_model_id" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="code"/>
<field name="name"/>
<field name="mrs_cutting_tool_type_id" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="mrs_cutting_tool_model_id" options="{'no_create': True, 'no_quick_create': True}" attrs="{'invisible': True}"/>
<field name="mrs_cutting_tool_integral_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
<field name="mrs_cutting_tool_blade_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
<field name="mrs_cutting_tool_cutterbar_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
<field name="mrs_cutting_tool_cutterpad_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
<field name="mrs_cutting_tool_cutterhandle_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
<field name="mrs_cutting_tool_cutterhead_model_ids" options="{'no_create': True, 'no_quick_create': True}" widget="many2many_tags"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>

View File

@@ -815,7 +815,7 @@ class MachineToolType(models.Model):
[('code', '=', item['control_system_id'])]).id,
"active": item['active'],
'brand_id': self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])]).id,
'machine_tool_picture':image,
'machine_tool_picture': image,
"heightened_way": item['heightened_way'],
"workpiece_load": item['workpiece_load'],
"lead_screw": item['lead_screw'],
@@ -1186,9 +1186,21 @@ class sfSyncFunctional_cutting_tool(models.Model):
# 功能刀具类型
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[('code', '=', item['mrs_cutting_tool_type_id'])]).id,
# 刀具型号
"mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search(
[('code', '=', item['mrs_cutting_tool_model_id'])]).id,
# # 刀具型号
# "mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search(
# [('code', '=', item['mrs_cutting_tool_model_id'])]).id,
"mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_integral_model_ids']),
"mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_blade_model_ids']),
"mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterbar_model_ids']),
"mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterpad_model_ids']),
"mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhandle_model_ids']),
"mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhead_model_ids']),
"diameter": item['diameter'],
"tool_grade": item['tool_grade'],
"machining_accuracy": item['machining_accuracy'],
@@ -1209,9 +1221,18 @@ class sfSyncFunctional_cutting_tool(models.Model):
# 功能刀具类型
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[('code', '=', item['mrs_cutting_tool_type_id'])]).id,
# 刀具型号
"mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search(
[('code', '=', item['mrs_cutting_tool_model_id'])]).id,
"mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_integral_model_ids']),
"mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_blade_model_ids']),
"mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterbar_model_ids']),
"mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterpad_model_ids']),
"mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhandle_model_ids']),
"mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhead_model_ids']),
"diameter": item['diameter'],
"tool_grade": item['tool_grade'],
"machining_accuracy": item['machining_accuracy'],
@@ -1257,9 +1278,18 @@ class sfSyncFunctional_cutting_tool(models.Model):
# 功能刀具类型
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[('code', '=', item['mrs_cutting_tool_type_id'])]).id,
# 刀具型号
"mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search(
[('code', '=', item['mrs_cutting_tool_model_id'])]).id,
"mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_integral_model_ids']),
"mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_blade_model_ids']),
"mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterbar_model_ids']),
"mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterpad_model_ids']),
"mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhandle_model_ids']),
"mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhead_model_ids']),
"diameter": item['diameter'],
"tool_grade": item['tool_grade'],
"machining_accuracy": item['machining_accuracy'],
@@ -1280,9 +1310,18 @@ class sfSyncFunctional_cutting_tool(models.Model):
# 功能刀具类型
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[('code', '=', item['mrs_cutting_tool_type_id'])]).id,
# 刀具型号
"mrs_cutting_tool_model_id": self.env['sf.cutting.tool.model'].search(
[('code', '=', item['mrs_cutting_tool_model_id'])]).id,
"mrs_cutting_tool_integral_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_integral_model_ids']),
"mrs_cutting_tool_blade_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_blade_model_ids']),
"mrs_cutting_tool_cutterbar_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterbar_model_ids']),
"mrs_cutting_tool_cutterpad_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterpad_model_ids']),
"mrs_cutting_tool_cutterhandle_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhandle_model_ids']),
"mrs_cutting_tool_cutterhead_model_ids": self._get_functional_tool_model_ids(
item['mrs_cutting_tool_cutterhead_model_ids']),
"diameter": item['diameter'],
"tool_grade": item['tool_grade'],
"machining_accuracy": item['machining_accuracy'],
@@ -1561,7 +1600,7 @@ class SyncFixtureModel(models.Model):
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
[('code', '=', item['apply_machine_tool_type_code'])]).id,
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
@@ -1590,7 +1629,7 @@ class SyncFixtureModel(models.Model):
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
[('code', '=', item['apply_machine_tool_type_code'])]).id,
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
@@ -1641,7 +1680,7 @@ class SyncFixtureModel(models.Model):
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
[('code', '=', item['apply_machine_tool_type_code'])]).id,
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
@@ -1670,7 +1709,7 @@ class SyncFixtureModel(models.Model):
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
"apply_machine_tool_type_id": self.env['sf.machine_tool.type'].search(
[('code', '=', item['apply_machine_tool_type_code'])]).id,
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
@@ -1983,14 +2022,14 @@ class SfToolModel(models.Model):
mrs_cutting_tool_model_blade_cutter_bar_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_bar_ids'):
for mrs_cutting_tool_model_blade_cutter_bar_id in item[
'mrs_cutting_tool_model_blade_cutter_bar_ids']:
'mrs_cutting_tool_model_blade_cutter_bar_ids']:
mrs_cutting_tool_model_blade_cutter_bar_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_bar_id)]).id)
mrs_cutting_tool_model_blade_cutter_pad_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_pad_ids'):
for mrs_cutting_tool_model_blade_cutter_pad_id in item[
'mrs_cutting_tool_model_blade_cutter_pad_ids']:
'mrs_cutting_tool_model_blade_cutter_pad_ids']:
mrs_cutting_tool_model_blade_cutter_pad_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_pad_id)]).id)
@@ -2007,14 +2046,14 @@ class SfToolModel(models.Model):
mrs_cutting_tool_model_handle_chuck_model_ids_list = []
if item.get('mrs_cutting_tool_model_handle_chuck_model_ids'):
for mrs_cutting_tool_model_handle_chuck_model_id in item[
'mrs_cutting_tool_model_handle_chuck_model_ids']:
'mrs_cutting_tool_model_handle_chuck_model_ids']:
mrs_cutting_tool_model_handle_chuck_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_handle_chuck_model_id)]).id)
mrs_cutting_tool_model_chuck_handle_model_ids_list = []
if item.get('mrs_cutting_tool_model_chuck_handle_model_ids'):
for mrs_cutting_tool_model_chuck_handle_model_id in item[
'mrs_cutting_tool_model_chuck_handle_model_ids']:
'mrs_cutting_tool_model_chuck_handle_model_ids']:
mrs_cutting_tool_model_chuck_handle_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_chuck_handle_model_id)]).id)
@@ -2061,8 +2100,10 @@ class SfToolModel(models.Model):
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
@@ -2111,7 +2152,8 @@ class SfToolModel(models.Model):
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list,
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
@@ -2168,8 +2210,10 @@ class SfToolModel(models.Model):
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
@@ -2218,7 +2262,8 @@ class SfToolModel(models.Model):
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list,
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
@@ -2261,14 +2306,14 @@ class SfToolModel(models.Model):
mrs_cutting_tool_model_blade_cutter_bar_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_bar_ids'):
for mrs_cutting_tool_model_blade_cutter_bar_id in item[
'mrs_cutting_tool_model_blade_cutter_bar_ids']:
'mrs_cutting_tool_model_blade_cutter_bar_ids']:
mrs_cutting_tool_model_blade_cutter_bar_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_bar_id)]).id)
mrs_cutting_tool_model_blade_cutter_pad_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_pad_ids'):
for mrs_cutting_tool_model_blade_cutter_pad_id in item[
'mrs_cutting_tool_model_blade_cutter_pad_ids']:
'mrs_cutting_tool_model_blade_cutter_pad_ids']:
mrs_cutting_tool_model_blade_cutter_pad_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_pad_id)]).id)
@@ -2285,14 +2330,14 @@ class SfToolModel(models.Model):
mrs_cutting_tool_model_handle_chuck_model_ids_list = []
if item.get('mrs_cutting_tool_model_handle_chuck_model_ids'):
for mrs_cutting_tool_model_handle_chuck_model_id in item[
'mrs_cutting_tool_model_handle_chuck_model_ids']:
'mrs_cutting_tool_model_handle_chuck_model_ids']:
mrs_cutting_tool_model_handle_chuck_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_handle_chuck_model_id)]).id)
mrs_cutting_tool_model_chuck_handle_model_ids_list = []
if item.get('mrs_cutting_tool_model_chuck_handle_model_ids'):
for mrs_cutting_tool_model_chuck_handle_model_id in item[
'mrs_cutting_tool_model_chuck_handle_model_ids']:
'mrs_cutting_tool_model_chuck_handle_model_ids']:
mrs_cutting_tool_model_chuck_handle_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_chuck_handle_model_id)]).id)
@@ -2339,8 +2384,10 @@ class SfToolModel(models.Model):
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
@@ -2388,7 +2435,8 @@ class SfToolModel(models.Model):
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list,
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
@@ -2441,8 +2489,10 @@ class SfToolModel(models.Model):
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids": mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids": mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
@@ -2491,7 +2541,8 @@ class SfToolModel(models.Model):
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids": mrs_cutting_tool_model_chuck_handle_model_ids_list,
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,

View File

@@ -112,7 +112,6 @@ class WorkLogSetting(models.Model):
创建记录时,生成工作日历
"""
record = super(WorkLogSetting, self).create(vals)
logging.info("工作日历设置【新建】记录时,创建工作日历记录!!!")
record.generate_work_calendar()
return record
@@ -123,7 +122,6 @@ class WorkLogSetting(models.Model):
# 先删除之前创建的工作日历事件记录
self.env['sf.work.schedule.calendar'].search([('calendar_code', '=', self.code)]).unlink()
result = super(WorkLogSetting, self).write(vals)
logging.info("工作日历设置【更新】记录时,创建工作日历记录!!!")
self.generate_work_calendar()
return result
@@ -131,28 +129,66 @@ class WorkLogSetting(models.Model):
"""
生成工作日历
"""
logging.info('开始创建工作日历记录')
self.ensure_one()
# start_date = date.today() # 开始日期
# end_date = start_date + timedelta(days=365) # 结束日期
# 获取本年第一天和最后一天
start_date = datetime.now().replace(month=1, day=1).date()
end_date = datetime.now().replace(month=1, day=31).date()
logging.info(f'start_date: {start_date} , end_date: {end_date}')
end_date = datetime.now().replace(month=12, day=31).date()
# 休息日列表
rest_days = self.day_off_ids.mapped('name')
logging.info(f'获取界面输入的休息日:{rest_days}')
rest_days = self.chinese_weekdays_to_english(self.day_off_ids.mapped('name'))
for single_date in self.daterange(start_date, end_date):
is_workday = single_date.strftime("%A")
logging.info(f'获取一月份每天的星期:{is_workday}')
is_workday = self.chinese_weekday_to_english(single_date.strftime("%A"))
logging.info(f"每天的星期:{is_workday}")
if is_workday in rest_days:
print('is_workday in rest_days', is_workday)
self.env['sf.work.schedule.calendar'].sudo().create({
'name': '休息日',
'name_id': self.id,
'date_time': single_date})
logging.info('创建一条工作日历记录,休息时间: %s' % is_workday)
logging.info('工作日历记录创建完成')
@staticmethod
def chinese_weekdays_to_english(chinese_weekdays):
"""
将元组的中文星期转换成英文
:param chinese_weekdays:
:return:
"""
weekdays = {
'星期一': 'Monday',
'星期二': 'Tuesday',
'星期三': 'Wednesday',
'星期四': 'Thursday',
'星期五': 'Friday',
'星期六': 'Saturday',
'星期日': 'Sunday'
}
english_weekdays = []
for chinese_weekday in chinese_weekdays:
english_weekday = weekdays.get(chinese_weekday, 'Invalid weekday')
english_weekdays.append(english_weekday)
return english_weekdays
@staticmethod
def chinese_weekday_to_english(chinese_weekday):
"""
将单个的中文星期转换成英文
:param chinese_weekday:
:return:
"""
weekdays = {
'星期一': 'Monday',
'星期二': 'Tuesday',
'星期三': 'Wednesday',
'星期四': 'Thursday',
'星期五': 'Friday',
'星期六': 'Saturday',
'星期日': 'Sunday'
}
weekday = weekdays.get(chinese_weekday)
if weekday:
return weekday
return chinese_weekday
@staticmethod
def daterange(start_date, end_date):
@@ -202,13 +238,13 @@ class DayOff(models.Model):
_description = '休息日'
name = fields.Selection([
('星期一', '星期一'),
('星期二', '星期二'),
('星期三', '星期三'),
('星期四', '星期四'),
('星期五', '星期五'),
('星期六', '星期六'),
('星期日', '星期日')], '休息日名称')
('Monday ', '星期一'),
('Tuesday ', '星期二'),
('Wednesday ', '星期三'),
('Thursday ', '星期四'),
('Friday ', '星期五'),
('Saturday ', '星期六'),
('Sunday ', '星期日')], '休息日名称')
class WorkScheduleCalendar(models.Model):

View File

@@ -22,7 +22,6 @@
<field name="is_standard" optional="show"/>
<field name="applicable_range" optional="show"/>
<field name="image" widget='image' optional="show"/>
</tree>
</field>
</record>
@@ -126,20 +125,18 @@
<field name="arch" type="xml">
<tree>
<!-- <field name="order"/>-->
<field name="code"/>
<field name="name"/>
<field name="mrs_cutting_tool_type_id"/>
<field name="mrs_cutting_tool_model_id"/>
<field name="diameter" optional="hide"/>
<field name="tool_grade" optional="hide"/>
<field name="machining_accuracy" optional="hide"/>
<field name="tool_length" optional="hide"/>
<field name="blade_number" optional="hide"/>
<field name="integral_blade_length" optional="hide"/>
<field name="effective_blade_length" optional="hide"/>
<field name="max_life" optional="hide"/>
<field name="is_standard" optional="hide"/>
<field name="applicable_range" optional="hide"/>
<field name="diameter" optional="show"/>
<field name="tool_grade" optional="show"/>
<field name="machining_accuracy" optional="show"/>
<field name="tool_length" optional="show"/>
<field name="blade_number" optional="show"/>
<field name="integral_blade_length" optional="show"/>
<field name="effective_blade_length" optional="show"/>
<field name="max_life" optional="show"/>
<field name="is_standard" optional="show"/>
<field name="applicable_range" optional="show"/>
<field name="tool_stock_num" optional="show"/>
<field name="side_shelf_num" optional="show"/>
<field name="on_tool_stock_num" optional="show"/>
@@ -204,11 +201,11 @@
<button string="转移"
name="%(sf_tool_management.sf_tool_transfer_request_information_act)d"
type="action"
context="{ 'default_name':name,
context="{ 'default_CNC_machine_table':name,
'default_machine_tool_code': machine_tool_code,
'default_cutter_spacing_code': cutter_spacing_code,
'default_functional_tool_code': functional_tool_code,
'default_name': functional_tool_name,
'default_functional_tool_name': functional_tool_name,
'default_functional_tool_type': functional_tool_type}"
class="btn-primary"
attrs="{'invisible': [('status', '!=', '0')]}"
@@ -300,7 +297,7 @@
<field name="applicant"/>
<field name="reason_for_applying"/>
<field name="remark"/>
<button string="装刀申请"
<button string="申请装刀"
name="%(sf_tool_management.sf_apply_for_tooling_act)d"
type="action"
context="{ 'default_name':name,
@@ -308,7 +305,7 @@
'default_machine_table_name': machine_table_name,
'default_cam_cutter_spacing_code': cam_cutter_spacing_code,
'default_functional_tool_code': functional_tool_code,
'default_name': functional_tool_name,
'default_functional_tool_name': functional_tool_name,
'default_functional_tool_type': functional_tool_type,
'default_diameter': diameter,
'default_tool_loading_length': tool_loading_length,
@@ -324,7 +321,7 @@
class="btn-primary"
attrs="{'invisible': [('plan_execute_status', '!=', '0')]}"
/>
<button string="装刀申请" name="" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '=', '0')]}"/>
<button string="申请装刀" name="" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '=', '0')]}"/>
<button string="撤回" name="revocation" type="object" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '!=', '1')]}"/>
<button string="撤回" name="" class="btn-primary" attrs="{'invisible': [('plan_execute_status', '=', '1')]}"/>
</tree>
@@ -404,7 +401,7 @@
context="{
'default_machine_tool_name': machine_tool_name,
'default_cutter_spacing_code': cutter_spacing_code,
'default_name': name,
'default_functional_tool_name': name,
'default_functional_tool_type': functional_tool_type,
'default_functional_tool_length': functional_tool_length,
'default_effective_length': None,
@@ -420,12 +417,12 @@
<button string="取消组装" name="cancel_functional_tool_assembly" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
<button string="取消组装" name="" attrs="{'invisible': [('assemble_status', '=', '1')]}" class="btn-primary"/>
<button string="自动打印二维码" name="automatic_printing_of_QR_code" type="object" class="btn-primary"/>
<button string="自动打印二维码" name="automatic_printing_of_QR_code" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary" />
<button string="出库" name="show_popup" type="object" attrs="{'invisible': [('assemble_status', '!=', '1')]}" class="btn-primary"/>
<button string="出库" name="" attrs="{'invisible': [('assemble_status', '=', '1')]}" class="btn-primary"/>
<button string="组装单打印" name="assemble_single_print" type="object" class="btn-primary"/>
<button string="组装单打印" name="assemble_single_print" type="object" attrs="{'invisible': [('assemble_status', '=', '0')]}" class="btn-primary"/>
<field name="check_box_1" attrs="{'readonly': [('assemble_status', '!=', '1')]}"/>

View File

@@ -7,7 +7,7 @@
<field name="arch" type="xml">
<form string="换刀需求信息">
<sheet>
<group>
<group string="机床信息">
<group>
<group>
<field name="name"/>
@@ -20,9 +20,13 @@
<field name="cutter_spacing_code"/>
</group>
</group>
<group>
<field name="replacement_tool_name"/>
<field name="replacement_tool_type"/>
<group string="刀具信息">
<group>
<field name="replacement_tool_name"/>
</group>
<group>
<field name="replacement_tool_type"/>
</group>
</group>
<group>
<group>
@@ -63,41 +67,37 @@
<field name="arch" type="xml">
<form string="刀具转移申请信息">
<sheet>
<group>
<group string="机床信息">
<group>
<group>
<field name="CNC_machine_table"/>
<field name="functional_tool_code" string="刀具编码"/>
</group>
<group>
<field name="machine_tool_code"/>
<field name="functional_tool_name" string="刀具名称"/>
</group>
<field name="CNC_machine_table"/>
<field name="cutter_spacing_code"/>
</group>
<group>
<field name="cutter_spacing_code"/>
<field name="functional_tool_type" string="刀具类型"/>
<field name="machine_tool_code"/>
</group>
</group>
<group>
<group string="刀具信息">
<group>
<field name="functional_tool_name" string="刀具名称"/>
<field name="functional_tool_type" string="刀具类型"/>
</group>
<group>
<field name="functional_tool_code" string="刀具编码"/>
</group>
</group>
<group string="刀具转移">
<group>
<field name="transfer_target" widget="radio" options="{'horizontal': true}"/>
</group>
</group>
<group>
<group>
<group>
<field name="new_cnc_machine_table" attrs="{'readonly': [('transfer_target', '!=', '机台')]}"/>
<field name="new_machine_tool_code" attrs="{'readonly': [('transfer_target', '!=', '机台')]}"/>
<field name="new_cutter_spacing_code" attrs="{'readonly': [('transfer_target', '!=', '机台')]}"/>
</group>
<group>
<field name="magazine_tool_warehouse_district" attrs="{'readonly': [('transfer_target', '!=', '线边刀库')]}"/>
<field name="magazine_tool_warehouse_position" attrs="{'readonly': [('transfer_target', '!=', '线边刀库')]}"/>
</group>
</group>
<group>
<field name="tool_room_warehouse_district" attrs="{'readonly': [('transfer_target', '!=', '刀具房')]}"/>
<field name="new_cnc_machine_table" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
<field name="new_machine_tool_code" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
<field name="new_cutter_spacing_code" attrs="{'invisible': [('transfer_target', '!=', '机台')]}"/>
<field name="magazine_tool_warehouse_district" attrs="{'invisible': [('transfer_target', '!=', '线边刀库')]}"/>
<field name="magazine_tool_warehouse_position" attrs="{'invisible': [('transfer_target', '!=', '线边刀库')]}"/>
<field name="tool_room_warehouse_district" attrs="{'invisible': [('transfer_target', '!=', '刀具房')]}"/>
<field name="tool_room_warehouse_position" attrs="{'invisible': [('transfer_target', '!=', '刀具房')]}"/>
</group>
</group>
@@ -127,37 +127,39 @@
<field name="arch" type="xml">
<form string="申请装刀">
<sheet>
<group>
<group string="基础信息">
<group>
<field name="ticket_task_code" string="工单编号"/>
<field name="machine_table_name" string="CAM指定机床"/>
</group>
</group>
<group>
<group>
<field name="machine_table_name" string="CAM指定机床"/>
<field name="cam_procedure_code" string="CAM程序编号"/>
<field name="cam_cutter_spacing_code" string="CAM指定刀位号"/>
</group>
</group>
<group>
<group>
<group>
<field name="diameter" string="直径"/>
<field name="tool_included_angle"/>
<field name="whether_standard_tool"/>
</group>
<group>
<field name="tool_loading_length" string="刀尖角"/>
<field name="L_D"/>
<field name="need_knife_time"/>
</group>
<field name="functional_tool_name"/>
<field name="functional_tool_code"/>
<field name="functional_tool_type"/>
</group>
</group>
<group string="数据信息">
<group>
<field name="diameter" string="直径"/>
<field name="tool_included_angle" string="刀尖角"/>
<field name="clearance_length"/>
<field name="coarse_middle_thin"/>
<field name="required_cutting_time" string="需切削时长"/>
<field name="need_knife_time"/>
<field name="whether_standard_tool"/>
</group>
<group>
<field name="tool_loading_length"/>
<field name="L_D"/>
<field name="coarse_middle_thin"/>
<field name="required_cutting_time" string="需切削时长"/>
</group>
</group>
<group>
<group string="其他">
<field name="reason_for_applying"/>
</group>
</sheet>
@@ -188,29 +190,16 @@
<sheet>
<group string="功能刀具申请信息">
<group>
<group>
<field name="machine_tool_name"/>
</group>
<group>
<field name="cutter_spacing_code"/>
</group>
</group><group>
<group>
<field name="functional_tool_name"/>
</group>
<group>
<field name="functional_tool_type"/>
</group>
</group>
</group>
<group>
<group>
<field name="machine_tool_name"/>
<field name="functional_tool_name"/>
<field name="functional_tool_length"/>
<field name="effective_length"/>
<field name="functional_tool_cutting_type"/>
<field name="required_cutting_time"/>
</group>
<group>
<field name="cutter_spacing_code"/>
<field name="functional_tool_type"/>
<field name="functional_tool_diameter"/>
<field name="tool_included_angle"/>
<field name="whether_standard_tool"/>
@@ -243,9 +232,11 @@
</group>
</group>
<group>
<field name="cut_time"/>
<field name="cut_length"/>
<field name="cut_number"/>
<group>
<field name="cut_time"/>
<field name="cut_length"/>
<field name="cut_number"/>
</group>
</group>
</sheet>
<footer>

View File

@@ -556,4 +556,19 @@ body.o_web_client {
}
}
}
}
}
.ui-sortable .o_data_row .o_data_cell .me-2 {
display: flex !important;
align-items: center;
}
.o_data_cell>button[name=""] {
background-color: #ccc !important;
border: none !important;
}
.o_dialog .modal .modal-footer footer {
justify-content: flex-end;
}