diff --git a/sf_base/views/tool_views.xml b/sf_base/views/tool_views.xml
index 1e82b8c2..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_tool_management/models/base.py b/sf_tool_management/models/base.py
index 8daf1488..7eea666b 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -1028,7 +1028,7 @@ class ProductProduct(models.Model):
'product_id': self.id,
'lot_id': lot_id.id,
'move_id': stock_move_id.id,
- 'destination_location_id': shelf_location_id.id,
+ 'destination_location_id': shelf_location_id.id if shelf_location_id else False,
'install_tool_time': fields.Datetime.now(),
'qty_done': 1.0,
'state': 'done',