diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml index fff58007..87dbd94c 100644 --- a/sf_base/views/tool_views.xml +++ b/sf_base/views/tool_views.xml @@ -555,9 +555,9 @@ sf.tool.inventory - + - + diff --git a/sf_manufacturing/controllers/controllers.py b/sf_manufacturing/controllers/controllers.py index 61bc83ea..75badcc8 100644 --- a/sf_manufacturing/controllers/controllers.py +++ b/sf_manufacturing/controllers/controllers.py @@ -460,25 +460,27 @@ class Manufacturing_Connect(http.Controller): if f'RfidCode{i}' in ret: rfid_code = ret[f'RfidCode{i}'] logging.info('RfidCode:%s' % rfid_code) - domain = [ - ('rfid_code', '=', rfid_code), - ('routing_type', '=', 'CNC加工') - ] - workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc') - if workorder: - for order in workorder: - if order.production_id.production_line_state == '待上产线': - logging.info( - '制造订单产线状态:%s' % order.production_id.production_line_state) - order.production_id.write({'production_line_state': '已上产线'}) - workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search([ - ('rfid_code', '=', rfid_code), ('type', '=', '上产线'), - ('production_id', '=', order.production_id.id)]) - if workpiece_delivery.status == '待下发': - workpiece_delivery.write({'is_manual_work': True}) - else: - res = {'Succeed': False, 'ErrorCode': 204, - 'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']} + if rfid_code is not None: + domain = [ + ('rfid_code', '=', rfid_code), + ('routing_type', '=', 'CNC加工') + ] + workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc') + if workorder: + for order in workorder: + if order.production_id.production_line_state == '待上产线': + logging.info( + '制造订单产线状态:%s' % order.production_id.production_line_state) + order.production_id.write({'production_line_state': '已上产线'}) + workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search( + [ + ('rfid_code', '=', rfid_code), ('type', '=', '上产线'), + ('production_id', '=', order.production_id.id)]) + if workpiece_delivery.status == '待下发': + workpiece_delivery.write({'is_manual_work': True}) + else: + res = {'Succeed': False, 'ErrorCode': 204, + 'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']} else: res = {'Succeed': False, 'ErrorCode': 203, 'Error': '未传IsComplete字段'} else: @@ -515,24 +517,26 @@ class Manufacturing_Connect(http.Controller): if f'RfidCode{i}' in ret: rfid_code = ret[f'RfidCode{i}'] logging.info('RfidCode:%s' % rfid_code) - domain = [ - ('rfid_code', '=', rfid_code), - ('routing_type', '=', 'CNC加工') - ] - workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc') - if workorder: - for order in workorder: - if order.production_id.production_line_state == '已上产线': - logging.info( - '制造订单产线状态:%s' % order.production_id.production_line_state) - order.production_id.write({'production_line_state': '已下产线'}) - workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search([ - ('rfid_code', '=', rfid_code), ('type', '=', '下产线'), - ('production_id', '=', order.production_id.id)]) - delivery_Arr.append(workpiece_delivery.id) - else: - res = {'Succeed': False, 'ErrorCode': 204, - 'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']} + if rfid_code is not None: + domain = [ + ('rfid_code', '=', rfid_code), + ('routing_type', '=', 'CNC加工') + ] + workorder = request.env['mrp.workorder'].sudo().search(domain, order='id asc') + if workorder: + for order in workorder: + if order.production_id.production_line_state == '已上产线': + logging.info( + '制造订单产线状态:%s' % order.production_id.production_line_state) + order.production_id.write({'production_line_state': '已下产线'}) + workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search( + [ + ('rfid_code', '=', rfid_code), ('type', '=', '下产线'), + ('production_id', '=', order.production_id.id)]) + delivery_Arr.append(workpiece_delivery.id) + else: + res = {'Succeed': False, 'ErrorCode': 204, + 'Error': 'DeviceId为%s没有对应的已配送工件数据' % ret['DeviceId']} if delivery_Arr: logging.info('delivery_Arr:%s' % delivery_Arr) delivery_workpiece = request.env['sf.workpiece.delivery'].sudo().search( diff --git a/sf_plan/models/custom_plan.py b/sf_plan/models/custom_plan.py index fcfb8020..db8f4bf9 100644 --- a/sf_plan/models/custom_plan.py +++ b/sf_plan/models/custom_plan.py @@ -19,7 +19,7 @@ class sf_production_plan(models.Model): ('done', '已排程'), ('processing', '加工中'), ('finished', '已完成') - ], string='工单状态', tracking=True) + ], string='状态', tracking=True) state_order = fields.Integer(compute='_compute_state_order', store=True) @@ -36,7 +36,7 @@ class sf_production_plan(models.Model): _order = 'state_order asc, write_date desc' - name = fields.Char(string='工单编号') + name = fields.Char(string='制造订单') active = fields.Boolean(string='已归档', default=True) # selected = fields.Boolean(default=False) # order_number = fields.Char(string='订单号') @@ -52,7 +52,7 @@ class sf_production_plan(models.Model): schedule_setting = fields.Selection([ ('reverse', '倒排'), ('positive', '顺排')], string='排程设置', default='reverse') product_id = fields.Many2one('product.product', '关联产品') - origin = fields.Char(string='订单号') + origin = fields.Char(string='销售订单') # # 加工时长 # process_time = fields.Float(string='加工时长', digits=(16, 2)) # 实际加工时长、实际开始时间、实际结束时间 diff --git a/sf_plan/views/view.xml b/sf_plan/views/view.xml index 3b53efc2..02e595f7 100644 --- a/sf_plan/views/view.xml +++ b/sf_plan/views/view.xml @@ -17,18 +17,18 @@ decoration-danger="state == 'finished'"/> - + - - - - -