From 65a7d74430786d05f6aabd067f37b34202777345 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Fri, 4 Nov 2022 16:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=B9=E9=85=8D=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/process.py | 22 ++++++------ sf_base/views/mrp_routing_workcenter_view.xml | 34 +++++++++++++++---- .../models/sf_production.py | 3 +- 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/sf_base/models/process.py b/sf_base/models/process.py index 1a115333..38fc6bc0 100644 --- a/sf_base/models/process.py +++ b/sf_base/models/process.py @@ -27,17 +27,17 @@ class ResMrpRoutingWorkcenter(models.Model): # 如果只配置了一个工作中心,则默认采用该工作中心; # 如果有多个工作中心, # 则根据该工作中心的工单个数进行分配(优先分配给工单个数最少的); - # 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 = - # ) + def get_workcenter(self, workcenter_ids): + if workcenter_ids: + if len(workcenter_ids) == 1: + return workcenter_ids[0] + elif len(workcenter_ids) >= 2: + # workcenter_ids_str = ','.join([str(s) for s in workcenter_ids]) + self.env.cr.execute(""" + SELECT workcenter_id FROM mrp_workorder where workcenter_id + in %s group by workcenter_id + order by count(*),workcenter_id asc limit 1 """, [tuple(workcenter_ids)]) + return self.env.cr.dictfetchall()[0].get('workcenter_id') class ModelTypeRoutingSort(models.Model): diff --git a/sf_base/views/mrp_routing_workcenter_view.xml b/sf_base/views/mrp_routing_workcenter_view.xml index dc5b328e..a8d2fcc5 100644 --- a/sf_base/views/mrp_routing_workcenter_view.xml +++ b/sf_base/views/mrp_routing_workcenter_view.xml @@ -17,18 +17,40 @@ #-----------------工单------------------- - - mrp.production.workorder.tree.inherit.sf + + mrp.production.workorder.form.inherit.sf mrp.workorder - + - - + + - #-----------------制造订单的工单------------------- + + + + + + + + + + + + + + + + + + + + + + + #-----------------制造订单里的工单------------------- mrp.production.workorder.tree.editable.inherit.sf mrp.workorder diff --git a/sf_manufacturing_orders/models/sf_production.py b/sf_manufacturing_orders/models/sf_production.py index 2dd8e42f..c55cac6e 100644 --- a/sf_manufacturing_orders/models/sf_production.py +++ b/sf_manufacturing_orders/models/sf_production.py @@ -74,8 +74,7 @@ class MrpProduction(models.Model): 'operation_id': False, 'name': route.route_workcenter_id.name, 'processing_panel': k, - 'workcenter_id': False, - # 'workcenter_ids': self.env['mrp.routing.workcenter'].get_workcenter(route.workcenter_ids), + 'workcenter_id': self.env['mrp.routing.workcenter'].get_workcenter(route.workcenter_ids.ids), 'date_planned_start': False, 'date_planned_finished': False, 'duration_expected': 60,