diff --git a/quality/security/ir.model.access.csv b/quality/security/ir.model.access.csv index f13d0de5..ee2c26a9 100644 --- a/quality/security/ir.model.access.csv +++ b/quality/security/ir.model.access.csv @@ -9,8 +9,12 @@ access_quality_point_user,quality.point,quality.model_quality_point,quality.grou access_quality_point_test_type_user,quality.point.test_type,quality.model_quality_point_test_type,quality.group_quality_user,1,0,0,0 access_quality_check_stock_user,quality.check,quality.model_quality_check,stock.group_stock_user,1,1,1,0 access_stock_lot_user,stock.lot,stock.model_stock_lot,quality.group_quality_user,1,0,0,0 +access_stock_lot_group_quality_manager,stock_lot_group_quality_manager,stock.model_stock_lot,quality.group_quality_manager,1,0,0,0 + access_stock_pack_user,stock.move.line,stock.model_stock_move_line,quality.group_quality_user,1,0,0,0 -access_stock_picking,stock.move.line,stock.model_stock_picking,quality.group_quality_user,1,0,0,0 +access_stock_picking_group_quality_user,stock_picking_group_quality_user,stock.model_stock_picking,quality.group_quality_user,1,0,0,0 +access_stock_picking_group_quality_manager,stock_picking_group_quality_manager,stock.model_stock_picking,quality.group_quality_manager,1,0,0,0 + access_quality_alert_team_manager,quality.alert.team,quality.model_quality_alert_team,quality.group_quality_manager,1,1,1,1 access_quality_check_manager,quality.check,quality.model_quality_check,quality.group_quality_manager,1,1,1,1 access_quality_alert_manager,quality.alert,quality.model_quality_alert,quality.group_quality_manager,1,1,1,1 diff --git a/sf_manufacturing/controllers/controllers.py b/sf_manufacturing/controllers/controllers.py index f035c5e9..570116e9 100644 --- a/sf_manufacturing/controllers/controllers.py +++ b/sf_manufacturing/controllers/controllers.py @@ -362,7 +362,10 @@ class Manufacturing_Connect(http.Controller): workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search( [('feeder_station_destination', '=', ret['DeviceId'])]) if workpiece_delivery: - workpiece_delivery.production_id.write({'production_line_state': '已上产线'}) + for wd in workpiece_delivery: + if wd.production_id.production_line_state == '待上产线': + logging.info('wd.production_id:%s' % workpiece_delivery.production_id.id) + wd.production_id.write({'production_line_state': '已上产线'}) else: res = {'Succeed': False, 'ErrorCode': 203, 'Error': '该DeviceId没有对应的工件配送数据'} else: @@ -391,7 +394,10 @@ class Manufacturing_Connect(http.Controller): workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search( [('feeder_station_destination', '=', ret['DeviceId'])]) if workpiece_delivery: - workpiece_delivery.production_id.write({'production_line_state': '已下产线'}) + for wd in workpiece_delivery: + if wd.production_id.production_line_state == '已上产线': + logging.info('wd.production_id:%s' % workpiece_delivery.production_id.id) + wd.production_id.write({'production_line_state': '已下产线'}) else: res = {'Succeed': False, 'ErrorCode': 203, 'Error': '该DeviceId没有对应的工件配送数据'} else: diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 023bd26d..39333a15 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -134,18 +134,19 @@ class ResMrpWorkOrder(models.Model): preset_program_information = fields.Char(string="预调程序信息") workpiece_delivery_ids = fields.One2many('sf.workpiece.delivery', 'workorder_id', '工件配送') is_delivery = fields.Boolean('是否配送完成', default=False) - rfid_code = fields.Char('RFID') + rfid_code = fields.Char('RFID码') production_line_id = fields.Many2one('sf.production.line', related='production_id.production_line_id', string='生产线', store=True) production_line_state = fields.Selection(related='production_id.production_line_state', string='上/下产线', store=True) + detection_report_path = fields.Char('检测报告链接地址') - @api.onchange('rfid_code') - def compute_rfid(self): - workorder = self.env['mrp.workorder'].search([('production_id', '=', self.production_id)]) - if workorder: - for item in workorder: - item.rfid_code = self.rfid_code + # @api.onchange('rfid_code') + # def compute_rfid(self): + # workorder = self.env['mrp.workorder'].search([('production_id', '=', self.production_id.id)]) + # if workorder: + # for item in workorder: + # item.write({'rfid_code': self.rfid_code}) def get_plan_workorder(self, production_line): tomorrow = (date.today() + timedelta(days=+1)).strftime("%Y-%m-%d") @@ -821,6 +822,12 @@ class SfWorkOrderBarcodes(models.Model): workpiece_delivery.write({'workpiece_code': embryo_workpiece_code}) else: raise UserError('工件生产线不一致,请重新确认') + else: + workorder_rfid = self.env['mrp.workorder'].search( + [('production_id', '=', workorder.production_id.id)]) + if workorder_rfid: + for item in workorder_rfid: + item.write({'rfid_code': barcode}) class WorkPieceDelivery(models.Model): diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml index 259d5f12..cf4fa679 100644 --- a/sf_manufacturing/views/mrp_workorder_view.xml +++ b/sf_manufacturing/views/mrp_workorder_view.xml @@ -166,6 +166,7 @@ + - - - - -
-
- +
+ + + + + + + @@ -428,6 +429,7 @@ + diff --git a/sf_warehouse/models/model.py b/sf_warehouse/models/model.py index fe7360b4..4cff9952 100644 --- a/sf_warehouse/models/model.py +++ b/sf_warehouse/models/model.py @@ -331,7 +331,7 @@ class ShelfLocation(models.Model): record.storage_time = False name = fields.Char('货位名称', required=True, size=20) - barcode = fields.Char('货位编码', copy=False, size=15) + barcode = fields.Char('货位编码', copy=False, size=50) # 货架 shelf_id = fields.Many2one('sf.shelf', string='货架')