agv作业管理

This commit is contained in:
x
2026-05-28 15:46:22 +08:00
parent 8410ff44e0
commit 321d0fb40d
5 changed files with 236 additions and 16 deletions

View File

@@ -507,7 +507,14 @@
}
}
,{
"path" : "pages/zw/zygl",
"path" : "pages/zw/zygl-agv",
"style" :
{
"navigationStyle": "custom"
}
}
,{
"path" : "pages/zw/zygl-man",
"style" :
{
"navigationStyle": "custom"

View File

@@ -45,7 +45,7 @@
{title: '解包管理', path: 'RF03', sonTree: [{title: '解包上料', path: '/pages/zw/jb-up-mater'}, {title: '解包出桶', path: '/pages/zw/jb-lower-mater'}, {title: '解包退料', path: '/pages/zw/jb-return-mater'}, {title: '人车安全', path: '/pages/zw/mancar-safe'}]},
{title: '缓存管理', path: 'RF06', sonTree: [{title: '料桶盘点', path: '/pages/zw/materbox-instore'}, {title: '物料入库', path: '/pages/zw/wlrk'}]},
{title: '产线管理', path: 'RF02', sonTree: [{title: '手工叫料', path: '/pages/zw/manual-callmater'}, {title: '手工退料', path: '/pages/zw/manual-returnmater'}]},
{title: '作业管理', path: 'RF07', sonTree: [{title: '作业管理', path: '/pages/zw/zygl'}]},
{title: '作业管理', path: 'RF07', sonTree: [{title: 'AGV作业管理', path: '/pages/zw/zygl-agv'}, {title: '人工作业管理', path: '/pages/zw/zygl-man'}]},
// {title: '入库管理', path: 'RF01', sonTree: [{title: '物料组盘入库', path: '/pages/entry/mater-group-to-store'}, {title: '合格证入库', path: '/pages/entry/qualified-to-store'}, {title: '单据入库', path: '/pages/entry/bill-to-store'}, {title: '盘点入库', path: '/pages/entry/check-to-store'}, {title: '空托盘入库', path: '/pages/entry/empty-tray-to-store'}]},
// {title: '出库管理', path: 'RF02', sonTree: [{title: '空托盘出库', path: '/pages/outbound/tray-out-store'}, {title: '出库确认', path: '/pages/outbound/out-store-confirm'}, {title: '单据出库', path: '/pages/outbound/bill-list'}, {title: '盘点出库', path: '/pages/outbound/stock-out-store'}, {title: '物料出库', path: '/pages/outbound/mater-outstore'}, {title: '货架绑定', path: '/pages/outbound/shelf-bind'}, {title: '产线转运', path: '/pages/outbound/line-transfer'}, {title: '空载具出库', path: '/pages/outbound/empty-vehicle-outstore'}, {title: 'CTU载具出库', path: '/pages/outbound/ctu-vehicle-outstore'}]},

View File

@@ -1,6 +1,6 @@
<template>
<view class="zd_container" :class="{'en_class': applicationLocale === 'en'}">
<!-- 作业管理 -->
<!-- AGV作业管理 -->
<nav-bar :title="title"></nav-bar>
<view class="zd_content">
<view class="zd_wrapper">
@@ -20,30 +20,36 @@
<table>
<thead>
<tr>
<th>载具</th>
<th>载具号2</th>
<th>批次</th>
<th>物料编码</th>
<th>任务</th>
<th>批次号</th>
<th>物料名称</th>
<th>物料规格</th>
<th>物料类型</th>
<th>重量</th>
<th>状态</th>
<th>起点1</th>
<th>终点1</th>
<th>载具号1</th>
<th>起点2</th>
<th>终点2</th>
<th>载具号2</th>
<th>创建人</th>
<th>创建时间</th>
</tr>
</thead>
<tbody>
<tr v-for="(e, i) in dataList" :key="i" @tap="toChek(e)" :class="{'checked': pkId === e.task_code}">
<td>{{e.vehicle_code}}</td>
<td>{{e.vehicle_code2}}</td>
<td>{{e.task_code}}</td>
<td>{{e.pcsn}}</td>
<td>{{e.material_code}}</td>
<td>{{e.material_name}}</td>
<td>{{e.material_spec}}</td>
<td>{{e.material_type}}</td>
<td>{{e.qty}}</td>
<td>{{e.task_status}}</td>
<td>{{e.point_code1}}</td>
<td>{{e.point_code2}}</td>
<td>{{e.vehicle_code}}</td>
<td>{{e.point_code3}}</td>
<td>{{e.point_code4}}</td>
<td>{{e.vehicle_code2}}</td>
<td>{{e.create_name}}</td>
<td>{{e.create_time}}</td>
</tr>
</tbody>
</table>
@@ -51,10 +57,11 @@
</view>
</view>
<view class="zd-row submit-bar">
<button class="zd-col-5 button-default" @tap="toEmpty">清空</button>
<!-- <button class="zd-col-5 button-default" @tap="toEmpty">清空</button> -->
<button class="zd-col-5 button-primary" @tap="_schTaskQueryTask">查询</button>
<button class="zd-col-6 button-primary" :class="{'button-info': !pkId}" :disabled="disabled" @tap="_schTaskAgainTask">重新下发</button>
<button class="zd-col-6 button-primary" :class="{'button-info': !pkId}" :disabled="disabled" @tap="_forceConfirm">强制完成</button>
<button class="zd-col-6 button-primary" :class="{'button-info': !pkId}" :disabled="disabled" @tap="_forceCancel">强制取消</button>
</view>
</view>
</template>
@@ -62,7 +69,7 @@
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import {schTaskQueryTask, schTaskAgainTask, forceConfirm} from '@/utils/getData4.js'
import {schTaskQueryTask, schTaskAgainTask, forceConfirm, forceCancel} from '@/utils/getData4.js'
export default {
components: {
NavBar,
@@ -141,6 +148,28 @@
} catch (e) {
this.disabled = false
}
},
async _forceCancel () {
this.disabled = true
if (!this.pkId) {
this.disabled = false
return
}
try {
let res = await forceCancel(this.pkId)
if (res.status === '200') {
this._schTaskQueryTask()
}
this.disabled = false
uni.showToast({
title: res.message,
icon: 'none'
})
this.toEmpty()
this._schTaskQueryTask()
} catch (e) {
this.disabled = false
}
}
}
}

