From 4c74b583bf675cf50b631dbf805f3273a3b1aea6 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Mon, 24 Oct 2022 19:25:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9D=97=E7=AE=A1=E7=90=86=E5=88=86?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 4 +- docs/表结构SQL/Oracle.sql | 10 +- docs/表结构SQL/SqlServer.sql | 4 +- .../entity/detach/vo/ManagerDetachVO.java | 48 ++++ .../mapper/detach/ManagerDetachMapper.java | 11 + .../mapper/detach/ManagerDetachMapper.xml | 231 ++++++++++++++++++ .../mapper/employee/EmployeeMapper.java | 4 + .../mapper/employee/EmployeeMapper.xml | 27 ++ .../service/ManagerDetachService.java | 16 ++ .../impl/ManagerDetachServiceImpl.java | 73 ++++++ .../web/ManagerDetachController.java | 58 ++++- .../wrapper/ManagerDetachWrapper.java | 37 ++- 12 files changed, 508 insertions(+), 15 deletions(-) create mode 100644 src/com/engine/organization/mapper/detach/ManagerDetachMapper.java create mode 100644 src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index a4da50a8..2b9a0909 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -549,8 +549,8 @@ create table JCL_ORG_ITEM ( create table JCL_ORG_DETACH ( id int auto_increment not null, type int null, - ec_manger text not null, - jcl_manger text not null, + ec_manager text not null, + jcl_manager text not null, ec_rolelevel text not null, jcl_rolelevel text not null, module text not null, diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index 187d01f6..74245544 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -491,11 +491,11 @@ CREATE TABLE JCL_ORG_HRMRELATION ( create table JCL_ORG_DETACH ( id number not null, type number null, - ec_manger clob not null, - jcl_manger clob not null, - ec_rolelevel clob not null, - jcl_rolelevel clob not null, - module clob not null, + ec_manager clob not null, + jcl_manager clob not null, + ec_rolelevel varchar(4000) not null, + jcl_rolelevel varchar(4000) not null, + module varchar(4000) not null, creator number null, delete_type number null, create_time date null, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index d397a3bc..2db5c0cb 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -522,8 +522,8 @@ CREATE TABLE JCL_ORG_MAP ( create table JCL_ORG_DETACH ( id int IDENTITY(1,1) not null, type int null, - ec_manger text not null, - jcl_manger text not null, + ec_manager text not null, + jcl_manager text not null, ec_rolelevel text not null, jcl_rolelevel text not null, module text not null, diff --git a/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java b/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java index c0006a92..b87954dd 100644 --- a/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java +++ b/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java @@ -1,11 +1,59 @@ package com.engine.organization.entity.detach.vo; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; +import com.engine.organization.annotation.OrganizationTableOperate; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + /** * @Author weaver_cl * @Description: * @Date 2022/10/21 * @Version V1.0 **/ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@OrganizationTable(pageId = "0bf9b7bc-c8b0-4225-bf28-4cd015d96e98", + fields = "t.id," + + "t.ec_manager," + + "t.ec_rolelevel," + + "t.module," + + "t.creator," + + "t.delete_type," + + "t.create_time," + + "t.update_time", + fromSql = "FROM jcl_org_detach t ", + orderby = "id", + sortway = "asc", + primarykey = "id", + operates = { + @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(index = "1", text = "删除") + }, + tableType = WeaTableType.CHECKBOX +) public class ManagerDetachVO { + + @OrganizationTableColumn(column = "id", display = false) + private Long id; + + + @OrganizationTableColumn(text = "管理员", width = "20%", column = "ec_manager" ) + private String ecManager; + + @OrganizationTableColumn(text = "可管理组织机构", width = "40%", column = "ec_rolelevel") + private String ecRolelevel; + + + @OrganizationTableColumn(text = "可管理模块", width = "40%", column = "module") + private String module; + } diff --git a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java new file mode 100644 index 00000000..8d56eaaa --- /dev/null +++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java @@ -0,0 +1,11 @@ +package com.engine.organization.mapper.detach; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/24 + * @Version V1.0 + **/ +public interface ManagerDetachMapper { + +} diff --git a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml new file mode 100644 index 00000000..55ca3517 --- /dev/null +++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.scheme_no + , t.scheme_name + , t.scheme_description + , t.forbidden_tag + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + + + + + + + + + + INSERT INTO jcl_org_scheme + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + scheme_no, + + + scheme_name, + + + scheme_description, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{schemeNo}, + + + #{schemeName}, + + + #{schemeDescription}, + + 0, + + + + + + select JCL_ORG_SCHEME_ID.currval from dual + + INSERT INTO jcl_org_scheme + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + scheme_no, + + + scheme_name, + + + scheme_description, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{schemeNo}, + + + #{schemeName}, + + + #{schemeDescription}, + + 0, + + + + + update jcl_org_scheme + + creator=#{creator}, + update_time=#{updateTime}, + scheme_no=#{schemeNo}, + scheme_name=#{schemeName}, + scheme_description=#{schemeDescription}, + + WHERE id = #{id} AND delete_type = 0 + + + + update jcl_org_scheme + + forbidden_tag=#{forbiddenTag}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_org_scheme + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/employee/EmployeeMapper.java b/src/com/engine/organization/mapper/employee/EmployeeMapper.java index bac40ab8..62d67b67 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.java +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.java @@ -2,6 +2,8 @@ package com.engine.organization.mapper.employee; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @Author weaver_cl @@ -12,4 +14,6 @@ import org.apache.ibatis.annotations.Param; public interface EmployeeMapper { String getEmployeeNameById(@Param("employeeId") Long id); + + List getResourceIds(@Param("lastName") String lastName); } diff --git a/src/com/engine/organization/mapper/employee/EmployeeMapper.xml b/src/com/engine/organization/mapper/employee/EmployeeMapper.xml index e00791d6..bb06ca67 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.xml +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.xml @@ -2,10 +2,37 @@ + + + AND t.lastname like CONCAT('%',#{lastName},'%') + + + + + AND t.lastname like '%'||#{lastName}||'%' + + + + + AND t.lastname like '%'+#{lastName}+'%' + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/ManagerDetachService.java b/src/com/engine/organization/service/ManagerDetachService.java index 42c6d4b0..c3b6185e 100644 --- a/src/com/engine/organization/service/ManagerDetachService.java +++ b/src/com/engine/organization/service/ManagerDetachService.java @@ -1,5 +1,7 @@ package com.engine.organization.service; +import java.util.Map; + /** * @Author weaver_cl * @Description: @@ -7,4 +9,18 @@ package com.engine.organization.service; * @Version V1.0 **/ public interface ManagerDetachService { + + /** + * 获取table列表 + * @param params + * @return + */ + Map listPage(Map params); + + /** + * 新建编辑表单 + * @param id + * @return + */ + Map getForm(Integer id); } diff --git a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java index 2d91fd7c..006731f9 100644 --- a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java +++ b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java @@ -1,7 +1,22 @@ package com.engine.organization.service.impl; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.detach.vo.ManagerDetachVO; +import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.service.ManagerDetachService; +import com.engine.organization.util.HasRightUtil; +import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -10,4 +25,62 @@ import com.engine.organization.service.ManagerDetachService; * @Version V1.0 **/ public class ManagerDetachServiceImpl extends Service implements ManagerDetachService { + + + private static final String RIGHT_NAME = "MangerDeatch:All"; + + @Override + public Map listPage(Map params) { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + if (!hasRight) { + return resultMap; + } + OrganizationWeaTable table = new OrganizationWeaTable<>(user, ManagerDetachVO.class); + String sqlWhere = buildSqlWhere(params); + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + resultMap.putAll(result.getResultMap()); + + return resultMap; + } + + @Override + public Map getForm(Integer id) { + Map apiDatas = new HashMap<>(); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + SearchConditionItem ecManager = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "管理员", "1", "ecManager", ""); + ecManager.setRules("required|string"); + SearchConditionItem ecRolelevel = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "可维护机构", "194", "ecRolelevel", ""); + ecRolelevel.setRules("required|string"); + SearchConditionItem module = OrganizationFormItemUtil.checkboxItem(user, 2, 16, 1, false, "可管理模块", "module"); + if (id != null) { + //todo + } + selectItems.add(ecManager); + selectItems.add(ecRolelevel); + selectItems.add(module); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + private String buildSqlWhere(Map params) { + String sqlWhere = " where 1 = 1"; + String lastName = (String) params.get("ecManager"); + List resourceIds = MapperProxyFactory.getProxy(EmployeeMapper.class).getResourceIds(lastName); + String ecManager = StringUtils.join(resourceIds,","); + if (StringUtils.isNotBlank(ecManager)) { + sqlWhere += " AND ec_manager in ("+ecManager+") "; + } + String ecRolelevel = (String) params.get("ecRolelevel"); + if (StringUtils.isNotBlank(ecRolelevel)) { + sqlWhere += " AND ec_rolelevel in ("+ecRolelevel+")"; + } + return sqlWhere; + } } diff --git a/src/com/engine/organization/web/ManagerDetachController.java b/src/com/engine/organization/web/ManagerDetachController.java index bb6731dc..915710a7 100644 --- a/src/com/engine/organization/web/ManagerDetachController.java +++ b/src/com/engine/organization/web/ManagerDetachController.java @@ -2,16 +2,16 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.ManagerDetachWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Map; @@ -29,7 +29,6 @@ public class ManagerDetachController { } - @GET @Path("/getTable") @Produces(MediaType.APPLICATION_JSON) @@ -42,4 +41,55 @@ public class ManagerDetachController { return ReturnResult.exceptionHandle(e); } } + + + @GET + @Path("/getTableBtn") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getTableBtn(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).getTableBtn()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).getSearchCondition()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @GET + @Path("/getForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getForm(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("id") Integer id) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).getForm(id)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/ManagerDetachWrapper.java b/src/com/engine/organization/wrapper/ManagerDetachWrapper.java index 8e43f772..2deb5ef6 100644 --- a/src/com/engine/organization/wrapper/ManagerDetachWrapper.java +++ b/src/com/engine/organization/wrapper/ManagerDetachWrapper.java @@ -1,12 +1,19 @@ package com.engine.organization.wrapper; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.organization.annotation.Log; +import com.engine.organization.enums.LogModuleNameEnum; +import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.service.ManagerDetachService; import com.engine.organization.service.impl.ManagerDetachServiceImpl; +import com.engine.organization.util.MenuBtn; +import com.engine.organization.util.OrganizationFormItemUtil; import weaver.hrm.User; -import java.util.Map; +import java.util.*; /** * @Author weaver_cl @@ -21,6 +28,32 @@ public class ManagerDetachWrapper extends Service { } public Map listPage(Map params) { - return null; + return getManagerDetachService(user).listPage(params); + } + + public Map> getTableBtn() { + return MenuBtn.getCommonBtnDatas(); + } + + public Map getSearchCondition() { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + SearchConditionItem ecManager = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "管理员名称", "ecManager"); + SearchConditionItem ecRolelevel = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "可管理组织机构", "194", "ecRolelevel", ""); + conditionItems.add(ecManager); + conditionItems.add(ecRolelevel); + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + public Map getForm(Integer id) { + return getManagerDetachService(user).getForm(id); + } + + @Log(operateType = OperateTypeEnum.DELETE,operateModule = LogModuleNameEnum.OTHER,operateDesc = "删除") + public int deleteByIds(Collection ids) { + return -1; } }