新增出入库记录对象,功能刀具出入库记录对象多对一关联出入库记录对象,优化功能刀具出入库布局;新增功能刀具列表、刀具物料查询的分组展示全部信息;对刀具物料查询对象的字段根据所选的刀具物料不同展示不同的刀具物料信息字段

This commit is contained in:
yuxianghui
2023-08-11 17:04:08 +08:00
parent 4d650a9aca
commit d103a1cd29
5 changed files with 244 additions and 133 deletions

View File

@@ -15,8 +15,13 @@ class FunctionalCuttingToolEntity(models.Model):
code = fields.Char('编码')
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_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型',tracking=True,
group_expand='_read_group_mrs_cutting_tool_type_ids')
@api.model
def _read_group_mrs_cutting_tool_type_ids(self, categories, domain, order):
mrs_cutting_tool_type_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
return categories.browse(mrs_cutting_tool_type_ids)
# 整体式刀具型号
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model',
@@ -403,25 +408,40 @@ class InboundAndOutboundRecordsOfFunctionalTools(models.Model):
image = fields.Binary('图片', readonly=True, related='functional_cutting_tool_id.image')
# 功能刀具出入库记录 特有字段
current_state = fields.Char(string='当前状态', readonly=False)
current_store_area = fields.Char(string='当前库区', readonly=False)
current_store_place = fields.Char(string='当前库位', readonly=False)
tool_install_staff = fields.Char(string='装刀人', readonly=False)
tool_install_time = fields.Datetime(string='装刀时间', readonly=False)
thickness = fields.Selection([('1', ''), ('2', ''), ('3', '')], string='粗/中/精', readonly=False)
max_life_span = fields.Char(string='最大寿命值', readonly=False)
alarm_value = fields.Char(string='报警值', readonly=False)
used_value = fields.Char(string='已使用值', readonly=False)
current_state = fields.Char(string='当前状态', readonly=False)
current_store_area = fields.Char(string='当前库区', readonly=False)
current_store_place = fields.Char(string='当前库位', readonly=False)
number = fields.Integer(string='数量', readonly=False)
reason_application = fields.Char(string='申请原因', readonly=False)
applicant = fields.Char(string='申请人', readonly=False)
return_staff = fields.Char(string='归还人', readonly=False)
return_time = fields.Date(string='归还入库时间', readonly=False)
tool_state = fields.Char(string="刀具状态", readonly=False)
tool_install_staff = fields.Char(string='装刀人', readonly=False)
tool_install_time = fields.Datetime(string='装刀时间', readonly=False)
inbound_and_outbound_records_ids = fields.One2many('sf.inbound.and.outbound.records','inbound_and_outbound_tools_id', string='出入库记录')
remark = fields.Char(string='备注/说明', readonly=False)
class InboundAndOutboundRecords(models.Model):
_name = 'sf.inbound.and.outbound.records'
_description = '出入库记录'
_order = 'id DESC'
inbound_and_outbound_tools_id = fields.Many2one('sf.inbound.and.outbound.records.of.functional.tools',string='功能刀具出入库记录')
name = fields.Char(string='出入库记录')
tool_state = fields.Selection([('0', '领用出库'), ('1', '归还入库')], string="出入库类别", readonly=False)
receive_equipment = fields.Char(string='领用机台', readonly=False)
receive_staff = fields.Char(string='领用人', readonly=False)
receive_time = fields.Char(string='领用出库时间', readonly=False)
remark = fields.Text(string='备注/说明', readonly=False)
receive_time = fields.Datetime(string='领用出库时间', readonly=False)
return_staff = fields.Char(string='归还人', readonly=False)
return_time = fields.Datetime(string='归还入库时间', readonly=False)
current_store_area = fields.Char(string='库区', readonly=False)
current_store_place = fields.Char(string='库位', readonly=False)
number = fields.Integer(string='数量', readonly=False)
class MachineTableToolChangingApply(models.Model):

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from odoo import fields, models, api
from odoo import fields, models, api, SUPERUSER_ID
# 刀具物料搜索
@@ -22,10 +22,23 @@ class SfToolMaterialSearch(models.Model):
# mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', '刀具型号')
# 关联刀具物料模型
mrs_cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料')
mrs_cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', '刀具物料',tracking=True,
group_expand='_read_group_mrs_cutting_tool_material_ids')
cutting_tool_material_name = fields.Char(string='物料名称',invisible=True)
@api.onchange('mrs_cutting_tool_material_id')
def _onchange_mrs_cutting_tool_material_id(self):
for record in self:
if record:
record.cutting_tool_material_name = record.mrs_cutting_tool_material_id.name
@api.model
def _read_group_mrs_cutting_tool_material_ids(self, categories, domain, order):
mrs_cutting_tool_material_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
return categories.browse(mrs_cutting_tool_material_ids)
# 刀片特有字段
blade_code = fields.Char('刀片编码')
blade_code = fields.Char('刀片编码', readonly=True)
blade_length = fields.Float('长度L(mm)')
blade_width = fields.Float('宽度D(mm)')
blade_height = fields.Float('高度T(mm)')

