L4-2 招采管理后端 · 交付说明

地缘云 L4 级应用 dypurchasemgmt —— 遵循《地缘云开发技能 V6.0》契约(I1–I12)与 V9.0 技术栈基线

平台层级 L4(受 L3+L2+L0 控制) 契约版本 0.5.0 库名 dykj_l4_estate_contract_dypurchasemgmt_main Java 21 · Spring Boot 3.5.16 · MyBatis-Plus 3.5.11 上游前端 dy-l4-002-purchasemgmt-web @ ce308d7
273
Java 文件
81
业务表
16
业务服务
16
控制器
6
Maven 模块
BUILD
SUCCESS
编译验证

一、模块结构(端口段 932x)

模块端口职责文件数
l4-common契约自检、错误码 60100~60183、三类权限、AOP 切面、数据权限拦截器、幂等、MyBatis-Plus 配置、PcConst41
l4-gateway9320统一入口,路由到 l4-iam / l4-purchase 及跨域上游1
l4-iam9322登录、组织/用户/角色、菜单权限点、L2 授权下发同步、项目权限31
l4-purchase9323招采业务主体:16 Service + 16 Controller + 81 实体 + 81 Mapper199
l4-all9321单体聚合启动器(单进程部署用)1
端口整体落在 932x 段,避开 L4-1 成本管理(9300~9304)与 L4-3 合同管理(9305),可同时本地起多应用。

二、三类权限(对齐 L2 组织用户与角色授权)

权限类型载体执行点拒绝码
功能权限AuthUser.permsdypurchasemgmt:action@RequirePermission + PermissionAspect@Order(20)60018
数据权限AuthUser.dataScope(all / org / org_child / self / custom)+ dataScopeOrgIds@DataScope + DataScopeAspect@Order(10))+ L4DataScopeHandler60016
项目权限AuthUser.projectIds(L2 授权的 sourceProjectId* = 全部)PcSupport.requireProject() / visibleOrgs()60017

登录链路

IamService.login ──▶ JWT(secret purchase-cloud-l4-secret-2026 / 86400s) ──▶ AuthInterceptor 还原 AuthUserHolder ──▶ DataScopeAspect(10) 改写 SQL ──▶ PermissionAspect(20) 校验权限码 ──▶ Controller

相对 L2 补齐的 9 项执行缺口

授权期限唯一事实源 = AuthGrant.validityEnd,L4 严禁另存副本(契约 I6)。

三、采购过程 13 节点引擎(BR-PC01 ~ PC04)

采购申请 ─▶ 采购计划 ─▶ 招标文件 ─▶ 发标 ─▶ 答疑 ─▶ 回标 ─▶ 开标 ─▶ 清标 ─▶ 评标 ─▶ 议标 ─▶ 定标 ─▶ 中标通知 ─▶ 合同签订 战略采购 14 节点(BR-PC02):在「招标文件」后插入「采购文案」 年度计划甘特图:12 节点
规则说明
BR-PC03 节点三态completed / current / pending;「当前查看节点」与「流程进度」解耦,可回看任意已完成节点
BR-PC04 推进方式auditNode:招标文件 / 清标 / 评标 / 议标 / 定标 / 中标通知(6 节点走审批)
advance:回标→清标、清标→评标、评标→议标、议标→定标
BR-PC15 控制点投标单位 2N+1、注册资金 ≥ 500 万、专业资质匹配、IP 异常检测
BR-PC14 拆税PcSupport.splitTax():含税 → 不含税 + 进项税额,默认税率 9%
BR-PC28 单号11 个硬编码前缀 + 年月日 + 毫秒末 4 位序列号
BR-PC35 编号主数据用 code,单据用 No

四、定级得分与建议等级(BR-PC05,修正 Q-PC06 边界)

定级得分 = 考察得分 × 0.5 + 履约得分 × 0.5 x ≥ 80 → 优秀 (A) 70 ≤ x < 80 → 良好 (B) 60 ≤ x < 70 → 合格 (C) x < 60 → 不合格 (D)

五、16 个业务服务与前端侧栏映射

侧栏分组后端服务URL 前缀
项目概况DashboardService/api/pc/dashboard/**
供应商管理SupplierService/api/pc/supplier/**
SupplierInspectionService/api/pc/inspection/**
SupplierGradeService/api/pc/grade/**
PerfEvalService/api/pc/perf-eval/**
SupplierComplaintService/api/pc/complaint/**
战略采购StrategicService/api/pc/strategic/**
采购管理ProcurementProcessService/api/pc/process/**
PurchasePlanService/api/pc/plan/**
我的评标BidEvalService/api/pc/bid-eval/**
采购资源库ResourceService/api/pc/resource/**
QuestionnaireService/api/pc/questionnaire/**
BizParamService/api/pc/biz-param/**
消息 / 报表 / 工单MessageService/api/pc/message/**
ReportService/api/pc/report/**
WorkorderService/api/pc/workorder/**
所有控制器均为双前缀/pc/xxx/v1/l4/pc/xxx,配合 context-path: /api,兼容前端两种接法。

六、错误码分段(L4 段 6xxxxx)

含义
60001–60004公共 / 参数 / 重复提交 / 租户上下文 / 数据越权
60010–60018权限类(用户 / 角色 / 组织 / 授权 / 数据范围 / 项目 / 功能点)
60020–60021项目
60100–60129采购过程 / 战略采购 / 计划申请
60130–60149供应商域(库 / 考察 / 定级 / 履约 / 投诉)
60150–60169采购资源库(材料 / 指标 / 甲方单位 / 账号 / 问卷)
60170–60183评标工单 / 消息 / 报表
60090–60092上游不可用 / 上游脏数据 / 采集异常入队

七、编译验证

$ mvn -o clean compile -f <工程>/pom.xml [INFO] dy-purchase-cloud-l4 .... SUCCESS [ 0.637 s] [INFO] l4-common ............... SUCCESS [ 13.199 s] [INFO] l4-gateway .............. SUCCESS [ 3.219 s] [INFO] l4-iam .................. SUCCESS [ 23.326 s] [INFO] l4-purchase ............. SUCCESS [ 25.128 s] [INFO] l4-all .................. SUCCESS [ 3.250 s] [INFO] --- enforcer:3.5.0:enforce --- Rule 1: BannedDependencies passed (×6) [INFO] BUILD SUCCESS
门禁:requireJavaVersion [21,22) 通过;JPA / Hibernate / jakarta.persistence / javax.persistence 全部未出现(MyBatis-Plus 唯一持久层)。

八、级联上游

上游端口用途
L2 地缘云(授权下发方)9102组织用户角色授权、企业资料下发
L3 合同云9201合同管理跳转
L3 项目9203项目房源
L3 招采准备9204招标文件模板
L4-1 成本管理9303合约规划只读引用(BR-PC24~27)
L4-3 合同管理9305定标后转合同

九、待补齐清单(详见《功能实现对照表》第三节)