1. 增加dbs界面---全部选择---按钮。

2. 增加生成需求以及生成看板时导出已选工单列表的功能。
This commit is contained in:
梁州 2025-06-16 14:04:31 +08:00
parent cb69e558b2
commit fba01e7a3f
5 changed files with 148 additions and 118 deletions

View File

@ -198,3 +198,12 @@ export const deleteKittingBom = (params) => {
timeout: 5000 timeout: 5000
}) })
} }
// 获取筛选条件的所有工单号列表
export const getTargetOrderList = (params) => {
return request({
url: '/kate/getTargetOrderList',
method: 'post',
data: params,
timeout: 5000
})
}

View File

@ -39,6 +39,9 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-button style="height: 32px; background-color: #40E0D0;" class="btn-search"
@click="addAllListOfSearch()">全部添加
</el-button>
</el-row> </el-row>
<div style="align-content: center;"> <div style="align-content: center;">
<el-row> <el-row>
@ -136,115 +139,6 @@
<el-table-column prop="stockType" show-overflow-tooltip label="存放类型"/> <el-table-column prop="stockType" show-overflow-tooltip label="存放类型"/>
</el-table> </el-table>
</el-dialog> </el-dialog>
<!-- <el-dialog v-model="dialogVisible" title="库存信息" width="40%" draggable :show-close="false">
<el-form ref="stockFormRef" :model="stockFormEntity" :label-position="labelPosition"
label-width="100px" style="max-width: 100%" :rules="rules" status-icon>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="库存编号" prop="stockId">
<el-input v-model="stockFormEntity.stockId" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="箱号" prop="vehicleId">
<el-input v-model="stockFormEntity.vehicleId" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="料号" prop="goodsId">
<el-input v-model="stockFormEntity.goodsId" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="料名" prop="goodsName">
<el-input v-model="stockFormEntity.goodsName" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="入库数量" prop="totalNum">
<el-input-number v-model.number="stockFormEntity.totalNum" controls-position="right"
:min="0" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="剩余数量为0时删除库存" prop="remainNum">
<el-input-number v-model.number="stockFormEntity.remainNum"
controls-position="right" :min="0" :max="stockFormEntity.totalNum" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="库位" prop="locationId">
<el-input v-model="stockFormEntity.locationId" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="未使用天数" prop="noUseDays">
<el-input-number v-model.number="stockFormEntity.noUseDays"
controls-position="right" :min="0" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="库存状态" prop="stockStatus">
<el-select-v2 v-model="stockFormEntity.stockStatus" placeholder="请选择库存状态"
:options="stockStatusOptions"></el-select-v2>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料状态" prop="goodsStatus">
<el-select-v2 v-model="stockFormEntity.goodsStatus" placeholder="请选择物料状态"
:options="goodsStatusOptions"></el-select-v2>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="盘点任务号" prop="inventoryTaskId">
<el-input v-model="stockFormEntity.inventoryTaskId" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否盘点" prop="isInventory">
<el-input v-model="stockFormEntity.isInventory" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="创建时间" prop="createTime">
<el-input v-model="stockFormEntity.createTime" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最近更新时间" prop="lastUpdateTime">
<el-input v-model="stockFormEntity.lastUpdateTime" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="最近更新用户" prop="lastUpdateUser">
<el-input v-model="stockFormEntity.lastUpdateUser" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="submitStockInfo(stockFormEntity)">
确定
</el-button>
</span>
</template>
</el-dialog> -->
<el-dialog v-model="showDbsUploadDialog" title="上传DBS" width="40%" draggable :show-close="true"> <el-dialog v-model="showDbsUploadDialog" title="上传DBS" width="40%" draggable :show-close="true">
<fieldset class="search-area"> <fieldset class="search-area">
<legend>导入dbs</legend> <legend>导入dbs</legend>
@ -258,7 +152,13 @@
<script setup> <script setup>
import store from '@/store' import store from '@/store'
import {queryDbsByPage, deleteDbsPlan, getGoodsRequirement, genClcKanbanRequirement} from '@/api/kateWork.js' import {
queryDbsByPage,
deleteDbsPlan,
getGoodsRequirement,
genClcKanbanRequirement,
getTargetOrderList
} from '@/api/kateWork.js'
import {dateFormatter, timeFormatter} from '@/utils/formatter.js' import {dateFormatter, timeFormatter} from '@/utils/formatter.js'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs' import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import {ref, reactive, onMounted, nextTick, onBeforeUnmount} from 'vue' import {ref, reactive, onMounted, nextTick, onBeforeUnmount} from 'vue'
@ -299,10 +199,7 @@ let dbsQueryFormEntity = reactive({
planStartDate: null planStartDate: null
}) })
let dbsQueryFormRef = ref() let dbsQueryFormRef = ref()
let showEbsEditFlag = ref(false)
let dbsId = '' let dbsId = ''
let dbsEditFormRef = ref()
let dbsEditFormEntity = reactive({})
let showDbsUploadDialog = ref(false) let showDbsUploadDialog = ref(false)
let selectedOrders = ref([]) let selectedOrders = ref([])
let orderOptions = ref([]) let orderOptions = ref([])
@ -477,7 +374,9 @@ const addRequirement = (row) => {
} }
// //
if (orderOptions.value.length > 0) { if (orderOptions.value.length > 0) {
const oldOption = orderOptions.value.find((item) => {return item.value === workOrder}) const oldOption = orderOptions.value.find((item) => {
return item.value === workOrder
})
if (oldOption === undefined) { if (oldOption === undefined) {
orderOptions.value.push({ orderOptions.value.push({
label: workOrder, label: workOrder,
@ -494,7 +393,9 @@ const addRequirement = (row) => {
} }
// //
const addSelectWorkOrders = (workOrder) => { const addSelectWorkOrders = (workOrder) => {
if (selectedOrders.value.find((item) => {return item === workOrder}) === undefined) { if (selectedOrders.value.find((item) => {
return item === workOrder
}) === undefined) {
selectedOrders.value.push(workOrder) selectedOrders.value.push(workOrder)
} else { } else {
ElMessage.error('请勿重复添加工单') ElMessage.error('请勿重复添加工单')
@ -521,6 +422,8 @@ const openRequirementDialog = () => {
goodsRequireList.value = [] goodsRequireList.value = []
} }
showGoodsRequireDialog.value = true showGoodsRequireDialog.value = true
//
downloadSelectedOrders()
} else { } else {
ElMessage.error(response.message) ElMessage.error(response.message)
} }
@ -546,7 +449,6 @@ const exportRequirements = () => {
console.log(e) console.log(e)
ElMessage.error('导出需求异常。') ElMessage.error('导出需求异常。')
} }
} }
// //
const genKanban = () => { const genKanban = () => {
@ -564,6 +466,8 @@ const genKanban = () => {
const response = res.data const response = res.data
if (response.code === 0) { if (response.code === 0) {
ElMessage.success('生成看板需求成功。') ElMessage.success('生成看板需求成功。')
//
downloadSelectedOrders()
// //
const menuItem = store.getters.getMenuItemByPath('/clcKanban') const menuItem = store.getters.getMenuItemByPath('/clcKanban')
if (menuItem !== undefined) { if (menuItem !== undefined) {
@ -580,6 +484,82 @@ const genKanban = () => {
loading.close() loading.close()
}) })
} }
//
const addAllListOfSearch = () => {
loading.open('添加中...')
const request = {
userName: USER_NAME,
standId: STAND_ID,
workOrder: dbsQueryFormEntity.workOrder.trim(),
productId: dbsQueryFormEntity.productId.trim(),
planStartDate: dateFormatter(dbsQueryFormEntity.planStartDate)
}
getTargetOrderList(request).then(res => {
const response = res.data
if (response.code === 0) {
//
addOrders(response.data)
} else {
ElMessage.error(response.message)
}
}).catch(err => {
console.log(err)
ElMessage.error('获取工单号列表异常。')
}).finally(() => {
loading.close()
})
}
//
const addOrders = (orderList) => {
if (orderList === undefined || orderList.length === 0) {
//
return
}
for (let i = 0; i < orderList.length; i++) {
const workOrder = orderList[i]
//
if (orderOptions.value.length > 0) {
const oldOption = orderOptions.value.find((item) => {
return item.value === workOrder
})
if (oldOption === undefined) {
orderOptions.value.push({
label: workOrder,
value: workOrder
})
}
} else {
orderOptions.value.push({
label: workOrder,
value: workOrder
})
}
//
if (selectedOrders.value.find((item) => {
return item === workOrder
}) === undefined) {
selectedOrders.value.push(workOrder)
}
}
}
//
const downloadSelectedOrders = () => {
try {
const header = {
workOrder: '工单号'
}
//
const selectedOrdersEntity = selectedOrders.value.map((item) => {
return {
workOrder: item
}
})
exportToExcel(header, selectedOrdersEntity, '已选工单列表', '已选工单列表')
} catch (e) {
console.log(e)
ElMessage.error('导出选择的工单列表异常。')
}
}
</script> </script>
<style scoped> <style scoped>
.content { .content {

View File

@ -242,4 +242,14 @@ public class KateWorkController {
public BaseWmsApiResponse deleteKittingBom(@RequestBody KittingBomRequest kittingBomRequest) { public BaseWmsApiResponse deleteKittingBom(@RequestBody KittingBomRequest kittingBomRequest) {
return kateWorkControllerService.deleteKittingBom(kittingBomRequest); return kateWorkControllerService.deleteKittingBom(kittingBomRequest);
} }
/**
* 获取目标工单列表
* @param dbsQuery 查询参数
* @return 目标工单列表
*/
@PostMapping("/getTargetOrderList")
public WmsApiResponse<List<String>> getTargetOrderList(@RequestBody DbsQuery dbsQuery) {
return kateWorkControllerService.getTargetOrderList(dbsQuery);
}
} }

View File

@ -166,4 +166,11 @@ public interface IKateWorkControllerService {
* @return 删除结果 * @return 删除结果
*/ */
BaseWmsApiResponse deleteKittingBom(KittingBomRequest kittingBomRequest); BaseWmsApiResponse deleteKittingBom(KittingBomRequest kittingBomRequest);
/**
* 查询当前查询条件下的工单号列表
* @param dbsQuery 查询条件
* @return 工单列表
*/
WmsApiResponse<List<String>> getTargetOrderList(DbsQuery dbsQuery);
} }

View File

@ -1361,6 +1361,30 @@ public class KateWorkControllerServiceImpl implements IKateWorkControllerService
} }
} }
/**
* 查询符合条件的所有工单号列表
* @param dbsQuery 查询条件
* @return 符合条件的所有工单号
*/
@Override
public WmsApiResponse<List<String>> getTargetOrderList(DbsQuery dbsQuery) {
if (dbsQuery == null) {
return WmsApiResponse.error("请求参数不能为NULL。", null);
}
// 查询dbs表筛选条件默认加上状态
List<TAppDbs> dbsList = appDbsService.list(new LambdaQueryWrapper<TAppDbs>()
.ne(TAppDbs::getDbsStatus, DbsStatusEnums.FINISH.getValue())
.like(StringUtils.isNotEmpty(dbsQuery.getWorkOrder()), TAppDbs::getWorkOrder, dbsQuery.getWorkOrder())
.like(StringUtils.isNotEmpty(dbsQuery.getProductId()), TAppDbs::getProductId, dbsQuery.getProductId())
.eq(dbsQuery.getPlanStartDate() != null, TAppDbs::getTestPlanStartDate, dbsQuery.getPlanStartDate())
);
// 返回结果
if (dbsList == null || dbsList.isEmpty()) {
return WmsApiResponse.success("未查询到符合条件的工单号。", Collections.emptyList());
}
return WmsApiResponse.success("查询工单号成功。", dbsList.stream().map(TAppDbs::getWorkOrder).distinct().toList());
}
/** /**
* 获取服务件成品号的物料需求 * 获取服务件成品号的物料需求
* *