本人详解
作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》
公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题
中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯
转载说明:务必注明来源(注明:作者:王文峰哦)
【设计并实现Java采购系统中基于合同创建的订单国际化与个性化模块】
学习教程(传送门)
1、掌握 JAVA入门到进阶知识(持续写作中……)
2、学会Oracle数据库用法(创作中……)
3、手把手教你vbs脚本制作(完善中……)
4、牛逼哄哄的 IDEA编程利器(编写中……)
5、吐血整理的 面试技巧(更新中……)
【设计并实现Java采购系统中基于合同创建的订单国际化与个性化模块】
1. 核心设计原则
- 国际化 (i18n):支持多语言(中/英/西语等)和地区格式(日期、货币)。
- 个性化:根据不同合同动态加载字段(如海关代码、船号等)。
- 扩展性:通过配置增加新字段,无需修改代码。
- 数据一致性:订单继承合同基础数据,允许覆盖个性化字段。
2. 模块设计
(1) 数据库设计
CREATE TABLE contract (
id VARCHAR(36) PRIMARY KEY,
contract_code VARCHAR(50) NOT NULL,
default_customs_code VARCHAR(30), -- 默认海关代码
default_ship_number VARCHAR(20), -- 默认船号
i18n_support_languages VARCHAR(100) -- 支持的语言(en_US,zh_CN等)
);
CREATE TABLE purchase_order (
id VARCHAR(36) PRIMARY KEY,
contract_id VARCHAR(36) NOT NULL REFERENCES contract(id),
order_number VARCHAR(50) NOT NULL,
customs_code VARCHAR(30), -- 可覆盖合同默认值
ship_number VARCHAR(20),
bill_of_lading_number VARCHAR(50), -- 提单号
bill_of_lading_date DATE, -- 提单日期
language_tag VARCHAR(10) NOT NULL DEFAULT 'zh_CN' -- 国际化语言标识
);