Browse Source

0412 新看板

master
ruanqi 3 years ago
parent
commit
09a293cfd5
  1. 6
      src/api/production.js
  2. 463
      src/views/modules/production/dailyPlanReport.vue
  3. 377
      src/views/modules/production/dailyPlanReport_old.vue
  4. 15
      src/views/modules/production/scheduleForSOTask.vue
  5. 287
      src/views/modules/production/searchHunlianTask.vue

6
src/api/production.js

@ -51,5 +51,11 @@ export const scheduleForSOTask=data => createAPI(`dailyPlan/scheduleForSOTask`,
export const saveHunlianTask=data => createAPI(`dailyPlan/saveHunlianTask`, 'post', data); export const saveHunlianTask=data => createAPI(`dailyPlan/saveHunlianTask`, 'post', data);
export const getHunlianTaskData=data => createAPI(`dailyPlan/getHunlianTaskData`, 'post', data);
export const getHunlianTaskDetailData=data => createAPI(`dailyPlan/getHunlianTaskDetailData`, 'post', data);
export const cancelTask=data => createAPI(`dailyPlan/cancelTask`, 'post', data);
export const reportTask=data => createAPI(`dailyPlan/reportTask`, 'post', data);
export const cancelReportTask=data => createAPI(`dailyPlan/cancelReportTask`, 'post', data);

463
src/views/modules/production/dailyPlanReport.vue

@ -1,20 +1,17 @@
<template> <template>
<div class="mod-config"> <div class="mod-config">
<el-form :inline="true" label-position="top" label-width="100px" > <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 :label="'混炼任务单号:'">
<el-input v-model="searchData.taskNo" style="width: 120px"></el-input>
</el-form-item > </el-form-item >
<el-form-item :label="'订单号:'">
<el-input v-model="searchData.orderRef1" style="width: 120px"></el-input>
</el-form-item>
<el-form-item > <el-form-item >
<span slot="label" style="" @click="getBaseList(5)"><a herf="#">物料编码</a></span> <span slot="label" style="" @click="getBaseList(5)"><a herf="#">物料编码</a></span>
<el-input v-model="searchData.partNo" style="width: 120px"></el-input> <el-input v-model="searchData.partNo" style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'计划日期:'">
<el-form-item :label="'合并日期:'">
<el-date-picker <el-date-picker
style="width: 130px" style="width: 130px"
v-model="searchData.startDate1"
v-model="searchData.startDate"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择日期"> placeholder="选择日期">
@ -26,128 +23,174 @@
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-date-picker <el-date-picker
style="width: 130px" style="width: 130px"
v-model="searchData.endDate1"
v-model="searchData.endDate"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="'状态:'">
<el-select filterable v-model="searchData.finishFlag" style="width: 120px">
<el-form-item :label="'是否报工:'">
<el-select filterable v-model="searchData.reportFlag" style="width: 120px">
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option label="可报工" value="N"></el-option>
<el-option label="不可报工" value="Y"></el-option>
<el-option label="" value="N"></el-option>
<el-option label="" value="Y"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-button @click="search()" style="margin-left: 0px;margin-top: 0px" type="primary">查询</el-button> <el-button @click="search()" style="margin-left: 0px;margin-top: 0px" type="primary">查询</el-button>
<el-button @click="reports()" style="margin-left: 0px;margin-top: 0px" type="primary">批量报工</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
:height="height" :height="height"
:data="tableData" :data="tableData"
border border
@selection-change="selectionChangeHandle"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
type="selection"
prop=""
header-align="center"
align="center" align="center"
width="30">
min-width="130"
label="操作">
<template slot-scope="scope" class="foo_container">
<a type="text" v-if="scope.row.reportFlag=='N'" size="small" @click="reportTaskModal(scope.row)">报工</a>
<a type="text" v-if="scope.row.reportFlag=='Y'&&scope.row.wareHouseFlag=='N'" size="small" @click="cancelReportTask(scope.row)">取消报工</a>
<a type="text" size="small" @click="printPartCard(scope.row)">物料标识卡</a>
<a type="text" size="small" @click="detailModal(scope.row)">查看周计划明细</a>
<a type="text" v-if="scope.row.reportFlag=='N'" size="small" @click="cancelTask(scope.row)">取消任务</a>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="orderNo"
prop="taskNo"
header-align="center" header-align="center"
align="left" align="left"
min-width="80" min-width="80"
label="日计划单号">
</el-table-column>
<el-table-column
prop="orderDate"
header-align="center"
align="left"
min-width="70"
label="计划日期">
</el-table-column>
<el-table-column
prop="orderRef1"
header-align="center"
align="left"
min-width="90"
label="订单号">
label="混炼任务单号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="partNo" prop="partNo"
header-align="center" header-align="center"
align="left" align="left"
min-width="70" min-width="70"
label="物料编码">
label="混炼物料编码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="partDescription"
prop="partDesc"
header-align="center" header-align="center"
align="left" align="left"
min-width="200"
label="物料名称">
</el-table-column>
<el-table-column
prop="orderQty"
header-align="center"
align="right"
min-width="50"
label="计划数量">
min-width="100"
label="混炼胶名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="qtyfinished"
prop="taskQty"
header-align="center" header-align="center"
align="right" align="right"
min-width="50"
label="已完工数">
min-width="100"
label="混炼胶数量">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="inputQty"
prop="createDate"
header-align="center" header-align="center"
align="right"
min-width="80"
label="输入混炼胶重量">
align="left"
min-width="70"
label="合并日期">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="userName"
prop="createBy"
header-align="center" header-align="center"
align="left" align="left"
min-width="50"
label="录入人">
min-width="70"
label="创建人">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="enterDate"
prop="reportFlag"
header-align="center" header-align="center"
align="left" align="left"
min-width="100"
label="录入时间">
min-width="70"
label="是否报工">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="reportTime"
prop="reportQty"
header-align="center" header-align="center"
align="left"
min-width="100"
label="报工时间">
align="right"
min-width="70"
label="报工数量">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop=""
prop="wareHouseFlag"
header-align="center" header-align="center"
align="center"
min-width="30"
label="操作">
<template slot-scope="scope" class="foo_container">
<a type="text" size="small" @click="reportModal(scope.row)">报工</a>
</template>
align="left"
min-width="70"
label="是否入库">
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag title="周计划清单" :visible.sync="detailFlag" width="600px">
<el-table
height="300"
:data="detailList"
border
style="width: 100%">
<el-table-column
prop="taskNo"
header-align="center"
align="left"
min-width="80"
label="混炼任务单号">
</el-table-column>
<el-table-column
prop="orderNo"
header-align="center"
align="left"
min-width="70"
label="周计划号">
</el-table-column>
<el-table-column
prop="partDesc"
header-align="center"
align="left"
min-width="100"
label="混炼胶名称">
</el-table-column>
<el-table-column
prop="orderNo"
header-align="center"
align="left"
min-width="70"
label="周计划号">
</el-table-column>
<el-table-column
prop="orderQty"
header-align="center"
align="right"
min-width="70"
label="周计划数量">
</el-table-column>
<el-table-column
prop="hunlianQty"
header-align="center"
align="right"
min-width="70"
label="混炼胶数量">
</el-table-column>
<el-table-column
prop="orderDate"
header-align="center"
align="left"
min-width="100"
label="周计划日期">
</el-table-column>
<el-dialog title="保存报工" :close-on-click-modal="false" v-drag :visible.sync="reportModalFlag" width="341px">
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="detailFlag = false" type="primary">关闭</el-button>
</span>
</el-dialog>
<el-dialog title="保存报工" :close-on-click-modal="false" v-drag :visible.sync="reportModalFlag" width="470px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'日计划号:'">
<el-input v-model="reportData.orderNo" disabled style="width: 130px"></el-input>
<el-form-item :label="'任务单号:'">
<el-input v-model="reportData.taskNo" disabled style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'所需数量:'">
<el-input v-model="reportData.qtyRequired" disabled style="width: 130px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'混炼胶报工重量:'"> <el-form-item :label="'混炼胶报工重量:'">
<el-input v-model="reportData.reportQty" type="number" style="width: 130px"></el-input> <el-input v-model="reportData.reportQty" type="number" style="width: 130px"></el-input>
@ -159,21 +202,6 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog title="批量报工" :close-on-click-modal="false" v-drag :visible.sync="reportsModalFlag" width="341px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'混炼胶总报工重量:'">
<el-input v-model="qtyIn" @change="changeAverage" type="number" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'平均报工重量:'">
<el-input v-model="qtyAverage" disabled style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="reportsSave()">保存</el-button>
<el-button type="primary" @click="reportsModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div> </div>
@ -181,48 +209,42 @@
<script> <script>
import { import {
getDailyPlanData,
dailyPlanReportSave,
dailyPlanReportsSave
getHunlianTaskData,getHunlianTaskDetailData
,cancelTask,reportTask,cancelReportTask
} from "@/api/production.js" } from "@/api/production.js"
import {
printTransNoLabel,
} from "@/views/modules/production/print_transNo_label.js"
import {
printPartLabel,
} from "@/views/modules/production/print_part_label.js"
import decimalUtil from '../../../utils/decimalUtil' import decimalUtil from '../../../utils/decimalUtil'
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
export default { export default {
name: 'dailyPlanReport',
components: { components: {
Chooselist Chooselist
}, },
data () { data () {
return { return {
reportsModalFlag:false,
reportModalFlag:false,
reportData:{
orderNo:'',
reportQty:'',
reportBy:this.$store.state.user.name,
site:this.$store.state.user.site,
orderRef1: '',
},
orderRef1:'',
needQty:0,
height:200,
tableData:[],
qtyAverage:0,
qtyIn:'',
date1:'',
searchData:{ searchData:{
finishFlag:'N',
orderNo:'',
orderRef1:'',
taskNo:'',
partNo:'', partNo:'',
startDate1:new Date(),
endDate1:'',
status:'all',
site:this.$store.state.user.site,
startDate:'',
endDate:'',
reportFlag:'N',
}, },
dataListSelections:[],
height:200,
tagNo:'', tagNo:'',
tableData:[],
detailList:[],
detailFlag:false,
reportModalFlag:false,
reportData:{
site:'',
taskNo:'',
qtyRequired: '',
reportQty:'',
}
} }
}, },
mounted() { mounted() {
@ -247,122 +269,129 @@
this.searchData.partNo = val.PartNo this.searchData.partNo = val.PartNo
} }
}, },
selectionChangeHandle (val) {
this.dataListSelections = val
},
search(){ search(){
getDailyPlanData(this.searchData).then(({data}) => {
getHunlianTaskData(this.searchData).then(({data}) => {
this.tableData = data.rows; this.tableData = data.rows;
}) })
}, },
reportModal(row){
if(row.orderQty<=row.qtyfinished){
this.$alert('此日计划已报工完毕!', '错误', {
confirmButtonText: '确定'
detailModal(row){
let inData={
site:row.site,
taskNo:row.taskNo,
}
getHunlianTaskDetailData(inData).then(({data}) => {
this.detailList = data.rows;
})
this.detailFlag=true;
},
printPartCard(row){
let array=[];
let data={
printerName:'大标签打印机',
orderNo:'*',
userId:this.$store.state.user.name,
partNo:row.partNo,
sScheduledDate:row.createDate,
operatorName:this.$store.state.user.name,
partDesc:row.partDesc,
qtyRequired:row.taskQty,
toExpireDays:row.toExpireDays,
}
array.push(data)
printPartLabel(array)
},
cancelTask(row){
this.$confirm(`是否删除混炼任务单?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
cancelTask(row).then(({data}) => {
if (data && data.code === 0) {
this.search ();
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
}) })
return false
}).catch(() => {
})
},
reportTaskModal(row){
this.reportData={
site:row.site,
taskNo:row.taskNo,
qtyRequired: row.taskQty,
reportQty:'',
partNo:row.partNo,
userId:this.$store.state.user.name,
} }
this.reportData.orderNo=row.orderNo;
this.needQty=decimalUtil.sub(row.orderQty,row.qtyfinished);
this.reportData.reportQty=0;
this.reportData.orderRef1=row.orderRef1;
this.reportModalFlag=true; this.reportModalFlag=true;
}, },
reportSave(){
// if(this.reportData.reportQty<this.needQty){
// this.$alert('', '', {
// confirmButtonText: ''
// })
// return false;
// }
dailyPlanReportSave(this.reportData).then(({data}) => {
if (data && data.code === 0) {
this.search();
this.reportModalFlag=false;
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
cancelReportTask(row){
this.$confirm(`是否取消报工?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
cancelReportTask(row).then(({data}) => {
if (data && data.code === 0) {
this.search ();
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}).catch(() => {
}) })
}, },
//
reports(){
if(this.dataListSelections.length==0){
this.$alert('请勾选需要报工的日计划!','错误',{
reportSave(){
if(this.reportData.reportQty<this.reportData.qtyRequired){
this.$alert('报工数量不足,无法报工!', '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
}) })
return false;
}
let orderRef=this.dataListSelections[0].orderRef1;
for (let i = 0; i <this.dataListSelections.length ; i++) {
if(orderRef!=this.dataListSelections[i].orderRef1){
this.$alert('请选择同一订单的日计划!','错误',{
confirmButtonText: '确定'
})
return false;
}
if(this.dataListSelections[i].orderQty<=this.dataListSelections[i].qtyfinished){
this.$alert('存在已报工完成的订单!','错误',{
confirmButtonText: '确定'
})
return false;
}
}
this.qtyIn='';
this.qtyAverage='0';
this.orderRef1=orderRef;
this.reportsModalFlag=true;
},
changeAverage(){
this.qtyAverage=this.decimalUtil.div(this.qtyIn,this.dataListSelections.length);
if(this.qtyAverage!=Math.ceil(this.qtyAverage)){
this.qtyAverage=this.decimalUtil.div(this.qtyIn,this.dataListSelections.length).toFixed(1);
}
},
reportsSave(){
// for (let i = 0; i <this.dataListSelections.length ; i++) {
// if(this.dataListSelections[i].orderQty>this.qtyAverage){
// this.$alert('','',{
// confirmButtonText: ''
// })
// return false;
// }
// }
let inList=[];
for (let i = 0; i <this.dataListSelections.length ; i++) {
let indata={
orderNo:this.dataListSelections[i].orderNo,
reportQty:this.qtyAverage,
reportBy:this.$store.state.user.name,
site:this.$store.state.user.site,
orderRef1:this.orderRef1
}
inList.push(indata)
return false
} }
dailyPlanReportsSave(inList).then(({data}) => {
if (data && data.code === 0) {
this.search();
this.reportsModalFlag=false;
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
this.$confirm(`确认是否报工?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
reportTask(this.reportData).then(({data}) => {
if (data && data.code === 0) {
this.search ();
this.reportModalFlag=false;
console.log(data.printData)
data.printData.seqNo='*'
let inList=[];
inList.push(data.printData)
printTransNoLabel(inList)
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}).catch(() => {
}) })
} }
}, },

377
src/views/modules/production/dailyPlanReport_old.vue

@ -0,0 +1,377 @@
<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.orderRef1" style="width: 120px"></el-input>
</el-form-item>
<el-form-item >
<span slot="label" style="" @click="getBaseList(5)"><a herf="#">物料编码</a></span>
<el-input v-model="searchData.partNo" style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'计划日期:'">
<el-date-picker
style="width: 130px"
v-model="searchData.startDate1"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item style="margin-top: 23px;">
<laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
</el-form-item>
<el-form-item :label="' '">
<el-date-picker
style="width: 130px"
v-model="searchData.endDate1"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item :label="'状态:'">
<el-select filterable v-model="searchData.finishFlag" style="width: 120px">
<el-option label="全部" value=""></el-option>
<el-option label="可报工" value="N"></el-option>
<el-option label="不可报工" value="Y"></el-option>
</el-select>
</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="reports()" style="margin-left: 0px;margin-top: 0px" type="primary">批量报工</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="tableData"
border
@selection-change="selectionChangeHandle"
style="width: 100%">
<el-table-column
type="selection"
align="center"
width="30">
</el-table-column>
<el-table-column
prop="orderNo"
header-align="center"
align="left"
min-width="80"
label="日计划单号">
</el-table-column>
<el-table-column
prop="orderDate"
header-align="center"
align="left"
min-width="70"
label="计划日期">
</el-table-column>
<el-table-column
prop="orderRef1"
header-align="center"
align="left"
min-width="90"
label="订单号">
</el-table-column>
<el-table-column
prop="partNo"
header-align="center"
align="left"
min-width="70"
label="物料编码">
</el-table-column>
<el-table-column
prop="partDescription"
header-align="center"
align="left"
min-width="200"
label="物料名称">
</el-table-column>
<el-table-column
prop="orderQty"
header-align="center"
align="right"
min-width="50"
label="计划数量">
</el-table-column>
<el-table-column
prop="qtyfinished"
header-align="center"
align="right"
min-width="50"
label="已完工数">
</el-table-column>
<el-table-column
prop="inputQty"
header-align="center"
align="right"
min-width="80"
label="输入混炼胶重量">
</el-table-column>
<el-table-column
prop="userName"
header-align="center"
align="left"
min-width="50"
label="录入人">
</el-table-column>
<el-table-column
prop="enterDate"
header-align="center"
align="left"
min-width="100"
label="录入时间">
</el-table-column>
<el-table-column
prop="reportTime"
header-align="center"
align="left"
min-width="100"
label="报工时间">
</el-table-column>
<el-table-column
prop=""
header-align="center"
align="center"
min-width="30"
label="操作">
<template slot-scope="scope" class="foo_container">
<a type="text" size="small" @click="reportModal(scope.row)">报工</a>
</template>
</el-table-column>
</el-table>
<el-dialog title="保存报工" :close-on-click-modal="false" v-drag :visible.sync="reportModalFlag" width="341px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'日计划号:'">
<el-input v-model="reportData.orderNo" disabled style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'混炼胶报工重量:'">
<el-input v-model="reportData.reportQty" type="number" style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="reportSave()">保存</el-button>
<el-button type="primary" @click="reportModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="批量报工" :close-on-click-modal="false" v-drag :visible.sync="reportsModalFlag" width="341px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'混炼胶总报工重量:'">
<el-input v-model="qtyIn" @change="changeAverage" type="number" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'平均报工重量:'">
<el-input v-model="qtyAverage" disabled style="width: 130px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="reportsSave()">保存</el-button>
<el-button type="primary" @click="reportsModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {
getDailyPlanData,
dailyPlanReportSave,
dailyPlanReportsSave
} from "@/api/production.js"
import decimalUtil from '../../../utils/decimalUtil'
import Chooselist from '@/views/modules/common/Chooselist'
export default {
name: 'dailyPlanReport_old',
components: {
Chooselist
},
data () {
return {
reportsModalFlag:false,
reportModalFlag:false,
reportData:{
orderNo:'',
reportQty:'',
reportBy:this.$store.state.user.name,
site:this.$store.state.user.site,
orderRef1: '',
},
orderRef1:'',
needQty:0,
height:200,
tableData:[],
qtyAverage:0,
qtyIn:'',
date1:'',
searchData:{
finishFlag:'N',
orderNo:'',
orderRef1:'',
partNo:'',
startDate1:new Date(),
endDate1:'',
status:'all',
site:this.$store.state.user.site,
},
dataListSelections:[],
tagNo:'',
}
},
mounted() {
this.$nextTick(()=>{
this.height = window.innerHeight - 180;
})
},
methods: {
getBaseList (val,type) {
this.tagNo = val
this.$nextTick(() => {
let strVal = ''
if (val === 5) {
strVal = this.searchData.partNo
}
this.$refs.baseList.init(val, strVal)
})
},
/* 列表方法的回调 */
getBaseData (val) {
if (this.tagNo === 5) {
this.searchData.partNo = val.PartNo
}
},
selectionChangeHandle (val) {
this.dataListSelections = val
},
search(){
getDailyPlanData(this.searchData).then(({data}) => {
this.tableData = data.rows;
})
},
reportModal(row){
if(row.orderQty<=row.qtyfinished){
this.$alert('此日计划已报工完毕!', '错误', {
confirmButtonText: '确定'
})
return false
}
this.reportData.orderNo=row.orderNo;
this.needQty=decimalUtil.sub(row.orderQty,row.qtyfinished);
this.reportData.reportQty=0;
this.reportData.orderRef1=row.orderRef1;
this.reportModalFlag=true;
},
reportSave(){
// if(this.reportData.reportQty<this.needQty){
// this.$alert('', '', {
// confirmButtonText: ''
// })
// return false;
// }
dailyPlanReportSave(this.reportData).then(({data}) => {
if (data && data.code === 0) {
this.search();
this.reportModalFlag=false;
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
//
reports(){
if(this.dataListSelections.length==0){
this.$alert('请勾选需要报工的日计划!','错误',{
confirmButtonText: '确定'
})
return false;
}
let orderRef=this.dataListSelections[0].orderRef1;
for (let i = 0; i <this.dataListSelections.length ; i++) {
if(orderRef!=this.dataListSelections[i].orderRef1){
this.$alert('请选择同一订单的日计划!','错误',{
confirmButtonText: '确定'
})
return false;
}
if(this.dataListSelections[i].orderQty<=this.dataListSelections[i].qtyfinished){
this.$alert('存在已报工完成的订单!','错误',{
confirmButtonText: '确定'
})
return false;
}
}
this.qtyIn='';
this.qtyAverage='0';
this.orderRef1=orderRef;
this.reportsModalFlag=true;
},
changeAverage(){
this.qtyAverage=this.decimalUtil.div(this.qtyIn,this.dataListSelections.length);
if(this.qtyAverage!=Math.ceil(this.qtyAverage)){
this.qtyAverage=this.decimalUtil.div(this.qtyIn,this.dataListSelections.length).toFixed(1);
}
},
reportsSave(){
// for (let i = 0; i <this.dataListSelections.length ; i++) {
// if(this.dataListSelections[i].orderQty>this.qtyAverage){
// this.$alert('','',{
// confirmButtonText: ''
// })
// return false;
// }
// }
let inList=[];
for (let i = 0; i <this.dataListSelections.length ; i++) {
let indata={
orderNo:this.dataListSelections[i].orderNo,
reportQty:this.qtyAverage,
reportBy:this.$store.state.user.name,
site:this.$store.state.user.site,
orderRef1:this.orderRef1
}
inList.push(indata)
}
dailyPlanReportsSave(inList).then(({data}) => {
if (data && data.code === 0) {
this.search();
this.reportsModalFlag=false;
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}
},
created() {
}
}
</script>
<style >
.el-table .cell {
padding: 0px;
}
</style>

15
src/views/modules/production/scheduleForSOTask.vue

@ -53,6 +53,13 @@
<el-option label="已派工完" value="isnull(SL.scheduledQty,0)>= a.OrderQty"></el-option> <el-option label="已派工完" value="isnull(SL.scheduledQty,0)>= a.OrderQty"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="'是否打料完成:'">
<el-select filterable v-model="searchData.finishFlag" style="width: 120px">
<el-option label="全部" value=""></el-option>
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-button @click="search()" style="margin-left: 24px" type="primary">查询</el-button> <el-button @click="search()" style="margin-left: 24px" type="primary">查询</el-button>
<download-excel <download-excel
@ -96,6 +103,13 @@
min-width="120" min-width="120"
label="日计划号"> label="日计划号">
</el-table-column> </el-table-column>
<el-table-column
prop="finishFlag"
header-align="center"
align="left"
min-width="90"
label="是否打料完成">
</el-table-column>
<el-table-column <el-table-column
prop="itemNo" prop="itemNo"
header-align="center" header-align="center"
@ -429,6 +443,7 @@
site: this.$store.state.user.site, site: this.$store.state.user.site,
planStatus: 'a.OrderQty>isnull(SL.scheduledQty,0)', planStatus: 'a.OrderQty>isnull(SL.scheduledQty,0)',
itemNo:'', itemNo:'',
finishFlag:'',
}, },
schedulingModalData: { schedulingModalData: {
orderNo: '', orderNo: '',

287
src/views/modules/production/searchHunlianTask.vue

@ -0,0 +1,287 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" label-width="100px" >
<el-form-item :label="'混炼任务单号:'">
<el-input v-model="searchData.taskNo" style="width: 120px"></el-input>
</el-form-item >
<el-form-item >
<span slot="label" style="" @click="getBaseList(5)"><a herf="#">物料编码</a></span>
<el-input v-model="searchData.partNo" style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'合并日期:'">
<el-date-picker
style="width: 130px"
v-model="searchData.startDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item style="margin-top: 23px;">
<laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
</el-form-item>
<el-form-item :label="' '">
<el-date-picker
style="width: 130px"
v-model="searchData.endDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item :label="'是否报工:'">
<el-select filterable v-model="searchData.reportFlag" style="width: 120px">
<el-option label="全部" value=""></el-option>
<el-option label="否" value="N"></el-option>
<el-option label="是" value="Y"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="' '">
<el-button @click="search()" style="margin-left: 0px;margin-top: 0px" type="primary">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="tableData"
border
style="width: 100%">
<el-table-column
prop=""
header-align="center"
align="center"
min-width="100"
label="操作">
<template slot-scope="scope" class="foo_container">
<a type="text" size="small" @click="printPartCard(scope.row)">物料标识卡</a>
<a type="text" size="small" @click="detailModal(scope.row)">查看周计划明细</a>
</template>
</el-table-column>
<el-table-column
prop="taskNo"
header-align="center"
align="left"
min-width="80"
label="混炼任务单号">
</el-table-column>
<el-table-column
prop="partNo"
header-align="center"
align="left"
min-width="70"
label="混炼物料编码">
</el-table-column>
<el-table-column
prop="partDesc"
header-align="center"
align="left"
min-width="100"
label="混炼胶名称">
</el-table-column>
<el-table-column
prop="taskQty"
header-align="center"
align="right"
min-width="100"
label="混炼胶数量">
</el-table-column>
<el-table-column
prop="createDate"
header-align="center"
align="left"
min-width="70"
label="合并日期">
</el-table-column>
<el-table-column
prop="createBy"
header-align="center"
align="left"
min-width="70"
label="创建人">
</el-table-column>
<el-table-column
prop="reportFlag"
header-align="center"
align="left"
min-width="70"
label="是否报工">
</el-table-column>
<el-table-column
prop="reportQty"
header-align="center"
align="right"
min-width="70"
label="报工数量">
</el-table-column>
<el-table-column
prop="wareHouseFlag"
header-align="center"
align="left"
min-width="70"
label="是否入库">
</el-table-column>
</el-table>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag title="周计划清单" :visible.sync="detailFlag" width="600px">
<el-table
height="300"
:data="detailList"
border
style="width: 100%">
<el-table-column
prop="taskNo"
header-align="center"
align="left"
min-width="80"
label="混炼任务单号">
</el-table-column>
<el-table-column
prop="orderNo"
header-align="center"
align="left"
min-width="70"
label="周计划号">
</el-table-column>
<el-table-column
prop="partDesc"
header-align="center"
align="left"
min-width="100"
label="混炼胶名称">
</el-table-column>
<el-table-column
prop="orderNo"
header-align="center"
align="left"
min-width="70"
label="周计划号">
</el-table-column>
<el-table-column
prop="orderQty"
header-align="center"
align="right"
min-width="70"
label="周计划数量">
</el-table-column>
<el-table-column
prop="hunlianQty"
header-align="center"
align="right"
min-width="70"
label="混炼胶数量">
</el-table-column>
<el-table-column
prop="orderDate"
header-align="center"
align="left"
min-width="100"
label="周计划日期">
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="detailFlag = false" type="primary">关闭</el-button>
</span>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {
getHunlianTaskData,getHunlianTaskDetailData
} from "@/api/production.js"
import {
printPartLabel,
} from "@/views/modules/production/print_part_label.js"
import decimalUtil from '../../../utils/decimalUtil'
import Chooselist from '@/views/modules/common/Chooselist'
export default {
components: {
Chooselist
},
data () {
return {
searchData:{
taskNo:'',
partNo:'',
startDate:'',
endDate:'',
reportFlag:'N',
},
height:200,
tagNo:'',
tableData:[],
detailList:[],
detailFlag:false,
}
},
mounted() {
this.$nextTick(()=>{
this.height = window.innerHeight - 180;
})
},
methods: {
getBaseList (val,type) {
this.tagNo = val
this.$nextTick(() => {
let strVal = ''
if (val === 5) {
strVal = this.searchData.partNo
}
this.$refs.baseList.init(val, strVal)
})
},
/* 列表方法的回调 */
getBaseData (val) {
if (this.tagNo === 5) {
this.searchData.partNo = val.PartNo
}
},
search(){
getHunlianTaskData(this.searchData).then(({data}) => {
this.tableData = data.rows;
})
},
detailModal(row){
let inData={
site:row.site,
taskNo:row.taskNo,
}
getHunlianTaskDetailData(inData).then(({data}) => {
this.detailList = data.rows;
})
this.detailFlag=true;
},
printPartCard(row){
let array=[];
let data={
printerName:'大标签打印机',
orderNo:'*',
userId:this.$store.state.user.name,
partNo:row.partNo,
sScheduledDate:row.createDate,
operatorName:this.$store.state.user.name,
partDesc:row.partDesc,
qtyRequired:row.taskQty,
toExpireDays:row.toExpireDays,
}
array.push(data)
printPartLabel(array)
},
},
created() {
}
}
</script>
<style >
.el-table .cell {
padding: 0px;
}
</style>
Loading…
Cancel
Save