订单管理管理模块(优化前端)

master
wws 2 years ago
parent bd78a800a6
commit 16234dc4a3

@ -0,0 +1,60 @@
import request from '@/utils/request'
// 获取料罐信息list
export function getBucketList() {
return request({
url:'/mes/plan/getBucketList',
method:'get'
})
}
// 通过工单日期查询没有被分配的所有子工单
export function getWorkOrderList(productDate) {
return request({
url:'/mes/plan/getWorkOrderByTime'+'?productDate='+productDate,
method:'get',
})
}
// 查询湿料计划管理列表
export function listPlan(query) {
return request({
url: '/mes/plan/list',
method: 'get',
params: query
});
}
// 查询湿料计划管理详细
export function getPlan(id) {
return request({
url: '/mes/plan/' + id,
method: 'get'
});
}
// 新增湿料计划管理
export function addPlan(data) {
return request({
url: '/mes/plan',
method: 'post',
data: data
});
}
// 修改湿料计划管理
export function updatePlan(data) {
return request({
url: '/mes/plan',
method: 'put',
data: data
});
}
// 删除湿料计划管理
export function delPlan(id) {
return request({
url: '/mes/plan/' + id,
method: 'delete'
});
}

@ -2,85 +2,85 @@ import request from '@/utils/request'
//通过母订单id查询最新工单列表
export function getWorkOrderList(id) {
return request({
url: '/mes/order/getWorkOrderList/' + id,
method: 'get'
})
return request({
url: '/mes/order/getWorkOrderList/' + id,
method: 'get'
})
}
//通过母订单id查询最新订单列表
export function getOrderList(id) {
return request({
url: '/mes/order/getOrderList/' + id,
method: 'get'
})
return request({
url: '/mes/order/getOrderList/' + id,
method: 'get'
})
}
// 提交拆分
export function subSplitOrder(data) {
return request({
url: '/mes/order/subSplitOrder',
method: 'post',
data: data
})
return request({
url: '/mes/order/subSplitOrder',
method: 'post',
data: data
})
}
// 获取换算值
export function getConvert() {
return request({
url: '/mes/order/getConvert',
method: 'get',
})
return request({
url: '/mes/order/getConvert',
method: 'get',
})
}
// 获取线体
export function getprodLineShift() {
return request({
url: '/mes/order/getProdLineShift',
method: 'get',
})
return request({
url: '/mes/order/getProdLineShift',
method: 'get',
})
}
// 查询订单列表
export function listOrder(query) {
return request({
url: '/mes/order/list',
method: 'get',
params: query
});
return request({
url: '/mes/order/list',
method: 'get',
params: query
});
}
// 查询订单详细
export function getOrder(id) {
return request({
url: '/mes/order/' + id,
method: 'get'
});
return request({
url: '/mes/order/' + id,
method: 'get'
});
}
// 新增订单
export function addOrder(data) {
return request({
url: '/mes/order',
method: 'post',
data: data
});
return request({
url: '/mes/order',
method: 'post',
data: data
});
}
// 修改订单
export function updateOrder(data) {
return request({
url: '/mes/order',
method: 'put',
data: data
});
return request({
url: '/mes/order',
method: 'put',
data: data
});
}
// 删除订单
export function delOrder(id) {
return request({
url: '/mes/order/' + id,
method: 'delete'
});
return request({
url: '/mes/order/' + id,
method: 'delete'
});
}

