工件配送添加sns
This commit is contained in:
@@ -1318,17 +1318,18 @@ class SfWorkOrderBarcodes(models.Model):
|
|||||||
|
|
||||||
class WorkPieceDelivery(models.Model):
|
class WorkPieceDelivery(models.Model):
|
||||||
_name = "sf.workpiece.delivery"
|
_name = "sf.workpiece.delivery"
|
||||||
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||||
_description = '工件配送'
|
_description = '工件配送'
|
||||||
|
|
||||||
name = fields.Char('单据编号')
|
name = fields.Char('单据编码')
|
||||||
workorder_id = fields.Many2one('mrp.workorder', string='工单', readonly=True)
|
workorder_id = fields.Many2one('mrp.workorder', string='工单', readonly=True)
|
||||||
workorder_state = fields.Selection(related='workorder_id.state', string='工单状态')
|
workorder_state = fields.Selection(related='workorder_id.state', string='工单状态')
|
||||||
rfid_code = fields.Char(related='workorder_id.rfid_code', string='rfid码', store=True)
|
rfid_code = fields.Char(related='workorder_id.rfid_code', string='rfid码', store=True)
|
||||||
production_id = fields.Many2one('mrp.production', string='制造订单号', readonly=True)
|
production_id = fields.Many2one('mrp.production', string='制造订单号', readonly=True)
|
||||||
production_line_id = fields.Many2one('sf.production.line', string='目的生产线')
|
production_line_id = fields.Many2one('sf.production.line', string='目的生产线', tracking=True)
|
||||||
plan_start_processing_time = fields.Datetime('计划开始加工时间', readonly=True)
|
plan_start_processing_time = fields.Datetime('计划开始加工时间', readonly=True)
|
||||||
|
|
||||||
route_id = fields.Many2one('sf.agv.task.route', '任务路线')
|
route_id = fields.Many2one('sf.agv.task.route', '任务路线', tracking=True)
|
||||||
feeder_station_start_id = fields.Many2one('sf.agv.site', '起点接驳站')
|
feeder_station_start_id = fields.Many2one('sf.agv.site', '起点接驳站')
|
||||||
feeder_station_destination_id = fields.Many2one('sf.agv.site', '目的接驳站')
|
feeder_station_destination_id = fields.Many2one('sf.agv.site', '目的接驳站')
|
||||||
task_delivery_time = fields.Datetime('任务下发时间')
|
task_delivery_time = fields.Datetime('任务下发时间')
|
||||||
@@ -1337,8 +1338,9 @@ class WorkPieceDelivery(models.Model):
|
|||||||
[('上产线', '上产线'), ('下产线', '下产线'), ('运送空料架', '运送空料架')], string='类型')
|
[('上产线', '上产线'), ('下产线', '下产线'), ('运送空料架', '运送空料架')], string='类型')
|
||||||
delivery_duration = fields.Float('配送时长', compute='_compute_delivery_duration')
|
delivery_duration = fields.Float('配送时长', compute='_compute_delivery_duration')
|
||||||
status = fields.Selection(
|
status = fields.Selection(
|
||||||
[('待下发', '待下发'), ('待配送', '待配送'), ('已配送', '已配送')], string='状态', default='待下发')
|
[('待下发', '待下发'), ('待配送', '待配送'), ('已配送', '已配送')], string='状态', default='待下发',
|
||||||
is_cnc_program_down = fields.Boolean('程序是否下发', default=False)
|
tracking=True)
|
||||||
|
is_cnc_program_down = fields.Boolean('程序是否下发', default=False, tracking=True)
|
||||||
is_manual_work = fields.Boolean('人工操作', default=False)
|
is_manual_work = fields.Boolean('人工操作', default=False)
|
||||||
active = fields.Boolean(string="有效", default=True)
|
active = fields.Boolean(string="有效", default=True)
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import os
|
|||||||
from odoo import models, fields, api, _
|
from odoo import models, fields, api, _
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
from odoo.modules import get_resource_path
|
from odoo.modules import get_resource_path
|
||||||
from OCC.Extend.DataExchange import read_step_file
|
# from OCC.Extend.DataExchange import read_step_file
|
||||||
from OCC.Extend.DataExchange import write_stl_file
|
# from OCC.Extend.DataExchange import write_stl_file
|
||||||
|
|
||||||
|
|
||||||
class ResProductMo(models.Model):
|
class ResProductMo(models.Model):
|
||||||
|
|||||||
@@ -609,7 +609,7 @@
|
|||||||
<field name="name">工件配送</field>
|
<field name="name">工件配送</field>
|
||||||
<field name="model">sf.workpiece.delivery</field>
|
<field name="model">sf.workpiece.delivery</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="工件配送" editable="bottom" class="center" create="0" delete="0">
|
<tree string="工件配送" class="center" create="0" delete="0">
|
||||||
<header>
|
<header>
|
||||||
<button name="button_delivery" type="object" string="配送" class="oe_highlight"/>
|
<button name="button_delivery" type="object" string="配送" class="oe_highlight"/>
|
||||||
</header>
|
</header>
|
||||||
@@ -617,6 +617,7 @@
|
|||||||
decoration-success="status == '已配送'"
|
decoration-success="status == '已配送'"
|
||||||
decoration-warning="status == '待下发'"
|
decoration-warning="status == '待下发'"
|
||||||
decoration-danger="status == '待配送'"/>
|
decoration-danger="status == '待配送'"/>
|
||||||
|
<field name="name"/>
|
||||||
<field name="production_id"/>
|
<field name="production_id"/>
|
||||||
<field name="type" readonly="1"/>
|
<field name="type" readonly="1"/>
|
||||||
<field name="production_line_id" options="{'no_create': True}" readonly="1"/>
|
<field name="production_line_id" options="{'no_create': True}" readonly="1"/>
|
||||||
@@ -633,13 +634,58 @@
|
|||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="sf_workpiece_delivery_form" model="ir.ui.view">
|
||||||
|
<field name="name">工件配送</field>
|
||||||
|
<field name="model">sf.workpiece.delivery</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="工件配送" create="0" delete="0">
|
||||||
|
<header>
|
||||||
|
<field name="status" widget="statusbar"/>
|
||||||
|
<button name="button_delivery" type="object" string="配送" class="oe_highlight"
|
||||||
|
attrs="{'invisible': [('status', '!=', '待下发')]}"/>
|
||||||
|
</header>
|
||||||
|
<sheet>
|
||||||
|
<div class="oe_title">
|
||||||
|
<h1>
|
||||||
|
<field name="name" readonly="1"/>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<group>
|
||||||
|
<group string="基本信息">
|
||||||
|
<field name="production_id"/>
|
||||||
|
<field name="type" readonly="1"/>
|
||||||
|
<field name="production_line_id" options="{'no_create': True}" readonly="1"/>
|
||||||
|
<field name="is_cnc_program_down" readonly="1"/>
|
||||||
|
<!-- <field name="rfid_code"/>-->
|
||||||
|
</group>
|
||||||
|
<group string="配送信息">
|
||||||
|
<field name="route_id" options="{'no_create': True}"
|
||||||
|
domain="[('route_type','in',['上产线','下产线'])]"/>
|
||||||
|
<field name="feeder_station_start_id" readonly="1" force_save="1"/>
|
||||||
|
<field name="feeder_station_destination_id" readonly="1" force_save="1"/>
|
||||||
|
<field name="task_delivery_time" readonly="1"/>
|
||||||
|
<field name="task_completion_time" readonly="1"/>
|
||||||
|
<field name="delivery_duration" widget="float_time"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
<div class="oe_chatter">
|
||||||
|
<field name="message_follower_ids"/>
|
||||||
|
<field name="activity_ids"/>
|
||||||
|
<field name="message_ids" options="{'post_refresh': 'recipients'}"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="sf_workpiece_delivery_search" model="ir.ui.view">
|
<record id="sf_workpiece_delivery_search" model="ir.ui.view">
|
||||||
<field name="name">工件配送</field>
|
<field name="name">工件配送</field>
|
||||||
<field name="model">sf.workpiece.delivery</field>
|
<field name="model">sf.workpiece.delivery</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<search string="工件配送">
|
<search string="工件配送">
|
||||||
<filter string="上产线" name="on_up" domain="[('type', '=', '上产线')]"/>
|
<filter name="status" string="待下发" domain="[('status', 'in', ['待下发','待配送'])]"/>
|
||||||
<filter string="下产线" name="on_down" domain="[('type', '=', '下产线' )]"/>
|
<filter name="status" string="待配送" domain="[('status', 'in', ['待下发','待配送'])]"/>
|
||||||
|
<filter name="status" string="已配送" domain="[('status', 'in', ['待下发','待配送'])]"/>
|
||||||
<field name="rfid_code"/>
|
<field name="rfid_code"/>
|
||||||
<field name="production_id"/>
|
<field name="production_id"/>
|
||||||
<field name="feeder_station_start_id"/>
|
<field name="feeder_station_start_id"/>
|
||||||
@@ -649,6 +695,9 @@
|
|||||||
<field name="task_completion_time"/>
|
<field name="task_completion_time"/>
|
||||||
<field name="delivery_duration"/>
|
<field name="delivery_duration"/>
|
||||||
<field name="status"/>
|
<field name="status"/>
|
||||||
|
<group expand="0" string="Group By">
|
||||||
|
<filter string="状态" name="status" domain="[]" context="{'group_by': 'status'}"/>
|
||||||
|
</group>
|
||||||
<searchpanel>
|
<searchpanel>
|
||||||
<field name="production_line_id" icon="fa-building" enable_counters="1"/>
|
<field name="production_line_id" icon="fa-building" enable_counters="1"/>
|
||||||
<field name="status" icon="fa-building" enable_counters="1"/>
|
<field name="status" icon="fa-building" enable_counters="1"/>
|
||||||
@@ -662,7 +711,7 @@
|
|||||||
<field name="res_model">sf.workpiece.delivery</field>
|
<field name="res_model">sf.workpiece.delivery</field>
|
||||||
<field name="search_view_id" ref="sf_workpiece_delivery_search"/>
|
<field name="search_view_id" ref="sf_workpiece_delivery_search"/>
|
||||||
<field name="context">{'search_default_on_up':1}</field>
|
<field name="context">{'search_default_on_up':1}</field>
|
||||||
<field name="view_mode">tree,search</field>
|
<field name="view_mode">tree,form</field>
|
||||||
<field name="domain">
|
<field name="domain">
|
||||||
[('type','in',['上产线','下产线']),('workorder_state','=','done'),('is_manual_work','=',false)]
|
[('type','in',['上产线','下产线']),('workorder_state','=','done'),('is_manual_work','=',false)]
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ from datetime import datetime
|
|||||||
import requests
|
import requests
|
||||||
from odoo import http
|
from odoo import http
|
||||||
from odoo.http import request
|
from odoo.http import request
|
||||||
from OCC.Extend.DataExchange import read_step_file
|
# from OCC.Extend.DataExchange import read_step_file
|
||||||
from OCC.Extend.DataExchange import write_stl_file
|
# from OCC.Extend.DataExchange import write_stl_file
|
||||||
from odoo import models, fields, api
|
from odoo import models, fields, api
|
||||||
from odoo.modules import get_resource_path
|
from odoo.modules import get_resource_path
|
||||||
from odoo.exceptions import ValidationError, UserError
|
from odoo.exceptions import ValidationError, UserError
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import os
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from stl import mesh
|
from stl import mesh
|
||||||
# from OCC.Core.GProp import GProp_GProps
|
# from OCC.Core.GProp import GProp_GProps
|
||||||
from OCC.Extend.DataExchange import read_step_file
|
# from OCC.Extend.DataExchange import read_step_file
|
||||||
from OCC.Extend.DataExchange import write_stl_file
|
# from OCC.Extend.DataExchange import write_stl_file
|
||||||
from odoo.addons.sf_base.commons.common import Common
|
from odoo.addons.sf_base.commons.common import Common
|
||||||
from odoo import models, fields, api
|
from odoo import models, fields, api
|
||||||
from odoo.modules import get_resource_path
|
from odoo.modules import get_resource_path
|
||||||
|
|||||||
Reference in New Issue
Block a user