Files
yanpeng200212 a8890c81e9 新增质量模块(工艺执行书 / 样茧试缫)与报表中心
质量模块:
- 11 张工艺执行书表:封面、试产、选剥茧(含混茧明细)、试缫与大样、煮茧(含分车间配温、副煮车间)、自动缫(含大样)、后缫
- 10 张样茧试缫表:原料小样/综合样主表 + 选茧、解舒、茧幅、切剖、清洁洁净、茧丝百回纤度
- 服务与接口、主控指针回写(列表 √ 标记)、封面编号自增、报表数据包
- 前端 8 张报表打印版式、7 类工艺单据与 6 类调查录入弹窗、字段驱动表单/表格组件
- 菜单种子新增「质量」目录,样茧子表增加 YjssType 判别列,避免原料小样与综合样自增 Id 重号串数据

报表中心:
- 报表模板管理、锐浪 grhtml5 加载与预览、全屏设计面板、数据源 Provider(落丝记录、职工花名册)

其他:同步工作进度 1-11 文档、开发数据库快照、.gitignore 忽略运行日志目录
2026-10-22 10:30:37 +08:00

10 KiB
Raw Permalink Blame History

工作进度-11:新增「质量」模块(工艺执行书 + 样茧试缫)

时间:2026-10-22(承接工作进度-10) 需求:把 D:\AntaiProject - 副本(F9 智慧缫丝 WinForms 版)里 质量模块 → 工艺执行书 与 质量模块 → 样茧试缫 迁移进本系统,并还原随附的 8 张报表版式。 参考实现位置:

  • 客户端:WinClient\F9.Business.Prod\Gyzxs\、WinClient\F9.Business.Prod\QC\YJSS\
  • 服务端:F9Servic\BBIT.F9\BBIT.F9.Domain\Entities\Business\PROD\QC\、BBIT.F9.Application\CQRS\Business\PROD\QC\YJSS\、Application\Implements\Reports\Prod\QC\RepDt_Qc_Yjss_*
  • 报表样例(本次已按 RTF 还原):封面 / 工艺执行书 / 混剥选茧工艺执行书 / 试缫工艺单 / 试缫与大样模板 / 煮茧工艺执行书 / 自动缫车间生产工艺执行书 / 自动缫大样

一、功能地图

质量(新一级菜单,sort=7,图标 Medal)
├── 工艺执行书  /qc/gyzxs   qc/gyzxs/index
│     一行 = 一个工艺庄口;√ 标记 7 张子单据是否已录入
│     ├── 封面            (桑蚕丝工艺设计书:编号/规格/原料总量/生产丝量/生产线时间)
│     ├── 试产            (试缫工艺单:茧质调查 + 自动缫试缫指标 + 试缫煮茧工艺)
│     ├── 选剥茧          (混剥选茧:混茧工艺明细 + 生产/质量/质量控制指标)
│     ├── 试缫与大样      (试缫 vs 大样 两行对比 + 技术措施 + 签署)
│     ├── 煮茧            (庄口原料性能 + 工艺技术指标 + 真空渗透 + 分车间配温 + 副煮车间)
│     ├── 自动缫          (表一:茧质概况 + 生产指标 + 工艺技术指标 + 表二大样)
│     └── 后缫            (工艺执行书:生产指标 9 项 + 工艺条件及控制指标 18 项)
│     打印下拉 = 8 张报表任意一张
└── 样茧试缫    /qc/yjss    qc/yjss/index
      页签:原料小样 / 综合样
      ├── 选茧调查        11 个茧别 重量 + 比例(按茧重重算)
      ├── 解舒调查        多条记录(缫丝参数/纤度丝长/落绪/蛹体/附煮/屑物)
      ├── 茧幅调查        仅综合样(按茧幅分档,算平均/整齐率/均方差)
      ├── 切剖调查        仅综合样(原量/干量/粒数比例,算茧层率/脱胶率)
      ├── 清洁洁净        匀度 + 洁净档位 + 疵点,自动算清洁/洁净/片数
      └── 茧丝百回纤度    仅综合样(按回数批量生成 + 自动汇总标注值)
      打印下拉 = 原料小样报表 / 综合样报表 / 解舒调查报表

二、后端

2.1 领域实体(F9WebAiTest.Domain/Entities/QC/)

工艺执行书(Gyzxs/,表前缀 qc_gyzxs_):

