IQC开发流程与注意事项.md 6.7 KB

IQC 开发流程与注意事项(AI 友好版)

目标:让 AI/新人能够快速定位 IQC 功能的页面、接口、数据库字段映射和流程联动。


1. 模块范围

  • IQC 来料检验申请:创建/编辑/查看申请单(主表 + 子表)。
  • IQC 来料检验任务:基于申请子表生成任务列表,触发流程。
  • IQC 检验单编辑:在流程中编辑检验明细(新页面)。
  • 流程引擎:Flowable(流程实例、任务、历史)。

2. 前端页面与路由

2.1 申请相关

  • 列表:/qms/iqc/apply/list
    • 页面:yudao-ui/yudao-ui-admin-vue3/src/views/qms/ApplicationList.vue
  • 表单:/qms/iqc/apply/new | /edit/:id | /view/:id
    • 页面:yudao-ui/yudao-ui-admin-vue3/src/views/qms/ApplicationForm.vue

2.2 任务与流程相关

  • 任务列表:/qms/iqc/task/list
    • 页面:yudao-ui/yudao-ui-admin-vue3/src/views/qms/TaskList.vue
  • 流程详情(审批详情页):
    • 页面:yudao-ui/yudao-ui-admin-vue3/src/views/qms/iqc/task/ProcessDetailForm.vue
    • 当前只展示 申请信息 + 备注,并提供“打开编辑页面”按钮。

2.3 检验单编辑页(新页面)

  • /qms/iqc/task/edit/:taskId
  • /s5/iqc/iqc/task/edit/:taskId
  • 页面:yudao-ui/yudao-ui-admin-vue3/src/views/qms/iqc/task/InspectBillEdit.vue

3. 关键接口清单

3.1 申请(IQC Apply)

  • GET /qms/iqc-apply/page 申请列表
  • GET /qms/iqc-apply/get?id=... 申请详情
  • POST /qms/iqc-apply/create 新建
  • PUT /qms/iqc-apply/update 更新
  • DELETE /qms/iqc-apply/delete?id=... 删除

3.2 任务(IQC Task)

  • GET /qms/iqc-task/page 任务列表
  • GET /qms/iqc-task/get?id=... 任务详情
  • POST /qms/iqc-task/start 开始检验(创建流程实例)

3.3 检验单编辑(Inspect Bill)

  • GET /qms/iqc-task/inspect-bill/main?taskId=... 主表信息
  • GET /qms/iqc-task/detail-list?taskId=... 明细列表
  • POST /qms/iqc-task/inspect-bill/save 保存主表+明细

4. 数据表与字段映射

