Accept Merge Request #1161: (feature/修复返工(CNC加工) -> develop)
Merge Request: 修复返工(CNC加工) Created By: @杨金灵 Reviewed By: @马广威 Approved By: @马广威 Accepted By: @杨金灵 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1161?initial=true
This commit is contained in:
@@ -242,7 +242,7 @@ class Manufacturing_Connect(http.Controller):
|
|||||||
logging.info('button_Work_End error:%s' % e)
|
logging.info('button_Work_End error:%s' % e)
|
||||||
return json.JSONEncoder().encode(res)
|
return json.JSONEncoder().encode(res)
|
||||||
|
|
||||||
@http.route('/AutoDeviceApi/PartQualityInspect', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
|
@http.route('/AutoDeviceApi/PartQualityInspect', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
|
||||||
cors="*")
|
cors="*")
|
||||||
def PartQualityInspect(self, **kw):
|
def PartQualityInspect(self, **kw):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ class MrpProduction(models.Model):
|
|||||||
if rp.programming_no == item['programming_no']:
|
if rp.programming_no == item['programming_no']:
|
||||||
rp.write({'programming_state': '已编程未下发' if item[
|
rp.write({'programming_state': '已编程未下发' if item[
|
||||||
'programming_state'] == '已编程' else '编程中'})
|
'programming_state'] == '已编程' else '编程中'})
|
||||||
logging.info('rp:' % rp.name)
|
logging.info('rp:%s' % rp.name)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return item
|
return item
|
||||||
@@ -800,11 +800,7 @@ class MrpProduction(models.Model):
|
|||||||
'default_production_id': self.id,
|
'default_production_id': self.id,
|
||||||
'default_reprogramming_num': cloud_programming['reprogramming_num'],
|
'default_reprogramming_num': cloud_programming['reprogramming_num'],
|
||||||
'default_programming_state': cloud_programming['programming_state'],
|
'default_programming_state': cloud_programming['programming_state'],
|
||||||
'default_is_reprogramming': False if (cloud_programming['programming_state'] in ['编程中',
|
'default_is_reprogramming': False if cloud_programming['programming_state'] not in ['已下发'] else True
|
||||||
'待编程'] and self.programming_state in [
|
|
||||||
'编程中', '已编程'])
|
|
||||||
or (cloud_programming['programming_state'] in [
|
|
||||||
'已编程'] and self.programming_state in ['已编程未下发']) else True
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -829,6 +825,8 @@ class MrpProduction(models.Model):
|
|||||||
program_to_production_names[programming_no] = [production.name for production in program_production]
|
program_to_production_names[programming_no] = [production.name for production in program_production]
|
||||||
for production in self:
|
for production in self:
|
||||||
if production.programming_no in program_to_production_names:
|
if production.programming_no in program_to_production_names:
|
||||||
|
productions_not_delivered = self.env['mrp.production'].search(
|
||||||
|
[('programming_no', '=', production.programming_no), ('programming_state', '=', '已编程未下发')])
|
||||||
rework_workorder = production.workorder_ids.filtered(lambda m: m.state == 'rework')
|
rework_workorder = production.workorder_ids.filtered(lambda m: m.state == 'rework')
|
||||||
if rework_workorder:
|
if rework_workorder:
|
||||||
for rework_item in rework_workorder:
|
for rework_item in rework_workorder:
|
||||||
@@ -837,7 +835,8 @@ class MrpProduction(models.Model):
|
|||||||
'pending'] and m1.processing_panel == rework_item.processing_panel and m1.routing_type == 'CNC加工')
|
'pending'] and m1.processing_panel == rework_item.processing_panel and m1.routing_type == 'CNC加工')
|
||||||
if not pending_workorder.cnc_ids:
|
if not pending_workorder.cnc_ids:
|
||||||
production.get_new_program(rework_item.processing_panel)
|
production.get_new_program(rework_item.processing_panel)
|
||||||
production.write({'state': 'progress', 'programming_state': '已编程', 'is_rework': False})
|
# production.write({'state': 'progress', 'programming_state': '已编程', 'is_rework': False})
|
||||||
|
productions_not_delivered.write({'programming_state': '已编程', 'is_rework': False})
|
||||||
|
|
||||||
# 从cloud获取重新编程过的最新程序
|
# 从cloud获取重新编程过的最新程序
|
||||||
def get_new_program(self, processing_panel):
|
def get_new_program(self, processing_panel):
|
||||||
|
|||||||
@@ -741,9 +741,15 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
re_work = self.env['mrp.workorder'].search([('production_id', '=', workorder.production_id.id),
|
re_work = self.env['mrp.workorder'].search([('production_id', '=', workorder.production_id.id),
|
||||||
('processing_panel', '=', workorder.processing_panel),
|
('processing_panel', '=', workorder.processing_panel),
|
||||||
('is_rework', '=', True), ('state', 'in', ['done', 'rework'])])
|
('is_rework', '=', True), ('state', 'in', ['done', 'rework'])])
|
||||||
|
cnc_workorder = self.env['mrp.workorder'].search(
|
||||||
|
[('production_id', '=', workorder.production_id.id),
|
||||||
|
('processing_panel', '=', workorder.processing_panel),
|
||||||
|
('routing_type', '=', 'CNC加工'), ('state', 'in', ['done', 'rework']),
|
||||||
|
('test_results', '=', '返工')])
|
||||||
if workorder.state not in ['cancel', 'progress', 'rework']:
|
if workorder.state not in ['cancel', 'progress', 'rework']:
|
||||||
if workorder.production_id.state == 'rework':
|
if workorder.production_id.state == 'rework':
|
||||||
logging.info('len(re_work):%s' % len(re_work))
|
logging.info('len(re_work):%s' % len(re_work))
|
||||||
|
logging.info('len(cnc_workorder):%s' % len(cnc_workorder))
|
||||||
logging.info('工序:%s' % workorder.routing_type)
|
logging.info('工序:%s' % workorder.routing_type)
|
||||||
logging.info('状态:%s' % workorder.state)
|
logging.info('状态:%s' % workorder.state)
|
||||||
logging.info('is_rework:%s' % workorder.is_rework)
|
logging.info('is_rework:%s' % workorder.is_rework)
|
||||||
@@ -751,31 +757,37 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
logging.info('面:%s' % workorder.processing_panel)
|
logging.info('面:%s' % workorder.processing_panel)
|
||||||
logging.info('编程状态:%s' % workorder.production_id.programming_state)
|
logging.info('编程状态:%s' % workorder.production_id.programming_state)
|
||||||
logging.info('制造状态:%s' % workorder.production_id.state)
|
logging.info('制造状态:%s' % workorder.production_id.state)
|
||||||
if re_work:
|
if workorder.routing_type == '装夹预调' and workorder.state not in ['done', 'rework',
|
||||||
if workorder.routing_type == '装夹预调' and workorder.state not in ['done', 'rework',
|
'cancel']:
|
||||||
'cancel'] and workorder.is_rework is False:
|
# # 有返工工单
|
||||||
if workorder.production_id.programming_state == '已编程':
|
# if re_work:
|
||||||
workorder.state = 'ready'
|
# 新工单
|
||||||
|
if workorder.is_rework is False:
|
||||||
|
if workorder.production_id.programming_state == '已编程' and workorder.production_id.is_rework is False:
|
||||||
|
if re_work:
|
||||||
|
workorder.state = 'ready'
|
||||||
else:
|
else:
|
||||||
if workorder.production_id.is_rework is True:
|
if workorder.production_id.is_rework is True:
|
||||||
workorder.state = 'waiting'
|
if re_work or cnc_workorder:
|
||||||
if workorder.routing_type == 'CNC加工' and workorder.state not in ['done', 'rework', 'cancel']:
|
workorder.state = 'waiting'
|
||||||
pre_workorder = self.env['mrp.workorder'].search(
|
|
||||||
[('production_id', '=', workorder.production_id.id),
|
elif workorder.routing_type == 'CNC加工' and workorder.state not in ['done', 'rework', 'cancel']:
|
||||||
('processing_panel', '=', workorder.processing_panel),
|
pre_workorder = self.env['mrp.workorder'].search(
|
||||||
('routing_type', '=', '装夹预调'), ('state', '=', 'done')])
|
[('production_id', '=', workorder.production_id.id),
|
||||||
if pre_workorder:
|
('processing_panel', '=', workorder.processing_panel),
|
||||||
workorder.state = 'waiting'
|
('routing_type', '=', '装夹预调'), ('state', '=', 'done')])
|
||||||
if workorder.routing_type == '解除装夹' and workorder.state not in ['done', 'rework', 'cancel']:
|
if pre_workorder:
|
||||||
cnc_workorder = self.env['mrp.workorder'].search(
|
if re_work:
|
||||||
[('production_id', '=', workorder.production_id.id),
|
|
||||||
('processing_panel', '=', workorder.processing_panel),
|
|
||||||
('routing_type', '=', 'CNC加工'), ('state', '=', 'done'),
|
|
||||||
('test_results', '=', '返工')])
|
|
||||||
if cnc_workorder:
|
|
||||||
workorder.state = 'waiting'
|
workorder.state = 'waiting'
|
||||||
|
elif workorder.routing_type == '解除装夹' and workorder.state not in ['done', 'rework', 'cancel']:
|
||||||
|
if cnc_workorder:
|
||||||
|
workorder.state = 'waiting'
|
||||||
|
# else:
|
||||||
|
# if workorder.production_id.is_rework is True:
|
||||||
|
# workorder.state = 'waiting'
|
||||||
elif workorder.production_id.state == 'progress':
|
elif workorder.production_id.state == 'progress':
|
||||||
logging.info('len(re_work):%s' % len(re_work))
|
logging.info('len(re_work):%s' % len(re_work))
|
||||||
|
logging.info('len(cnc_workorder):%s' % len(cnc_workorder))
|
||||||
logging.info('工序:%s' % workorder.routing_type)
|
logging.info('工序:%s' % workorder.routing_type)
|
||||||
logging.info('状态:%s' % workorder.state)
|
logging.info('状态:%s' % workorder.state)
|
||||||
logging.info('is_rework:%s' % workorder.is_rework)
|
logging.info('is_rework:%s' % workorder.is_rework)
|
||||||
|
|||||||
@@ -20,13 +20,13 @@
|
|||||||
style='color:red;'/>次,且当前编程状态为
|
style='color:red;'/>次,且当前编程状态为
|
||||||
<field name="programming_state" string=""
|
<field name="programming_state" string=""
|
||||||
decoration-info="programming_state == '待编程'"
|
decoration-info="programming_state == '待编程'"
|
||||||
decoration-success="programming_state == '已编程'"
|
decoration-success="programming_state == '已下发'"
|
||||||
decoration-warning="programming_state =='编程中'"
|
decoration-warning="programming_state =='编程中'"
|
||||||
decoration-danger="programming_state =='已编程未下发'" readonly="1"/>
|
decoration-danger="programming_state =='已编程'" readonly="1"/>
|
||||||
</div>
|
</div>
|
||||||
<group>
|
<group>
|
||||||
<field name="is_reprogramming"
|
<field name="is_reprogramming"
|
||||||
attrs='{"invisible": [("routing_type","in",["装夹预调","CNC加工"])],"readonly": [("programming_state","in",["编程中","已编程未下发"])]}'/>
|
attrs='{"invisible": [("routing_type","in",["装夹预调","CNC加工"])],"readonly": [("is_reprogramming","=",False)]}'/>
|
||||||
<field name="rework_reason"
|
<field name="rework_reason"
|
||||||
attrs='{"invisible": [("routing_type","not in",["装夹预调","CNC加工"])],"required": [("routing_type","in",["装夹预调"])]}'/>
|
attrs='{"invisible": [("routing_type","not in",["装夹预调","CNC加工"])],"required": [("routing_type","in",["装夹预调"])]}'/>
|
||||||
<field name="detailed_reason"
|
<field name="detailed_reason"
|
||||||
|
|||||||
Reference in New Issue
Block a user