Merge pull request '人员卡片按钮自定义' (#53) from feature/dxf into develop

Reviewed-on: #53
pull/56/head
dxfeng 2 years ago
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…
Cancel
Save