diff --git a/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java b/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java index 5b64d25a..e890c1ba 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendGroupBO.java @@ -23,7 +23,7 @@ public class ExtendGroupBO { public static List buildTypeTree(List extendGroupPOS) { - if(CollectionUtils.isEmpty(extendGroupPOS)){ + if (CollectionUtils.isEmpty(extendGroupPOS)) { return Collections.emptyList(); } @@ -42,10 +42,12 @@ public class ExtendGroupBO { .build()).collect(Collectors.toList()); //获取非一级 - Map> collects = typeTreeVOS.stream().filter(item -> item.getPid() != null).collect(Collectors.groupingBy(TypeTreeVO :: getPid)); + Map> collects = typeTreeVOS.stream().filter(item -> item.getPid() != null).collect(Collectors.groupingBy(TypeTreeVO::getPid)); - return typeTreeVOS.stream().peek(e -> {e.setChilds(collects.get(e.getKey())); e.setHaschild(collects.get(e.getKey()) != null && collects.get(e.getKey()).size() > 0); - }).filter(item -> item.getPid() == null).collect(Collectors.toList()); + return typeTreeVOS.stream().peek(e -> { + e.setChilds(collects.get(e.getKey())); + e.setHaschild(collects.get(e.getKey()) != null && collects.get(e.getKey()).size() > 0); + }).filter(item -> item.getPid() == null).collect(Collectors.toList()); } @@ -76,7 +78,7 @@ public class ExtendGroupBO { break; } - if (extendGroupPO.getId() < 0) { + if (extendGroupPO.getIsSystemDefault() == 0) { } else if (null == extendGroupPO.getPid()) { tableName += "EXT"; diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 339d2fdb..2690a98b 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -108,6 +108,8 @@ public class ExtendInfoBO { .browserShow(1) .customValue(infoFieldParam.getFieldType().toString()) .showOrder(showOrder) + // 非系统初始化字段 + .isSystemDefault(1) .creator((long) user.getUID()) .deleteType(0) .createTime(new Date()) diff --git a/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java b/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java index 5e549ee3..2bbffbd0 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java @@ -42,6 +42,8 @@ public class ExtendGroupPO { private Integer showOrder; + private Integer isSystemDefault; + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index d58a7f8b..74d5da3e 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -109,6 +109,8 @@ public class ExtendInfoPO { */ private Integer showOrder; + private Integer isSystemDefault; + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java b/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java index fee7e4ef..884c355f 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendTitlePO.java @@ -41,6 +41,7 @@ public class ExtendTitlePO { */ private String isShow; + private Integer isSystemDefault; private Long creator; private Integer deleteType; diff --git a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml index 98ac86a4..f17809e6 100644 --- a/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendGroupMapper.xml @@ -5,6 +5,8 @@ + + @@ -19,6 +21,7 @@ , t.pid , t.extend_type , t.group_name + , t.is_system_default , t.creator , t.show_order , t.delete_type @@ -101,6 +104,9 @@ show_order, + + is_system_default, + @@ -130,6 +136,9 @@ #{showOrder}, + + #{isSystemDefault}, + diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java index c6e4e082..528c48f7 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.java @@ -3,6 +3,7 @@ package com.engine.organization.mapper.extend; import com.engine.organization.entity.extend.po.ExtendInfoPO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; /** @@ -15,7 +16,7 @@ public interface ExtendInfoMapper { List listFields(@Param("extendType") String extendType, @Param("extendGroupId") String extendGroupId, @Param("tableName") String tableName, @Param("operateType") String operateType); - int countFieldsByGroupId(@Param("groupId") Long groupId); + int countFieldsByGroupId(@Param("tableName") String tableName, @Param("groupId") Long groupId); int updateExtendInfo(ExtendInfoPO extendInfo); @@ -28,5 +29,11 @@ public interface ExtendInfoMapper { List listFieldsByTableName(@Param("tableName") String tableName, @Param("fieldName") String fieldName); + int deleteExtendInfoByIds(@Param("ids") Collection ids); + + void deleteTableColumn(@Param("tableName") String tableName, @Param("fieldName") String fieldName); + + List getExtendInfosByIds(@Param("ids") Collection ids); + } diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index 666e9c91..865d7841 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -20,6 +20,7 @@ + @@ -48,6 +49,7 @@ , t.browser_show , t.custom_value , t.show_order + , t.is_system_default , t.creator , t.delete_type , t.create_time @@ -121,6 +123,9 @@ show_order, + + is_system_default, + @@ -186,6 +191,9 @@ #{showOrder}, + + #{isSystemDefault}, + @@ -205,6 +213,22 @@ WHERE id = #{id} AND delete_type = 0 + + UPDATE jcl_field_extendinfo + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + ALTER TABLE ${tableName} + DROP + COLUMN + ${fieldName}; + + + \ 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 3b01efe0..2a72c9f0 100644 --- a/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendTitleMapper.xml @@ -7,6 +7,7 @@ + @@ -22,6 +23,7 @@ , t.title , t.show_order , t.is_show + , t.is_system_default , t.creator , t.delete_type , t.create_time @@ -57,6 +59,9 @@ is_show, + + is_system_default, + @@ -84,6 +89,9 @@ #{isShow}, + + #{isSystemDefault}, + diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index f5860a1e..8a0f89b0 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -66,6 +66,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ OrganizationAssert.notBlank(groupType, "分组信息有误,请确认"); Map datas = new HashMap<>(); Long groupId = Long.parseLong(groupType); + String tableName = ExtendGroupBO.getTableNameByGroupPO(getExtendGroupMapper().getGroupById(groupId)); List extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupId); List> tabs = new ArrayList<>(); int idx = 1; @@ -75,8 +76,8 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ tab.put("title", extendTitle.getTitle()); tab.put("isShow", extendTitle.getIsShow()); tab.put("groupid", extendTitle.getId()); - tab.put("viewAttr", extendTitle.getGroupId() < 0 ? 1 : 2); - tab.put("editable", getExtendInfoMapper().countFieldsByGroupId(extendTitle.getId()) == 0); + tab.put("viewAttr", extendTitle.getIsSystemDefault() == 0 ? 1 : 2); + tab.put("editable", getExtendInfoMapper().countFieldsByGroupId(tableName, extendTitle.getId()) == 0); tabs.add(tab); } datas.put("status", "1"); @@ -102,7 +103,6 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ for (int i = 0; i < records.size(); i++) { // 存在ID则更新 ,不存在ID则增加 ExtendInfoFieldParam infoFieldParam = JSONObject.toJavaObject((JSONObject) records.get(i), ExtendInfoFieldParam.class); - // TODO ExtendInfoPO extendInfo = ExtendInfoBO.convertFieldParam2ExtendInfo(user, infoFieldParam, extendGroup, extendGroupId, i + 1); if (null != extendInfo.getId()) { @@ -113,6 +113,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ // 获取操作表最大id,生成字段名 Long maxId = getExtendInfoMapper().getMaxId(); extendInfo.setFieldName("field" + (maxId + 1)); + extendInfo.setIsSystemDefault(1); updateCount += getExtendInfoMapper().insertExtendInfo(extendInfo); // 新增表结构 getExtendInfoMapper().addTableColumn(extendInfo.getTableName(), extendInfo.getFieldName(), extendInfo.getFieldType()); @@ -152,6 +153,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ } if (null == extendTitle.getId()) { + extendTitle.setIsSystemDefault(1); extendTitle.setCreator((long) user.getUID()); extendTitle.setCreateTime(new Date()); extendTitle.setDeleteType(0); @@ -185,6 +187,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ extendTitle.setCreator((long) user.getUID()); extendTitle.setCreateTime(new Date()); extendTitle.setDeleteType(0); + extendTitle.setIsSystemDefault(1); getExtendTitleMapper().insertIgnoreNull(extendTitle); ids.add(extendTitle.getId()); @@ -242,9 +245,8 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ String fieldIdRowKey; int showOrder = extendInfoPO.getShowOrder(); boolean isUsed = false; - // TODO 去除脏数据后调整为extendInfoPO.getId() > 0 - // 系统字段id<0 - boolean isSysField = extendInfoPO.getExtendGroupId() < 0; + // 是否为系统字段 + boolean isSysField = extendInfoPO.getIsSystemDefault() == 0; if (isSysField) { fieldIdRowKey = fieldId + "_hrm"; } else { @@ -253,9 +255,6 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ if (!isSysField) { isUsed = ExtendInfoBO.fieldIsUsed(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); } - // TODO 去除脏数据后调整为extendInfoPO.getId() > 0 - boolean allowHide = extendInfoPO.getExtendGroupId() > 0; - boolean allowModify = extendInfoPO.getExtendGroupId() > 0; BrowserComInfo BrowserComInfo = new BrowserComInfo(); List fieldTypeObj = new ArrayList<>(); @@ -353,9 +352,9 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ //允许个人修改字段check框属性 Map checkPropsModifyInfo = new HashMap<>(); - checkPropsEnableInfo.put("viewAttr", allowHide ? 2 : 1); - checkPropsModifyInfo.put("viewAttr", allowModify ? 2 : 1); - checkPropsRequiredInfo.put("viewAttr", allowHide ? 2 : 1); + checkPropsEnableInfo.put("viewAttr", !isSysField ? 2 : 1); + checkPropsModifyInfo.put("viewAttr", !isSysField ? 2 : 1); + checkPropsRequiredInfo.put("viewAttr", !isSysField ? 2 : 1); checkPropsInfo.put("enable", checkPropsEnableInfo); checkPropsInfo.put("required", checkPropsRequiredInfo); @@ -454,6 +453,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ e.setPid(fieldTypeTreeParam.getParentId()); e.setIsShow(fieldTypeTreeParam.getIsShow()); e.setShowOrder(showOrder + 1); + e.setIsSystemDefault(1); e.setCreator((long) user.getUID()); e.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); e.setCreateTime(new Date()); @@ -472,10 +472,21 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ @Override public void deleteFieldDefined(ExtendFieldSearchParam param) { Collection ids = param.getId(); - Long groupId = param.getGroupId(); Long groupType = param.getGroupType(); + ExtendGroupPO groupById = getExtendGroupMapper().getGroupById(groupType); + + List extendInfoList = getExtendInfoMapper().getExtendInfosByIds(ids); + // 删除数据 + getExtendInfoMapper().deleteExtendInfoByIds(ids); + // 删除表结构 + for (ExtendInfoPO extendInfoPO : extendInfoList) { + getExtendInfoMapper().deleteTableColumn(extendInfoPO.getTableName(), extendInfoPO.getFieldName()); + // 明细表浏览按钮,额外删除span字段 + if (null != groupById.getPid() && 3 == extendInfoPO.getControlType()) { + getExtendInfoMapper().deleteTableColumn(extendInfoPO.getTableName(), extendInfoPO.getFieldName() + "span"); + } - + } } @@ -490,6 +501,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ .title(extendGroupPO.getGroupName()) .showOrder(max) .isShow("1") + .isSystemDefault(1) .creator((long) user.getUID()) .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) .createTime(new Date()) @@ -502,6 +514,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ .extendType(moduleTypeEnum.getValue()) .groupName(fieldTypeTreeParam.getName()) .showOrder(++max) + .isSystemDefault(1) .creator((long) user.getUID()) .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) .createTime(new Date()) diff --git a/src/com/engine/organization/web/FieldDefinedController.java b/src/com/engine/organization/web/FieldDefinedController.java index f227411d..491e0111 100644 --- a/src/com/engine/organization/web/FieldDefinedController.java +++ b/src/com/engine/organization/web/FieldDefinedController.java @@ -176,4 +176,17 @@ public class FieldDefinedController { return ReturnResult.exceptionHandle(e.getMessage()); } } + + @POST + @Path("/{moduleTypeEnum}/del") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteFieldDefined(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("moduleTypeEnum") ModuleTypeEnum moduleTypeEnum, @RequestBody ExtendFieldSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + getFieldDefinedWrapper(user).deleteFieldDefined(param); + return ReturnResult.successed(); + } 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 7d3cf7f4..ee0060a6 100644 --- a/src/com/engine/organization/wrapper/FieldDefinedWrapper.java +++ b/src/com/engine/organization/wrapper/FieldDefinedWrapper.java @@ -35,6 +35,7 @@ public class FieldDefinedWrapper extends Service { /** * 获取标题分组 + * * @param groupType * @return */ @@ -54,6 +55,7 @@ public class FieldDefinedWrapper extends Service { /** * 新建分组 + * * @param param * @return */ @@ -63,12 +65,11 @@ public class FieldDefinedWrapper extends Service { public ReturnResult changeTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) { - getFieldDefinedService(user).changeTree(moduleTypeEnum,fieldTypeTreeParam); + getFieldDefinedService(user).changeTree(moduleTypeEnum, fieldTypeTreeParam); return ReturnResult.successed(); } - public int deleteTitle(Long id) { return getFieldDefinedService(user).deleteTitle(id); } @@ -91,4 +92,8 @@ public class FieldDefinedWrapper extends Service { public Map getFieldDefinedInfo(ExtendFieldSearchParam param) { return getFieldDefinedService(user).getFieldDefinedInfo(param); } + + public void deleteFieldDefined(ExtendFieldSearchParam param) { + getFieldDefinedService(user).deleteFieldDefined(param); + } }