View File

@@ -4,6 +4,7 @@ access_sf_functional_cutting_tool_entity_cache,sf.functional.cutting.tool.entity
access_sf.functional.tool.warning,sf.functional.tool.warning,model_sf_functional_tool_warning,base.group_user,1,1,1,1
access_sf.real.time.distribution.of.functional.tools,sf.real.time.distribution.of.functional.tools,model_sf_real_time_distribution_of_functional_tools,base.group_user,1,1,1,1
access_sf.inbound.and.outbound.records.of.functional.tools,sf.inbound.and.outbound.records.of.functional.tools,model_sf_inbound_and_outbound_records_of_functional_tools,base.group_user,1,1,1,1
access_sf.inbound.and.outbound.records,sf.inbound.and.outbound.records,model_sf_inbound_and_outbound_records,base.group_user,1,1,1,1
access_sf_cam_work_order_program_knife_plan,sf.cam.work.order.program.knife.plan,model_sf_cam_work_order_program_knife_plan,base.group_user,1,1,1,1
access_sf_machine_table_tool_changing_apply,sf.machine.table.tool.changing.apply,model_sf_machine_table_tool_changing_apply,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
4 access_sf.functional.tool.warning sf.functional.tool.warning model_sf_functional_tool_warning base.group_user 1 1 1 1
5 access_sf.real.time.distribution.of.functional.tools sf.real.time.distribution.of.functional.tools model_sf_real_time_distribution_of_functional_tools base.group_user 1 1 1 1
6 access_sf.inbound.and.outbound.records.of.functional.tools sf.inbound.and.outbound.records.of.functional.tools model_sf_inbound_and_outbound_records_of_functional_tools base.group_user 1 1 1 1
7 access_sf.inbound.and.outbound.records sf.inbound.and.outbound.records model_sf_inbound_and_outbound_records base.group_user 1 1 1 1
8 access_sf_cam_work_order_program_knife_plan sf.cam.work.order.program.knife.plan model_sf_cam_work_order_program_knife_plan base.group_user 1 1 1 1
9 access_sf_machine_table_tool_changing_apply sf.machine.table.tool.changing.apply model_sf_machine_table_tool_changing_apply base.group_user 1 1 1 1
10 access_sf_tool_change_requirement_information sf.tool.change.requirement.information model_sf_tool_change_requirement_information base.group_user 1 1 1 1

View File

