Merge pull request '人员卡片按钮自定义' (#53) from feature/dxf into develop
Reviewed-on: http://221.226.25.34:3000/liang.cheng/weaver-hrm-organization/pulls/53
This commit is contained in:
commit
afc54c6d1e
|
|
@ -13,4 +13,7 @@ import java.util.List;
|
|||
public interface CardButtonMapper {
|
||||
|
||||
List<CardButtonPO> listAll();
|
||||
|
||||
|
||||
List<CardButtonPO> listEnableButton();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,5 +36,10 @@
|
|||
from jcl_org_cardbutton where delete_type = 0
|
||||
</select>
|
||||
|
||||
<select id="listEnableButton" resultType="com.engine.organization.entity.personnelcard.po.CardButtonPO">
|
||||
select
|
||||
<include refid="baseColumns"/>
|
||||
from jcl_org_cardbutton t where t.delete_type = 0 and t.status = 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -59,7 +59,7 @@ public interface CardAccessService {
|
|||
* 卡片按钮表单
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> getCardButtonFrom();
|
||||
Map<String, Object> getCardButtonTable();
|
||||
|
||||
/**
|
||||
* 保存卡片按钮信息
|
||||
|
|
|
|||
|
|
@ -94,18 +94,18 @@ public class CardAccessServiceImpl extends Service implements CardAccessService
|
|||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getCardButtonFrom() {
|
||||
public Map<String, Object> getCardButtonTable() {
|
||||
// 区分主表明细表
|
||||
|
||||
String tableName = "JCL_ORG_CARDBUTTON";
|
||||
List<ExtendInfoPO> infoPOList = new ArrayList<>();
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("name").fieldNameDesc("按钮名称").fieldType("varchar(50)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"50\"]").showOrder(1).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("status").fieldNameDesc("启用").fieldType("char(1)").controlType(1).browserType("1").customValue("[\"check\"]").showOrder(2).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("url").fieldNameDesc("跳转地址").fieldType("varchar(1000)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"1000\"]").showOrder(3).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("roles").fieldNameDesc("角色").fieldType("text").controlType(1).browserType("65").customValue("[\"browser\",{\"valueSpan\":\"多角色\",\"replaceDatas\":[{\"itemorderid\":\"65\",\"name\":\"多角色\",\"id\":\"65\",\"parenttitle\":\"人员\",\"title\":\"人员-多角色\"}],\"value\":\"65\"}]").showOrder(4).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("name").fieldNameDesc("按钮名称").fieldType("varchar(50)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"50\"]").showOrder(1).isrequired(0).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("status").fieldNameDesc("启用").fieldType("char(1)").controlType(4).browserType("1").customValue("[\"check\"]").showOrder(2).isrequired(0).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("url").fieldNameDesc("跳转地址").fieldType("varchar(1000)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"1000\"]").showOrder(3).isrequired(0).isSystemDefault(0).build());
|
||||
infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("roles").fieldNameDesc("角色").fieldType("text").controlType(3).browserType("65").customValue("[\"browser\",{\"valueSpan\":\"多角色\",\"replaceDatas\":[{\"itemorderid\":\"65\",\"name\":\"多角色\",\"id\":\"65\",\"parenttitle\":\"人员\",\"title\":\"人员-多角色\"}],\"value\":\"65\"}]").showOrder(4).isrequired(0).isSystemDefault(0).build());
|
||||
|
||||
Map<String, Object> tabinfoMap = new HashMap<>();
|
||||
tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, 2, false));
|
||||
Map<String, Object> tabInfoMap = new HashMap<>();
|
||||
tabInfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, 2, false));
|
||||
// 去除null 元素
|
||||
List<CardButtonPO> cardButtonPOS = getCardButtonMapper().listAll();
|
||||
// 兼容Oracle,map的key转换为小写
|
||||
|
|
@ -121,10 +121,10 @@ public class CardAccessServiceImpl extends Service implements CardAccessService
|
|||
|
||||
return resultMap;
|
||||
}).collect(Collectors.toList());
|
||||
tabinfoMap.put("datas", collect);
|
||||
tabinfoMap.put("api_status", true);
|
||||
tabInfoMap.put("datas", collect);
|
||||
tabInfoMap.put("api_status", true);
|
||||
|
||||
return tabinfoMap;
|
||||
return tabInfoMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,12 +69,12 @@ public class CardAccessController {
|
|||
}
|
||||
|
||||
@GET
|
||||
@Path("/getCardButtonFrom")
|
||||
@Path("/getCardButtonTable")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ReturnResult getCardButtonFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
public ReturnResult getCardButtonTable(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return ReturnResult.successed(getCardAccessWrapper(user).getCardButtonFrom());
|
||||
return ReturnResult.successed(getCardAccessWrapper(user).getCardButtonTable());
|
||||
} catch (Exception e) {
|
||||
return ReturnResult.exceptionHandle(e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class CardAccessWrapper extends OrganizationWrapper {
|
|||
return getCardAccessService(user).save(params);
|
||||
}
|
||||
|
||||
public Map<String, Object> getCardButtonFrom() {
|
||||
return getCardAccessService(user).getCardButtonFrom();
|
||||
public Map<String, Object> getCardButtonTable() {
|
||||
return getCardAccessService(user).getCardButtonTable();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue