工件配送添加sns

This commit is contained in:
jinling.yang
2024-06-07 17:29:49 +08:00
parent 8c285c0eb5
commit 7be5b53767
5 changed files with 66 additions and 15 deletions

View File

@@ -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)

View File

@@ -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):

View File

@@ -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>

View File

@@ -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

View File

@@ -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