Commit 17399147 by 杨子

feat(盘点任务): 添加盘盈盘亏处理功能并调整任务完成接口位置

- 在盘点任务详情中添加盘盈入库和盘亏出库功能
- 将completeWmsInventoryTask接口从wmsInventoryTask移动到wmsInventoryCheck
- 添加盘盈盘亏对话框和确认操作逻辑
parent 684cc178
......@@ -33,4 +33,12 @@ export function inventoryCheckToBatchNo(data) {
method: 'post',
data
})
}
\ No newline at end of file
}
// 结束盘点任务
export function completeWmsInventoryTask(taskId) {
return request({
url: '/ware/inventoryCheck/complete/' + taskId,
method: 'post'
})
}
......@@ -42,11 +42,3 @@ export function delWmsInventoryTask(taskId) {
method: 'delete'
})
}
// 结束盘点任务
export function completeWmsInventoryTask(taskId) {
return request({
url: '/ware/wmsInventoryTask/complete/' + taskId,
method: 'post'
})
}
......@@ -42,3 +42,26 @@ export function delWmsInventoryTaskDetail(detailId) {
method: 'delete'
})
}
// 盘盈出库
export function handleProfit(detailId, profitQuantity) {
return request({
url: '/ware/wmsInventoryTaskDetail/profit',
method: 'post',
params: {
detailId: detailId,
profitQuantity: profitQuantity
}
})
}
// 盘亏入库
export function handleLoss(detailId) {
return request({
url: '/ware/wmsInventoryTaskDetail/loss',
method: 'post',
params: {
detailId: detailId
}
})
}
......@@ -49,14 +49,61 @@
</el-table-column>
<el-table-column label="RFID标签" align="center" prop="rfidTag" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" fixed="right" width="160">
<template #default="scope">
<el-button
v-if="(scope.row.differenceReason === 'py' && taskInfo.taskStatus == '2') && scope.row.checkStatus == '2'"
link
type="success"
size="small"
@click="handleProfitDialog(scope.row)"
>盘盈</el-button>
<el-button
v-if="(scope.row.differenceReason === 'pk' && taskInfo.taskStatus == '2') && scope.row.checkStatus == '2'"
link
type="danger"
size="small"
@click="handleLossConfirm(scope.row)"
>盘亏</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<!-- 盘盈入库对话框 -->
<el-dialog
v-model="profitDialogVisible"
title="盘盈入库"
width="400px"
append-to-body
>
<el-form :model="profitForm" label-width="100px">
<el-form-item label="盘盈数量">
<el-input-number
v-model="profitForm.profitQuantity"
:min="0.001"
:max="selectedRow.differenceQuantity"
:precision="3"
step="0.001"
placeholder="请输入盘盈数量"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="最大可盘盈">
<el-input v-model="selectedRow.differenceQuantity" readonly placeholder="最大可盘盈数量" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="profitDialogVisible = false">取消</el-button>
<el-button type="primary" @click="submitProfit">确认入库</el-button>
</template>
</el-dialog>
</template>
<script setup>
import { ref, onMounted, watch } from 'vue'
import { listWmsInventoryTaskDetail } from "@/api/ware/wmsInventoryTaskDetail"
import { listWmsInventoryTaskDetail, handleProfit, handleLoss } from "@/api/ware/wmsInventoryTaskDetail"
import { parseTime } from "@/utils/ruoyi"
const {proxy} = getCurrentInstance()
......@@ -78,6 +125,16 @@ const emit = defineEmits(['close'])
const taskDetailList = ref([])
const loading = ref(false)
// 盘盈入库相关
const profitDialogVisible = ref(false)
const profitForm = ref({
profitQuantity: 0
})
const selectedRow = ref({})
// 盘亏出库相关
const lossConfirmVisible = ref(false)
// 加载任务明细数据
function loadTaskDetail() {
loading.value = true
......@@ -100,6 +157,45 @@ watch(() => props.visible, (newVal) => {
}
},{immediate: true})
// 处理盘盈入库对话框
function handleProfitDialog(row) {
selectedRow.value = row
// 默认为最大可盘盈数量
profitForm.value.profitQuantity = row.differenceQuantity
profitDialogVisible.value = true
}
// 提交盘盈入库
function submitProfit() {
if (profitForm.value.profitQuantity <= 0 || profitForm.value.profitQuantity > selectedRow.value.differenceQuantity) {
proxy.$modal.msgError(`盘盈数量必须在0.001-${selectedRow.value.differenceQuantity}之间`)
return
}
proxy.$modal.confirm('确认要执行盘盈入库操作吗?').then(() => {
return handleProfit(selectedRow.value.detailId, profitForm.value.profitQuantity)
}).then(() => {
profitDialogVisible.value = false
loadTaskDetail() // 重新加载数据
proxy.$modal.msgSuccess('盘盈入库操作成功')
}).catch(() => {
// 取消操作不做处理
})
}
// 处理盘亏出库确认
function handleLossConfirm(row) {
selectedRow.value = row
proxy.$modal.confirm(`确认要执行盘亏出库操作吗?盘亏数量为:${Math.abs(row.differenceQuantity)}`).then(() => {
return handleLoss(row.detailId)
}).then(() => {
loadTaskDetail() // 重新加载数据
proxy.$modal.msgSuccess('盘亏出库操作成功')
}).catch(() => {
// 取消操作不做处理
})
}
// 暴露给父组件的方法
defineExpose({
loadTaskDetail
......
......@@ -84,7 +84,8 @@
</template>
<script setup name="WmsInventoryTask">
import { listWmsInventoryTask, getWmsInventoryTask, delWmsInventoryTask, addWmsInventoryTask, updateWmsInventoryTask, completeWmsInventoryTask } from "@/api/ware/wmsInventoryTask"
import { listWmsInventoryTask, getWmsInventoryTask, delWmsInventoryTask, addWmsInventoryTask, updateWmsInventoryTask } from "@/api/ware/wmsInventoryTask"
import { completeWmsInventoryTask } from "@/api/ware/wmsInventoryCheck"
import DetailInfo from "./components/DetailInfo.vue"
import AddForm from "./components/AddForm.vue"
import InventoryExecuteForm from "./components/InventoryExecuteForm.vue"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment