feat: 工单整改、基础优化、混碾业务、压制业务、分拣业务、烧制和叠托库业务基础版开发

This commit is contained in:
2023-11-03 16:22:12 +08:00
parent 08366a75f5
commit d361ff6afb
69 changed files with 1611 additions and 1411 deletions

View File

@@ -1,2 +1,2 @@
# 武汉新锐MES前端
# 宁德华弘LMS前端

View File

@@ -1,9 +1,9 @@
window.g = {
dev: {
VUE_APP_BASE_API: 'http://10.93.41.201:8010'
VUE_APP_BASE_API: 'http://127.0.0.1:8011'
},
prod: {
VUE_APP_BASE_API: 'http://10.93.41.201:8010'
VUE_APP_BASE_API: 'http://127.0.0.1:8011'
}
}

View File

@@ -56,7 +56,7 @@
/>
</el-select>
</el-form-item>
<rrOperation :crud="crud" />
<rrOperation :crud="crud"/>
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
@@ -78,6 +78,7 @@
type="success"
icon="el-icon-position"
size="mini"
disabled
@click="synchronize()"
>
同步
@@ -114,28 +115,78 @@
/>
</el-select>
</el-form-item>
<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="material_name">
<el-input v-model="form.material_name" style="width: 240px;" @focus="getMaterial(1)" />
<el-input v-model="form.material_name" style="width: 240px;" @focus="getMaterial(1)"/>
</el-form-item>
<el-form-item label="物料编码">
<el-input v-model="form.material_code" style="width: 240px;" disabled />
<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-input v-model="form.material_spec" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item label="计划数量" prop="plan_qty">
<el-form-item label="半成品编码" prop="material_name">
<el-input v-model="form.half_material_code" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item label="原料编码">
<el-input v-model="form.raw_material_code" style="width: 240px;" disabled/>
</el-form-item>
<el-form-item v-if="form.region_code === 'HN' || form.region_code === 'YZ'" label="计划重量" prop="plan_weight">
<el-input-number
v-model.number="form.plan_qty"
:disabled="form.region_code === 'FJ'"
v-model.number="form.plan_weight"
:min="0"
style="width: 240px;"
/>
</el-form-item>
<el-form-item label="半成品编码" prop="material_name">
<el-input v-model="form.half_material_code" style="width: 240px;" disabled />
</el-form-item>
<el-form-item label="原料编码">
<el-input v-model="form.raw_material_code" style="width: 240px;" disabled />
<el-form-item v-if="form.region_code != 'HN'" label="计划数量" prop="plan_qty">
<el-input-number
v-model.number="form.plan_qty"
:min="0"
style="width: 240px;"
/>
</el-form-item>
<el-form-item label="计划开始时间" prop="planproducestart_date">
<el-date-picker
@@ -173,69 +224,28 @@
placeholder="选择日期时间"
/>
</el-form-item>
<el-form-item label="所属工序" prop="region_code">
<el-select
v-model="form.region_code"
filterable
placeholder="请选择"
<el-form-item label="新料比例" v-if="form.region_code === 'YZ'">
<el-input-number
v-model.number="form.material_ratio"
:min="0"
:max="999"
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 v-if="form.region_code === 'FJ'" label="订单号">
<el-input
v-model="form.order_no"
:disabled="form.material_code===null"
style="width: 240px;"
@focus="getProductionOrder(form.material_id)"
/>
</el-form-item>
<el-form-item v-if="form.region_code === 'FJ'" label="客户编码">
<el-select v-model="form.custer_no" clearable filterable placeholder="请选择" style="width: 240px;">
<el-form-item label="检验员" v-if="form.region_code === 'YZ'">
<el-select
v-model="form.inspector"
clearable
size="mini"
placeholder="请选择"
class="filter-item"
style="width: 240px;"
>
<el-option
v-for="item in custerList"
:key="item.custer_NO"
:label="item.custer_NAME"
:value="item.custer_NO"
>
<span style="float: left">{{ item.custer_NO }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.custer_NAME }}</span>
</el-option>
v-for="item in userList"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="静置时间(分钟)" prop="standing_time">
@@ -270,7 +280,7 @@
</el-select>
</el-form-item>
<el-form-item v-if="false" label="工单类型" prop="workorder_type">
<el-input v-model="form.workorder_type" style="width: 240px;" />
<el-input v-model="form.workorder_type" style="width: 240px;"/>
</el-form-item>
<el-form-item label="是否自动搬运" prop="is_needmove">
<el-radio-group v-model="form.is_needmove" style="width: 240px">
@@ -284,6 +294,12 @@
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.region_code === 'HN'" label="是否新料" prop="is_new">
<el-radio-group v-model="form.is_new" 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">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
@@ -299,7 +315,7 @@
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column type="selection" width="55"/>
<el-table-column
prop="workorder_code"
label="工单编号"
@@ -314,16 +330,18 @@
{{ dict.label.pdm_workorder_status[scope.row.workorder_status] }}
</template>
</el-table-column>
<el-table-column prop="plan_qty" label="计划数量" :min-width="flexWidth('plan_qty',crud.data,'计划数量')" />
<el-table-column prop="real_qty" label="实际数量" :min-width="flexWidth('real_qty',crud.data,'实际数量')" />
<el-table-column prop="plan_qty" label="计划数量" :min-width="flexWidth('plan_qty',crud.data,'计划数量')"/>
<el-table-column prop="real_qty" label="实际数量" :min-width="flexWidth('real_qty',crud.data,'实际数量')"/>
<el-table-column prop="plan_weight" label="计划重量" :min-width="flexWidth('plan_weight',crud.data,'计划数量')"/>
<el-table-column prop="real_weight" label="实际重量" :min-width="flexWidth('real_weight',crud.data,'实际数量')"/>
<!-- <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="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="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="material_code"
label="成品编码"
@@ -402,20 +420,13 @@
{{ scope.row.is_urgent ? '是' : '否' }}
</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,'车间编码')" />-->
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')"/>
<el-table-column
prop="create_time"
label="创建时间"
:min-width="flexWidth('create_time',crud.data,'创建时间')"
/>
<el-table-column prop="update_name" label="修改人" :min-width="flexWidth('update_name',crud.data,'修改人')" />
<el-table-column prop="update_name" label="修改人" :min-width="flexWidth('update_name',crud.data,'修改人')"/>
<el-table-column
prop="update_time"
label="修改时间"
@@ -431,10 +442,9 @@
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
<pagination/>
</div>
<MaterialDialog :dialog-show.sync="materialDialog" :flag="flag" @tableChanged="tableChanged" />
<ProductionOrder :dialog-show.sync="orderDialog" :material-code="materialCode" @recordMesOrder="recordMesOrder" />
<MaterialDialog :dialog-show.sync="materialDialog" :flag="flag" @tableChanged="tableChanged"/>
</div>
</template>
@@ -450,11 +460,11 @@ 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'
import ProductionOrder from '@/views/wms/pdm/workerorder/ProductionOrder.vue'
const defaultForm = {
workorder_id: null,
workorder_code: null,
plan_weight: null,
plan_qty: null,
real_qty: null,
material_id: null,
@@ -481,18 +491,16 @@ const defaultForm = {
ext_id: null,
is_delete: false,
is_urgent: false,
order_no: null,
custer_no: null,
is_new: true,
inspector: null,
material_ratio: 0,
pack_method: null,
order_subnum: 0,
guadansum: 0,
ext_data: 0,
show: false
ext_data: 0
}
export default {
name: 'PdmBdWorkorder',
dicts: ['vehicle_type', 'pdm_workorder_status'],
components: { ProductionOrder, MaterialDialog, pagination, crudOperation, rrOperation, udOperation },
components: { MaterialDialog, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -525,9 +533,6 @@ export default {
region_code: [
{ required: true, message: '区域编码不能为空', trigger: 'change' }
]
/* workorder_type: [
{ required: true, message: '工单类型不能为空', trigger: 'blur' }
]*/
},
queryTypeOptions: [
{ key: 'workorder_code', display_name: '工单编号' },
@@ -537,23 +542,29 @@ export default {
regionList: [],
pointList: [],
custerList: [],
userList: [],
regionCodeParam: null,
materialDialog: false,
orderDialog: false,
fullscreenLoading: false,
materialCode: null,
flag: 1
}
},
created() {
this.getWorkShopList()
this.getRegionList()
this.getCuster()
this.getUserList()
},
methods: {
item() {
return item
},
getUserList() {
// 获取检验员列表
crudPdmBdWorkorder.userList().then(res => {
this.userList = res
})
},
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
@@ -579,11 +590,6 @@ export default {
this.regionList = res
})
},
getCuster() { // 获取客户信息
crudPdmBdWorkorder.getCuster().then(res => {
this.custerList = res
})
},
getPointList() { // 获取点位列表
if (this.regionCodeParam) {
const param = {
@@ -599,10 +605,6 @@ export default {
this.materialDialog = true
this.flag = flag
},
getProductionOrder(code) {
this.orderDialog = true
this.materialCode = code
},
tableChanged(row, flag) {
if (flag === 1) {
this.form.material_name = row.material_name
@@ -617,17 +619,7 @@ export default {
this.form.raw_material_code = row.material_code
}
this.form.pack_method = row.pack_method
},
clearRecordMesOrder() {
this.form.order_no = null
this.form.order_subnum = 0
this.form.guadansum = 0
},
recordMesOrder(row) { // 操作mes工单
this.clearRecordMesOrder()
this.form.order_no = row.forder_NO
this.form.order_subnum = row.forder_SUBNUM
this.form.guadansum = row.guadansum
this.form.standing_time = row.standing_time === null ? 0 : row.standing_time
},
setRegionName(data) {
// 清空

View File

@@ -54,5 +54,11 @@ export function getCuster() {
method: 'post'
})
}
export function userList() {
return request({
url: 'api/pdmBdWorkorder/userList',
method: 'post'
})
}
export default { add, edit, del, submits, orderSynchronize, queryMaterials, getCuster }
export default { add, edit, del, submits, orderSynchronize, queryMaterials, userList }