From ea9d117374e44d9eac0309ea2687b439f89b07b4 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 17:45:16 +0800
Subject: [PATCH] feat(mes): 生产排产新增任务报工人下拉源调整为工作站人力配置
---
src/views/mes/pro/task/data.ts | 28 +++++++++++++++++++++++++---
src/api/mes/md/workstation/worker/index.ts | 12 ++++++++++++
2 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/src/api/mes/md/workstation/worker/index.ts b/src/api/mes/md/workstation/worker/index.ts
index 3bd4ab9..ce60cb5 100644
--- a/src/api/mes/md/workstation/worker/index.ts
+++ b/src/api/mes/md/workstation/worker/index.ts
@@ -1,4 +1,5 @@
import { requestClient } from '#/api/request';
+import type { SystemUserApi } from '#/api/system/user';
export namespace MesMdWorkstationWorkerApi {
/** MES 宸ヤ綔绔欎汉鍔涜祫婧� */
@@ -21,6 +22,17 @@
);
}
+/** 鑾峰緱宸ヤ綔绔欏搴斿矖浣嶇殑鍛樺伐鍒楄〃 */
+export function getUserListByWorkstationId(params: { workstationId: number }) {
+ if (!params || !params.workstationId) {
+ return Promise.resolve([]);
+ }
+ return requestClient.get<SystemUserApi.UserSimple[]>(
+ '/mes/md-workstation-worker/list-user-by-workstation',
+ { params },
+ );
+}
+
/** 鏂板宸ヤ綔绔欎汉鍔涜祫婧� */
export function createWorkstationWorker(
data: MesMdWorkstationWorkerApi.WorkstationWorker,
diff --git a/src/views/mes/pro/task/data.ts b/src/views/mes/pro/task/data.ts
index 167bac7..50b2ca0 100644
--- a/src/views/mes/pro/task/data.ts
+++ b/src/views/mes/pro/task/data.ts
@@ -1,7 +1,7 @@
import type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { z } from '#/adapter/form';
-import { getSimpleUserListByRoleCode } from '#/api/system/user';
+import { getUserListByWorkstationId } from '#/api/mes/md/workstation/worker';
import type { MesProTaskApi } from '#/api/mes/pro/task';
import type { MesProWorkOrderApi } from '#/api/mes/pro/workorder';
@@ -489,11 +489,18 @@
component: 'ApiSelect',
componentProps: {
placeholder: '璇烽�夋嫨鎶ュ伐浜�',
- api: getSimpleUserListByRoleCode,
- params: { code: 'production_submit_work' },
+ api: getUserListByWorkstationId,
labelField: 'nickname',
valueField: 'id',
mode: 'multiple',
+ },
+ dependencies: {
+ triggerFields: ['workstationId'],
+ componentProps: (values) => ({
+ params: { workstationId: values.workstationId },
+ disabled: !values.workstationId,
+ placeholder: values.workstationId ? '璇烽�夋嫨鎶ュ伐浜�' : '璇峰厛閫夋嫨宸ヤ綔绔�',
+ }),
},
rules: z.array(z.number()).min(1, '璇烽�夋嫨鎶ュ伐浜�').default([]),
},
@@ -514,6 +521,21 @@
async function recalcDuration(formApi?: VbenFormApi) {
if (!formApi) return;
const values = await formApi.getValues();
+
+ // 宸ヤ綔绔欏垏鎹㈠悗妫�鏌ヤ汉鍔涢厤缃紝缂哄け鏃堕璀�
+ if (values.workstationId) {
+ try {
+ const users = await getUserListByWorkstationId({
+ workstationId: values.workstationId,
+ });
+ if (!users || users.length === 0) {
+ message.warning('褰撳墠宸ヤ綔绔欐病鏈夐厤缃汉鍔涜祫婧�');
+ }
+ } catch {
+ // ignore
+ }
+ }
+
if (!values.workstationId || !values.quantity) return;
try {
const res = await calculateTaskDuration(values.workstationId, values.quantity);
--
Gitblit v1.9.3