1.工单,工件配送新增sns及给部分字段添加tracking(跟踪)及优化页面

2.优化agv:部分字段不可编辑
This commit is contained in:
jinling.yang
2024-06-11 16:56:20 +08:00
parent 7be5b53767
commit adafce85bd
11 changed files with 157 additions and 83 deletions

View File

@@ -102,7 +102,7 @@ class ResMrpWorkOrder(models.Model):
Z10_axis = fields.Float(default=0)
X_deviation_angle = fields.Integer(string="X轴偏差度", default=0)
test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], default='合格',
string="检测结果")
string="检测结果", tracking=True)
cnc_ids = fields.One2many("sf.cnc.processing", 'workorder_id', string="CNC加工程序")
cmm_ids = fields.One2many("sf.cmm.program", 'workorder_id', string="CMM程序")
tray_code = fields.Char(string="托盘编码")
@@ -133,7 +133,7 @@ class ResMrpWorkOrder(models.Model):
return action
supplier_id = fields.Many2one('res.partner', string='外协供应商')
equipment_id = fields.Many2one('maintenance.equipment', string='加工设备')
equipment_id = fields.Many2one('maintenance.equipment', string='加工设备', tracking=True)
is_ok = fields.Boolean(string='是否合格')
# 加工人
processing_user_id = fields.Many2one('res.users', string='加工人')
@@ -195,15 +195,15 @@ class ResMrpWorkOrder(models.Model):
rfid_code_old = fields.Char('RFID码(已解除)')
production_line_id = fields.Many2one('sf.production.line', related='production_id.production_line_id',
string='生产线', store=True)
string='生产线', store=True, tracking=True)
production_line_state = fields.Selection(related='production_id.production_line_state',
string='上/下产线', store=True)
string='上/下产线', store=True, tracking=True)
detection_report = fields.Binary('检测报告', readonly=True)
is_remanufacture = fields.Boolean(string='重新生成制造订单', default=False)
is_fetchcnc = fields.Boolean(string='重新获取NC程序', default=False)
reason = fields.Selection(
[("programming", "编程"), ("clamping", "返工"), ("cutter", "刀具"), ("operate computer", "操机"),
("technology", "工艺"), ("customer redrawing", "客户改图"), ("other", "其他"), ], string="原因")
("technology", "工艺"), ("customer redrawing", "客户改图"), ("other", "其他"), ], string="原因", tracking=True)
detailed_reason = fields.Text('详细原因')
@api.onchange('rfid_code')
@@ -1346,19 +1346,33 @@ class WorkPieceDelivery(models.Model):
@api.model
def create(self, vals):
if vals.get('name', '/') == '/' or vals.get('name', '/') is False:
vals['name'] = self.env['ir.sequence'].next_by_code('sf.workpiece.delivery') or '/'
else:
if vals['route_id'] and vals.get('type') is None:
vals['type'] = '运送空料架'
else:
if vals.get('name', '/') == '/' or vals.get('name', '/') is False:
vals['name'] = self.env['ir.sequence'].next_by_code('sf.workpiece.delivery') or '/'
obj = super(WorkPieceDelivery, self).create(vals)
if obj.type == '运送空料架':
if obj.name is False:
obj.name = "运送空料架路线:%s-%s" % (
obj.feeder_station_start_id.name, obj.feeder_station_destination_id.name)
return obj
@api.constrains('name')
def _check_name(self):
@api.constrains('route_id')
def _check_route_id(self):
if self.type == '运送空料架':
wd = self.sudo().search([('name', '=', self.name), ('id', '!=', self.id)])
if wd:
raise UserError("该名称已存在")
if self.route_id and self.name is False:
route = self.sudo().search(
[('route_id', '=', self.route_id.id), ('id', '!=', self.id), ('name', 'ilike', '运送空料架路线')])
if route:
raise UserError("该任务路线已存在,请重新选择")
# @api.constrains('name')
# def _check_name(self):
# if self.type == '运送空料架':
# wd = self.sudo().search([('name', '=', self.name), ('id', '!=', self.id)])
# if wd:
# raise UserError("该名称已存在")
def action_delivery_history(self):
return {