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;
}
}