调整编程记录生成
This commit is contained in:
@@ -15,7 +15,8 @@ class sf_programming_reason(models.TransientModel):
|
||||
if self._context.get('active_id'):
|
||||
production = self.env['mrp.production'].browse(self._context.get('active_id'))
|
||||
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, # 假设制造订单模型中有这个字段
|
||||
})
|
||||
return res
|
||||
@@ -33,7 +34,7 @@ class sf_programming_reason(models.TransientModel):
|
||||
'reason': self.reason,
|
||||
'programming_method': cloud_programming['programme_way'],
|
||||
'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'),
|
||||
'send_time': False,
|
||||
})
|
||||
|
||||
@@ -8,8 +8,19 @@
|
||||
<group>
|
||||
<label for="reason" string="重新编程原因:"/>
|
||||
<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>
|
||||
<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"/>
|
||||
<footer>
|
||||
<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}')
|
||||
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:
|
||||
record_ids_obj = production.programming_record_ids.filtered(
|
||||
lambda r: r.current_programming_count == ret['reprogramming_num'])
|
||||
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:
|
||||
production.programming_record_ids.create({
|
||||
'number': 1,
|
||||
@@ -124,7 +137,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
||||
'reason': '首次下发',
|
||||
'programming_method': ret['programme_way'],
|
||||
'current_programming_count': ret['reprogramming_num'],
|
||||
'target_production_id': ret['production_order_no'],
|
||||
'target_production_id': productions_reprogram,
|
||||
'apply_time': False,
|
||||
'send_time': ret['send_time'],
|
||||
})
|
||||
@@ -135,7 +148,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
||||
'reason': '重置状态',
|
||||
'programming_method': ret['programme_way'],
|
||||
'current_programming_count': ret['reprogramming_num'],
|
||||
'target_production_id': ret['production_order_no'],
|
||||
'target_production_id': productions_reprogram,
|
||||
'apply_time': False,
|
||||
'send_time': ret['send_time'],
|
||||
})
|
||||
@@ -146,10 +159,12 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
||||
'reason': '返工',
|
||||
'programming_method': ret['programme_way'],
|
||||
'current_programming_count': ret['reprogramming_num'],
|
||||
'target_production_id': ret['production_order_no'],
|
||||
'target_production_id': productions_reprogram,
|
||||
'apply_time': ret['trigger_time'],
|
||||
'send_time': ret['send_time'],
|
||||
})
|
||||
rework_record_ids_obj = production.programming_record_ids
|
||||
rework_production_id = production.id
|
||||
elif ret['manufacturing_type'] == 'scrap':
|
||||
production.programming_record_ids.create({
|
||||
'number': len(production.programming_record_ids) + 1,
|
||||
@@ -157,7 +172,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
||||
'reason': '报废',
|
||||
'programming_method': ret['programme_way'],
|
||||
'current_programming_count': ret['reprogramming_num'],
|
||||
'target_production_id': ret['production_order_no'],
|
||||
'target_production_id': productions_reprogram,
|
||||
'apply_time': ret['trigger_time'],
|
||||
'send_time': ret['send_time'],
|
||||
})
|
||||
@@ -168,13 +183,44 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
|
||||
'reason': '无效功能刀具',
|
||||
'programming_method': ret['programme_way'],
|
||||
'current_programming_count': ret['reprogramming_num'],
|
||||
'target_production_id': ret['production_order_no'],
|
||||
'target_production_id': productions_reprogram,
|
||||
'apply_time': ret['trigger_time'],
|
||||
'send_time': ret['send_time'],
|
||||
})
|
||||
else:
|
||||
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({
|
||||
'production_ids': productions.ids
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user