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 @@
+ class="btn-primary" context="{'default_workorder_id': id}"/>
diff --git a/sf_machine_connect/views/default_delivery.xml b/sf_machine_connect/views/default_delivery.xml
new file mode 100644
index 00000000..832ba38c
--- /dev/null
+++ b/sf_machine_connect/views/default_delivery.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ delivery.record.tree
+ delivery.record
+
+
+
+
+
+
+
+
+
+
+ delivery.record.tree
+ delivery.record
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_machine_connect/views/delivery_record.xml b/sf_machine_connect/views/delivery_record.xml
index b62202e0..29bf5daa 100644
--- a/sf_machine_connect/views/delivery_record.xml
+++ b/sf_machine_connect/views/delivery_record.xml
@@ -8,25 +8,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_machine_connect/views/ftp_button.xml b/sf_machine_connect/views/ftp_button.xml
index 17924377..b5b3a21b 100644
--- a/sf_machine_connect/views/ftp_button.xml
+++ b/sf_machine_connect/views/ftp_button.xml
@@ -15,9 +15,10 @@
-
+
+
+
+
diff --git a/sf_machine_connect/views/project_sequence.xml b/sf_machine_connect/views/project_sequence.xml
new file mode 100644
index 00000000..c314362e
--- /dev/null
+++ b/sf_machine_connect/views/project_sequence.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Test
+ sf_machine_connect.delivery.record
+ T%(range_year)s
+ 4
+
+
+
+
\ No newline at end of file
diff --git a/sf_machine_connect/wizard/action_up.py b/sf_machine_connect/wizard/action_up.py
index 152a1684..bec8493d 100644
--- a/sf_machine_connect/wizard/action_up.py
+++ b/sf_machine_connect/wizard/action_up.py
@@ -24,7 +24,6 @@ class UpSelectWizard(models.TransientModel):
readonly=True)
program_ids = fields.Many2many('sf.cnc.processing', string='程序列表')
- program_name = []
def confirm_up(self):
@@ -33,8 +32,9 @@ class UpSelectWizard(models.TransientModel):
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)
+ # print(host, port, username, pwd, remote_path)
+ # ftp = ftp_operate.FtpController(host, port, username, pwd)
+ sequence_collect = []
try:
# 给文件名
begin_name1 = self.program_ids[0].cnc_id.display_name.split('-')
@@ -45,28 +45,34 @@ class UpSelectWizard(models.TransientModel):
for item in self.program_ids:
# print(item.program_name)
# print(item.cnc_id)
+ sequence_collect.append(item.sequence_number)
a = item.cnc_id
print(a.display_name)
- _logger.info(a.public)
- _logger.info(a.display_name)
- datas = base64.standard_b64decode(a.datas)
- # print(datas)
- file_path_local = '{}/{}'.format('/nc2machine', final_name)
- # print(file_path_local)
-
- # 本地测试合并下发
- # 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, final_name)
- # 合并文件
- with open(file_path_local, mode='ab+') as file:
- file.write(datas)
-
- # 存在本地的文件下发到机床
- _logger.info("==========存在服务器成功,准备下发===========")
- ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local)
- # 下发成功标识
- item.button_state = True
+ # _logger.info(a.public)
+ # _logger.info(a.display_name)
+ # datas = base64.standard_b64decode(a.datas)
+ # file_path_local = '{}/{}'.format('/nc2machine', final_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, final_name)
+ # # 合并文件
+ # with open(file_path_local, mode='ab+') as file:
+ # file.write(datas)
+ #
+ # # 存在本地的文件下发到机床
+ # _logger.info("==========存在服务器成功,准备下发===========")
+ # # 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)
+ self.workorder_id.delivery_records.create({
+ 'delivery_type': '合并下发',
+ 'delivery_time': up_time,
+ 'influence_record': sequence_str,
+ })
_logger.info("==============合并下发成功==============")
except Exception as e:
_logger.info("=====================================", e)
diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml
index 3529b6a6..00d6ac42 100644
--- a/sf_manufacturing/views/mrp_workorder_view.xml
+++ b/sf_manufacturing/views/mrp_workorder_view.xml
@@ -51,7 +51,7 @@
- false
+ False