4.1 申请主表(qms_qcp_inspecapplyn)

  • id:主键
  • FBILLNO:申请单号(前端 id
  • FAPPLYUSER:申请人 ID
  • FAPPLYTIME:申请时间
  • FBILLTYPE:业务类型
  • FCOMMENT总体备注(申请列表显示)

4.2 申请子表 / 任务来源表(qms_qcp_insappnentry)

  • glid:关联主表 id
  • FSRCORDERNUM:物料编码(前端 materialCode
  • FSRCORDERTYPE:物料名称(前端 materialName
  • FLOTNUMBER:批次(前端 batch
  • FAPPLYQTY:数量(前端 quantity
  • FUNIT:单位(前端 unit
  • FINSPECTSTATUS:检验状态(待检验/检验中/检验完成)
  • FSUPPLIER供应商编码(前端 supplierCode
  • process_instance_id:流程实例
  • flowstate:流程状态

4.3 检验单主表(qms_qcp_inspbill)

  • hid:关联任务 ID(qms_qcp_insappnentry.id
  • FCOMMENT:临时存 JSON:{"A":"...","B":"...","C":"...","D":"..."}

4.4 检验单明细表(qms_qcp_inspbilllist)

  • billid:主表 ID
  • jyxm/bz/sx/xx:A/B/C/D 的临时字段映射

5. 字段映射表(前端 ↔ DB)

5.1 申请明细(ApplicationForm.detail)

前端字段 表字段 说明
materialCode FSRCORDERNUM 物料编码
materialName FSRCORDERTYPE 物料名称
specification (暂无) 当前未映射
batch FLOTNUMBER 批次
inspectStatus FINSPECTSTATUS 检验状态
quantity FAPPLYQTY 数量
unit FUNIT 单位
supplierCode FSUPPLIER 供应商编码

5.2 申请列表(ApplicationList)

  • remarkqms_qcp_inspecapplyn.FCOMMENT(总体备注)
  • status:由子表汇总计算(见 6.1)

5.3 任务列表(TaskList)

  • supplierCodeqms_qcp_insappnentry.FSUPPLIER
  • applicationIdqms_qcp_inspecapplyn.FBILLNO
  • status:由 FINSPECTSTATUS/FBILLSTATUS 映射

6. 流程联动(BPM)

6.1 流程 Key

  • PROCESS_KEY = qms_iqc_task
  • 定义在:yudao-module-qms/src/main/java/cn/iocoder/yudao/module/qms/service/iqc/IqcTaskServiceImpl.java

6.2 启动流程

  • 入口:POST /qms/iqc-task/start
  • 行为:
    • 创建流程实例
    • 回写 process_instance_id
    • 更新 flowstate = 审批中
    • 更新 FINSPECTSTATUS = 检验中

6.3 流程结束回写

  • 通过:flowstate = 审批完成FINSPECTSTATUS = 检验完成
  • 取消:flowstate = 已取消FINSPECTSTATUS = 待检验
  • 驳回:flowstate = 已驳回FINSPECTSTATUS = 检验中

7. 前端配置关键点(AI 容易踩坑)

1) 申请列表 vs 任务列表

  • 申请列表显示 总体备注FCOMMENT
  • 任务列表显示 供应商编码FSUPPLIER

2) 状态角标

  • ApplicationForm.vue 已移除状态角标(不显示“待检验/检验中/检验完成”)。

3) 检验明细编辑入口

  • 审批详情页(流程详情)不再内嵌明细表。
  • 通过“打开编辑页面”进入 InspectBillEdit.vue

4) 通过前强制保存

  • ProcessInstanceOperationButton.vueqms_iqc_task 做了保存拦截:
    • “通过”前会调用检验单保存接口
    • 保存失败会阻止通过

8. 常见问题与排查

  • 列表字段不显示:检查 前端字段 key后端 VO 字段名Mapper SQL 字段别名 是否一致。
  • 明细更新不生效:当前是“先删后插”,ID 会重新生成;确认 update 逻辑是否走到。
  • 流程未发起:process_instance_id 为空时会提示“请先开始检验”。
  • 申请时间格式:前端使用时间戳(value-format: 'x'),后端用 LocalDateTime 接收。

9. 关键代码位置索引

  • 前端配置:yudao-ui/yudao-ui-admin-vue3/src/config/qmsModules.ts
  • 申请表单:yudao-ui/yudao-ui-admin-vue3/src/views/qms/ApplicationForm.vue
  • 任务列表:yudao-ui/yudao-ui-admin-vue3/src/views/qms/TaskList.vue
  • 审批详情:yudao-ui/yudao-ui-admin-vue3/src/views/qms/iqc/task/ProcessDetailForm.vue
  • 检验单编辑:yudao-ui/yudao-ui-admin-vue3/src/views/qms/iqc/task/InspectBillEdit.vue

  • 申请 Mapper:yudao-module-qms/src/main/resources/mapper/iqc/IqcApplyMapper.xml

  • 任务 Mapper:yudao-module-qms/src/main/resources/mapper/iqc/IqcTaskMapper.xml

  • 任务 Service:yudao-module-qms/src/main/java/cn/iocoder/yudao/module/qms/service/iqc/IqcTaskServiceImpl.java


10. 建议的开发顺序(可复用)

  1. 先确定 DB 字段映射(主/子表)
  2. 后端 VO + Mapper SQL + Service
  3. 前端 API 类型对齐
  4. 列表字段 key 与后端字段别名一致
  5. 流程 start/回写字段校验
  6. 审批详情 + 编辑页联调