@@ -321,10 +321,6 @@
<field name="side_shelf_num"/>
<field name="return_reuse_num_co"/>
</group>
<!-- <field name="tool_stock_num"/>-->
<!-- <field name="side_shelf_num"/>-->
<!-- <field name="on_tool_stock_num"/>-->
<!-- <field name="tool_stock_total"/>-->
</group>
<group>
<group>
@@ -336,11 +332,6 @@
<field name="return_total"/>
<field name="total"/>
</group>
<!-- <field name="return_reuse_num_re"/>-->
<!-- <field name="return_reuse_num_co"/>-->
<!-- <field name="return_processing_num"/>-->
<!-- <field name="return_total"/>-->
<!-- <field name="total"/>-->
</group>
</group>
</page>
@@ -421,7 +412,7 @@
<field name="current_state"/>
<field name="current_store_area"/>
<field name="current_store_place"/>
<field name="applicant"/>
<!-- <field name="applicant"/>-->
</tree>
</field>
</record>
@@ -457,30 +448,7 @@
</group>
<notebook>
<page string="出入库信息">
<group>
<group>
<field name="tool_state"/>
<field name="thickness"/>
<field name="max_life_span"/>
<field name="alarm_value"/>
<field name="used_value"/>
<field name="number"/>
<field name="current_state"/>
<field name="current_store_area"/>
<field name="current_store_place"/>
</group>
<group>
<field name="applicant"/>
<field name="reason_application"/>
<field name="return_staff"/>
<field name="return_time"/>
<field name="tool_install_staff"/>
<field name="tool_install_time"/>
<field name="receive_equipment"/>
<field name="receive_staff"/>
<field name="receive_time"/>
</group>
</group>
<field name="inbound_and_outbound_records_ids"/>
</page>
<page string="参数信息">
<group>
@@ -502,7 +470,22 @@
</page>
<page string="其他信息">
<group>
<field name="remark"/>
<group>
<field name="current_store_area"/>
<field name="current_store_place"/>
<field name="alarm_value"/>
<field name="tool_install_staff"/>
<field name="applicant"/>
<field name="remark"/>
</group>
<group>
<field name="current_state"/>
<field name="thickness"/>
<field name="max_life_span"/>
<field name="used_value"/>
<field name="tool_install_time"/>
<field name="reason_application"/>
</group>
</group>
</page>
</notebook>
@@ -528,7 +511,7 @@
<field name="current_state"/>
<field name="current_store_area"/>
<field name="current_store_place"/>
<field name="applicant"/>
<!-- <field name="applicant"/>-->
<searchpanel>
<field name="mrs_cutting_tool_type_id" enable_counters="1" icon="fa-building"/>
</searchpanel>
@@ -544,6 +527,60 @@
</record>
<!--================================================出入库记录================================================-->
<record id="sf_inbound_and_outbound_records_view_tree" model="ir.ui.view">
<field name="name">出入库记录</field>
<field name="model">sf.inbound.and.outbound.records</field>
<field name="arch" type="xml">
<tree>
<field name="tool_state"/>
<field name="receive_equipment"/>
<field name="receive_staff"/>
<field name="receive_time"/>
<field name="return_staff"/>
<field name="return_time"/>
<field name="current_store_area"/>
<field name="current_store_place"/>
<field name="number"/>
</tree>
</field>
</record>
<record id="sf_inbound_and_outbound_records_view_form" model="ir.ui.view">
<field name="name">出入库记录</field>
<field name="model">sf.inbound.and.outbound.records</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="tool_state"/>
<field name="receive_equipment"/>
<field name="receive_staff"/>
<field name="receive_time"/>
<field name="current_store_area"/>
</group>
<group>
<field name="number"/>
<field name="return_staff"/>
<field name="return_time"/>
<field name="inbound_and_outbound_tools_id" readonly="True"/>
<field name="current_store_place"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_inbound_and_outbound_records_view_act" model="ir.actions.act_window">
<field name="name">出入库记录</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.inbound.and.outbound.records</field>
<field name="view_mode">tree,form</field>
</record>
<!--================================================机床换刀申请================================================-->
<record id="sf_machine_table_tool_changing_apply_tree" model="ir.ui.view">
<field name="name">机床换刀申请</field>

View File

