公司/分部 基础表单、tab构建
This commit is contained in:
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…
Reference in New Issue