1.优化排产

master
董哲奇 9 months ago
parent afd09b7140
commit 2ed1966178

@ -9,6 +9,7 @@
"lint": "eslint --ext .js,.vue src",
"build:test": "vue-cli-service build --mode test",
"build:prod": "vue-cli-service build",
"build:ws": "vue-cli-service build --mode ws",
"build:jt": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",

@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title'
NProgress.configure({ showSpinner: false }) // NProgress Configuration
const whiteList = ['/menu','/login', '/auth-redirect','/kban','/hbao','/sliao'] // no redirect whitelist
const whiteList = ['/menu','/login', '/auth-redirect','/kban','/hbao','/sliao','/sczyjh'] // no redirect whitelist
export function flatRoutes(routes) {
let ret = [];
routes.forEach(it => {

@ -48,6 +48,11 @@ export const constantRoutes = [
component: () => import('@/views/hbao/index'),
hidden: true
},
{
path: '/sczyjh',
component: () => import('@/views/sczyjh/index'),
hidden: true
},
{
path: '/kban',
component: () => import('@/views/kban/index'),

@ -53,7 +53,20 @@ export default {
sbcnColumn:[
{ type: 'checkbox', width: 50 },
{type: 'seq', width: 60, title: '序号', },
{ field: '_工序', title: '工序', width: 150,
{ field: '跨位', title: '所属跨位', width: 100,
editRender: { name: '$select', options:[
{label:'1垮',value:'1垮'},
{label:'2垮',value:'2垮'},
{label:'3垮',value:'3垮'},
{label:'4垮',value:'4垮'},
{label:'5垮',value:'5垮'},
{label:'6垮',value:'6垮'},
{label:'光电间',value:'光电间'},
], props: {clearable: true}},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: '_工序', title: '工序', width: 100,
editRender: { name: '$select', options:[], props: {clearable: true}},
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
@ -68,16 +81,21 @@ export default {
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: '单台效率', title: '单台效率', width: 150,
{ field: '套料图编码', title: '套料图编码', width: 150,
editRender: { name: "input" },
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: '单台产能', title: '单台产能', width: 150,
/*{ field: '', title: '', width: 100,
editRender: { name: "input" },
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: '单台产能', title: '单台产能', width: 100,
editRender: { name: "input" },
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},*/
{ field: '白班设备产能', title: '白班设备产能', width: 150,
editRender: { name: "input" },
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
@ -93,7 +111,7 @@ export default {
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{ field: '禁用', title: '禁用', width: 150,
{ field: '禁用', title: '禁用',
editRender: { name: '$select', options:[{ label: '是', value:true}, { label: '否', value:false}], props: {clearable: true}},
formatter:this.formatterJy,
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],

@ -95,6 +95,7 @@
highlight-current-row
highlight-hover-row
show-overflow
:scroll-y="{enabled: true}"
>
</vxe-grid>
</div>

@ -6,10 +6,10 @@
<el-col :span="15">
<el-form-item>
<span style="font-size: 13px;color: #606266; margin-left: 4px;margin-right: 4px">小组需求时间范围:</span>
<el-date-picker v-model="queryParam.beginTime" value-format="yyyy/MM/dd" type="month" style="width: 33%;" />
<el-date-picker v-model="queryParam.beginTime" value-format="yyyy/MM/dd" type="date" style="width: 33%;" />
<span style="font-size: 13px;color: #606266; margin-left: 4px;margin-right: 4px"></span>
<!-- <el-input v-model="queryParam.endTime" ></el-input>-->
<el-date-picker v-model="queryParam.endTime" value-format="yyyy/MM/dd" type="month" style="width: 33%" />
<el-date-picker v-model="queryParam.endTime" value-format="yyyy/MM/dd" type="date" style="width: 33%" />
</el-form-item>
</el-col>
<el-col :span="9">
@ -2767,9 +2767,10 @@ export default {
window.addEventListener('resize', this.getHeight)
this.getHeight()
this.initBase()
if(this.yhdm==='user01'||this.yhdm==='user02'){
this.isUser=true
}
this.isUser=true
// if(this.yhdm==='user01'||this.yhdm==='user02'){
// this.isUser=true
// }
},
watch: {
'queryParam.beginTime'(newValue, Value){
@ -3086,47 +3087,44 @@ export default {
const zy=res.data.zy
const list=[]
Object.keys(zy).forEach(key=>{
if (key>=this.queryParam.beginTime&&key<=this.queryParam.endTime){
const 工序产能MAP=zy[key].工序产能MAP
for (const 工序 of 工序表) {
const 工序产能=工序产能MAP[工序]
const 设备=工序产能.设备
Object.keys(设备).forEach(_key=>{
const _设备=设备[_key]
for (const bom of _设备.资源占用图表) {
if (bom){
const data={
day:key,
}
data.白班时长=工序产能.白班时长
data.二班时长=工序产能.二班时长
data.工序=工序
data.产能=工序产能.产能
data.设备编号=_key
data.设备名称=_key
data.设备产能=_设备.产能
data.dcCh=bom.dcch
data.dcPl=bom.pl
data.xzglxq=bom.xzglxq
data.dzglxq=bom.dzglxq
data.zl=bom.zl
data.kw=bom.kw
data._kw=bom.kw
data.tzbh=bom.tzbh
data.wpgg=bom.wpgg
data.wpcz=bom.wpcz
data.ljsl=bom.ljsl
data._degs=bom.degs
data.errors=bom.errors
list.push(data)
const 工序产能MAP=zy[key].工序产能MAP
for (const 工序 of 工序表) {
const 工序产能=工序产能MAP[工序]
const 设备=工序产能.设备
Object.keys(设备).forEach(_key=>{
const _设备=设备[_key]
for (const bom of _设备.资源占用图表) {
if (bom){
const data={
day:key,
}
data.白班时长=工序产能.白班时长
data.二班时长=工序产能.二班时长
data.工序=工序
data.产能=工序产能.产能
data.设备编号=_key
data.设备名称=_key
data.设备产能=_设备.产能
data.dcCh=bom.dcch
data.dcPl=bom.pl
data.xzglxq=bom.xzglxq
data.dzglxq=bom.dzglxq
data.zl=bom.zl
data.kw=bom.kw
data._kw=bom.kw
data.tzbh=bom.tzbh
data.wpgg=bom.wpgg
data.wpcz=bom.wpcz
data.ljsl=bom.ljsl
data._degs=bom.degs
data.errors=bom.errors
list.push(data)
}
})
}
}
})
}
})
this.list9=list
})
},
@ -3146,7 +3144,7 @@ export default {
this.activeName = 'first'
},
format (val) {
this.queryParam.endTime=XEUtils.toDateString(XEUtils.getWhatMonth(val, 2, 'last'),'yyyy/MM/dd')
this.queryParam.endTime=XEUtils.toDateString(XEUtils.getWhatMonth(val, 0, 'last'),'yyyy/MM/dd')
}
}
}

@ -0,0 +1,171 @@
<template>
<el-container>
<el-header style="padding: 15px">
<el-form ref="requestForm" :model="request" label-width="85px">
<el-row>
<el-col :span="3">
<el-form-item label="船号:">
<vxe-pulldown ref="xDown4" transfer >
<template #default>
<vxe-input
v-model="request.dcCh"
placeholder="船号"
style="height: 28px;
line-height: 28px; width: 150px;"
suffix-icon="vxe-icon--search"
@keyup="keyupEvent4"
@focus="focusEvent4"
/>
</template>
<template #dropdown>
<div class="my-dropdown mytable " style="width: 250px">
<vxe-grid
highlight-hover-row
height="auto"
:data="projectData"
:columns="projectColumns"
@cell-click="cellClickEvent"
show-overflow
>
<template #wgbsEdit="{ row}">
<vxe-checkbox v-model="row.wgbs" checked-value="Y" unchecked-value="N" disabled ></vxe-checkbox>
</template>
</vxe-grid>
</div>
</template>
</vxe-pulldown>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="批量:">
<el-input v-model="request.dcPl" type="search" placeholder="批量" ></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item label="需求日期:">
<el-input v-model="request.form" type="search" placeholder="开始" />
</el-form-item>
</el-col>
<el-col :span="1">
<div style="width:100%;text-align:center;line-height: 28px;font-size: 14px"></div>
</el-col>
<el-col :span="8">
<el-form-item label-width="0px">
<el-input v-model="request.to" type="search" placeholder="结束" />
</el-form-item>
</el-col>
</el-col>
<el-col :span="12" style="text-align: right">
<el-button type="primary" @click="loadData"></el-button>
</el-col>
</el-row>
</el-form>
</el-header>
<el-main>
<VxeGrid v-bind="gridOptions" />
</el-main>
</el-container>
</template>
<script>
import {getCzplBase} from "@/api/sjzx/jcsj";
export default {
name:'Sczyjh',
data(){
return{
projectData: [],
projectColumns:[],
request:{
dcCh:'',
dcPl:'',
},
gridOptions:{
border: true,
resizable: true,
showOverflow: true,
height: 650,
align:'center',
data:[],
columns:[
{type: "seq", title: "序号", width: "50"},
{field:'dcCh',title:'船号', width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'dcPl',title:'批量',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'dcFd',title:'分段',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'kw',title:'跨位',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'zl',title:'组立',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'xzxqrq',title:'小组需求期',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'tlth',title:'套料图号',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'cz',title:'材质',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'wpgg',title:'规格',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'',title:'重量',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
{field:'',title:'划线长度',width: "90",
filters: [{ data: { checks: [], sVal: '', sMenu: '', fType1: '', fVal1: '', fMode: 'and', fType2: '', fVal2: '' } }],
filterRender: { name: 'FilterCombination', },
},
]
}
}
},
created(){
this.initProject()
},
methods:{
loadData(){
},
initProject(){
getCzplBase({}).then(res=>{
this.projectData=res.data.cbbm
this.projectData1=res.data.cbbm
})
},
cellClickEvent({row}){
this.request.dcCh = row.cbbm
this.$refs.xDown4.hidePanel()
},
focusEvent4(){
this.$refs.xDown4.showPanel()
},
keyupEvent4(){
if (this.request.dcCh) {
this.projectData = this.projectData1.filter(row => row.cbbm.indexOf(this.request.dcCh.toUpperCase()) > -1)
} else {
this.projectData = this.projectData1.slice(0)
}
},
}
}
</script>
Loading…
Cancel
Save