package com.engine.organization.service.impl; import com.engine.common.service.HrmCommonService; import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.core.impl.Service; import com.engine.organization.entity.extend.ExtendInfoOperateType; import com.engine.organization.entity.extend.bo.ExtendGroupBO; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.extend.po.ExtendGroupPO; 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.exception.OrganizationRunTimeException; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; 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.PersonnelCardMapper; import com.engine.organization.service.HrmPersonnelCardService; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.field.FieldDefinedValueUtil; import com.engine.portal.biz.constants.ModuleConstants; import com.engine.portal.biz.nonstandardfunction.SysModuleInfoBiz; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.blog.BlogShareManager; import weaver.cowork.CoworkShareManager; import weaver.crm.CrmShareBase; import weaver.docs.search.DocSearchComInfo; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.resource.ResourceComInfo; import weaver.workflow.search.WorkflowRequestUtil; import java.util.*; import java.util.stream.Collectors; /** * @author:dxfeng * @createTime: 2022/10/08 * @version: 1.0 */ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnelCardService { private static final String IS_SHOW = "1"; private PersonnelCardMapper getPersonnelCardMapper() { return MapperProxyFactory.getProxy(PersonnelCardMapper.class); } private ExtendGroupMapper getExtendGroupMapper() { return MapperProxyFactory.getProxy(ExtendGroupMapper.class); } private ExtendTitleMapper getExtendTitleMapper() { return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } private ExtendInfoMapper getExtendInfoMapper() { return MapperProxyFactory.getProxy(ExtendInfoMapper.class); } private ExtMapper getExtMapper() { return MapperProxyFactory.getProxy(ExtMapper.class); } private HrmResourceMapper getHrmResourceMapper() { return MapperProxyFactory.getProxy(HrmResourceMapper.class); } @Override public Map getPersonnelCard(Long uId) { Map resultMap = new HashMap<>(); UserCard userInfo; if (null == uId) { uId = getHrmResourceMapper().getJclResourceId(Util.null2String(user.getUID())); } String ecResourceId = getHrmResourceMapper().getEcResourceId(uId.toString()); userInfo = getPersonnelCardMapper().getUserById(uId); userInfo.setEcId(ecResourceId); OrganizationAssert.notNull(uId, "未找到对应数据"); // 人员基本信息 // 统计报表 Statistical statistical = getStatistical(ecResourceId); List extendGroupList = getExtendGroupMapper().listByType(4, IS_SHOW); // 过滤卡片权限 extendGroupList.removeIf(item -> !hasGroupAccess(item.getId().intValue(), ecResourceId)); // 获取所有模块的信息 List formItemList = new ArrayList<>(); for (ExtendGroupPO groupPO : extendGroupList) { FormItem formItem = getFormItem(groupPO, uId); if (CollectionUtils.isEmpty(formItem.getItems())) { continue; } formItemList.add(formItem); } // 所有锚点 List anchorList = new ArrayList<>(); // 添加字段分组信息 for (FormItem formItem : formItemList) { anchorList.add(Anchor.builder().id(formItem.getId()).title(formItem.getTitle()).build()); } // 添加拓展页面信息 List resourceBaseTabList = getPersonnelCardMapper().getResourceBaseTabList(); for (ResourceBaseTab resourceBaseTab : resourceBaseTabList) { anchorList.add(Anchor.builder().id("tab" + resourceBaseTab.getId()).title(resourceBaseTab.getGroupName()).build()); } resultMap.put("user", userInfo); resultMap.put("statistical", statistical); resultMap.put("formItems", formItemList); resultMap.put("anchorList", anchorList); resultMap.put("iframeList", getIframeList()); return resultMap; } @Override public List