@ -0,0 +1,428 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="计划日期" prop="planTime">
<el-date-picker
v-model="timeList"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="同步状态">-->
<!-- <el-select v-model="queryParams.syncFlag" placeholder="请选择同步状态">-->
<!-- <el-option label="已同步" value="1"></el-option>-->
<!-- <el-option label="未同步" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['mes:plan:add']"
>新增</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['mes:plan:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:plan:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['mes:plan:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="planList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<el-table-column label="计划工厂编码" align="center" prop="factoryCode" />
<el-table-column label="计划日期" align="center" prop="planTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="已同步" align="center" prop="syncFlag" />
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateBy" />
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:plan:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['mes:plan:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改湿料计划管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<!-- 选择工单生产日期 -->
<el-row>
<el-col :offset="8" :span="8">
<el-date-picker
@change="workOrderTimeChange"
v-model="workOrderTime"
type="date"
placeholder="工单日期">
</el-date-picker>
</el-col>
</el-row>
<!-- 工单列表 -->
<el-row>
<el-table
ref="multipleTable"
v-if="refreshWorkTable"
v-loading="workLoading"
:data="workOrderList"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column width="60" align="center" label="序号" type="index" :index="indexMethod"></el-table-column>
<el-table-column prop="workorderCode" label="工单编码" width="120"></el-table-column>
<el-table-column prop="productName" label="产品名称" width="120"></el-table-column>
<el-table-column prop="productDate" label="工单日期" show-overflow-tooltip></el-table-column>
<el-table-column prop="shiftDesc" label="班次" show-overflow-tooltip></el-table-column>
<el-table-column prop="" label="料罐" show-overflow-tooltip></el-table-column>
<el-table-column prop="" label="物料" show-overflow-tooltip></el-table-column>
</el-table>
</el-row>
<!-- 料罐-物料-计划日期的选择 -->
<el-form :model="form" ref="dynamicForm" label-width="80px">
<el-row>
<!-- 选择料罐 -->
<el-col :span="8">
<el-form-item size="small" label="选择料罐:">
<el-select v-model="form.bucketId" placeholder="请选择料罐">
<el-option v-for="item in selectBucketList" :key="item.bucketId" :label="item.bucketName"
:value="item.bucketId"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getBucketList,getWorkOrderList,listPlan, getPlan, delPlan, addPlan, updatePlan } from "@/api/mes/plan";
export default {
name: "Plan",
data() {
return {
// list
selectBucketList: null,
//
workLoading: false,
//
refreshWorkTable: true,
// list
workOrderList: [],
// --
workOrderTime: null,
//
timeList: null,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 湿
planList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
planTime: null,
syncFlag: null,
startTime: null,
endTime: null,
},
//
form: {
bucketId: null,
},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 新增-选择工单日期 */
workOrderTimeChange(e) {
//
const year = e.getFullYear(); //
const month = String(e.getMonth() + 1).padStart(2, '0'); //
const day = String(e.getDate()).padStart(2, '0'); //
const productDate = `${year}-${month}-${day}`;
getWorkOrderList(productDate).then(response => {
this.workOrderList = response.data;
//
//
this.workLoading = true; // true
this.refreshWorkTable = false; // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshWorkTable = true; // refreshProTabletrue
this.workLoading = false; // false
});
})
},
/** 查询湿料计划管理列表 */
getList() {
this.loading = true;
listPlan(this.queryParams).then(response => {
this.planList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
factoryCode: null,
planTime: null,
syncFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
orderType: null,
prodCode: null,
prodDesc: null,
prodSource: null,
quantity: null,
unit: null,
atrr1: null,
atrr2: null,
atrr3: null,
status: null,
prodType: null,
planCode: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
console.log("这里是你要的数据");
console.log(this.timeList);
if (this.timeList.length>1){
//
const year = this.timeList[0].getFullYear(); //
const month = String(this.timeList[0].getMonth() + 1).padStart(2, '0'); //
const day = String(this.timeList[0].getDate()).padStart(2, '0'); //
const startTime = `${year}-${month}-${day}`;
this.queryParams.startTime = startTime;
const year1 = this.timeList[1].getFullYear(); //
const month1 = String(this.timeList[1].getMonth() + 1).padStart(2, '0'); //
const day1 = String(this.timeList[1].getDate()).padStart(2, '0'); //
const endTime = `${year1}-${month1}-${day1}`;
this.queryParams.endTime = endTime;
}else {
this.queryParams.startTime = null;
this.queryParams.endTime = null;
}
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.timeList = [];
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
//
this.reset();
this.selectBucketList = null;
this.workOrderTime = null;
this.workOrderList = [];
//
this.workOrderTime = new Date();
//
// list
getBucketList().then(response => {
this.selectBucketList = response.data;
})
this.open = true;
this.title = "新增湿料计划";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getPlan(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改湿料计划管理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updatePlan(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPlan(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除湿料计划管理编号为"' + ids + '"的数据项?').then(function() {
return delPlan(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/plan/export', {
...this.queryParams
}, `plan_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style>
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;
}
</style>

@ -169,7 +169,7 @@
<!-- 工单日期 -->
<el-col :offset="1" :span="5">
<el-form-item size="small" label="工单日期: ">
<el-date-picker v-model="form.productDate" type="date" placeholder="选择日期"></el-date-picker>
<el-date-picker @change="checkDate" v-model="form.productDate" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
@ -190,7 +190,7 @@
<!-- 批次编号 -->
<el-col :span="7">
<el-form-item size="small" label="批次编号">
<el-input v-model="item.batchCode"></el-input>
<el-input @blur="batchCodeChange" v-model="item.batchCode"></el-input>
</el-form-item>
</el-col>
<!-- 批次数量 -->
@ -224,15 +224,15 @@
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column width="60" align="center" label="序号" type="index" :index="indexMethod"></el-table-column>
<el-table-column width="120" align="center" prop="prodLineCode" label="成型机"></el-table-column>
<el-table-column width="300" align="center" prop="workorderCode" label="工单号"></el-table-column>
<el-table-column width="120" align="center" prop="prodLineCode" label="成型机"></el-table-column>
<el-table-column width="120" align="center" prop="quantitySplit" label="数量"></el-table-column>
<el-table-column align="center" prop="batchCodeList" label="批次号"></el-table-column>
</el-table>
<!-- 测试 -->
<!-- 操作按钮 -->
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="cancel"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@ -283,11 +283,11 @@
splitData: [],
//线list
proline: [],
//TODO
//
splitnum: null,
//TODO
//
workShift: [],
//
//
formFields: [{
batchCode: '',
batchQuantity: ''
@ -346,8 +346,58 @@
this.getList();
},
methods: {
/** 检验批次编码是否重复 */
batchCodeChange(e){
for (let i = 1; i < this.formFields.length;i++){
if (this.formFields[this.formFields.length-1].batchCode == this.formFields[i].batchCode){
this.$message({
message: '批次号不能重复',
type: 'warning'
})
this.formFields = [{
batchCode: '',
batchQuantity: ''
}]
}
}
},
/** 校验日期 */
checkDate(e) {
var now = new Date();
if (e < now){
e = now;
this.form.productDate = now;
}
},
/** 拆分提交按钮 */
batchBtn() {
//
if (this.form.splitNum == null || this.form.shiftId == null || this.form.prodLineCode == null){
this.$message({
message:'数据不能为空!',
type:'warning'
})
return;
}
//
let sum = 0;
for (let i = 0; i< this.formFields.length ;i++){
sum = Number(sum) + Number(this.formFields[i].batchQuantity);
if (this.formFields[i].batchQuantity == '' || this.formFields[i].batchQuantity ==null || this.formFields[i].batchCode ==null || this.formFields[i].batchCode ==''){
this.$message({
message:'批次数据不能为空',
type: 'warning'
})
return;
}
}
if (sum != this.productData[0].atrr1){
this.$message({
message: '批次数量之和不等于拆分数量',
type: 'warning'
})
return;
}
//
this.form.formFields = this.formFields;
//
@ -360,10 +410,13 @@
splitNum : this.form.splitNum,
product : this.productData[0],
}
let check = 1;
subSplitOrder(data).then(response => {
if(response.code == 500){
this.$modal.msgFaile(response.msg);
check = 0;
this.$modal.msgError(response.msg);
return;
}
this.$modal.msgSuccess("提交成功");
});
@ -385,7 +438,7 @@
//
getOrderList(id).then(response => {
if(response.code == 500){
this.$modal.msgFaile(response.msg);
this.$modal.msgError(response.msg);
};
//
this.productData[0] = response.data;
@ -402,7 +455,7 @@
//
getWorkOrderList(id).then(response => {
if(response.code == 500){
this.$modal.msgFaile(response.msg);
this.$modal.msgError(response.msg);
};
//
this.splitData = response.data;
@ -416,7 +469,12 @@
});
})
if (check){
setTimeout(() => {
// 1
this.open = false;
}, 500);
}
},
//
submitForm(formName) {
@ -454,7 +512,10 @@
}
;
if (sum >= this.productData[0].atrr1) {
alert("无法添加!您批次数量已满!");
this.$message({
message: '无法添加!您的批次数量已满!',
type: 'warning'
})
return;
}
;
@ -673,7 +734,15 @@
//
getWorkOrderList(row.id).then(response => {
this.splitData = response.data;
var data = response.data;
//
// for(let fir = 0;fir < data.length;fir++){
// for(let i = 0;i < data[fir].batchCodeList.length;i++){
// //
// data[fir].batchCodeList[i]
// }
// }
this.splitData = data;
})
this.open = true;
@ -690,7 +759,10 @@
if (e != '' && e > 0) {
let max = Number(this.productData[0].quantity) - Number(this.productData[0].quantitySplit);
if (e > max) {
alert("最大值不能超过" + max + "!");
this.$message({
message: "最大值不能超过" + max + "!",
type: 'warning'
})
this.form.splitNum = max;
}
//
@ -756,7 +828,10 @@
}
//
if (sum > this.productData[0].atrr1) {
alert("你的批次数量总和不能超过拆分数量");
this.$message({
message: '你的批次数量总和不能超过拆分数量!',
type: 'warning'
})
this.formFields[this.formFields.length - 1].batchQuantity = Number(this.productData[0].atrr1) - Number(Number(sum) - Number(e));
}
//

Loading…
Cancel
Save