diff --git a/src/locales/en.ts b/src/locales/en.ts index 4c6a0706..7adb0e2c 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -843,8 +843,8 @@ export default { relatedOrder: 'Related Order', relatedRepairOrder: 'Related Repair Order', relatedMaintainRecord: 'Related Maintenance Record', - relatedTask: 'Related Task', - taskOrder: 'Task Order', + relatedTask: 'Related Production Plan', + taskOrder: 'Production Plan', palletCode: 'Pallet Code', availablePallets: 'Available Pallets', selectedPallets: 'Selected Pallets', @@ -864,7 +864,7 @@ export default { packageItemCount: 'Package Item Count', selectRelatedRepairOrder: 'Select Repair Order', selectRelatedMaintainRecord: 'Select Maintenance Record', - selectTaskOrder: 'Select Task Order', + selectTaskOrder: 'Select Production Plan', selectPalletCode: 'Select Pallet Code', inputUnitType: 'Unit Input Type', inputCount: 'Purchase Unit Quantity', @@ -887,7 +887,7 @@ export default { placeholderOutboundPurpose: 'Please select outbound purpose', placeholderRelatedRepairOrder: 'Please select related repair order', placeholderRelatedMaintainRecord: 'Please select related maintenance record', - placeholderTaskOrder: 'Please select task order', + placeholderTaskOrder: 'Please select production plan', placeholderPalletCode: 'Please select pallet code', placeholderInputUnitType: 'Please select', placeholderCode: 'Please enter code', @@ -895,7 +895,7 @@ export default { validatorWarehouseRequired: 'Warehouse is required', validatorAreaRequired: 'Please select area', validatorProductRequired: 'Product is required', - validatorTaskRequired: 'Task order is required', + validatorTaskRequired: 'Production plan is required', validatorPalletRequired: 'Pallet code is required', validatorPackageCountRequired: 'Package count is required and must be greater than 0', validatorOutboundPurposeRequired: 'Outbound purpose is required', @@ -4816,6 +4816,7 @@ export default { tablePlanStartTimeColumn: 'Plan Start Time', tablePlanEndTimeColumn: 'Plan End Time', tableStatusColumn: 'Status', + tableRemarkColumn: 'Remark', tableIsZjColumn: 'Inspected', tableOperateColumn: 'Operate', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 73434e53..2c33267a 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -843,8 +843,8 @@ export default { relatedOrder: '关联单据', relatedRepairOrder: '关联维修单', relatedMaintainRecord: '关联保养记录', - relatedTask: '关联任务单', - taskOrder: '任务单', + relatedTask: '关联生产计划', + taskOrder: '生产计划', palletCode: '托盘码', availablePallets: '可选托盘', selectedPallets: '已选托盘', @@ -864,7 +864,7 @@ export default { packageItemCount: '每包个数', selectRelatedRepairOrder: '选择维修单', selectRelatedMaintainRecord: '选择保养记录', - selectTaskOrder: '选择任务单', + selectTaskOrder: '选择生产计划', selectPalletCode: '选择托盘码', inputUnitType: '单位输入方式', inputCount: '采购单位数量', @@ -887,7 +887,7 @@ export default { placeholderOutboundPurpose: '请选择出库用途', placeholderRelatedRepairOrder: '请选择关联维修单', placeholderRelatedMaintainRecord: '请选择关联保养记录', - placeholderTaskOrder: '请选择任务单', + placeholderTaskOrder: '请选择生产计划', placeholderPalletCode: '请选择托盘码', placeholderInputUnitType: '请选择', placeholderCode: '请输入编码', @@ -895,7 +895,7 @@ export default { validatorWarehouseRequired: '仓库不能为空', validatorAreaRequired: '请选择库区', validatorProductRequired: '产品不能为空', - validatorTaskRequired: '任务单不能为空', + validatorTaskRequired: '生产计划不能为空', validatorPalletRequired: '托盘码不能为空', validatorPackageCountRequired: '包数不能为空且必须大于0', validatorOutboundPurposeRequired: '出库用途不能为空', @@ -4665,6 +4665,7 @@ export default { tablePlanStartTimeColumn: '计划开始时间', tablePlanEndTimeColumn: '计划结束时间', tableStatusColumn: '状态', + tableRemarkColumn: '备注', tableIsZjColumn: '是否检验', tableOperateColumn: '操作', diff --git a/src/views/erp/stock/in/components/StockInItemForm.vue b/src/views/erp/stock/in/components/StockInItemForm.vue index b7e934a1..e641c3fa 100644 --- a/src/views/erp/stock/in/components/StockInItemForm.vue +++ b/src/views/erp/stock/in/components/StockInItemForm.vue @@ -316,14 +316,31 @@
{{ t('ErpStock.Item.selectTaskOrder') }}
- + + + + + + {{ t('common.query') }} @@ -343,15 +360,18 @@   - - - - + + + + + - + + +
@@ -557,12 +577,12 @@ import { ProductApi, ProductVO } from '@/api/erp/product/product' import { WarehouseApi, WarehouseVO } from '@/api/erp/stock/warehouse' import { WarehouseAreaApi, WarehouseAreaVO } from '@/api/erp/stock/warehousearea' import { StockApi } from '@/api/erp/stock/stock' -import { TaskApi, TaskVO } from '@/api/mes/task' +import { PlanApi, PlanVO } from '@/api/mes/plan' import { PalletApi, PalletVO } from '@/api/erp/stock/pallet' import { SupplierApi } from '@/api/erp/purchase/supplier' import PalletForm from '../../pallet/PalletForm.vue' import SupplierForm from '../../../purchase/supplier/SupplierForm.vue' -import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' +import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict' import { dateFormatter2 } from '@/utils/formatTime' import { erpPriceMultiply } from '@/utils' @@ -646,12 +666,13 @@ const supplierQueryParams = reactive({ const taskDialogVisible = ref(false) const taskDialogLoading = ref(false) const taskSchemeLoading = ref(false) -const taskDialogList = ref([]) +const taskDialogList = ref([]) const taskDialogTotal = ref(0) const taskQueryParams = reactive({ pageNo: 1, pageSize: 10, - code: undefined + code: undefined, + status: '1' }) const selectedTaskId = ref() const selectedTaskProductId = ref() @@ -678,6 +699,7 @@ const palletFormRef = ref() const palletStatusOptions = computed(() => getIntDictOptions(DICT_TYPE.STORAGE_PALLET_STATUS).filter((dict) => Number(dict.value) !== 3) ) +const planStatusOptions = computed(() => getStrDictOptions(DICT_TYPE.MES_PLAN_STATUS)) const availablePalletList = computed(() => { const selectedIds = new Set(selectedPalletRows.value.map((item) => item.id)) return palletDialogList.value.filter((item) => !selectedIds.has(item.id)) @@ -1090,10 +1112,11 @@ const openTaskSelectDialog = async (row: any) => { taskProductDialogList.value = getTaskProductOptions(row) taskQueryParams.pageNo = 1 taskQueryParams.code = undefined + taskQueryParams.status = '1' taskDialogVisible.value = true await getTaskDialogList() if (row.taskId) { - await loadTaskProductDialogList({ id: row.taskId, code: row.taskCode } as TaskVO) + await loadTaskProductDialogList({ id: row.taskId, code: row.taskCode, productId: row.productId, productName: row.productName } as PlanVO) } } @@ -1105,7 +1128,10 @@ const handleTaskInputClick = (row: any) => { const getTaskDialogList = async () => { taskDialogLoading.value = true try { - const data = await TaskApi.getTaskPage(taskQueryParams) + const data = await PlanApi.getPlanPage({ + ...taskQueryParams, + status: taskQueryParams.status || undefined + }) taskDialogList.value = data?.list || [] taskDialogTotal.value = data?.total || 0 } finally { @@ -1122,7 +1148,7 @@ const handleTaskDialogQuery = () => { getTaskDialogList() } -const handleTaskDialogRowClick = async (row: TaskVO) => { +const handleTaskDialogRowClick = async (row: PlanVO) => { selectedTaskId.value = row.id selectedTaskProductId.value = undefined await loadTaskProductDialogList(row) @@ -1131,7 +1157,7 @@ const handleTaskDialogRowClick = async (row: TaskVO) => { const confirmTaskSelect = async () => { if (props.disabled) return const task = taskDialogList.value.find((item) => item.id === selectedTaskId.value) - || ({ id: selectedTaskData.value?.taskId, code: selectedTaskData.value?.taskName } as TaskVO) + || ({ id: selectedTaskData.value?.taskId, code: selectedTaskData.value?.taskName } as PlanVO) const product = taskProductDialogList.value.find((item) => item.productId === selectedTaskProductId.value) const data = selectedTaskData.value if (!task || !product || !data || !currentSelectRow.value) return @@ -1140,12 +1166,36 @@ const confirmTaskSelect = async () => { taskDialogVisible.value = false } -const loadTaskProductDialogList = async (task: TaskVO) => { +const loadTaskProductDialogList = async (task: PlanVO) => { taskSchemeLoading.value = true try { - const data = await TaskApi.getTaskDefaultPackagingSchemes(task.id) + const productId = task.productId ?? currentSelectRow.value?.productId + const product = productId ? await ProductApi.getProduct(productId) : undefined + const productOption = product + ? { + ...product, + productId: product.id, + productCode: product.barCode, + productName: product.name, + taskDetailIds: task.taskDetailId + } + : { + productId: task.productId, + productCode: undefined, + productName: task.productName, + taskDetailIds: task.taskDetailId, + packagingSchemes: [] + } + const data = { + taskId: task.id, + taskName: task.code, + products: productOption.productId ? [productOption] : [] + } selectedTaskData.value = data - taskProductDialogList.value = Array.isArray(data?.products) ? data.products : [] + taskProductDialogList.value = data.products + if (data.products.length === 1) { + selectedTaskProductId.value = data.products[0].productId + } } finally { taskSchemeLoading.value = false } @@ -1155,7 +1205,7 @@ const handleTaskProductDialogRowClick = (row: any) => { selectedTaskProductId.value = row.productId } -const fillRowByTask = (row: any, task: TaskVO, data: any) => { +const fillRowByTask = (row: any, task: PlanVO, data: any) => { const products = Array.isArray(data?.products) ? data.products : [] row.relateTask = true row.relatedTask = undefined