优化代码-设置按钮权限等
This commit is contained in:
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
121
.idea/workspace.xml
generated
Normal file
121
.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="a6934384-3cb4-412f-ad33-230944183daf" name="变更" comment="" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="MarkdownSettingsMigration">
|
||||||
|
<option name="stateVersion" value="1" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectId" id="2KArBhSuUgtOL9OrfrAo80KuD0S" />
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$/../iot" />
|
||||||
|
</component>
|
||||||
|
<component name="RecentsManager">
|
||||||
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="D:\odoo-16.0" />
|
||||||
|
</key>
|
||||||
|
</component>
|
||||||
|
<component name="RunManager" selected="Python.odoo1-bin">
|
||||||
|
<configuration name="odoo-bin" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
|
||||||
|
<module name="odoo-16.0" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../../odoo-16.0" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/../../odoo-16.0/odoo-bin" />
|
||||||
|
<option name="PARAMETERS" value="-c D:\odoo-16.0\odoo_bfm.conf -i base" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<option name="EMULATE_TERMINAL" value="false" />
|
||||||
|
<option name="MODULE_MODE" value="false" />
|
||||||
|
<option name="REDIRECT_INPUT" value="false" />
|
||||||
|
<option name="INPUT_FILE" value="" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="odoo1-bin" type="PythonConfigurationType" factoryName="Python">
|
||||||
|
<module name="odoo-16.0" />
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/../../odoo-16.0/odoo-bin" />
|
||||||
|
<option name="PARAMETERS" value="-c D:\odoo-16.0\odoo_sf.conf -u sf_machine_connect" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<option name="EMULATE_TERMINAL" value="false" />
|
||||||
|
<option name="MODULE_MODE" value="false" />
|
||||||
|
<option name="REDIRECT_INPUT" value="false" />
|
||||||
|
<option name="INPUT_FILE" value="" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<list>
|
||||||
|
<item itemvalue="Python.odoo-bin" />
|
||||||
|
<item itemvalue="Python.odoo1-bin" />
|
||||||
|
</list>
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="默认任务">
|
||||||
|
<changelist id="a6934384-3cb4-412f-ad33-230944183daf" name="变更" comment="" />
|
||||||
|
<created>1673428094330</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1673428094330</updated>
|
||||||
|
<workItem from="1673428095633" duration="1224000" />
|
||||||
|
<workItem from="1673488896666" duration="932000" />
|
||||||
|
<workItem from="1673489852051" duration="6114000" />
|
||||||
|
<workItem from="1673595526524" duration="1191000" />
|
||||||
|
<workItem from="1673830425053" duration="311000" />
|
||||||
|
<workItem from="1673830749980" duration="2399000" />
|
||||||
|
<workItem from="1673858924810" duration="8856000" />
|
||||||
|
<workItem from="1673927686764" duration="5062000" />
|
||||||
|
<workItem from="1673935238301" duration="30408000" />
|
||||||
|
<workItem from="1674044587531" duration="6421000" />
|
||||||
|
<workItem from="1674953395592" duration="1841000" />
|
||||||
|
<workItem from="1674955271489" duration="21000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
<option name="TAB_STATES">
|
||||||
|
<map>
|
||||||
|
<entry key="MAIN">
|
||||||
|
<value>
|
||||||
|
<State />
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||||
|
<SUITE FILE_PATH="coverage/jikimo_sf$odoo1_bin.coverage" NAME="odoo1-bin 覆盖结果" MODIFIED="1674954622789" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
|
||||||
|
<SUITE FILE_PATH="coverage/jikimo_sf$odoo_bin.coverage" NAME="odoo-bin 覆盖结果" MODIFIED="1673859119327" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/../../odoo-16.0" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
{
|
{
|
||||||
'name': 'sf_machine_connect',
|
'name': '机企猫智能工厂 对接机床',
|
||||||
'version': '1.0',
|
'version': '2.0',
|
||||||
'summary': '智能工厂机床连接模块',
|
'summary': 'sf_machine_connect',
|
||||||
'sequence': 10,
|
'sequence': 10,
|
||||||
'description': """
|
'description': """
|
||||||
这是一个模块
|
这是一个模块
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
'views/WorkCenterBarcodes.xml',
|
'views/WorkCenterBarcodes.xml',
|
||||||
'views/Stock_picking_Barcodes.xml',
|
'views/Stock_picking_Barcodes.xml',
|
||||||
'views/machine_monitor.xml',
|
'views/machine_monitor.xml',
|
||||||
|
# 'views/machine_info_present.xml',
|
||||||
],
|
],
|
||||||
|
|
||||||
'assets': {
|
'assets': {
|
||||||
|
|||||||
@@ -24,6 +24,23 @@ class FtpButton(models.Model):
|
|||||||
_inherit = 'sf.cnc.processing'
|
_inherit = 'sf.cnc.processing'
|
||||||
|
|
||||||
button_state = fields.Boolean(string='是否已经下发')
|
button_state = fields.Boolean(string='是否已经下发')
|
||||||
|
user_permissions = fields.Boolean(string='权限', related='workorder_id.user_permissions')
|
||||||
|
state = fields.Selection(string='状态', related='workorder_id.state')
|
||||||
|
|
||||||
|
@api.onchange('users_ids')
|
||||||
|
def get_user_permissions(self):
|
||||||
|
uid = self.env.uid
|
||||||
|
for workorder in self:
|
||||||
|
if workorder.users_ids:
|
||||||
|
list_user_id = []
|
||||||
|
for item in workorder.users_ids:
|
||||||
|
list_user_id.append(item.id)
|
||||||
|
if uid in list_user_id:
|
||||||
|
workorder.user_permissions = True
|
||||||
|
else:
|
||||||
|
workorder.user_permissions = False
|
||||||
|
else:
|
||||||
|
workorder.user_permissions = False
|
||||||
|
|
||||||
def pri(self):
|
def pri(self):
|
||||||
"""
|
"""
|
||||||
@@ -53,7 +70,13 @@ class FtpButton(models.Model):
|
|||||||
except Exception:
|
except Exception:
|
||||||
raise UserError("补偿值写入执行超时,请检查机床状态或者写入状态")
|
raise UserError("补偿值写入执行超时,请检查机床状态或者写入状态")
|
||||||
|
|
||||||
ftp = ftp_operate.FtpController()
|
# 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
|
||||||
|
|
||||||
|
ftp = ftp_operate.FtpController(host, port, username, pwd)
|
||||||
# ftp.delAllfile('C://Users//马广威//Desktop//ftp')
|
# ftp.delAllfile('C://Users//马广威//Desktop//ftp')
|
||||||
a = self.cnc_id
|
a = self.cnc_id
|
||||||
_logger.info(a.public)
|
_logger.info(a.public)
|
||||||
@@ -62,12 +85,14 @@ class FtpButton(models.Model):
|
|||||||
|
|
||||||
# file_path = '{}\{}\{}'.format(a._filestore(), a.store_fname.split('/'[0]), a.display_name)
|
# 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('/nc2machine', a.display_name)
|
||||||
file_path_remote = '{}\{}'.format('//(192,168,2,141)//DS', a.display_name)
|
file_path_remote = '{}\{}'.format('//M80(192,168,2,142)//DS', a.display_name)
|
||||||
|
|
||||||
with open(file_path_local, mode='wb+') as file:
|
with open(file_path_local, mode='wb+') as file:
|
||||||
file.write(datas)
|
file.write(datas)
|
||||||
# 存在本地的文件下发到机床
|
# 存在本地的文件下发到机床
|
||||||
|
_logger.info("=====================11================")
|
||||||
ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local)
|
ftp.upload_file(remotepath=file_path_remote, localpath=file_path_local)
|
||||||
|
_logger.info("=====================22================")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.info("=====================================", e)
|
_logger.info("=====================================", e)
|
||||||
raise UserError('NC下发执行超时, 请检查下发状态')
|
raise UserError('NC下发执行超时, 请检查下发状态')
|
||||||
@@ -84,6 +109,41 @@ class FtpButton(models.Model):
|
|||||||
# 'type': 'ir.actions.act_window',
|
# 'type': 'ir.actions.act_window',
|
||||||
# 'target': 'new'
|
# 'target': 'new'
|
||||||
# }
|
# }
|
||||||
|
# def up_all(self):
|
||||||
|
# """
|
||||||
|
# 此函数用于将NC代码全部下发到机床
|
||||||
|
# :return:
|
||||||
|
# """
|
||||||
|
# # 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
|
||||||
|
#
|
||||||
|
# ftp = ftp_operate.FtpController(host, port, username, pwd)
|
||||||
|
# # ftp.delAllfile('C://Users//马广威//Desktop//ftp')
|
||||||
|
# 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)
|
||||||
|
# #
|
||||||
|
# # # 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)
|
||||||
|
# #
|
||||||
|
# # 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================")
|
||||||
|
# # except Exception as e:
|
||||||
|
# # _logger.info("=====================================", e)
|
||||||
|
# # raise UserError('NC下发执行超时, 请检查下发状态')
|
||||||
|
|
||||||
|
|
||||||
def check_compensation_before_up(self):
|
def check_compensation_before_up(self):
|
||||||
"""
|
"""
|
||||||
@@ -93,9 +153,9 @@ class FtpButton(models.Model):
|
|||||||
try:
|
try:
|
||||||
temp_dict = {}
|
temp_dict = {}
|
||||||
temp_dict[
|
temp_dict[
|
||||||
'ns=1;s=Project_Default.Group1.Mitsubishi_NC2.hongbianliang550'] = self.workorder_id.compensation_value_x
|
'ns=1;s=Project_Default.Group1.Mitsubishi_NC.hongbianliang550'] = self.workorder_id.compensation_value_x
|
||||||
temp_dict[
|
temp_dict[
|
||||||
'ns=1;s=Project_Default.Group1.Mitsubishi_NC2.hongbianliang551'] = self.workorder_id.compensation_value_y
|
'ns=1;s=Project_Default.Group1.Mitsubishi_NC.hongbianliang551'] = self.workorder_id.compensation_value_y
|
||||||
temp = py2opcua.Py2opcua()
|
temp = py2opcua.Py2opcua()
|
||||||
# temp.connect()
|
# temp.connect()
|
||||||
temp.write(temp_dict)
|
temp.write(temp_dict)
|
||||||
@@ -111,6 +171,21 @@ class Machine_ftp(models.Model):
|
|||||||
"""
|
"""
|
||||||
_inherit = 'sf.machine_tool'
|
_inherit = 'sf.machine_tool'
|
||||||
|
|
||||||
|
workorder_ids = fields.One2many('mrp.workorder', 'machine_tool_id', string='工单')
|
||||||
|
|
||||||
|
# 机床配置项目
|
||||||
|
# ftp相关
|
||||||
|
ftp_num = fields.Char('ftp账号')
|
||||||
|
ftp_pwd = fields.Char('ftp密码')
|
||||||
|
ftp_host = fields.Char('ftp地址')
|
||||||
|
ftp_port = fields.Integer('ftp端口')
|
||||||
|
# 补偿值写入相关
|
||||||
|
x_compensation_node = fields.Char('x补偿值节点')
|
||||||
|
y_compensation_node = fields.Char('y补偿值节点')
|
||||||
|
# 数采配置相关
|
||||||
|
machine_ip = fields.Char('机床IP')
|
||||||
|
|
||||||
|
# 机床采集项目
|
||||||
timestamp = fields.Datetime('时间戳', readonly=True)
|
timestamp = fields.Datetime('时间戳', readonly=True)
|
||||||
signed = fields.Integer('刷新间隔', readonly=True)
|
signed = fields.Integer('刷新间隔', readonly=True)
|
||||||
status = fields.Boolean('在线状态', readonly=True)
|
status = fields.Boolean('在线状态', readonly=True)
|
||||||
@@ -160,25 +235,63 @@ class WorkCenterBarcode(models.Model):
|
|||||||
compensation_value_x = fields.Float(string='X轴补偿值')
|
compensation_value_x = fields.Float(string='X轴补偿值')
|
||||||
compensation_value_y = fields.Float(string='Y轴补偿值')
|
compensation_value_y = fields.Float(string='Y轴补偿值')
|
||||||
button_compensation_state = fields.Boolean(string='是否已经补偿')
|
button_compensation_state = fields.Boolean(string='是否已经补偿')
|
||||||
|
machine_tool_id = fields.Many2one('sf.machine_tool', string='机床')
|
||||||
|
|
||||||
def compensation(self):
|
def compensation(self):
|
||||||
"""
|
|
||||||
将节点与其值放入字典,字典作为参数传入
|
hongbianliang550 = self.workcenter_id.machine_tool_id.x_compensation_node
|
||||||
:return:
|
hongbianliang551 = self.workcenter_id.machine_tool_id.y_compensation_node
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
temp_dict = {}
|
temp_dict = {}
|
||||||
temp_dict['ns=1;s=Project_Default.Group1.Mitsubishi_NC2.hongbianliang550'] = self.compensation_value_x
|
temp_dict[hongbianliang550] = self.compensation_value_x
|
||||||
temp_dict['ns=1;s=Project_Default.Group1.Mitsubishi_NC2.hongbianliang551'] = self.compensation_value_y
|
temp_dict[hongbianliang551] = self.compensation_value_y
|
||||||
temp = py2opcua.Py2opcua()
|
print("=================================")
|
||||||
# temp.connect()
|
print(temp_dict)
|
||||||
temp.write(temp_dict)
|
# temp = py2opcua.Py2opcua()
|
||||||
self.button_compensation_state = True
|
# # temp.connect()
|
||||||
|
# temp.write(temp_dict)
|
||||||
|
# self.button_compensation_state = True
|
||||||
# temp.disconnect()
|
# temp.disconnect()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.info("=====================================", e)
|
_logger.info("=====================================", e)
|
||||||
raise UserError('补偿值获取失败,或机床未连接,请检查')
|
raise UserError('补偿值获取失败,或机床未连接,请检查')
|
||||||
|
|
||||||
|
def up_all(self):
|
||||||
|
"""
|
||||||
|
此函数用于将NC代码全部下发到机床
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
# 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
|
||||||
|
print(host, port, username, pwd)
|
||||||
|
# ftp = ftp_operate.FtpController(host, port, username, pwd)
|
||||||
|
# ftp.delAllfile('C://Users//马广威//Desktop//ftp')
|
||||||
|
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)
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
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================")
|
||||||
|
# except Exception as e:
|
||||||
|
# _logger.info("=====================================", e)
|
||||||
|
# raise UserError('NC下发执行超时, 请检查下发状态')
|
||||||
|
|
||||||
def get__state(self):
|
def get__state(self):
|
||||||
pay_time = str(datetime.now())
|
pay_time = str(datetime.now())
|
||||||
json = {
|
json = {
|
||||||
|
|||||||
@@ -45,6 +45,9 @@ class FtpController:
|
|||||||
self.port = port
|
self.port = port
|
||||||
self.username = username
|
self.username = username
|
||||||
self.password = password
|
self.password = password
|
||||||
|
# 测试
|
||||||
|
print("==============================================")
|
||||||
|
print(self.username, self.port, self.host, self.password)
|
||||||
ftp = FTP_P()
|
ftp = FTP_P()
|
||||||
# self.ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
|
# self.ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
|
||||||
ftp.set_pasv(0) # 0主动模式 1 #被动模式
|
ftp.set_pasv(0) # 0主动模式 1 #被动模式
|
||||||
@@ -68,7 +71,7 @@ class FtpController:
|
|||||||
:param localpath:
|
:param localpath:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
bufsize = 1024
|
bufsize = 8192
|
||||||
# fp = open(localpath, 'rb')
|
# fp = open(localpath, 'rb')
|
||||||
# self.ftp.storbinary('STOR ' + remotepath, fp, bufsize)
|
# self.ftp.storbinary('STOR ' + remotepath, fp, bufsize)
|
||||||
# fp.close()
|
# fp.close()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<odoo>
|
<odoo>
|
||||||
<record id="sf_install_the_tray_workorder_form_view__scan_barcode" model="ir.ui.view">
|
<record id="sf_install_the_tray_workorder_form_view__scan_barcode" model="ir.ui.view">
|
||||||
<field name="name">sf.install.the.tray.workorder.form.scan.barcode</field>
|
<field name="name">sf.install.the.tray.workorder.form.scan.barcode</field>
|
||||||
@@ -8,7 +8,6 @@
|
|||||||
<xpath expr="//page//field[@name='tray_code']" position="before">
|
<xpath expr="//page//field[@name='tray_code']" position="before">
|
||||||
<!-- invisible="1" -->
|
<!-- invisible="1" -->
|
||||||
<field name="_barcode_scanned" widget="barcode_handler"/>
|
<field name="_barcode_scanned" widget="barcode_handler"/>
|
||||||
<field name="tray_code" widget="code"/>
|
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
@@ -11,12 +11,26 @@
|
|||||||
<field name="compensation_value_y"/>
|
<field name="compensation_value_y"/>
|
||||||
</group>
|
</group>
|
||||||
<div>
|
<div>
|
||||||
<field name="button_compensation_state"/>
|
<div>
|
||||||
<button string="一键补偿" name="compensation" type="object" confirm="是否确认下发补偿" class="btn-primary"/>
|
<field name="button_compensation_state"/>
|
||||||
|
<button string="一键补偿" name="compensation" type="object" confirm="是否确认下发补偿"
|
||||||
|
class="btn-primary" attrs='{"invisible": ["|",
|
||||||
|
("state","!=","progress"),("user_permissions","=",False)]}'/>
|
||||||
|
<button string="一键下发" name="up_all" type="object" style="text-align: right;" confirm="是否确认一键下发"
|
||||||
|
class="btn-primary" attrs='{"invisible": ["|",
|
||||||
|
("state","!=","progress"),("user_permissions","=",False)]}'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- <button string="显示补偿" name="compensation1" type="object" confirm="是否确认下发补偿" class="btn-primary"/>-->
|
<!-- <button string="显示补偿" name="compensation1" type="object" confirm="是否确认下发补偿" class="btn-primary"/>-->
|
||||||
<!-- <button string="修改状态" name="get__state" type="object" class="btn-primary"/>-->
|
<!-- <button string="修改状态" name="get__state" type="object" class="btn-primary"/>-->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div>-->
|
||||||
|
<!-- <button string="一键下发" name="up_all" type="object" confirm="是否确认一键下发"-->
|
||||||
|
<!-- class="btn-primary" attrs='{"invisible": ["|",-->
|
||||||
|
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
|
||||||
|
<!-- </div>-->
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
@@ -10,8 +10,17 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//field[@name='remark']" position="after">
|
<xpath expr="//field[@name='remark']" position="after">
|
||||||
<!-- <button string="测试按钮" name="pri" type="object" class="btn-primary"/>-->
|
<!-- <button string="测试按钮" name="pri" type="object" class="btn-primary"/>-->
|
||||||
|
<!-- <field name="workorder_id" invisible="1"/>-->
|
||||||
<field name="button_state"/>
|
<field name="button_state"/>
|
||||||
<button string="下发按钮" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"/>
|
<field name="user_permissions" invisible="1"/>
|
||||||
|
<field name="state" invisible="1"/>
|
||||||
|
<button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"
|
||||||
|
attrs='{"invisible": ["|",("state","!=","progress"),
|
||||||
|
("user_permissions","!=",True)]}'/>
|
||||||
|
<!-- <button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"/>-->
|
||||||
|
<!-- <button string="下发" name="up" type="object" class="btn-primary" confirm="是否确认下发此程序"-->
|
||||||
|
<!-- />-->
|
||||||
|
|
||||||
|
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
19
sf_machine_connect/views/machine_info_present.xml
Normal file
19
sf_machine_connect/views/machine_info_present.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<odoo>
|
||||||
|
<record id="view_machine_info_form_inherit_sf" model="ir.ui.view">
|
||||||
|
<field name="name">machine.info.form.inherit.sf</field>
|
||||||
|
<field name="model">mrp.workorder</field>
|
||||||
|
<field name="inherit_id" ref="mrp.mrp_production_workorder_form_view_inherit"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//page[last()]" position="after">
|
||||||
|
<page string="机床信息" attrs='{"invisible": [("routing_type","!=","CNC加工")]}'>
|
||||||
|
<group>
|
||||||
|
<field name="machine_tool_id">
|
||||||
|
</field>
|
||||||
|
<!-- <field name="cnc_ids" widget="one2many" string="工作程序"></field>-->
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
@@ -9,7 +9,10 @@
|
|||||||
<!-- <xpath expr="//field[@name='knife_type']" position="before">-->
|
<!-- <xpath expr="//field[@name='knife_type']" position="before">-->
|
||||||
<xpath expr="//form//notebook//page[1]" position="inside">
|
<xpath expr="//form//notebook//page[1]" position="inside">
|
||||||
<!-- <xpath expr="//page[@name='other']" position="before">-->
|
<!-- <xpath expr="//page[@name='other']" position="before">-->
|
||||||
<group string="监控">
|
<notebook>
|
||||||
|
<page string="机床监控">
|
||||||
|
<!-- <group string="监控">-->
|
||||||
|
<group>
|
||||||
<field name="timestamp"/>
|
<field name="timestamp"/>
|
||||||
<field name="signed"/>
|
<field name="signed"/>
|
||||||
<field name="status"/>
|
<field name="status"/>
|
||||||
@@ -95,6 +98,29 @@
|
|||||||
<!-- <field name="tool_num_process_time24" class="o_form_label"/>-->
|
<!-- <field name="tool_num_process_time24" class="o_form_label"/>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
</group>
|
</group>
|
||||||
|
</page>
|
||||||
|
<page string="机床配置">
|
||||||
|
<!-- <group string="机床配置">-->
|
||||||
|
<group>
|
||||||
|
<group string="ftp相关">
|
||||||
|
<field name="ftp_num"/>
|
||||||
|
<field name="ftp_pwd"/>
|
||||||
|
<field name="ftp_host"/>
|
||||||
|
<field name="ftp_port"/>
|
||||||
|
</group>
|
||||||
|
<group string="补偿值相关">
|
||||||
|
<field name="x_compensation_node"/>
|
||||||
|
<field name="y_compensation_node"/>
|
||||||
|
</group>
|
||||||
|
<group string="数采相关">
|
||||||
|
<field name="machine_ip"/>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</notebook>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
Reference in New Issue
Block a user