From e6866552bc65a7a66da2fb9fb8667c08f7e952bd Mon Sep 17 00:00:00 2001 From: "qihao.gong@jikimo.com" Date: Wed, 10 Jan 2024 15:48:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A4=84=E7=90=86CNC=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E5=A4=B1=E8=B4=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_maintenance/models/sf_maintenance.py | 18 +++++++++--------- sf_manufacturing/models/mrp_workorder.py | 9 ++++++--- sf_mrs_connect/controllers/controllers.py | 6 +++++- sf_mrs_connect/models/ftp_operate.py | 3 ++- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/sf_maintenance/models/sf_maintenance.py b/sf_maintenance/models/sf_maintenance.py index 97deb883..acb87eb6 100644 --- a/sf_maintenance/models/sf_maintenance.py +++ b/sf_maintenance/models/sf_maintenance.py @@ -195,15 +195,15 @@ class SfMaintenanceEquipment(models.Model): machine_tool_id = fields.Many2one('sf.machine_tool', '机床') sf_maintenance_logs_ids = fields.One2many('sf.maintenance.logs', 'maintenance_equipment_id', '设备故障日志') - def name_get(self): - result = [] - for parameter in self: - if parameter.code: - name = parameter.name + '-' + parameter.code - else: - name = parameter.name - result.append((parameter.id, name)) - return result + # def name_get(self): + # result = [] + # for parameter in self: + # if parameter.code: + # name = parameter.name + '-' + parameter.code + # else: + # name = parameter.name + # result.append((parameter.id, name)) + # return result @api.model def create(self, vals): diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 7b54ebde..521df296 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -608,7 +608,7 @@ class CNCprocessing(models.Model): estimated_processing_time = fields.Char('预计加工时间') remark = fields.Text('备注') workorder_id = fields.Many2one('mrp.workorder', string="工单") - workorder_id = fields.Many2one('mrp.production', string="制造定单") + production_id = fields.Many2one('mrp.production', string="制造定单") button_state = fields.Boolean(string='是否已经下发') # mrs下发编程单创建CNC加工 @@ -618,6 +618,8 @@ class CNCprocessing(models.Model): workorder = self.env['mrp.workorder'].search([('production_id.name', '=', ret['production_order_no']), ('processing_panel', '=', obj['processing_panel']), ('routing_type', '=', 'CNC加工')]) + logging.info('workorder:%s' % workorder) + logging.info('obj:%s' % obj) cnc_processing = self.env['sf.cnc.processing'].create({ 'workorder_id': workorder.id, 'sequence_number': obj['sequence_number'], @@ -633,7 +635,7 @@ class CNCprocessing(models.Model): 'estimated_processing_time': obj['estimated_processing_time'], 'remark': obj['remark'] }) - self.get_cnc_processing_file(ret['folder_name'], cnc_processing, workorder.processing_panel) + cnc_processing.get_cnc_processing_file(ret['folder_name'], cnc_processing, workorder.processing_panel) # cnc_workorder.state = 'done' cnc_workorder.work_state = '已编程' cnc_workorder.programming_state = '已编程' @@ -645,7 +647,7 @@ class CNCprocessing(models.Model): logging.info('folder_name:%s' % folder_name) serverdir = os.path.join('/tmp', folder_name, 'return', processing_panel) logging.info('serverdir:%s' % serverdir) - for root, files in os.walk(serverdir): + for root, dirs, files in os.walk(serverdir): for f in files: logging.info('f:%s' % f) if os.path.splitext(f)[1] == ".pdf": @@ -680,6 +682,7 @@ class CNCprocessing(models.Model): ftp = FtpController(str(ftp_resconfig['ftp_host']), int(ftp_resconfig['ftp_port']), ftp_resconfig['ftp_user'], ftp_resconfig['ftp_password']) download_state = ftp.download_file_tree(remotepath, serverdir) + logging.info('download_state:%s' % download_state) return download_state # 将nc文件存到attach的datas里 diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index bb6fd591..5cd28a08 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -22,22 +22,26 @@ class Sf_Mrs_Connect(http.Controller): datas = request.httprequest.data ret = json.loads(datas) ret = json.loads(ret['result']) + logging.info('下发编程单:%s' % ret) # 查询状态为进行中且类型为获取CNC加工程序的工单 cnc_production = request.env['mrp.production'].with_user( request.env.ref("base.user_admin")).search([('name', '=', ret['production_order_no'])]) + logging.info('制造订单号:%s' % cnc_production.name) if cnc_production: if ret['glb_file']: cnc_production.glb_file = base64.b64encode(ret['glb_file']) # 拉取所有加工面的程序文件 # i = 1 + for r in ret['processing_panel']: download_state = request.env['sf.cnc.processing'].with_user( request.env.ref("base.user_admin")).download_file_tmp( ret['folder_name'], r) - if not download_state: + if download_state == 0: res['status'] = -2 res['message'] = '制造订单号为%s的CNC程序文件从FTP拉取失败' % (cnc_production.name) return json.JSONEncoder().encode(res) + logging.info('创建cnc工单') request.env['sf.cnc.processing'].with_user( request.env.ref("base.user_admin")).cnc_processing_create(cnc_production, ret) return json.JSONEncoder().encode(res) diff --git a/sf_mrs_connect/models/ftp_operate.py b/sf_mrs_connect/models/ftp_operate.py index 2ef43467..341ec88e 100644 --- a/sf_mrs_connect/models/ftp_operate.py +++ b/sf_mrs_connect/models/ftp_operate.py @@ -35,8 +35,9 @@ class FtpController(): server = os.path.join(serverdir, file) if file.find(".") != -1: self.download_file(server, file) + return 1 except Exception: - return False + return 0 # 下载指定目录下的指定文件 def download_file(self, serverfile, remotefile): From 1bc09a442491a64297aa5ca353f06ded453dda90 Mon Sep 17 00:00:00 2001 From: "qihao.gong@jikimo.com" Date: Wed, 10 Jan 2024 15:50:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=B6=E9=80=A0=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_workorder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 521df296..feb37787 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -608,7 +608,7 @@ class CNCprocessing(models.Model): estimated_processing_time = fields.Char('预计加工时间') remark = fields.Text('备注') workorder_id = fields.Many2one('mrp.workorder', string="工单") - production_id = fields.Many2one('mrp.production', string="制造定单") + production_id = fields.Many2one('mrp.production', string="制造订单") button_state = fields.Boolean(string='是否已经下发') # mrs下发编程单创建CNC加工