feat: 组织隔离(IRIS 单实例)与出料功能基础
本轮之前累积的未提交工作,一并固化:
- 组织隔离:同一份代码部署给不同部门只需改 config 的 ORG_DEPARTMENT 与
MATERIAL_CATEGORY_PREFIX。过滤点在登录/人员列表/物料/MOM 出库单四处,
全部服务端钉死,客户端传什么都放不大。
★ 物料必须用**前缀** LIKE,不能反推成 ILIKE '%IRIS%':MOM 里 LICA 的物料是
`LICA/<中文>`,而本部门分类树里另有 `IRIS/成品/LICA/…`(本就属于本部门),
前缀匹配天然区分得开。
- MOM 出库单只读查询(直连 MOM 库):不走 MOM 现成的 /outbound 接口 ——
那个要 JWT + permission_required,且对非特权账号按 consumer_name 做行级
隔离,服务账号只能拿到自己名下的单。分页必须两段式(先按单号 GROUP BY
分页,再 IN 捞明细),对宽表直接分页会得到明细行数而不是单据数。
- 出料功能:产品 ↔ 出库单存档(product_outbounds)与任务 ↔ 出库明细
(task_outbound_materials),供「这台设备对应 MOM 哪张单」的展示。
⚠️ 快照一律由后端拿 ID 去 MOM 现查,不接受前端传入,否则前端可伪造单据。
This commit is contained in:
21
frontend/src/services/userApi.ts
Normal file
21
frontend/src/services/userApi.ts
Normal file
@ -0,0 +1,21 @@
|
||||
/** 用户列表 —— 对接 MOM sys_user,只返回本部门人员 */
|
||||
import api from "./api";
|
||||
|
||||
export interface UserOption {
|
||||
id: string;
|
||||
/** 登录账号,即任务里的 assignee_id 口径 */
|
||||
username: string;
|
||||
/** 中文姓名 */
|
||||
full_name: string;
|
||||
department: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取本部门人员列表。
|
||||
* 对应后端 GET /api/v1/users/ —— 部门隔离由服务端按 ORG_DEPARTMENT 钉死,
|
||||
* 客户端传什么都没用。
|
||||
*/
|
||||
export async function listUsers(keyword = "", limit = 200): Promise<UserOption[]> {
|
||||
const { data } = await api.get<UserOption[]>("/users/", { params: { keyword, limit } });
|
||||
return data;
|
||||
}
|
||||
Reference in New Issue
Block a user