@@ -155,90 +155,130 @@
<field name="warehouse_location"/>
</group>
</group>
<group string='刀具信息'>
<group>
<field name="cutting_tool_material_name" invisible="True"/>
</group>
<group string="刀片信息" attrs="{'invisible': [('cutting_tool_material_name','!=','刀片')]}">
<group>
<field name="blade_length"/>
<field name="blade_width"/>
<field name="blade_height"/>
<field name="blade_top_angle"/>
<field name="blade_front_angle"/>
<field name="blade_rear_angle"/>
<field name="blade_main_included_angle"/>
<field name="blade_r_angle"/>
<field name="blade_hardness"/>
<field name="blade_accuracy"/>
<field name="blade_coating_material_id"/>
<field name="blade_radius"/>
<field name="blade_nut"/>
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" widget="many2many_tags"/>
<field name="mrs_cutting_tool_model_blade_cutter_bar_ids" widget="many2many_tags"/>
<field name="integral_total_length"/>
<field name="integral_shank_length"/>
<field name="integral_blade_length"/>
<field name="integral_diameter"/>
<field name="integral_blade_number"/>
<field name="integral_front_angle"/>
<field name="integral_rear_angle"/>
<field name="integral_main_included_angle"/>
<field name="integral_accuracy"/>
<field name="integral_hardness"/>
<field name="integral_coating_material"/>
<field name="integral_nut"/>
<field name="integral_scope"/>
<field name="bar_c_diameter"/>
<field name="bar_total_length"/>
<field name="bar_blade_number"/>
<field name="bar_d_diameter"/>
<field name="mrs_cutting_tool_model_bar_blade_ids" widget="many2many_tags"/>
<field name="bar_wrench"/>
<field name="bar_screw"/>
<field name="bar_radius"/>
<field name="bar_accuracy"/>
<field name="bar_hardness"/>
<field name="bar_scope"/>
<field name="blade_code" invisible="True"/>
<field name="blade_length"/>
<field name="blade_width"/>
<field name="blade_height"/>
<field name="blade_radius"/>
<field name="blade_hardness"/>
<field name="blade_accuracy"/>
<field name="blade_coating_material_id"/>
<field name="mrs_cutting_tool_model_blade_cutter_bar_ids" widget="many2many_tags"/>
</group>
<group>
<field name="pad_c_diameter"/>
<field name="pad_total_length"/>
<field name="pad_blade_number"/>
<field name="pad_d_diameter"/>
<field name="mrs_cutting_tool_model_pad_blade_ids" widget="many2many_tags"/>
<field name="pad_wrench"/>
<field name="pad_screw"/>
<field name="pad_radius"/>
<field name="pad_accuracy"/>
<field name="pad_hardness"/>
<field name="pad_scope"/>
<field name="blade_top_angle"/>
<field name="blade_front_angle"/>
<field name="blade_rear_angle"/>
<field name="blade_main_included_angle"/>
<field name="blade_r_angle"/>
<field name="blade_nut"/>
<field name="mrs_cutting_tool_model_blade_cutter_pad_ids" widget="many2many_tags"/>
</group>
</group>
<field name="handle_length"/>
<field name="handle_diameter"/>
<field name="handle_flange_length"/>
<field name="handle_flange_diameter"/>
<field name="handle_clamping_diameter_min"/>
<field name="handle_clamping_diameter_max"/>
<field name="handle_jump_accuracy"/>
<field name="handle_max_speed"/>
<field name="handle_weight"/>
<field name="handle_body_accuracy"/>
<field name="handle_nut"/>
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags"/>
<field name="handle_clamping_range"/>
<field name="handle_detection_accuracy"/>
<field name="handle_detection_hardness"/>
<field name="handle_standard_speed"/>
<group string="整体式刀具信息" attrs="{'invisible': [('cutting_tool_material_name','!=','整体式刀具')]}">
<group>
<field name="integral_code" invisible="True"/>
<field name="integral_total_length"/>
<field name="integral_shank_length"/>
<field name="integral_blade_length"/>
<field name="integral_diameter"/>
<field name="integral_blade_number"/>
<field name="integral_accuracy"/>
</group>
<group>
<field name="integral_front_angle"/>
<field name="integral_rear_angle"/>
<field name="integral_main_included_angle"/>
<field name="integral_nut"/>
<field name="integral_hardness"/>
<field name="integral_coating_material"/>
<field name="integral_scope"/>
</group>
</group>
<field name="chuck_accuracy"/>
<field name="chuck_clamping_diameter_min"/>
<field name="chuck_clamping_diameter_max"/>
<field name="chuck_diameter"/>
<field name="chuck_inner_diameter"/>
<field name="chuck_height"/>
<field name="chuck_nut"/>
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags"/>
<field name="chuck_clamping_range"/>
<field name="chuck_feature"/>
<group string="刀杆信息" attrs="{'invisible': [('cutting_tool_material_name','!=','刀杆')]}">
<group>
<field name="bar_code" invisible="True"/>
<field name="bar_c_diameter"/>
<field name="bar_total_length"/>
<field name="bar_blade_number"/>
<field name="bar_d_diameter"/>
<field name="bar_scope"/>
<field name="mrs_cutting_tool_model_bar_blade_ids" widget="many2many_tags"/>
</group>
<group>
<field name="bar_wrench"/>
<field name="bar_screw"/>
<field name="bar_radius"/>
<field name="bar_accuracy"/>
<field name="bar_hardness"/>
</group>
</group>
<group string="刀盘信息" attrs="{'invisible': [('cutting_tool_material_name','!=','刀盘')]}">
<group>
<field name="pad_code" invisible="True"/>
<field name="pad_c_diameter"/>
<field name="pad_total_length"/>
<field name="pad_blade_number"/>
<field name="pad_d_diameter"/>
<field name="pad_scope"/>
<field name="mrs_cutting_tool_model_pad_blade_ids" widget="many2many_tags"/>
</group>
<group>
<field name="pad_wrench"/>
<field name="pad_screw"/>
<field name="pad_radius"/>
<field name="pad_accuracy"/>
<field name="pad_hardness"/>
</group>
</group>
<group string="刀柄信息" attrs="{'invisible': [('cutting_tool_material_name','!=','刀柄')]}">
<group>
<field name="handle_code" invisible="True"/>
<field name="handle_diameter"/>
<field name="handle_flange_length"/>
<field name="handle_flange_diameter"/>
<field name="handle_clamping_diameter_min"/>
<field name="handle_clamping_diameter_max"/>
<field name="handle_clamping_range"/>
<field name="handle_detection_accuracy"/>
<field name="mrs_cutting_tool_model_handle_chuck_model_ids" widget="many2many_tags"/>
</group>
<group>
<field name="handle_jump_accuracy"/>
<field name="handle_max_speed"/>
<field name="handle_standard_speed"/>
<field name="handle_weight"/>
<field name="handle_body_accuracy"/>
<field name="handle_nut"/>
<field name="handle_detection_hardness"/>
</group>
</group>
<group string="夹头信息" attrs="{'invisible': [('cutting_tool_material_name','!=','夹头')]}">
<group>
<field name="chuck_code" invisible="True"/>
<field name="chuck_clamping_diameter_min"/>
<field name="chuck_clamping_diameter_max"/>
<field name="chuck_diameter"/>
<field name="chuck_inner_diameter"/>
<field name="chuck_feature"/>
<field name="mrs_cutting_tool_model_chuck_handle_model_ids" widget="many2many_tags"/>
</group>
<group>
<field name="chuck_accuracy"/>
<field name="chuck_height"/>
<field name="chuck_nut"/>
<field name="chuck_clamping_range"/>
<field name="image"/>
</group>
</group>
</sheet>
@@ -257,8 +297,8 @@
<search string="刀具物料搜索">
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
<searchpanel class="account_root" string="刀具物料">
<field name="mrs_cutting_tool_material_id" icon="fa-filter"/>
<searchpanel>
<field name="mrs_cutting_tool_material_id" icon="fa-building" enable_counters="1"/>
</searchpanel>
</search>
</field>
@@ -270,7 +310,7 @@
<field name="view_mode">tree,form</field>
</record>
<menuitem
sequence="3"
sequence="20"
name="刀具物料查询"
id="menu_sf_tool_material_search"
action="action_sf_tool_material_search"