176
pages/zw/zygl-man.vue Normal file
View File

@@ -0,0 +1,176 @@
<template>
<view class="zd_container" :class="{'en_class': applicationLocale === 'en'}">
<!-- 人工作业管理 -->
<nav-bar :title="title"></nav-bar>
<view class="zd_content">
<view class="zd_wrapper">
<view class="zd-row border-bottom">
<view class="zd-col-7">
<span class="filter_label">关键字</span>
</view>
<view class="zd-col-17">
<search-box
v-model="val1"
/>
</view>
</view>
</view>
<view class="zd_wrapper grid-wraper">
<view class="slide_new">
<table>
<thead>
<tr>
<th>任务号</th>
<th>批次号</th>
<th>物料名称</th>
<th>重量</th>
<th>状态</th>
<th>起点1</th>
<th>终点1</th>
<th>载具号1</th>
<th>起点2</th>
<th>终点2</th>
<th>载具号2</th>
<th>创建人</th>
<th>创建时间</th>
</tr>
</thead>
<tbody>
<tr v-for="(e, i) in dataList" :key="i" @tap="toChek(e)" :class="{'checked': pkId === e.task_code}">
<td>{{e.task_code}}</td>
<td>{{e.pcsn}}</td>
<td>{{e.material_name}}</td>
<td>{{e.qty}}</td>
<td>{{e.task_status}}</td>
<td>{{e.point_code1}}</td>
<td>{{e.point_code2}}</td>
<td>{{e.vehicle_code}}</td>
<td>{{e.point_code3}}</td>
<td>{{e.point_code4}}</td>
<td>{{e.vehicle_code2}}</td>
<td>{{e.create_name}}</td>
<td>{{e.create_time}}</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
<view class="zd-row submit-bar">
<!-- <button class="zd-col-5 button-default" @tap="toEmpty">清空</button> -->
<button class="zd-col-6 button-primary" @tap="_schTaskQueryTask1">查询</button>
<!-- <button class="zd-col-6 button-primary" :class="{'button-info': !pkId}" :disabled="disabled" @tap="_schTaskAgainTask">重新下发</button> -->
<button class="zd-col-7 button-primary" :class="{'button-info': !pkId}" :disabled="disabled" @tap="_forceConfirm">强制完成</button>
<button class="zd-col-7 button-primary" :class="{'button-info': !pkId}" :disabled="disabled" @tap="_forceCancel">强制取消</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import {schTaskQueryTask1, schTaskAgainTask, forceConfirm, forceCancel} from '@/utils/getData4.js'
export default {
components: {
NavBar,
SearchBox
},
data() {
return {
title: '',
val1: '',
dataList: [],
pkId: '',
pkObj: {},
disabled: false,
applicationLocale: ''
};
},
onLoad (options) {
this.title = options.title
this.applicationLocale = uni.getLocale()
},
methods: {
toEmpty () {
this.val1 = ''
this.dataList = []
},
async _schTaskQueryTask1 () {
try {
let res = await schTaskQueryTask1(this.val1)
this.dataList = [...res.data]
} catch(e) {
this.dataList = []
}
},
toChek (e) {
this.pkId = this.pkId === e.task_code ? '' : e.task_code
this.pkObj = this.pkId === e.task_code ? e : {}
},
async _schTaskAgainTask () {
this.disabled = true
if (!this.pkId) {
this.disabled = false
return
}
try {
let res = await schTaskAgainTask(this.pkId)
if (res.status === '200') {
this._schTaskQueryTask1()
}
this.disabled = false
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled = false
}
},
async _forceConfirm () {
this.disabled = true
if (!this.pkId) {
this.disabled = false
return
}
try {
let res = await forceConfirm(this.pkId)
if (res.status === '200') {
this._schTaskQueryTask1()
}
this.disabled = false
uni.showToast({
title: res.message,
icon: 'none'
})
this.toEmpty()
this._schTaskQueryTask1()
} catch (e) {
this.disabled = false
}
},
async _forceCancel () {
this.disabled = true
if (!this.pkId) {
this.disabled = false
return
}
try {
let res = await forceCancel(this.pkId)
if (res.status === '200') {
this._schTaskQueryTask1()
}
this.disabled = false
uni.showToast({
title: res.message,
icon: 'none'
})
this.toEmpty()
this._schTaskQueryTask1()
} catch (e) {
this.disabled = false
}
}
}
}
</script>

View File

@@ -383,6 +383,10 @@ export const schTaskQueryTask = (code) => request({
url:'api/pda/schTask/queryTask',
data: {task_code: code}
})
export const schTaskQueryTask1 = (code) => request({
url:'api/pda/schTask/queryTask1',
data: {task_code: code}
})
export const schTaskAgainTask = (code) => request({
url:'api/pda/schTask/againTask',
data: {task_code: code}
@@ -391,3 +395,7 @@ export const forceConfirm = (code) => request({
url:'api/pda/schTask/forceConfirm',
data: {task_code: code}
})
export const forceCancel = (code) => request({
url:'api/pda/schTask/forceCancel',
data: {task_code: code}
})