A8接口和增值开发手册(6)

2019-01-18 18:08

用友致远协同办公系统-开发手册

* 消息的唯一标示 * @param srcPhone

* 短信的发送方手机号码 * @param destPhone

* 短信的接收方手机号码 * @param content * 短信内容 * @return true 发送成功

*/ public boolean sendMessage(int messageId, String srcPhone, String destPhone, String content); /** * 发送短消息

*

* @param messageId

* 消息的唯一标示 * @param srcPhone

* 短信的发送方手机号码 * @param destPhone

* 短信的接收方手机号码 * @param content * 短信内容 * @return true 发送成功

*/ public boolean sendMessage(int messageId, String srcPhone, Collection destPhone, String content); /** * 是否支持群发 * @return true 支持

*/

public boolean isSupportQueueSend(); /**

* 是否支持收短信

* @return */

public boolean isSupportRecive(); /**

* 从手机端返回到A8系统*

* @return */

public List recive();

4.2.2.1 注册到系统

发送短信是以A8系统插件方式加载到系统的,插件配置文件SeeyonA8/webapps/seeyon/WEB-INF/classes/conf/plugin/sms.xml,在这个文件中找到

用友致远协同办公系统-开发手册

smsAdapterManager.xml,spring Bean在这里配置 如: bean id=\ class=\gImpl\ 短信网关需要的配置参数统一在sms.properties里配置

如: #M 短信王 的用户名 mobile.kingname = #M 短信王 的密码 mobile.kingpassword = 系统启动日志: MobileMessageManagerImpl:852 - 启动手机短信收发线程[短信王短信, ?] 代表短信接口启动成功 4.2.2.2 原理说明

MobileMessageManager

这个接口实现加载短信接口,普通短信发送还是wap方式发送

Map aMsgM =

applicationContext.getBeansOfType(AdapterMobileMessageManger.class);

for (Iterator iter = aMsgM.values().iterator(); }

AdapterMobileMessageManger am = iter.next(); if(am.isAvailability()){ }

adapterMobileMessageManger = am; break;

iter.hasNext();) {

只在启用了移动应用的前提下加载wap短信网关

Map aWapMsgM =

if(!aWapMsgM.isEmpty()){

if(SystemEnvironment.hasPlugin(ProductInfo.PluginNoMapper.mobileWap.name())){ } else{

log.warn(\没有移动应用插件,将不启用Wappush\for (Iterator iter = }

AdapterMobileWapPushManager am = iter.next(); if(am.isAvailability()){ }

adapterMobileWapPushManager = am; break;

applicationContext.getBeansOfType(AdapterMobileWapPushManager.class);

aWapMsgM.values().iterator(); iter.hasNext();) {

用友致远协同办公系统-开发手册 } } 从代码中可以看出短信插件只会加载一个短信接口 if(booleanWappush && isCanUseWapPush(sender.getOrgAccountId(), mo.getMessageType())){//走 } else{//如果不支持,则走短信通道 } sendState = adapterMobileMessageManger.sendMessage(mo.getMessageId(), sendState = adapterMobileWapPushManager.sendMessage(mo.getMessageId(), WapPush 通道 sender.getTelNumber(), dstPhone, content, url + String.valueOf(messageId)); sender.getTelNumber(), dstPhone, content); 4.2.3 代码示例 以短信王为例:

public class AdapterMobileMessageManagerShortMessageKingImpl implements AdapterMobileMessageManger {

//标识名称

public String getName() { }

//单个短信发送

return \短信王短信\;

public boolean sendMessage(int messageId, String srcPhone,

String destPhone, String content) {

//短信的内容不超过 60个字,小灵通号不超过 40个字。 Sender sender = new Sender(kingName,kingPassword); String result = sender.massSend(destPhone, content, \, \);

String success = getParameters(result).get(\); if(Strings.isBlank(success)){ }

String[] str = success.split(\);

boolean successSend = false; for(int i=0;i

if(str[i].equals(destPhone)){ }

successSend = true; return false;

用友致远协同办公系统-开发手册

}

}

return successSend;

//接收短信

public List recive() { }

Sender sender = new Sender(kingName,kingPassword); String str = sender.readSms(); String string = null; String srcphonenum = null; String srcPhone = null; String content = null;

if(str.indexOf(\)!=str.indexOf(\)){ }

if(str.indexOf(\)!=str.indexOf(\)){ }

List list = new ArrayList(); if(content!=null&&srcPhone!=null){ }

return list;

MobileReciver reciver = new MobileReciver(); reciver.setContent(content); reciver.setSrcPhone(srcPhone); list.add(reciver);

srcphonenum = str.substring(str.indexOf(\),str.indexOf(\)); if(srcphonenum!=null){ }

srcPhone = srcphonenum.substring(srcphonenum.indexOf(\)+1); string = str.substring(str.indexOf(\), str.indexOf(\)); content = string.substring(string.indexOf(\)+1);

5. 组织模型同步

完成A8组织模型同步到外部系统(目标系统),分为初始化同步和实时同步两个场景。 5.1 初始化同步

如果A8已经存在组织模型,首先需要将A8的组织模型历史数据同步到目标系统。 5.1.1 导出

使用A8的组织模型数据管理接口,将A8组织模型按单位导出为XML,详见《平台API参考手册》的组织模型数据管理章节的exportData服务。

OrganizationDataServiceStub stub = new OrganizationDataServiceStub(); OrganizationDataServiceStub.ExportData req = new OrganizationDataServiceStub.ExportData(); 用友致远协同办公系统-开发手册 req.setToken(ServiceUtil.getToken()); req.setAccountName(\单位1\); OrganizationDataServiceStub.ExportDataResponse resp = stub .exportData(req); String xml = resp.get_return(); 5.1.2 导入

在目标系统建立一个新的单位,编写代码,解析A8组织模型XML,建立部门、岗位、职务级别和人员。

5.2 实时同步

使用A8组织模型事件接口,实时将A8组织模型的变更同步到目标系统。 5.2.1 实现A8组织模型事件监听接口

实现A8的OrganizationEventListener接口(接口定义在SeeyonA8\\webapps\\seeyon\\WEB-INF\\lib下的 v3x-common.jar中)。

package com.seeyon.v3x.organization.event; /**

* 组织机构事件工厂。 *

* @author wangwy * */

public interface OrganizationEventListener {

/**

* 新建职位级别事件。 *

* @param level

// 传入参数使用Object,方便以后扩展 /**

* 新建单位事件。 *

* @param dept

* 新建的单位对象(V3xOrgAccount)。 */

void addAccount(Object account) throws OrganizationEventException; /**

* 新建部门事件。 *

* @param dept

* 新建的部门对象(V3xOrgDepartment)。 */

void addDepartment(Object dept) throws OrganizationEventException;


A8接口和增值开发手册(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:无痛引产怎么样

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: