diff --git a/jikimo_frontend/static/src/js/custom_image_temp.js b/jikimo_frontend/static/src/js/custom_image_temp.js index 60cc3425..fba97121 100644 --- a/jikimo_frontend/static/src/js/custom_image_temp.js +++ b/jikimo_frontend/static/src/js/custom_image_temp.js @@ -4,6 +4,8 @@ import { registry } from "@web/core/registry"; import { url } from "@web/core/utils/urls"; import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field'; +const placeholder = "/web/static/img/placeholder.png"; + export class CustomImageField extends ImageField { setup() { super.setup(); diff --git a/sf_base/models/common.py b/sf_base/models/common.py index 6cddafd7..7496e7db 100644 --- a/sf_base/models/common.py +++ b/sf_base/models/common.py @@ -90,7 +90,7 @@ class MrsProductionProcess(models.Model): code = fields.Char("编码") name = fields.Char('名称') remark = fields.Text("备注") - processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序') + # processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序') partner_process_ids = fields.Many2many('res.partner', 'process_ids', '加工工厂') active = fields.Boolean('有效', default=True) parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数') @@ -98,25 +98,25 @@ class MrsProductionProcess(models.Model): # workcenter_ids = fields.Many2many('mrp.workcenter', 'rel_workcenter_process', required=True) -class MrsProcessingTechnology(models.Model): - _name = 'sf.processing.technology' - _description = '加工工艺' - - name = fields.Char('名称', index=True) - remark = fields.Text('备注', index=True) - code = fields.Char("编码") - processing_order_ids = fields.Many2many('sf.processing.order', 'sf_associated_processes', - index=True, string='工序') - active = fields.Boolean('有效', default=True) +# class MrsProcessingTechnology(models.Model): +# _name = 'sf.processing.technology' +# _description = '加工工艺' +# +# name = fields.Char('名称', index=True) +# remark = fields.Text('备注', index=True) +# code = fields.Char("编码") +# processing_order_ids = fields.Many2many('sf.processing.order', 'sf_associated_processes', +# index=True, string='工序') +# active = fields.Boolean('有效', default=True) -class MrsProcessingOrder(models.Model): - _name = 'sf.processing.order' - _description = '工序' - sequence = fields.Integer('Sequence') - processing_technology_ids = fields.Many2many('sf.processing.technology', 'sf_associated_processes', - index=True, string='加工工艺') - production_process_id = fields.Many2one('sf.production.process', string="表面工艺") +# class MrsProcessingOrder(models.Model): +# _name = 'sf.processing.order' +# _description = '工序' +# sequence = fields.Integer('Sequence') +# processing_technology_ids = fields.Many2many('sf.processing.technology', 'sf_associated_processes', +# index=True, string='加工工艺') +# production_process_id = fields.Many2one('sf.production.process', string="表面工艺") class SupplierSort(models.Model): diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py index 03a3678b..a3a9e172 100644 --- a/sf_base/models/tool_base_new.py +++ b/sf_base/models/tool_base_new.py @@ -1,9 +1,6 @@ # -*- coding: utf-8 -*- -import json -import requests +from datetime import date from odoo import fields, models, api -from odoo.exceptions import ValidationError -from odoo.addons.sf_base.commons.common import Common class CuttingToolMaterial(models.Model): @@ -113,6 +110,24 @@ class CuttingToolModel(models.Model): feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz(整体式刀具)') feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz(刀片)') material_model_id = fields.Many2one('sf.materials.model', '材料型号') + + @api.onchange('cutting_tool_material_id') + def _get_code(self): + if self.is_cloud is False: + today = date.today().strftime("%Y%m%d") + today_code = 'T-DJWL-%s-%s' % (self.cutting_tool_material_id.code, today) + cutting_tool_model = self.search( + [('code', 'ilike', today_code), ('is_cloud', '=', False), + ('active', 'in', [True, False])], + limit=1, + order="id desc") + if not cutting_tool_model: + num = "%03d" % 1 + else: + m = int(today_code[-3:]) + 1 + num = "%03d" % m + self.code = "%s%s" % (today_code, num) + # 适用夹头型号可以多选 # chuck_ids = fields.Many2many( # 'sf.cutting_tool.standard.library', diff --git a/sf_base/models/tool_other_features.py b/sf_base/models/tool_other_features.py index 7ad32bc2..f67e69fd 100644 --- a/sf_base/models/tool_other_features.py +++ b/sf_base/models/tool_other_features.py @@ -10,6 +10,7 @@ class ToolMaterialsBasicParameters(models.Model): standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具标准库') cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型', store=True) + is_cloud = fields.Boolean(related='standard_library_id.is_cloud', string='云端数据') # 整体式刀具参数 total_length = fields.Float('总长度(mm)') @@ -21,7 +22,7 @@ class ToolMaterialsBasicParameters(models.Model): handle_diameter = fields.Float('柄部直径(mm)') handle_length = fields.Float('柄部长度(mm)') blade_tip_diameter = fields.Integer('刀尖直径(mm)') - blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20) + blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角度)', size=20) blade_tip_taper = fields.Integer('刀尖锥度(°)') blade_diameter = fields.Float('刃部直径(mm)') blade_length = fields.Float('刃部长度(mm)') @@ -37,7 +38,7 @@ class ToolMaterialsBasicParameters(models.Model): cutting_blade_length = fields.Float('切削刃长(mm)') relief_angle = fields.Integer('后角(°)') blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20) - inscribed_circle_diameter = fields.Float('内接圆直径(mm)') + inscribed_circle_diameter = fields.Float('内接圆直径IC/D(mm)') install_aperture_diameter = fields.Float('安装孔直径(mm)') chip_breaker_groove = fields.Selection([('无', '无'), ('单面', '单面'), ('双面', '双面')], string='有无断屑槽') @@ -170,8 +171,6 @@ class FeedPerTooth(models.Model): feed_per_tooth = fields.Char('每齿走刀量 (mm/z)', size=20) active = fields.Boolean(string='有效', default=True) - - # @api.depends('product_template_id') # def _compute_product_template_id(self): # if self.product_template_id is not None: diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index 782d924d..92bebe5b 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -9,16 +9,13 @@ access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,b access_sf_machine_brand_tags_admin,sf_machine_brand_tags_admin,model_sf_machine_brand_tags,base.group_system,1,1,1,0 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,base.group_user,1,1,1,0 access_sf_machine_control_system_admin,sf_machine_control_system_admin,model_sf_machine_control_system,base.group_system,1,1,1,0 -access_sf_processing_order,sf_processing_order,model_sf_processing_order,base.group_user,1,1,1,0 -access_sf_processing_order_admin,sf_processing_order_admin,model_sf_processing_order,base.group_system,1,1,1,0 + access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,0 access_sf_production_process_admin,sf_production_process_admin,model_sf_production_process,base.group_system,1,1,1,0 access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,0 access_sf_production_materials_admin,sf_production_materials_admin,model_sf_production_materials,base.group_system,1,1,1,0 access_sf_materials_model,sf_materials_model,model_sf_materials_model,base.group_user,1,1,1,0 access_sf_materials_model_admin,sf_materials_model_admin,model_sf_materials_model,base.group_system,1,1,1,0 -access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,base.group_user,1,1,1,0 -access_sf_processing_technology_admin,sf_processing_technology_admin,model_sf_processing_technology,base.group_system,1,1,1,0 access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,base.group_user,1,1,1,0 access_sf_supplier_sort_admin,sf_supplier_sort_admin,model_sf_supplier_sort,base.group_system,1,1,1,0 access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,base.group_user,1,1,1,0 @@ -75,11 +72,15 @@ access_sf_cutting_speed_group_purchase_director,sf_cutting_speed_group_purchase_ access_sf_cutting_speed_group_sale_director,sf_cutting_speed_group_sale_director,model_sf_cutting_speed,sf_base.group_sale_director,1,1,1,0 access_sf_cutting_speed_group_plan_dispatch,sf_cutting_speed_group_plan_dispatch,model_sf_cutting_speed,sf_base.group_plan_dispatch,1,0,0,0 access_sf_cutting_speed_group_plan_director,sf_cutting_speed_group_plan_director,model_sf_cutting_speed,sf_base.group_plan_director,1,1,1,0 +access_sf_cutting_speed_group_quality_director,sf_cutting_speed_group_quality_director,model_sf_cutting_speed,sf_base.group_quality_director,1,1,1,0 +access_sf_cutting_speed_group_quality,sf_cutting_speed_group_quality,model_sf_cutting_speed,sf_base.group_quality,1,1,1,0 access_sf_feed_per_tooth_group_purchase_director,sf_feed_per_tooth_group_purchase_director,model_sf_feed_per_tooth,sf_base.group_purchase_director,1,1,0,0 access_sf_feed_per_tooth_group_sale_director,sf_feed_per_tooth_group_sale_director,model_sf_feed_per_tooth,sf_base.group_sale_director,1,1,0,0 access_sf_feed_per_tooth_group_plan_dispatch,sf_feed_per_tooth_group_plan_dispatch,model_sf_feed_per_tooth,sf_base.group_plan_dispatch,1,0,0,0 access_sf_feed_per_tooth_group_plan_director,sf_feed_per_tooth_group_plan_director,model_sf_feed_per_tooth,sf_base.group_plan_director,1,1,0,0 access_sf_feed_per_tooth_group_sale_salemanager,sf_feed_per_tooth_group_sale_salemanager,model_sf_feed_per_tooth,sf_base.group_sale_salemanager,1,0,0,0 +access_sf_feed_per_tooth_group_quality,sf_feed_per_tooth_group_quality,model_sf_feed_per_tooth,sf_base.group_quality,1,1,1,0 +access_sf_feed_per_tooth_group_quality_director,sf_feed_per_tooth_group_quality_director,model_sf_feed_per_tooth,sf_base.group_quality_director,1,1,1,0 access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,0 access_sf_feed_per_tooth_admin,sf_feed_per_tooth_admin,model_sf_feed_per_tooth,base.group_system,1,1,1,0 access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,base.group_user,1,1,1,1 @@ -94,7 +95,6 @@ access_sf_machine_brand_group_purchase_director,sf_machine_brand_group_purchase_ access_sf_machine_brand_group_sale_director,sf_machine_brand_group_sale_director,model_sf_machine_brand,sf_base.group_sale_director,1,0,0,0 access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,1 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,0,0,0 -access_sf_processing_order,sf_processing_order,model_sf_processing_order,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_materials_group_plan_director,sf_production_materials_group_plan_director,model_sf_production_materials,sf_base.group_plan_director,1,1,0,0 @@ -104,7 +104,6 @@ access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.gr access_sf_materials_model_group_plan_director,sf_materials_model_group_plan_director,model_sf_materials_model,sf_base.group_plan_director,1,0,0,0 access_sf_materials_model_group_purchase_director,sf_materials_model_group_purchase_director,model_sf_materials_model,sf_base.group_purchase_director,1,0,0,0 access_sf_materials_model_group_sale_director,sf_materials_model_group_sale_director,model_sf_materials_model,sf_base.group_sale_director,1,0,0,0 -access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,0,0,0 access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,sf_base.group_sf_mrp_user,1,0,0,0 @@ -143,9 +142,7 @@ access_sf_cutting_width_depth,sf_cutting_width_depth,model_sf_cutting_width_dept access_sf_cutting_width_depth_group_purchase,sf_cutting_width_depth_group_purchase,model_sf_cutting_width_depth,sf_base.group_purchase,1,0,0,0 access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1 access_purchase_order_group_purchase,access_purchase_order_group_purchase,purchase.model_purchase_order,sf_base.group_purchase,1,1,1,0 -access_purchase_order_group_purchase_director,access_purchase_order_group_purchase_director,purchase.model_purchase_order,sf_base.group_purchase_director,1,1,1,0 access_purchase_order_line_group_purchase,access_purchase_order_line_group_purchase,purchase.model_purchase_order_line,sf_base.group_purchase,1,1,1,0 -access_purchase_order_line_group_purchase_director,access_purchase_order_line_group_purchase_director,purchase.model_purchase_order_line,sf_base.group_purchase_director,1,1,1,0 access_spindle_taper_type,spindle_taper_type,model_spindle_taper_type,base.group_user,1,1,1,1 access_sf_tool_groups_group_plan_dispatch,sf_tool_groups,model_sf_tool_groups,sf_base.group_plan_dispatch,1,0,0,0 access_sf_tool_groups_group_sf_tool_user,sf_tool_groups,model_sf_tool_groups,sf_base.group_sf_tool_user,1,1,1,1 @@ -161,11 +158,9 @@ access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,sf_b access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,1,0,0 -access_sf_processing_order,sf_processing_order,model_sf_processing_order,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.group_sf_mrp_user,1,1,0,0 -access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,1,0,0 access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,sf_base.group_sf_mrp_user,1,1,0,0 diff --git a/sf_base/views/common_view.xml b/sf_base/views/common_view.xml index 8572cd30..49a2563d 100644 --- a/sf_base/views/common_view.xml +++ b/sf_base/views/common_view.xml @@ -1,6 +1,60 @@ + + + sf.production.process.parameter + + + + + + + + + + sf.production.process.parameter + +
+ +
+

