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.
 
 
 
 
 

1260 lines
45 KiB

<template>
<div class="customer-css">
<el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners"
width="920px" style="height: 680px;" class="customer-dialog">
<el-form :inline="true" label-position="top" style="height: 495px;"
label-width="80px">
<!-- 菜单信息 -->
<el-row>
<el-col :span="24">
<el-form-item :label=labels.currentTime>
<el-date-picker disabled="disabled" style="width: 145px;"
v-model="pageData.reportedTime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="">
</el-date-picker>
</el-form-item>
<el-form-item class="customer-button">
<el-button type="primary" @click="refreshPageData" style="margin-left: 10px; margin-bottom: 5px;">
{{buttons.refreshButton}}</el-button>
</el-form-item>
<el-form-item class="customer-button">
<el-button type="primary" @click="finishRollBun" style="margin-left: 10px; margin-bottom: 5px;">
{{buttons.saveButton}}</el-button>
</el-form-item>
<el-form-item class="customer-button">
<el-button type="primary" @click="closeDialog" style="margin-left: 10px; margin-bottom: 5px;">
{{buttons.closeButton}}</el-button>
</el-form-item>
<el-button v-if="showDefault" @click="saveMultiLanguage()" type="primary">对语言设置</el-button>
</el-col>
</el-row>
<!-- 卷数量统计 班次信息 -->
<el-form>
<fieldset class="customer-fieldset" style="width: 495px;">
<legend>{{labels.rollQtySum}}</legend>
<el-form-item class="customer-item">
<el-checkbox disabled="disabled" style="margin-top: 15px;" true-label="Y" false-label="N"
v-model="pageData.reportedFlag">{{labels.whetherReport}}</el-checkbox>
</el-form-item>
<el-form-item class="customer-item" :label=labels.approvedQty style="margin-top: -10px;">
<el-input v-if="this.preItemNo <= 0" v-model="pageData.approvedQty" type="number" @blur="checkValidApprovedQty"
style="width: 80px;" ></el-input>
<el-input v-if="this.preItemNo > 0" disabled class="customer-input-color-red"
v-model="pageData.approvedQty" type="number" style="width: 80px;" ></el-input>
</el-form-item>
<el-form-item class="customer-item" :label=labels.defectedQty style="margin-top: -10px;">
<el-input v-model="pageData.defectedQty" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item class="customer-item" :label=labels.totalQty style="margin-top: -10px;">
<el-input v-model="pageData.totalQty" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item class="customer-item" :label=labels.otherRollQty style="margin-top: -10px;">
<el-input v-model="pageData.otherRollQty" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
</fieldset>
<!-- 操作员信息和班次信息 -->
<fieldset class="customer-fieldset"
style="margin-left: 500px; margin-top: -70px; ;width: 400px;">
<legend>{{labels.operatorScheduleInfo}}</legend>
<el-form-item class="customer-item" :label=labels.operatorId>
<el-input v-model="operatorData.operatorId" disabled="disabled" style="width: 80px;" ></el-input>
</el-form-item>
<el-form-item class="customer-item" :label=labels.operatorName>
<el-input v-model="operatorData.operatorName" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item class="customer-item" :label=labels.scheduledDate>
<el-input v-model="pageData.scheduledDate" disabled="disabled" style="width: 80px;" ></el-input>
</el-form-item>
<el-form-item class="customer-item" :label=labels.shiftNo>
<el-input v-model="pageData.shiftDesc" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-button type="info" :disabled="buttonTags.selectShiftFlag" plain @click="selectSchduleShiftModal"
style="margin-left: -10px; margin-top: 10px; height: 20px; padding: 3px 3px;">
<icon-svg name="ellipsis" style="height: 10px; width: 10px;" ></icon-svg>
</el-button>
</fieldset>
</el-form>
<!-- 卷生产时间统计产量报告 -->
<el-form style="margin-top: 5px;">
<fieldset class="customer-fieldset" style="width: 320px; margin-top: -10px; ">
<legend>{{labels.rollTimeSum}}</legend>
<!-- 调机时间 -->
<el-row style="margin-top: -10px;">
<el-col :span="24">
<el-form-item :label=labels.totalTuningTime>
<el-input v-model="pageData.totalSetupTime" disabled="disabled" style="width: 80px;" ></el-input>
</el-form-item>
<el-form-item :label=labels.totalTuningDownTime>
<el-input v-model="pageData.totalDowntimeTimeSetup" disabled="disabled" style="width: 100px;"></el-input>
</el-form-item>
<el-form-item :label=labels.totalPureTuningTime >
<el-input v-model="pageData.totalPureSetupTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 生产时间 -->
<el-row>
<el-col :span="24">
<el-form-item :label=labels.totalProdTime>
<el-input v-model="pageData.totalProdTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item :label=labels.totalProdDownTime>
<el-input v-model="pageData.totalDowntimeTimeProd" disabled="disabled" style="width: 100px;"></el-input>
</el-form-item>
<el-form-item :label=labels.totalPureProdTime >
<el-input v-model="pageData.totalPureProdTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 制造时间 -->
<el-row>
<el-col :span="24">
<el-form-item :label=labels.totalManufTime>
<el-input v-model="pageData.totalManufactureTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item :label=labels.totalManufDownTime>
<el-input v-model="pageData.totalManufactureDowntimeTime" disabled="disabled" style="width: 100px;"></el-input>
</el-form-item>
<el-form-item :label=labels.totalPureManufTime >
<el-input v-model="pageData.totalPureManufactureTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
</el-col>
</el-row>
</fieldset>
<!-- 产量报告 -->
<fieldset class="customer-fieldset"
style="margin-left: 325px; margin-top: -144px; width: 575px;">
<legend>{{ labels.produceReport }}</legend>
<!-- 开工时间 -->
<el-row>
<el-col :span="24">
<el-form-item :label=labels.startTime>
<el-input v-model="pageData.eventTime" disabled="disabled" style="width: 130px;"></el-input>
</el-form-item>
<el-form-item :label=labels.finishTime>
<el-input v-model="pageData.tillTime" disabled="disabled" style="width: 130px;"></el-input>
</el-form-item>
<el-form-item :label=labels.prodTime >
<el-input v-model="pageData.sfdcProdTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item :label=labels.tuningTime >
<el-input v-model="pageData.sfdcSetupTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item :label=labels.manufTime>
<el-input v-model="pageData.sfdcManufactureTime" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 合格数量 -->
<el-row>
<el-col :span="24">
<el-form-item :label=labels.sfdcApprovedQty>
<el-input v-model="pageData.sfdcApprovedQty" disabled="disabled" style="width: 130px;"></el-input>
</el-form-item>
<el-form-item :label=labels.sfdcDefectedQty>
<el-input v-model="pageData.defectedQty" disabled="disabled" style="width: 130px;"></el-input>
</el-form-item>
<el-form-item :label=labels.sfdcReportedQty >
<el-input v-model="pageData.sfdcReportedQty" disabled="disabled" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item :label=labels.tuningDown>
<el-input v-model="pageData.sfdcSetupDownTime" style="width: 80px;"></el-input>
</el-form-item>
<el-form-item :label=labels.manufTuning >
<el-input v-model="pageData.sfdcProdSetupTime" style="width: 80px;"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 备注 -->
<el-row>
<el-col :span="24">
<el-form-item :label=labels.remark>
<el-input v-model="pageData.remark" disabled="disabled" style="width: 430px;"></el-input>
</el-form-item>
<el-form-item :label=labels.downTime>
<el-input v-model="pageData.sfdcDownTime" style="width: 80px;"></el-input>
</el-form-item>
</el-col>
</el-row>
</fieldset>
</el-form>
<!-- 主材料 -->
<el-form>
<fieldset class="customer-fieldset" style="width: 830px;">
<legend>{{labels.primaryMaterial}}</legend>
<el-table
height="180"
:data="sfdcMaterialList"
:cell-style="customerCellStyle" :cell-class-name="customerCellClassName"
border
v-loading="dataListLoading"
style="width: 100%; margin-top: -5px;">
<el-table-column
v-for="(item,index) in columnMaterialArray" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<el-input type="number" class="table-input" align="right" @blur="checkValidQty(scope.row)"
v-if="item.columnHidden" v-model="scope.row[item.columnProp]"></el-input>
<span v-else>{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</fieldset>
</el-form>
</el-form>
</el-dialog>
<!-- 异常原因录入的组件 -->
<comExceptionReason ref="comExceptionReason" :close-on-click-modal="false"
:visible.sync="showExceptionFlag"
@initExceptionReason = "initExceptionReason">
</comExceptionReason>
<!-- 班次选择组件 -->
<comSelectShift ref="comSelectShift" :close-on-click-modal="false"
:visible.sync="showShiftFlag"
@initScheduleShift = "initScheduleShift">
</comSelectShift>
</div>
</template>
<script>
/*添加组件*/
import comExceptionReason from "./com_exception_reason";//异常远远
import comSelectShift from "./com_select_shift";//班次选择的组件
import {
getCurrentRollReportedQty,
countSfdcTimeQty,
getScheduleShiftData,
getSfdcTimeMaxAndMinTime,
getSfdcTimeData,
getSfdcReportedData,
getSfdcMaterialByRollNo,
checkFinishPartRollWithNoFqc,
finishPartRollWithNoFqc
} from '@/api/yieldReport/com_finish_part_roll.js';
import {
searchSysLanguagePackList,
searchSysLanguageParam,
searchFunctionButtonList,
saveButtonList,
searchSysLanguage,
searchLanguageListByLanguageCode,
saveSysLanguageOne,
searchPageLanguageData,
removerLanguage,
saveSysLanguageList
} from "@/api/sysLanguage.js";
var functionId = 'C10000015';
export default {
data() {
return {
titleCon: '产量报告',
showDefault: false,
showExceptionFlag: false,
showShiftFlag: false,
preItemNo: 0,
sfdcTimeList: [],
scheduleData: {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
seqNo: '',
orderNo: '',
itemNo: 0,
partNo: '',
workCenterNo: '',
workCenterDesc: '',
resourceDesc: '',
rollNo: '',
partDesc: '',
planStartTime: '',
planFinishTime: '',
qtyRequiredOriginal: 0,
scheduledDate: '',
shiftNo: '',
preItemDesc: '',
nextItemDesc: '',
nextItemNo: 0,
operatorId: '',
functionName: '',
currentRollFlag: false
},
pageData: {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
orderNo: '',
itemNo: 0,
seqNo: '',
rollNo: '',
resourceId: '',
scheduledDate: '',
shiftNo: '',
reportedTime: this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
reportedFlag: 'N',
approvedQty: 0,
defectedQty: 0,
totalQty: 0,
editNewRollQty: 0,
otherRollQty: '',
shiftDesc: '',
totalSetupTime: 0,
totalDowntimeTimeSetup: 0,
totalPureSetupTime: 0,
totalProdTime: 0,
totalDowntimeTimeProd: 0,
totalPureProdTime: 0,
totalManufactureTime: 0,
totalManufactureDowntimeTime: 0,
totalPureManufactureTime: 0,
sfdcProdTime: 0,//生产时间
sfdcSetupTime: 0,//调机时间
sfdcManufactureTime: 0,//制造时间
sfdcSetupDownTime: 0,//调机停机时间
sfdcProdSetupTime: 0,//生产调机时间
sfdcDownTime: 0,//停机时间
eventTime: '',
tillTime: '',
sfdcApprovedQty: 0,
sfdcDefectedQty: 0,
sfdcReportedQty: 0,
remark: '',
exceptionFlag: 'N',
exceptionReason: '',
createNewRollFlag: 'N',
},
operatorData: {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
operatorId: '',
operatorName: '',
status: '',
seqNo: '',
showFlag: false
},
sfdcMaterialList: [],
columnMaterialArray: [
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialReportDate',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "reportDate",
headerAlign: "center",
align: "center",
columnLabel: "报告时间",
columnWidth: 125,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialReportedBy',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "reportedBy",
headerAlign: "center",
align: "center",
columnLabel: "报告人",
columnWidth: 80,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialRmRollNo',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "rmRollNo",
headerAlign: "center",
align: "center",
columnLabel: "材料卷号",
columnWidth: 100,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialPartNo',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "partNo",
headerAlign: "center",
align: "center",
columnLabel: "零部件编码",
columnWidth: 100,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialStartDate',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "startDate",
headerAlign: "center",
align: "center",
columnLabel: "开始使用时间",
columnWidth: 125,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialTransQty',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "transQty",
headerAlign: "center",
align: "center",
columnLabel: "数量",
columnWidth: 80,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialNetIssueQty',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "netIssueQty",
headerAlign: "center",
align: "center",
columnLabel: "本卷耗用数量",
columnWidth: 100,
columnHidden: true,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialKeyRMFlag',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "keyRMFlag",
headerAlign: "center",
align: "center",
columnLabel: "是否主材",
columnWidth: 80,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 5303,
serialNumber: '5303MaterialSAPBOMItemNo',
tableId: "5303Material",
tableName: "派工单材料",
columnProp: "sAPBOMItemNo",
headerAlign: "center",
align: "center",
columnLabel: "SAP BOM序号",
columnWidth: 100,
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
}
],
dataListLoading: false,
buttonTags:{
selectShiftFlag: true,
},
buttons: {
refreshButton: '刷新',
saveButton: '保存',
closeButton: '关闭',
},
buttonList: [
{
functionId: functionId,
languageValue: '刷新',
objectId: 'refreshButton',
objectType: 'button',
tableId: '*'
}, {
functionId: functionId,
languageValue: '保存',
objectId: 'saveButton',
objectType: 'button',
tableId: '*'
}, {
functionId: functionId,
languageValue: '关闭',
objectId: 'closeButton',
objectType: 'button',
tableId: '*'
},
],
queryButton: {
functionId: functionId,
table_id: '*',
languageCode: this.$i18n.locale,
objectType: 'button'
},
labels: {
titleCon: '结束卷操作 ',
seqNoName: '派工单号:',
currentTime: '当前时间',
rollQtySum: '卷数量统计',
whetherReport: '是否报告产量',
approvedQty: '总良品数量',
defectedQty: '总不良品数量',
totalQty: '总数量',
otherRollQty: '其他卷数量',
operatorScheduleInfo: '人员排程班次信息',
operatorId: '操作员',
operatorName: '操作员姓名',
scheduledDate: '排产日期',
shiftNo: '班次',
rollTimeSum: '卷生产时间统计',
totalTuningTime: '总调机时间',
totalTuningDownTime: '总调机过程停机时间',
totalPureTuningTime: '净调机时间',
totalProdTime: '总生产时间',
totalProdDownTime: '总生产过程停机时间',
totalPureProdTime: '净生产时间',
totalManufTime: '总制造时间',
totalManufDownTime: '总制造过程停机时间 ',
totalPureManufTime: '净制造时间:',
produceReport: '产量报告',
startTime: '开工时间',
finishTime: '完工时间',
prodTime: '生产时间',
tuningTime: '调机时间',
manufTime: '制造时间',
sfdcApprovedQty: '合格数量',
sfdcDefectedQty: '不合格数量',
sfdcReportedQty: '报告数量',
tuningDown: '调机停机',
manufTuning: '生产调机',
remark: '备注',
downTime: '停机时间',
primaryMaterial: '主材料 ',
},
labelsList: [
{
functionId: functionId,
languageValue: '结束卷操作 ',
objectId: 'titleCon',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '派工单号:',
objectId: 'seqNoName',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '当前时间',
objectId: 'currentTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '卷数量统计 ',
objectId: 'rollQtySum',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '是否报告产量 ',
objectId: 'whetherReport',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总良品数量',
objectId: 'approvedQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总不良品数量',
objectId: 'defectedQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总数量',
objectId: 'totalQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '其他卷数量',
objectId: 'otherRollQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '人员排程班次信息',
objectId: 'operatorScheduleInfo',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '操作员',
objectId: 'operatorId',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '操作员姓名',
objectId: 'operatorName',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '排产日期',
objectId: 'scheduledDate',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '班次',
objectId: 'shiftNo',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '卷生产时间统计',
objectId: 'rollTimeSum',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总调机时间',
objectId: 'totalTuningTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总调机过程停机时间',
objectId: 'totalTuningDownTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '净调机时间',
objectId: 'totalPureTuningTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总生产时间',
objectId: 'totalProdTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总生产过程停机时间',
objectId: 'totalProdDownTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '净生产时间',
objectId: 'totalPureProdTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总制造时间',
objectId: 'totalManufTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '总制造过程停机时间',
objectId: 'totalManufDownTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '净制造时间',
objectId: 'totalPureManufTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '产量报告',
objectId: 'roduceReport',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '开工时间 ',
objectId: 'startTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '完工时间:',
objectId: 'finishTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '生产时间',
objectId: 'prodTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '调机时间',
objectId: 'tuningTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '制造时间',
objectId: 'manufTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '合格数量',
objectId: 'sfdcApprovedQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '不合格数量',
objectId: 'sfdcDefectedQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '报告数量',
objectId: 'sfdcReportedQty',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '调机停机',
objectId: 'tuningDown',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '生产调机 ',
objectId: 'manufTuning',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '备注:',
objectId: 'remark',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '停机时间',
objectId: 'downTime',
objectType: 'label',
tableId: '*'
}, {
functionId: functionId,
languageValue: '主材料',
objectId: 'primaryMaterial',
objectType: 'label',
tableId: '*'
},
],
queryLabel: {
functionId: functionId,
table_id: '*',
languageCode: this.$i18n.locale,
objectType: 'label'
},
}
},
components: {
comExceptionReason,/*异常原因的组件*/
comSelectShift,/*班次选择的组件*/
},
methods: {
/*初始化页面参数*/
init(scheduleData, operatorData) {
//初始化参数
this.scheduleData = scheduleData;
//初始化参数
this.pageData.orderNo = scheduleData.orderNo;
this.pageData.itemNo = scheduleData.itemNo;
this.pageData.seqNo = scheduleData.seqNo;
//设置首道工序
this.preItemNo = scheduleData.preItemNo
//特殊处理 判断是否是空的卷号
if(null == scheduleData.rollNo || scheduleData.rollNo == ''){
this.pageData.rollNo = '暂无卷号';
this.scheduleData.rollNo = '暂无卷号';
}else{
this.pageData.rollNo = scheduleData.rollNo;
}
this.pageData.scheduledDate = scheduleData.scheduledDate;
this.pageData.shiftNo = scheduleData.shiftNo;
this.pageData.resourceId = scheduleData.resourceId;
this.pageData.operatorId = operatorData.operatorId;
//重置时间
this.pageData.reportedTime = this.dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
//初始化操作员对象
this.operatorData = JSON.parse(JSON.stringify(operatorData));
//初始化标题
this.titleCon = this.labels.titleCon+this.labels.seqNoName+scheduleData.seqNo;
//处理异常的原因
this.pageData.exceptionFlag = 'N';
this.pageData.exceptionReason = '';
//刷新当前派工单的信息
this.refreshPageData();
},
/*关闭modal*/
closeDialog(){
//刷新报工的页面
this.$emit('refreshPageData');
//关闭当前的页面
this.$emit('update:visible', false);
},
/*生产过程的停机组件*/
exceptionReasonModal() {
//1.首先调用菜单判断方式 打开生产过程的停机的页面
//checkProduceButton('produceDownFlag');
//打开生产过程的工具的页面
this.$nextTick(() => {
this.show = true;
this.$refs.comProduceDown.init(this.scheduleData, this.operatorData)
});
},
/*刷新当前的页面参数*/
async refreshPageData(){
//1.刷新当前卷的报工数据
await getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
this.pageData.approvedQty = data.row.approvedQty;
this.pageData.defectedQty = data.row.defectedQty;
this.pageData.totalQty = data.row.totalQty;
this.pageData.otherRollQty = data.row.otherRollQty;
})
//2.刷新当前卷的时间信息
await countSfdcTimeQty(this.scheduleData).then(({data}) => {
this.pageData.totalSetupTime = data.row.totalSetupTime;
this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
this.pageData.totalProdTime = data.row.totalProdTime;
this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
this.pageData.totalPureProdTime = data.row.totalPureProdTime;
this.pageData.totalManufactureTime = data.row.totalManufactureTime;
this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
//先预设一些参数 后期方法再计算
//生产时间=总生产时间
this.pageData.sfdcProdTime = this.pageData.totalProdTime;
//调机时间=总调机时间
this.pageData.sfdcSetupTime = this.pageData.totalSetupTime;
//制造时间=总制造时间
this.pageData.sfdcManufactureTime = this.pageData.totalManufactureTime;
//调机停机=总调机过程停机时间
this.pageData.sfdcSetupDownTime = this.pageData.totalDowntimeTimeSetup;
//生产调机=总生产过程停机时间
this.pageData.sfdcProdSetupTime = this.pageData.totalDowntimeTimeProd;
//停机时间=总制造过程停机时间
this.pageData.sfdcDownTime = this.pageData.totalManufactureDowntimeTime;
});
//3.刷新派工单的班次信息
await getScheduleShiftData(this.pageData).then(({data}) => {
let specialAuth = 'N';
//区分是否存在班次
if(data.code == 500){
this.pageData.shiftDesc = '无班次';//重置班次
this.pageData.scheduledDate = '';//重置排产日期
this.pageData.shiftNo = '';
}else{
this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期
this.pageData.shiftNo = data.row.shiftNo;
//设置结果
specialAuth = data.row.specialAuth;
}
//根据不同设置不同的属性
if("Y" === specialAuth){
this.buttonTags.selectShiftFlag = false;
}else{
this.buttonTags.selectShiftFlag = true;
}
});
//4.刷新当前卷的最早和最晚时间
await getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
this.pageData.eventTime = data.row.eventTime;
this.pageData.tillTime = data.row.tillTime;
});
//5.刷新当前卷的Sfdc表的时间
await getSfdcTimeData(this.scheduleData).then(({data}) => {
//先判断是否成功查询
if(data.resultCode == 200){
//判断是否操作成功
this.pageData.eventTime = data.row.finishTime;
this.pageData.sfdcProdTime = data.row.sfdcProdTime;
this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
this.pageData.sfdcDownTime = data.row.sfdcDownTime;
this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
}else{
//暂时不处理数据
}
});
//6.刷新当前卷的报工数据
await getSfdcReportedData(this.scheduleData).then(({data}) => {
this.pageData.sfdcApprovedQty = this.pageData.approvedQty - 0;
this.pageData.sfdcDefectedQty = this.pageData.defectedQty - 0;
this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
});
//刷新当前卷的时间数据
await getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
this.sfdcMaterialList = data.rows;
});
},
/*刷新当前卷的报工数据汇总*/
refreshCurrentRollReportedQty(){
getCurrentRollReportedQty(this.scheduleData).then(({data}) => {
this.pageData.approvedQty = data.row.approvedQty;
this.pageData.defectedQty = data.row.defectedQty;
this.pageData.totalQty = data.row.totalQty;
this.pageData.otherRollQty = data.row.otherRollQty;
})
},
//刷新当前卷的时间信息
refreshCurrentRollTimeQty(){
countSfdcTimeQty(this.scheduleData).then(({data}) => {
this.pageData.totalSetupTime = data.row.totalSetupTime;
this.pageData.totalDowntimeTimeSetup = data.row.totalDowntimeTimeSetup;
this.pageData.totalPureSetupTime = data.row.totalPureSetupTime;
this.pageData.totalProdTime = data.row.totalProdTime;
this.pageData.totalDowntimeTimeProd = data.row.totalDowntimeTimeProd;
this.pageData.totalPureProdTime = data.row.totalPureProdTime;
this.pageData.totalManufactureTime = data.row.totalManufactureTime;
this.pageData.totalManufactureDowntimeTime = data.row.totalManufactureDowntimeTime;
this.pageData.totalPureManufactureTime = data.row.totalPureManufactureTime;
});
},
//刷新派工单的班次信息
refreshScheduleShiftData(){
getScheduleShiftData(this.scheduleData).then(({data}) => {
//区分是否存在班次
if(data.code == 500){
this.pageData.shiftDesc = '无班次';//重置班次
this.pageData.scheduledDate = '';//重置排产日期
this.pageData.shiftNo = '';
}else{
this.pageData.shiftDesc = data.row.shiftDesc;//重置班次
this.pageData.scheduledDate = data.row.scheduledDate.substring(0, 10);//重置排产日期
this.pageData.shiftNo = data.row.shiftNo;
}
});
},
//刷新当前卷的时间信息
refreshCurrentRollMaxAndMinTime(){
getSfdcTimeMaxAndMinTime(this.scheduleData).then(({data}) => {
this.pageData.eventTime = data.row.eventTime;
this.pageData.tillTime = data.row.tillTime;
});
},
//刷新当前卷的Sfdc的信息
refreshSfdcTimeData(){
getSfdcTimeData(this.scheduleData).then(({data}) => {
//判断是否操作成功
this.pageData.eventTime = data.row.finishTime;
this.pageData.sfdcProdTime = data.row.sfdcProdTime;
this.pageData.sfdcSetupTime = data.row.sfdcSetupTime;
this.pageData.sfdcManufactureTime = data.row.sfdcManufactureTime;
this.pageData.sfdcDownTime = data.row.sfdcDownTime;
this.pageData.sfdcSetupDownTime = data.row.sfdcSetupDownTime;
this.pageData.sfdcProdSetupTime = data.row.sfdcProdSetupTime;
});
},
//刷新当前卷的报工数据
refreshSfdcData(){
getSfdcReportedData(this.scheduleData).then(({data}) => {
this.pageData.sfdcApprovedQty = this.pageData.approvedQty - 0;
this.pageData.sfdcDefectedQty = this.pageData.defectedQty - 0;
this.pageData.sfdcReportedQty = this.pageData.sfdcApprovedQty + this.pageData.sfdcDefectedQty;
});
},
//刷新当前卷的时间数据
refreshSfdcMaterialTable(){
getSfdcMaterialByRollNo(this.scheduleData).then(({data}) => {
this.sfdcMaterialList = data.rows;
});
},
/*检查数据是否有效*/
checkValidQty(row){
//判断当前是否为空
if(row.netIssueQty == ''){
this.$message.error('材料上本卷耗用数量不能为空!');
row.netIssueQty = 0;//重新赋值
return false;
}
//判断当前是否有效
if(row.netIssueQty <= 0){
this.$message.error('材料耗用数量必须大于0!');
return false;
}
//判断是否超限
if(row.netIssueQty > row.transQty){
this.$message.error('材料耗用数量大于发料数量!');
row.netIssueQty = 0;//重新赋值
return false;
}
},
/*添加定制的css类*/
customerCellClassName({row, column, rowIndex, columnIndex}) {
if(column.property == 'netIssueQty'){
return 'customer-number-cell';
}
},
/*添加定制的cess样式*/
customerCellStyle({row, column, rowIndex, columnIndex}) {
if(column.property == 'netIssueQty'){
return 'padding: 0px 0px;';
}
},
/*检验良品的总数量*/
checkValidApprovedQty(){
//调用刷新的方法
this.refreshSfdcData();
this.pageData.totalQty = parseFloat(this.pageData.approvedQty) + parseFloat(this.pageData.defectedQty);
},
/*结束当前的操作*/
finishRollBun(){
//首先判断数值是否通过判断
let approvedQty = this.pageData.approvedQty;
if(approvedQty == null || approvedQty == ''){
this.$message.error('请输入良品总数量!');
this.pageData.approvedQty = 0;//重新赋值
return false;
}
if(approvedQty < 0){
this.$message.error('良品总数量必须大于等于0!');
this.pageData.approvedQty = 0;//重新赋值
return false;
}
//班次判断
if(this.pageData.shiftDesc == '无班次'){
this.$message.error('该时间段内没有匹配的班次信息,请联系相关人员!!');
return false;
}
//验证通过提交到后台
let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
//先调用检查方法
checkFinishPartRollWithNoFqc(postData).then(({data}) => {
//判断是否成功
if(data.code == 500){
this.$message.error(data.msg);
}else{
//执行结束卷操作
this.finishPartRollOperation();
}
});
},
/*结束卷的具体操作*/
finishPartRollOperation(){
//验证通过提交到后台
let postData = {'pageData': JSON.stringify(this.pageData), 'materialList': JSON.stringify(this.sfdcMaterialList)};
//处理信息
finishPartRollWithNoFqc(postData).then(({data}) => {
//判断操作是否成功
if(data.code == 500){
this.$message.error(data.msg);
}else{
//关闭当前的页面
this.closeDialog();
}
})
},
/*打开异常原因录入页面*/
showExceptionReasonModal(){
//1.首先调用菜单判断方式 打开生产过程的材料的页面
//checkProduceButton('produceMaterialFlag');
//打开生产过程的工具的页面
this.$nextTick(() => {
this.showExceptionFlag = true;
this.$refs.comExceptionReason.init();
});
},
/*处理异常的原因*/
initExceptionReason(exceptionReason){
//处理异常的原因
this.pageData.exceptionFlag = 'Y';
this.pageData.exceptionReason = exceptionReason;
//然后提交结束卷的数据
this.finishRollOperation();
},
/*打开班次选择页面*/
selectSchduleShiftModal(){
//1.首先调用菜单判断方式 打开生产过程的材料的页面
//checkProduceButton('produceMaterialFlag');
//打开生产过程的工具的页面
this.$nextTick(() => {
this.showShiftFlag = true;
this.$refs.comSelectShift.init(this.pageData);
});
},
/*修改页面的班次和排产的时间*/
initScheduleShift(scheduleDate, shiftDesc, username){
//重置班次和排产的时间
this.pageData.scheduledDate = scheduleDate.substring(0, 10);
this.pageData.shiftDesc = shiftDesc;
this.pageData.remark = username+"更改了班次."
},
// 保存 默认配置 列
async saveMultiLanguage() {
// 保存页面 button label title 属性
let buttons = this.buttonList;
let labels = this.labelsList;
await saveButtonList(buttons)
await saveButtonList(labels)
this.getMultiLanguageList()
},
getMultiLanguageList() {
//首先查询当前按钮的多语言
searchFunctionButtonList(this.queryButton).then(({data}) => {
if (JSON.stringify(data.data) != '{}') {
this.buttons = data.data
} else {
// saveButtonList(this.buttonList).then(({data}) => {
// })
}
});
//其次查询当前标签的多语言
searchFunctionButtonList(this.queryLabel).then(({data}) => {
if (JSON.stringify(data.data) != '{}') {
this.labels = data.data
} else {
// saveButtonList(this.buttonList).then(({data}) => {
// })
}
});
},
},
created() {
// this.factoryList()
// this.getLanguageList()
this.getMultiLanguageList();//刷新多语言的信息
}
}
</script>
<style scoped lang="scss">
/*调节页面button和input的上下间距*/
.customer-css .customer-button{
margin-top: 25px;
}
/*调节样式*/
.customer-item{
margin-top: -10px;
}
/*fieldset下table的样式*/
.customer-fieldset /deep/ .el-table__header th.is-leaf{
line-height: 16px;
}
/deep/ .customer-tab .el-tabs__content{
padding: 0px !important;
}
/*table中input*/
div.table-input /deep/ input.el-input__inner{
text-align: right;
}
</style>