db_error_keys.md 11 KB

数据库存储过程中文错误提示梳理

来源存储过程:CS_CHECKSTEPATTRIBUTE、CS_CHECKSTEPSNANDMACODE、CS_SETSTEPRESULT 整理时间:2026-10-20

一、可直接加入 Lang.xml 的纯中文提示

以下提示不含变量,可直接作为 key 使用。

CS_CHECKSTEPATTRIBUTE

<Item key="页面caller不能为空" en="Page caller cannot be empty" vi="Caller trang không được để trống" id="Caller halaman tidak boleh kosong"/>
<Item key="岗位资源不存在或者未审核" en="Station resource does not exist or is not audited" vi="Tài nguyên trạm không tồn tại hoặc chưa được kiểm tra" id="Sumber daya stasiun tidak ada atau belum diaudit"/>
<Item key="岗位资源错误,必须是上料工序" en="Station resource error: must be a feeding process" vi="Lỗi tài nguyên trạm: phải là công đoạn cấp liệu" id="Kesalahan sumber daya stasiun: harus proses pemberian bahan"/>
<Item key="岗位资源错误,必须是测试工序" en="Station resource error: must be a test process" vi="Lỗi tài nguyên trạm: phải là công đoạn kiểm tra" id="Kesalahan sumber daya stasiun: harus proses pengujian"/>
<Item key="岗位资源错误,必须是维修工序" en="Station resource error: must be a repair process" vi="Lỗi tài nguyên trạm: phải là công đoạn sửa chữa" id="Kesalahan sumber daya stasiun: harus proses perbaikan"/>
<Item key="岗位资源错误,必须是老化工序" en="Station resource error: must be an aging process" vi="Lỗi tài nguyên trạm: phải là công đoạn lão hóa" id="Kesalahan sumber daya stasiun: harus proses aging"/>
<Item key="岗位资源错误,必须是序列号转换工序" en="Station resource error: must be an SN conversion process" vi="Lỗi tài nguyên trạm: phải là công đoạn chuyển đổi SN" id="Kesalahan sumber daya stasiun: harus proses konversi SN"/>
<Item key="岗位资源错误,必须是OQC工序" en="Station resource error: must be an OQC process" vi="Lỗi tài nguyên trạm: phải là công đoạn OQC" id="Kesalahan sumber daya stasiun: harus proses OQC"/>
<Item key="岗位资源错误,必须是包装工序" en="Station resource error: must be a packing process" vi="Lỗi tài nguyên trạm: phải là công đoạn đóng gói" id="Kesalahan sumber daya stasiun: harus proses packing"/>

CS_CHECKSTEPSNANDMACODE

<Item key="序列号不能为空" en="SN cannot be empty" vi="Số serial không được để trống" id="SN tidak boleh kosong"/>
<Item key="岗位资源不存在或者未审核" en="Station resource does not exist or is not audited" vi="Tài nguyên trạm không tồn tại hoặc chưa được kiểm tra" id="Sumber daya stasiun tidak ada atau belum diaudit"/>
<Item key="岗位资源属性错误,无归属工作中心" en="Station resource attribute error: no work center assigned" vi="Lỗi thuộc tính tài nguyên trạm: không có trung tâm sản xuất được gán" id="Kesalahan atribut sumber daya stasiun: tidak ada work center yang ditetapkan"/>
<Item key="机台无本产品的上料记录,请切换本产品后再采集" en="No feeding record for this product on the machine; please switch to this product before collecting" vi="Không có bản ghi cấp liệu cho sản phẩm này trên máy; vui lòng chuyển sang sản phẩm này trước khi thu thập" id="Tidak ada record pemberian bahan untuk produk ini di mesin; silakan beralih ke produk ini sebelum koleksi"/>

CS_SETSTEPRESULT

