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/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 433031ab..8ccf2a27 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -32,8 +32,8 @@ public class JobBO { .jobNo(param.getJobNo()) .jobTitleName(param.getJobTitleName()) .ecJobTitle(param.getEcJobTitle()) - .ecCompany(param.getEcCompany()) - .ecDepartment(param.getEcDepartment()) + .ecCompany(param.getSubcompanyid1()) + .ecDepartment(param.getDepartmentid()) .sequenceId(param.getSequenceId()) .schemeId(param.getSchemeId()) .parentJob(param.getParentJob()) @@ -64,7 +64,7 @@ public class JobBO { .id(e.getId()) .jobNo(e.getJobNo()) .jobName(e.getJobTitleName()) - .parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobTitleName()) + //.parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobTitleName()) .parentJob(e.getParentJob()) .parentDept(e.getEcDepartment()) .build()).collect(Collectors.toList()); diff --git a/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java b/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java index ea304e53..fc15471b 100644 --- a/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java +++ b/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java @@ -32,8 +32,8 @@ public class SingleJobTreeVO { @TableTitle(title = "岗位名称", dataIndex = "jobName", key = "jobName") private String jobName; - @TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") - private String parentJobName; + //@TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") + //private String parentJobName; private Long parentJob; diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index e932beb6..d93c8a52 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -75,6 +75,10 @@ select ec_company from JCL_ORG_STAFFPLAN where delete_type = 0 + union + select ec_rolelevel + from jcl_org_detach + where delete_type = 0 + select + + from jcl_org_detach t + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + + \ 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..2a8619e3 --- /dev/null +++ b/src/com/engine/organization/service/ManagerDetachService.java @@ -0,0 +1,56 @@ +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); + + /** + * 分权开关 + * @param isDetach + */ + String doDetach(String isDetach); +} diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index d54b60e2..5cd3dae6 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -36,7 +36,6 @@ import com.engine.organization.mapper.extend.ExtDTMapper; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.job.JobMapper; -import com.engine.organization.mapper.resource.ResourceMapper; import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; @@ -97,8 +96,6 @@ public class JobServiceImpl extends Service implements JobService { private static final String RIGHT_NAME = "Job:All"; - //public static final String JOB_ACTIVITY_ID; - /** * 岗位主表title指定ID */ @@ -120,19 +117,12 @@ public class JobServiceImpl extends Service implements JobService { return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } - private ResourceMapper getResourceMapper() { - return MapperProxyFactory.getProxy(ResourceMapper.class); - } - private ExtService getExtService(User user) { return ServiceUtil.getService(ExtServiceImpl.class, user); } - //static { - // RecordInfo hrmJobActivity = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmObjectByUUID("hrmjobactivities", "3a2efce3-95de-4ec2-afe1-347783817bdb"); - // JOB_ACTIVITY_ID = hrmJobActivity.getId(); - //} + @Override public Map getSearchTree(SearchTreeParams params) { 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..a5a93482 --- /dev/null +++ b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java @@ -0,0 +1,189 @@ +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.SystemDataMapper; +import com.engine.organization.mapper.resource.ResourceMapper; +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.weaver.file.ConfigOperator; +import com.weaver.general.BaseBean; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; + +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @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 ResourceMapper getResourceMapper() { + return MapperProxyFactory.getProxy(ResourceMapper.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; + } + String detach = new BaseBean().getPropValue("hrmOrganization", "detach"); + resultMap.put("isDetach",detach); + 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(getResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) + .ecRolelevel(param.getEcRolelevel()) + .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(getResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) + .ecRolelevel(param.getEcRolelevel()) + .build(); + return getMangeDetachMapper().updateDetach(managerDetachPO); + } + + @Override + public String doDetach(String isDetach) { + ConfigOperator ConfigOperator = new ConfigOperator(); + ConfigOperator.setProp("hrmOrganization.properties", "detach", isDetach); + return new BaseBean().getPropValue("hrmOrganization", "detach"); + } + + 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 " + dbType.concat("ec_rolelevel") + dbType.like(ecRolelevel); + } + return sqlWhere; + } + + + /** + * 查询当前人员所辖分部JCL_ID + * @param uId + * @return + */ + public static List getJclRoleLevels(Integer uId) { + List ecRoleLevels = new ArrayList<>(); + ManagerDetachMapper mangeDetachMapper = MapperProxyFactory.getProxy(ManagerDetachMapper.class); + List detachListById = mangeDetachMapper.getDetachListById(uId); + for (ManagerDetachPO managerDetachPO : detachListById) { + List ids = Stream.of(managerDetachPO.getJclRolelevel().split(",")).map(Integer::parseInt).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(ids)) { + ecRoleLevels.addAll(ids); + } + } + return ecRoleLevels; + } +} diff --git a/src/com/engine/organization/util/detach/DetachUtil.java b/src/com/engine/organization/util/detach/DetachUtil.java index 8bdf643c..d27ca2bb 100644 --- a/src/com/engine/organization/util/detach/DetachUtil.java +++ b/src/com/engine/organization/util/detach/DetachUtil.java @@ -4,15 +4,14 @@ import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.service.impl.ManagerDetachServiceImpl; +import com.weaver.general.BaseBean; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; -import weaver.hrm.moduledetach.ManageDetachComInfo; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @author:dxfeng @@ -20,21 +19,18 @@ import java.util.stream.Stream; * @version: 1.0 */ public class DetachUtil { - private boolean DETACH; + private boolean DETACH = "true".equals(new BaseBean().getPropValue("hrmOrganization", "detach")); - private List jclRoleLevels = new ArrayList<>(); + private final List jclRoleLevels; public DetachUtil(User user) { - ManageDetachComInfo manageDetachComInfo = new ManageDetachComInfo(); - DETACH = manageDetachComInfo.isUseManageDetach(); - if (1 == user.getUID()) { + if (1 == user.getUID() || user.isAdmin()) { DETACH = false; } if (DETACH) { - String detachableSubCompanyIds = manageDetachComInfo.getDetachableSubcompanyIds(user); - if (StringUtils.isNotBlank(detachableSubCompanyIds)) { - jclRoleLevels = Stream.of(detachableSubCompanyIds.split(",")).map(Integer::parseInt).collect(Collectors.toList()); - } + jclRoleLevels = ManagerDetachServiceImpl.getJclRoleLevels(user.getUID()); + } else { + jclRoleLevels = new ArrayList<>(); } } diff --git a/src/com/engine/organization/web/ManagerDetachController.java b/src/com/engine/organization/web/ManagerDetachController.java new file mode 100644 index 00000000..16bdfd7f --- /dev/null +++ b/src/com/engine/organization/web/ManagerDetachController.java @@ -0,0 +1,134 @@ +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 listPage(@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 saveDetach(@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 updateDetach(@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); + } + } + + @GET + @Path("/doDetach") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult doDetach(@Context HttpServletRequest request,@Context HttpServletResponse response, + @QueryParam("idDetach") String isDetach) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getManagerDetachWrapper(user).doDetach(isDetach)); + } 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 new file mode 100644 index 00000000..07f9808f --- /dev/null +++ b/src/com/engine/organization/wrapper/ManagerDetachWrapper.java @@ -0,0 +1,93 @@ +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; + } + + + public String doDetach(String isDetach) { + return getManagerDetachService(user).doDetach(isDetach); + } +}