人员头像裂图
# 问题描述
人员头像裂图
# 原因分析&解决方案
## 场景一
### 原因分析:
环境迁移/数据复制,对应的头像文件没有迁移到新环境的文件服务器,但是在t_sec_user表中,favatar字段依然记录的是原始文件路径,导致在新环境中头像地址无法找到对应文件,从而产生人员头像裂图的问题。
### 解决方案:
在人员列表上扩展一个按钮,绑定二开的操作插件,具体配置见截图:
![image.webp](/download/01002b2165dc27364f9783c5e09ad3535efe.webp)
插件具体代码逻辑如下:
```
package kd.hr.hrt.dada.demo.LicenseCheck;
import kd.bos.base.utils.user.UserUtils;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
import kd.bos.org.utils.Utils;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.util.*;
public class UserAvatarFix extends AbstractOperationServicePlugIn {
@Override
public void beginOperationTransaction(BeginOperationTransactionArgs e) {
DynamicObject[] userObjList = getSelectedUserInfo(e);
UserUtils.createAvatar(userObjList);
SaveServiceHelper.save(userObjList);
}
private DynamicObject[] getSelectedUserInfo(BeginOperationTransactionArgs e) {
List<DynamicObject> dataEntityList = Arrays.asList(e.getDataEntities());
if (Utils.isListEmpty(dataEntityList)) {
return null;
} else {
List<Long> userIds = new ArrayList(dataEntityList.size());
Iterator var4 = dataEntityList.iterator();
while (var4.hasNext()) {
DynamicObject obj = (DynamicObject) var4.next();
userIds.add(obj.getLong("id"));
}
return (DynamicObject[]) BusinessDataServiceHelper.load(userIds.toArray(), BusinessDataServiceHelper.newDynamicObject("bos_user").getDataEntityType());
}
}
}
```
**特别说明:**
- 在人员较多的情况下,考虑到性能因素,建议在列表页面单次勾选不要超过10000;
- 此方案生成的是系统默认头像,并非原始系统的头像。如果存在文件丢失的情况,无法进行头像文件的迁移,推荐使用此方案处理。
## 场景二
### 原因分析:
内外网隔离,外网访问系统的时候是通过域名转发到内网,而mc当中domaincontextUrl参数依然配置的是内网ip或域名;同时,由于头像文件的绝对地址是根据domaincontextUrl来生成的,导致在外网环境下此地址访问不通,体现在单据上就是裂图状态。用快捷键F12打开浏览器控制台,检查头像的文件地址:
![image.webp](/download/01009d50f52f3680418987da89ace0795539.webp)
地址格式为:
```{domaincontextUrl}/attachment/downloadImage/1b1756ab2b802800.webp?v=1.0&pageId=18XPH3OV/SPYroota61f417a960b420e8532c551fcfebc7a_bos_user_169574&kd_cs_ticket=OMjcicwVjyHVbwR6xDooGnU0wz3c85dz ```
### 解决方案:
通过运维手段解决此问题,具体解决方案可参考:[金蝶云·苍穹内外网访问部署方案](https://vip.kingdee.com/article/255988029918299904?productLineId=29&isKnowledge=2&lang=zh-CN)。
**特别说明:**
此种方案有一定实施门槛,若想从简处理,可以统一内外网域名访问,保证外网通过域名能够正常访问文件即可。但是此种方案存在安全问题,无法做到内外网隔离,可根据实际情况选择。
# 参考文档
[金蝶云·苍穹内外网访问部署方案](https://vip.kingdee.com/article/255988029918299904?productLineId=29&isKnowledge=2&lang=zh-CN)
[自动生成人员头像的具体代码逻辑](https://vip.kingdee.com/article/414117672205285632?productLineId=29&lang=zh-CN)
人员头像裂图
# 问题描述人员头像裂图# 原因分析&解决方案## 场景一### 原因分析:环境迁移/数据复制,对应的头像文件没有迁移到新环境的文件服务器...
点击下载文档
本文2024-09-23 00:47:28发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141755.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章