1、cnc编程单tree视图展示刀具状态字段;2、优化制造订单的功能刀具状态字段自动更新方法,同时当工单刀具状态变化时变更缺刀备注信息,添加状态为无效刀的备注字段;3、优化当功能刀具从【刀具房】到【制造前】时进行校验,校验是否为制造订单所缺的刀,如果是则修改cnc编程单刀具状态为正常;4、优化cnc用刀校验:添加对无效刀的处理(无效刀时触发返工流程,并生成检测结果数据),优化生成的待处理数据的数据结构;

This commit is contained in:
yuxianghui
2024-07-18 16:33:41 +08:00
parent 70b8521b90
commit 25ac346cb7
7 changed files with 130 additions and 34 deletions

View File

@@ -21,3 +21,40 @@ class ShelfLocation(models.Model):
continue
item.tool_rfid = ''
item.tool_name_id = False
class StockMoveLine(models.Model):
_inherit = 'stock.move.line'
@api.model_create_multi
def create(self, vals_list):
records = super(StockMoveLine, self).create(vals_list)
move_lines = records.filtered(lambda a: a.product_id.categ_id.name == '功能刀具' and a.state == 'done')
if move_lines: # 校验是否为功能刀具移动历史
self.button_function_tool_use_verify(move_lines)
return records
def button_function_tool_use_verify(self, move_lines):
"""
对所有从【刀具房】到【制造前】的功能刀具进行校验(校验是否为制造订单所缺的刀)
"""
location_id = self.env['stock.location'].search([('name', '=', '刀具房')])
location_dest_id = self.env['stock.location'].search([('name', '=', '制造前')])
line_ids = move_lines.filtered(
lambda a: a.location_id == location_id and a.location_dest_id == location_dest_id)
for line_id in line_ids:
if line_id.lot_id:
self.env['sf.functional.cutting.tool.entity'].sudo().search(
[('barcode_id', '=', line_id.lot_id.id),
('functional_tool_status', '=', '正常')]).cnc_function_tool_use_verify()
class StockPicking(models.Model):
_inherit = 'stock.picking'
def button_validate(self):
res = super().button_validate()
move_lines = self.move_line_ids.filtered(lambda a: a.product_id.categ_id.name == '功能刀具')
if move_lines:
self.env['stock.move.line'].sudo().button_function_tool_use_verify(move_lines)
return res