fix: 工单、点位、组盘

This commit is contained in:
2023-05-18 15:48:21 +08:00
parent 0b8169c385
commit d249c7db0b
20 changed files with 311 additions and 111 deletions

View File

@@ -13,58 +13,145 @@
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="800px">
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" :rules="rules" size="mini" label-width="115px" label-suffix=":">
<el-form-item label="工单编号">
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="820px">
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" :rules="rules" size="mini" label-width="135px" label-suffix=":">
<el-form-item label="所属车间">
<el-select
v-model="form.workshop_code"
placeholder="请选择"
style="width: 240px;"
>
<el-option
v-for="item in workShopList"
:label="item.workshop_name"
:value="item.workshop_code"
/>
</el-select>
</el-form-item>
<el-form-item label="工单编号" prop="workorder_code">
<el-input v-model="form.workorder_code" style="width: 240px;" />
</el-form-item>
<el-form-item label="计划数量">
<el-input v-model="form.plan_qty" style="width: 240px;" />
<el-form-item label="计划数量" prop="plan_qty">
<el-input-number
v-model.number="form.plan_qty"
:min="0"
:max="999"
style="width: 240px;"
/>
</el-form-item>
<el-form-item label="实际数量">
<el-input v-model="form.real_qty" style="width: 240px;" />
</el-form-item>
<el-form-item label="物料标识">
<el-input v-model="form.material_id" style="width: 240px;" />
<el-form-item label="实际数量" prop="real_qty">
<el-input-number
v-model.number="form.real_qty"
:min="0"
:max="999"
style="width: 240px;"
/>
</el-form-item>
<el-form-item label="载具类型">
<el-input v-model="form.vehicle_type" style="width: 240px;" />
<el-select
v-model="form.vehicle_type"
clearable
size="mini"
placeholder="请选择"
class="filter-item"
style="width: 240px;"
>
<el-option
v-for="item in dict.vehicle_type"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="计划开始时间">
<el-input v-model="form.planproducestart_date" style="width: 240px;" />
<el-form-item label="物料名称" prop="material_name">
<el-input v-model="form.material_name" style="width: 240px;" @focus="getMaterial"/>
</el-form-item>
<el-form-item label="计划结束时间">
<el-input v-model="form.planproduceend_date" style="width: 240px;" />
<el-form-item label="物料编码">
<el-input v-model="form.material_code" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item label="物料规格">
<el-input v-model="form.material_spec" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item label="计划开始时间" prop="planproducestart_date">
<el-date-picker
v-model="form.planproducestart_date"
type="datetime"
style="width: 240px;"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="计划结束时间" prop="planproduceend_date">
<el-date-picker
v-model="form.planproduceend_date"
type="datetime"
style="width: 240px;"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="实际开始时间">
<el-input v-model="form.realproducestart_date" style="width: 240px;" />
<el-date-picker
v-model="form.realproducestart_date"
type="datetime"
style="width: 240px;"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="实际结束时间">
<el-input v-model="form.realproduceend_date" style="width: 240px;" />
<el-date-picker
v-model="form.realproduceend_date"
type="datetime"
style="width: 240px;"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="静置时间(分钟)">
<el-input v-model="form.standing_time" style="width: 240px;" />
<el-form-item label="静置时间(分钟)" prop="standing_time">
<el-input-number
v-model.number="form.standing_time"
:min="0"
:max="999"
style="width: 240px;"
/>
</el-form-item>
<el-form-item label="点位编码">
<el-input v-model="form.point_code" style="width: 240px;" />
</el-form-item>
<el-form-item label="点位名称">
<el-input v-model="form.point_name" style="width: 240px;" />
</el-form-item>
<el-form-item label="区域编码">
<el-input v-model="form.region_code" style="width: 240px;" />
</el-form-item>
<el-form-item label="区域名称">
<el-input v-model="form.region_name" style="width: 240px;" />
</el-form-item>
<el-form-item label="是否自动搬运">
<el-input v-model="form.is_needmove" style="width: 240px;" />
</el-form-item>
<el-form-item label="工单类型">
<el-form-item label="工单类型" prop="workorder_type">
<el-input v-model="form.workorder_type" style="width: 240px;" />
</el-form-item>
<el-form-item label="车间编码">
<el-input v-model="form.workshop_code" style="width: 240px;" />
<el-form-item label="所属区域" prop="region_code">
<el-select v-model="form.region_code" filterable placeholder="请选择" style="width: 240px;" @change="setRegionName">
<el-option
v-for="item in regionList"
:key="item.region_code"
:label="item.region_code"
:value="item.region_code"
>
<span style="float: left">{{ item.region_name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.region_code }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="区域名称">
<el-input v-model="form.region_name" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item label="点位编码" prop="point_code">
<el-select v-model="form.point_code" filterable placeholder="请选择" style="width: 240px;" @change="setPointName">
<el-option
v-for="item in pointList"
:key="item.point_code"
:label="item.point_code"
:value="item.point_code"
>
<span style="float: left">{{ item.point_name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.point_code }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="点位名称">
<el-input v-model="form.point_name" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item label="是否自动搬运" prop="is_needmove">
<el-radio-group v-model="form.is_needmove" style="width: 240px">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -91,7 +178,11 @@
<el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('region_code',crud.data,'区域编码')"/>
<el-table-column prop="region_name" label="区域名称" :min-width="flexWidth('region_name',crud.data,'区域名称')"/>
<el-table-column prop="workorder_status" label="工单状态" :min-width="flexWidth('workorder_status',crud.data,'工单状态')"/>
<el-table-column prop="is_needmove" label="是否自动搬运" :min-width="flexWidth('is_needmove',crud.data,'是否自动搬运')"/>
<el-table-column prop="is_needmove" label="是否自动搬运" :min-width="flexWidth('is_needmove',crud.data,'是否自动搬运')">
<template slot-scope="scope">
{{scope.row.is_needmove?'是':'否'}}
</template>
</el-table-column>
<el-table-column prop="workorder_type" label="工单类型" :min-width="flexWidth('workorder_type',crud.data,'工单类型')"/>
<el-table-column prop="passback_status" label="回传MES状态" :min-width="flexWidth('passback_status',crud.data,'回传MES状态')"/>
<el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')"/>
@@ -111,16 +202,22 @@
<!--分页组件-->
<pagination />
</div>
<MaterialDialog :dialog-show.sync="materialDialog" @tableChanged="tableChanged"/>
</div>
</template>
<script>
import crudPdmBdWorkorder from './pdmBdWorkorder'
import crudSchBaseRegion from '@/views/wms/sch/region/schBaseRegion'
import crudSchBasePoint from '@/views/wms/sch/point/schBasePoint'
import CRUD, {crud, form, header, presenter} from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import crudMdBaseWorkShop from '@/views/wms/basedata/workshop/mdBaseWorkshop'
import MaterialDialog from '@/views/wms/sch/group/MaterialDialog.vue'
import item from '@/layout/components/Sidebar/Item.vue'
const defaultForm = {
workorder_id: null,
@@ -139,22 +236,17 @@ const defaultForm = {
region_code: null,
region_name: null,
workorder_status: null,
is_needmove: null,
is_needmove: true,
workorder_type: null,
passback_status: null,
workshop_code: null,
ext_id: null,
is_delete: null,
create_id: null,
create_name: null,
create_time: null,
update_id: null,
update_name: null,
update_time: null
is_delete: false
}
export default {
name: 'PdmBdWorkorder',
components: { pagination, crudOperation, rrOperation, udOperation },
dicts: ['vehicle_type'],
components: { MaterialDialog, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -165,22 +257,104 @@ export default {
crudMethod: { ...crudPdmBdWorkorder }
})
},
created() {
this.getWorkShopList()
this.getRegionList()
},
data() {
return {
permission: {
},
rules: {
workorder_code: [
{ required: true, message: '工单编码不能为空', trigger: 'blur' }
],
plan_qty: [
{ required: true, message: '计划数量不能为空', trigger: 'blur' }
],
real_qty: [
{ required: true, message: '实际数量不能为空', trigger: 'blur' }
],
planproducestart_date: [
{ required: true, message: '计划开始不能为空', trigger: 'change' }
],
planproduceend_date: [
{ required: true, message: '计划结束不能为空', trigger: 'change' }
],
standing_time: [
{ required: true, message: '静置时间不能为空', trigger: 'change' }
],
point_code: [
{ required: true, message: '点位编码不能为空', trigger: 'change' }
],
region_code: [
{ required: true, message: '区域编码不能为空', trigger: 'change' }
],
workorder_type: [
{ required: true, message: '工单类型不能为空', trigger: 'blur' }
]
},
queryTypeOptions: [
{ key: 'workorder_code', display_name: '工单编号' },
{ key: 'point_code', display_name: '点位编码' }
]
],
workShopList: [],
regionList: [],
pointList: [],
regionCodeParam: null,
materialDialog: false
}
},
methods: {
item() {
return item
},
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
getWorkShopList() { // 获取车间列表
crudMdBaseWorkShop.getWorkShopList().then(res => {
this.workShopList = res
})
},
getRegionList() { // 获取区域列表
const param = {
is_has_workder: true
}
crudSchBaseRegion.getRegionList(param).then(res => {
this.regionList = res
})
},
getPointList() { // 获取点位列表
if (this.regionCodeParam) {
const param = {
region_code: this.regionCodeParam
}
crudSchBasePoint.getPointList(param).then(res => {
this.pointList = res
this.regionCodeParam = null
})
}
},
getMaterial() {
this.materialDialog = true
},
tableChanged(row) {
this.form.material_name = row.material_name
this.form.material_id = row.material_id
this.form.material_spec = row.material_spec
this.form.material_code = row.material_code
},
setRegionName(data) {
this.regionCodeParam = data
var region = this.regionList.find(item => item.region_code === data)
this.form.region_name = region.region_name
this.getPointList()
},
setPointName(data) {
var point = this.pointList.find(item => item.point_code === data)
this.form.point_name = point.point_name
}
}
}

View File

@@ -168,7 +168,11 @@
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')" />
<el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')" />
<el-table-column prop="region_name" label="所属区域" :min-width="flexWidth('region_name',crud.data,'所属区域')" />
<el-table-column prop="is_full" label="是否满托" :min-width="flexWidth('is_full',crud.data,'是否满托')" />
<el-table-column prop="is_full" label="是否满托" :min-width="flexWidth('is_full',crud.data,'是否满托')">
<template slot-scope="scope">
{{scope.row.is_full?'是':'否'}}
</template>
</el-table-column>
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
<el-table-column prop="workorder_code" label="工单编码" :min-width="flexWidth('workorder_code',crud.data,'工单编码')" />
<el-table-column prop="instorage_time" label="入库时间" :min-width="flexWidth('instorage_time',crud.data,'入库时间')" />
@@ -243,19 +247,13 @@ const defaultForm = {
table_fk: null,
table_fk_id: null,
buss_move_id: null,
is_first_flow_task: null,
is_first_flow_task: true,
flow_code: null,
flow_num: null,
before_task_code: null,
next_task_code: null,
remark: null,
is_delete: null,
create_id: null,
create_name: null,
create_time: null,
update_id: null,
update_name: null,
update_time: null
is_delete: false
}
export default {
name: 'VehicleMaterialGroup',

View File

@@ -437,7 +437,6 @@ export default {
},
getPointStatusList(id, flag) {
crudSchBaseRegion.getPointStatusSelectById(id).then(res => {
console.log('1:', res)
if (flag === 1) {
this.pointStatusList = res
} else {
@@ -447,7 +446,6 @@ export default {
},
getPointTypeList(id, flag) {
crudSchBaseRegion.getPointTypeSelectById(id).then(res => {
console.log('2:', res)
if (flag === 1) {
this.pointTypesList = res
} else {
@@ -456,7 +454,6 @@ export default {
})
},
changeUsed(data, flag) { // 更改启用状态
console.log('qqqqqqqqq')
const param = {}
param.data = data
param.used = flag

View File

@@ -32,4 +32,12 @@ export function changeUsed(data) {
})
}
export default { add, edit, del, changeUsed }
export function getPointList(data) {
return request({
url: 'api/schBasePoint/getPointList',
method: 'post',
data
})
}
export default { add, edit, del, changeUsed, getPointList }

View File

@@ -86,19 +86,10 @@
<el-input v-model="form.point_status_explain" style="width: 370px;" />
</el-form-item>
<el-form-item label="是否有工单">
<el-select
v-model="form.is_has_workder"
size="mini"
placeholder="是否有工单"
class="filter-item"
style="width: 370px;"
>
<el-option
v-for="item in dict.TrueOrFalse"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-radio-group v-model="form.is_has_workder" style="width: 240px">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="description">
<el-input v-model="form.remark" style="width: 380px;" rows="2" type="textarea" />
@@ -157,14 +148,13 @@ const defaultForm = {
region_name: null,
point_type_explain: null,
point_status_explain: null,
is_has_workder: 'true',
is_has_workder: true,
workshop_code: null,
order_seq: 0,
remark: null
}
export default {
name: 'Region',
dicts: ['TrueOrFalse'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
@@ -193,9 +183,6 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
[CRUD.HOOK.beforeToCU]() {
this.form.is_has_workder = this.form.is_has_workder.toString()
},
hand(value) {
this.crud.toQuery()
},

View File

@@ -24,10 +24,11 @@ export function edit(data) {
})
}
export function getRegionList() {
export function getRegionList(data) {
return request({
url: 'api/schBaseRegion/getRegionList',
method: 'get'
method: 'post',
data
})
}

View File

@@ -42,6 +42,19 @@
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="820px">
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" :rules="rules" size="mini" label-width="135px" label-suffix=":">
<el-form-item label="所属车间">
<el-select
v-model="form.workshop_code"
placeholder="请选择"
style="width: 240px;"
>
<el-option
v-for="item in workShopList"
:label="item.workshop_name"
:value="item.workshop_code"
/>
</el-select>
</el-form-item>
<el-form-item label="配置编码" prop="config_code">
<el-input v-model="form.config_code" style="width: 240px;" />
</el-form-item>