From 14d0d32ab685472968ef1766f6ce77d4141fe940 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Thu, 3 Nov 2022 17:58:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=8A=A0=E5=B7=A5=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/process.py | 16 ++++++++++++ sf_base/security/ir.model.access.csv | 4 +-- sf_base/views/mrp_routing_workcenter_view.xml | 26 +++++++++---------- sf_base/views/mrs_common_view.xml | 24 +++-------------- .../models/mrp_workorder.py | 2 ++ .../models/sf_production.py | 9 +++---- sf_route_workcenter/models/workcenter.py | 4 +-- 7 files changed, 41 insertions(+), 44 deletions(-) diff --git a/sf_base/models/process.py b/sf_base/models/process.py index c5d22873..1a115333 100644 --- a/sf_base/models/process.py +++ b/sf_base/models/process.py @@ -23,6 +23,22 @@ class ResMrpRoutingWorkcenter(models.Model): company_id = fields.Many2one('res.company', compute="get_company_id", related=False) + # 工单对应的工作中心,根据工序中的工作中心去匹配, + # 如果只配置了一个工作中心,则默认采用该工作中心; + # 如果有多个工作中心, + # 则根据该工作中心的工单个数进行分配(优先分配给工单个数最少的); + # def get_workcenter(self, workcenter_ids): + # print(workcenter_ids[0].id) + # if workcenter_ids: + # if len(workcenter_ids) == 1: + # return workcenter_ids[0].id + # elif len(workcenter_ids) >= 2: + # workcenter_id = self.env['mrp.workorder'].search( + # [('workcenter_ids.id', 'in', True)], + # limit=1, + # group_by = + # ) + class ModelTypeRoutingSort(models.Model): _name = 'sf.model.type.routing.sort' diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index ec0a074a..ad1cc554 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -13,12 +13,10 @@ access_mrs_production_materials,mrs_production_materials,model_mrs_production_ma access_mrs_materials_model,mrs_materials_model,model_mrs_materials_model,base.group_user,1,1,1,1 access_mrs_processing_technology,mrs_processing_technology,model_mrs_processing_technology,base.group_user,1,1,1,1 access_sf_tray,sf_tray,model_sf_tray,base.group_user,1,1,1,1 -<<<<<<< HEAD access_cnc_processing,cnc_processing,model_cnc_processing,base.group_user,1,1,1,1 -======= access_sf_model_type,sf_model_type,model_sf_model_type,base.group_user,1,1,1,1 access_sf_model_type_routing_sort,sf_model_type_routing_sort,model_sf_model_type_routing_sort,base.group_user,1,1,1,1 ->>>>>>> 8e337dda97a98a9a8d0a892a2c39bc076640f6ac + diff --git a/sf_base/views/mrp_routing_workcenter_view.xml b/sf_base/views/mrp_routing_workcenter_view.xml index be0d32c8..dc5b328e 100644 --- a/sf_base/views/mrp_routing_workcenter_view.xml +++ b/sf_base/views/mrp_routing_workcenter_view.xml @@ -17,8 +17,8 @@ #-----------------工单------------------- - - mrp.workorder.form.inherit.sf + + mrp.production.workorder.tree.inherit.sf mrp.workorder @@ -28,16 +28,16 @@ - #-----------------制造订单------------------- - - - - - - - - - - + #-----------------制造订单的工单------------------- + + mrp.production.workorder.tree.editable.inherit.sf + mrp.workorder + + + + + + + \ No newline at end of file diff --git a/sf_base/views/mrs_common_view.xml b/sf_base/views/mrs_common_view.xml index f57d48a2..c5ab6744 100644 --- a/sf_base/views/mrs_common_view.xml +++ b/sf_base/views/mrs_common_view.xml @@ -277,7 +277,7 @@ #------------------托盘------------------ - + 托盘 ir.actions.act_window sf.tray @@ -293,27 +293,10 @@ sf.tray.search sf.tray -<<<<<<< HEAD - - - - - - - - - - - -======= - - ->>>>>>> 8e337dda97a98a9a8d0a892a2c39bc076640f6ac - @@ -333,7 +316,9 @@ sf.tray.form sf.tray -
+
+ +
@@ -348,6 +333,5 @@ - \ No newline at end of file diff --git a/sf_manufacturing_orders/models/mrp_workorder.py b/sf_manufacturing_orders/models/mrp_workorder.py index 164b1347..7997d82d 100644 --- a/sf_manufacturing_orders/models/mrp_workorder.py +++ b/sf_manufacturing_orders/models/mrp_workorder.py @@ -11,3 +11,5 @@ class ResMrpWorkOrder(models.Model): workcenter_id = fields.Many2one('mrp.workcenter', required=False) processing_panel = fields.Char('加工面') + + diff --git a/sf_manufacturing_orders/models/sf_production.py b/sf_manufacturing_orders/models/sf_production.py index 0d82dcdd..2dd8e42f 100644 --- a/sf_manufacturing_orders/models/sf_production.py +++ b/sf_manufacturing_orders/models/sf_production.py @@ -31,10 +31,6 @@ class MrpProduction(models.Model): # 重载根据工序生成工单的程序:如果产品BOM中没有工序时, # 根据产品对应的模板类型中工序,去生成工单; - # 工单对应的工作中心,根据工序中的工作中心去匹配, - # 如果只配置了一个工作中心,则默认采用该工作中心; - # 如果有多个工作中心, - # 则根据该工作中心的工单个数进行分配(优先分配给工单个数最少的); # CNC加工工序的选取规则: # 如果自动报价有带过来预分配的机床, # 则根据设备找到工作中心;否则采用前面描述的工作中心分配机制; @@ -68,10 +64,10 @@ class MrpProduction(models.Model): 'operation_id': operation.id, 'state': 'pending', }] - # 根据加工面板的面数及对应的工序模板生成工序 + # 根据加工面板的面数及对应的工序模板生成工单 for k in (production.product_id.processing_panel.split(',')): for route in production.product_id.model_type_id.routing_tmpl_ids: - if route.route_workcenter_id: + if route: workorders_values_str = [0, '', { 'product_uom_id': production.product_uom_id.id, 'qty_producing': 0, @@ -79,6 +75,7 @@ class MrpProduction(models.Model): 'name': route.route_workcenter_id.name, 'processing_panel': k, 'workcenter_id': False, + # 'workcenter_ids': self.env['mrp.routing.workcenter'].get_workcenter(route.workcenter_ids), 'date_planned_start': False, 'date_planned_finished': False, 'duration_expected': 60, diff --git a/sf_route_workcenter/models/workcenter.py b/sf_route_workcenter/models/workcenter.py index 4340b465..a9ab568d 100644 --- a/sf_route_workcenter/models/workcenter.py +++ b/sf_route_workcenter/models/workcenter.py @@ -9,8 +9,8 @@ import qrcode from io import BytesIO from odoo import api, fields, models import barcode -from barcode.writer import ImageWriter -from pystrich.code128 import Code128Encoder +# from barcode.writer import ImageWriter +# from pystrich.code128 import Code128Encoder from odoo.exceptions import UserError _logger = logging.getLogger(__name__)