IPQC-提示词要点.md 5.2 KB

IPQC 过程检验(现行配置与问题修正)

目标:与当前系统代码保持一致;记录已确认的字段映射、页面行为与问题修正方案。

1. 现行入口与路由(前端)

  • 模块:IPQC(qmsModules.ts
  • 任务列表:/qms/ipqc/task/list
  • 过程检验编辑页(流程内):/s6/ipqc/task/edit/:taskId(自定义业务表单)
  • 流程详情页:BpmProcessInstanceDetail

2. 现行接口(后端)

  • 任务分页:GET /admin-api/qms/ipqc-task/page
  • 任务详情:GET /admin-api/qms/ipqc-task/get?id=...
  • 发起流程:POST /admin-api/qms/ipqc-task/start
  • 检验记录主表:GET /admin-api/qms/ipqc-task/record/main?taskId=...
  • 检验记录明细:GET /admin-api/qms/ipqc-task/record/detail-list?taskId=...
  • 保存检验记录:POST /admin-api/qms/ipqc-task/record/save

3. 现行数据来源与表结构

3.1 任务列表来源

  • 主要来源:WorkOrdMasterItemMastermes_morder
  • 状态来源:qms_gcjyd.status(检验状态)
    • 无关联数据:默认 待检验
    • 有记录:
    • 检验中 → processing
    • 检验完成 → completed
    • 其它 → pending

3.2 记录主表

  • 表:qms_gcjyd
  • 关键字段:bdbh、bbh、sxrq、djbh、cplx、scph、wlbm、wlmc、gxbm、gxmc、sczyry、lydjbh、jyrq、jyr、jysl、jyhgsl、jybhgsl、clfs、lysl、phsl、pd、fj、jgbh、jgbb、bz、status

3.3 记录子表

  • 表:qms_gcjydzb
  • 关键字段:jyxm、jybz、sx、xx、jypc、j1~j20、pd、bz

4. 流程与审批详情(现行行为)

  • 流程 Key:qms_ipqc_task
  • 流程发起时写入 variables:taskId / applicationId / workOrder / materialCode / batch
  • 审批详情页:不显示业务表单,仅显示“任务列表字段汇总”
    • 展示字段(中文):任务编号、单据编号、生产订单、状态、工序/工步、线体/工位/设备、物料编码、物料名称、批次、负责人、优先级、开始/完成时间、备注

5. 过程检验编辑页(业务表单)

  • 风格与 IQC 对齐(只读三行、只读默认项、附件上传、明细样本列等)
  • 核心逻辑:
    • 检验数量来源任务列表(只读)
    • 合格/不合格互算
    • 处理方式下拉(退货/挑选/让步接收)
    • 样本1~20,样本量动态列

6. 问题修正方案(保留)

  • 404/侧边菜单点击无效:菜单路由与前端路由需一致,禁止以 / 开头时使用内部路由补正
  • BPM 缺表报错:确认 bpm* 与 ACT* 表存在于 dopdemo
  • 审批详情重复页签:仅保留 1 个“流程详情”页签

7. 列表查询 SQL(与现行代码一致)

7.1 任务列表(IpqcTaskMapper.selectTaskPage)

SELECT
  fr.recid AS id,
  fr.Drawing AS applicationId,
  fr.WorkOrd AS workOrder,
  fr.Typed AS process,
  fr.WoTyped AS step,
  fr.Project AS line,
  NULL AS station,
  NULL AS equipment,
  fr.ItemNum AS materialCode,
  im.Descr AS materialName,
  fr.LotSerial AS batch,
  fr.lbrvar AS responsibleName,
  CASE
    WHEN mo.MaterialSituation IN ('high', 'H', 'A', '1') THEN 'high'
    WHEN mo.MaterialSituation IN ('medium', 'M', 'B', '2') THEN 'medium'
    WHEN mo.MaterialSituation IN ('low', 'L', 'C', '3') THEN 'low'
    ELSE 'medium'
  END AS priority,
  fr.OrdDate AS startTime,
  fr.DueDate AS completeTime,
  fr.Remark AS remark,
  CASE d.status_rank
    WHEN 3 THEN 'processing'
    WHEN 2 THEN 'completed'
    ELSE 'pending'
  END AS status
FROM
(
  SELECT
    `Domain`,
    WorkOrd,
    ItemNum,
    LotSerial,
    SUM(IFNULL(QtyOrded, 0))     AS sum_QtyOrded,
    SUM(IFNULL(QtyCompleted, 0)) AS sum_QtyCompleted,
    COUNT(*)                     AS merge_cnt,
    MIN(recid)                   AS first_recid
  FROM WorkOrdMaster
  WHERE IFNULL(Status, '') <> ''
    AND Status <> 'c'
  GROUP BY `Domain`, WorkOrd, ItemNum, LotSerial
) AS g
INNER JOIN WorkOrdMaster fr
  ON fr.recid = g.first_recid
LEFT JOIN ItemMaster im
  ON im.ItemNum = fr.ItemNum
 AND im.`Domain` = fr.`Domain`
LEFT JOIN mes_morder mo
  ON mo.morder_no = fr.WorkOrd
 AND mo.factory_id = fr.`Domain`
LEFT JOIN (
  SELECT
    lydjbh,
    scph,
    MAX(
      CASE
        WHEN `status` = '检验中' THEN 3
        WHEN `status` = '检验完成' THEN 2
        ELSE 1
      END
    ) AS status_rank
  FROM qms_gcjyd
  GROUP BY lydjbh, scph
) d
  ON d.scph = fr.LotSerial
 AND d.lydjbh = fr.WorkOrd
/* where: factoryId / status */
ORDER BY fr.OrdDate DESC, fr.recid DESC

7.2 其它列表

待定(目前 IPQC 仅有任务列表)

8. 扩展开发注意事项(保留)

7.1 菜单与路由约束

  • 菜单管理中路由地址不允许以 / 开头(如 qms/ipqc/task/list)。
  • 组件地址为前端视图路径(如 qms/TaskList),不加 .vue

8.2 流程表单类型(业务表单)

  • 表单类型选择“业务表单”时,表单查看地址应指向前端组件路径(示例:/qms/ipqc/task/ProcessDetailForm.vue)。
  • 审批详情页对 IPQC 流程改为任务汇总展示,不渲染业务表单。

8.3 状态映射与展示

  • 工单状态与检验状态无关:检验状态以 qms_gcjyd.status 为准。
  • 前端状态统一中文显示:待检验 / 检验中 / 已完成。