diff --git a/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java b/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java index 7d7b5406..7aa2c96f 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java @@ -25,7 +25,7 @@ public class ExtendTitlePO { /** * 分组标识 */ - private Long groupid; + private Long groupId; /** * 分组名称 @@ -39,7 +39,7 @@ public class ExtendTitlePO { /** * 是否展示 */ - private Integer isShow; + private String isShow; private Integer creator; diff --git a/src/com/engine/organization/enums/ModuleTypeEnum.java b/src/com/engine/organization/enums/ModuleTypeEnum.java index 15ee1269..404fa62b 100644 --- a/src/com/engine/organization/enums/ModuleTypeEnum.java +++ b/src/com/engine/organization/enums/ModuleTypeEnum.java @@ -1,6 +1,5 @@ package com.engine.organization.enums; -import com.engine.salary.enums.BaseEnum; /** * @Author weaver_cl diff --git a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml index 25167c29..16fa249a 100644 --- a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml @@ -31,7 +31,7 @@ FROM jcl_field_extendgroup t - WHERE t.delete_type = 0 + WHERE t.delete_type = 0 and t.is_show = 1 and extend_type = #{extendType} @@ -56,7 +56,7 @@ select from jcl_field_extendgroup t - WHERE t.delete_type = 0 + WHERE t.delete_type = 0 and t.is_show = 1 and t.pid= #{pid} diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java index 1e93229d..fba88e97 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java @@ -21,4 +21,6 @@ public interface ExtendInfoMapper { * @return */ List listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName,@Param("operateType")String operateType); + + int countFieldsByGroupId(@Param("groupId") Long groupId); } diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index b1d8f92e..b9a5d089 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -75,6 +75,12 @@ order by show_order + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml index 36599d59..fff58b22 100644 --- a/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml @@ -3,7 +3,7 @@ - + @@ -33,7 +33,7 @@ FROM jcl_field_extendtitle t - WHERE t.delete_type = 0 + WHERE t.delete_type = 0 and t.is_show = 1 and group_id = #{groupId} @@ -45,7 +45,7 @@ FROM jcl_field_extendtitle t - WHERE t.delete_type = 0 + WHERE t.delete_type = 0 and t.is_show = 1 AND id IN #{id} diff --git a/src/com/engine/organization/service/ExtService.java b/src/com/engine/organization/service/ExtService.java index 6574500c..af0e8484 100644 --- a/src/com/engine/organization/service/ExtService.java +++ b/src/com/engine/organization/service/ExtService.java @@ -51,8 +51,7 @@ public interface ExtService { * @param showLabel * @return */ - List> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel); - + List> getExtendTables(User user, String extendType, Long groupId,String tableName, long id, int viewAttr, boolean showLabel); /** * 拓展页面分组 * diff --git a/src/com/engine/organization/service/FieldDefinedService.java b/src/com/engine/organization/service/FieldDefinedService.java index 422a9332..a6edeefe 100644 --- a/src/com/engine/organization/service/FieldDefinedService.java +++ b/src/com/engine/organization/service/FieldDefinedService.java @@ -4,6 +4,7 @@ import com.engine.organization.entity.fieldset.vo.TypeTreeVO; import com.engine.organization.enums.ModuleTypeEnum; import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -16,4 +17,20 @@ public interface FieldDefinedService { List getTree(ModuleTypeEnum moduleTypeEnum); + /** + * 获取标题分组 + * + * @param groupType + * @return + */ + Map getTabInfo(String groupType); + + /** + * 保存自定义字段 + * + * @param data + * @return + */ + int saveFields(String data); + } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index f7bc2409..6410d187 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -254,7 +254,7 @@ public class CompServiceImpl extends Service implements CompService { // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_COMPEXT)); // 处理明细表 - resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, id, viewAttr, false)); + resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId), JCL_ORG_COMPEXT_DT1, id, viewAttr, false)); Map apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 71f97b2c..e5607405 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -307,7 +307,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_DEPTEXT)); // 处理明细表 - resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, id, viewAttr, false)); + resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId), JCL_ORG_DEPTEXT_DT1, id, viewAttr, false)); Map apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 4f2ea7c1..92070e07 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -6,6 +6,7 @@ import com.engine.organization.entity.TopTab; import com.engine.organization.entity.codesetting.po.CodeRulePO; import com.engine.organization.entity.extend.ExtendInfoOperateType; import com.engine.organization.entity.extend.bo.ExtendInfoBO; +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.mapper.codesetting.CodeRuleMapper; @@ -116,10 +117,15 @@ public class ExtServiceImpl extends Service implements ExtService { } @Override - public List> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel) { + public List> getExtendTables(User user, String extendType, Long groupId, String tableName, long id, int viewAttr, boolean showLabel) { List> tables = new ArrayList<>(); + List infoPOList = new ArrayList<>(); + // 查询明细表 + List extendGroupList = getExtendGroupMapper().listGroupByPid(groupId); + for (ExtendGroupPO extendGroup : extendGroupList) { + infoPOList.addAll(getExtendInfoMapper().listFields(extendType, extendGroup.getId() + "", tableName, "")); + } // 查询所有分布模块,拓展明细表信息 - List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ""); Map> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); // 遍历Map,组装数据 for (Map.Entry> entry : groupMap.entrySet()) { @@ -132,7 +138,7 @@ public class ExtServiceImpl extends Service implements ExtService { // 浏览按钮添加filespan字段 String fields = entry.getValue().stream().map(item -> { - if (BROWSER_TYPE == item.getControlType()) { + if (BROWSER_TYPE.equals(item.getControlType())) { return item.getFieldName() + "," + item.getFieldName() + "span"; } return item.getFieldName(); @@ -160,12 +166,15 @@ public class ExtServiceImpl extends Service implements ExtService { infoPOList.addAll(infoPOList1); List ids = infoPOList.stream().map(ExtendInfoPO::getExtendGroupId).collect(Collectors.toList()); List extendTitles = getExtendTitleMapper().getTitlesByIds(ids); - Set extendGroups = extendTitles.stream().map(ExtendTitlePO::getGroupid).collect(Collectors.toSet()); + Set groupIds = extendTitles.stream().map(ExtendTitlePO::getGroupId).collect(Collectors.toSet()); + List extendGroupList = getExtendGroupMapper().listByType(extendType); // 拓展信息 - if (CollectionUtils.isNotEmpty(extendGroups)) { - for (Long groupId : extendGroups) { - topTabs.add(TopTab.builder().color("#000000").groupId(groupId + "").showcount(false).title(getExtendGroupMapper().getGroupNameById(groupId + "")).viewCondition(groupId + "").build()); + if (CollectionUtils.isNotEmpty(extendGroupList) && CollectionUtils.isNotEmpty(groupIds)) { + for (ExtendGroupPO extendGroup : extendGroupList) { + if (groupIds.contains(extendGroup.getId())) { + topTabs.add(TopTab.builder().color("#000000").groupId(extendGroup.getId().toString()).showcount(false).title(extendGroup.getGroupName()).viewCondition(extendGroup.getId().toString()).build()); + } } } return topTabs; diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index d9d0bc78..74d48918 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -1,15 +1,26 @@ package com.engine.organization.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.engine.core.impl.Service; import com.engine.organization.entity.extend.bo.ExtendGroupBO; import com.engine.organization.entity.extend.po.ExtendGroupPO; +import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; import com.engine.organization.enums.ModuleTypeEnum; 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.service.FieldDefinedService; +import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; +import com.weaver.general.Util; +import org.apache.commons.lang.StringUtils; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -18,6 +29,13 @@ import java.util.List; * @Version V1.0 **/ public class FieldDefinedServiceImpl extends Service implements FieldDefinedService { + private ExtendTitleMapper getExtendTitleMapper() { + return MapperProxyFactory.getProxy(ExtendTitleMapper.class); + } + + private ExtendInfoMapper getExtendInfoMapper() { + return MapperProxyFactory.getProxy(ExtendInfoMapper.class); + } @Override public List getTree(ModuleTypeEnum moduleTypeEnum) { @@ -25,4 +43,48 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ List extendGroupPOS = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(extendType); return ExtendGroupBO.buildTypeTree(extendGroupPOS); } + + @Override + public Map getTabInfo(String groupType) { + OrganizationAssert.notBlank(groupType, "分组信息有误,请确认"); + Map datas = new HashMap<>(); + Long groupId = Long.parseLong(groupType); + List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupId); + List> tabs = new ArrayList<>(); + int idx = 1; + for (ExtendTitlePO extendTitle : extendTitleList) { + Map tab = new HashMap<>(); + tab.put("tabkey", idx++); + tab.put("title", extendTitle.getTitle()); + tab.put("isShow", extendTitle.getIsShow()); + tab.put("groupid", extendTitle.getGroupId()); + tab.put("viewAttr", extendTitle.getGroupId() < 0 ? 1 : 2); + tab.put("editable", editTable(extendTitle.getId())); + tabs.add(tab); + } + datas.put("status", "1"); + datas.put("tabs", tabs); + return datas; + } + + @Override + public int saveFields(String data) { + if (StringUtils.isEmpty(data)) { + return 0; + } + JSONObject jsonObject = JSON.parseObject(data); + String groupType = Util.null2String(jsonObject.getString("groupType")); + String groupId = Util.null2String(jsonObject.getString("groupId")); + return 0; + } + + /** + * 判断该分组下是否有字段 + * + * @param id + * @return + */ + private boolean editTable(Long id) { + return getExtendInfoMapper().countFieldsByGroupId(id) > 0; + } } diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index f38a2abd..b52f7c2f 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -291,7 +291,7 @@ public class JobServiceImpl extends Service implements JobService { // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_JOBEXT)); // 处理明细表 - List> extendTables = getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, id, viewAttr, false); + List> extendTables = getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId),JCL_ORG_JOBEXT_DT1, id, viewAttr, false); Map tableMap = new HashMap<>(); tableMap.put("hide", false); diff --git a/src/com/engine/organization/web/FieldDefinedController.java b/src/com/engine/organization/web/FieldDefinedController.java index bdac0654..216c2734 100644 --- a/src/com/engine/organization/web/FieldDefinedController.java +++ b/src/com/engine/organization/web/FieldDefinedController.java @@ -1,5 +1,6 @@ package com.engine.organization.web; +import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.util.response.ReturnResult; @@ -15,6 +16,7 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; +import java.util.Map; /** * @Author weaver_cl @@ -25,7 +27,7 @@ import javax.ws.rs.core.MediaType; public class FieldDefinedController { private FieldDefinedWrapper getFieldDefinedWrapper(User user) { - return ServiceUtil.getService(FieldDefinedWrapper.class,user); + return ServiceUtil.getService(FieldDefinedWrapper.class, user); } @GET @@ -40,4 +42,18 @@ public class FieldDefinedController { return ReturnResult.exceptionHandle(e.getMessage()); } } + + @GET + @Path("/getTabInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getTabInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String groupType = (String) map.get("groupType"); + return ReturnResult.successed(getFieldDefinedWrapper(user).getTabInfo(groupType)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } } diff --git a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java index 3f9a2a89..d54e121d 100644 --- a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java +++ b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java @@ -10,6 +10,7 @@ import com.engine.organization.util.response.ReturnResult; import weaver.hrm.User; import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -20,7 +21,7 @@ import java.util.List; public class FieldDefinedWrapper extends Service { private FieldDefinedService getFieldDefinedService(User user) { - return ServiceUtil.getService(FieldDefinedServiceImpl.class,user); + return ServiceUtil.getService(FieldDefinedServiceImpl.class, user); } @@ -28,4 +29,14 @@ public class FieldDefinedWrapper extends Service { List treeDTOS = getFieldDefinedService(user).getTree(moduleTypeEnum); return ReturnResult.successed(treeDTOS); } + + /** + * 获取标题分组 + * + * @param groupType + * @return + */ + public Map getTabInfo(String groupType) { + return getFieldDefinedService(user).getTabInfo(groupType); + } }