rev:堆垛机异常处理

This commit is contained in:
2025-07-21 17:40:09 +08:00
parent 59b4af1e09
commit 96743f940f
64 changed files with 4491 additions and 2073 deletions

View File

@@ -153,11 +153,6 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="产品名称" prop="description">
<el-input v-model="form.description" disabled style="width: 250px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品编码" prop="product_name">
<el-input v-model="form.product_name" disabled class="input-with-select">
@@ -165,6 +160,11 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品名称" prop="description">
<el-input v-model="form.description" disabled style="width: 250px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
@@ -195,9 +195,43 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否重新更新">
<el-radio v-model="form.is_reload_send" label="0">否</el-radio>
<el-radio v-model="form.is_reload_send" label="1">是</el-radio>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" style="width: 250px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="生产区域" prop="product_area">
<el-input v-model="form.product_area" disabled style="width: 250px;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="点位编码" prop="point_code">
<el-input v-model="form.point_code" disabled style="width: 250px;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="类型" prop="order_type">
<el-select
v-model="form.order_type"
clearable
size="mini"
placeholder="请选择"
class="filter-item"
style="width: 250px"
disabled
>
<el-option
v-for="item in dict.sb_order_type"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
@@ -277,7 +311,7 @@ const defaultForm = {
product_name: null,
description: null,
theory_height: null,
eqp_velocity: null,
eqp_velocity: '0.2',
up_coiler_date: null,
is_reload_send: '0',
productin_qty: null,
@@ -287,18 +321,20 @@ const defaultForm = {
finish_type: null,
agvno: null,
remark: null,
point_code: null,
product_area: null,
order_type: '2',
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_time: null,
is_delete: null,
pscn: null
is_delete: null
}
export default {
name: 'Rawfoilworkorder',
dicts: ['product_area', 'product_status', 'IS_OR_NOT', 'ROLL_STATUS_TYPE', 'ORIGIN_TYPE'],
dicts: ['product_area', 'product_status', 'IS_OR_NOT', 'ROLL_STATUS_TYPE', 'ORIGIN_TYPE', 'sb_order_type'],
components: { pagination, crudOperation, rrOperation, udOperation, Dialog, MaterDialog, SbpointivtDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
@@ -350,9 +386,6 @@ export default {
],
up_coiler_date: [
{ required: true, message: '上卷开始时间不能为空', trigger: 'blur' }
],
pscn: [
{ required: true, message: '批次号不能为空', trigger: 'blur' }
]
}
}
@@ -420,6 +453,8 @@ export default {
},
setSbpointivtValue(row) {
this.form.resource_name = row.ext_code
this.form.product_area = row.product_area
this.form.point_code = row.point_code
},
print() {
const _selectData = this.$refs.table.selection

View File

@@ -56,4 +56,12 @@ export function start(data) {
})
}
export default { add, edit, del, compelEnd, confirm, print, start }
export function selectResource(data) {
return request({
url: 'api/rawfoilworkorder/selectResource',
method: 'get',
data
})
}
export default { add, edit, del, compelEnd, confirm, print, start, selectResource }

View File

