Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复返工-cmm

This commit is contained in:
jinling.yang
2024-07-29 16:42:13 +08:00
4 changed files with 35 additions and 13 deletions

View File

@@ -36,12 +36,17 @@ class MrpProduction(models.Model):
def _compute_tool_state_remark(self): def _compute_tool_state_remark(self):
for item in self: for item in self:
if item.workorder_ids: if item.workorder_ids:
workorder_ids = item.workorder_ids.filtered(lambda a: a.state not in ('rework', '返工')) work_ids = []
if workorder_ids.filtered(lambda a: a.tool_state_remark): for workorder_id in item.workorder_ids:
work_ids = workorder_ids.filtered(lambda a: a.tool_state_remark) if workorder_id.tool_state == '1':
work_ids.append(workorder_id)
if work_ids:
tool_state_remark = '' tool_state_remark = ''
for work_id in work_ids: for work_id in work_ids:
tool_state_remark = f"{work_id.tool_state_remark}\n" if tool_state_remark == '':
tool_state_remark = f"{work_id.tool_state_remark}"
else:
tool_state_remark = f"{tool_state_remark}\n{work_id.tool_state_remark}"
item.tool_state_remark = tool_state_remark item.tool_state_remark = tool_state_remark
else: else:
item.tool_state_remark = False item.tool_state_remark = False
@@ -51,10 +56,16 @@ class MrpProduction(models.Model):
for item in self: for item in self:
if item.workorder_ids: if item.workorder_ids:
tool_state = item.tool_state tool_state = item.tool_state
workorder_ids = item.workorder_ids.filtered(lambda a: a.state not in ('rework', '返工')) work_ids_1 = []
if workorder_ids.filtered(lambda a: a.tool_state == '2'): work_ids_2 = []
for workorder_id in item.workorder_ids:
if workorder_id.tool_state == '2':
work_ids_2.append(workorder_id)
elif workorder_id.tool_state == '1':
work_ids_1.append(workorder_id)
if work_ids_2:
item.tool_state = '2' item.tool_state = '2'
elif workorder_ids.filtered(lambda a: a.tool_state == '1'): elif work_ids_1:
item.tool_state = '1' item.tool_state = '1'
else: else:
item.tool_state = '0' item.tool_state = '0'

View File

@@ -189,11 +189,12 @@ class ResMrpWorkOrder(models.Model):
if item.cnc_ids.filtered(lambda a: a.tool_state == '2'): if item.cnc_ids.filtered(lambda a: a.tool_state == '2'):
item.tool_state_remark = None item.tool_state_remark = None
elif item.cnc_ids.filtered(lambda a: a.tool_state == '1'): elif item.cnc_ids.filtered(lambda a: a.tool_state == '1'):
tool_state_remark = f'{item.processing_panel}缺刀:[' tool_state_remark = []
cnc_ids = item.cnc_ids.filtered(lambda a: a.tool_state == '1') cnc_ids = item.cnc_ids.filtered(lambda a: a.tool_state == '1')
for cnc_id in cnc_ids: for cnc_id in cnc_ids:
tool_state_remark = f"{tool_state_remark}'{cnc_id.cutting_tool_name}'" if cnc_id.cutting_tool_name not in tool_state_remark:
item.tool_state_remark = f"{tool_state_remark}]" tool_state_remark.append(cnc_id.cutting_tool_name)
item.tool_state_remark = f"{item.processing_panel}缺刀:{tool_state_remark}"
else: else:
item.tool_state_remark = None item.tool_state_remark = None
@@ -820,7 +821,8 @@ class ResMrpWorkOrder(models.Model):
}] }]
return workorders_values_str return workorders_values_str
@api.depends('production_availability', 'blocked_by_workorder_ids', 'blocked_by_workorder_ids.state') @api.depends('production_availability', 'blocked_by_workorder_ids', 'blocked_by_workorder_ids.state',
'production_id.tool_state')
def _compute_state(self): def _compute_state(self):
super()._compute_state() super()._compute_state()
for workorder in self: for workorder in self:

View File

@@ -263,8 +263,17 @@ class FunctionalCuttingToolEntity(models.Model):
if self.tool_name_id.name: if self.tool_name_id.name:
cnc_processing_ids = self.env['sf.cnc.processing'].search( cnc_processing_ids = self.env['sf.cnc.processing'].search(
[('tool_state', '=', '1'), ('cutting_tool_name', '=', self.tool_name_id.name)]) [('tool_state', '=', '1'), ('cutting_tool_name', '=', self.tool_name_id.name)])
production_ids = []
if cnc_processing_ids: if cnc_processing_ids:
cnc_processing_ids.sudo().write({'tool_state': '0'}) for item in cnc_processing_ids:
if item.workorder_id and item.workorder_id.production_id not in production_ids:
production_ids.append(item.workorder_id.production_id)
if production_ids:
# 对同一制造订单的工单的cnc编程单的功能刀具状态进行变更并调用工单的功能刀具状态计算方法
for production_id in production_ids:
cnc_ids = cnc_processing_ids.filtered(lambda a: a.workorder_id.production_id == production_id)
cnc_ids.sudo().write({'tool_state': '0'})
cnc_ids.workorder_id._compute_tool_state()
def tool_inventory_displacement_out(self): def tool_inventory_displacement_out(self):
""" """

View File

@@ -876,7 +876,7 @@ class StockPicking(models.Model):
if not stock_id: if not stock_id:
num = "%05d" % 1 num = "%05d" % 1
else: else:
m = int(stock_id.name[-3:]) + 1 m = int(stock_id.name[-5:]) + 1
num = "%05d" % m num = "%05d" % m
return name + str(num) return name + str(num)