修改工单获取前置三元检测方法
This commit is contained in:
@@ -2,16 +2,18 @@
|
||||
import logging
|
||||
import json
|
||||
from datetime import datetime
|
||||
import base64
|
||||
|
||||
from odoo.addons.sf_manufacturing.models.agv_scheduling import RepeatTaskException
|
||||
from odoo import http
|
||||
from odoo.http import request
|
||||
from odoo.exceptions import MissingError
|
||||
from odoo.addons.sf_base.decorators.api_log import api_log
|
||||
|
||||
|
||||
class Manufacturing_Connect(http.Controller):
|
||||
|
||||
@http.route('/AutoDeviceApi/GetWoInfo', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
|
||||
@http.route('/AutoDeviceApi/GetWoInfo', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
|
||||
cors="*")
|
||||
@api_log('获取工单', requester='中控系统')
|
||||
def get_Work_Info(self, **kw):
|
||||
@@ -54,7 +56,7 @@ class Manufacturing_Connect(http.Controller):
|
||||
logging.info('get_Work_Info error:%s' % e)
|
||||
return json.JSONEncoder().encode(res)
|
||||
|
||||
@http.route('/AutoDeviceApi/GetShiftPlan', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
|
||||
@http.route('/AutoDeviceApi/GetShiftPlan', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
|
||||
cors="*")
|
||||
@api_log('获取日计划', requester='中控系统')
|
||||
def get_ShiftPlan(self, **kw):
|
||||
@@ -108,7 +110,7 @@ class Manufacturing_Connect(http.Controller):
|
||||
logging.info('get_ShiftPlan error:%s' % e)
|
||||
return json.JSONEncoder().encode(res)
|
||||
|
||||
@http.route('/AutoDeviceApi/QcCheck', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
|
||||
@http.route('/AutoDeviceApi/QcCheck', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
|
||||
cors="*")
|
||||
@api_log('工件预调(前置三元检测)', requester='中控系统')
|
||||
def get_qcCheck(self, **kw):
|
||||
@@ -704,3 +706,59 @@ class Manufacturing_Connect(http.Controller):
|
||||
res = {'Succeed': False, 'ErrorCode': 202, 'Error': str(e)}
|
||||
logging.info('AGVDownProduct error:%s' % e)
|
||||
return json.JSONEncoder().encode(res)
|
||||
|
||||
@http.route('/api/upload_three_check_data', type='http', auth='public', methods=['POST'], csrf=False, cros='*')
|
||||
def upload_three_check_data(self):
|
||||
|
||||
res = {'Succeed': True, 'ErrorCode': 200, 'Messages': '上传成功'}
|
||||
uploaded_files = request.httprequest.files.getlist('file')
|
||||
if uploaded_files:
|
||||
|
||||
try:
|
||||
for uploaded_file in uploaded_files:
|
||||
file_content = uploaded_file.read()
|
||||
file_name = uploaded_file.filename
|
||||
|
||||
production_name = '/'.join(file_name.split('_')[:-1])
|
||||
processing_panel = file_name.split('_')[-1].split('.')[0]
|
||||
# 找到对应的工单
|
||||
production_id = request.env['mrp.production'].sudo().search([('name', '=', production_name)])
|
||||
wo = production_id.workorder_ids.filtered(lambda wo: wo.processing_panel == processing_panel and wo.routing_type == '装夹预调')
|
||||
|
||||
if not wo:
|
||||
raise MissingError('工单不存在')
|
||||
|
||||
folder_id = request.env.ref('sf_manufacturing.documents_pre_three_element_detection_folder')
|
||||
|
||||
document = request.env['documents.document'].sudo().search([('res_model', '=', 'mrp.workorder'), ('res_id', '=', wo.id)])
|
||||
if document and document.attachment_id:
|
||||
attachment = request.env['ir.attachment'].sudo().create({
|
||||
'name': file_name,
|
||||
'type': 'binary',
|
||||
'datas': base64.b64encode(file_content),
|
||||
'res_model': 'mrp.workorder',
|
||||
'res_id': wo.id,
|
||||
})
|
||||
document.write({'attachment_id': attachment.id})
|
||||
else:
|
||||
# Create ir.attachment record
|
||||
attachment = request.env['ir.attachment'].sudo().create({
|
||||
'name': file_name,
|
||||
'type': 'binary',
|
||||
'datas': base64.b64encode(file_content),
|
||||
'res_model': 'mrp.workorder',
|
||||
'res_id': wo.id,
|
||||
})
|
||||
|
||||
# 创建 documents.document 记录
|
||||
request.env['documents.document'].sudo().create({
|
||||
'name': file_name,
|
||||
'attachment_id': attachment.id,
|
||||
'folder_id': folder_id.id,
|
||||
'res_model': 'mrp.workorder',
|
||||
'res_id': wo.id,
|
||||
})
|
||||
except Exception as e:
|
||||
res = {'Succeed': False, 'ErrorCode': 202, 'Error': str(e)}
|
||||
|
||||
return json.JSONEncoder().encode(res)
|
||||
Reference in New Issue
Block a user