From 445507d10d71353c0e1a0e46699afab4e110812e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 17 Jun 2022 10:54:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E7=BB=93=E6=9E=84=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/extend/po/ExtendGroupPO.java | 2 ++ .../entity/extend/po/ExtendInfoPO.java | 2 ++ .../entity/extend/po/ExtendTitlePO.java | 1 + .../mapper/extend/ExtendInfoMapper.java | 9 ++++++- .../mapper/extend/ExtendInfoMapper.xml | 27 +++++++++++++++++++ .../service/impl/FieldDefinedServiceImpl.java | 17 +++++++++--- .../web/FieldDefinedController.java | 13 +++++++++ .../wrapper/FieldDefinedWrapper.java | 9 +++++-- 8 files changed, 74 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java b/src/com/engine/organization/entity/extend/po/ExtendGroupPO.java index 5e549ee3..31ebeaf6 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 systemGroup; + 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..155e8693 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 systemColumn; + 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..232ae548 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 systemDefault; private Long creator; private Integer deleteType; 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..745ccb88 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -205,6 +205,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/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index 91b924c7..2b7b128b 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; @@ -76,7 +77,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ 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("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()) { @@ -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"); + } + } } 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); + } }