调整编程记录生成
This commit is contained in:
@@ -15,7 +15,8 @@ class sf_programming_reason(models.TransientModel):
|
|||||||
if self._context.get('active_id'):
|
if self._context.get('active_id'):
|
||||||
production = self.env['mrp.production'].browse(self._context.get('active_id'))
|
production = self.env['mrp.production'].browse(self._context.get('active_id'))
|
||||||
res.update({
|
res.update({
|
||||||
'reprogramming_count': production._cron_get_programming_state()['reprogramming_num'],
|
'reprogramming_count': production._cron_get_programming_state()['reprogramming_num'] if
|
||||||
|
production._cron_get_programming_state().get('reprogramming_num') else 0,
|
||||||
'programming_state': production.programming_state, # 假设制造订单模型中有这个字段
|
'programming_state': production.programming_state, # 假设制造订单模型中有这个字段
|
||||||
})
|
})
|
||||||
return res
|
return res
|
||||||
@@ -33,7 +34,7 @@ class sf_programming_reason(models.TransientModel):
|
|||||||
'reason': self.reason,
|
'reason': self.reason,
|
||||||
'programming_method': cloud_programming['programme_way'],
|
'programming_method': cloud_programming['programme_way'],
|
||||||
'current_programming_count': cloud_programming['reprogramming_num'],
|
'current_programming_count': cloud_programming['reprogramming_num'],
|
||||||
'target_production_id': cloud_programming['production_order_no'],
|
'target_production_id': self.production_id.name,
|
||||||
'apply_time': self._context.get('default_apply_time'),
|
'apply_time': self._context.get('default_apply_time'),
|
||||||
'send_time': False,
|
'send_time': False,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -8,8 +8,19 @@
|
|||||||
<group>
|
<group>
|
||||||
<label for="reason" string="重新编程原因:"/>
|
<label for="reason" string="重新编程原因:"/>
|
||||||
<field name="reason" widget="textarea" nolabel="1"/>
|
<field name="reason" widget="textarea" nolabel="1"/>
|
||||||
<p class="text-muted">注意:该制造订单产品已申请重新编程次数为<field name="reprogramming_count" readonly="1" nolabel="1" class="oe_inline"/>,且当前编程状态为<field name="programming_state" readonly="1" nolabel="1" class="oe_inline"/></p>
|
<!-- <p class="text-muted">注意:该制造订单产品已申请重新编程次数为<field name="reprogramming_count" readonly="1" nolabel="1" class="oe_inline"/>,且当前编程状态为<field name="programming_state" readonly="1" nolabel="1" class="oe_inline"/></p> -->
|
||||||
</group>
|
</group>
|
||||||
|
<div attrs='{"invisible": [("reprogramming_count","=",0)]}'>
|
||||||
|
<span style='font-weight:bold;'>
|
||||||
|
注意: 该制造订单产品已申请重新编程次数为<field
|
||||||
|
name="reprogramming_count" string=""
|
||||||
|
readonly="1"
|
||||||
|
style='color:red;'/>,且当前编程状态为
|
||||||
|
<field name="programming_state" string=""
|
||||||
|
decoration-warning="programming_state =='编程中'"
|
||||||
|
decoration-success="programming_state =='已编程'" readonly="1"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
<field name="production_id" invisible="True"/>
|
<field name="production_id" invisible="True"/>
|
||||||
<footer>
|
<footer>
|
||||||
<button name="action_confirm" string="确认" type="object" class="btn-primary"/>
|
<button name="action_confirm" string="确认" type="object" class="btn-primary"/>
|
||||||
|
|||||||
@@ -111,12 +111,25 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
logging.info(f'对cnc工单的程序用刀进行校验报错:{e}')
|
logging.info(f'对cnc工单的程序用刀进行校验报错:{e}')
|
||||||
return json.JSONEncoder().encode(res)
|
return json.JSONEncoder().encode(res)
|
||||||
|
|
||||||
|
productions_reprogram = ''
|
||||||
|
if productions:
|
||||||
|
productions_reprogram = ','.join(productions.mapped('name'))
|
||||||
|
|
||||||
# 更新编程记录
|
# 更新编程记录
|
||||||
|
correct_record_ids_obj = None
|
||||||
|
correct_production_id = None
|
||||||
|
rework_record_ids_obj = None
|
||||||
|
rework_production_id = None
|
||||||
|
scrap_record_ids_obj = None
|
||||||
|
scrap_production_id = None
|
||||||
for production in productions:
|
for production in productions:
|
||||||
record_ids_obj = production.programming_record_ids.filtered(
|
record_ids_obj = production.programming_record_ids.filtered(
|
||||||
lambda r: r.current_programming_count == ret['reprogramming_num'])
|
lambda r: r.current_programming_count == ret['reprogramming_num'])
|
||||||
if record_ids_obj:
|
if record_ids_obj:
|
||||||
record_ids_obj.write({'send_time': ret['send_time']})
|
record_ids_obj.write(
|
||||||
|
{'send_time': ret['send_time'], 'target_production_id': productions_reprogram})
|
||||||
|
correct_record_ids_obj = record_ids_obj
|
||||||
|
correct_production_id = production.id
|
||||||
if ret['reprogramming_num'] == 0:
|
if ret['reprogramming_num'] == 0:
|
||||||
production.programming_record_ids.create({
|
production.programming_record_ids.create({
|
||||||
'number': 1,
|
'number': 1,
|
||||||
@@ -124,7 +137,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
'reason': '首次下发',
|
'reason': '首次下发',
|
||||||
'programming_method': ret['programme_way'],
|
'programming_method': ret['programme_way'],
|
||||||
'current_programming_count': ret['reprogramming_num'],
|
'current_programming_count': ret['reprogramming_num'],
|
||||||
'target_production_id': ret['production_order_no'],
|
'target_production_id': productions_reprogram,
|
||||||
'apply_time': False,
|
'apply_time': False,
|
||||||
'send_time': ret['send_time'],
|
'send_time': ret['send_time'],
|
||||||
})
|
})
|
||||||
@@ -135,7 +148,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
'reason': '重置状态',
|
'reason': '重置状态',
|
||||||
'programming_method': ret['programme_way'],
|
'programming_method': ret['programme_way'],
|
||||||
'current_programming_count': ret['reprogramming_num'],
|
'current_programming_count': ret['reprogramming_num'],
|
||||||
'target_production_id': ret['production_order_no'],
|
'target_production_id': productions_reprogram,
|
||||||
'apply_time': False,
|
'apply_time': False,
|
||||||
'send_time': ret['send_time'],
|
'send_time': ret['send_time'],
|
||||||
})
|
})
|
||||||
@@ -146,10 +159,12 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
'reason': '返工',
|
'reason': '返工',
|
||||||
'programming_method': ret['programme_way'],
|
'programming_method': ret['programme_way'],
|
||||||
'current_programming_count': ret['reprogramming_num'],
|
'current_programming_count': ret['reprogramming_num'],
|
||||||
'target_production_id': ret['production_order_no'],
|
'target_production_id': productions_reprogram,
|
||||||
'apply_time': ret['trigger_time'],
|
'apply_time': ret['trigger_time'],
|
||||||
'send_time': ret['send_time'],
|
'send_time': ret['send_time'],
|
||||||
})
|
})
|
||||||
|
rework_record_ids_obj = production.programming_record_ids
|
||||||
|
rework_production_id = production.id
|
||||||
elif ret['manufacturing_type'] == 'scrap':
|
elif ret['manufacturing_type'] == 'scrap':
|
||||||
production.programming_record_ids.create({
|
production.programming_record_ids.create({
|
||||||
'number': len(production.programming_record_ids) + 1,
|
'number': len(production.programming_record_ids) + 1,
|
||||||
@@ -157,7 +172,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
'reason': '报废',
|
'reason': '报废',
|
||||||
'programming_method': ret['programme_way'],
|
'programming_method': ret['programme_way'],
|
||||||
'current_programming_count': ret['reprogramming_num'],
|
'current_programming_count': ret['reprogramming_num'],
|
||||||
'target_production_id': ret['production_order_no'],
|
'target_production_id': productions_reprogram,
|
||||||
'apply_time': ret['trigger_time'],
|
'apply_time': ret['trigger_time'],
|
||||||
'send_time': ret['send_time'],
|
'send_time': ret['send_time'],
|
||||||
})
|
})
|
||||||
@@ -168,13 +183,44 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
|||||||
'reason': '无效功能刀具',
|
'reason': '无效功能刀具',
|
||||||
'programming_method': ret['programme_way'],
|
'programming_method': ret['programme_way'],
|
||||||
'current_programming_count': ret['reprogramming_num'],
|
'current_programming_count': ret['reprogramming_num'],
|
||||||
'target_production_id': ret['production_order_no'],
|
'target_production_id': productions_reprogram,
|
||||||
'apply_time': ret['trigger_time'],
|
'apply_time': ret['trigger_time'],
|
||||||
'send_time': ret['send_time'],
|
'send_time': ret['send_time'],
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
logging.info('无对应状态,不需更新编程记录')
|
logging.info('无对应状态,不需更新编程记录')
|
||||||
|
|
||||||
|
for production in productions:
|
||||||
|
if correct_record_ids_obj:
|
||||||
|
if production.id == correct_production_id:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
production.programming_record_ids.create({
|
||||||
|
'number': len(production.programming_record_ids) + 1,
|
||||||
|
'production_id': production.id,
|
||||||
|
'reason': correct_record_ids_obj.reason,
|
||||||
|
'programming_method': correct_record_ids_obj.programming_method,
|
||||||
|
'current_programming_count': correct_record_ids_obj.current_programming_count,
|
||||||
|
'target_production_id': correct_record_ids_obj.target_production_id,
|
||||||
|
'apply_time': correct_record_ids_obj.apply_time,
|
||||||
|
'send_time': correct_record_ids_obj.send_time,
|
||||||
|
})
|
||||||
|
|
||||||
|
if rework_record_ids_obj:
|
||||||
|
if production.id == rework_production_id:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
production.programming_record_ids.create({
|
||||||
|
'number': len(production.programming_record_ids) + 1,
|
||||||
|
'production_id': production.id,
|
||||||
|
'reason': rework_record_ids_obj.reason,
|
||||||
|
'programming_method': rework_record_ids_obj.programming_method,
|
||||||
|
'current_programming_count': rework_record_ids_obj.current_programming_count,
|
||||||
|
'target_production_id': rework_record_ids_obj.target_production_id,
|
||||||
|
'apply_time': rework_record_ids_obj.apply_time,
|
||||||
|
'send_time': rework_record_ids_obj.send_time,
|
||||||
|
})
|
||||||
|
|
||||||
res.update({
|
res.update({
|
||||||
'production_ids': productions.ids
|
'production_ids': productions.ids
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user