Accept Merge Request #1089: (feature/优化重新下发程序 -> develop)
Merge Request: 优化重新下发程序 Created By: @杨金灵 Reviewed By: @马广威 Approved By: @马广威 Accepted By: @杨金灵 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1089?initial=true
This commit is contained in:
@@ -19,6 +19,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<field name="button_compensation_state" attrs='{"invisible": ["|",
|
<field name="button_compensation_state" attrs='{"invisible": ["|",
|
||||||
("state","!=","progress"),("user_permissions","=",False)]}'/>
|
("state","!=","progress"),("user_permissions","=",False)]}'/>
|
||||||
|
<!-- <span> </span>-->
|
||||||
|
<button name="button_send_program_again" type="object" string="重新下发NC程序"
|
||||||
|
class="btn-primary"
|
||||||
|
confirm="是否确认重新下发NC程序?"
|
||||||
|
attrs="{'invisible': ['|', '|', '|',('routing_type','!=','装夹预调'),('state','in',['done', 'cancel',
|
||||||
|
'progress']),('processing_drawing','=',False),('is_send_program_again','=',True)]}"/>
|
||||||
<!-- <button string="一键补偿" name="compensation" type="object" confirm="是否确认下发补偿"-->
|
<!-- <button string="一键补偿" name="compensation" type="object" confirm="是否确认下发补偿"-->
|
||||||
<!-- class="btn-primary" attrs='{"invisible": ["|",-->
|
<!-- class="btn-primary" attrs='{"invisible": ["|",-->
|
||||||
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
|
<!-- ("state","!=","progress"),("user_permissions","=",False)]}'/>-->
|
||||||
|
|||||||
@@ -1090,8 +1090,15 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
r = r.json()
|
r = r.json()
|
||||||
result = json.loads(r['result'])
|
result = json.loads(r['result'])
|
||||||
if result['status'] == 1:
|
if result['status'] == 1:
|
||||||
self.write({'is_send_program_again': True})
|
productions = self.env['mrp.production'].search(
|
||||||
self.production_id.write({'work_state': '编程中', 'programming_state': '编程中'})
|
[('programming_no', '=', self.production_id.programming_no), ('programming_state', '=', '已编程')])
|
||||||
|
if productions:
|
||||||
|
workorder = productions.workorder_ids.filtered(
|
||||||
|
lambda ap: ap.routing_type in ['装夹预调', 'CNC加工'] and ap.state not in ['done', 'cancel',
|
||||||
|
'progress'])
|
||||||
|
if workorder:
|
||||||
|
workorder.write({'is_send_program_again': True})
|
||||||
|
productions.write({'work_state': '编程中', 'programming_state': '编程中'})
|
||||||
else:
|
else:
|
||||||
raise UserError(result['message'])
|
raise UserError(result['message'])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -64,7 +64,8 @@
|
|||||||
<xpath expr="//field[@name='state']" position="attributes">
|
<xpath expr="//field[@name='state']" position="attributes">
|
||||||
<!-- <attribute name="statusbar_visible">draft,confirmed,progress,pending_processing,completed,done -->
|
<!-- <attribute name="statusbar_visible">draft,confirmed,progress,pending_processing,completed,done -->
|
||||||
<!-- </attribute> -->
|
<!-- </attribute> -->
|
||||||
<attribute name="statusbar_visible">progress,pending_cam,pending_processing,pending_era_cam,completed,done
|
<attribute name="statusbar_visible">
|
||||||
|
progress,pending_cam,pending_processing,pending_era_cam,completed,done
|
||||||
</attribute>
|
</attribute>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
||||||
@@ -281,7 +282,7 @@
|
|||||||
<field name="routing_type" invisible="True"/>
|
<field name="routing_type" invisible="True"/>
|
||||||
<button name="button_start" type="object" string="开始" class="btn-success"
|
<button name="button_start" type="object" string="开始" class="btn-success"
|
||||||
attrs="{'invisible': ['|', '|', '|','|', ('production_state','in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')), ('is_user_working', '!=', False), ('routing_type', '=', 'CNC加工')]}"
|
attrs="{'invisible': ['|', '|', '|','|', ('production_state','in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')), ('is_user_working', '!=', False), ('routing_type', '=', 'CNC加工')]}"
|
||||||
groups="sf_base.group_sf_mrp_user"/>
|
groups="sf_base.group_sf_mrp_user" confirm="是否确认开始?"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//tree//button[@name='button_pending']" position="replace">
|
<xpath expr="//tree//button[@name='button_pending']" position="replace">
|
||||||
<button name="button_pending" type="object" string="Pause" class="btn-warning"
|
<button name="button_pending" type="object" string="Pause" class="btn-warning"
|
||||||
@@ -291,7 +292,8 @@
|
|||||||
<xpath expr="//tree//button[@name='button_finish']" position="replace">
|
<xpath expr="//tree//button[@name='button_finish']" position="replace">
|
||||||
<button name="button_finish" type="object" string="Done" class="btn-success"
|
<button name="button_finish" type="object" string="Done" class="btn-success"
|
||||||
attrs="{'invisible': ['|', '|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False), ('routing_type', '=', 'CNC加工')]}"
|
attrs="{'invisible': ['|', '|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False), ('routing_type', '=', 'CNC加工')]}"
|
||||||
groups="sf_base.group_sf_mrp_user"/>
|
groups="sf_base.group_sf_mrp_user"
|
||||||
|
confirm="是否确认完成?"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//tree//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="replace">
|
<xpath expr="//tree//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="replace">
|
||||||
<button name="%(mrp.act_mrp_block_workcenter_wo)d" type="action" string="Block"
|
<button name="%(mrp.act_mrp_block_workcenter_wo)d" type="action" string="Block"
|
||||||
@@ -322,7 +324,7 @@
|
|||||||
<xpath expr="//tree//button[@name='button_finish']" position="replace">
|
<xpath expr="//tree//button[@name='button_finish']" position="replace">
|
||||||
<button name="button_finish" type="object" string="完成" class="btn-success"
|
<button name="button_finish" type="object" string="完成" class="btn-success"
|
||||||
attrs="{'invisible': ['|', '|','|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False), ('routing_type', '=', 'CNC加工')]}"
|
attrs="{'invisible': ['|', '|','|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False), ('routing_type', '=', 'CNC加工')]}"
|
||||||
groups="sf_base.group_sf_mrp_user"/>
|
groups="sf_base.group_sf_mrp_user" confirm="是否确认完成?"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//tree//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="replace">
|
<xpath expr="//tree//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="replace">
|
||||||
<button name="%(mrp.act_mrp_block_workcenter_wo)d" type="action" string="阻塞"
|
<button name="%(mrp.act_mrp_block_workcenter_wo)d" type="action" string="阻塞"
|
||||||
|
|||||||
@@ -162,7 +162,8 @@
|
|||||||
attrs="{'invisible': ['|','|',('routing_type','!=','装夹预调'),('is_delivery','=',True),('state','!=','done')]}"/>
|
attrs="{'invisible': ['|','|',('routing_type','!=','装夹预调'),('is_delivery','=',True),('state','!=','done')]}"/>
|
||||||
<button name="button_send_program_again" type="object" string="重新下发NC程序" class="btn-primary"
|
<button name="button_send_program_again" type="object" string="重新下发NC程序" class="btn-primary"
|
||||||
confirm="是否确认重新下发NC程序?"
|
confirm="是否确认重新下发NC程序?"
|
||||||
attrs="{'invisible': ['|', '|', '|',('routing_type','!=','装夹预调'),('state','not in',['ready','progress']),('processing_drawing','=',False),('is_send_program_again','=',True)]}"/>
|
attrs="{'invisible': ['|', '|', '|',('routing_type','!=','装夹预调'),('state','in',['done', 'cancel',
|
||||||
|
'progress']),('cnc_worksheet','=',False),('is_send_program_again','=',True)]}"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//page[1]" position="before">
|
<xpath expr="//page[1]" position="before">
|
||||||
<page string="开料要求" attrs='{"invisible": [("routing_type","!=","切割")]}'>
|
<page string="开料要求" attrs='{"invisible": [("routing_type","!=","切割")]}'>
|
||||||
|
|||||||
@@ -72,7 +72,8 @@ class Sf_Mrs_Connect(http.Controller):
|
|||||||
panel_file_path = os.path.join(program_path_tmp_panel, file)
|
panel_file_path = os.path.join(program_path_tmp_panel, file)
|
||||||
logging.info('panel_file_path:%s' % panel_file_path)
|
logging.info('panel_file_path:%s' % panel_file_path)
|
||||||
cnc_workorder.write(
|
cnc_workorder.write(
|
||||||
{'cnc_ids': cnc_workorder.cnc_ids.sudo()._json_cnc_processing(panel, ret),
|
{'is_send_program_again': False,
|
||||||
|
'cnc_ids': cnc_workorder.cnc_ids.sudo()._json_cnc_processing(panel, ret),
|
||||||
'cmm_ids': cnc_workorder.cmm_ids.sudo()._json_cmm_program(panel, ret),
|
'cmm_ids': cnc_workorder.cmm_ids.sudo()._json_cmm_program(panel, ret),
|
||||||
'cnc_worksheet': base64.b64encode(open(panel_file_path, 'rb').read())})
|
'cnc_worksheet': base64.b64encode(open(panel_file_path, 'rb').read())})
|
||||||
pre_workorder = production.workorder_ids.filtered(
|
pre_workorder = production.workorder_ids.filtered(
|
||||||
@@ -80,7 +81,8 @@ class Sf_Mrs_Connect(http.Controller):
|
|||||||
'cancel'] and ap.processing_panel == panel)
|
'cancel'] and ap.processing_panel == panel)
|
||||||
if pre_workorder:
|
if pre_workorder:
|
||||||
pre_workorder.write(
|
pre_workorder.write(
|
||||||
{'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())})
|
{'is_send_program_again': False,
|
||||||
|
'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())})
|
||||||
productions.write({'programming_state': '已编程', 'work_state': '已编程'})
|
productions.write({'programming_state': '已编程', 'work_state': '已编程'})
|
||||||
cnc_program_ids = [item.id for item in productions]
|
cnc_program_ids = [item.id for item in productions]
|
||||||
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
|
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
|
||||||
|
|||||||
Reference in New Issue
Block a user