_bid_ch3.py 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. # -*- coding: utf-8 -*-
  2. """附件五 技术方案 第 3 章 系统建设方案(3 分)。
  3. 对应评分要素:各子系统的技术方案,包含功能模块设计、核心业务流程、技术架构、
  4. 智能诊断集成架构、数据架构、接口设计等。
  5. """
  6. BLOCKS_CH3 = [
  7. ("p", "本章按评分要素逐项给出本项目各子系统的技术方案,"
  8. "依次阐述功能模块设计、核心业务流程、技术架构、智能诊断集成架构、"
  9. "数据架构与接口设计,并在末节汇总十个子系统各自的技术实现要点。"
  10. "本章所述方案均已在平台中实现,本项目的技术工作是按采购人实际环境"
  11. "完成适配与配置,而非重新设计。"),
  12. ("h2", "3.1 建设总体思路"),
  13. ("h3", "3.1.1 以成熟平台为基础,以配置替代开发"),
  14. ("p", "本项目采用「成熟平台 + 场景化配置」的建设路径。"
  15. "Ai-DOP 平台已建成 167 项业务功能与完整的数据中台、"
  16. "诊断引擎、异常监控配置体系,本项目不需要从零开发业务功能,"
  17. "实施工作集中在四件事:主数据落地、集成通道适配、"
  18. "指标口径确认与看板场景化配置。"),
  19. ("p", "这一路径的直接好处是工期与质量风险大幅下降。"
  20. "从零开发的项目,风险集中在需求理解偏差与代码缺陷;"
  21. "而基于成熟平台配置实施的项目,风险主要在数据质量与集成对接,"
  22. "这两类风险都可以通过前期调研与联调提前暴露,"
  23. "不会在项目后期突然出现「功能做出来不是想要的」这类无法挽回的情况。"),
  24. ("h3", "3.1.2 贴源只读与扩展写分离"),
  25. ("p", "平台对接采购人既有 ERP、MES、QMS、WMS 等系统时,"
  26. "对源系统一律采用只读方式获取数据,不修改源系统的表结构与业务状态。"
  27. "平台自身产生的业务数据,例如 IPQC 检验流转状态、"
  28. "异常处理记录、改善任务与验证结论,写入平台扩展表并与源数据通过业务键关联。"),
  29. ("p", "这样处理的原因是:制造企业的 ERP 与 MES 往往已运行多年,"
  30. "承载财务与生产的核心账务,任何写入都可能引发难以追查的连锁影响。"
  31. "只读接入使平台的上线不构成对既有系统的改造项目,"
  32. "既降低了采购人的决策风险,也使平台可以先在部分模块投入使用、"
  33. "再逐步扩大范围,而不必等待全系统改造完成。"),
  34. ("h3", "3.1.3 差异收敛为配置项"),
  35. ("p", "平台把企业间差异较大的部分全部收敛为配置:"
  36. "组织与角色、主数据编码规则、评审与计划周期、异常类型与分级、"
  37. "通知对象与响应时限、指标定义与阈值、看板卡片与布局,"
  38. "均由实施人员在系统中配置完成。"
  39. "本项目实施过程中若采购人业务规则发生调整,"
  40. "多数情况下由配置变更即可响应,不需要提交变更开发。"),
  41. ("h2", "3.2 功能模块设计"),
  42. ("h3", "3.2.1 模块分层与依赖关系"),
  43. ("p", "平台按六层组织:平台支撑层、数据与集成层、基准数据层、"
  44. "业务执行层、决策与监控层,以及贯穿各层的安全与运维体系。"
  45. "层间依赖遵循单向原则——上层依赖下层,同层之间通过领域服务接口交互,"
  46. "不直接读写对方的数据表。这一约束使各子系统可以独立升级,"
  47. "某个模块的调整不会波及其他模块。"),
  48. ("fig", ("fig_module_map", "子系统功能模块分解与依赖关系")),
  49. ("h3", "3.2.2 各子系统模块划分"),
  50. ("p", "十个业务子系统的模块划分与职责边界如下表。"
  51. "划分依据是业务过程的自然边界,"
  52. "使每个子系统对应一组相对独立的业务职能与使用角色,"
  53. "便于分阶段实施与分角色培训。"),
  54. ("table", ("各子系统模块划分与职责",
  55. ["子系统", "内部模块划分", "主要使用角色"],
  56. [["S0 运营建模", "销售建模、制造建模、供应建模、质量建模、仓储建模、业务建模",
  57. "主数据管理员、工艺工程师、质量工程师"],
  58. ["S1 产销协同", "产品设计、合同评审、订单评审、工单下达、订单交付、订单发货、协同看板",
  59. "销售内勤、计划员、业务经理"],
  60. ["S2 制造协同", "生产排程、可执行日计划、产能基础数据、工单执行追踪、制造看板",
  61. "计划员、车间主任、工段长"],
  62. ["S3 供应协同", "物料需求计划、物料交货计划、采购申请与订单、委外与外协、齐套看板",
  63. "物控员、采购计划员"],
  64. ["S4 采购执行", "供应商交货管理、发货单、采购退货、执行看板、供应商门户",
  65. "采购员、供应商(外部)"],
  66. ["S5 物料仓储", "来料检验、仓储管理、库存数据、物料仓储看板",
  67. "仓管员、IQC 检验员"],
  68. ["S6 生产执行", "过程检验、设备台账、模具工装台账、工序汇报、执行看板",
  69. "IPQC 检验员、设备管理员"],
  70. ["S7 成品仓储", "生产入库、销售发货、FQC 检验、成品仓储看板",
  71. "成品仓管员、FQC 检验员"],
  72. ["S8 异常监控", "异常看板与大屏、异常列表与提报、订单链路全景、配置中心",
  73. "运营管理员、各环节责任人"],
  74. ["S9 运营指标", "指标看板、九宫格看板、智慧诊断、ChatBI、数据中台管理",
  75. "管理层、运营分析岗、系统管理员"]],
  76. [1.7, 6.6, 3.1], ["l", "l", "l"])),
  77. ("h3", "3.2.3 权限与数据可见范围设计"),
  78. ("p", "平台采用角色权限与数据权限双重控制。"
  79. "角色权限控制用户能进入哪些功能页面、能执行哪些操作按钮;"
  80. "数据权限控制用户在同一页面内能看到哪些范围的数据,"
  81. "按组织机构、产线、客户、供应商等维度设置。"),
  82. ("p", "供应商作为外部用户单独建立账号体系,"
  83. "只能访问供应商门户相关功能,且只能看到与本企业相关的采购订单、"
  84. "交货计划与检验结果,与内部用户严格隔离。"
  85. "管理层用户按需开放跨部门的看板查看权限,"
  86. "但明细数据的下钻范围仍受数据权限约束。"),
  87. ("h2", "3.3 核心业务流程"),
  88. ("h3", "3.3.1 主线流程:订单到交付"),
  89. ("p", "订单到交付是平台的主线流程,串接 S1 至 S7 七个子系统。"
  90. "流程起点是客户订单进入 S1,"
  91. "经合同评审、订单评审确定可承诺交期后下达工单;"
  92. "S2 依据工艺路线与产能约束排程并下达可执行日计划;"
  93. "S3 依据 BOM 展开物料净需求,扣减现有库存与在途量后生成采购申请与采购订单;"
  94. "S4 通过供应商门户推送交货计划并回收交期回复与发货单;"
  95. "物料到厂后 S5 完成来料检验与入库;"
  96. "S6 记录生产过程的工序流转与过程检验;"
  97. "S7 完成成品入库、FQC 检验与发货。"
  98. "各环节的实绩数据回流 S1 的订单交付管理,形成端到端的交付状态视图。"),
  99. ("p", "这条主线的设计要点在于「一次贯通」:"
  100. "销售订单号、工单号、采购单号、批次号、序列号之间的关联关系"
  101. "在业务发生时即建立并持久化,"
  102. "而不是事后通过报表拼接。"
  103. "因此从任一环节都可以向上追溯到客户订单、向下追溯到具体物料批次,"
  104. "这是交付追溯与质量追溯能够成立的技术前提。"),
  105. ("h3", "3.3.2 关键流程:需求到齐套"),
  106. ("p", "需求到齐套流程解决制造企业最常见的停线原因——缺料。"
  107. "流程从 S3 物料需求计划开始:按 BOM 逐层展开工单物料需求,"
  108. "扣减可用库存、在检库存与在途采购量,得到净需求;"
  109. "按品类采购前置期与物料计划周期反推下单时点;"
  110. "生成采购申请后转为采购订单并推送供应商。"),
  111. ("p", "齐套判定在工单物料齐套上线看板中完成,"
  112. "按工单逐项比对需求量与可用量,"
  113. "输出齐套率、欠料项、欠料数量、预计到货时间与影响的上线日期。"
  114. "欠料项自动生成异常事件进入 S8,"
  115. "按责任矩阵指派采购员跟单,"
  116. "并在欠料影响到订单交期时向上升级。"
  117. "这一流程把「缺料」从事后发现的现象变为事前可预测、可干预的管理对象。"),
  118. ("h3", "3.3.3 关键流程:异常到闭环"),
  119. ("p", "异常到闭环流程贯穿 S8 与 S9。"
  120. "异常来源有三类:规则命中自动产生、统计模型预警产生、业务人员主动提报。"
  121. "异常产生后按配置定级,按责任矩阵自动指派责任人并推送通知;"
  122. "责任人在系统中填报原因与措施并上传证据;"
  123. "处置完成后进入验证环节,由系统复测相关指标或由验证人现场确认;"
  124. "验证通过方可关闭并归档,验证不通过退回重新处置。"),
  125. ("p", "该流程的强制性设计是关键:系统不允许跳过验证直接关闭异常,"
  126. "也不允许无限期挂起——超过响应时限自动向上级升级,"
  127. "超时两级仍未处置则进入管理层看板。"
  128. "闭环率、平均闭环时长与问题复发率本身作为管理指标被统计和考核,"
  129. "使改善工作从依靠个人责任心转为依靠机制约束。"),
  130. ("h2", "3.4 技术架构"),
  131. ("h3", "3.4.1 技术选型"),
  132. ("p", "平台采用主流开源技术栈,前后端分离,服务容器化部署。"
  133. "选型的基本考虑是成熟度与可维护性优先——"
  134. "采购人后续若需自行维护或引入第三方运维,"
  135. "所用技术均可在市场上找到成熟的技术人员,"
  136. "不会形成对我方的技术锁定。"),
  137. ("table", ("技术选型清单",
  138. ["层次", "技术选型", "选型说明"],
  139. [["前端", "Vue 3 + TypeScript + Element Plus + ECharts",
  140. "组件生态成熟,图表能力满足看板与大屏需求"],
  141. ["后端", ".NET 8 + Admin.NET 分层架构",
  142. "长期支持版本,性能与稳定性经生产验证"],
  143. ["数据访问", "SqlSugar ORM",
  144. "支持多种数据库方言,便于源库适配与信创迁移"],
  145. ["数据库", "MySQL 8(业务库与数据中台库)",
  146. "主从部署,读写分离;可替换为达梦、人大金仓"],
  147. ["缓存", "Redis",
  148. "缓存、会话与分布式锁"],
  149. ["任务调度", "内置调度框架",
  150. "日批计算、定时同步、指标计算"],
  151. ["集成执行", "数据库直连、HTTP、WebService、FTP、MQ、物联网网关",
  152. "六种接入方式,可视化配置"],
  153. ["AI 能力", "大语言模型接入层",
  154. "支撑 ChatBI 与诊断建议生成,模型可替换"],
  155. ["部署", "Docker 容器化,Docker Compose 或 Kubernetes 编排",
  156. "多环境一致,支持灰度发布与回滚"],
  157. ["运维", "应用与接口监控、集中日志、告警通知",
  158. "同步任务与接口成功率可观测"]],
  159. [1.6, 5.2, 4.6], ["l", "l", "l"])),
  160. ("h3", "3.4.2 部署架构与环境划分"),
  161. ("p", "生产环境按外部接入区、DMZ 隔离区、应用服务区、数据服务区与源系统区分区部署,"
  162. "区间通过防火墙策略控制访问。"
  163. "应用服务与调度服务多实例部署,单实例故障自动摘除;"
  164. "数据库主从热备。"
  165. "项目全过程使用开发、测试、验收、生产四套环境,"
  166. "其中验收环境与生产环境配置保持一致、数据按脱敏规则同步,"
  167. "使 UAT 阶段发现的问题具有生产代表性。"),
  168. ("fig", ("fig_deploy", "部署架构与环境划分")),
  169. ("h3", "3.4.3 性能与可用性设计"),
  170. ("p", "针对采购需求提出的性能指标,平台采取的技术措施如下表。"
  171. "需要说明的是,涉及外部系统调用的场景,"
  172. "外部系统超时或不可用导致的延迟不计入平台性能指标,"
  173. "但平台须记录、告警并在外部系统恢复后自动补齐数据。"),
  174. ("table", ("性能与可用性指标及技术措施",
  175. ["指标项", "目标值", "技术措施"],
  176. [["常规页面与查询响应", "≤ 30 秒",
  177. "索引优化、分页查询、结果缓存、大表分区"],
  178. ["复杂查询与多图联动", "≤ 60 秒",
  179. "预计算落表、异步加载、图表按需渲染"],
  180. ["在线用户与并发", "约 1000 人在线、400 人并发",
  181. "应用多实例横向扩展、连接池与限流保护"],
  182. ["实时同步时延", "≤ 2~5 秒",
  183. "变更捕获 + 消息推送,避免全量扫描"],
  184. ["夜间批量处理", "1000 万条明细同步与清洗 ≤ 30 分钟",
  185. "分批并行、批量写入、断点续传"],
  186. ["接口成功率", "≥ 99%",
  187. "超时重试、幂等写入、失败补偿队列"],
  188. ["系统可用率", "全年 ≥ 99%",
  189. "关键组件冗余、主从热备、故障自动摘除"],
  190. ["重大故障恢复", "力争 48 小时内恢复",
  191. "全量日备 + 增量归档、异地留存、季度恢复演练"],
  192. ["超大导出与 AI 任务", "转异步处理,不阻塞交互",
  193. "任务队列 + 完成通知 + 结果下载"]],
  194. [2.9, 3.3, 5.2], ["l", "l", "l"])),
  195. ("h2", "3.5 智能诊断集成架构"),
  196. ("p", "智能诊断引擎在架构上独立于业务模块,"
  197. "通过数据通道与事件通道两条路径接入:"
  198. "数据通道消费数据中台 DWS 层的指标结果与 DWD 层的明细宽表;"
  199. "事件通道消费 S8 产生的异常事件流与平台的业务动作日志。"
  200. "诊断结论通过任务派单、看板标记、预警推送与接口回写四种方式回流业务。"),
  201. ("fig", ("fig_diag_arch", "智能诊断集成架构")),
  202. ("p", "这样解耦的实际意义是:诊断引擎不需要了解每个业务模块的表结构,"
  203. "只需要理解标准化后的指标与事件语义。"
  204. "因此新增一类诊断场景时,"
  205. "工作量集中在配置规则、阈值、下钻维度与措施库,"
  206. "而不需要改动业务模块代码;"
  207. "反过来,业务模块升级也不会因为诊断逻辑依赖其内部结构而受限。"),
  208. ("p", "诊断的运行时序分四类:"
  209. "实时类由事件驱动,从事件产生到识别出问题控制在 3 分钟以内;"
  210. "周期类随每日凌晨的指标计算批量完成;"
  211. "人工触发类支持业务人员针对某张订单或某条产线即时发起诊断;"
  212. "定期复盘类按周、月自动生成运营分析报告。"
  213. "四类时序覆盖了从现场即时处置到管理层周期复盘的不同使用场景。"),
  214. ("h2", "3.6 数据架构"),
  215. ("h3", "3.6.1 分层模型"),
  216. ("p", "数据中台按贴源层、标准层、明细宽表层、汇总与指标层四层收敛。"
  217. "每层职责单一:贴源层只做原样落地不做加工,"
  218. "标准层统一编码与字段口径,"
  219. "明细宽表层按业务过程建模并补全维度,"
  220. "汇总与指标层按主题与时间粒度计算 KPI 结果。"
  221. "四层之间的血缘关系在系统中登记到字段级别,"
  222. "指标数值异常时可沿血缘回溯到具体的源表与同步任务。"),
  223. ("fig", ("fig_data_layer", "数据架构:分层模型、调度与血缘")),
  224. ("h3", "3.6.2 指标一致性保证"),
  225. ("p", "平台的核心数据原则是「一个指标只计算一次」。"
  226. "同一指标只在汇总与指标层计算并落表,"
  227. "看板、诊断、报表与 ChatBI 全部取自同一结果表,不允许各自重算。"
  228. "口径调整只修改一处配置并留下变更记录,"
  229. "从技术上消除了「同一个指标几个部门几个数」这一制造企业普遍存在的问题。"),
  230. ("p", "主数据一致性遵循同样的原则:主数据在 S0 唯一维护,"
  231. "变更后触发全链路同步;"
  232. "同步失败的记录进入待处理队列并告警,"
  233. "不会静默丢失;"
  234. "涉及口径变更的调整留痕并通知相关岗位。"),
  235. ("h3", "3.6.3 数据质量与治理"),
  236. ("p", "数据质量校验在每层落地时执行,"
  237. "校验项包括主键唯一性、非空约束、值域合法性与与源系统的行数金额对账。"
  238. "校验不通过的数据进入质量问题清单,"
  239. "按严重程度决定是阻断本次同步还是标记后继续。"
  240. "每日同步完成后生成数据质量报告,"
  241. "包含各任务的处理行数、耗时、失败原因与质量问题统计,"
  242. "由系统管理员例行查看。"),
  243. ("p", "数据治理方面,平台提供数据地图展示表与表之间的血缘关系、"
  244. "数据源管理维护接入配置、同步配置中心维护调度策略、"
  245. "数据任务日志记录每次执行明细。"
  246. "这四项功能使数据链路本身成为可观测、可管理的对象,"
  247. "而不是只有开发人员才能理解的黑盒。"),
  248. ("h2", "3.7 接口设计"),
  249. ("h3", "3.7.1 接口分类与规范"),
  250. ("p", "平台接口分四类:数据采集类负责从源系统获取数据;"
  251. "数据回写类负责将平台产生的处理结果回写外部系统;"
  252. "对外服务类向采购人的其他系统或移动端提供查询能力;"
  253. "平台内部类为各层之间的领域服务调用。"
  254. "四类接口统一采用 RESTful 风格与 JSON 报文,"
  255. "统一响应结构与错误码字典,统一鉴权方式与全链路追踪标识。"),
  256. ("fig", ("fig_api", "接口设计与调用规范")),
  257. ("h3", "3.7.2 可靠性设计"),
  258. ("p", "接口可靠性通过五项措施保证:"
  259. "超时与指数退避重试应对网络抖动;"
  260. "幂等键保证重复调用不产生重复数据;"
  261. "限流与熔断保护源系统不被平台的批量拉取压垮;"
  262. "失败补偿队列保证暂时失败的调用在条件恢复后自动补齐;"
  263. "接口版本管理保证变更向后兼容,不因平台升级导致对接方失效。"),
  264. ("h3", "3.7.3 集成实施与交付"),
  265. ("p", "集成通道的实施采用可视化配置:在系统中登记数据源连接信息、"
  266. "配置实体与字段映射、设定调度策略与增量标识,"
  267. "配置完成即可试运行并查看同步日志。"
  268. "新增一套第三方系统的接入配置工作量控制在 4 小时以内,"
  269. "不需要编写代码。"),
  270. ("p", "接口文档随版本同步更新并作为交付物提交,"
  271. "内容包含接口清单、请求与响应示例、错误码说明与调用示例。"
  272. "采购人可凭接口清单逐条核对采购需求中的集成要求是否已落地,"
  273. "并在后续自行开发对接时无需再向我方索取资料。"),
  274. ("h2", "3.8 各子系统技术方案要点"),
  275. ("p", "前述各节给出的是平台级的统一架构。"
  276. "下表按子系统汇总各自的技术实现要点,"
  277. "便于采购人按模块核对技术方案与业务需求的对应关系。"),
  278. ("table", ("各子系统技术实现要点",
  279. ["子系统", "数据来源与方式", "技术实现要点"],
  280. [["S0 运营建模", "平台自建 + ERP 主数据同步",
  281. "统一编码规则引擎;Excel 批量导入与校验;主数据变更全链路同步"],
  282. ["S1 产销协同", "平台自建 + ERP 订单同步",
  283. "交期测算算法;八页签全景追踪;节点时效与两级阈值预警"],
  284. ["S2 制造协同", "平台自建 + MES 实绩回收",
  285. "产能约束排程算法;工作日历与加班模型;计划实绩偏差计算"],
  286. ["S3 供应协同", "平台自建 + ERP 库存与在途",
  287. "BOM 多层展开与净需求计算;齐套算法(三十余字段);前置期反推"],
  288. ["S4 采购执行", "平台自建 + 供应商门户录入",
  289. "外部账号隔离与数据权限;交期回复与发货单流转;欠料滚动预测"],
  290. ["S5 物料仓储", "ERP / WMS / QMS 贴源只读",
  291. "状态码字典解码;标签数据富集;进出存口径与财务对账一致"],
  292. ["S6 生产执行", "MES / QMS 贴源只读 + 平台扩展写",
  293. "IPQC 流转状态写扩展表,不改源单据;设备与模具寿命预警"],
  294. ["S7 成品仓储", "ERP / QMS 贴源只读",
  295. "样本值列收敛为数组;序列号追溯链;发货实绩回流 S1"],
  296. ["S8 异常监控", "数据中台 + 业务事件流",
  297. "规则引擎;责任矩阵与自动升级;八类配置中心;大屏卡片可配"],
  298. ["S9 运营指标", "数据中台 DWS 层",
  299. "指标卡片与口径版本;L1–L4 下钻;诊断引擎;ChatBI 语义层"]],
  300. [1.7, 3.5, 6.2], ["l", "l", "l"])),
  301. ("p", "综上,本项目的技术方案在架构上已完整成型并经生产运行验证。"
  302. "项目实施阶段的技术工作是按采购人的实际系统环境完成集成适配、"
  303. "按实际业务规则完成配置、按实际数据完成口径确认,"
  304. "技术风险处于可控范围。"),
  305. ]