
# 问题描述
人员头像裂图
# 原因分析&解决方案
## 场景一
### 原因分析:
环境迁移/数据复制,对应的头像文件没有迁移到新环境的文件服务器,但是在t_sec_user表中,favatar字段依然记录的是原始文件路径,导致在新环境中头像地址无法找到对应文件,从而产生人员头像裂图的问题。
### 解决方案:
在人员列表上扩展一个按钮,绑定二开的操作插件,具体配置见截图:

插件具体代码逻辑如下:
```
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(), BusinessDataServ