公司/分部 基础表单、tab构建

pull/9/MERGE
dxfeng 3 years ago
parent e15168aa0a
commit d6c8ac96c2

@ -15,16 +15,25 @@ import java.util.stream.Collectors;
* @version: 1.0
*/
public class CompBO {
public static List<CompListDTO> buildCompDTOList(Collection<CompPO> list) {
if (CollectionUtils.isEmpty(list)) {
public static List<CompListDTO> buildCompDTOList(Collection<CompPO> list, List<CompPO> filterList) {
// 搜索结果为空,直接返回空
if (CollectionUtils.isEmpty(filterList)) {
return Collections.emptyList();
}
List<CompListDTO> dtoList = list.stream().map(e -> CompListDTO.builder()
// 递归添加父级数据
Map<Long, CompPO> poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item));
List<CompPO> addedList = new ArrayList<>();
for (CompPO po : filterList) {
dealParentData(addedList, po, poMaps);
}
List<CompListDTO> 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<CompPO> addedList, CompPO po, Map<Long, CompPO> poMaps) {
if (!addedList.contains(po)) {
addedList.add(po);
}
CompPO parentCompPO = poMaps.get(po.getParentCompany());
if (null != parentCompPO) {
dealParentData(addedList, parentCompPO, poMaps);
}
}
}

@ -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;
/**
*
*/

@ -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;
}

@ -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<ExtendGroupPO> listByType(@Param("groupType") String groupType);
}

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.organization.mapper.comp.ExtendGroupMapper">
<resultMap id="BaseResultMap" type="com.engine.organization.entity.comp.po.ExtendGroupPO">
<result column="id" property="id"/>
<result column="extend_type" property="extendType"/>
<result column="group_name" property="groupName"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.extend_type
, t.group_name
, t.creator
, t.delete_type
, t.create_time
, t.update_time
</sql>
<select id="listByType" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
jcl_field_extendgroup t
WHERE t.delete_type = 0
<if test=" extendType != null and extendType != '' ">
and extend_type = #{extendType}
</if>
</select>
</mapper>

@ -15,10 +15,11 @@ public interface CompService {
/**
*
*
* @param params
* @return
*/
Map<String,Object> listPage(CompSearchParam params);
Map<String, Object> listPage(CompSearchParam params);
/**
*
@ -45,7 +46,25 @@ public interface CompService {
/**
*
*
* @return
*/
Map<String, Object> getHasRight();
/**
* Tab
*
* @return
*/
Map<String, Object> getTabInfo();
/**
*
*
* @param params
* @return
*/
Map<String, Object> getCompForm(Map<String, Object> params);
}

@ -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<String, Object> listPage(CompSearchParam params) {
Map<String, Object> datas = new HashMap<>();
PageUtil.start(params.getCurrent(), params.getPageSize());
List<CompPO> list = getCompMapper().list(CompBO.convertParamToPO(params, (long) user.getUID()));
CompPO compPO = CompBO.convertParamToPO(params, (long) user.getUID());
List<CompPO> list = getCompMapper().list(compPO);
PageInfo<CompPO> pageInfo = new PageInfo<>(list, CompPO.class);
Collection<CompPO> compPOS = pageInfo.getList();
// 搜索条件过滤数据
List<CompPO> filterList = filterListByParams(compPOS, params);
// 递归添加父级数据
Map<Long, CompPO> poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item));
List<CompPO> addedList = new ArrayList<>();
for (CompPO po : filterList) {
dealParentData(addedList, po, poMaps);
}
List<CompPO> filterList = filterListByParams(compPOS, compPO);
List<CompListDTO> compListDTOS = CompBO.buildCompDTOList(addedList);
List<CompListDTO> compListDTOS = CompBO.buildCompDTOList(list, filterList);
PageInfo<CompListDTO> 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<SearchConditionOption> 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<String, Object> getHasRight() {
return MenuBtn.getCommonBtnDatas();
Map<String, Object> btnDatas = new HashMap<>();
ArrayList<MenuBtn> topMenuList = new ArrayList<>();
ArrayList<MenuBtn> 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<String, Object> getTabInfo() {
Map<String, Object> apiDatas = new HashMap<>();
List<TopTab> topTabs = new ArrayList<>();
// 基本信息
topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build());
// 拓展信息
List<ExtendGroupPO> 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<String, Object> getCompForm(Map<String, Object> params) {
// operateType 0 查看 1新增 2编辑
String operateType = (String) params.get("operateType");
long id = Long.parseLong((String) params.get("id"));
List<SearchConditionItem> 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<SearchConditionOption> 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<String, Object> conditionsMap = new HashMap<>();
conditionsMap.put("items", conditionItems);
conditionsMap.put("title", "基本信息");
conditionsMap.put("hide", false);
conditionsMap.put("defaultshow", true);
HashMap<String, Object> buttonsMap = new HashMap<>();
buttonsMap.put("hasEdit", true);
buttonsMap.put("hasSave", true);
HashMap<String, Object> resultMap = new HashMap<>();
resultMap.put("buttons", buttonsMap);
resultMap.put("conditions", conditionsMap);
resultMap.put("id", id);
resultMap.put("tables", null);
Map<String, Object> apiDatas = new HashMap<>();
apiDatas.put("result", resultMap);
return apiDatas;
}
/**
* list
*
* @param compPOS
* @param params
* @param compPO
* @return
*/
private List<CompPO> filterListByParams(Collection<CompPO> compPOS, CompSearchParam params) {
private List<CompPO> filterListByParams(Collection<CompPO> compPOS, CompPO compPO) {
// 搜索后的数据
List<CompPO> filterList = new ArrayList<>();
// 筛选数据
for (Iterator<CompPO> 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<CompPO> addedList, CompPO po, Map<Long, CompPO> poMaps) {
if (!addedList.contains(po)) {
addedList.add(po);
}
CompPO parentCompPO = poMaps.get(po.getParentCompany());
if (null != parentCompPO) {
dealParentData(addedList, parentCompPO, poMaps);
}
}
}

@ -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<String, Object> map = ParamUtil.request2Map(request);
return ReturnResult.successed(getCompWrapper(user).getCompForm(map));
} catch (Exception e) {
return ReturnResult.exceptionHandle(e.getMessage());
}
}
}

@ -67,4 +67,14 @@ public class CompWrapper extends Service {
public Map<String, Object> getHasRight() {
return getCompService(user).getHasRight();
}
/**
*
*
* @param params
* @return
*/
public Map<String, Object> getCompForm(Map<String, Object> params) {
return getCompService(user).getCompForm(params);
}
}

Loading…
Cancel
Save