Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改设备模块
This commit is contained in:
@@ -6,6 +6,9 @@ from odoo.addons.resource.models.resource import Intervals
|
|||||||
|
|
||||||
class ResWorkcenter(models.Model):
|
class ResWorkcenter(models.Model):
|
||||||
_inherit = "mrp.workcenter"
|
_inherit = "mrp.workcenter"
|
||||||
|
|
||||||
|
# 生产线显示
|
||||||
|
production_line_show = fields.Char(string='生产线')
|
||||||
equipment_id = fields.Many2one('maintenance.equipment', string='设备')
|
equipment_id = fields.Many2one('maintenance.equipment', string='设备')
|
||||||
machine_tool_id = fields.Many2one('sf.machine_tool', string='机床')
|
machine_tool_id = fields.Many2one('sf.machine_tool', string='机床')
|
||||||
production_line_id = fields.Many2one('sf.production.line', string='生产线')
|
production_line_id = fields.Many2one('sf.production.line', string='生产线')
|
||||||
|
|||||||
@@ -15,8 +15,33 @@ class CustomKanbanController extends KanbanController {
|
|||||||
this.workOrders = await this.getAllWorkOrders();
|
this.workOrders = await this.getAllWorkOrders();
|
||||||
console.log('lines', this.workOrders);
|
console.log('lines', this.workOrders);
|
||||||
}
|
}
|
||||||
|
buttonClick(ev) {
|
||||||
|
const button = ev.currentTarget;
|
||||||
|
const id = button.getAttribute('data-id');
|
||||||
|
|
||||||
|
console.log('true_id', id);
|
||||||
|
const context = {production_line_show: 'shengchanxian1'}
|
||||||
|
this.env.services.rpc('/web/dataset/call_kw', {
|
||||||
|
model: 'mrp.workcenter',
|
||||||
|
method: 'search_read',
|
||||||
|
args: [[], ['id']],
|
||||||
|
kwargs: {}
|
||||||
|
}).then((records) => {
|
||||||
|
const ids = records.map(record => record.id);
|
||||||
|
const context = {production_line_show: id};
|
||||||
|
this.env.services.rpc('/web/dataset/call_kw', {
|
||||||
|
model: 'mrp.workcenter',
|
||||||
|
method: 'write',
|
||||||
|
args: [ids, context],
|
||||||
|
kwargs: {}
|
||||||
|
}).then((response) => {
|
||||||
|
console.log('response', response);
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
async getAllWorkOrders() {
|
async getAllWorkOrders() {
|
||||||
const response = await this.env.services.rpc('/web/dataset/call_kw',{
|
const response = await this.env.services.rpc('/web/dataset/call_kw',{
|
||||||
model: 'sf.production.line',
|
model: 'sf.production.line',
|
||||||
@@ -24,7 +49,14 @@ class CustomKanbanController extends KanbanController {
|
|||||||
args: [],
|
args: [],
|
||||||
kwargs: {},
|
kwargs: {},
|
||||||
});
|
});
|
||||||
|
// const response1 = await this.env.services.rpc('/web/dataset/call_kw',{
|
||||||
|
// model: 'mrp.workcenter',
|
||||||
|
// method: 'search_read',
|
||||||
|
// args: [],
|
||||||
|
// kwargs: {},
|
||||||
|
// });
|
||||||
console.log('response', response);
|
console.log('response', response);
|
||||||
|
// console.log('response1', response1);
|
||||||
// 你可以在这里处理响应,例如将其存储在控制器的状态中
|
// 你可以在这里处理响应,例如将其存储在控制器的状态中
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,13 @@
|
|||||||
.alerts {
|
.choosekanban {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
margin-top: 1vw !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.alerts>div {
|
.choosekanban > button {
|
||||||
width: 3vw;
|
width: 4vw !important;
|
||||||
height: 1.5vw;
|
height: 2vw !important;
|
||||||
border: 1px solid grey;
|
border: none !important;
|
||||||
border-radius: 5px;
|
margin-left: 16px !important;
|
||||||
margin: 0 0.5vw;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.alerts>div:nth-child(1) {
|
|
||||||
margin-left: 0 !important;
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<templates>
|
<templates>
|
||||||
<t t-name="sf_manufacturing.CustomKanbanView1" t-inherit="web.KanbanView" owl="1">
|
<t t-name="sf_manufacturing.CustomKanbanView1" t-inherit="web.KanbanView" owl="1">
|
||||||
<!-- <xpath expr="//Layout" position="before"> -->
|
|
||||||
<!-- <div> -->
|
|
||||||
<!-- Hello world ! -->
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- </xpath> -->
|
|
||||||
<xpath expr="//t[@t-component='props.Renderer']" position="before">
|
<xpath expr="//t[@t-component='props.Renderer']" position="before">
|
||||||
<div class="alerts">
|
<div class="choosekanban">
|
||||||
<!-- <t t-foreach="env['mrp.workcenter'].get_dynamic_data()" t-as="i" t-key="i"> -->
|
<!-- <t t-foreach="env['mrp.workcenter'].get_dynamic_data()" t-as="i" t-key="i"> -->
|
||||||
<t t-foreach="workOrders" t-as="i" t-key="i">
|
<t t-foreach="workOrders" t-as="i" t-key="i">
|
||||||
<div>
|
<button t-on-click="buttonClick" t-att-data-id="i.name">
|
||||||
<t t-esc="i.name"></t>
|
<t t-esc="i.name"></t>
|
||||||
</div>
|
</button>
|
||||||
</t>
|
</t>
|
||||||
</div>
|
</div>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|||||||
@@ -94,6 +94,7 @@
|
|||||||
<xpath expr="//field[@name='alternative_workcenter_ids']" position="after">
|
<xpath expr="//field[@name='alternative_workcenter_ids']" position="after">
|
||||||
<field name="production_line_id"/>
|
<field name="production_line_id"/>
|
||||||
<field name="equipment_id"/>
|
<field name="equipment_id"/>
|
||||||
|
<field name="production_line_show"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//field[@name='resource_calendar_id']" position="after">
|
<xpath expr="//field[@name='resource_calendar_id']" position="after">
|
||||||
<field name="is_process_outsourcing"/>
|
<field name="is_process_outsourcing"/>
|
||||||
@@ -101,18 +102,173 @@
|
|||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="mrp_workcenter_view_kanban_inherit_maintenance" model="ir.ui.view">
|
<!-- <record id="mrp_workcenter_view_kanban_inherit_maintenance" model="ir.ui.view"> -->
|
||||||
<field name="name">mrp.workcenter.view.kanban.inherit.maintenance</field>
|
<!-- <field name="name">mrp.workcenter.view.kanban.inherit.maintenance</field> -->
|
||||||
<field name="model">mrp.workcenter</field>
|
<!-- <field name="model">mrp.workcenter</field> -->
|
||||||
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
|
<!-- <field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/> -->
|
||||||
<field name="arch" type="xml">
|
<!-- <field name="arch" type="xml"> -->
|
||||||
<xpath expr="//div[@name='plan_order']" position="after">
|
<!-- <xpath expr="//div[@name='plan_order']" position="after"> -->
|
||||||
<div>
|
<!-- <div> -->
|
||||||
<a name="%(maintenance.hr_equipment_request_action)d" type="action">Maintenance</a>
|
<!-- <a name="%(maintenance.hr_equipment_request_action)d" type="action">Maintenance</a> -->
|
||||||
</div>
|
<!-- </div> -->
|
||||||
</xpath>
|
<!-- </xpath> -->
|
||||||
</field>
|
<!-- </field> -->
|
||||||
</record>
|
<!-- </record> -->
|
||||||
|
<!-- 继承原有的看板视图 -->
|
||||||
|
<record id="mrp_workcenter_kanban_inherit1" model="ir.ui.view">
|
||||||
|
<field name="name">mrp.workcenter.kanban.inherit</field>
|
||||||
|
<field name="model">mrp.workcenter</field>
|
||||||
|
<field name="inherit_id" ref="mrp.mrp_workcenter_kanban"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//kanban" position="replace">
|
||||||
|
<kanban class="oe_background_grey o_kanban_dashboard o_workcenter_kanban" create="0" sample="1" js_class="custom_kanban1">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="color"/>
|
||||||
|
<field name="workorder_count"/>
|
||||||
|
<field name="working_state"/>
|
||||||
|
<field name="oee_target"/>
|
||||||
|
<field name="production_line_show"/>
|
||||||
|
<field name="production_line_id"/>
|
||||||
|
<templates>
|
||||||
|
<t t-name="kanban-box" t-if="record.production_line_id.value == record.production_line_show.raw_value">
|
||||||
|
<div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''}">
|
||||||
|
<div t-attf-class="o_kanban_card_header o_kanban_record_top">
|
||||||
|
<div class="o_kanban_record_headings o_kanban_card_header_title">
|
||||||
|
<span class="o_primary ml8" style="display: inline-block">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="production_line_show"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_manage_button_section">
|
||||||
|
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container o_kanban_card_content">
|
||||||
|
<div class="row mb16">
|
||||||
|
<div class="col-6 o_kanban_primary_left">
|
||||||
|
<div class="btn-group" name="o_wo">
|
||||||
|
<t t-if="record.workorder_count.raw_value > 0">
|
||||||
|
<button class="btn btn-primary" name="action_work_order" type="object" context="{'search_default_ready': 1, 'search_default_progress': 1}">
|
||||||
|
<span>WORK ORDERS</span>
|
||||||
|
</button>
|
||||||
|
</t>
|
||||||
|
<t t-if="record.workorder_count.raw_value <= 0">
|
||||||
|
<button class="btn btn-warning" name="%(mrp.act_product_mrp_production_workcenter)d" type="action">
|
||||||
|
<span>PLAN ORDERS</span>
|
||||||
|
</button>
|
||||||
|
</t>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6 o_kanban_primary_right">
|
||||||
|
<div class="row" t-if="record.workorder_ready_count.raw_value > 0">
|
||||||
|
<div class="col-8">
|
||||||
|
<a name="action_work_order" type="object" context="{'search_default_ready': 1}">
|
||||||
|
To Launch
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-4 text-end">
|
||||||
|
<field name="workorder_ready_count"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" t-if="record.workorder_progress_count.raw_value > 0">
|
||||||
|
<div class="col-8">
|
||||||
|
<a name="action_work_order" type="object" context="{'search_default_progress': 1}">
|
||||||
|
In Progress
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-4 text-end">
|
||||||
|
<field name="workorder_progress_count"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" t-if="record.workorder_late_count.raw_value > 0">
|
||||||
|
<div class="col-8">
|
||||||
|
<a name="action_work_order" type="object" context="{'search_default_late': 1}">
|
||||||
|
Late
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-4 text-end">
|
||||||
|
<field name="workorder_late_count"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" t-if="record.oee.raw_value > 0">
|
||||||
|
<div class="col-6">
|
||||||
|
<a name="%(mrp.mrp_workcenter_productivity_report_oee)d" type="action">
|
||||||
|
OEE
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-6 text-end">
|
||||||
|
<span t-att-class="record.oee_target.raw_value and (record.oee.raw_value < record.oee_target.raw_value) and 'text-danger' or (record.oee.raw_value > record.oee_target.raw_value) and 'text-success' or 'text-warning'">
|
||||||
|
<strong>
|
||||||
|
<field name="oee" widget="integer"/>%
|
||||||
|
</strong>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 o_kanban_primary_left" style="position:absolute; bottom:10px;" name="wc_stages">
|
||||||
|
<a name="%(mrp.act_mrp_block_workcenter)d" type="action" class="o_status float-end"
|
||||||
|
title="No workorder currently in progress. Click to mark work center as blocked."
|
||||||
|
aria-label="No workorder currently in progress. Click to mark work center as blocked."
|
||||||
|
attrs="{'invisible': [('working_state','in',('blocked','done'))]}"/>
|
||||||
|
<a name="unblock" type="object" class=" o_status o_status_red float-end"
|
||||||
|
title="Workcenter blocked, click to unblock."
|
||||||
|
aria-label="Workcenter blocked, click to unblock."
|
||||||
|
attrs="{'invisible': [('working_state','in',('normal','done'))]}"/>
|
||||||
|
<a name="%(mrp.act_mrp_block_workcenter)d" type="action" class="o_status o_status_green float-end"
|
||||||
|
title="Work orders in progress. Click to block work center."
|
||||||
|
aria-label="Work orders in progress. Click to block work center."
|
||||||
|
attrs="{'invisible': [('working_state','in',('normal','blocked'))]}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_view">
|
||||||
|
<div role="menuitem" class="o_kanban_card_manage_title">
|
||||||
|
<span>Actions</span>
|
||||||
|
</div>
|
||||||
|
<div role="menuitem" name="plan_order">
|
||||||
|
<a name="action_work_order" type="object">Plan Orders</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a name="%(maintenance.hr_equipment_request_action)d" type="action">Maintenance</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_new">
|
||||||
|
<div role="menuitem" class="o_kanban_card_manage_title">
|
||||||
|
<span>Reporting</span>
|
||||||
|
</div>
|
||||||
|
<div role="menuitem">
|
||||||
|
<a name="%(mrp.mrp_workcenter_productivity_report_oee)d" type="action">OEE</a>
|
||||||
|
</div>
|
||||||
|
<div role="menuitem">
|
||||||
|
<a name="%(mrp.mrp_workorder_workcenter_report)d" type="action" context="{'search_default_thisyear':True}">
|
||||||
|
Performance
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div role="menuitem">
|
||||||
|
<a name="action_work_order" type="object" context="{'search_default_waiting': 1}">Waiting Availability</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div t-if="widget.editable" class="o_kanban_card_manage_settings row">
|
||||||
|
<div role="menuitem" aria-haspopup="true" class="col-8">
|
||||||
|
<ul role="menu" class="oe_kanban_colorpicker" data-field="color"/>
|
||||||
|
</div>
|
||||||
|
<div role="menuitem" class="text-end">
|
||||||
|
<a type="edit">Settings</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- MRP.PRODUCTION -->
|
<!-- MRP.PRODUCTION -->
|
||||||
<record id="mrp_production_view_form_inherit_maintenance" model="ir.ui.view">
|
<record id="mrp_production_view_form_inherit_maintenance" model="ir.ui.view">
|
||||||
@@ -140,6 +296,4 @@
|
|||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|||||||
Reference in New Issue
Block a user