+ +

+
+ + + + + + + + + + + + + +
+
+
+
+ + + search.mrs.production.process.parameter + sf.production.process.parameter + + + + + + + + + + @@ -20,26 +74,26 @@ - - sf.processing.technology - - - - - - - - - search.sf.processing.technology.type - sf.processing.technology - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -156,19 +210,7 @@ - - - - - - - -
- - -
-
-
+ @@ -350,12 +392,12 @@ sf.materials.model tree,form
- - 加工工艺 - ir.actions.act_window - sf.processing.technology - tree - + + + + + + 表面工艺类别 @@ -363,6 +405,12 @@ sf.production.process.category tree,form + + 表面工艺可选参数 + ir.actions.act_window + sf.production.process.parameter + tree,form +
diff --git a/sf_base/views/menu_view.xml b/sf_base/views/menu_view.xml index cb8e85d9..21bb519d 100644 --- a/sf_base/views/menu_view.xml +++ b/sf_base/views/menu_view.xml @@ -111,13 +111,19 @@ /> - - + sequence="2" + action="mrs_production_process_parameter_action" + /> + + + + + + @@ -143,5 +149,6 @@ sequence="1" action="action_sf_machine_control_system"/> +
\ No newline at end of file diff --git a/sf_base/views/tool_basic_param.xml b/sf_base/views/tool_basic_param.xml index 616905ca..57a4a9a4 100644 --- a/sf_base/views/tool_basic_param.xml +++ b/sf_base/views/tool_basic_param.xml @@ -1,132 +1,302 @@ - - - sf.tool.materials.basic.parameters.tree - sf.tool.materials.basic.parameters - - - - - - - - - - - - - - - - - - - - - + + + sf.tool.materials.basic.parameters.tree + sf.tool.materials.basic.parameters + + + + + + + + + + + + + + + + + + + + + - - sf.tool.materials.basic.parameters.tree - sf.tool.materials.basic.parameters - - - - - - - - - - - - - - - - - - - - - - - - + + sf.tool.materials.basic.parameters.tree + sf.tool.materials.basic.parameters + + + + + + + + + + + + + + + + + + + + + + + + - sf.tool.materials.basic.parameters.tree - sf.tool.materials.basic.parameters - - - - - - - - - - - - - - - - - - - - - - + sf.tool.materials.basic.parameters.tree + sf.tool.materials.basic.parameters + + + + + + + + + + + + + + + + + + + + + + - sf.tool.materials.basic.parameters.tree - sf.tool.materials.basic.parameters - - - - - - - - - - - - - - - - - - - - - + sf.tool.materials.basic.parameters.tree + sf.tool.materials.basic.parameters + + + + + + + + + + + + + + + + + + + + + - - sf.tool.materials.basic.parameters.search - sf.tool.materials.basic.parameters - - - - - - + + sf.tool.materials.basic.parameters.search + sf.tool.materials.basic.parameters + + + + + + - - 基础参数 - sf.tool.materials.basic.parameters - tree + + sf.tool.materials.basic.parameters.form + sf.tool.materials.basic.parameters + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - [] - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + 基础参数 + sf.tool.materials.basic.parameters + form + {'default_cutting_tool_type': cutting_tool_type} + [] + +
diff --git a/sf_base/views/tool_menu.xml b/sf_base/views/tool_menu.xml index 82ecca18..506a73df 100644 --- a/sf_base/views/tool_menu.xml +++ b/sf_base/views/tool_menu.xml @@ -21,6 +21,7 @@ 刀具标准库 ir.actions.act_window sf.cutting_tool.standard.library + tree,form diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml index d1c0c510..aa0e01da 100644 --- a/sf_base/views/tool_views.xml +++ b/sf_base/views/tool_views.xml @@ -123,19 +123,19 @@
+ options="{'zoom': true, 'preview_image':'image_128'}" required="1"/>

- +

- - - - + + + +
diff --git a/sf_maintenance/views/maintenance_views.xml b/sf_maintenance/views/maintenance_views.xml index 140456df..c1e13d34 100644 --- a/sf_maintenance/views/maintenance_views.xml +++ b/sf_maintenance/views/maintenance_views.xml @@ -982,16 +982,16 @@ - + - + -