修改AGV调度
This commit is contained in:
@@ -13,6 +13,7 @@ class RepeatTaskException(UserError):
|
|||||||
class AgvScheduling(models.Model):
|
class AgvScheduling(models.Model):
|
||||||
_name = 'sf.agv.scheduling'
|
_name = 'sf.agv.scheduling'
|
||||||
_description = 'agv调度'
|
_description = 'agv调度'
|
||||||
|
_order = 'id desc'
|
||||||
|
|
||||||
name = fields.Char('任务单号', index=True, copy=False)
|
name = fields.Char('任务单号', index=True, copy=False)
|
||||||
|
|
||||||
@@ -233,6 +234,7 @@ class AgvScheduling(models.Model):
|
|||||||
for rec in self:
|
for rec in self:
|
||||||
if rec.state != '配送中':
|
if rec.state != '配送中':
|
||||||
return False
|
return False
|
||||||
|
_logger.info('AGV任务调度:完成任务%s' % rec)
|
||||||
rec.state = '已配送'
|
rec.state = '已配送'
|
||||||
rec.task_completion_time = fields.Datetime.now()
|
rec.task_completion_time = fields.Datetime.now()
|
||||||
|
|
||||||
@@ -245,6 +247,7 @@ class AgvScheduling(models.Model):
|
|||||||
for rec in self:
|
for rec in self:
|
||||||
if rec.state != '待下发':
|
if rec.state != '待下发':
|
||||||
return False
|
return False
|
||||||
|
_logger.info('AGV任务调度:下发调度任务,路线为%s' % agv_task_route)
|
||||||
# rec._delivery_avg()
|
# rec._delivery_avg()
|
||||||
# 获取agv任务路线名称
|
# 获取agv任务路线名称
|
||||||
rec.state = '配送中'
|
rec.state = '配送中'
|
||||||
|
|||||||
@@ -40,10 +40,15 @@
|
|||||||
<field name="date_planned_finished" string="计划结束日期" optional="hide"/>
|
<field name="date_planned_finished" string="计划结束日期" optional="hide"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//button[@name='button_start']" position="attributes">
|
<xpath expr="//button[@name='button_start']" position="attributes">
|
||||||
|
<!-- <attribute name="attrs">{'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft',-->
|
||||||
|
<!-- 'done',-->
|
||||||
|
<!-- 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')),-->
|
||||||
|
<!-- ('is_user_working', '!=', False),("user_permissions","=",False),("name","=","CNC加工")]}-->
|
||||||
|
<!-- </attribute>-->
|
||||||
<attribute name="attrs">{'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft',
|
<attribute name="attrs">{'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft',
|
||||||
'done',
|
'done',
|
||||||
'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')),
|
'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')),
|
||||||
('is_user_working', '!=', False),("user_permissions","=",False),("name","=","CNC加工")]}
|
('is_user_working', '!=', False),("user_permissions","=",False),("name","in",("CNC加工","解除装夹"))]}
|
||||||
</attribute>
|
</attribute>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="attributes">
|
<xpath expr="//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="attributes">
|
||||||
@@ -142,8 +147,10 @@
|
|||||||
<!-- attrs="{'invisible': ['|', '|', ('production_state', 'not in', ('pending_processing', 'pending_cam', 'pending_era_cam')), ('state','!=','progress'), ('routing_type', 'not in', ('装夹预调', 'CNC加工', '解除装夹'))]}" -->
|
<!-- attrs="{'invisible': ['|', '|', ('production_state', 'not in', ('pending_processing', 'pending_cam', 'pending_era_cam')), ('state','!=','progress'), ('routing_type', 'not in', ('装夹预调', 'CNC加工', '解除装夹'))]}" -->
|
||||||
<!-- groups="sf_base.group_sf_mrp_user" confirm="是否确认完工"/> -->
|
<!-- groups="sf_base.group_sf_mrp_user" confirm="是否确认完工"/> -->
|
||||||
|
|
||||||
|
<!-- <button name="button_start" type="object" string="开始" class="btn-success" confirm="是否确认开始"-->
|
||||||
|
<!-- attrs="{'invisible': ['|', '|', '|', ('production_state','in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel','to be detected')), ('is_user_working', '!=', False)]}"/>-->
|
||||||
<button name="button_start" type="object" string="开始" class="btn-success" confirm="是否确认开始"
|
<button name="button_start" type="object" string="开始" class="btn-success" confirm="是否确认开始"
|
||||||
attrs="{'invisible': ['|', '|', '|', ('production_state','in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel','to be detected')), ('is_user_working', '!=', False)]}"/>
|
attrs="{'invisible': ['|', '|', '|', '|', ('routing_type', '=', '解除装夹'), ('production_state','in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel','to be detected')), ('is_user_working', '!=', False)]}"/>
|
||||||
<button name="button_pending" type="object" string="暂停" class="btn-warning"
|
<button name="button_pending" type="object" string="暂停" class="btn-warning"
|
||||||
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False)]}"/>
|
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False)]}"/>
|
||||||
<button name="button_finish" type="object" string="完成" class="btn-success" confirm="是否确认完工"
|
<button name="button_finish" type="object" string="完成" class="btn-success" confirm="是否确认完工"
|
||||||
@@ -164,8 +171,8 @@
|
|||||||
<!-- context="{'default_workcenter_id': workcenter_id}" class="btn-danger" -->
|
<!-- context="{'default_workcenter_id': workcenter_id}" class="btn-danger" -->
|
||||||
<!-- groups="sf_base.group_sf_mrp_user" -->
|
<!-- groups="sf_base.group_sf_mrp_user" -->
|
||||||
<!-- attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '!=', 'blocked'),('state','=','done')]}"/> -->
|
<!-- attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '!=', 'blocked'),('state','=','done')]}"/> -->
|
||||||
<button name="button_workpiece_delivery" type="object" string="工件配送" class="btn-primary"
|
<!-- <button name="button_workpiece_delivery" type="object" string="工件配送" class="btn-primary"-->
|
||||||
attrs="{'invisible': ['|','|','|','|',('routing_type','!=','装夹预调'),('is_delivery','=',True),('state','!=','done'),('is_rework','=',True),'&',('rfid_code','in',['',False]),('state','=','done')]}"/>
|
<!-- attrs="{'invisible': ['|','|','|','|',('routing_type','!=','装夹预调'),('is_delivery','=',True),('state','!=','done'),('is_rework','=',True),'&',('rfid_code','in',['',False]),('state','=','done')]}"/>-->
|
||||||
<button name="button_rework_pre" type="object" string="返工"
|
<button name="button_rework_pre" type="object" string="返工"
|
||||||
class="btn-primary"
|
class="btn-primary"
|
||||||
attrs="{'invisible': ['|','|',('routing_type','!=','装夹预调'),('state','!=','progress'),('is_rework','=',True)]}"/>
|
attrs="{'invisible': ['|','|',('routing_type','!=','装夹预调'),('state','!=','progress'),('is_rework','=',True)]}"/>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form class="no_auto_focus">
|
<form class="no_auto_focus">
|
||||||
<sheet>
|
<sheet>
|
||||||
<!-- <field name="delivery_ids" invisible="True"/>-->
|
<field name="delivery_ids" invisible="True"/>
|
||||||
<field name="workorder_ids" invisible="True"/>
|
<field name="workorder_ids" invisible="True"/>
|
||||||
<field name="delivery_type" invisible="True"/>
|
<field name="delivery_type" invisible="True"/>
|
||||||
<field name="confirm_button" invisible="1"/>
|
<field name="confirm_button" invisible="1"/>
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ class WorkpieceDeliveryWizard(models.TransientModel):
|
|||||||
_inherit = ["barcodes.barcode_events_mixin"]
|
_inherit = ["barcodes.barcode_events_mixin"]
|
||||||
_description = '工件配送'
|
_description = '工件配送'
|
||||||
|
|
||||||
# delivery_ids = fields.Many2many('sf.workpiece.delivery', string='配送')
|
|
||||||
rfid_code = fields.Char('rfid码')
|
rfid_code = fields.Char('rfid码')
|
||||||
delivery_ids = fields.Many2many('sf.workpiece.delivery', string='配送单')
|
delivery_ids = fields.Many2many('sf.workpiece.delivery', string='配送单')
|
||||||
workorder_ids = fields.Many2many('mrp.workorder', string='工单')
|
workorder_ids = fields.Many2many('mrp.workorder', string='工单')
|
||||||
@@ -157,6 +156,12 @@ class WorkpieceDeliveryWizard(models.TransientModel):
|
|||||||
workorder = self.env['mrp.workorder'].search(
|
workorder = self.env['mrp.workorder'].search(
|
||||||
[('production_line_state', '=', '待上产线'), ('rfid_code', '=', barcode),
|
[('production_line_state', '=', '待上产线'), ('rfid_code', '=', barcode),
|
||||||
('state', '=', 'done')])
|
('state', '=', 'done')])
|
||||||
|
# 找到对应的配送单
|
||||||
|
delivery = self.env['sf.workpiece.delivery'].search(
|
||||||
|
[('type', '=', '上产线'), ('rfid_code', '=', barcode),
|
||||||
|
('status', '=', '待下发')])
|
||||||
|
if delivery:
|
||||||
|
self.delivery_ids |= delivery
|
||||||
elif delivery_type == '运送空料架':
|
elif delivery_type == '运送空料架':
|
||||||
workorder = self.env['mrp.workorder'].search(
|
workorder = self.env['mrp.workorder'].search(
|
||||||
[('routing_type', '=', '解除装夹'), ('rfid_code', '=', barcode),
|
[('routing_type', '=', '解除装夹'), ('rfid_code', '=', barcode),
|
||||||
|
|||||||
Reference in New Issue
Block a user