`

工厂模式在电子保单模板打印中的实际应用

    博客分类:
  • Java
阅读更多

最近,遇到分别调用打印一个产品的 3 种打印电子保单的情况,用工厂模式实现比较方便灵活:

其实现如下:

定义工厂抽象类:EPolicyDataProvider

 

public abstract class EPolicyDataProvider {

	public abstract String createEPolicyXml(YwxCommonPolicy policy, DocumentPrint docPrint)
			throws GenerateEPolicyException;

	protected Document createDoc() {
		return DocumentHelper.createDocument();
	}

	protected Element createRoot(Document doc) {
						"http://www.cpic.com.cn/epolicy/reportservice report.xsd");
		return root;
	}
	
	protected String toString(Document doc) throws GenerateEPolicyException {
		try {
			xw.write(doc);
		} catch (IOException e) {
			throw new GenerateEPolicyException("创建电子保单报文XML失败!", e);
		}
		return ss.toString();
	}
}

 

定义3 个实现类:举例其中一个:  还有2 个 名称为 HmV8001EPolicyDateProvider      HmV8002EPolicyDateProvider    都是扩展这个 EPolicyDataProvider  的抽象类。

 

/**
 * 凯尔乐行境外综合保险(S超值型)
 * @author pengfr
 *
 */
public class HmV8000EPolicyDateProvider extends EPolicyDataProvider {

	@Override
	public String createEPolicyXml(YwxCommonPolicy policy,
			DocumentPrint docPrint) throws GenerateEPolicyException {
		// TODO Auto-generated method stub
		Document doc = createDoc();
		// 创建根结点
		Element root = createRoot(doc);
		// 创建parameters结点
		Element parameters = root.addElement("parameters");
		// 添加报表各parameter参数
		if (policy == null) {
			throw new GenerateEPolicyException("创建境外旅行综合电子保单XML报文失败,原因:保单信息不能为空!");
		}.......................

		
		
		root.addElement("fields");
		// 格式化输出
		return toString(doc);
	}

}

 

 

定义灵活的配置调用类:

 

	public class Config {
		/** 应用名称 */
		public String applyName;
		/** 数据提供者 */
		public EPolicyDataProvider provider;
	}

 

 

 

/** 数据提供者类包名前缀 */
	private static final String packagePrefix = "com.cpic.b2bcore.datamanager.datainterface.epolicyinterface";
	private static EPolicyConfig instance = new EPolicyConfig();
	
public Config getConfig(String className){
                /** 配置集合 */
	private Map<String, Config> configs;
//根据类名生成类的实例
			EPolicyDataProvider provider = null;
			try {
				provider = (EPolicyDataProvider) Class.forName(
						packagePrefix + "." + className).newInstance();
			} catch (Exception e) {
				log.error("电子保单配置不正确,[" + key + "]的类[" + className
						+ "]创建实例失败!");
				return;
			}}

 

 

 

调用方式如下 :

 

Config config = EPolicyConfig.getInstance().getConfig("HmV8000");  //或者其他2 个应用的标识
		if (config == null) {
			throw new GenerateEPolicyException("生成电子保单失败,无法获取产品["
					+ policy.getProduct().getProductCode() + "]电子保单配置信息!");
		}
//在上面getConfig方法中, 根据应用标识生成provider的实例类。  就相当于工厂根据标识符的要求,生成了符合要求的"产品"
		// 应用名称 app_name
		bean.setApp_name(config.applyName);
		// XML报文信息 xmlvalue
		bean.setXmlvalue(config.provider.createEPolicyXml(policy, docPrint));

 

 

分享到:
评论

相关推荐

    梁源瑞泰康人寿电子保单-images

    梁源瑞泰康人寿电子保单-images

    电子保单解决方案.docx

    在中国保险市场快速发展的背景下,电子保单的实施有助于提高效率、降低成本,同时确保保单的真实性和安全性。以下是电子保单解决方案的关键知识点: 1. **法律效力**:电子保单必须满足电子签名法的要求,以确保其...

    太平洋电子保单助手1.0官方最新安装版

    您的电脑可能是处在使用代理服务器的网络环境下,考虑到您账户的安全情况及保单权益,建议您在家中的电脑上进行保单的下载与签收回执动作,如操作中有任何问题可以随时联系在线客服帮您解决,给您带来的不便请您谅解...

    行业-电子政务-电子保单加签方法、装置、计算机设备及存储介质.zip

    在实际应用中,电子保单加签方法还可能涉及第三方认证机构(CA),它们负责颁发和管理数字证书,确保加签过程的公正性和可信度。同时,电子保单的生命周期管理也是必不可少的,包括创建、分发、撤销、更新和归档等...

    发送电子保单服务接口规范说明.docx

    《发送电子保单服务接口规范说明》文档详细阐述了瑞华互联网平台电子保单发送服务接口的相关标准,旨在规范业务数据交互过程中的数据格式和统一性。文档的主要目的是为调用方提供清晰的操作指南,确保电子保单发送...

    JR-T 0174-2019 电子保单业务规范.pdf

    JR-T 0174-2019 电子保单业务规范.pdf

    惠普保函打印解决方案

    该方案的核心是利用惠普系列激光打印机,结合Eform(电子保单)理念,通过独立的应用系统和运行环境,在不改动原有业务系统的前提下,实现保单的高质量打印。 首先,该方案的转换过程通过图形化的数据转换工具,将...

    机器学习技术在保单失复效管理工作中的应用.pdf

    总的来说,机器学习技术在保单失复效管理工作中的应用,能够帮助保险公司精准预测保单复效的可能性,制定个性化服务策略,降低失效风险,提升客户满意度,最终促进公司的长期稳定发展。通过结合多种模型并利用帕累托...

    太平洋保险保单生成说明

    在上述示例代码中,我们可以看到通过调用`ParamValueOther`函数来生成保单。具体步骤如下: 1. **初始化变量**:定义了一系列变量用于存储保单生成所需的各种信息。 2. **设置示例值**:为了演示目的,代码中设置了...

    保单单证管理系统》是一款针对保险代理公司保单业绩、保单单证管理的一款软件.zip

    7. **项目实践**:本项目是人工智能在实际业务场景中的应用实例,展示了理论知识如何转化为实际解决方案。这种实践过程对于提升开发者的技术能力,理解业务逻辑,以及提高项目的成功率至关重要。 综上所述,《保单...

    毕业设计:基于Jsp的中保财险保单管理系统

    总的来说,"基于Jsp的中保财险保单管理系统"是一个综合运用了Web开发技术、数据库管理和软件工程原理的项目,它展示了如何通过JSP和SQL Server 2000构建一个实用的企业级应用。对于学习和理解企业级Web开发流程、JSP...

    037318-2024年交强险电子保单.pdf

    037318-2024年交强险电子保单.pdf

    打印控件ITC_1.0.3.rar

    【打印控件ITC_1.0.3.rar】是一个专为人保财险设计的保单打印工具,它集成了特定的功能,确保用户能够高效、准确地打印出保险相关的单据...在实际使用前,用户应仔细阅读相关的用户指南,以充分利用该控件的各项功能。

    保单质押借款合同模板.docx

    7. **保单效力与终止**:如果保险合同在借款期内失效或因其他原因终止,欠款本息将从退保金额中扣除。如果借款到期后未偿还的借款本息超过保单现金价值,保险合同将自动终止。 8. **合同变更与解除**:任何一方要求...

    VB保险公司保单管理系统(源代码+系统).zip

    总结,VB保险公司保单管理系统是一个综合运用VB.NET编程技术和SQL数据库管理的实践案例,对于学习和理解这两种技术在实际项目中的应用具有很高的参考价值。同时,通过对源代码的深入研究,可提升对软件开发流程和...

    第2章 电子商务行业应用ppt.pptx

    在零售业中,电子商务的应用主要体现在以下几个关键领域:一是网上零售,即消费者通过网络平台购买商品;二是电子化采购,零售商通过网络进行商品的采购与订货;三是电子化供应链管理,实现了从供应商到消费者的全程...

    Sun ONE产品在电子商务中的成功应用

    总的来说,Sun ONE在PICC的电子商务应用中展示了其在金融行业解决方案的强大能力,不仅提升了服务质量和客户体验,还优化了企业的运营模式,降低了运营成本,为企业带来了显著的竞争优势。这种成功的案例表明,开放...

    ChatGPT技术在保险行业中的实际应用探索与挑战.docx

    ChatGPT技术在保险行业中的实际应用探索与挑战 ChatGPT 技术作为一种新兴的自然语言处理技术,为保险行业带来了诸多应用机会。保险行业拥有庞大的服务需求,尤其是在理赔、保单查询、产品咨询等方面。传统的人工...

    建设工程完工履约保证保险保单保函.pdf

    建设工程完工履约保证保险保单保函.pdf

Global site tag (gtag.js) - Google Analytics