You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
484 lines
15 KiB
484 lines
15 KiB
<template>
|
|
<div class="mod-config">
|
|
<el-form :inline="true" label-position="top" label-width="100px" >
|
|
<el-form-item :label="'硫化订单号:'">
|
|
<el-input v-model="searchData.orderNo" style="width: 120px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item :label="'硫化日计划号:'">
|
|
<el-input v-model="searchData.soTaskNo" style="width: 120px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item :label="'硫化产品名称:'">
|
|
<el-input v-model="searchData.partDescSpec" style="width: 120px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item :label="' '">
|
|
<el-button @click="search()" style="margin-left: 0px;margin-top: 0px" type="primary">查询</el-button>
|
|
<el-button @click="getSum()" style="margin-left: 0px;margin-top: 0px" type="primary">合并任务单</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<div class="search1">
|
|
<el-table
|
|
cell-style="cc"
|
|
:height="height"
|
|
:data="tableData"
|
|
ref="wt_table"
|
|
@selection-change="selectionChangeHandle"
|
|
border
|
|
:row-class-name="tableRowClassName"
|
|
style="width: 100%;">
|
|
<el-table-column
|
|
type="selection"
|
|
align="center"
|
|
:selectable="selectFlag"
|
|
width="30">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="site"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="40"
|
|
style="font-size: 20px"
|
|
label="工厂编码">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="erpStatus"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="40"
|
|
style="font-size: 20px"
|
|
label="erp状态">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="orderNo"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="65"
|
|
label="硫化订单号">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="orderTypeDesc"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="60"
|
|
label="订单类型">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="orderNoHunlian"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="65"
|
|
label="周计划号">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="partDescSpec"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="硫化产品名称">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="componentPartNo"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="70"
|
|
label="混炼物料编码">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="compPartDescSpec"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="120"
|
|
label="混炼胶名称">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="qtyRequired"
|
|
header-align="center"
|
|
align="right"
|
|
min-width="45"
|
|
label="混炼胶用量">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjph1"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="50"
|
|
label="生胶牌号1">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjphQtyReq1"
|
|
header-align="center"
|
|
align="right"
|
|
min-width="45"
|
|
label="生胶1用量">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjph2"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="50"
|
|
label="生胶牌号2">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjphQtyReq2"
|
|
header-align="center"
|
|
align="right"
|
|
min-width="45"
|
|
label="生胶2用量">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="planStartDate"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="100"
|
|
label="需求日期">
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
<el-dialog title="混炼任务合并" :close-on-click-modal="false" v-drag :visible.sync="sumFlag" width="700px">
|
|
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
|
|
<el-form-item :label="'混炼物料编码:'">
|
|
<el-input v-model="hunlianPartNo" readonly style="width: 130px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item :label="'混炼产品名称:'">
|
|
<el-input v-model="hunlianPartDesc" readonly style="width: 130px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item :label="'仓库库存:'">
|
|
<el-input v-model="hunlianOnHand" readonly style="width: 130px"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
|
|
<el-form-item :label="'混炼胶用量:'">
|
|
<el-input v-model="qty1" readonly style="width: 130px"></el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item :label="'生胶1用量:'">
|
|
<el-input v-model="qty2" readonly style="width: 130px" ></el-input>
|
|
</el-form-item>
|
|
<el-form-item :label="'生胶2用量:'">
|
|
<el-input v-model="qty3" readonly style="width: 130px" ></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
|
|
<el-form-item :label="'合并备注:'">
|
|
<el-input v-model="remark" style="width: 670px"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-table
|
|
height="200"
|
|
:data="modalTableData"
|
|
ref="tables"
|
|
border
|
|
style="width: 100%">
|
|
<!-- <el-table-column-->
|
|
<!-- prop="orderNo"-->
|
|
<!-- header-align="center"-->
|
|
<!-- align="left"-->
|
|
<!-- min-width="60"-->
|
|
<!-- label="生产订单号">-->
|
|
<!-- </el-table-column>-->
|
|
<el-table-column
|
|
prop="orderNoHunlian"
|
|
header-align="center"
|
|
align="left"
|
|
min-width="60"
|
|
label="周计划号">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="qtyRequired"
|
|
header-align="center"
|
|
align="right"
|
|
min-width="45"
|
|
label="混炼胶用量">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjph1"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="50"
|
|
label="生胶牌号1">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjphQtyReq1"
|
|
header-align="center"
|
|
align="right"
|
|
min-width="45"
|
|
label="生胶1用量">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjph2"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="50"
|
|
label="生胶牌号2">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="sjphQtyReq2"
|
|
header-align="center"
|
|
align="right"
|
|
min-width="45"
|
|
label="生胶2用量">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="planStartDate"
|
|
header-align="center"
|
|
align="center"
|
|
min-width="45"
|
|
label="需求日期">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop=""
|
|
header-align="center"
|
|
align="center"
|
|
width="50"
|
|
fixed="right"
|
|
label="操作">
|
|
<template slot-scope="scope" class="foo_container">
|
|
<a type="text" size="small" @click="splitSchedulesTable(scope.$index)">删除</a>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-footer style="height:40px;margin-top: 20px;text-align:center">
|
|
<el-button type="primary" @click="saveNewPlan">合并</el-button>
|
|
<el-button type="primary" @click="sumFlag = false">取消</el-button>
|
|
</el-footer>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
productionBlankingSearch,
|
|
getPartNoOnHand,
|
|
saveHunlianTask,
|
|
} from '@/api/production.js'
|
|
export default {
|
|
name: 'productionBlankingSearch',
|
|
data () {
|
|
return {
|
|
sumFlag:false,
|
|
pageIndex: 1,
|
|
totalPage: 1,
|
|
height: 200,
|
|
tableData: [],
|
|
searchData:{
|
|
orderNo:'',
|
|
partDescSpec:'',
|
|
soTaskNo:'',
|
|
},
|
|
dataListSelections: [],
|
|
qty1:0,
|
|
qty2:0,
|
|
qty3:0,
|
|
hunlianPartDesc:'',
|
|
modalTableData:[],
|
|
hunlianPartNo:'',
|
|
hunlianOnHand:'',
|
|
remark:'',
|
|
}
|
|
},
|
|
mounted () {
|
|
this.$nextTick(() => {
|
|
this.height = window.innerHeight - 180
|
|
})
|
|
// this.autoRoll()
|
|
},
|
|
methods: {
|
|
splitSchedulesTable (index) {
|
|
|
|
this.modalTableData.splice(index, 1)
|
|
let modalTableData=this.modalTableData;
|
|
this.qty1=0;
|
|
this.qty2=0;
|
|
this.qty3=0;
|
|
for (let i = 0; i <modalTableData.length ; i++) {
|
|
if(modalTableData[i].qtyRequired!=null){
|
|
let num1=this.qty1+modalTableData[i].qtyRequired;
|
|
this.qty1=num1;
|
|
}
|
|
if(modalTableData[i].sjphQtyReq1!=null){
|
|
let num2=this.qty2+modalTableData[i].sjphQtyReq1;
|
|
this.qty2=num2;
|
|
}
|
|
if(modalTableData[i].sjphQtyReq2!=null){
|
|
let num3=this.qty3+modalTableData[i].sjphQtyReq2;
|
|
this.qty3=num3;
|
|
}
|
|
}
|
|
this.qty1=Number(this.qty1).toFixed(2);
|
|
this.qty2=Number(this.qty2).toFixed(2);
|
|
this.qty3=Number(this.qty3).toFixed(2);
|
|
},
|
|
selectFlag(row,index){
|
|
if(row.orderNo==null||row.erp=='已取消'||row.finishedFlag=='2'||row.finishedFlag=='3'){
|
|
return false;
|
|
}else {
|
|
return true;
|
|
}
|
|
},
|
|
// 多选数据
|
|
selectionChangeHandle (val) {
|
|
this.dataListSelections = val
|
|
},
|
|
tableRowClassName ({row, rowIndex}) {
|
|
// if (row.finishedFlag == '2') {
|
|
// return 'success-row'
|
|
// }
|
|
// if (row.finishedFlag == '3') {
|
|
// return 'false-row'
|
|
// }
|
|
// if (row.finishedFlag == '4') {
|
|
// return 'yellow-row'
|
|
// }
|
|
if (row.orderTypeDesc==='加急订单'||row.orderTypeDesc==='变更订单') {
|
|
return 'yellow-row'
|
|
}
|
|
return ''
|
|
},
|
|
search () {
|
|
productionBlankingSearch(this.searchData).then(({data}) => {
|
|
for (let i = 0; i <data.rows.length ; i++) {
|
|
if(data.rows[i].site==null||data.rows[i].site==''){
|
|
data.rows[i].componentPartNo=null;
|
|
}
|
|
}
|
|
this.tableData = data.rows;
|
|
})
|
|
},
|
|
getSum(){
|
|
this.qty1=0;
|
|
this.qty2=0;
|
|
this.qty3=0;
|
|
if(this.dataListSelections.length==0){
|
|
this.$alert('未勾选订单!', '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
return false
|
|
}
|
|
let dataList=this.dataListSelections;
|
|
let flag=false;
|
|
for (let i = 0; i <dataList.length ; i++) {
|
|
if(dataList[i].site!=dataList[0].site||dataList[i].componentPartNo!=dataList[0].componentPartNo){
|
|
flag=true;
|
|
}
|
|
}
|
|
if(flag){
|
|
this.$alert('勾选订单不是同一个工厂或者混炼物料!', '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
return false
|
|
}
|
|
for (let i = 0; i <dataList.length ; i++) {
|
|
if(dataList[i].qtyRequired!=null){
|
|
let num1=this.qty1+dataList[i].qtyRequired;
|
|
this.qty1=num1;
|
|
}
|
|
if(dataList[i].sjphQtyReq1!=null){
|
|
let num2=this.qty2+dataList[i].sjphQtyReq1;
|
|
this.qty2=num2;
|
|
}
|
|
if(dataList[i].sjphQtyReq2!=null){
|
|
let num3=this.qty3+dataList[i].sjphQtyReq2;
|
|
this.qty3=num3;
|
|
}
|
|
}
|
|
this.getPartNoOnHand(dataList[0].site,dataList[0].componentPartNo);
|
|
this.hunlianPartDesc=dataList[0].compPartDescSpec;
|
|
this.hunlianPartNo=dataList[0].componentPartNo;
|
|
this.qty1=Number(this.qty1).toFixed(2);
|
|
this.qty2=Number(this.qty2).toFixed(2);
|
|
this.qty3=Number(this.qty3).toFixed(2);
|
|
this.modalTableData=JSON.parse(JSON.stringify(dataList))
|
|
this.sumFlag=true;
|
|
},
|
|
getPartNoOnHand(site,partNo){
|
|
let inData={
|
|
site:site,
|
|
partNo:partNo,
|
|
}
|
|
getPartNoOnHand(inData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
if(data.row!=null){
|
|
this.hunlianOnHand=data.row.qtyOnHand;
|
|
}else {
|
|
this.hunlianOnHand=0;
|
|
}
|
|
} else {
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
})
|
|
},
|
|
saveNewPlan(){
|
|
if(this.modalTableData.length==0){
|
|
this.$alert("列表中不存在周计划!", '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
return false;
|
|
}
|
|
let detailList=[];
|
|
for (let i = 0; i <this.modalTableData.length; i++) {
|
|
let data={
|
|
site:this.modalTableData[i].site,
|
|
orderNo:this.modalTableData[i].orderNoHunlian,
|
|
orderRef1:this.modalTableData[i].orderNo,
|
|
hunlianQty:this.modalTableData[i].qtyRequired,
|
|
orderDate:this.modalTableData[i].planStartDate,
|
|
hunlianPartNo:this.modalTableData[i].componentPartNo,
|
|
}
|
|
detailList.push(data);
|
|
}
|
|
let inData={
|
|
site:this.modalTableData[0].site,
|
|
taskQty:this.qty1,
|
|
partNo:this.modalTableData[0].componentPartNo,
|
|
remark:this.remark,
|
|
createBy:this.$store.state.user.name,
|
|
detailList:detailList
|
|
}
|
|
this.$confirm(`是否合并这些周计划?`, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
|
|
}).then(() => {
|
|
saveHunlianTask(inData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.search ();
|
|
this.sumFlag = false;
|
|
this.$message({
|
|
message: '操作成功',
|
|
type: 'success',
|
|
duration: 1500,
|
|
onClose: () => {
|
|
}
|
|
})
|
|
} else {
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
},
|
|
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style >
|
|
.search1 .el-table .success-row {
|
|
background: #1bb61b;
|
|
}
|
|
.search1 .el-table .false-row {
|
|
/*background: #cbcb14;*/
|
|
background: #db1212;
|
|
}
|
|
.search1 .el-table .yellow-row{
|
|
background: #ffff00;
|
|
}
|
|
.search1 .el-table .cell {
|
|
padding: 0px;
|
|
}
|
|
</style>
|