|
|
|
@ -11,6 +11,7 @@ import com.engine.organization.entity.extend.po.ExtendInfoPO;
|
|
|
|
|
import com.engine.organization.entity.extend.po.ExtendTitlePO;
|
|
|
|
|
import com.engine.organization.entity.personnelcard.*;
|
|
|
|
|
import com.engine.organization.entity.personnelcard.po.CardAccessPO;
|
|
|
|
|
import com.engine.organization.entity.personnelcard.po.CardButtonPO;
|
|
|
|
|
import com.engine.organization.exception.OrganizationRunTimeException;
|
|
|
|
|
import com.engine.organization.mapper.extend.ExtMapper;
|
|
|
|
|
import com.engine.organization.mapper.extend.ExtendGroupMapper;
|
|
|
|
@ -18,6 +19,7 @@ import com.engine.organization.mapper.extend.ExtendInfoMapper;
|
|
|
|
|
import com.engine.organization.mapper.extend.ExtendTitleMapper;
|
|
|
|
|
import com.engine.organization.mapper.hrmresource.HrmResourceMapper;
|
|
|
|
|
import com.engine.organization.mapper.personnelcard.CardAccessMapper;
|
|
|
|
|
import com.engine.organization.mapper.personnelcard.CardButtonMapper;
|
|
|
|
|
import com.engine.organization.mapper.personnelcard.PersonnelCardMapper;
|
|
|
|
|
import com.engine.organization.service.HrmPersonnelCardService;
|
|
|
|
|
import com.engine.organization.util.OrganizationAssert;
|
|
|
|
@ -72,6 +74,10 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel
|
|
|
|
|
return MapperProxyFactory.getProxy(HrmResourceMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private CardButtonMapper getCardButtonMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(CardButtonMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, Object> getPersonnelCard(Long uId) {
|
|
|
|
@ -113,7 +119,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel
|
|
|
|
|
for (ResourceBaseTab resourceBaseTab : resourceBaseTabList) {
|
|
|
|
|
anchorList.add(Anchor.builder().id("tab" + resourceBaseTab.getId()).title(resourceBaseTab.getGroupName()).build());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resultMap.put("button", getButtonList(ecResourceId));
|
|
|
|
|
resultMap.put("user", userInfo);
|
|
|
|
|
resultMap.put("statistical", statistical);
|
|
|
|
|
resultMap.put("formItems", formItemList);
|
|
|
|
@ -229,7 +235,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel
|
|
|
|
|
|
|
|
|
|
boolean hasAccess = false;
|
|
|
|
|
CardAccessPO cardAccessPO = MapperProxyFactory.getProxy(CardAccessMapper.class).selectById(typeId);
|
|
|
|
|
if(null==cardAccessPO){
|
|
|
|
|
if (null == cardAccessPO) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// 所有人,返回true
|
|
|
|
@ -246,31 +252,50 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 所有上级
|
|
|
|
|
if (!hasAccess || "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) {
|
|
|
|
|
if (!hasAccess && "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) {
|
|
|
|
|
String managersIDs = resourceComInfo.getManagersIDs(userId);
|
|
|
|
|
hasAccess = hasAccess || Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID()));
|
|
|
|
|
hasAccess = Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID()));
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
new BaseBean().writeLog(e);
|
|
|
|
|
throw new OrganizationRunTimeException("人员卡片权限");
|
|
|
|
|
}
|
|
|
|
|
// 角色判断
|
|
|
|
|
if (!hasAccess || org.apache.commons.lang.StringUtils.isNotBlank(cardAccessPO.getCustom())) {
|
|
|
|
|
List<String> accessRoleIds = Arrays.asList(cardAccessPO.getCustom().split(","));
|
|
|
|
|
if (!hasAccess && StringUtils.isNotBlank(cardAccessPO.getCustom())) {
|
|
|
|
|
HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
|
|
|
|
|
List<Object> roleInfo = hrmCommonService.getRoleInfo(user.getUID());
|
|
|
|
|
for (Object o : roleInfo) {
|
|
|
|
|
Map<String, String> roleDetailMap = (Map<String, String>) o;
|
|
|
|
|
int roleId = Util.getIntValue(roleDetailMap.get("roleid"), -1);
|
|
|
|
|
// 判断角色是否满足,角色等级是否满足
|
|
|
|
|
hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleId));
|
|
|
|
|
if (hasAccess) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
List<String> roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(user.getUID()).split(",")));
|
|
|
|
|
List<String> accessRoleIds = new ArrayList<>(Arrays.asList(cardAccessPO.getCustom().split(",")));
|
|
|
|
|
roleIds.retainAll(accessRoleIds);
|
|
|
|
|
hasAccess = CollectionUtils.isNotEmpty(roleIds);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return hasAccess;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取当前人员有权限的按钮,系统管理员展示所有,个人卡片展示系统默认按钮、其余按钮依照配置角色展示
|
|
|
|
|
*
|
|
|
|
|
* @param ecResourceId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private List<CardButtonPO> getButtonList(String ecResourceId) {
|
|
|
|
|
boolean isMySelf = ecResourceId.equals(Util.null2String(user.getUID()));
|
|
|
|
|
boolean isAdmin = user.isAdmin();
|
|
|
|
|
List<CardButtonPO> cardButtonPOS = getCardButtonMapper().listEnableButton();
|
|
|
|
|
List<CardButtonPO> buttonList = new ArrayList<>();
|
|
|
|
|
HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
|
|
|
|
|
List<String> roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(user.getUID()).split(",")));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (CardButtonPO cardButton : cardButtonPOS) {
|
|
|
|
|
List<String> accessRoleIds = new ArrayList<>(Arrays.asList(cardButton.getRoles().split(",")));
|
|
|
|
|
roleIds.retainAll(accessRoleIds);
|
|
|
|
|
if (isAdmin || (isMySelf && "0".equals(cardButton.getSysDefault())) || CollectionUtils.isNotEmpty(roleIds)) {
|
|
|
|
|
buttonList.add(CardButtonPO.builder().name(cardButton.getName()).url(cardButton.getUrl()).sysDefault(cardButton.getSysDefault()).build());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return buttonList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|