diff --git a/src/com/engine/organization/entity/comp/bo/CompBO.java b/src/com/engine/organization/entity/comp/bo/CompBO.java index 23b8ceda..05302028 100644 --- a/src/com/engine/organization/entity/comp/bo/CompBO.java +++ b/src/com/engine/organization/entity/comp/bo/CompBO.java @@ -15,16 +15,25 @@ import java.util.stream.Collectors; * @version: 1.0 */ public class CompBO { - public static List buildCompDTOList(Collection list) { - if (CollectionUtils.isEmpty(list)) { + public static List buildCompDTOList(Collection list, List filterList) { + // 搜索结果为空,直接返回空 + if (CollectionUtils.isEmpty(filterList)) { return Collections.emptyList(); } - List dtoList = list.stream().map(e -> CompListDTO.builder() + // 递归添加父级数据 + Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); + List addedList = new ArrayList<>(); + for (CompPO po : filterList) { + dealParentData(addedList, po, poMaps); + } + + List dtoList = addedList.stream().map(e -> CompListDTO.builder() .id(e.getId()) .compNo(e.getCompNo()) .compName(e.getCompName()) .compNameShort(e.getCompNameShort()) .parentCompany(e.getParentCompany()) + .parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()) .orgCode(e.getOrgCode()) .industry(e.getIndustry()) .compPrincipal(e.getCompPrincipal()) @@ -61,5 +70,22 @@ public class CompBO { } + /** + * 递归获取查询后数据的父级数据 + * + * @param addedList + * @param po + * @param poMaps + */ + private static void dealParentData(List addedList, CompPO po, Map poMaps) { + if (!addedList.contains(po)) { + addedList.add(po); + } + CompPO parentCompPO = poMaps.get(po.getParentCompany()); + if (null != parentCompPO) { + dealParentData(addedList, parentCompPO, poMaps); + } + } + } diff --git a/src/com/engine/organization/entity/comp/dto/CompListDTO.java b/src/com/engine/organization/entity/comp/dto/CompListDTO.java index 068dc29f..56fe61bb 100644 --- a/src/com/engine/organization/entity/comp/dto/CompListDTO.java +++ b/src/com/engine/organization/entity/comp/dto/CompListDTO.java @@ -56,7 +56,9 @@ public class CompListDTO { /** * 上级公司 */ - @TableTitle(title = "上级公司", dataIndex = "parentCompany", key = "parentCompany") + @TableTitle(title = "上级公司", dataIndex = "parentCompName", key = "parentCompName") + private String parentCompName; + private Long parentCompany; /** @@ -83,6 +85,12 @@ public class CompListDTO { @TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag") private int forbiddenTag; + /** + * 操作列 + */ + @TableTitle(title = "操作", dataIndex = "operate", key = "operate") + private String operate; + /** * 子节点 */ diff --git a/src/com/engine/organization/entity/comp/po/ExtendGroupPO.java b/src/com/engine/organization/entity/comp/po/ExtendGroupPO.java new file mode 100644 index 00000000..f5eb1a5d --- /dev/null +++ b/src/com/engine/organization/entity/comp/po/ExtendGroupPO.java @@ -0,0 +1,41 @@ +package com.engine.organization.entity.comp.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/18 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ExtendGroupPO { + /** + * 主键 + */ + private Long id; + + /** + * 类型 + */ + private Integer extendType; + + /** + * 分组名称 + */ + private String groupName; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; + +} diff --git a/src/com/engine/organization/mapper/comp/ExtendGroupMapper.java b/src/com/engine/organization/mapper/comp/ExtendGroupMapper.java new file mode 100644 index 00000000..c61ddd40 --- /dev/null +++ b/src/com/engine/organization/mapper/comp/ExtendGroupMapper.java @@ -0,0 +1,22 @@ +package com.engine.organization.mapper.comp; + +import com.engine.organization.entity.comp.po.ExtendGroupPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/18 + * @version: 1.0 + */ +public interface ExtendGroupMapper { + /** + * 列表查询 + * + * @param groupType + * @return + */ + List listByType(@Param("groupType") String groupType); +} diff --git a/src/com/engine/organization/mapper/comp/ExtendGroupMapper.xml b/src/com/engine/organization/mapper/comp/ExtendGroupMapper.xml new file mode 100644 index 00000000..fc4bd10e --- /dev/null +++ b/src/com/engine/organization/mapper/comp/ExtendGroupMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + t + . + id + , t.extend_type + , t.group_name + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/CompService.java b/src/com/engine/organization/service/CompService.java index dfeed7a8..df182b1f 100644 --- a/src/com/engine/organization/service/CompService.java +++ b/src/com/engine/organization/service/CompService.java @@ -15,10 +15,11 @@ public interface CompService { /** * 列表 + * * @param params * @return */ - Map listPage(CompSearchParam params); + Map listPage(CompSearchParam params); /** * 更新禁用标记 @@ -45,7 +46,25 @@ public interface CompService { /** * 获取列表页面按钮信息 + * * @return */ Map getHasRight(); + + + /** + * 获取基本信息、拓展信息Tab + * + * @return + */ + Map getTabInfo(); + + /** + * 获取基本信息表单 + * + * @param params + * @return + */ + Map getCompForm(Map params); + } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index c040d33d..77425353 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -8,11 +8,14 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.TopTab; import com.engine.organization.entity.comp.bo.CompBO; import com.engine.organization.entity.comp.dto.CompListDTO; import com.engine.organization.entity.comp.param.CompSearchParam; import com.engine.organization.entity.comp.po.CompPO; +import com.engine.organization.entity.comp.po.ExtendGroupPO; import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.comp.ExtendGroupMapper; import com.engine.organization.service.CompService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; @@ -21,6 +24,7 @@ import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.Column; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.page.PageUtil; +import org.apache.commons.collections4.CollectionUtils; import weaver.general.StringUtil; import java.util.*; @@ -37,24 +41,24 @@ public class CompServiceImpl extends Service implements CompService { return MapperProxyFactory.getProxy(CompMapper.class); } + private ExtendGroupMapper getExtendGroupMapper() { + return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + } + + @Override public Map listPage(CompSearchParam params) { Map datas = new HashMap<>(); PageUtil.start(params.getCurrent(), params.getPageSize()); - List list = getCompMapper().list(CompBO.convertParamToPO(params, (long) user.getUID())); + CompPO compPO = CompBO.convertParamToPO(params, (long) user.getUID()); + List list = getCompMapper().list(compPO); PageInfo pageInfo = new PageInfo<>(list, CompPO.class); Collection compPOS = pageInfo.getList(); // 搜索条件过滤数据 - List filterList = filterListByParams(compPOS, params); - // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); - List addedList = new ArrayList<>(); - for (CompPO po : filterList) { - dealParentData(addedList, po, poMaps); - } + List filterList = filterListByParams(compPOS, compPO); - List compListDTOS = CompBO.buildCompDTOList(addedList); + List compListDTOS = CompBO.buildCompDTOList(list, filterList); PageInfo pageInfos = new PageInfo<>(compListDTOS, CompListDTO.class); pageInfos.setTotal(pageInfos.getTotal()); pageInfos.setPageNum(params.getCurrent()); @@ -106,13 +110,13 @@ public class CompServiceImpl extends Service implements CompService { // 组织机构代码 SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "组织机构代码", "orgCode"); // 行业 - SearchConditionItem industryItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "行业", "industry"); + SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", ""); // 负责人 - SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "负责人", "compPrincipal"); + SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "负责人", "1", "compPrincipal", ""); // 禁用标记 List selectOptions = new ArrayList<>(); - SearchConditionOption enableOption = new SearchConditionOption("0", "启用"); - SearchConditionOption disableOption = new SearchConditionOption("1", "禁用"); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); selectOptions.add(enableOption); selectOptions.add(disableOption); SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); @@ -133,29 +137,122 @@ public class CompServiceImpl extends Service implements CompService { @Override public Map getHasRight() { - return MenuBtn.getCommonBtnDatas(); + Map btnDatas = new HashMap<>(); + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + // 新增 + topMenuList.add(MenuBtn.topMenu_addNew()); + // 批量删除 + topMenuList.add(MenuBtn.topMenu_batchDelete()); + btnDatas.put("topMenu", topMenuList); + // 新增 + rightMenuList.add(MenuBtn.rightMenu_addNew()); + // 日志 + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + btnDatas.put("rightMenu", rightMenuList); + return btnDatas; + } + + @Override + public Map getTabInfo() { + Map apiDatas = new HashMap<>(); + List topTabs = new ArrayList<>(); + // 基本信息 + topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build()); + // 拓展信息 + List groupPOList = getExtendGroupMapper().listByType(""); + if (CollectionUtils.isNotEmpty(groupPOList)) { + for (ExtendGroupPO groupPO : groupPOList) { + topTabs.add(TopTab.builder().color("#000000").groupId(groupPO.getId() + "").showcount(false).title(groupPO.getGroupName()).viewCondition(groupPO.getId() + "").build()); + } + } + apiDatas.put("topTabs", topTabs); + return apiDatas; + } + + @Override + public Map getCompForm(Map params) { + // operateType 0 查看 1新增 2编辑 + String operateType = (String) params.get("operateType"); + long id = Long.parseLong((String) params.get("id")); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem compNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "compNo"); + // 名称 + SearchConditionItem compNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "compName"); + // 简称 + SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "compNameShort"); + // TODO 自定义按钮 + // 上级公司 + SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser"); + // 组织机构代码 + SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "组织机构代码", "orgCode"); + // 行业 + SearchConditionItem industryItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "行业", "63", "industry", ""); + // 负责人 + SearchConditionItem compPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "负责人", "1", "compPrincipal", ""); + // 禁用标记 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + conditionItems.add(compNoItem); + conditionItems.add(compNameItem); + conditionItems.add(compNameShortItem); + conditionItems.add(compBrowserItem); + conditionItems.add(orgCodeItem); + conditionItems.add(industryItem); + conditionItems.add(compPrincipalItem); + conditionItems.add(forbiddenTagItem); + + + HashMap conditionsMap = new HashMap<>(); + conditionsMap.put("items", conditionItems); + conditionsMap.put("title", "基本信息"); + conditionsMap.put("hide", false); + conditionsMap.put("defaultshow", true); + + + HashMap buttonsMap = new HashMap<>(); + buttonsMap.put("hasEdit", true); + buttonsMap.put("hasSave", true); + + HashMap resultMap = new HashMap<>(); + resultMap.put("buttons", buttonsMap); + resultMap.put("conditions", conditionsMap); + resultMap.put("id", id); + resultMap.put("tables", null); + Map apiDatas = new HashMap<>(); + + apiDatas.put("result", resultMap); + + return apiDatas; } /** * 通过搜索条件过滤list数据 + * * @param compPOS - * @param params + * @param compPO * @return */ - private List filterListByParams(Collection compPOS, CompSearchParam params) { + private List filterListByParams(Collection compPOS, CompPO compPO) { // 搜索后的数据 List filterList = new ArrayList<>(); // 筛选数据 for (Iterator iterator = compPOS.iterator(); iterator.hasNext(); ) { CompPO next = iterator.next(); - boolean isAdd = (StringUtil.isEmpty(params.getCompName()) || next.getCompName().contains(params.getCompName())) // 名称 - && (StringUtil.isEmpty(params.getCompNo()) || next.getCompNo().contains(params.getCompNo()))//编号 - && (StringUtil.isEmpty(params.getCompNameShort()) || next.getCompNameShort().contains(params.getCompNameShort()))//简称 - && (null == params.getParentCompany() || next.getParentCompany().equals(params.getParentCompany()))//上级公司 - && (StringUtil.isEmpty(params.getOrgCode()) || next.getOrgCode().contains(params.getOrgCode()))//组织机构代码 - && (null == params.getIndustry() || next.getIndustry().equals(params.getIndustry()))//行业 - && (null == params.getCompPrincipal() || next.getCompPrincipal().equals(params.getCompPrincipal()))//负责人 - && (null == params.getForbiddenTag() || next.getForbiddenTag().equals(params.getForbiddenTag()));//禁用标记 + boolean isAdd = (StringUtil.isEmpty(compPO.getCompName()) || next.getCompName().contains(compPO.getCompName())) // 名称 + && (StringUtil.isEmpty(compPO.getCompNo()) || next.getCompNo().contains(compPO.getCompNo()))//编号 + && (StringUtil.isEmpty(compPO.getCompNameShort()) || next.getCompNameShort().contains(compPO.getCompNameShort()))//简称 + && (null == compPO.getParentCompany() || next.getParentCompany().equals(compPO.getParentCompany()))//上级公司 + && (StringUtil.isEmpty(compPO.getOrgCode()) || next.getOrgCode().contains(compPO.getOrgCode()))//组织机构代码 + && (null == compPO.getIndustry() || next.getIndustry().equals(compPO.getIndustry()))//行业 + && (null == compPO.getCompPrincipal() || next.getCompPrincipal().equals(compPO.getCompPrincipal()))//负责人 + && (null == compPO.getForbiddenTag() || next.getForbiddenTag().equals(compPO.getForbiddenTag()));//禁用标记 if (isAdd) { filterList.add(next); } @@ -163,21 +260,4 @@ public class CompServiceImpl extends Service implements CompService { } return filterList; } - - /** - * 递归获取查询后数据的父级数据 - * - * @param addedList - * @param po - * @param poMaps - */ - private void dealParentData(List addedList, CompPO po, Map poMaps) { - if (!addedList.contains(po)) { - addedList.add(po); - } - CompPO parentCompPO = poMaps.get(po.getParentCompany()); - if (null != parentCompPO) { - dealParentData(addedList, parentCompPO, poMaps); - } - } } diff --git a/src/com/engine/organization/web/CompController.java b/src/com/engine/organization/web/CompController.java index 55547548..c16954d3 100644 --- a/src/com/engine/organization/web/CompController.java +++ b/src/com/engine/organization/web/CompController.java @@ -130,4 +130,19 @@ public class CompController { return ReturnResult.exceptionHandle(e.getMessage()); } } + + @GET + @Path("/getCompForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCompForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getCompWrapper(user).getCompForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + } diff --git a/src/com/engine/organization/wrapper/CompWrapper.java b/src/com/engine/organization/wrapper/CompWrapper.java index 9f68e00c..d82142c4 100644 --- a/src/com/engine/organization/wrapper/CompWrapper.java +++ b/src/com/engine/organization/wrapper/CompWrapper.java @@ -67,4 +67,14 @@ public class CompWrapper extends Service { public Map getHasRight() { return getCompService(user).getHasRight(); } + + /** + * 获取基本信息表单 + * + * @param params + * @return + */ + public Map getCompForm(Map params) { + return getCompService(user).getCompForm(params); + } }