diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index ca8be925..6cffd642 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -548,10 +548,12 @@ create table JCL_ORG_ITEM ( -- JCL_ORG_DETACH create table JCL_ORG_DETACH ( id int auto_increment not null, - type int null, - manger text not null, - rolelevel text not null, - module text not null, + manager_type int null, + ec_manager int not null, + jcl_manager int not null, + ec_rolelevel text not null, + jcl_rolelevel text not null, + manage_module text not null, creator int null, delete_type int null, create_time date null, diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index fd026eb8..a142b274 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -490,10 +490,12 @@ CREATE TABLE JCL_ORG_HRMRELATION ( -- JCL_ORG_DETACH create table JCL_ORG_DETACH ( id number not null, - type number null, - manger clob not null, - rolelevel clob not null, - module clob not null, + manager_type number null, + ec_manager NUMBER not null, + jcl_manager NUMBER not null, + ec_rolelevel varchar(4000) not null, + jcl_rolelevel varchar(4000) not null, + manage_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 0cddf6f5..93a84834 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -521,10 +521,12 @@ CREATE TABLE JCL_ORG_MAP ( -- JCL_ORG_DETACH create table JCL_ORG_DETACH ( id int IDENTITY(1,1) not null, - type int null, - manger text not null, - rolelevel text not null, - module text not null, + manager_type int null, + ec_manager int not null, + jcl_manager int not null, + ec_rolelevel text not null, + jcl_rolelevel text not null, + manage_module text not null, creator int null, delete_type int null, create_time date null, diff --git a/src/com/api/organization/web/ManagerDetachController.java b/src/com/api/organization/web/ManagerDetachController.java new file mode 100644 index 00000000..9a985c6c --- /dev/null +++ b/src/com/api/organization/web/ManagerDetachController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/21 + * @Version V1.0 + **/ +@Path("/bs/hrmorganization/detach") +public class ManagerDetachController extends com.engine.organization.web.ManagerDetachController { +} diff --git a/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java b/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java new file mode 100644 index 00000000..ea79ddf8 --- /dev/null +++ b/src/com/engine/organization/entity/detach/param/ManagerDetachParam.java @@ -0,0 +1,34 @@ +package com.engine.organization.entity.detach.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/25 + * @Version V1.0 + **/ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ManagerDetachParam { + + private Integer id; + + private Integer managerType; + + private Integer ecManager; + + private Integer jclManager; + + private String ecRolelevel; + + private String jclRolelevel; + + private String manageModule; +} diff --git a/src/com/engine/organization/entity/detach/po/ManagerDetachPO.java b/src/com/engine/organization/entity/detach/po/ManagerDetachPO.java new file mode 100644 index 00000000..8ac75ee0 --- /dev/null +++ b/src/com/engine/organization/entity/detach/po/ManagerDetachPO.java @@ -0,0 +1,66 @@ +package com.engine.organization.entity.detach.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/21 + * @Version V1.0 + **/ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ManagerDetachPO { + /** + * 自增主键 + */ + private Integer id; + /** + * 管理员类型 + */ + private Integer managerType; + /** + * ec管理员 + */ + private Integer ecManager; + /** + * jcl管理员 + */ + private Integer jclManager; + /** + * ec分部 + */ + private String ecRolelevel; + /** + * jcl分部 + */ + private String jclRolelevel; + /** + * 可管理模块 + */ + private String manageModule; + /** + * 创建人 + */ + private Long creator; + /** + * 删除标记 + */ + private int deleteType; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新时间 + */ + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java b/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java new file mode 100644 index 00000000..09eb15f4 --- /dev/null +++ b/src/com/engine/organization/entity/detach/vo/ManagerDetachVO.java @@ -0,0 +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.manage_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", transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getManagerName") + private Integer ecManager; + + @OrganizationTableColumn(text = "可管理组织机构", width = "40%", column = "ec_rolelevel",transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getRoleLevel") + private String ecRolelevel; + + + @OrganizationTableColumn(text = "可管理模块", width = "40%", column = "manage_module") + private String manageModule; + +} diff --git a/src/com/engine/organization/entity/scheme/po/SchemePO.java b/src/com/engine/organization/entity/scheme/po/SchemePO.java index 1cf7918b..f1986ead 100644 --- a/src/com/engine/organization/entity/scheme/po/SchemePO.java +++ b/src/com/engine/organization/entity/scheme/po/SchemePO.java @@ -37,19 +37,19 @@ public class SchemePO { */ private int isUsed; /** - * + * 创建人 */ private Long creator; /** - * + * 删除标记 */ private int deleteType; /** - * + * 创建时间 */ private Date createTime; /** - * + * 更新时间 */ private Date updateTime; diff --git a/src/com/engine/organization/enums/LogModuleNameEnum.java b/src/com/engine/organization/enums/LogModuleNameEnum.java index 7779b220..c0115316 100644 --- a/src/com/engine/organization/enums/LogModuleNameEnum.java +++ b/src/com/engine/organization/enums/LogModuleNameEnum.java @@ -18,6 +18,7 @@ public enum LogModuleNameEnum { RESOURCE("人员管理", 11), STAFFPLAN("编制方案", 12), STAFF("编制上报", 13), + DETACH("模块管理分权", 14), OTHER("其他模块", 99); private String name; 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..5cd47c4c --- /dev/null +++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.java @@ -0,0 +1,26 @@ +package com.engine.organization.mapper.detach; + +import com.engine.organization.entity.detach.po.ManagerDetachPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/24 + * @Version V1.0 + **/ +public interface ManagerDetachMapper { + + int insertIgnoreNull(ManagerDetachPO managerDetachPO); + + int updateDetach(ManagerDetachPO managerDetachPO); + + int deleteByIds(@Param("ids") Collection ids); + + List selectByIds(@Param("ids")Collection ids); + + ManagerDetachPO getDetachById(@Param("id") Integer id); +} 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..d1ddc927 --- /dev/null +++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + t.id + , t.manager_type + , t.ec_manager + , t.jcl_manager + , t.ec_rolelevel + , t.jcl_rolelevel + , t.manage_module + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + + + + INSERT INTO jcl_org_detach + + + manager_type, + + + ec_manager, + + + jcl_manager, + + + ec_rolelevel, + + + jcl_rolelevel, + + + manage_module, + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + + #{managerType}, + + + #{ecManager}, + + + #{jclManager}, + + + #{ecRolelevel}, + + + #{jclRolelevel}, + + + #{manageModule}, + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + + + + + select JCL_ORG_DETACH_ID.currval from dual + + INSERT INTO jcl_org_detach + + + manager_type, + + + ec_manager, + + + jcl_manager, + + + ec_rolelevel, + + + jcl_rolelevel, + + + manage_module, + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + + #{managerType}, + + + #{ecManager}, + + + #{jclManager}, + + + #{ecRolelevel}, + + + #{jclRolelevel}, + + + #{manageModule}, + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + + + + update jcl_org_detach + + ec_manager=#{ecManager}, + jcl_Manager=#{jclManager}, + ec_rolelevel=#{ecRolelevel}, + jcl_rolelevel=#{jclRolelevel} + + WHERE id = #{id} AND delete_type = 0 + + + + + UPDATE jcl_org_detach + 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..0419a3cf 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.java +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.java @@ -2,6 +2,10 @@ package com.engine.organization.mapper.employee; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.List; +import java.util.Map; + /** * @Author weaver_cl @@ -12,4 +16,8 @@ import org.apache.ibatis.annotations.Param; public interface EmployeeMapper { String getEmployeeNameById(@Param("employeeId") Long id); + + List getResourceIds(@Param("lastName") String lastName); + + List> getBrowserDatas(@Param("ids") Collection ids); } diff --git a/src/com/engine/organization/mapper/employee/EmployeeMapper.xml b/src/com/engine/organization/mapper/employee/EmployeeMapper.xml index e00791d6..8419c565 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.xml +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.xml @@ -2,10 +2,46 @@ + + + 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/mapper/hrmresource/SystemDataMapper.java b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java index 19365ba4..25f5cc8e 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; +import java.util.Map; /** * @author:dxfeng @@ -18,6 +19,8 @@ public interface SystemDataMapper { String getScCompanyNameById(@Param("companyId") String companyId); + List> getBrowserDatas(@Param("ids") Collection ids); + String getScDepartmentNameById(@Param("departmentId") String departmentId); String getScHrmResourceNameById(@Param("managerId") String managerId); diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml index 18c55956..906461df 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml @@ -40,6 +40,19 @@ from hrmsubcompany where id = #{companyId} + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/ManagerDetachService.java b/src/com/engine/organization/service/ManagerDetachService.java new file mode 100644 index 00000000..c277693a --- /dev/null +++ b/src/com/engine/organization/service/ManagerDetachService.java @@ -0,0 +1,50 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.detach.param.ManagerDetachParam; + +import java.util.Collection; +import java.util.Map; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/21 + * @Version V1.0 + **/ +public interface ManagerDetachService { + + /** + * 获取table列表 + * @param params + * @return + */ + Map listPage(Map params); + + /** + * 新建编辑表单 + * @param id + * @return + */ + Map getForm(Integer id); + + /** + * 批量删除 + * @param ids + * @return + */ + int deleteByIds(Collection ids); + + /** + * 新增 + * @param param + * @return + */ + int save(ManagerDetachParam param); + + /** + * 更新 + * @param param + * @return + */ + int updateDetach(ManagerDetachParam param); +} diff --git a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java new file mode 100644 index 00000000..5aa68e4e --- /dev/null +++ b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java @@ -0,0 +1,159 @@ +package com.engine.organization.service.impl; + +import com.api.browser.bean.BrowserBean; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.detach.param.ManagerDetachParam; +import com.engine.organization.entity.detach.po.ManagerDetachPO; +import com.engine.organization.entity.detach.vo.ManagerDetachVO; +import com.engine.organization.mapper.detach.ManagerDetachMapper; +import com.engine.organization.mapper.employee.EmployeeMapper; +import com.engine.organization.mapper.hrmresource.HrmResourceMapper; +import com.engine.organization.mapper.hrmresource.SystemDataMapper; +import com.engine.organization.service.ManagerDetachService; +import com.engine.organization.util.HasRightUtil; +import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.db.DBType; +import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.relation.EcHrmRelationUtil; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; + +import java.util.*; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/21 + * @Version V1.0 + **/ +public class ManagerDetachServiceImpl extends Service implements ManagerDetachService { + + + private static final String RIGHT_NAME = "MangerDeatch:All"; + + public ManagerDetachMapper getMangeDetachMapper() { + return MapperProxyFactory.getProxy(ManagerDetachMapper.class); + } + + public HrmResourceMapper getHrmResourceMapper() { + return MapperProxyFactory.getProxy(HrmResourceMapper.class); + } + + public EmployeeMapper getEmployeeMapper() { + return MapperProxyFactory.getProxy(EmployeeMapper.class); + } + + public SystemDataMapper getSystemDataMapper(){ + return MapperProxyFactory.getProxy(SystemDataMapper.class); + } + + @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<>(); + List selectOptions = new ArrayList<>(); + SearchConditionOption moduleOption = new SearchConditionOption("0", "组织管理",true); + selectOptions.add(moduleOption); + + SearchConditionItem ecManager = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, true, "管理员", "1", "ecManager", ""); + ecManager.setRules("required|string"); + SearchConditionItem ecRolelevel = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "可维护机构", "194", "ecRolelevel", ""); + ecRolelevel.setRules("required|string"); + SearchConditionItem module = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "可管理模块", "module"); + module.setViewAttr(1); + module.setDetailtype(2); + module.setHasBorder(true); + if (id != null) { + ManagerDetachPO detachById = getMangeDetachMapper().getDetachById(id); + BrowserBean manager = ecManager.getBrowserConditionParam(); + manager.setReplaceDatas(getEmployeeMapper().getBrowserDatas(DeleteParam.builder().ids(String.valueOf(detachById.getEcManager())).build().getIds())); + ecManager.setBrowserConditionParam(manager); + BrowserBean roleLevel = ecRolelevel.getBrowserConditionParam(); + roleLevel.setReplaceDatas(getSystemDataMapper().getBrowserDatas(DeleteParam.builder().ids(String.valueOf(detachById.getEcRolelevel())).build().getIds())); + ecRolelevel.setBrowserConditionParam(roleLevel); + } + selectItems.add(ecManager); + selectItems.add(ecRolelevel); + selectItems.add(module); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public int deleteByIds(Collection ids) { + return getMangeDetachMapper().deleteByIds(ids); + } + + @Override + public int save(ManagerDetachParam param) { + ManagerDetachPO managerDetachPO = ManagerDetachPO.builder() + .managerType(0) + .ecManager(param.getEcManager()) + .jclManager(getHrmResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) + .ecRolelevel(param.getEcRolelevel()) + .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()).getId()) : null) + .manageModule("组织管理") + .creator((long)user.getUID()) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .build(); + + return getMangeDetachMapper().insertIgnoreNull(managerDetachPO); + } + + @Override + public int updateDetach(ManagerDetachParam param) { + ManagerDetachPO managerDetachPO = ManagerDetachPO.builder() + .id(param.getId()) + .ecManager(param.getEcManager()) + .jclManager(getHrmResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) + .ecRolelevel(param.getEcRolelevel()) + .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()).getId()) : null) + .build(); + return getMangeDetachMapper().updateDetach(managerDetachPO); + } + + private String buildSqlWhere(Map params) { + DBType dbType = DBType.get(new RecordSet().getDBType()); + String sqlWhere = " where delete_type = 0"; + String lastName = (String) params.get("ecManager"); + List resourceIds = MapperProxyFactory.getProxy(EmployeeMapper.class).getResourceIds(lastName); + String ecManager = StringUtils.join(resourceIds,","); + if (StringUtils.isNotBlank(lastName)) { + sqlWhere += " AND ec_manager in ("+ecManager+") "; + } + String ecRolelevel = (String) params.get("ecRolelevel"); + if (StringUtils.isNotBlank(ecRolelevel)) { + sqlWhere += " AND ec_rolelevel " +dbType.like(ecRolelevel); + } + return sqlWhere; + } +} diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index 29f349b8..12c573e9 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -224,4 +224,4 @@ public class DepartmentTriggerRunnable implements Runnable { } } } -} +} \ No newline at end of file diff --git a/src/com/engine/organization/thread/JobTriggerRunnable.java b/src/com/engine/organization/thread/JobTriggerRunnable.java index 5be8d6e6..81effe44 100644 --- a/src/com/engine/organization/thread/JobTriggerRunnable.java +++ b/src/com/engine/organization/thread/JobTriggerRunnable.java @@ -199,4 +199,4 @@ public class JobTriggerRunnable implements Runnable { } } } -} +} \ No newline at end of file diff --git a/src/com/engine/organization/transmethod/ManagerDetachTransMethod.java b/src/com/engine/organization/transmethod/ManagerDetachTransMethod.java new file mode 100644 index 00000000..7ad97512 --- /dev/null +++ b/src/com/engine/organization/transmethod/ManagerDetachTransMethod.java @@ -0,0 +1,33 @@ +package com.engine.organization.transmethod; + + +import com.engine.organization.entity.DeleteParam; +import com.engine.organization.mapper.employee.EmployeeMapper; +import com.engine.organization.mapper.hrmresource.SystemDataMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/26 + * @Version V1.0 + **/ +public class ManagerDetachTransMethod { + + public static String getManagerName(String ecManager) { + String managerName = MapperProxyFactory.getProxy(EmployeeMapper.class).getEmployeeNameById(Long.valueOf(ecManager)); + return managerName; + } + + + public static String getRoleLevel(String ecRolelevel) { + List> maps = MapperProxyFactory.getProxy(SystemDataMapper.class).getBrowserDatas(DeleteParam.builder().ids(ecRolelevel).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; + } +} diff --git a/src/com/engine/organization/web/ManagerDetachController.java b/src/com/engine/organization/web/ManagerDetachController.java new file mode 100644 index 00000000..b3e64274 --- /dev/null +++ b/src/com/engine/organization/web/ManagerDetachController.java @@ -0,0 +1,121 @@ +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.entity.detach.param.ManagerDetachParam; +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.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @Author weaver_cl + * @Description: 模块管理分权 + * @Date 2022/10/21 + * @Version V1.0 + **/ +public class ManagerDetachController { + + public ManagerDetachWrapper getManagerDetachWrapper(User user) { + return ServiceUtil.getService(ManagerDetachWrapper.class,user); + } + + + @GET + @Path("/getTable") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listScheme(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getManagerDetachWrapper(user).listPage(map)); + } catch (Exception e) { + 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); + } + } + + + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveScheme(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ManagerDetachParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).save(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/update") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateScheme(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ManagerDetachParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).updateDetach(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } +} diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index c9de8ca6..6030abdf 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -11,9 +11,11 @@ import com.engine.organization.entity.job.param.JobMergeParam; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.service.JobService; import com.engine.organization.service.impl.JobServiceImpl; import com.engine.organization.thread.JobTriggerRunnable; diff --git a/src/com/engine/organization/wrapper/ManagerDetachWrapper.java b/src/com/engine/organization/wrapper/ManagerDetachWrapper.java new file mode 100644 index 00000000..2efa8cb8 --- /dev/null +++ b/src/com/engine/organization/wrapper/ManagerDetachWrapper.java @@ -0,0 +1,88 @@ +package com.engine.organization.wrapper; + +import com.alibaba.fastjson.JSON; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.annotation.Log; +import com.engine.organization.entity.detach.param.ManagerDetachParam; +import com.engine.organization.entity.detach.po.ManagerDetachPO; +import com.engine.organization.enums.LogModuleNameEnum; +import com.engine.organization.enums.OperateTypeEnum; +import com.engine.organization.mapper.detach.ManagerDetachMapper; +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 com.engine.organization.util.OrganizationWrapper; +import com.engine.organization.util.db.MapperProxyFactory; +import weaver.hrm.User; + +import java.util.*; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/10/21 + * @Version V1.0 + **/ +public class ManagerDetachWrapper extends OrganizationWrapper { + + public ManagerDetachService getManagerDetachService(User user) { + return ServiceUtil.getService(ManagerDetachServiceImpl.class,user); + } + + public Map listPage(Map params) { + 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, "可管理组织机构", "164", "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.DETACH,operateDesc = "删除分权数据") + public int deleteByIds(Collection ids) { + List managerDetachPOS = MapperProxyFactory.getProxy(ManagerDetachMapper.class).selectByIds(ids); + int deleteByIds = getManagerDetachService(user).deleteByIds(ids); + for (ManagerDetachPO managerDetachPO : managerDetachPOS) { + writeOperateLog(new Object() { + }.getClass(), String.valueOf(managerDetachPO.getEcManager()), JSON.toJSONString(ids), "删除等级方案"); + } + return deleteByIds; + } + + + @Log(operateType = OperateTypeEnum.ADD,operateModule = LogModuleNameEnum.DETACH,operateDesc = "新增分权管理员") + public int save(ManagerDetachParam param) { + int save = getManagerDetachService(user).save(param); + writeOperateLog(new Object() { + }.getClass(), String.valueOf(param.getEcManager()), JSON.toJSONString(param), "新增分权管理员"); + return save; + } + + @Log(operateType = OperateTypeEnum.UPDATE, operateModule = LogModuleNameEnum.DETACH, operateDesc = "分权数据更新") + public int updateDetach(ManagerDetachParam param) { + ManagerDetachPO managerDetachPO = MapperProxyFactory.getProxy(ManagerDetachMapper.class).getDetachById(param.getId()); + int result = getManagerDetachService(user).updateDetach(param); + writeOperateLog(new Object() { + }.getClass(), String.valueOf(managerDetachPO.getEcManager()), JSON.toJSONString(param), managerDetachPO, MapperProxyFactory.getProxy(ManagerDetachMapper.class).getDetachById(param.getId())); + return result; + } +}