星瀚费用注册服务的扩展点二开汇总
# 新扩展点实现方式
后续新增扩展点已全部通过统一SDK方式实现,请前往 [https://dev.kingdee.com/open](https://dev.kingdee.com/open)查看更多扩展点。
![image.webp](/download/0100f0fdcbe0080142a1b0121cd811b5ac1e.webp)
下文是旧的二开扩展实现方式,且此贴不再更新。
## 页面初始化数据服务
在页面初始化的数据中常常有二开的逻辑,或者需要修改标准字段的一些携带逻辑。这里提供了一个服务可以让二开修改单据初始化的数据包。
1. 实现接口 kd.fi.er.mservice.ext.IErService4Ext
代码示例![1620738720353.webp](/download/010068f276c2ce2d4e129a9d1dfa4b70c694.webp)
2. 把全类名注册进费用全局配置中(er_stdconfig),key是 ext.service.er
![1620738775058.webp](/download/01008df8583521fa4f6dba747d512eca0681.webp)
接口说明:
| 方法 | 描述 | 参数 |
| -------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| initNewDataMap | 单据初始化数据,在填充页面之前触发。允许修改billMap中的内容 | view:当前单据的view对象 , billMap :将要填充到页面上的数据 |
| | | |
| | | |
## 出纳付款反写服务扩展
标准单据的付款单反写,有一套标准的实现。若有二开继承的单或者需要修改标准反写服务的逻辑,提供了二开扩展接口。 在 er_stdconfig里面添加二开的服务。 key是 【er.writeback.具体元数据标识 】, 比如 要替换费用报销单的反写服务, key就是 er.writeback.er_dailyreimbursebill . value是二开实现的服务全类名。 服务的基类为kd.fi.er.mservice.botp.writeback.AbstractWriteBackServcie
## 差旅标准服务扩展
差旅标准服务标准功能不满足需求的,可以通过注册二开服务的方式重写逻辑。
在 er_stdconfig里面添加二开的服务。 key是 IErTripStdService.要重写的方法名。
以下是两个常用重写方法:
- IErTripStdService.getAccmodationStd 补助住宿标准
- IErTripStdService.getVehicleStdByUserIdAndVehicleType 交通工具标准
value是二开类的全类名。 需要满足的规范:
1. 实现 IErTripStdService接口
2. 提供一个构造方法, 参数是 DynamicObject bill 。 目的是把单据的数据传递到二开的服务里,以便获取一些值用来做二开的逻辑。
3. 若只有单头信息还不满足二开的需要,可以提供两个参数的构造方法,参数 ( DynamicObject bill,Map<String,Object> extMap)
extMap的值,需要重写差旅标准插件里的kd.fi.er.formplugin.web.tripstandard.AbstractTripStdCtrlPlugin.getExtMap(DynamicObject, int, int)方法来定义。(注意这是一个基类插件)
注意事项: 由于查询出来的数据会放入页面缓存中,所以当**非标准字段的维度变化**时,需要清空缓存已达到重新查询的效果。 清空页面缓存的方法:
```java
//清空差旅标准的页面缓存
private void delStdPageCache(IPageCache pageCache){
Set<String> keySet = new HashSet<>();
Map<String,String> allCache = pageCache.getAll();
for(Entry<String,String> entrySet : allCache.entrySet()){
String key = entrySet.getKey();
if(key.startsWith("vhcStd_") || key.startsWith("accStdCacheKye_")){
keySet.add(key);
}
}
for(String removeKey : keySet){
pageCache.remove(removeKey);
}
}
```
## 额度超额服务扩展
1. 实现接口 kd.fi.er.mservice.ext.IErService4Ext 中的 amountControl方法。
入参: 单据的dataEntity
出参: true 需要超额检查 false不需要超额检查
2. 把全类名注册进费用全局配置中(er_stdconfig),key是 ext.service.er.amountControl
## 取消收款信息收款金额联动
1. 实现接口 kd.fi.er.mservice.ext.IErService4Ext 中的 changeReciveAmount方法。
入参: 单据的model
出参: true 需要联动收款信息的收款金额 false不需要
2. 把全类名注册进费用全局配置中(er_stdconfig),key是 ext.service.er.changeReciveAmount
## 修改标准逻辑计算出的付现金额
1. 实现接口 kd.fi.er.mservice.ext.IErService4Ext 中的 payamountCalc方法。
2. 把全类名注册进费用全局配置中(er_stdconfig),key是ext.service.er.payamountCalc
代码示例
![1642411853716.webp](/download/0100be068ee0076c4cdaaf88ad79c50bcb01.webp)
星瀚费用注册服务的扩展点二开汇总
# 新扩展点实现方式后续新增扩展点已全部通过统一SDK方式实现,请前往 [https://dev.kingdee.com/open](https://dev.kingdee.com/open)查...
点击下载文档
本文2024-09-22 22:35:14发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-127557.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章