@@ -43,7 +43,23 @@
</el-select>
</el-form-item>
<el-form-item label="母卷号" prop="parent_container_name">
<el-input v-model="form.parent_container_name" :disabled="reform_or_normal1()" style="width: 150px;" />
<el-select
v-model="form.parent_container_name"
clearable
:disabled="reform_or_normal1()"
size="mini"
placeholder="请选择"
class="filter-item"
style="width: 150px"
@change="hand"
>
<el-option
v-for="item in containerNameList"
:key="item.container_name"
:label="item.container_name"
:value="item.container_name"
/>
</el-select>
</el-form-item>
<el-form-item label="改制母卷" prop="restruct_container_name">
<el-input v-model="form.restruct_container_name" :disabled="reform_or_normal2()" style="width: 150px;" />
@@ -96,25 +112,22 @@
placeholder="选择日期"
/>
</el-form-item>
<el-form-item label="产品编码" prop="product_name">
<el-input v-model="form.product_name" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="queryMater(1)" />
</el-input>
</el-form-item>
<el-form-item label="产品描述" prop="description">
<el-input v-model="form.description" disabled style="width: 150px;" />
</el-form-item>
<el-form-item label="客户编码" prop="costomer_code">
<el-input v-model="form.costomer_code" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="queryCustomer()" />
</el-input>
</el-form-item>
<el-form-item label="客户名称" prop="costomer_name">
<el-input v-model="form.costomer_name" disabled style="width: 150px;" />
</el-form-item>
<el-form-item label="明细数" prop="detail_count">
<label slot="label">明&nbsp;&nbsp;细&nbsp;数:</label>
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
<el-form-item label="物料类型" prop="material_type">
<el-select
v-model="form.material_type"
clearable
size="mini"
placeholder="请选择"
class="filter-item"
style="width: 150px"
disabled
>
<el-option
v-for="item in dict.sb_order_type"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" style="width: 150px;" />
@@ -148,9 +161,9 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('container_name',crud.data,'子卷号')" prop="container_name" label="子卷号">
<el-table-column show-overflow-tooltip prop="container_name" label="子卷号">
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.container_name" size="mini" />
<el-input v-show="!scope.row.edit" v-model="scope.row.container_name" style="width: 150px;" />
<span v-show="scope.row.edit">{{ scope.row.container_name }}</span>
</template>
</el-table-column>
@@ -164,7 +177,7 @@
placeholder="请选择"
class="filter-item"
style="width: 100px"
@change="hand2"
@change="hand2(scope.row)"
>
<el-option
v-for="item in dict.paper_tube_or_frp_type"
@@ -175,17 +188,17 @@
</el-select>
</template>
</el-table-column>
<el-table-column prop="paper_tube_material" label="纸筒物料编码" :min-width="flexWidth('paper_tube_material',crud.data,'纸筒物料编码')" >
<el-table-column prop="paper_tube_material" label="纸筒物料编码" width="190px" >
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.paper_tube_material" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" :disabled="tube_or_FRP1()" @click="queryMater(2,scope.$index, scope.row)" />
</el-input>
<span v-show="scope.row.edit">{{ scope.row.paper_tube_material }}</span>
<!-- <span v-show="scope.row.edit">{{ scope.row.paper_tube_material }}</span>-->
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="paper_tube_description" align="center" :min-width="flexWidth('paper_tube_description',crud.data,'纸筒物料描述')" label="纸筒物料描述" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('paper_tube_model',crud.data,'纸筒规格')" prop="paper_tube_model" label="纸筒规格" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('frp_material',crud.data,'FRP管物料编码')" prop="frp_material" label="FRP管物料编码" >
<el-table-column show-overflow-tooltip width="190px" prop="frp_material" label="FRP管物料编码" >
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.frp_material" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" :disabled="tube_or_FRP2()" @click="queryMater(3,scope.$index, scope.row)" />
@@ -195,6 +208,7 @@
</el-table-column>
<el-table-column show-overflow-tooltip :min-width="flexWidth('frp_description',crud.data,'FRP管物料描述')" prop="frp_description" label="FRP管物料描述" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('frp_model',crud.data,'FRP管规格')" prop="frp_model" label="FRP管规格" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('qzz_size',crud.data,'气胀轴尺寸')" prop="qzz_size" label="气胀轴尺寸" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('up_or_down',crud.data,'上轴下轴')" prop="up_or_down" label="上轴下轴" >
<template scope="scope">
<el-select
@@ -233,7 +247,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip :min-width="flexWidth('box_code',crud.data,'木箱物料编码')" prop="frp_material" label="木箱物料编码" >
<el-table-column show-overflow-tooltip width="190px" prop="frp_material" label="木箱物料编码" >
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.box_code" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="queryMater(4,scope.$index, scope.row)" />
@@ -266,6 +280,36 @@
<span v-show="scope.row.edit">{{ scope.row.split_weight }}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip width="190px" prop="product_name" label="产品编码" >
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.product_name" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="queryMater(1, scope.$index, scope.row)" />
</el-input>
<span v-show="scope.row.edit">{{ scope.row.product_name }}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip :min-width="flexWidth('description',crud.data,'产品描述')" prop="description" label="产品描述" />
<el-table-column show-overflow-tooltip width="190px" prop="costomer_code" label="客户编码" >
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.costomer_code" disabled class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="queryCustomer(scope.$index, scope.row)" />
</el-input>
<span v-show="scope.row.edit">{{ scope.row.costomer_code }}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip :min-width="flexWidth('costomer_name',crud.data,'客户名称')" prop="costomer_name" label="客户名称" />
<el-table-column show-overflow-tooltip prop="width_standard" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')">
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.width_standard" size="mini" />
<span v-show="scope.row.edit">{{ scope.row.width_standard }}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="thickness_request" label="物料标准厚度" :min-width="flexWidth('thickness_request',crud.data,'物料标准厚度')">
<template scope="scope">
<el-input v-show="!scope.row.edit" v-model="scope.row.thickness_request" size="mini" />
<span v-show="scope.row.edit">{{ scope.row.thickness_request }}</span>
</template>
</el-table-column>
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="120" fixed="right">
<template scope="scope">
<el-button
@@ -291,23 +335,22 @@ import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
import MaterDialog from '@/views/wms/pub/MaterDialog'
import CustomerDialog from '@/views/wms/pub/CustomerDialog'
import CutpointivtDialog from '@/views/wms/pub/CutpointivtDialog'
import slittingproductionplan from '@/views/wms/pdm/order/slittingplan/slittingproductionplan'
const defaultForm = {
order_type: null,
product_name: null,
description: null,
parent_container_name: null,
restruct_container_name: null,
ware_house: null,
resource_name: null,
paper_tube_or_frp: null,
material_type: '2',
split_group: null,
mfg_order_name: null,
manufacture_date: null,
remark: null,
qzzno: null,
costomer_code: null,
costomer_name: null,
show_edit: false,
tableData: [],
detail_count: '0'
@@ -317,7 +360,7 @@ export default {
name: 'AddDialog',
components: { MaterDialog, CustomerDialog, CutpointivtDialog },
mixins: [crud(), form(defaultForm)],
dicts: ['product_area', 'order_type', 'cut_product_status', 'ware_house', 'paper_tube_or_frp_type'],
dicts: ['product_area', 'order_type', 'cut_product_status', 'ware_house', 'paper_tube_or_frp_type', 'sb_order_type'],
props: {
dialogShow: {
type: Boolean,
@@ -358,6 +401,7 @@ export default {
nowrow: {},
nowindex: '',
billtypelist: [],
containerNameList: [],
materType: '',
customType: '',
cutpointivtType: '',
@@ -438,13 +482,16 @@ export default {
crudUserStor.getUserStor().then(res => {
this.storlist = res
})
slittingproductionplan.selectContainers().then(data => {
this.containerNameList = data
})
},
close() {
this.$emit('AddChanged')
},
[CRUD.HOOK.afterToEdit]() {
crudSlittingproductionplan.getSlittingproductionplanDtl({ 'parent_container_name': this.form.parent_container_name, 'split_group': this.form.split_group }).then(res => {
this.form.tableData = res
crudSlittingproductionplan.getSlittingproductionplanDtl({ 'workorder_id': this.form.workorder_id }).then(res => {
this.form.tableData[0] = res
// 将明细变成不可编辑
for (let i = 0; i < this.form.tableData.length; i++) {
const row = this.form.tableData[i]
@@ -515,9 +562,18 @@ export default {
},
hand1(val) {
this.order_type_select = val
this.form.parent_container_name = ''
this.form.restruct_container_name = ''
},
hand2(val) {
this.paper_type = val
hand2(raw) {
this.paper_type = raw.paper_tube_or_frp
raw.paper_tube_material = ''
raw.paper_tube_description = ''
raw.paper_tube_model = ''
raw.frp_material = ''
raw.frp_description = ''
raw.frp_model = ''
raw.qzz_size = ''
},
async queryMater(index1, index, row) {
this.indexType = index1
@@ -535,14 +591,16 @@ export default {
this.materType = '4415'
}
},
async queryCustomer() {
async queryCustomer(index, row) {
this.customShow = true
this.nowindex = index
this.nowrow = row
},
async queryCutpointivt() {
this.cutpointivtShow = true
},
async insertdtl() {
this.form.tableData.push({ container_name: '', paper_tube_or_frp: '', paper_tube_material: '', paper_tube_description: '', paper_tube_model: '', frp_material: '', frp_description: '', frp_model: '', up_or_down: '', left_or_right: '', box_code: '', box_description: '', box_model: '', split_length: '', split_breadth: '', split_weight: '', sale_order_name: '', sale_order_name: '', edit: false })
this.form.tableData.push({ container_name: '', paper_tube_or_frp: '', paper_tube_material: '', paper_tube_description: '', paper_tube_model: '', frp_material: '', frp_description: '', frp_model: '', qzz_size: '', up_or_down: '', left_or_right: '', box_code: '', box_description: '', box_model: '', split_length: '', split_breadth: '', split_weight: '', product_name: '', sale_order_name: '', description: '', costomer_code: '', costomer_name: '', width_standard: '', thickness_request: '', edit: false })
this.form.detail_count = this.form.tableData.length
},
tube_or_FRP1() {
@@ -575,16 +633,24 @@ export default {
},
setMaterValue(row) {
if (this.indexType === 1) {
this.form.product_name = row.material_code
this.form.description = row.material_name
this.nowrow.product_name = row.material_code
this.nowrow.description = row.material_name
} else if (this.indexType === 2) {
this.nowrow.paper_tube_material = row.material_code
this.nowrow.paper_tube_description = row.material_name
this.nowrow.paper_tube_model = row.material_name
const parts = row.material_name.split('|')
const sizeInch = parts[2]
const number = sizeInch.match(/\d+/)[0]
this.nowrow.qzz_size = number
} else if (this.indexType === 3) {
this.nowrow.frp_material = row.material_code
this.nowrow.frp_description = row.material_name
this.nowrow.frp_model = row.material_name
const parts = row.material_name.split('|')
const sizeInch = parts[2]
const number = sizeInch.match(/\d+/)[0]
this.nowrow.qzz_size = number
} else if (this.indexType === 4) {
this.nowrow.box_code = row.material_code
this.nowrow.box_description = row.material_name
@@ -593,8 +659,9 @@ export default {
this.form.tableData.splice(this.nowindex, 1, this.nowrow) // 通过splice 替换数据 触发视图更新
},
setCustomValue(row) {
this.form.costomer_code = row.cust_code
this.form.costomer_name = row.cust_name
this.nowrow.costomer_code = row.cust_code
this.nowrow.costomer_name = row.cust_name
this.form.tableData.splice(this.nowindex, 1, this.nowrow) // 通过splice 替换数据 触发视图更新
},
setCutpointivtValue(row) {
this.form.resource_name = row.ext_code

View File

@@ -367,7 +367,6 @@
<el-table-column prop="restruct_container_name" label="改制来源子卷号" width="120px" />
<el-table-column prop="package_box_sn" label="改制来源子卷木箱号" width="150px" />
<el-table-column prop="resource_name" label="机台编码" min-width="110" show-overflow-tooltip />
<el-table-column prop="point_code" label="点位" min-width="110" show-overflow-tooltip />
<el-table-column prop="product_name" label="产品编码" min-width="130" show-overflow-tooltip />
<el-table-column prop="product_area" label="生产区域" />
<el-table-column prop="split_group" label="分切组" />

View File

@@ -102,4 +102,11 @@ export function getSlittingproductionplanDtl(params) {
})
}
export default { add, edit, del, upMaterFinish, caseFinish, sendFinish, inFinish, compelFinish, setDirection, updates, print, getSlittingproductionplanDtl }
export function selectContainers() {
return request({
url: '/api/slittingproductionplan/selectContainers',
method: 'get'
})
}
export default { add, edit, del, upMaterFinish, caseFinish, sendFinish, inFinish, compelFinish, setDirection, updates, print, getSlittingproductionplanDtl, selectContainers, print1 }