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='货架')