1.生成特定格式的主键
1).在pub/sequence/template下,新建模板MyContSequenceTemplate,继承CMISSequenceTemplate,并实现其方法
public String format(String owner, String curSernum, Context context)
throws EMPException
{
StringBuffer sb = new StringBuffer();
sb.append(getAType());
sb.append(owner);
sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date()));
sb.append(curSernum);
return sb.toString();
}
public String getAType()
{
return "MT";
}
2).在service中的sequenceService标签下,新增
<CMISSequenceTemplate name="CMISSequenceTemplate" implClass="com.yucheng.cmis.pub.sequence.template.MyContSequenceTemplate" />
3).新增sequenceFactory类,采用单例模式,并创建获得主键的方法
public String getSerNo(String flag, Context context, Connection connection) throws EMPException{//flag是用于查找模板的
//取序列服务
CMISSequenceService sequenceService = (CMISSequenceService) context.getService("sequenceService");
//取机构号, 不可改变
String orgId = (String)context.getDataValue("ARTI_ORGANNO").toString().substring(0, 5) ;
//获取serNO
String serNo = sequenceService.getSequence(aType, orgId+"30", context,connection);//此句是根据aType,到CMISSequence中获得对应的MyContSequenceTemplate对象,再根据aType和orgId+"30"(owner)获得数据库中的sequence,所以数据库中的sequence要命名为aType_owner模式,最后调用自定义的sequence中的format方法,格式化最后的结果值
return serNo;
}
4).在新增的op中,添加 String s=MySeroFactory.getMySeroFactory().getSerNo("MT", context, connection);
2.自定义组件的使用
1).自定义组件要继承于CMISComponent类,获得dao层dao = (TableModelDAO) context.getService(CMISConstance.ATTR_TABLEMODELDAO);
2).在src/main/config/com/yucheng/cmis/config下新建对应的配置文件
<CMIS>
<!-- 对公额度管理构件 -->
<buildingElement name="creditTest">
<COMPONENT id="creditTestComponent" describe="授信测试组件" comproperty="">com.yucheng.cmis.credit.test.orgtest.component.OrgTestComponent</COMPONENT>
<DAO id = "creditTestDao" describe="授信dao" comproperty="">com.yucheng.cmis.credit.test.orgtest.dao.OrgTestDAO</DAO>
<INTERFACE id="LmtComInnerImpl" describe="对公授信内部接口" comproperty="">com.yucheng.cmis.lmt.lmtinterface.impl.LmtComInnerImpl</INTERFACE>
</buildingElement>
</CMIS>
3).获得组件
OrgTestComponent lmtComInner =(OrgTestComponent)CMISComponentFactory.getComponentFactoryInstance().getComponentInstance("creditTestComponent", context,connection);