|
|
@@ -0,0 +1,117 @@
|
|
|
+# 数据库存储过程中文错误提示梳理
|
|
|
+
|
|
|
+> 来源存储过程:CS_CHECKSTEPATTRIBUTE、CS_CHECKSTEPSNANDMACODE、CS_SETSTEPRESULT
|
|
|
+> 整理时间:2026-10-20
|
|
|
+
|
|
|
+## 一、可直接加入 Lang.xml 的纯中文提示
|
|
|
+
|
|
|
+以下提示不含变量,可直接作为 key 使用。
|
|
|
+
|
|
|
+### CS_CHECKSTEPATTRIBUTE
|
|
|
+
|
|
|
+```xml
|
|
|
+<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
|
|
|
+
|
|
|
+```xml
|
|
|
+<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
|
|
|
+
|
|
|
+```xml
|
|
|
+<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` 的结构,客户端按模板翻译:
|
|
|
+
|
|
|
+```xml
|
|
|
+<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` 做子串替换。但翻译质量取决于片段拆分是否合理,例如:
|
|
|
+
|
|
|
+```xml
|
|
|
+<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 顶一顶,但翻译质量会打折。
|