IQC-提示词要点.md 6.4 KB

IQC 来料检验(现行配置与问题修正)

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

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

  • 模块:IQC(qmsModules.ts
  • 任务列表:/qms/iqc/task/list
  • 申请列表:/qms/iqc/apply/list
  • 申请编辑/查看:/qms/iqc/apply/edit/:id/qms/iqc/apply/view/:id
  • 任务流程详情:通过 BpmProcessInstanceDetail 打开(流程实例详情页)

2. 现行数据表(后端)

  • 申请主表:qms_qcp_inspecapplyn
  • 申请子表:qms_qcp_insappnentry
  • 检验单主表:qms_qcp_inspbill
  • 检验单子表:qms_qcp_inspbilllist

3. 已确认字段映射(补充 1)

3.1 检验单主表(qms_qcp_inspbill)

  • bdbh 表单编号
  • bb 表单版本
  • sxrq 生效日期
  • jgbh 检规编号
  • jgbb 检规版本
  • jyr 检验员
  • jysl 检验数量
  • bhgsl 不合格数量
  • fj 附件(上传链接)
  • 说明:主表没有 bz 字段(备注),不要写入。

3.2 检验单子表(qms_qcp_inspbilllist)

  • jyxm 检验项目
  • bz 检验标准
  • sx 上限
  • xx 下限
  • pd 判断
  • j1 样本1
  • j2 样本2
  • j3 样本3

4. 审批详情(流程详情页)

4.1 展示来源

  • 申请信息统一从“任务详情接口”返回,并中文展示:
    • 任务编号、单据编号、申请人、申请时间、批次、数量、单位、供应商编码、任务状态等
  • 字段命名规范化
    • 展示字段规范为 物料编码/物料名称
    • 不再使用“来源单号/来源类型”混用含义
  • 状态中文:待检验 / 检验中 / 检验完成

4.2 业务修正要点

  • 流程详情中只显示任务信息 + 打开编辑页入口
  • “返回/保存成功后回到流程详情页”
  • 多个“流程详情”标签重复问题:统一只保留一个详情页签

5. 来料检验单编辑页(现行交互要求)

5.1 顶部只读三行(灰色)

  • 表单编号:RS/IV-7.4-32
  • 表单版本:1.2
  • 表单生效日期:2022.04.01

5.2 主表字段与默认值

  • 检规编号:默认 QC-H644-1-05(只读)
  • 检规版本:默认 A.8(只读)
  • 检验员:为空时赋当前账号昵称(只读)
  • 检验数量:来自任务列表数量(只读)

5.3 数量与计算规则

  • 合格数量 / 不合格数量 互算(留样/破坏不计入)
  • 处理方式:下拉(退货 / 挑选 / 让步接收)
  • 留样数量、破坏数量:普通输入框
  • 所有数字输入框:整数校验

5.4 附件

  • 上传控件,不限格式;存储为 fj 链接

5.5 主表判断

  • 判断:下拉(合格 / 不合格)

6. 检验明细(子表)

  • 检验项目、检验标准:只读多行文本框
  • 判断:下拉(合格 / 不合格)
  • 样本量:手填整数
  • 样本列:支持样本1~样本20
  • 样本列动态规则:
    • 记录“已填写最大列数”
    • 后续输入更小值不收缩,更大值则新增列
  • 操作列移动到最左侧
  • 上限/下限/样本量/样本1~20:整数校验

7. 申请信息字段规则

  • 申请人:前端显示昵称;数据库存 用户ID
  • 组织/部门:前端显示 部门名称;数据库存 部门ID;与申请人一致设置只读

8. 物料数改名

  • 申请列表表头:物料数 → 物料种类

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

9.1 申请列表(IqcApplyMapper.selectApplyPage)

SELECT *
FROM (
  SELECT
    a.id AS applyId,
    a.FBILLNO AS id,
    a.FAPPLYUSER AS applicantId,
    u.username AS applicantName,
    a.FAPPLYTIME AS applyTime,
    a.FBILLTYPE AS businessType,
    a.FORGID AS department,
    a.FCOMMENT AS remark,
    COUNT(b.id) AS materialCount,
    CASE
      WHEN SUM(CASE WHEN b.FINSPECTSTATUS = '检验中' THEN 1 ELSE 0 END) > 0 THEN '检验中'
      WHEN COUNT(b.id) > 0
        AND SUM(CASE WHEN b.FINSPECTSTATUS = '检验完成' THEN 1 ELSE 0 END) = COUNT(b.id) THEN '检验完成'
      ELSE '待检验'
    END AS status
  FROM qms_qcp_inspecapplyn a
  LEFT JOIN system_users u ON u.id = a.FAPPLYUSER
  LEFT JOIN qms_qcp_insappnentry b ON b.glid = a.id
  /* where: keyword / applicantIds / applyTime */
  GROUP BY a.id, a.FBILLNO, a.FAPPLYUSER, u.username, a.FAPPLYTIME, a.FBILLTYPE, a.FORGID, a.FCOMMENT
) t
/* where: statusList */
ORDER BY t.applyTime DESC

9.2 任务列表(IqcTaskMapper.selectTaskPage)

SELECT
  b.id AS id,
  a.FBILLNO AS applicationId,
  a.FAPPLYTIME AS applyTime,
  a.FAPPLYUSER AS applicantId,
  u.username AS applicantName,
  b.FSUPPLIER AS supplierCode,
  b.process_instance_id AS processInstanceId,
  b.FSRCORDERNUM AS materialCode,
  b.FSRCORDERTYPE AS materialName,
  b.FLOTNUMBER AS batch,
  b.FAPPLYQTY AS quantity,
  b.FUNIT AS unit,
  CASE
    WHEN COALESCE(b.FINSPECTSTATUS, a.FBILLSTATUS) IN ('processing', '检验中') THEN 'processing'
    WHEN COALESCE(b.FINSPECTSTATUS, a.FBILLSTATUS) IN ('completed', '检验完成') THEN 'completed'
    ELSE 'pending'
  END AS status
FROM qms_qcp_insappnentry b
LEFT JOIN qms_qcp_inspecapplyn a ON a.id = b.glid
LEFT JOIN system_users u ON u.id = a.FAPPLYUSER
/* where: status */
ORDER BY a.FAPPLYTIME DESC, b.id DESC

9.3 检验单列表

待定(当前代码未提供专用 list SQL)

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

  • 404/路由问题:菜单地址不允许以 / 开头时,使用内部路由配置补正
  • 申请时间字段:统一使用 FAPPLYTIME 映射
  • 状态中文:前端直接中文展示,避免混用枚举
  • “备注”字段冲突:主表无 bz,子表 bz 为“检验标准”

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

10.1 菜单与路由约束

  • 菜单管理中路由地址不能以 / 开头,需保持与前端路由一致(例如 qms/iqc/apply/list)。
  • 菜单“组件地址”使用前端视图路径(如 qms/ApplicationList),不要加 .vue

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

  • 流程模型“表单类型”选择业务表单时,表单查看地址对应前端组件路径(示例:/qms/iqc/task/ProcessDetailForm.vue)。
  • 实际渲染由 BpmProcessInstanceDetail 通过 formCustomViewPath 动态注册组件完成。

10.3 BPM 表结构校验

  • 数据库需要同时具备 bpm_*ACT_* 表(ACT_GE_PROPERTY 可用于快速验证引擎表是否可用)。
  • 出现 bpm_process_instance 不存在或 501 提示时,优先确认当前连接的库是否为 dopdemo