From 4497fb04c1fd5ed28818f615e2029190e304be51 Mon Sep 17 00:00:00 2001
From: yuxianghui <3437689193@qq.com>
Date: Tue, 18 Jun 2024 17:19:41 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=20=E6=89=98?=
=?UTF-8?q?=E7=9B=98=E7=BB=91=E5=AE=9A=E5=B7=A5=E5=8D=95=E9=80=BB=E8=BE=91?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=20=EF=BC=9B2=20=E5=AE=8C=E6=88=90=20?=
=?UTF-8?q?=E6=95=B4=E4=BD=93=E5=BC=8F=E5=88=80=E5=85=B7=E6=89=B9=E6=AC=A1?=
=?UTF-8?q?/=E5=BA=8F=E5=88=97=E5=8F=B7=E7=94=9F=E6=88=90=E7=9A=84?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9C=80=E6=B1=82=EF=BC=9B=203=E3=80=81?=
=?UTF-8?q?=E5=AE=8C=E6=88=90=20=E5=9D=AF=E6=96=99=E5=BA=8F=E5=88=97?=
=?UTF-8?q?=E5=8F=B7=E7=94=9F=E6=88=90=E8=A7=84=E5=88=99=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=E9=9C=80=E6=B1=821=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../views/WorkCenterBarcodes.xml | 3 +++
sf_manufacturing/models/mrp_workorder.py | 25 +++++++++++--------
sf_manufacturing/models/stock.py | 15 ++++++++---
sf_manufacturing/views/mrp_workorder_view.xml | 3 ++-
4 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/sf_machine_connect/views/WorkCenterBarcodes.xml b/sf_machine_connect/views/WorkCenterBarcodes.xml
index d44c8a82..aea9731b 100644
--- a/sf_machine_connect/views/WorkCenterBarcodes.xml
+++ b/sf_machine_connect/views/WorkCenterBarcodes.xml
@@ -25,6 +25,9 @@
+
+
+
\ No newline at end of file
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index 002c83aa..d2e92266 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -21,6 +21,8 @@ class ResMrpWorkOrder(models.Model):
_inherit = 'mrp.workorder'
_order = 'sequence asc,create_date desc'
+ product_tmpl_name = fields.Char('坯料产品名称', related='production_bom_id.bom_line_ids.product_id.name')
+
product_tmpl_id_length = fields.Float(related='production_id.product_tmpl_id.length', readonly=True, store=True,
string="坯料长度(mm)")
product_tmpl_id_width = fields.Float(related='production_id.product_tmpl_id.width', readonly=True, store=True,
@@ -48,6 +50,7 @@ class ResMrpWorkOrder(models.Model):
manual_quotation = fields.Boolean('人工编程', default=False, readonly=True)
+
@api.onchange('users_ids')
def get_user_permissions(self):
uid = self.env.uid
@@ -849,12 +852,12 @@ class ResMrpWorkOrder(models.Model):
limit=1, order='id asc')
if not cnc_workorder.cnc_ids:
raise UserError(_('该制造订单还未下发CNC程序,请稍后再试'))
- else:
- for item in cnc_workorder.cnc_ids:
- functional_cutting_tool = self.env['sf.functional.cutting.tool.entity'].search(
- [('tool_name_id.name', '=', item.cutting_tool_name)])
- if not functional_cutting_tool:
- raise UserError(_('该制造订单的CNC程序为%s没有对应的功能刀具' % item.cutting_tool_name))
+ # else:
+ # for item in cnc_workorder.cnc_ids:
+ # functional_cutting_tool = self.env['sf.functional.cutting.tool.entity'].search(
+ # [('tool_name_id.name', '=', item.cutting_tool_name)])
+ # if not functional_cutting_tool:
+ # raise UserError(_('该制造订单的CNC程序为%s没有对应的功能刀具' % item.cutting_tool_name))
if self.routing_type == '解除装夹':
'''
记录开始时间
@@ -1011,8 +1014,9 @@ class ResMrpWorkOrder(models.Model):
is_production_id = False
if is_production_id is True and record.routing_type in ['解除装夹', '表面工艺']:
for workorder in record.production_id.workorder_ids:
- workorder.rfid_code_old = workorder.rfid_code
- workorder.rfid_code = None
+ if workorder.processing_panel == record.processing_panel:
+ workorder.rfid_code_old = workorder.rfid_code
+ workorder.rfid_code = None
for move_raw_id in record.production_id.move_raw_ids:
move_raw_id.quantity_done = move_raw_id.product_uom_qty
record.process_state = '已完工'
@@ -1254,11 +1258,12 @@ class SfWorkOrderBarcodes(models.Model):
workorder.write(val)
self.write(val)
workorder_rfid = self.env['mrp.workorder'].search(
- [('production_id', '=', workorder.production_id.id)])
+ [('production_id', '=', workorder.production_id.id),
+ ('processing_panel', '=', workorder.processing_panel)])
if workorder_rfid:
for item in workorder_rfid:
item.write({'rfid_code': barcode})
- logging.info("Rfid绑定成功!!!")
+ logging.info("Rfid[%s]绑定成功!!!" % barcode)
else:
raise UserError('该Rfid【%s】绑定的是【%s】, 不是托盘!!!' % (barcode, lot.product_id.name))
self.process_state = '待检测'
diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py
index 95d877b3..dbca7e20 100644
--- a/sf_manufacturing/models/stock.py
+++ b/sf_manufacturing/models/stock.py
@@ -675,6 +675,7 @@ class ReStockMove(models.Model):
self.next_serial = self._get_tool_next_serial(self.company_id, self.product_id, self.origin)
else:
self.next_serial = self.env['stock.lot']._get_next_serial(self.company_id, self.product_id)
+ # self.action_assign_serial_show_details()
elif self.product_id.tracking == "lot":
self._put_tool_lot(self.company_id, self.product_id, self.origin)
@@ -704,10 +705,16 @@ class ReStockMove(models.Model):
def _put_tool_lot(self, company, product, origin):
if product.tracking == "lot" and self.product_id.categ_id.name == '刀具':
if not self.move_line_nosuggest_ids:
- lot_names = self.env['stock.lot'].generate_lot_names(
- '%s-%s-%s' % ('%s-T-DJWL-%s' % (
- product.cutting_tool_model_id.code.split('-')[0], product.cutting_tool_material_id.code),
- datetime.now().strftime("%Y%m%d"), origin), 1)
+ lot_code = '%s-%s-%s' % ('%s-T-DJWL-%s' % (
+ product.cutting_tool_model_id.code.split('-')[0], product.cutting_tool_material_id.code),
+ datetime.now().strftime("%Y%m%d"), origin)
+ move_line_ids = self.env['stock.move.line'].sudo().search([('lot_name', 'like', lot_code)], limit=1,
+ order='id desc')
+ if not move_line_ids:
+ lot_code = '%s-001' % lot_code
+ else:
+ lot_code = '%s-%03d' % (lot_code, int(move_line_ids.lot_name[-3:]) + 1)
+ lot_names = self.env['stock.lot'].generate_lot_names(lot_code, 1)
move_lines_commands = self._generate_serial_move_line_commands_tool_lot(lot_names)
self.write({'move_line_nosuggest_ids': move_lines_commands})
for item in self.move_line_nosuggest_ids:
diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml
index 11219363..b56405b9 100644
--- a/sf_manufacturing/views/mrp_workorder_view.xml
+++ b/sf_manufacturing/views/mrp_workorder_view.xml
@@ -19,6 +19,7 @@
+
@@ -214,7 +215,7 @@
attrs='{"invisible": [("routing_type","!=","装夹预调")]}'/>
-