优化质量检测(加工检测)及消息推送

This commit is contained in:
jinling.yang
2024-10-14 17:53:38 +08:00
parent d8bade64e1
commit 2a067778bc
18 changed files with 219 additions and 79 deletions

View File

@@ -25,23 +25,44 @@ class SfQualityCncTest(models.Model):
('pass', '合格'),
('fail', '不合格')], string='判定结果')
number = fields.Integer('数量', default=1)
test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], default='合格',
string="检测结果")
test_results = fields.Selection([("合格", "合格"), ("返工", "返工"), ("报废", "报废")], string="检测结果")
reason = fields.Selection(
[("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"), ("operate computer", "操机"),
("technology", "工艺"), ("customer redrawing", "客户改图")], string="原因")
detailed_reason = fields.Text('详细原因')
def submit_pass(self):
self.write({'result': 'pass', 'test_results': '合格', 'state': 'done'})
self.write({'result': 'pass', 'test_results': self.test_results, 'state': 'done'})
self.workorder_id.write({'test_results': self.test_results})
self.workorder_id.button_finish()
def submit_fail(self):
if not self.reason and not self.detailed_reason:
raise UserError(_('请填写【检测情况】里的信息'))
if not self.reason and not self.detailed_reason and not self.test_results:
raise UserError(_('请填写【判定结果】里的信息'))
else:
self.write({'result': 'fail', 'test_results': '合格', 'state': 'done'})
self.write({'result': 'fail', 'test_results': self.test_results, 'state': 'done'})
self.workorder_id.write(
{'test_results': self.test_results, 'reason': self.reason, 'detailed_reason': self.detailed_reason})
self.workorder_id.button_finish()
class SfQualityWorkOrder(models.Model):
_inherit = 'mrp.workorder'
def button_finish(self):
super(SfQualityWorkOrder, self).button_finish()
if self.routing_type == 'CNC加工':
quality_cnc_test = self.env['quality.cnc.test'].search([('workorder_id', '=', self.id)])
if quality_cnc_test:
quality_cnc_test.write({'result': 'fail' if self.test_results in ['返工', '报废'] else 'pass',
'test_results': self.test_results, 'state': 'done',
'reason': self.reason,
'detailed_reason': self.detailed_reason,
'detection_report': self.detection_report})
def write(self, vals):
res = super(SfQualityWorkOrder, self).write(vals)
if self.state == 'to be detected':
quality_cnc_test = self.env['quality.cnc.test'].search([('workorder_id', '=', self.id)])
if not quality_cnc_test:
self.env['quality.cnc.test'].sudo().create({'workorder_id': self.id})