+
+
+
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index 23fd8c79..5de5e780 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -144,6 +144,8 @@ class ResMrpWorkOrder(models.Model):
# 是否绑定托盘
is_trayed = fields.Boolean(string='是否绑定托盘', default=False)
+ tag_type = fields.Selection([("重新加工", "重新加工")], string="标签", tracking=True)
+
@api.depends('name', 'production_id.name')
def _compute_surface_technics_picking_ids(self):
for workorder in self:
@@ -426,7 +428,8 @@ class ResMrpWorkOrder(models.Model):
logging.info('local_file_path:%s' % local_file_path)
remote_path = '/home/ftp/ftp_root/ThreeTest/XT/Before/' + local_filename
logging.info('remote_path:%s' % remote_path)
- if not ftp.file_exists(remote_path):
+ is_get_detection_file = self.env['ir.config_parameter'].sudo().get_param('is_get_detection_file')
+ if not is_get_detection_file:
paload_data = {
"filename": local_filename
}
@@ -603,6 +606,8 @@ class ResMrpWorkOrder(models.Model):
print("(%.2f,%.2f)" % (x, y))
self.material_center_point = ("(%.2f,%.2f,%.2f)" % (x, y, z))
self.X_deviation_angle = jdz
+ logging.info("坯料中心点坐标:(%.2f,%.2f)" % (x, y))
+ logging.info("X轴偏差度数:%.2f" % jdz)
# 将补偿值写入CNC加工工单
workorder = self.env['mrp.workorder'].browse(self.ids)
work = workorder.production_id.workorder_ids
@@ -705,6 +710,7 @@ class ResMrpWorkOrder(models.Model):
'date_planned_finished': datetime.now() + timedelta(days=1),
'duration_expected': duration_expected,
'duration': 0,
+ 'tag_type': '重新加工' if item is False else False,
'cnc_ids': False if route.routing_type != 'CNC加工' else self.env['sf.cnc.processing']._json_cnc_processing(
k, item),
'cmm_ids': False if route.routing_type != 'CNC加工' else self.env['sf.cmm.program']._json_cmm_program(k,
@@ -1183,8 +1189,10 @@ class ResMrpWorkOrder(models.Model):
if not record.rfid_code and record.is_rework is False:
raise UserError("请扫RFID码进行绑定")
if record.is_rework is False:
- if not record.material_center_point or record.X_deviation_angle <= 0:
- raise UserError("坯料中心点为空或X偏差角度小于等于0")
+ if not record.material_center_point:
+ raise UserError("坯料中心点为空,请检查")
+ if record.X_deviation_angle <= 0:
+ raise UserError("X偏差角度小于等于0,请检查!本次计算的X偏差角度为:%s" % record.X_deviation_angle)
record.process_state = '待加工'
# record.write({'process_state': '待加工'})
record.production_id.process_state = '待加工'
@@ -1565,6 +1573,8 @@ class SfWorkOrderBarcodes(models.Model):
def on_barcode_scanned(self, barcode):
logging.info('Rfid:%s' % barcode)
+ if 'O-CMD' in barcode:
+ return None
workorder = self.env['mrp.workorder'].browse(self.ids)
# workorder_preset = self.env['mrp.workorder'].search(
# [('routing_type', '=', '装夹预调'), ('rfid_code', '=', barcode)])
diff --git a/sf_manufacturing/models/res_config_setting.py b/sf_manufacturing/models/res_config_setting.py
index f3a87ca4..984ba223 100644
--- a/sf_manufacturing/models/res_config_setting.py
+++ b/sf_manufacturing/models/res_config_setting.py
@@ -4,11 +4,15 @@ from odoo import models, fields, api
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
- is_agv_task_dispatch = fields.Boolean('是否下发AGV任务', default=False)
- wbcode = fields.Char('地码')
- agv_code = fields.Char(string='agv编号')
agv_rcs_url = fields.Char(string='avg_rcs访问地址',
default='http://172.16.10.114:8182/rcms/services/rest/hikRpcService/genAgvSchedulingTask')
+ wbcode = fields.Char('地码')
+ agv_code = fields.Char(string='agv编号')
+ task_type_no = fields.Char('任务单类型编号')
+
+ is_agv_task_dispatch = fields.Boolean('是否下发AGV任务', default=False)
+ # 是否重新获取检测文件
+ is_get_detection_file = fields.Boolean(string='重新获取检测文件', default=False)
@api.model
def get_values(self):
@@ -18,19 +22,21 @@ class ResConfigSettings(models.TransientModel):
wbcode = config.get_param('wbcode', default='')
agv_code = config.get_param('agv_code', default='')
is_agv_task_dispatch = config.get_param('is_agv_task_dispatch')
-
+ is_get_detection_file = config.get_param('is_get_detection_file')
values.update(
- is_agv_task_dispatch=is_agv_task_dispatch,
- agv_code=agv_code,
agv_rcs_url=agv_rcs_url,
wbcode=wbcode,
+ agv_code=agv_code,
+ is_agv_task_dispatch=is_agv_task_dispatch,
+ is_get_detection_file=is_get_detection_file
)
return values
def set_values(self):
super(ResConfigSettings, self).set_values()
config = self.env['ir.config_parameter'].sudo()
- config.set_param("is_agv_task_dispatch", self.is_agv_task_dispatch or False)
config.set_param("agv_rcs_url", self.agv_rcs_url or "")
config.set_param("wbcode", self.wbcode or "")
config.set_param("agv_code", self.agv_code or "")
+ config.set_param("is_agv_task_dispatch", self.is_agv_task_dispatch or False)
+ config.set_param("is_get_detection_file", self.is_get_detection_file or False)
diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml
index bb451f51..e38f502f 100644
--- a/sf_manufacturing/views/mrp_workorder_view.xml
+++ b/sf_manufacturing/views/mrp_workorder_view.xml
@@ -32,6 +32,8 @@
+
@@ -43,11 +45,11 @@
-
-
-
-
-
+
+
+
+
+
{'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft',
'done',
'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')),
@@ -165,8 +167,8 @@
-
-
+
+