Browse Source

定单管理调整

langfang-develop
liwei 3 years ago
parent
commit
69dee309c0
6 changed files with 163 additions and 107 deletions
  1. +2
    -2
      public/index.html
  2. +15
    -5
      src/api/productplan/base.js
  3. +8
    -2
      src/store/modules/user.js
  4. +56
    -31
      src/views/productplan/workbench/order/closeOrder.vue
  5. +80
    -65
      src/views/productplan/workbench/order/index.vue
  6. +2
    -2
      src/views/retrospect/workOrderTraceability/index.vue

+ 2
- 2
public/index.html View File

@ -200,8 +200,8 @@
opacity: 0.5;
}
::-webkit-scrollbar {
width: 4px !important;
height: 8px !important;
width: 12px !important;
height: 12px !important;
}
/* 滚动槽 */
::-webkit-scrollbar-track {


+ 15
- 5
src/api/productplan/base.js View File

@ -27,7 +27,7 @@ export function uploadExcel (param, sourceType) {
// 查询订单管理所有数据
export function getWorkorderList (query) {
return request({
url: '/admin/om/workorder/query',
url: '/admin/om/workorder/filter',
method: 'get',
params: query
})
@ -41,11 +41,12 @@ export function getWorkorder (query) {
})
}
// 根据物料ID查询所需数据
export function getArticleData (query) {
// 根据产线ID查询绑定物料列表
export function getArticleData (params) {
return request({
url: '/admin/base/article/get/' + query,
method: 'get'
url: '/admin/base/article/selectbyworkline',
method: 'get',
params
})
}
@ -102,6 +103,15 @@ export function getWorklineList (params) {
})
}
// 获取已绑定产线
export function getRolerelQuery(params) {
return request({
url: '/admin/base/rolerel/query',
method: 'get',
params
})
}
// 查询工厂数据
export function getWorklineTree (params) {
return request({


+ 8
- 2
src/store/modules/user.js View File

@ -8,6 +8,7 @@ const state = {
avatar: '',
introduction: '',
roles: [],
roleId: '',
permissions: [],
permisaction: []
}
@ -32,6 +33,9 @@ const mutations = {
SET_ROLES: (state, roles) => {
state.roles = roles
},
SET_ROLEID:(state, roleId)=>{
state.roleId=roleId;
},
SET_PERMISSIONS: (state, permisaction) => {
state.permisaction = permisaction
}
@ -61,18 +65,20 @@ const actions = {
removeToken()
resolve()
}
const { roles, name, avatar, introduction, permissions } = response.data
const { roles, roleId, name, avatar, introduction, permissions } = response.data
// roles must be a non-empty array
if (!roles || roles.length <= 0) {
reject('getInfo: roles must be a non-null array!')
}
commit('SET_PERMISSIONS', permissions)
commit('SET_ROLES', roles)
commit('SET_NAME', name)
commit('SET_AVATAR', avatar)
commit('SET_INTRODUCTION', introduction)
commit('SET_ROLEID', roleId)
localStorage.roleId=roleId;
resolve(response)
}).catch(error => {
reject(error)


+ 56
- 31
src/views/productplan/workbench/order/closeOrder.vue View File

@ -10,10 +10,11 @@
:data="tableData"
border
tooltip-effect="dark"
height="410"
height="710"
ref="multipleTable"
class="order-table-content-wrap"
@select="handleSelectionChange"
@select-all="handleSelectionChange"
>
<el-table-column
type="selection"
@ -21,17 +22,17 @@
</el-table-column>
<el-table-column v-for="item in headers" :key="item" :label="getColumnName(item)" :show-overflow-tooltip="true" align="center">
<template slot-scope="scope">
<div v-if="item === 'OM_SerialOrder-SerialOrderStatus'"
:class="['bg-div',{'not-plan-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 10},
{'has-plan-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 20},
{'has-lock-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 24},
{'has-issued-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 26},
{'interrupt-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 39},
{'in-production-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 40},
{'has-complete-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 80},
{'has-shipment-bg':scope.row[item]['OM_SerialOrderStatus-Status'] == 90},
{'freeze-bg': scope.row[item]['OM_SerialOrderStatus-Status'] == 95},
{'has-cancel-bg': scope.row[item]['OM_SerialOrderStatus-Status'] == 98}]"> {{ fieldTrans(scope.row[item]['OM_SerialOrderStatus-Status']) }} </div>
<div v-if="item === 'OM_SerialOrderStatus-Status'"
:class="['bg-div',{'not-plan-bg':scope.row[item] == 10},
{'has-plan-bg':scope.row[item] == 20},
{'has-lock-bg':scope.row[item] == 24},
{'has-issued-bg':scope.row[item] == 26},
{'interrupt-bg':scope.row[item] == 39},
{'in-production-bg':scope.row[item] == 40},
{'has-complete-bg':scope.row[item] == 80},
{'has-shipment-bg':scope.row[item] == 90},
{'freeze-bg': scope.row[item] == 95},
{'has-cancel-bg': scope.row[item] == 98}]"> {{ fieldTrans(scope.row[item]) }} </div>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
@ -43,7 +44,7 @@
width="170"
align="center">
<template slot-scope="scope">
<span v-if="item === 'OM_SerialOrder-ActEndTime' && scope.row[item] === '19000101000000'"></span>
<span v-if="item === 'OM_SerialOrder-ActStartTime' && scope.row[item] === '19000101000000'"></span>
<span v-else>{{ parseTime(scope.row[item]) }}</span>
</template>
</el-table-column>
@ -69,16 +70,17 @@ export default {
headers:[
'OM_SerialOrder-WorkOrderId',
'OM_SerialOrder-SerialOrderId',
'OM_SerialOrder-PlanResourceId',
'OM_SerialOrder-UsedResourceId',
'OM_SerialOrder-PlanQty',
// 'OM_SerialOrder-PlanResourceId',
// 'OM_SerialOrder-UsedResourceId',
// 'OM_SerialOrder-PlanQty',
'OM_SerialOrder-ProjectId',
'OM_SerialOrder-SerialOrderStatus'
'OM_SerialOrderStatus-Status'
],
timeHeaders:[
'OM_SerialOrder-PlanStartTime',
'OM_SerialOrder-PlanEndTime',
'OM_SerialOrder-ActEndTime',
// 'OM_SerialOrder-PlanStartTime',
// 'OM_SerialOrder-PlanEndTime',
// 'OM_SerialOrder-ActEndTime',
'OM_SerialOrder-ActStartTime'
],
orderStatusArray: [], //
selectionValue:[], //
@ -89,12 +91,31 @@ export default {
if(this.selectionValue.length<=0){
this.msgError('请选择工单');
}else{
cancelUncomplete(this.selectionValue.map(e=>e['OM_SerialOrderStatus-SerialOrderId'])).then(({code})=>{
if(code==200){
this.msgSuccess('取消成功');
this.cancel();
}
})
const orderItem=this.selectionValue.find(e=>e['OM_SerialOrderStatus-Status']==40);
if(orderItem){
this.$confirm('包含生产中工单, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
cancelUncomplete(this.selectionValue.map(e=>e['OM_SerialOrderStatus-SerialOrderId'])).then(({code})=>{
if(code==200){
this.msgSuccess('取消成功');
this.cancel();
}
})
}).catch(()=>{
})
}else{
cancelUncomplete(this.selectionValue.map(e=>e['OM_SerialOrderStatus-SerialOrderId'])).then(({code})=>{
if(code==200){
this.msgSuccess('取消成功');
this.cancel();
}
})
}
}
},
//
@ -103,15 +124,15 @@ export default {
},
//
fieldTrans(value) {
let fieldValue = value;
if (this.orderStatusArray.length > 0) {
let fieldValue = ''
this.orderStatusArray.forEach(el => {
if (value === Number(el['stdeftab-stdeftyp'])) {
if (value === el['stdeftab-stdeftyp']) {
fieldValue = el['stdeftab-bez']
}
})
return fieldValue
}
return fieldValue
},
//
sortby(a,b){return a['OM_SerialOrder-Sort']-b['OM_SerialOrder-Sort']},
@ -137,6 +158,7 @@ export default {
//
clearSelect(){
this.$refs.multipleTable.clearSelection();
this.selectionValue=[];
},
//
getUncomplete(){
@ -147,7 +169,10 @@ export default {
//
getOrderStatus(){
this.getStanderOne({ statid: 'WorkOrderStatus' }).then(res => {
this.orderStatusArray = res.data
this.orderStatusArray = res.data.map(e=>{
e['stdeftab-stdeftyp'] = Number(e['stdeftab-stdeftyp']);
return e;
});
})
}
},
@ -162,7 +187,7 @@ export default {
.el-table__header-wrapper{
.el-table-column--selection{
.el-checkbox{
display: none;
// display: none;
}
}
}


+ 80
- 65
src/views/productplan/workbench/order/index.vue View File

@ -178,7 +178,7 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog :title="title" :visible.sync="open" width="1000px" :close-on-click-modal="false">
<el-dialog v-loading="loading" :title="title" :visible.sync="open" width="1000px" :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-row>
<!-- <el-col :span="12">
@ -195,12 +195,12 @@
</el-col> -->
<el-col :span="12">
<el-form-item :label="getColumnName('OM_WorkOrder-WorkLineId')" prop="OM_WorkOrder-WorkLineId">
<el-select v-model="form['OM_WorkOrder-WorkLineId']" :disabled="!isAdd" style="width:100%;" filterable placeholder="请选择">
<el-select v-model="form['OM_WorkOrder-WorkLineId']" @change="getArticleData" :disabled="!isAdd" style="width:100%;" filterable placeholder="请选择">
<el-option
v-for="item in workLineArray"
:key="item['WorkLine-WorkLineid']"
:label="item['WorkLine-Descr']"
:value="item['WorkLine-WorkLineid']"
:key="item['RoleRel-WorkLineid']"
:label="item['RoleRel-Descr']"
:value="item['RoleRel-WorkLineid']"
/>
</el-select>
</el-form-item>
@ -211,7 +211,7 @@
<el-option
v-for="item in articleArray"
:key="item['Article-ArtId']"
:label="item['Article-ArtId']"
:label="`${item['Article-ArtId']}-${item['Article-Descr1']}`"
:value="item['Article-ArtId']"
/>
</el-select>
@ -238,8 +238,8 @@
<el-option
v-for="(item, index) in workLineArray"
:key="index"
:label="item['WorkLine-Descr']"
:value="item['WorkLine-WorkLineid']"
:label="item['RoleRel-Descr']"
:value="item['RoleRel-WorkLineid']"
/>
</el-select>
</el-form-item>
@ -376,8 +376,7 @@ import {
updateWorkorder,
delWorkorder,
undoWorkorder,
getArticleList,
getWorklineList,
getRolerelQuery,
getArticleData,
getWorkorderNum,
setWorkorderNum,
@ -412,7 +411,27 @@ export default {
//
isAdd: false,
//
headers: [],
headers: [
'OM_WorkOrder-PlantNr',
'OM_WorkOrder-WorkOrderId',
'OM_WorkOrderStatus-Status',
'OM_WorkOrder-ArtId',
// 'OM_WorkOrder-CustArtId',
'OM_WorkOrder-ProjectId',
'OM_WorkOrder-OrderType',
// 'OM_WorkOrder-ErpOrderId',
// 'OM_WorkOrder-ParentOrderId',
// 'OM_WorkOrder-UsedResourceId',
'OM_WorkOrder-PlanQty',
// 'OM_WorkOrder-PlanStartTime',
// 'OM_WorkOrder-PlanEndTime',
'OM_WorkOrder-ActStartTime',
'OM_WorkOrder-ActEndTime',
// 'OM_WorkOrder-LastModify',
// 'OM_WorkOrder-LastUser',
// 'OM_WorkOrder-CreateTime'
],
//
loading: true,
//
@ -476,23 +495,11 @@ export default {
created() {
this.options = getWorkshopList()
this.getList()
this.getRolerelQuery();
//
this.getStanderOne({ statid: 'OM_OrderType' }).then(res => {
this.orderTypeArray = res.data
})
//
getArticleList(
// {
// artSpec1:'FINISHED'
// }
).then(res => {
this.articleArray = res.data
})
// 线
getWorklineList().then(res => {
this.workLineArray = res.data
})
//
this.getStanderOne({ statid: 'WorkOrderStatus' }).then(res => {
this.orderStatusArray = res.data
@ -503,6 +510,40 @@ export default {
})
},
methods: {
// 线
getRolerelQuery(){
const roleId=localStorage.roleId;
getRolerelQuery({RoleId: roleId}).then(({data=[]}) => {
this.workLineArray = data;
if(data && data[0] && data[0]['RoleRel-WorkLineid']){
this.getArticleData(data[0]['RoleRel-WorkLineid']);
}
})
},
// 线
getArticleData(value){
this.form['OM_WorkOrder-ArtId']=undefined;
getArticleData({workLineId:value}).then(({data=[]})=>{
this.articleArray = data||[];
})
},
// ID
artIdChange(value) {
const item=this.articleArray.find(e=>e['Article-ArtId'] == value) || {};
this.$set(this.form,'OM_WorkOrder-QuantityPerHour',item['Article-QuantityPerHour']) // JPH
this.$set(this.form,'OM_WorkOrder-PlanResourceId',item['Article-PlanResourceId']) // ID
this.$set(this.form,'Article-Descr1',item['Article-Descr1']) // ID
//
this.$set(this.form,'OM_WorkOrder-QtyUomId',item['Article-UomId'])
this.$set(this.form,'OM_WorkOrder-UsedResourceId',item['Article-UsedResourceId'])
this.$set(this.form,'OM_WorkOrder-OpTimePerItem',item['Article-OpTimePerItem'])
this.$set(this.form,'OM_WorkOrder-PlanResourceGroupId',item['Article-PlanResourceGroupId'])
this.$set(this.form,'OM_WorkOrder-ProjectId',item['Article-ProjectId'])
this.$set(this.form,'OM_WorkOrder-RatePerHourToggle',item['Article-RatePerHourToggle'])
this.$set(this.form,'OM_WorkOrder-BatchTime',item['Article-BatchTime'])
this.$set(this.form,'OM_WorkOrder-BatchingMethod',item['Article-BatchingMethod'])
this.$set(this.form,'OM_WorkOrder-OrderInfo',item['Article-Descr1'])
},
setItem(item){
this.item=item;
if(Object.keys(item).length==0){
@ -528,50 +569,11 @@ export default {
response => {
this.dataList = response.data.records
this.total = response.data.count
this.headers = [
'OM_WorkOrder-PlantNr',
'OM_WorkOrder-WorkOrderId',
'OM_WorkOrderStatus-Status',
'OM_WorkOrder-ArtId',
'OM_WorkOrder-CustArtId',
'OM_WorkOrder-ProjectId',
'OM_WorkOrder-OrderType',
'OM_WorkOrder-ErpOrderId',
'OM_WorkOrder-ParentOrderId',
'OM_WorkOrder-UsedResourceId',
'OM_WorkOrder-PlanQty',
'OM_WorkOrder-PlanStartTime',
'OM_WorkOrder-PlanEndTime',
'OM_WorkOrder-ActStartTime',
'OM_WorkOrder-ActEndTime',
'OM_WorkOrder-LastModify',
'OM_WorkOrder-LastUser',
'OM_WorkOrder-CreateTime'
]
this.loading = false
}
)
},
// ID
artIdChange(value) {
getArticleData(value).then(({code, data={}}) => {
if (code === 200) {
this.$set(this.form,'OM_WorkOrder-QuantityPerHour',data['Article-QuantityPerHour']) // JPH
this.$set(this.form,'OM_WorkOrder-PlanResourceId',data['Article-PlanResourceId']) // ID
this.$set(this.form,'Article-Descr1',data['Article-Descr1']) // ID
//
this.$set(this.form,'OM_WorkOrder-QtyUomId',data['Article-UomId'])
this.$set(this.form,'OM_WorkOrder-UsedResourceId',data['Article-UsedResourceId'])
this.$set(this.form,'OM_WorkOrder-OpTimePerItem',data['Article-OpTimePerItem'])
this.$set(this.form,'OM_WorkOrder-PlanResourceGroupId',data['Article-PlanResourceGroupId'])
this.$set(this.form,'OM_WorkOrder-ProjectId',data['Article-ProjectId'])
this.$set(this.form,'OM_WorkOrder-RatePerHourToggle',data['Article-RatePerHourToggle'])
this.$set(this.form,'OM_WorkOrder-BatchTime',data['Article-BatchTime'])
this.$set(this.form,'OM_WorkOrder-BatchingMethod',data['Article-BatchingMethod'])
this.$set(this.form,'OM_WorkOrder-OrderInfo',data['Article-Descr1'])
}
})
},
//
orderTypeTrans(value) {
if (this.orderTypeArray.length > 0) {
@ -647,6 +649,10 @@ export default {
this.title = '新增返工订单'
this.form['OM_WorkOrder-OrderType'] = 'REO'
}
// 线, resetform
if(this.workLineArray && this.workLineArray[0] && this.workLineArray[0]['RoleRel-WorkLineid']){
this.form['OM_WorkOrder-WorkLineId']=this.workLineArray[0]['RoleRel-WorkLineid'];
}
},
//
dateTransCommon(date) {
@ -704,6 +710,7 @@ export default {
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
this.form["OM_WorkOrder-QuantityPerHour"] = parseInt(this.form["OM_WorkOrder-QuantityPerHour"])
this.form["OM_WorkOrder-PlanQty"] = parseInt(this.form["OM_WorkOrder-PlanQty"]) || undefined
//
@ -724,7 +731,9 @@ export default {
}
if (!this.isAdd) {
params["OM_WorkOrderStatus-Status"] = parseInt(params["OM_WorkOrderStatus-Status"])
this.loading=true;
updateWorkorder(params).then(response => {
this.loading=false;
if (response.code === 200) {
this.msgSuccess('修改成功')
this.open = false
@ -732,18 +741,22 @@ export default {
} else {
this.msgError(response.msg)
}
})
}).catch(()=>{
this.loading=false;
})
} else {
params['OM_WorkOrderStatus-Status'] = this.workOrderStatus;
if(!parseInt(params["OM_WorkOrder-PlanQty"])){
this.msgError('请输入计划数量');
return;
}
this.loading=true;
addWorkorder({
"artId": params['OM_WorkOrder-ArtId'],
"qty": params['OM_WorkOrder-PlanQty'],
"workLineId": params['OM_WorkOrder-WorkLineId'],
}).then(response => {
this.loading=false;
if (response.code === 200) {
this.msgSuccess('新增成功')
this.open = false
@ -751,6 +764,8 @@ export default {
} else {
this.msgError(response.msg)
}
}).catch(()=>{
this.loading=false;
})
}
}


+ 2
- 2
src/views/retrospect/workOrderTraceability/index.vue View File

@ -248,10 +248,10 @@ export default {
e.tableDetailsList=[];
return e;
});
this.pagination.count=count;
this.pagination.total=count;
}else{
this.tableData=[];
this.pagination.count=0;
this.pagination.total=0;
}
}).catch(()=>{
this.loading=false;


Loading…
Cancel
Save