<Item key="SN或工单号不正确" en="SN or WO No. is incorrect" vi="SN hoặc số lệnh sản xuất không chính xác" id="SN atau nomor WO tidak benar"/>
<Item key="SN采集资源所属工序不正确" en="SN collection resource process is incorrect" vi="Công đoạn tài nguyên thu thập SN không chính xác" id="Proses sumber daya pengumpulan SN tidak benar"/>
<Item key="当前工序为序列号烧录转换工序,SN对应的工单导入了MAC清单,SN必须烧录MAC信息" en="Current process is SN burn-in conversion; WO has imported MAC list, SN must burn MAC info" vi="Công đoạn hiện tại là chuyển đổi đốt SN; lệnh sản xuất đã nhập danh sách MAC, SN phải đốt thông tin MAC" id="Proses saat ini adalah konversi burn SN; WO telah mengimpor daftar MAC, SN harus membakar info MAC"/>
<Item key="当前工序为序列号烧录转换工序,SN对应的工单导入了IMEI清单,SN必须烧录IMEI信息" en="Current process is SN burn-in conversion; WO has imported IMEI list, SN must burn IMEI info" vi="Công đoạn hiện tại là chuyển đổi đốt SN; lệnh sản xuất đã nhập danh sách IMEI, SN phải đốt thông tin IMEI" id="Proses saat ini adalah konversi burn SN; WO telah mengimpor daftar IMEI, SN harus membakar info IMEI"/>
<Item key="当前工序为序列号烧录转换工序,SN对应的产品维护了关联采集信息,SN必须采集相关信息" en="Current process is SN burn-in conversion; product has related collection info, SN must collect related info" vi="Công đoạn hiện tại là chuyển đổi đốt SN; sản phẩm có thông tin thu thập liên quan, SN phải thu thập thông tin liên quan" id="Proses saat ini adalah konversi burn SN; produk memiliki info koleksi terkait, SN harus mengumpulkan info terkait"/>

二、含变量提示(无法直接作为固定 key)

这些提示在数据库里把变量值拼接进去了,例如 序列号:xxx 已被工单yyy绑定。由于 xxx/yyy 每次都变,无法写死 key,建议按以下方式处理。

推荐方案 A:数据库返回模板 + 客户端填充

把存储过程改为返回类似 ERR_SN_ALREADY_BOUND|SN:xxx|WO:yyy 的结构,客户端按模板翻译:

<Item key="ERR_SN_ALREADY_BOUND" en="SN:{0} has already been bound to WO {1}" vi="SN:{0} đã được gán vào WO {1}" id="SN:{0} sudah terikat ke WO {1}"/>

推荐方案 B:拆成固定中文片段(当前代码可部分支持)

在 Lang.xml 里只维护固定中文片段,借助 TranslateContainedKeys 做子串替换。但翻译质量取决于片段拆分是否合理,例如:

<Item key="已被工单" en="has already been bound to WO" vi="đã được gán vào WO" id="sudah terikat ke WO"/>
<Item key="绑定" en="bound" vi="đã gán" id="terikat"/>

这种方式语句会不自然,仅建议作为临时过渡。

含变量提示清单