文件 表 说明
GyzxsDocVersion.cs qc_gyzxs_doc_version 主控:以庄口为键,记录 7 张子单据 Id(列表 √ 来源)
GyzxsFengMian.cs qc_gyzxs_fengmian 封面(含编号 SJZ-{年}-工艺-{序}、生产时间区间)
GyzxsShichan.cs qc_gyzxs_shichan 试产:茧质 7 项 + 自动缫 16 项 + 煮茧 11 项
GyzxsXbj.cs qc_gyzxs_xbj / qc_gyzxs_xbj_hunjian 选剥茧主表 + 混茧比例明细(庄别/重量/包数/比例/混茧包数)
GyzxsXbjSsDy.cs qc_gyzxs_xbj_ssdy 试缫与大样(Ss*/Dy* 各 10 项 + 技术措施 + 签署)
GyzxsZhuJian.cs qc_gyzxs_zhujian / _chejian / _fuzhu 煮茧主表 + 分车间配温 + 副煮车间结果
GyzxsZds.cs qc_gyzxs_zds / qc_gyzxs_zds_dyzl 自动缫表一 + 大样表二
GyzxsHs.cs qc_gyzxs_hs 后缫(工艺执行书本体)

样茧试缫(Yjss/,表前缀 qc_yjss_):main_ylxy、main_zhy、dc_xjdc、dc_jsdc、dc_jfdc_main、dc_jfdc_item、dc_jsbhxd_main、dc_jsbhxd、dc_qpdc、dc_qjjj。

与 F9 的差异(有意为之):F9 子表只用 yjss_id 外键,依赖雪花全局唯一 Id;本系统主表用自增 Id,原料小样与综合样会重号,因此所有子表增加 YjssType(1 原料小样 / 2 综合样) 判别列,读写一律按 (YjssId, YjssType) 定位。 另:F9 的「综合样茧质」在本系统未单独立表,其指标以冗余字段直接落在选剥茧 / 煮茧 / 自动缫 / 试产表上,报表照常可打。

2.2 服务与接口

服务 主要方法
GyzxsService GetDocVersionPagedAsync / CreateDocVersionAsync / 7 组 Get*Async+Save*Async / GetPrintDataAsync
YjssService GetPagedAsync / SaveYlxyAsync / SaveZhyAsync / 6 组子单据读写 / GetFullAsync / GetJsdcSummaryAsync

设计要点:

  1. 指针回写:任一张子单据保存后 upsert qc_gyzxs_doc_version 对应列(ZdsDyId 早前漏检已修);解舒/百回纤度保存后回写主表记录数 JsdcCt/JsbhxdCt。
  2. 按「庄口 + 规格」唯一:试产、试缫与大样、自动缫、大样、后缫均以 (GyzkId, Guige) 为业务键;封面、选剥茧、煮茧按庄口唯一。
  3. 报表数据包:GetPrintDataAsync(type, gyzkId, guige) 返回 Parameters(中文键)+ Main/Sub1/Sub2,结构与 Grid++ 的 Report_Data 对齐,后续可直接被报表中心 Provider 复用。
  4. 编号自增:封面新建时按 SJZ-{年度}-工艺-{n} 预生成。

接口一览(均需登录):

GET    /api/qc/gyzxs?year=&keyword=&pageIndex=&pageSize=
POST   /api/qc/gyzxs/version?gyzkId=            DELETE /api/qc/gyzxs/version/{id}
GET|POST /api/qc/gyzxs/fengmian                 (gyzkId)
GET|POST /api/qc/gyzxs/shichan                  (gyzkId + guige)
GET|POST /api/qc/gyzxs/xbj                      (主表 + hunJian 明细数组)
GET|POST /api/qc/gyzxs/ssdy                     (gyzkId + guige)
GET|POST /api/qc/gyzxs/zhujian                  (主表 + cheJian + fuZhu)
GET|POST /api/qc/gyzxs/zds                      (zds + dyzl)
GET|POST /api/qc/gyzxs/hs                       (gyzkId + guige)
GET    /api/qc/gyzxs/print/{type}?gyzkId=&guige=    type = fengmian|gyzxs|xbj|shichan|ssdy|zhujian|zds|zdsdy

GET    /api/qc/yjss?type=1|2&year=&keyword=
POST   /api/qc/yjss/ylxy | /zhy                 DELETE /api/qc/yjss/{type}/{id}
GET|POST /api/qc/yjss/xjdc/{yjssId}?type=       /api/qc/yjss/xjdc?type=
GET|POST /api/qc/yjss/jsdc/{yjssId}?type=       /api/qc/yjss/jsdc?type=
DELETE /api/qc/yjss/jsdc/{type}/{id}
GET|POST /api/qc/yjss/jfdc|qpdc|qjjj|jsbhxd    (GET 带 ?type=)
GET    /api/qc/yjss/full/{type}/{id}
GET    /api/qc/yjss/jsdc-summary/{yjssId}?type=

