diff --git a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml index 7da508c4..2aa5a5ad 100644 --- a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml @@ -40,12 +40,14 @@ and extend_type = #{extendType} + order by show_order - + update jcl_field_extendgroup group_name=#{name}, @@ -151,7 +156,7 @@ WHERE id = #{id} AND delete_type = 0 - + update jcl_field_extendgroup delete_type=1, @@ -159,7 +164,7 @@ WHERE id = #{id} AND delete_type = 0 - + update jcl_field_extendgroup group_name=#{groupName}, diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 6410d187..28f232f8 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -69,7 +69,7 @@ public class CompServiceImpl extends Service implements CompService { /** * 公司/分部主表title指定ID */ - private static final Long GROUP_ID = -1L; + private static final Long GROUP_ID = 1L; private CompMapper getCompMapper() { return MapperProxyFactory.getProxy(CompMapper.class); @@ -243,7 +243,7 @@ public class CompServiceImpl extends Service implements CompService { if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { - addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_COMPEXT : JCL_ORG_COMP, viewAttr, id, extendTitle.getId() + "", "comp_no"))); + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_COMP : JCL_ORG_COMPEXT, viewAttr, id, extendTitle.getId() + "", "comp_no"))); } } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index e5607405..798f3350 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -80,7 +80,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService /** * 部门主表title指定ID */ - private static final Long GROUP_ID = -2L; + private static final Long GROUP_ID = 2L; private DepartmentMapper getDepartmentMapper() { @@ -296,7 +296,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId)); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { - addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_DEPTEXT : JCL_ORG_DEPT, viewAttr, id, extendTitle.getId().toString(), "dept_no"))); + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_DEPT : JCL_ORG_DEPTEXT, viewAttr, id, extendTitle.getId().toString(), "dept_no"))); } } diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index 03f67704..605fd9c8 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -32,6 +32,7 @@ import weaver.systeminfo.SystemEnv; import weaver.workflow.field.BrowserComInfo; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -427,33 +428,37 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ @Override public void deleteTree(Long id) { MapperProxyFactory.getProxy(ExtendGroupMapper.class).delete(id); - //明细表删除字段信息 todo - + //明细表删除字段信息、删除表结构 + ExtendGroupPO extendGroupPO = getExtendGroupMapper().getGroupById(id); + List extendInfoList = getExtendInfoMapper().listFields(extendGroupPO.getExtendType().toString(), extendGroupPO.getId().toString(), ExtendGroupBO.getTableNameByGroupPO(extendGroupPO), ""); + List ids = extendInfoList.stream().map(ExtendInfoPO::getId).collect(Collectors.toList()); + // 删除数据 + dropColumns(ids, extendGroupPO, extendInfoList); } @Override public void saveTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { - List collect = MapperProxyFactory.getProxy(ExtendGroupMapper.class) - .listGroupByPid(fieldTypeTreeParam.getParentId()).stream().map(ExtendGroupPO::getId).collect(Collectors.toList()); + Set collect = MapperProxyFactory.getProxy(ExtendGroupMapper.class) + .listGroupByPid(fieldTypeTreeParam.getParentId()).stream().map(ExtendGroupPO::getId).collect(Collectors.toSet()); Integer extendType = moduleTypeEnum.getValue(); List extendGroupPOS = JSONArray.parseArray(fieldTypeTreeParam.getData(), ExtendGroupPO.class); List collect1 = extendGroupPOS.stream().map(ExtendGroupPO::getId).collect(Collectors.toList()); - Set removeSet = new HashSet<>(); collect1.forEach(e -> { - if (!collect.contains(e)) { - removeSet.add(e); + if (collect.contains(e)) { + collect.remove(e); } }); - if (CollectionUtils.isNotEmpty(removeSet)) { - MapperProxyFactory.getProxy(ExtendGroupMapper.class).batchDelete(removeSet); + if (CollectionUtils.isNotEmpty(collect)) { + MapperProxyFactory.getProxy(ExtendGroupMapper.class).batchDelete(collect); } - int showOrder = 0; + AtomicInteger showOrder = new AtomicInteger(0); extendGroupPOS.forEach(e -> { + showOrder.getAndIncrement(); e.setExtendType(extendType); e.setPid(fieldTypeTreeParam.getParentId()); - e.setShowOrder(showOrder + 1); + e.setShowOrder(showOrder.get()); e.setIsSystemDefault(1); e.setCreator((long) user.getUID()); e.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); @@ -474,26 +479,37 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ public void deleteFieldDefined(ExtendFieldSearchParam param) { Collection ids = param.getId(); Long groupType = param.getGroupType(); - ExtendGroupPO groupById = getExtendGroupMapper().getGroupById(groupType); + ExtendGroupPO extendGroupPO = getExtendGroupMapper().getGroupById(groupType); List extendInfoList = getExtendInfoMapper().getExtendInfosByIds(ids); + dropColumns(ids, extendGroupPO, extendInfoList); + + } + + @Override + public void changeGroup(ExtendInfoChangeParam param) { + + } + + /** + * 删除数据及表结构 + * + * @param ids + * @param extendGroupPO + * @param extendInfoList + */ + private void dropColumns(Collection ids, ExtendGroupPO extendGroupPO, List extendInfoList) { // 删除数据 getExtendInfoMapper().deleteExtendInfoByIds(ids); // 删除表结构 for (ExtendInfoPO extendInfoPO : extendInfoList) { getExtendInfoMapper().deleteTableColumn(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); // 明细表浏览按钮,额外删除span字段 - if (null != groupById.getPid() && 3 == extendInfoPO.getControlType()) { + if (null != extendGroupPO.getPid() && 3 == extendInfoPO.getControlType()) { getExtendInfoMapper().deleteTableColumn(extendInfoPO.getTableName(), extendInfoPO.getFieldName() + "span"); } } - - } - - @Override - public void changeGroup(ExtendInfoChangeParam param) { - } private ExtendTitlePO buildExtendTitleType(ExtendGroupPO extendGroupPO, Integer max) { diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index bbeb22c3..c6ce1991 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -97,7 +97,7 @@ public class JobServiceImpl extends Service implements JobService { /** * 岗位主表title指定ID */ - private static final Long GROUP_ID = -3L; + private static final Long GROUP_ID = 3L; private JobMapper getJobMapper() { return MapperProxyFactory.getProxy(JobMapper.class); @@ -281,7 +281,7 @@ public class JobServiceImpl extends Service implements JobService { List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { - addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_JOBEXT : JCL_ORG_JOB, viewAttr, id, extendTitle.getId().toString(), "job_no"))); + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", GROUP_ID.equals(Long.parseLong(groupId)) ? JCL_ORG_JOB : JCL_ORG_JOBEXT, viewAttr, id, extendTitle.getId().toString(), "job_no"))); } } HashMap resultMap = new HashMap<>();