# 半成品气密静置规则与上线步骤 1. 先执行 `db/ddl-assembly-rest.sql`,再发布服务端。脚本未自动执行。 2. 应用、数据库和工控机时间统一为现场时区并校时。 3. 盘点在制品。历史OP200记录不自动补完工时间;核实后可使用 `db/assembly-rest-backfill-example.sql`逐件补录,保留操作人、依据和时间。 4. 客户端联调通过后启用现场设备。当前仓库不含工控机客户端代码。 ## 规则 同一sn、line_sn的OP200主结果(craft=100000)必须唯一且为OK,有有效完工时间, 连续静置210分钟才能进行INSP080。支持A/B子工位。万能码、不防呆、允许重复 不能绕过该条件。其他工序保持原逻辑。 普通生产上报由未完成/NG变为OK时记录数据库当前时间。同一次OK重传保持原时间。 重置为UDF或NG后旧时间失效;实际重新装配前必须先重置,再重新报工。 仅再次上传OK不能表示重新装配。网页人工改成OK不作为有效完工依据;需核实补录。 首次直接建档为OK不推测完工时间,同样需要核实。 ## 客户端接口 HTTP `mesProductRecord/qmcheck`保持既有`result/message/data`结构。 拦截时`result="false"`、`data="WT"`,message包含原因;有可靠时间时额外返回 `allowedAt`与`remainingSeconds`(秒)。客户端显示message、禁止启动检测。 倒计时结束须重新请求qmcheck,不能本地自行放行。 TCP AQDW质量查询返回`RSWT`,客户端需映射为静置不足/装配时间无效并禁止启动。 所有非允许加工响应及网络失败均不能启动设备。 HTTP qmresult要求先成功调用qmcheck,使用服务端工位开始时间再次验证; 还验证上传testTime不能早于静置到期、不能在未来、不能缺失。 违规原始气密数据保留在气密记录中,但不更新工序结果,返回失败并记日志。 TCP及其他正常报工路径也检查服务端开始记录,禁止直接上传绕过。 现有协议没有检测会话ID,开始记录按工位、工件、产线取最近一条; 客户端需按“扫码校验→测试→上传”顺序执行,不应并发测试同工件或重扫覆盖开始记录。 ## 现场验收 - OP200未完成/NG/无完工时间,INSP080不可加工。 - 到期前1秒拒绝,到期时允许;跨班跨日继续累计。 - OP200重复OK不延后;重置再报OK重新等待210分钟。 - INSP080 A/B、TCP和HTTP均受限制;其他气密工位不受影响。 - 提前检测、到期后上传仍拒绝放行,原始数据留存。 - 未扫码直接上传、未来/缺失检测时间拒绝;正常流程能成功放行。 - 检查历史补录审计及客户端设备启动锁是否有效。