Merge branch 'feature/优化返工-保留装夹测量数据' into develop
This commit is contained in:
@@ -25,6 +25,7 @@ class ReworkWizard(models.TransientModel):
|
|||||||
processing_panel_id = fields.Many2many('sf.processing.panel', string="加工面")
|
processing_panel_id = fields.Many2many('sf.processing.panel', string="加工面")
|
||||||
is_reprogramming = fields.Boolean(string='申请重新编程', default=False)
|
is_reprogramming = fields.Boolean(string='申请重新编程', default=False)
|
||||||
is_reprogramming_readonly = fields.Boolean(string='申请重新编程(只读)', default=False)
|
is_reprogramming_readonly = fields.Boolean(string='申请重新编程(只读)', default=False)
|
||||||
|
is_clamp_measure = fields.Boolean(string='保留装夹测量数据', default=True)
|
||||||
reprogramming_num = fields.Integer('重新编程次数', default=0)
|
reprogramming_num = fields.Integer('重新编程次数', default=0)
|
||||||
programming_state = fields.Selection(
|
programming_state = fields.Selection(
|
||||||
[('待编程', '待编程'), ('编程中', '编程中'), ('已编程', '已编程'), ('已编程未下发', '已编程未下发'),
|
[('待编程', '待编程'), ('编程中', '编程中'), ('已编程', '已编程'), ('已编程未下发', '已编程未下发'),
|
||||||
@@ -35,6 +36,7 @@ class ReworkWizard(models.TransientModel):
|
|||||||
|
|
||||||
def confirm(self):
|
def confirm(self):
|
||||||
if self.routing_type in ['装夹预调', 'CNC加工']:
|
if self.routing_type in ['装夹预调', 'CNC加工']:
|
||||||
|
self.is_clamp_measure = False
|
||||||
self.workorder_id.is_rework = True
|
self.workorder_id.is_rework = True
|
||||||
self.production_id.write({'detection_result_ids': [(0, 0, {
|
self.production_id.write({'detection_result_ids': [(0, 0, {
|
||||||
'rework_reason': self.rework_reason,
|
'rework_reason': self.rework_reason,
|
||||||
@@ -58,19 +60,15 @@ class ReworkWizard(models.TransientModel):
|
|||||||
if processing_panels_missing:
|
if processing_panels_missing:
|
||||||
processing_panels_str = ','.join(processing_panels_missing)
|
processing_panels_str = ','.join(processing_panels_missing)
|
||||||
raise UserError('您还有待处理的检测结果中为%s的加工面未选择' % processing_panels_str)
|
raise UserError('您还有待处理的检测结果中为%s的加工面未选择' % processing_panels_str)
|
||||||
# processing_panels = set()
|
|
||||||
# for handle_item in handle_result:
|
|
||||||
# for dr_panel in self.processing_panel_id:
|
|
||||||
# if dr_panel.name == handle_item.processing_panel:
|
|
||||||
# processing_panels.add(dr_panel.name)
|
|
||||||
# if len(processing_panels) != len(handle_result):
|
|
||||||
# processing_panels_str = ','.join(processing_panels)
|
|
||||||
# return UserError(f'您还有待处理的检测结果中为{processing_panels_str}的加工面未选择')
|
|
||||||
for panel in self.processing_panel_id:
|
for panel in self.processing_panel_id:
|
||||||
panel_workorder = self.production_id.workorder_ids.filtered(
|
panel_workorder = self.production_id.workorder_ids.filtered(
|
||||||
lambda ap: ap.processing_panel == panel.name and ap.state != 'rework')
|
lambda ap: ap.processing_panel == panel.name and ap.state != 'rework')
|
||||||
if panel_workorder:
|
if panel_workorder:
|
||||||
panel_workorder.write({'state': 'rework'})
|
panel_workorder.write({'state': 'rework'})
|
||||||
|
rework_clamp_workorder = max(panel_workorder.filtered(
|
||||||
|
lambda
|
||||||
|
rp: rp.processing_panel == panel.name and rp.routing_type == '装夹预调' and rp.state in [
|
||||||
|
'done', 'rework']))
|
||||||
# panel_workorder.filtered(
|
# panel_workorder.filtered(
|
||||||
# lambda wo: wo.routing_type == '装夹预调').workpiece_delivery_ids.filtered(
|
# lambda wo: wo.routing_type == '装夹预调').workpiece_delivery_ids.filtered(
|
||||||
# lambda wd: wd.status == '待下发').write({'status': '已取消'})
|
# lambda wd: wd.status == '待下发').write({'status': '已取消'})
|
||||||
@@ -93,6 +91,43 @@ class ReworkWizard(models.TransientModel):
|
|||||||
self.production_id.detection_result_ids.filtered(
|
self.production_id.detection_result_ids.filtered(
|
||||||
lambda ap1: ap1.processing_panel == panel.name and ap1.handle_result == '待处理').write(
|
lambda ap1: ap1.processing_panel == panel.name and ap1.handle_result == '待处理').write(
|
||||||
{'handle_result': '已处理'})
|
{'handle_result': '已处理'})
|
||||||
|
new_pre_workorder = self.production_id.workorder_ids.filtered(lambda
|
||||||
|
p: p.routing_type == '装夹预调' and p.processing_panel == panel.name and p.state not in (
|
||||||
|
'rework', 'done'))
|
||||||
|
if new_pre_workorder and rework_clamp_workorder and self.is_clamp_measure is True:
|
||||||
|
new_pre_workorder.write(
|
||||||
|
{'X1_axis': rework_clamp_workorder.X1_axis, 'Y1_axis': rework_clamp_workorder.Y1_axis
|
||||||
|
, 'Z1_axis': rework_clamp_workorder.Z1_axis,
|
||||||
|
'X2_axis': rework_clamp_workorder.X2_axis
|
||||||
|
, 'Y2_axis': rework_clamp_workorder.Y2_axis,
|
||||||
|
'Z2_axis': rework_clamp_workorder.Z2_axis
|
||||||
|
, 'X3_axis': rework_clamp_workorder.X3_axis,
|
||||||
|
'Y3_axis': rework_clamp_workorder.Y3_axis
|
||||||
|
, 'Z3_axis': rework_clamp_workorder.Z3_axis,
|
||||||
|
'X4_axis': rework_clamp_workorder.X4_axis
|
||||||
|
, 'Y4_axis': rework_clamp_workorder.Y4_axis,
|
||||||
|
'Z4_axis': rework_clamp_workorder.Z4_axis
|
||||||
|
, 'X5_axis': rework_clamp_workorder.X5_axis,
|
||||||
|
'Y5_axis': rework_clamp_workorder.Y5_axis
|
||||||
|
, 'Z5_axis': rework_clamp_workorder.Z5_axis,
|
||||||
|
'X6_axis': rework_clamp_workorder.X6_axis
|
||||||
|
, 'Y6_axis': rework_clamp_workorder.Y6_axis,
|
||||||
|
'Z6_axis': rework_clamp_workorder.Z6_axis
|
||||||
|
, 'X7_axis': rework_clamp_workorder.X7_axis,
|
||||||
|
'Y7_axis': rework_clamp_workorder.Y7_axis
|
||||||
|
, 'Z7_axis': rework_clamp_workorder.Z7_axis,
|
||||||
|
'X8_axis': rework_clamp_workorder.X8_axis
|
||||||
|
, 'Y8_axis': rework_clamp_workorder.Y8_axis,
|
||||||
|
'Z8_axis': rework_clamp_workorder.Z8_axis
|
||||||
|
, 'X9_axis': rework_clamp_workorder.X9_axis,
|
||||||
|
'Y9_axis': rework_clamp_workorder.Y9_axis
|
||||||
|
, 'Z9_axis': rework_clamp_workorder.Z9_axis,
|
||||||
|
'X10_axis': rework_clamp_workorder.X10_axis
|
||||||
|
, 'Y10_axis': rework_clamp_workorder.Y10_axis,
|
||||||
|
'Z10_axis': rework_clamp_workorder.Z10_axis
|
||||||
|
, 'X_deviation_angle': rework_clamp_workorder.X_deviation_angle,
|
||||||
|
'material_center_point': rework_clamp_workorder.material_center_point
|
||||||
|
})
|
||||||
if self.is_reprogramming is False:
|
if self.is_reprogramming is False:
|
||||||
if self.programming_state in ['已编程', '已下发']:
|
if self.programming_state in ['已编程', '已下发']:
|
||||||
if self.reprogramming_num >= 1 and self.programming_state == '已编程':
|
if self.reprogramming_num >= 1 and self.programming_state == '已编程':
|
||||||
@@ -149,9 +184,7 @@ class ReworkWizard(models.TransientModel):
|
|||||||
'cmm_ids': new_cnc_workorder.cmm_ids.sudo()._json_cmm_program(panel.name,
|
'cmm_ids': new_cnc_workorder.cmm_ids.sudo()._json_cmm_program(panel.name,
|
||||||
ret),
|
ret),
|
||||||
'cnc_worksheet': cnc_rework.cnc_worksheet})
|
'cnc_worksheet': cnc_rework.cnc_worksheet})
|
||||||
new_pre_workorder = self.production_id.workorder_ids.filtered(lambda
|
|
||||||
p: p.routing_type == '装夹预调' and p.processing_panel == panel.name and p.state not in (
|
|
||||||
'rework', 'done'))
|
|
||||||
if new_pre_workorder:
|
if new_pre_workorder:
|
||||||
pre_rework = max(self.production_id.workorder_ids.filtered(
|
pre_rework = max(self.production_id.workorder_ids.filtered(
|
||||||
lambda pr: pr.processing_panel == panel.name and pr.state in (
|
lambda pr: pr.processing_panel == panel.name and pr.state in (
|
||||||
|
|||||||
@@ -14,17 +14,25 @@
|
|||||||
<group>
|
<group>
|
||||||
<field name="processing_panel_id" options="{'no_create': True}"
|
<field name="processing_panel_id" options="{'no_create': True}"
|
||||||
attrs='{"invisible": [("routing_type","=","装夹预调")]}' widget="many2many_tags"/>
|
attrs='{"invisible": [("routing_type","=","装夹预调")]}' widget="many2many_tags"/>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
<div attrs='{"invisible": [("routing_type","=","装夹预调")]}'>
|
||||||
|
<span style='font-weight:bold;'>保留装夹测量数据
|
||||||
|
<field name="is_clamp_measure" force_save="1"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
<div attrs='{"invisible": [("reprogramming_num","=",0)]}'>
|
<div attrs='{"invisible": [("reprogramming_num","=",0)]}'>
|
||||||
注意: 该制造订单产品已申请重新编程次数为<field
|
<span style='font-weight:bold;'>
|
||||||
name="reprogramming_num" string=""
|
注意: 该制造订单产品已申请重新编程次数为<field
|
||||||
readonly="1"
|
name="reprogramming_num" string=""
|
||||||
style='color:red;'/>,且当前编程状态为
|
readonly="1"
|
||||||
<field name="programming_state" string=""
|
style='color:red;'/>,且当前编程状态为
|
||||||
decoration-info="programming_state == '待编程'"
|
<field name="programming_state" string=""
|
||||||
decoration-success="programming_state == '已下发'"
|
decoration-info="programming_state == '待编程'"
|
||||||
decoration-warning="programming_state =='编程中'"
|
decoration-success="programming_state == '已下发'"
|
||||||
decoration-danger="programming_state =='已编程'" readonly="1"/>
|
decoration-warning="programming_state =='编程中'"
|
||||||
|
decoration-danger="programming_state =='已编程'" readonly="1"/>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div attrs='{"invisible": ["|",("routing_type","in",["装夹预调","CNC加工"]),("programming_state","not in",["已下发"])],"readonly": [("tool_state", "=", "2")]}'>
|
<div attrs='{"invisible": ["|",("routing_type","in",["装夹预调","CNC加工"]),("programming_state","not in",["已下发"])],"readonly": [("tool_state", "=", "2")]}'>
|
||||||
<span style='font-weight:bold;'>申请重新编程
|
<span style='font-weight:bold;'>申请重新编程
|
||||||
|
|||||||
Reference in New Issue
Block a user