2.3 菜单种子

DbSeeder.SeedQcMenus():幂等创建 /qc 目录 + 两个页面菜单,admin 角色授权,并把一级目录顺序校正为 基础(3) < 员工(4) < 前缫(5) < 后缫(6) < 质量(7) < 消息(8) < 系统(9) < 报表(10)。


三、前端

文件 作用
views/qc/components/SchemaForm.vue 字段驱动表单(text/number/date/textarea,支持 dyzl.xxx 嵌套键)
views/qc/components/QcGrid.vue 字段驱动可编辑表格(对应 WinForms 的 f9AntdUITable)
views/qc/gyzxs/schema.js 7 张子单据 + 8 种报表的字段/版式元数据
views/qc/gyzxs/index.vue 庄口列表(√ 标记、按年度筛、打印下拉、按庄口新增)
views/qc/gyzxs/DocDialog.vue 子单据录入弹窗(含「从指定庄口读取数据」跨庄口复制)
views/qc/gyzxs/PrintDialog.vue 8 张报表版式 + A4 横向打印
views/qc/yjss/index.vue 原料小样 / 综合样双页签列表
views/qc/yjss/schema.js 6 类调查字段 + 计算规则(比例 / 茧幅 / 茧层率 / 清洁洁净)
views/qc/yjss/YjssDocDialog.vue 6 类调查录入(解舒为「列表 + 明细弹窗」)
views/qc/yjss/YjssPrintDialog.vue 原料小样 / 综合样 / 解舒调查 三张报表

业务算法(前端即时计算,保存落库):

  • 选剥茧:按重量重算比例,总官堆 40 包分摊混茧包数,末行取差额。
  • 茧幅:平均 = Σ(茧幅×数量)/Σ数量,整齐率 = |茧幅-平均| ≤ 1mm 占比,均方差按加权。
  • 茧丝百回纤度:外/中/内三百回为分区间平均,最大/内外开差取极值差。
  • 清洁洁净:片数 = Σ洁净档位片数;洁净 = Σ(分值×片数)/片数;清洁 = 100 - (特大糙×3 + 废丝×3 + 大糙×2 + 黏附糙 + 大长结 + 重螺旋)/片数×100。
  • 解舒:解舒率 = 解舒丝长 / 一茧丝长,落绪总粒数 = 外+中+内。

四、验证记录

项 结果
dotnet build F9WebAiTest.sln ✅ 0 错误(120 条既有 CS8632 可空注解警告)
vite build ✅ 通过(仅既有 chunk 体积/动态导入警告)
IDE 诊断(views/qc/**、router/index.js) ✅ 0
菜单 ✅ 质量(sort=7) → 工艺执行书 / 样茧试缫,admin 自动授权
工艺执行书 7 张子单据保存 + 回读 ✅ 封面/试产/选剥茧(2 行混茧)/试缫与大样/煮茧(1 分车间+1 副煮)/自动缫(含大样)/后缫
主控 √ 标记 ✅ 7 个指针全部回写(zdsDyId 漏检缺陷已修)
8 张报表数据 ✅ 每张均返回 title + 参数区(如「工艺执行书」28 个参数),xbj/zhujian/ssdy 有结果集
封面编号 ✅ 新庄口预生成 SJZ-2026-工艺-1
样茧试缫(原料小样) ✅ 主表 + 选茧 + 解舒(1 条) + 清洁洁净,解舒汇总正确
样茧试缫(综合样) ✅ 主表 + 茧幅(3 档) + 切剖 + 百回纤度(2 行),整页参数区完整
两类样品隔离 ✅ 同一 yjssId 下 type=1 有数据、type=2 返回空

五、后续可做

  1. 报表中心对接:8 张报表目前用 HTML 打印(版式已按 RTF 还原,A4 横向)。若要进「报表中心」,可基于 /api/qc/gyzxs/print/{type} 写 8 个 RepDt_* Provider 并制作 .grf 模板,数据结构已预留 Parameters/Main/Sub1/Sub2。
  2. 综合样茧质单独立表:目前选剥茧/煮茧/自动缫/试产的茧质指标是冗余存储;若需要「综合样茧质」独立维护与联动,可补一张主表并由保存时回填。
  3. 审批状态机:设计/审核/审批目前是文本字段,可升级为流程(参考考勤模块的审批流)。
  4. 单位与精度:部分指标沿用 F9 的字符串区间表达(如 185±5、20~38),如后续需要统计,可拆分为「下限/上限/目标值」三列。