Browse Source

2024-08-30

增加标准维修时长
采集优化
java8
fengyuan_yang 1 year ago
parent
commit
e8aaf12c3b
  1. 7
      src/api/part/bomManagement.js
  2. 8
      src/views/modules/eam/com_eam_object_add_update.vue
  3. 21
      src/views/modules/eam/eam_device_list.vue
  4. 209
      src/views/modules/part/bomManagement.vue

7
src/api/part/bomManagement.js

@ -155,4 +155,11 @@ export const updateAlternativeStatus = data => createAPI(`/part/bomManagement/up
*/ */
export const queryPartListBom = data => createAPI(`/part/bomManagement/queryPartListBom`,'post',data) export const queryPartListBom = data => createAPI(`/part/bomManagement/queryPartListBom`,'post',data)
/**
* 获取物料的BOM版本号
* @param data
* @returns {*}
*/
export const getBomEngChgLevel = data => createAPI(`/part/bomManagement/getBomEngChgLevel`,'post',data)

8
src/views/modules/eam/com_eam_object_add_update.vue

@ -79,8 +79,11 @@
<el-form-item label="序列号:"> <el-form-item label="序列号:">
<el-input v-model="pageData.seqNo" style="width: 455px;"></el-input> <el-input v-model="pageData.seqNo" style="width: 455px;"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="资产编号" >
<el-input v-model="pageData.assetNo" style="width: 454px;" ></el-input>
<el-form-item label="标准维修时长(m)">
<el-input-number :controls="false" :step="0" v-model="pageData.standardMaintenanceDuration" style="width: 120px;" ></el-input-number>
</el-form-item>
<el-form-item label="资产编号" style="margin-left: -10px">
<el-input v-model="pageData.assetNo" style="width: 330px;" ></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">
@ -150,6 +153,7 @@ export default {
deptName: '', deptName: '',
assetNo: '', assetNo: '',
assetRemark: '', assetRemark: '',
standardMaintenanceDuration: ''
}, },
dataListLoading: false, dataListLoading: false,
rules:{ rules:{

21
src/views/modules/eam/eam_device_list.vue

@ -2405,6 +2405,24 @@
fixed: '', fixed: '',
columnWidth: 100, columnWidth: 100,
}, },
{
userId: this.$store.state.user.name,
functionId: 101001008,
serialNumber: '101001008Table1StandardMaintenanceDuration',
tableId: "101001008Table1",
tableName: "设备清单表",
columnProp: 'standardMaintenanceDuration',
headerAlign: 'center',
align: 'right',
columnLabel: '标准维修时长',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 101001008, functionId: 101001008,
@ -3676,7 +3694,8 @@
deptID: '', deptID: '',
assetNo: '', assetNo: '',
assetRemark: '', assetRemark: '',
deptName:''
deptName: '',
standardMaintenanceDuration: ''
} }
// //
this.$nextTick(() => { this.$nextTick(() => {

209
src/views/modules/part/bomManagement.vue

@ -447,9 +447,10 @@
</el-form-item> </el-form-item>
<el-form-item :label="'生产属性'" prop="issueType"> <el-form-item :label="'生产属性'" prop="issueType">
<el-select v-model="componentData.issueType" style="width: 165px"> <el-select v-model="componentData.issueType" style="width: 165px">
<el-option label="Reserve and Backflush" value="Reserve and Backflush"></el-option>
<el-option label="Reserve And Backflush" value="Reserve And Backflush"></el-option>
<el-option label="Reserve" value="Reserve"></el-option> <el-option label="Reserve" value="Reserve"></el-option>
<el-option label="Backflush" value="Backflush"></el-option> <el-option label="Backflush" value="Backflush"></el-option>
<el-option label="Manual" value="Manual"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -523,15 +524,18 @@
<legend>Source Revision</legend> <legend>Source Revision</legend>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="物料编码"> <el-form-item label="物料编码">
<el-input v-model="modalData.partNo" readonly style="width: 185px"></el-input>
<el-input v-model="modalData.partNo" readonly style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Site">
<el-input v-model="modalData.site" disabled style="width: 185px"></el-input>
<el-form-item :label="'物料名称'">
<el-input v-model="modalData.partDesc" readonly style="width: 249px"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="Site">
<el-input v-model="modalData.site" readonly style="width: 85px"></el-input>
</el-form-item>
<el-form-item label="BOM版本号"> <el-form-item label="BOM版本号">
<el-input v-model="modalData.engChgLevel" readonly style="width: 185px"></el-input>
<el-input v-model="modalData.engChgLevel" readonly style="width: 85px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="制造类型"> <el-form-item label="制造类型">
<el-input v-model="modalData.bomType" readonly style="width: 185px"></el-input> <el-input v-model="modalData.bomType" readonly style="width: 185px"></el-input>
@ -570,19 +574,23 @@
<fieldset style="width: 426px"> <fieldset style="width: 426px">
<legend>Destination Revision</legend> <legend>Destination Revision</legend>
<el-form :inline="true" label-position="top" :model="copyBomData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="copyBomData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="物料编码">
<el-input v-model="copyBomData.partNo" style="width: 185px"></el-input>
<el-form-item>
<span slot="label" @click="queryCopyPartModal"><a herf="#">物料编码</a></span>
<el-input v-model="copyBomData.partNo" @change="copyBomTypeChange" @blur="copyPartBlur" style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Site">
<el-input v-model="copyBomData.site" disabled style="width: 185px"></el-input>
<el-form-item :label="'物料名称'">
<el-input v-model="copyBomData.partDesc" disabled style="width: 249px"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="copyBomData" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="copyBomData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="Site">
<el-input v-model="copyBomData.site" disabled style="width: 85px"></el-input>
</el-form-item>
<el-form-item label="BOM版本号"> <el-form-item label="BOM版本号">
<el-input v-model="copyBomData.engChgLevel" style="width: 185px"></el-input>
<el-input v-model="copyBomData.engChgLevel" style="width: 85px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="制造类型"> <el-form-item label="制造类型">
<el-select v-model="copyBomData.bomType" style="width: 185px">
<el-select v-model="copyBomData.bomType" @change="copyBomTypeChange" style="width: 185px">
<el-option label="Manufacturing" value="Manufacturing"></el-option> <el-option label="Manufacturing" value="Manufacturing"></el-option>
<el-option label="Repair" value="Repair"></el-option> <el-option label="Repair" value="Repair"></el-option>
<el-option label="Purchase" value="Purchase"></el-option> <el-option label="Purchase" value="Purchase"></el-option>
@ -605,6 +613,56 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- copy物料模态框 -->
<el-dialog title="物料清单" top="17vh" :close-on-click-modal="false" v-drag :visible.sync="copyPartModelFlag" width="700px">
<el-form :inline="true" label-position="top" :model="copyPartData">
<el-form-item :label="'物料编码'">
<el-input v-model="copyPartData.partNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'物料名称'">
<el-input v-model="copyPartData.partDesc" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryCopyPartList">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="250"
:data="copyPartList"
@row-dblclick="getCopyRowData"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in componentPartColumnList" :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"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{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>
<!-- 分页插件 -->
<el-pagination
@size-change="sizeChangeHandle4"
@current-change="currentChangeHandle4"
:current-page="pageIndex4"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize4"
:total="totalPage4"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-footer style="height:35px;margin-top:10px;text-align:center">
<el-button type="primary" @click="copyPartModelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- copyAlternative --> <!-- copyAlternative -->
<el-dialog title="Copy Structure Alternative" :close-on-click-modal="false" v-drag :visible.sync="copyAlternativeModelFlag" width="450px"> <el-dialog title="Copy Structure Alternative" :close-on-click-modal="false" v-drag :visible.sync="copyAlternativeModelFlag" width="450px">
<fieldset style="width: 426px"> <fieldset style="width: 426px">
@ -701,6 +759,7 @@ import {
copyBom, // bom copyBom, // bom
copyAlternative, // alternative, copyAlternative, // alternative,
queryBomComponentTable, // queryBomComponentTable, //
getBomEngChgLevel, // BOM
} from '@/api/part/bomManagement.js' } from '@/api/part/bomManagement.js'
import {getSiteAndBuByUserName} from "@/api/eam/eam.js" import {getSiteAndBuByUserName} from "@/api/eam/eam.js"
import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js" import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js"
@ -778,6 +837,9 @@ export default {
pageIndex3: 1, pageIndex3: 1,
pageSize3: 20, pageSize3: 20,
totalPage3: 0, totalPage3: 0,
pageIndex4: 1,
pageSize4: 20,
totalPage4: 0,
selectedDataNum: 0, selectedDataNum: 0,
// //
searchData: { searchData: {
@ -882,6 +944,14 @@ export default {
page: 1, page: 1,
limit: 10 limit: 10
}, },
copyPartData: {
site: '',
buNo: '',
partNo: '',
partDesc: '',
page: 1,
limit: 10
},
saveDetailData: { saveDetailData: {
flag: '', flag: '',
site: this.$store.state.user.site, site: this.$store.state.user.site,
@ -912,6 +982,7 @@ export default {
copyBomData: { copyBomData: {
site: '', site: '',
partNo: '', partNo: '',
partDesc: '',
engChgLevel: '', engChgLevel: '',
bomType: '', bomType: '',
effPhaseInDate: '', effPhaseInDate: '',
@ -937,6 +1008,7 @@ export default {
dataList: [], dataList: [],
partList: [], partList: [],
componentPartList: [], componentPartList: [],
copyPartList: [],
componentPartSelections: [], componentPartSelections: [],
subDetailList: [], subDetailList: [],
detailDataList: [], detailDataList: [],
@ -1959,6 +2031,7 @@ export default {
modalDisableFlag: false, modalDisableFlag: false,
partModelFlag: false, partModelFlag: false,
componentPartModelFlag: false, componentPartModelFlag: false,
copyPartModelFlag: false,
saveDetailModalFlag :false, saveDetailModalFlag :false,
saveDetailModalDisable: false, saveDetailModalDisable: false,
componentSaveModal: false, componentSaveModal: false,
@ -2078,6 +2151,25 @@ export default {
this.queryComponentPartModal() this.queryComponentPartModal()
}, },
/**
* 每页数
* @param val
*/
sizeChangeHandle4 (val) {
this.pageSize4 = val
this.pageIndex4 = 1
this.queryCopyPartModal()
},
/**
* 当前页
* @param val
*/
currentChangeHandle4 (val) {
this.pageIndex4 = val
this.queryCopyPartModal()
},
// ======== ======== // ======== ========
/** /**
@ -2347,7 +2439,7 @@ export default {
printUnitName: '', printUnitName: '',
qtyPerAssembly: 0, qtyPerAssembly: 0,
componentScrap: 0, componentScrap: 0,
issueType: 'Reserve and Backflush',
issueType: 'Reserve And Backflush',
shrinkageFactor: 0, shrinkageFactor: 0,
lineItemNo: '', lineItemNo: '',
operationId: '', operationId: '',
@ -2399,7 +2491,7 @@ export default {
printUnitName: '', printUnitName: '',
qtyPerAssembly: 0, qtyPerAssembly: 0,
componentScrap: 0, componentScrap: 0,
issueType: 'Reserve and Backflush',
issueType: 'Reserve And Backflush',
shrinkageFactor: 0, shrinkageFactor: 0,
lineItemNo: '', lineItemNo: '',
operationId: '', operationId: '',
@ -2678,6 +2770,7 @@ export default {
this.operationModelFlag = false this.operationModelFlag = false
}, },
//
getComponentRowData (row) { getComponentRowData (row) {
this.componentData.componentPart = row.partNo this.componentData.componentPart = row.partNo
this.componentData.componentPartDesc = row.partDesc this.componentData.componentPartDesc = row.partDesc
@ -2686,8 +2779,16 @@ export default {
this.componentPartModelFlag = false this.componentPartModelFlag = false
}, },
// copy
getCopyRowData (row) {
this.copyBomData.partNo = row.partNo
this.copyBomData.partDesc = row.partDesc
this.copyBomTypeChange()
this.copyPartModelFlag = false
},
/** /**
* 物料列表
* 物料列表
*/ */
queryComponentPartModal () { queryComponentPartModal () {
this.componentPartData.limit = this.pageSize3 this.componentPartData.limit = this.pageSize3
@ -2710,8 +2811,33 @@ export default {
}) })
}, },
/** /**
* 物料列表
* copy物料列表
*/
queryCopyPartModal () {
this.copyPartData.limit = this.pageSize3
this.copyPartData.page = this.pageIndex3
this.copyPartData.site = this.copyBomData.site
this.copyPartData.buNo = this.copyBomData.buNo
//
queryPartList(this.copyPartData).then(({data}) => {
if (data && data.code === 0) {
this.copyPartList = data.page.list
this.pageIndex4 = data.page.currPage
this.pageSize4 = data.page.pageSize
this.totalPage4 = data.page.totalCount
this.copyPartModelFlag = true
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
/**
* 子物料查询列表
*/ */
queryComponentPartList () { queryComponentPartList () {
this.componentPartData.limit = this.pageSize3 this.componentPartData.limit = this.pageSize3
@ -2729,6 +2855,25 @@ export default {
}) })
}, },
/**
* copy物料查询列表
*/
queryCopyPartList () {
this.copyPartData.limit = this.pageSize4
this.copyPartData.page = this.pageIndex4
//
queryPartList(this.copyPartData).then(({data}) => {
if (data && data.code === 0) {
this.copyPartList = data.page.list
this.pageIndex4 = data.page.currPage
this.pageSize4 = data.page.pageSize
this.totalPage4 = data.page.totalCount
} else {
this.copyPartList = []
}
})
},
// //
componentPartBlur () { componentPartBlur () {
if (this.componentData.componentPart != null && this.componentData.componentPart !== '') { if (this.componentData.componentPart != null && this.componentData.componentPart !== '') {
@ -2754,6 +2899,39 @@ export default {
} }
}, },
// copy
copyPartBlur () {
if (this.copyBomData.partNo != null && this.copyBomData.partNo !== '') {
this.copyPartData.limit = this.pageSize4
this.copyPartData.page = this.pageIndex4
this.copyPartData.partNo = this.copyBomData.partNo
queryPartList(this.copyPartData).then(({data}) => {
if (data && data.code === 0) {
if (data.page.list.length === 1) {
this.copyBomData.partDesc = data.page.list[0].partDesc
} else {
this.$message.warning('该物料不存在!')
this.copyBomData.partDesc = ''
}
}
})
}
},
// copy BOM
copyBomTypeChange () {
// bom
getBomEngChgLevel(this.copyBomData).then(({data}) => {
if (data && data.code === 0) {
this.copyBomData.engChgLevel = data.engChgLevel
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
/** /**
* 表格的新增 * 表格的新增
* @param row * @param row
@ -3000,6 +3178,7 @@ export default {
site: this.modalData.site, site: this.modalData.site,
buNo: this.modalData.buNo, buNo: this.modalData.buNo,
partNo: this.modalData.partNo, partNo: this.modalData.partNo,
partDesc: this.modalData.partDesc,
engChgLevel: this.modalData.engChgLevel + 1, engChgLevel: this.modalData.engChgLevel + 1,
bomType: this.modalData.bomType, bomType: this.modalData.bomType,
effPhaseInDate: this.dayjs(new Date()).format('YYYY-MM-DD'), effPhaseInDate: this.dayjs(new Date()).format('YYYY-MM-DD'),

Loading…
Cancel
Save