ops
|
036bdb1f7c
|
fix(ci): 构建容器名唯一化(避免并发构建互相 rm -f 致 exit 137)
|
2026-10-21 02:26:48 +00:00 |
|
ops
|
b9217d9a2b
|
ci: apk 源统一走 aliyun(规避 dl-cdn 时段性被拦卡 60s)
|
2026-10-21 01:36:01 +00:00 |
|
chenxing
|
af760913fa
|
fix(server): 补齐服务承诺字段的管理端保存与回显
build / build-push (push) Failing after 2m7s
上一批只落了实体与 oapi 出参,管理端 save 入参与编辑回显没接上,
导致 front 录入的 6 个字段被 Jackson 静默丢弃。
- SvcModels.SvcItemSaveRequest 补 7 字段(含 @Size 校验,与实体列长一致)
- SvcModels.SvcItemEditVo 补 7 字段 + of() 映射
- ServiceItemService.adminSave 补 7 行赋值(空串归一 null)
- 新增 SvcItemPromiseFieldsTest:反序列化字段名对齐 + EditVo 映射(3 例)
- .gitignore 排除 local-debug/(本地探针,不入库)
|
2026-10-20 18:13:00 +08:00 |
|
chenxing
|
c1bcbf2f88
|
feat(server): 事项服务承诺字段 + 匿名指南接口 + hall 用户面开匿名
- service_item 加 7 列(协办部门/经办人/办理时段/跑动次数/快递/收费标准+依据)
- /api/hall/items 出参补 applyUrl 与承诺字段
- 新增 GET /api/hall/item(匿名,指南详情)
- url-pattern 收窄至写入面,/api/hall/** 匿名只读
- url-pattern 另补 /api/base/*(契约 §1 表格未列,页头用户信息与左侧菜单必须 CAS 会话)
|
2026-10-20 16:43:17 +08:00 |
|
chenxing
|
6f855e57d1
|
ci: 重触发构建(run 1568 exit 137 OOM kill,本地 166/166 绿非代码问题)
build / build-push (push) Successful in 1m17s
|
2026-10-20 00:19:45 +08:00 |
|
chenxing
|
6086c4374c
|
feat(p3.5): 审批代理增 Done/Cc 两端点(中心 done/cc 中转)
build / build-push (push) Failing after 10s
- SvcApprovalClient.doneTasks/ccMine:/oapi/flow/tasks/done、/oapi/flow/cc(中心按
签名方应用过滤,出站不传 bizType——P2-02 接缝,双值双查不适用)
- SvcApprovalController GET Done/Cc:requireOperator+身份字段入参拒绝,信封透传
- 测试 +3(client 拼装 2+controller 透传与拒绝 1),全量 166/166 绿(Stage S5/P3.5)
|
2026-10-20 00:16:20 +08:00 |
|
chenxing
|
05d2143ce1
|
feat(p3.2): bizType 方案B——常量换终值 svc-hall + 双值双查 + P1-02 行级绑定校验 + P1-03 R4 时序修复
build / build-push (push) Successful in 48s
- SvcFlowCallbackHandler.BIZ_TYPE → SvcBizTypes.CURRENT(svc-hall,H-1 实核 appKey=100008
注册行 app_code);yml 回调白名单双值 [svc-hall, svc_item](收敛条件=另一类型不再可能
产生事件,本轮不收敛;回滚也保双值)
- 双值双查补丁(先终值后存量,S0-H2 实测中心 svc_item 存量=0,次查为防御性兼容):
ApplyViewGuard 办理人分支 / FlowReconcileJob 对账(命中判据=内容非空,兼容 miss 空载体)/
progress 空态出参 / S2 审批代理 byBiz·todo(S2 已落)
- P1-02 行级事件绑定校验:事件 schId 与行一致、行有镜像实例时事件 instanceId 必须一致;
不匹配 200 消费但不推进+告警日志(不抛 5xx 防重推风暴);行无值(首发回调早于回填)放行,
doFlowApply 回填侧对实例不一致告警留痕(方案B 书面接受第二实例降级)
- P1-03 R4 时序修复:markResubmitted 清旧 flowResultJson(保留 lastInstanceVersion 跨轮
乱序防护);Handler 终态守卫改版本感知(事件版本>已消费版本=新轮竞态窗口放行,不再以
旧结果非空一刀切拒绝);非终态推进清残留 finishTime;三场景测试静态化注入
(新轮回调先于 apply 响应/新轮快速终态/旧轮迟到重复)
- 测试断言按新语义更新:新件出站断言 svc-hall×3;全量 163/163 绿(Stage S3/P3.2)
|
2026-10-19 23:49:02 +08:00 |
|
chenxing
|
ed3c9e6a72
|
feat(p3.1): 应用内审批后端代理——SvcApprovalClient + /api/apply/approval/ 7 端点
build / build-push (push) Successful in 54s
- SvcBizTypes:bizType 终值/存量单一取值点(svc-hall=H-1 实核 appKey=100008 注册行 app_code;
svc_item=存量,双值双查先新后旧——方案B,P3.2 落地前的读面兼容口径)
- SvcApprovalClient(沿 NoticeApprovalClient 形态,YschOpenCall 服务目录命名目标):
todo/byBiz 双值双查合并、approve/reject 写面、embed 记录页 instanceId 形态、taskPageUrl
- SvcApprovalController:Todo/ByBiz/RecordUrl/TaskPageUrl/Approve/Reject/My
· 定位链=requireOperator→findByIdAndSchId(会话校)→ApplyViewGuard→byBiz 归属预检(P1-01)
· 身份三字段只取 CAS 会话,请求参数出现身份字段一律拒(P1-10 择一取严)
· 写面参数形态与中心同构(taskId/applyId 查询参数,opinion/edgeName JSON body)
· My 端点复用本地 myApplies + FlowPage 信封显式映射(total/list→total/content+页元数据)
· 不代理 /oapi/flow/instances(全校视角);本地 flow_status 仍只由回调推进
- 测试 30 例全绿(client 10 + MockMvc standalone 20,显式装 BoaUserArgumentResolver/
GlobalExceptionHandler/ApiResponseAdvice;真实 CasSsoApiRedirectFilter 过滤链未登录=200+code302;
拒绝路径断言审批出站=0);全量回归 157/157 绿(Stage S2/P3.1)
|
2026-10-19 23:41:20 +08:00 |
|
chenxing
|
fb4bef9d34
|
feat(p3.0): bizUrl 发方收口——删 svchall.front.base-url、断言改裸相对路径 /apply-detail?id=
build / build-push (push) Successful in 48s
- application.yml 删 front.base-url(自指地址优化 Phase 2 收尾),主代码已无消费点
- ServiceApplyFlowSubmitTest 断言从 http://localhost:8087/#/apply-detail?id=42 改为 /apply-detail?id=42(16/16 绿)
- 顺手修正两处 jumpApp 错误注释(yml:109 与 doFlowApply):绝对化解析键实为
flw_instance.apply_app_code(apply 时由验签身份 appKey 按注册表换得的 app_code 快照),
与 bizType 是两个字段互不影响(P3.0 审计勘误)
- 配对收方 flow-center BizUrlResolver 已在 52c27d8 上 160
|
2026-10-19 23:23:48 +08:00 |
|
chenxing
|
88978ea701
|
外观SDK化任务E:本地 AppearanceProxyController 下沉平台 starter
build / build-push (push) Successful in 47s
删本地哑管道,加 yh-appearance-spring-boot-starter(BOM 管版本,YschOpenCall
走聚合包)。端点同 URL /api/appearance 同语义:三态 proxy/local/off,503 直写
铁律内置(f84ce9c 线上修复的等价实现)。工作区他人 WIP(application.yml/
ServiceApplyFlowSubmitTest)未混入,择迹提交。
|
2026-10-12 09:40:02 +08:00 |
|
chenxing
|
283d4479f5
|
feat(apply): 办件快照增 summaryFields 约定键——让嵌入页出现「业务信息」块
build / build-push (push) Successful in 2m46s
itemSnapshotJson 两个重载各加形参 submitterName(提交人在 ServiceItem 上取不到,必须外传);
快照末尾追加约定键 summaryFields(申请人/所属部门/办结时限/联系电话,label 逐字保序),
只 append 值非空白的行,四项全空则不写该键 ⇒ 嵌入页不出现 "-" 行也不出现空块。
原 6 键 itemTitle/summary/deptName/handleTimeLimit/contactPhone/attachmentNames 一字未动,
flow-center 侧 bizSnapshot 原样透传,前端零改动即可渲染。
表单类字段本轮不做:svc-hall 是通用事项平台,取表单值需解析 formSchemaJson,超出本任务范围。
|
2026-10-10 15:19:59 +08:00 |
|
chenxing
|
f84ce9c822
|
fix(appearance): 503 改 sendError 直写——绕过 GlobalExceptionHandler 兜底(线上实测发现)
build / build-push (push) Successful in 2m9s
|
2026-10-09 00:39:51 +08:00 |
|
chenxing
|
54682cb72b
|
feat(appearance): 外观偏好同源读代理端点 GET /api/appearance(oapi 代理轮)
build / build-push (push) Successful in 2m42s
- YschOpenCall(target=userhome) 经 open-gateway 签名直调,JsonNode 整体透传;下游不可达 503 静默降级
|
2026-10-08 23:27:48 +08:00 |
|
chenxing
|
eb0a8ded2f
|
refactor(oapi): 收敛 Notice 范式——回调收口+提供方强制验签迁 starter(审计 P1 / L2-7 L2-8)
build / build-push (push) Successful in 1m37s
回调(对齐《子应用流程与消息对接手册-20260929》Notice 线上形态):
- yh.flow-callback.path 迁 /oapi/flow/callback;删 callback-url(改 starter 三段推导:
base-host+前缀三层回落+path,生产=http://open-gateway-service:10013/svc-hall/oapi/flow/callback)
- verify-flw-signature=false(平台应用签名承担,X-Flw 不启用);reconcile-on-register=true
(路径漂移自动重注册,160 存量 /callback/flow 行靠它收敛)
- 删 svchall.public-base-url(唯一消费方即 callback-url 拼接)与 yh.open.base-path
(对齐 Notice 形态;该键代码默认值即 /userbase,删键无行为变化)
- deriveCallbackBasePath 剥尾段口径同步 /oapi/flow/callback(契约测试断言更新)
提供方(flow-center 同款组合链):
- 删自写 OpenApiAuthEnforceConfiguration(starter 版 RequireAppSignFilter 承接,order+11 等价)
- yh.app-auth.server.enforce-patterns=[/oapi/*] + trust-registry=true;trusted-apps 保留
100005(CMS) 并增 100019(flow-center 回调推送兜底);pom 显式引 data-redis(optional 不传递)
- management.health.redis.enabled=false(Redis 抖动不拉 DOWN 整机健康)
门禁:mvn test 127/127 绿
|
2026-10-05 22:26:22 +08:00 |
|
chenxing
|
f368299eb5
|
feat(hall): 站点主题中转 + 用户面站点信息端点(T2)——SiteOptionVo 扩 theme/themeParams(@JsonIgnoreProperties 兜未知键,兼容旧 CMS 三键形态,测试已证);SiteDirectory 新增 findOption(resolveSite 的全量形态,resolveSite 委托之,SiteInfo 三字段不动);HallController 新增 GET /api/hall/site(requireMember 同口径 + 防御性 SiteInfo 补壳)
|
2026-10-03 13:46:31 +08:00 |
|
chenxing
|
4bbcd22d25
|
refactor(flow): 目录键归一 flowcenter→flow-center(D1)——出站枚举 FLOW_CENTER 跟随、本地 yh.open.services 键与注释同步;yml 另一 hunk(Phase 2 front.base-url 删除)为在途 WIP 未随本笔提交
build / build-push (push) Successful in 1m36s
|
2026-09-28 17:35:33 +08:00 |
|
chenxing
|
b08d076f0b
|
feat(flow): 回调链路迁平台 flow-callback starter + 表单级流程绑定
build / build-push (push) Failing after 8s
- 回调迁 starter(2026-09-20):删本地实现 FlowCallbackService/Controller/
FilterConfiguration 及旧测试,X-Flw 验签/幂等/乱序门由 starter 承担,
业务映射入 SvcFlowCallbackHandler(biz-type svc_item);端点仍 /callback/flow,
存量注册 callback_url 不变、secret 零轮换,镜像表 flow_callback_reg
由 sql/20260920_flow_callback_starter_migration.sql 迁移
- 表单级流程绑定:ServiceForm 增 flowGuid,事项未绑流程时回退取绑定表单
最新版本(effectiveFlowGuid),绑定校验/在线办理口径同步
- FlowReconcileJob/FlowCenterClient/OpenApiAuthEnforceConfiguration 等
SDK 适配微调;补 .gitignore(target/、日志)
- 全量 mvn test 本地绿(含新增 SvcFlowCallbackHandlerTest/
ServiceItemEffectiveFlowTest)
|
2026-09-21 09:37:33 +08:00 |
|
chenxing
|
27e19923fb
|
fix(file): 封面 URL /upload/ 段逐轮叠加致门户裂图——出入口折叠自愈
build / build-push (push) Successful in 51s
- 生产 public-base-url 以 /upload/ 结尾而库内相对值以 /upload/ 开头,
buildUrl 盲拼每轮"绝对化→存库"多叠一层(部署态实测叠到 4 层 404)。
- FileUtil.squashDuplicateUploadSeg:/upload/upload/ 永远非法(upload 非
法类型名),buildUrl/absolutize 出口与 toRelativeIfLocal 存库侧统一折叠——
发版即恢复显示无需清库,库内损伤值下次保存永久收敛。
- adminGet 封面回显绝对化:修管理端编辑页相对路径 404 被误当"没保存上"。
- 新增 FileUtilTest 8 用例锁行为(不叠加/损伤自愈/透传/往返幂等)。
|
2026-09-21 08:52:02 +08:00 |
|
chenxing
|
8504ca970c
|
feat(apply): 办件详情出参补发 formSchemaJson——申请内容按表单 schema 显示中文 label 与分组
build / build-push (push) Successful in 48s
- ApplyVo 新增响应期字段 formSchemaJson(仅 detail 填,不入库)
- ServiceFormService.schemaAt:按办件提交时 formVersion 精确命中,缺失回落最新已发布
- 无表单/事项清理/未发布 → null,前端回落按 key 展示
- 单测 ServiceApplyDetailSchemaTest 三态冻结(详情中文化分组 2026-09-17,详见验收清单)
|
2026-09-17 14:50:46 +08:00 |
|
chenxing
|
f0279ae12d
|
feat(apply): 用户面撤回/进度/流程图后端中转 + 大厅HallController + flowEnabled 三态(SDK withdraw/progress/diagramUrl)
build / build-push (push) Successful in 1m11s
|
2026-09-17 01:05:35 +08:00 |
|
chenxing
|
e462b71bef
|
refactor(sdk): 出站全端点收敛到服务目录命名目标 + 零专属地址配置
build / build-push (push) Successful in 3m20s
- FlowCenterClient:apply/getInstanceByBiz/registerCallback 由 ad-hoc TargetSpec
改走 YschFlowOpenApi 门面(ApplyBody/CallbackRegBody/ApplyResultVo/CallbackRegVo
继承 SDK DTO);instance 走 raw() 预绑视图保留 Map 全字段透传。
- CmsSiteDirectoryImpl:DIRECTORY_KEY 包可见;目录未配且 svcchall.cms.base-url
缺失时构造期 fail-fast(原 @Value 无默认值会直接炸启动,无明确提示)。
- FlowCenterClient:svchall.flow.base-url 默认值去掉 + 同款 fail-fast(enabled=false 不校验)。
- application.yml:新增 yh.open.services.{flowcenter,cms},删 svchall.cms.base-url /
svchall.flow.base-url —— 地址唯一来源=服务目录。
- 测试:新增 FlowCenterClientFacadeTest(6 例,冻结门面/归一目标/回落/fail-fast);
CmsSiteDirectoryImplTest 加目录命名目标 + fail-fast 用例。112 测试全绿。
|
2026-09-16 21:04:28 +08:00 |
|
chenxing
|
47beb4eaa4
|
feat: 表单一期放行扩到 11 类(+checkbox/multiselect/phone/image)+ 契约审计修复
build / build-push (push) Successful in 2m9s
- FormValidator:PHASE1_TYPES 加 checkbox/multiselect/phone/image;options 必填口径扩到
select/radio/checkbox/multiselect(4 类);validateValue 补多选(值须在 options 内)分支,
image 并入 upload 的附件数组通道
- 审计修复:maxFiles 上限判定改为 maxFiles>0(缺省或 0=不限),与前端设计器「留空不限」
及渲染器口径对齐——原实现把 0 当上限,会让 maxFiles:0 的表单任何附件都被拒
- ServiceForm 注释纠偏:契约类名 FormValidator(原误写 FormSchemaValidator)、一期 11 类
- 测试:FormValidatorTest +6(新 4 类 schema、多分组计数、options 必填、多选越界、phone
pattern/maxLength、image maxFiles/非数组、precision 非白名单)、ServiceFormServiceTest +4
(冻结行不可变契约:带已发布版本 id 被拒 / 不传 id 按 code 升版出草稿 / 草稿就地更新)
验证:mvn test 102/102 绿(基线 92)。
|
2026-09-16 20:22:02 +08:00 |
|
chenxing
|
9a47351725
|
fix: CmsSiteDirectoryImplTest 同步 SDK 新包路径(openapi.core.*,接 da1b76e)
build / build-push (push) Successful in 2m50s
|
2026-09-16 16:39:57 +08:00 |
|
chenxing
|
da1b76e45a
|
fix: 对齐 BasePlatform 新版 SDK 包路径(CI 宿主 m2 快照已晋升)
build / build-push (push) Failing after 1m10s
BasePlatform 2b14e09 服务目录版把 openapi 类挪入子包,CI 复用的宿主 m2 缓存快照已更新为新布局,
旧包路径(openapi.TargetSpec/openapi.client.*/openapi.dto.FlowDto)在 CI 编译失败(run 971)。
本批纯包路径替换,无逻辑改动:
- openapi.TargetSpec/YschOpenCall → openapi.core.*(FlowCenterClient/CmsSiteDirectoryImpl)
- openapi.client.YschBaseOpenApi → openapi.base.*(YschBaseDeptSource/BaseApiController)
- openapi.client.YschFlowOpenApi → openapi.flow.*(FlowCenterClient)
- openapi.dto.FlowDto.FlowSummary → openapi.flow.model.FlowSummary(SvcModels.FlowSummaryVo)
|
2026-09-16 16:37:29 +08:00 |
|
chenxing
|
76b35b2fb3
|
feat: 表单使用场景可见闭环——form/list 返回绑定事项明细 refItems
build / build-push (push) Failing after 26s
- SvcFormVo 增 refItems(ItemBrief: id/itemCode/title/siteCode/status),referenced 同源派生;仅 list 填充,versions/get 不带
- ServiceItemRepository.findBySchIdAndFormCodeIsNotNull 一次查全量按 formCode 内存分组,替代逐表单 count 的 N+1
- ServiceFormServiceTest 5 用例(未绑定/单绑/跨站点/多版本聚合/分组不串)
- 前端配套(svc-hall-front 另推):绑定明细弹窗+直达事项编辑、发布未绑定引导、schema 预览、事项编辑页草稿表单提示
|
2026-09-16 16:33:55 +08:00 |
|
chenxing
|
dedb4aa436
|
fix: 回调注册补 basePath(从回调 URL 推导接收方 context-path)
build / build-push (push) Successful in 46s
部署带 ctx(/svc-hall)时 flow-center 按整路径签名与 FlowCallbackVerifyFilter
剥 ctx 后对不上 → 注册探活 401 → service_flow_reg 缺失 → 办件状态事件全丢。
本地裸地址(无 ctx)推导为空串,行为不变。新增 FlowCenterClientCallbackBasePathTest。
|
2026-09-16 02:08:55 +08:00 |
|
chenxing
|
850a70d4f7
|
ci: 恢复 CI 工作流与 Dockerfile(同步脚本误删)
build / build-push (push) Successful in 48s
|
2026-09-16 01:29:02 +08:00 |
|
chenxing
|
8aeb40f119
|
feat: SDK 类型化门面接入(flow/cms 走服务目录)+ 教师组科室语义对齐 + F1-F3 存量
- FlowCenterClient/CmsSiteDirectoryImpl:服务目录命名目标(flowcenter/cms)优先,
legacy svchall.flow/cms.base-url 回落(迁移期兼容)
- SvcModels.FlowSummaryVo extends SDK FlowDto(单一事实源)
- 含 2026-09-13/14 存量:bizUrl hash-query(F1)/IDHttp ctx 签名/apply 漏 schId/回填事务
|
2026-09-16 01:22:15 +08:00 |
|
chenxing
|
000d0591fa
|
fix: CMS 站点不可达日志补最内层根因,不再被 SDK 的 ioError 文案吞掉
build / build-push (push) Successful in 2m20s
现象:CmsSiteDirectoryImpl 两处 catch 只打 e.getMessage(),而平台 SDK 统一把
传输层失败包成 "OpenAPI request failed: ioError",底层 ConnectException /
SocketTimeoutException / SSLException 全部丢失,日志分不清"对端没起"还是"读超时"。
改动:
- 新增 rootCauseBrief():沿 cause 链取最内层原因追加为"(根因 X: msg)";
无 cause 时不追加,避免与 e.getMessage() 重复。
- resolveSite / listSites 两处 catch 日志接入该方法。
契约不变:路径 /oapi/site/list、per-target basePath /cms、fail-closed 语义均未动。
测试:CmsSiteDirectoryImplTest 新增 1 例断言摘要形态;mvn test 82/82 绿。
|
2026-09-15 20:52:59 +08:00 |
|
chenxing
|
d47951abd7
|
feat: 办事大厅后端源码首次入库(事项/字典/表单/申报 + 流程回调)
build / build-push (push) Failing after 39s
|
2026-09-15 11:00:00 +08:00 |
|
admin
|
1eeb7a4276
|
ci: init Dockerfile [skip ci]
|
2026-09-15 09:31:05 +08:00 |
|
admin
|
6c1fd4171b
|
ci: init build workflow [skip ci]
|
2026-09-15 09:31:05 +08:00 |
|
admin
|
dfd4d274f5
|
Initial commit
|
2026-09-15 09:31:02 +08:00 |
|