存储过程 原始中文模板(变量用 {x} 表示) 说明
CS_CHECKSTEPATTRIBUTE 岗位资源对应的工序[{0}]不存在或者未审核 {0}=工序号
CS_CHECKSTEPSNANDMACODE 岗位资源{0}错误,不存在 {0}=sourcecode
CS_CHECKSTEPSNANDMACODE 序列号:{0} 已被工单{1}绑定 {0}=SN, {1}=工单号
CS_CHECKSTEPSNANDMACODE 序列号:{0}已完工,不允许再进行归属 {0}=SN
CS_CHECKSTEPSNANDMACODE SN:{0} 在多个工单SN范围中,无法自动归属工单 {0}=SN
CS_CHECKSTEPSNANDMACODE SN:{0}已经完工不允许再归属 {0}=SN
CS_CHECKSTEPSNANDMACODE SN:{0} 无工单归属记录,必须先归属工单 {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 归属工单号:{1}错误 {0}=SN, {1}=工单号
CS_CHECKSTEPSNANDMACODE 工单{0}已冻结,不允许采集 {0}=工单号
CS_CHECKSTEPSNANDMACODE 序列号{0}达到最大测试次数{1}次,不允许测试 {0}=SN, {1}=次数
CS_CHECKSTEPSNANDMACODE 序列号:{0} 已转SN:{1},不允许使用TSN进行采集! {0}=原SN, {1}=新SN
CS_CHECKSTEPSNANDMACODE 序列号{0}维修完成,处于待QC确认状态,不允许采集 {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 处于下地状态,不允许操作,请先取消下地! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 已投产到工单[{1}]! {0}=SN, {1}=工单号
CS_CHECKSTEPSNANDMACODE 岗位资源对应的工序不是工单途程[{0}]中的工序! {0}=途程号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 处于待维修状态,请先维修! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 在返工工序:{1},当前资源不允许采集 {0}=SN, {1}=工序号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 下一返工工序是:{1},当前资源不允许采集 {0}=SN, {1}=工序号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 已完工,当前资源不允许采集 {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 处于待维修状态,请进入维修界面进行操作 {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 下一工序是:{1},当前资源不允许采集 {0}=SN, {1}=工序号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 老化时长不足,剩余时长[{1}]分钟,不允许进行操作! {0}=SN, {1}=分钟数
CS_CHECKSTEPSNANDMACODE 工单:数量{0}抽检比例[{1}],应抽检数{2},当前抽检数量{3},请抽检足够数量 {0}=工单号, {1}=比例, {2}=应抽检数, {3}=当前抽检数
CS_CHECKSTEPSNANDMACODE 工单{0}上线数超工单数 {0}=工单号
CS_CHECKSTEPSNANDMACODE 序列号:{0}错误,不在产品序列号导入SN中! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0}错误,不在工单导入PSN中! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号{0}不在工单防呆起始结束范围内! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号{0}不在合同防呆起始结束范围内! {0}=SN
CS_CHECKSTEPSNANDMACODE 上料子件序列号:{0} 对应的半成品料号必须是:{1} {0}=SN, {1}=料号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 处于下地状态,不允许归属! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 已经有归属的下一工单[{1}]! {0}=SN, {1}=工单号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 前一工段中的合同号与待归属的工单的合同号不一致! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号:{0} 在前一工段中必须是完工状态! {0}=SN
CS_CHECKSTEPSNANDMACODE 序列号{0}在前一工段半成品必须在工单[{1}]用料表中! {0}=SN, {1}=工单号
CS_CHECKSTEPSNANDMACODE 序列号:{0} 已投入工作中心{1},不允许归属! {0}=SN, {1}=工作中心
CS_CHECKSTEPSNANDMACODE 批次物料:{0},岗位备料不足 {0}=物料号
CS_CHECKSTEPSNANDMACODE 序列号:{0}未归属工单,不是工单第一道工序不能自动归属 {0}=SN
CS_CHECKSTEPSNANDMACODE 工单:{0}状态不是已下放,不允许采集 {0}=工单号
CS_SETSTEPRESULT 工单{0}存在首件检查任务单超时:{1}未审核或者不合格,不允许操作 {0}=工单号, {1}=结果
CS_SETSTEPRESULT 当前所属上料工序,{0}序列号未进行上料 {0}=SN
CS_SETSTEPRESULT 该产品是按线别+合同号换批,工单:{0}未维护合同号 {0}=工单号
CS_SETSTEPRESULT AFTERSUCCESS批次物料[{0}],岗位备料剩余数不足生产[{1}]个产品,请及时进行备料采集 {0}=物料号, {1}=数量

三、后续建议

  1. 先把第一章的纯中文条目复制到 I18n/Lang.xml,立即生效。
  2. 含变量提示建议走方案 A:改存储过程返回错误码 + 参数,客户端用模板翻译。这样最干净,后续新增错误码也只需要加一条字典。
  3. 如果暂时不想改存储过程,可以先用方案 B 顶一顶,但翻译质量会打折。