diff --git a/sf_machine_connect/__manifest__.py b/sf_machine_connect/__manifest__.py index 2a78595b..89389496 100644 --- a/sf_machine_connect/__manifest__.py +++ b/sf_machine_connect/__manifest__.py @@ -18,7 +18,8 @@ # 权限组 'security/ir.model.access.csv', 'wizard/up_select.xml', - 'views/cnc.xml', + 'views/default_delivery.xml', + 'views/delivery_record.xml', 'views/compensation.xml', 'views/ftp_button.xml', @@ -28,7 +29,6 @@ 'views/Stock_picking_Barcodes.xml', 'views/machine_monitor.xml', 'views/machine_info_present.xml', - 'views/delivery_record.xml', ], diff --git a/sf_machine_connect/models/ftp_client.py b/sf_machine_connect/models/ftp_client.py index 49868871..63648e67 100644 --- a/sf_machine_connect/models/ftp_client.py +++ b/sf_machine_connect/models/ftp_client.py @@ -63,37 +63,43 @@ class FtpButton(models.Model): # 点击下发按钮自动补偿三元检测偏差值 try: - try: - if self.sequence_number == '1': - self.check_compensation_before_up() - except Exception: - raise UserError("补偿值写入执行超时,请检查机床状态或者写入状态") - - # host="192.168.2.158", port=8080, username="MITSUBISHI", password="CNC" - host = self.workorder_id.workcenter_id.machine_tool_id.ftp_host - port = self.workorder_id.workcenter_id.machine_tool_id.ftp_port - username = self.workorder_id.workcenter_id.machine_tool_id.ftp_num - pwd = self.workorder_id.workcenter_id.machine_tool_id.ftp_pwd - remote_path = self.workorder_id.workcenter_id.machine_tool_id.ftp_remote_path - print(host, port, username, pwd, remote_path) - ftp = ftp_operate.FtpController(host, port, username, pwd) - # ftp.delAllfile('C://Users//马广威//Desktop//ftp') + # try: + # if self.sequence_number == '1': + # self.check_compensation_before_up() + # except Exception: + # raise UserError("补偿值写入执行超时,请检查机床状态或者写入状态") + # + # # host="192.168.2.158", port=8080, username="MITSUBISHI", password="CNC" + # host = self.workorder_id.workcenter_id.machine_tool_id.ftp_host + # port = self.workorder_id.workcenter_id.machine_tool_id.ftp_port + # username = self.workorder_id.workcenter_id.machine_tool_id.ftp_num + # pwd = self.workorder_id.workcenter_id.machine_tool_id.ftp_pwd + # remote_path = self.workorder_id.workcenter_id.machine_tool_id.ftp_remote_path + # print(host, port, username, pwd, remote_path) + # ftp = ftp_operate.FtpController(host, port, username, pwd) + # # ftp.delAllfile('C://Users//马广威//Desktop//ftp') a = self.cnc_id - _logger.info(a.public) - _logger.info(a.display_name) - datas = base64.standard_b64decode(a.datas) - - # file_path = '{}\{}\{}'.format(a._filestore(), a.store_fname.split('/'[0]), a.display_name) - file_path_local = '{}/{}'.format('/nc2machine', a.display_name) - # file_path_remote = '{}\{}'.format('//M80(192,168,2,142)//DS', a.display_name) - file_path_remote = '{}\{}'.format(remote_path, a.display_name) - - with open(file_path_local, mode='wb+') as file: - file.write(datas) - # 存在本地的文件下发到机床 - _logger.info("=====================11================") - ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local) - _logger.info("=====================22================") + # _logger.info(a.public) + # _logger.info(a.display_name) + # datas = base64.standard_b64decode(a.datas) + # + # # file_path = '{}\{}\{}'.format(a._filestore(), a.store_fname.split('/'[0]), a.display_name) + # file_path_local = '{}/{}'.format('/nc2machine', a.display_name) + # # file_path_remote = '{}\{}'.format('//M80(192,168,2,142)//DS', a.display_name) + # file_path_remote = '{}\{}'.format(remote_path, a.display_name) + # + # with open(file_path_local, mode='wb+') as file: + # file.write(datas) + # # 存在本地的文件下发到机床 + # _logger.info("=====================11================") + # ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local) + # _logger.info("=====================22================") + up_time = str(datetime.now()) + self.workorder_id.delivery_records.create({ + 'delivery_type': '单个下发', + 'delivery_time': 'up_time', + 'influence_record': 'self.sequence_number', + }) except Exception as e: _logger.info("=====================================", e) raise UserError('NC下发执行超时, 请检查下发状态') @@ -218,6 +224,7 @@ class WorkCenterBarcode(models.Model): string='切削状态', compute='_run_info', readonly=True, default='0') machine_tool_compensation_value_x = fields.Char('x补偿值', compute='_run_info', readonly=True) machine_tool_compensation_value_y = fields.Char('y补偿值', compute='_run_info', readonly=True) + delivery_records = fields.One2many('delivery.record', 'workorder_id', string="下发记录") @api.depends('workcenter_id.machine_tool_id.timestamp') def _run_info(self): @@ -260,48 +267,58 @@ class WorkCenterBarcode(models.Model): 此函数用于将NC代码全部下发到机床 :return: """ - try: - filepath = '/nc2machine' - del_list = os.listdir(filepath) - _logger.info("=====================================", del_list) - for f in del_list: - file_path = os.path.join(filepath, f) - if os.path.isfile(file_path): - os.remove(file_path) - except Exception as e: - _logger.info("=====================================", e) - raise UserError('程序删除失败,请重试') - # host="192.168.2.158", port=8080, username="MITSUBISHI", password="CNC" - host = self.workcenter_id.machine_tool_id.ftp_host - port = self.workcenter_id.machine_tool_id.ftp_port - username = self.workcenter_id.machine_tool_id.ftp_num - pwd = self.workcenter_id.machine_tool_id.ftp_pwd - remote_path = self.workcenter_id.machine_tool_id.ftp_remote_path - print(host, port, username, pwd, remote_path) - ftp = ftp_operate.FtpController(host, port, username, pwd) - # ftp.delAllfile('C://Users//马广威//Desktop//ftp') + # try: + # filepath = '/nc2machine' + # del_list = os.listdir(filepath) + # _logger.info("=====================================", del_list) + # for f in del_list: + # file_path = os.path.join(filepath, f) + # if os.path.isfile(file_path): + # os.remove(file_path) + # except Exception as e: + # _logger.info("=====================================", e) + # raise UserError('程序删除失败,请重试') + # # host="192.168.2.158", port=8080, username="MITSUBISHI", password="CNC" + sequence_collect = [] + # host = self.workcenter_id.machine_tool_id.ftp_host + # port = self.workcenter_id.machine_tool_id.ftp_port + # username = self.workcenter_id.machine_tool_id.ftp_num + # pwd = self.workcenter_id.machine_tool_id.ftp_pwd + # remote_path = self.workcenter_id.machine_tool_id.ftp_remote_path + # print(host, port, username, pwd, remote_path) + # ftp = ftp_operate.FtpController(host, port, username, pwd) + # # ftp.delAllfile('C://Users//马广威//Desktop//ftp') try: for item in self.cnc_ids: a = item.cnc_id print(a.display_name) - _logger.info(a.public) - _logger.info(a.display_name) - datas = base64.standard_b64decode(a.datas) + sequence_collect.append(item.sequence_number) + # _logger.info(a.public) + # _logger.info(a.display_name) + # datas = base64.standard_b64decode(a.datas) + # + # # file_path = '{}\{}\{}'.format(a._filestore(), a.store_fname.split('/'[0]), a.display_name) + # file_path_local = '{}/{}'.format('/nc2machine', a.display_name) + # # 本地测试一键下发 + # # file_path_local = '{}/{}'.format('D:\\jikimo', a.display_name) + # # file_path_remote = '{}\{}'.format('//M80(192,168,2,142)//DS', a.display_name) + # file_path_remote = '{}\{}'.format(remote_path, a.display_name) + # + # with open(file_path_local, mode='wb+') as file: + # file.write(datas) + # # 存在本地的文件下发到机床 + # _logger.info("=====================11================") + # ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local) + # item.button_state = True + up_time = str(datetime.now()) + sequence_str = ','.join(sequence_collect) - # file_path = '{}\{}\{}'.format(a._filestore(), a.store_fname.split('/'[0]), a.display_name) - file_path_local = '{}/{}'.format('/nc2machine', a.display_name) - # 本地测试一键下发 - # file_path_local = '{}/{}'.format('D:\\jikimo', a.display_name) - # file_path_remote = '{}\{}'.format('//M80(192,168,2,142)//DS', a.display_name) - file_path_remote = '{}\{}'.format(remote_path, a.display_name) - - with open(file_path_local, mode='wb+') as file: - file.write(datas) - # 存在本地的文件下发到机床 - _logger.info("=====================11================") - ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local) - item.button_state = True - # _logger.info("=====================22================") + self.delivery_records.create({ + 'delivery_type': '一键下发', + 'delivery_time': up_time, + 'influence_record': sequence_str, + }) + _logger.info("=====================22================") except Exception as e: _logger.info("=====================================", e) raise UserError('NC下发执行超时, 请检查下发状态') @@ -339,15 +356,30 @@ class WorkCenterBarcode(models.Model): url = 'https://bfm.cs.jikimo.com/api/get/state' requests.post(url, json=json, data=None) - def action_up_select(self): - return { - 'name': '选择要下发的程序文件', - 'view_mode': 'tree,form', - # 'res_model': self._name, - 'res_model': 'sf_tray_form_inherit', - 'target': 'main', # 打开方式 - # 'domain': [('project_num', '=', self.project_num), ('state', '=', 'done')], # 域 - 'type': 'ir.actions.act_window', # 返回的类型 - } +class DeliveryRecord(models.Model): + """ + 扫码托盘码可查到制造订单,由制造订单查工单 + """ + # _inherit = "mrp.workorder" + _name = "delivery.record" + + delivery_type = fields.Char(string='下发方式', readonly=True) + delivery_time = fields.Char(string='下发时间', readonly=True) + influence_record = fields.Char(string='影响记录', readonly=True) + workorder_id = fields.Many2one('mrp.workorder', string='工单') + + # @api.model + # def create(self, values): + # try: + # values['order_code'] = self.env['ir.sequence'].next_by_code('sf_machine_connect.delivery.record') + # stock = self.env['sunrise.u.stock'] + # if 'order_items' in values.keys(): + # for item in values['order_items']: + # stock_commodity = stock.search([('commodity', '=', item[2]['commodity'])]) + # stock_commodity.amount += item[2]['amount'] + # return super().create(values) + # except: + # raise Exception('b_purchase_order.py:create()') + diff --git a/sf_machine_connect/security/ir.model.access.csv b/sf_machine_connect/security/ir.model.access.csv index 97e855f9..cfd49500 100644 --- a/sf_machine_connect/security/ir.model.access.csv +++ b/sf_machine_connect/security/ir.model.access.csv @@ -1,3 +1,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_up_select_wizard,up.select.wizard,model_up_select_wizard,base.group_user,1,1,1,1 +access_delivery_record,delivery.record,model_delivery_record,base.group_user,1,1,1,1 +access_mrp_workorder,mrp.workorder,model_mrp_workorder,base.group_user,1,1,1,1 diff --git a/sf_machine_connect/views/cnc.xml b/sf_machine_connect/views/cnc.xml deleted file mode 100644 index 1883d496..00000000 --- a/sf_machine_connect/views/cnc.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - sf.cnc.tree - sf.cnc.processing - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sf_machine_connect/views/compensation.xml b/sf_machine_connect/views/compensation.xml index 54652138..098af5fd 100644 --- a/sf_machine_connect/views/compensation.xml +++ b/sf_machine_connect/views/compensation.xml @@ -22,8 +22,7 @@