weaver-hrm-organization/src/com/engine/organization/wrapper/DepartmentWrapper.java

261 lines
9.0 KiB
Java
Raw Normal View History

2022-05-20 15:00:03 +08:00
package com.engine.organization.wrapper;
2022-07-05 15:15:00 +08:00
import com.alibaba.fastjson.JSON;
2022-06-02 11:40:24 +08:00
import com.api.browser.bean.SearchConditionGroup;
2022-05-20 15:00:03 +08:00
import com.engine.common.util.ServiceUtil;
2022-07-05 15:15:00 +08:00
import com.engine.organization.annotation.Log;
2022-07-07 14:19:56 +08:00
import com.engine.organization.entity.DeleteParam;
2022-06-02 15:43:19 +08:00
import com.engine.organization.entity.department.param.*;
2022-07-07 14:19:56 +08:00
import com.engine.organization.entity.department.po.DepartmentPO;
2022-05-27 18:05:15 +08:00
import com.engine.organization.entity.department.vo.SingleDeptTreeVO;
2022-06-02 16:49:25 +08:00
import com.engine.organization.entity.job.vo.SingleJobTreeVO;
2022-06-02 09:58:16 +08:00
import com.engine.organization.entity.searchtree.SearchTreeParams;
2022-07-05 15:15:00 +08:00
import com.engine.organization.enums.LogModuleNameEnum;
import com.engine.organization.enums.OperateTypeEnum;
2022-07-07 14:19:56 +08:00
import com.engine.organization.mapper.department.DepartmentMapper;
2022-05-20 15:00:03 +08:00
import com.engine.organization.service.DepartmentService;
import com.engine.organization.service.impl.DepartmentServiceImpl;
2022-08-31 14:24:00 +08:00
import com.engine.organization.thread.DepartmentTriggerRunnable;
2022-09-14 17:14:12 +08:00
import com.engine.organization.util.MenuBtn;
2022-07-05 15:15:00 +08:00
import com.engine.organization.util.OrganizationWrapper;
2022-07-07 14:19:56 +08:00
import com.engine.organization.util.db.MapperProxyFactory;
2022-05-20 15:00:03 +08:00
import com.engine.organization.util.page.PageInfo;
import com.engine.organization.util.response.ReturnResult;
import weaver.hrm.User;
2022-05-27 18:05:15 +08:00
import java.util.Collection;
2022-06-02 11:40:24 +08:00
import java.util.List;
2022-05-23 17:46:37 +08:00
import java.util.Map;
2022-05-20 15:00:03 +08:00
/**
* @Author weaver_cl
2022-06-14 11:07:48 +08:00
* @description:
2022-05-20 15:00:03 +08:00
* @Date 2022/5/20
* @Version V1.0
**/
2022-07-05 15:15:00 +08:00
public class DepartmentWrapper extends OrganizationWrapper {
2022-05-20 15:00:03 +08:00
public DepartmentService getDepartmentService(User user) {
2022-05-23 17:46:37 +08:00
return ServiceUtil.getService(DepartmentServiceImpl.class, user);
2022-05-20 15:00:03 +08:00
}
2022-07-07 14:19:56 +08:00
private DepartmentMapper getDepartmentMapper() {
return MapperProxyFactory.getProxy(DepartmentMapper.class);
}
2022-05-20 15:00:03 +08:00
public ReturnResult getDeptListByPid(QuerySingleDeptListParam param) {
PageInfo<SingleDeptTreeVO> singleDeptTreeVOS = getDepartmentService(user).getDeptListByPid(param);
return ReturnResult.successed(singleDeptTreeVOS);
}
2022-06-02 11:40:24 +08:00
2022-06-02 16:49:25 +08:00
/**
* 部门联查岗位
*
* @param param
* @return
*/
public PageInfo<SingleJobTreeVO> getJobListByPid(QuerySingleDeptListParam param) {
return getDepartmentService(user).getJobListByPid(param);
}
2022-06-02 09:58:16 +08:00
/**
* 左侧树
*
* @param params
* @return
*/
public Map<String, Object> getSearchTree(SearchTreeParams params) {
return getDepartmentService(user).getSearchTree(params);
}
2022-06-02 11:40:24 +08:00
2022-05-23 17:46:37 +08:00
/**
* 列表数据展示
*
* @param param
* @return
*/
public Map<String, Object> listPage(DeptSearchParam param) {
return getDepartmentService(user).listPage(param);
}
2022-05-23 19:16:31 +08:00
/**
* 获取保存表单
*
* @return
*/
public Map<String, Object> getSaveForm(DeptSearchParam param) {
return getDepartmentService(user).getSaveForm(param);
2022-05-23 19:16:31 +08:00
}
2022-05-27 18:05:15 +08:00
/**
* 保存部门基础信息
*
* @param params
* @return
*/
2022-07-05 15:15:00 +08:00
@Log(operateType = OperateTypeEnum.ADD, operateDesc = "新增部门", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-06-23 16:55:26 +08:00
public Long saveBaseForm(Map<String, Object> params) {
2022-07-05 15:15:00 +08:00
Long departmentId = getDepartmentService(user).saveBaseForm(params);
writeOperateLog(new Object() {
2022-07-07 14:19:56 +08:00
}.getClass(), params.get("dept_name").toString(), JSON.toJSONString(params), "新增部门");
2022-08-31 14:24:00 +08:00
new Thread(new DepartmentTriggerRunnable(departmentId)).start();
2022-07-05 15:15:00 +08:00
return departmentId;
2022-05-27 18:05:15 +08:00
}
/**
* 更新禁用标记
*
* @param params
*/
2022-07-05 15:15:00 +08:00
@Log(operateType = OperateTypeEnum.UPDATE, operateDesc = "更新部门禁用标记", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-05-27 18:05:15 +08:00
public int updateForbiddenTagById(DeptSearchParam params) {
2022-07-07 14:19:56 +08:00
DepartmentPO deptById = getDepartmentMapper().getDeptById(params.getId());
2022-07-05 15:15:00 +08:00
int updateForbiddenTagById = getDepartmentService(user).updateForbiddenTagById(params);
2022-08-31 14:24:00 +08:00
DepartmentPO newDeptById = getDepartmentMapper().getDeptById(params.getId());
2022-07-05 15:15:00 +08:00
writeOperateLog(new Object() {
2022-08-31 14:24:00 +08:00
}.getClass(), deptById.getDeptName(), JSON.toJSONString(params), deptById, newDeptById);
new Thread(new DepartmentTriggerRunnable(params.getForbiddenTag(),deptById, newDeptById)).start();
2022-07-05 15:15:00 +08:00
return updateForbiddenTagById;
2022-05-27 18:05:15 +08:00
}
/**
* 更新分部主表拓展表明细表
*
* @param params
* @return
*/
2022-07-07 14:19:56 +08:00
@Log(operateType = OperateTypeEnum.UPDATE, operateDesc = "更新部门", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-06-23 16:55:26 +08:00
public Long updateForm(Map<String, Object> params) {
2022-07-07 14:19:56 +08:00
long id = Long.parseLong(params.get("id").toString());
DepartmentPO deptById = getDepartmentMapper().getDeptById(id);
2022-07-05 15:15:00 +08:00
Long departmentId = getDepartmentService(user).updateForm(params);
2022-08-31 14:24:00 +08:00
DepartmentPO newDeptById = getDepartmentMapper().getDeptById(id);
2022-07-05 15:15:00 +08:00
writeOperateLog(new Object() {
2022-08-31 14:24:00 +08:00
}.getClass(), deptById.getDeptName(), JSON.toJSONString(params), deptById, newDeptById);
2022-07-05 15:15:00 +08:00
return departmentId;
2022-05-27 18:05:15 +08:00
}
/**
* 根据ID批量删除
*
* @param ids
*/
2022-07-05 15:15:00 +08:00
@Log(operateType = OperateTypeEnum.DELETE, operateDesc = "删除部门", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-05-27 18:05:15 +08:00
public int deleteByIds(Collection<Long> ids) {
2022-07-07 14:19:56 +08:00
List<DepartmentPO> departmentPOS = getDepartmentMapper().getDeptsByIds(ids);
2022-07-05 15:15:00 +08:00
int deleteByIds = getDepartmentService(user).deleteByIds(ids);
2022-07-07 14:19:56 +08:00
for (DepartmentPO departmentPO : departmentPOS) {
writeOperateLog(new Object() {
}.getClass(), departmentPO.getDeptName(), JSON.toJSONString(ids), "删除部门");
2022-08-31 14:24:00 +08:00
// 更新组织架构图
new Thread(new DepartmentTriggerRunnable(departmentPO)).start();
2022-07-07 14:19:56 +08:00
}
2022-07-05 15:15:00 +08:00
return deleteByIds;
2022-05-27 18:05:15 +08:00
}
/**
* 获取搜索条件
*
* @param params
* @return
*/
public Map<String, Object> getSearchCondition(Map<String, Object> params) {
return getDepartmentService(user).getSearchCondition(params);
}
/**
* 获取列表页面按钮信息
*
* @return
*/
2022-09-14 17:14:12 +08:00
public Map<String, List<MenuBtn>> getHasRight() {
2022-05-27 18:05:15 +08:00
return getDepartmentService(user).getHasRight();
}
/**
* 获取基本信息表单
*
* @param params
* @return
*/
public Map<String, Object> getDeptBaseForm(Map<String, Object> params) {
return getDepartmentService(user).getDeptBaseForm(params);
}
2022-06-02 11:40:24 +08:00
/**
* 复制表单
*
* @return
*/
public List<SearchConditionGroup> getCopyForm() {
return getDepartmentService(user).getCopyForm();
}
/**
* 复制岗位到指定部门
*
* @param copyParam
* @return
*/
2022-07-07 14:19:56 +08:00
@Log(operateType = OperateTypeEnum.COPY, operateDesc = "复制部门", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-06-02 11:40:24 +08:00
public int copyDepartment(DeptCopyParam copyParam) {
2022-07-07 14:19:56 +08:00
List<DepartmentPO> departmentPOS = getDepartmentMapper().getDeptsByIds(DeleteParam.builder().ids(copyParam.getIds()).build().getIds());
2022-07-05 15:15:00 +08:00
int copyDepartment = getDepartmentService(user).copyDepartment(copyParam);
2022-07-07 14:19:56 +08:00
for (DepartmentPO departmentPO : departmentPOS) {
writeOperateLog(new Object() {
}.getClass(), departmentPO.getDeptName(), JSON.toJSONString(copyParam), "复制部门[" + departmentPO.getDeptName() + "]");
}
2022-07-05 15:15:00 +08:00
return copyDepartment;
2022-06-02 11:40:24 +08:00
}
2022-06-02 15:43:19 +08:00
/**
* 获取合并表单
*
* @param id
* @return
*/
public List<SearchConditionGroup> getMergeForm(Long id) {
return getDepartmentService(user).getMergeForm(id);
}
/**
* 合并到指定部门
*
* @param mergeParam
* @return
*/
2022-07-07 14:19:56 +08:00
@Log(operateType = OperateTypeEnum.MERGE, operateDesc = "合并部门", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-06-02 15:43:19 +08:00
public int mergeDepartment(DepartmentMergeParam mergeParam) {
2022-07-07 14:19:56 +08:00
DepartmentPO departmentPO = getDepartmentMapper().getDeptById(mergeParam.getId());
2022-07-05 15:15:00 +08:00
int mergeDepartment = getDepartmentService(user).mergeDepartment(mergeParam);
writeOperateLog(new Object() {
2022-07-07 14:19:56 +08:00
}.getClass(), departmentPO.getDeptName(), JSON.toJSONString(mergeParam), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId()));
2022-07-05 15:15:00 +08:00
return mergeDepartment;
2022-06-02 15:43:19 +08:00
}
2022-05-27 18:05:15 +08:00
2022-06-02 15:43:19 +08:00
/**
* 获取转移表单
*
* @return
*/
public List<SearchConditionGroup> getMoveForm() {
return getDepartmentService(user).getMoveForm();
}
/**
* 转移到指定分部或部门
*
* @param moveParam
* @return
*/
2022-07-07 14:19:56 +08:00
@Log(operateType = OperateTypeEnum.MOVE, operateDesc = "转移部门", operateModule = LogModuleNameEnum.DEPARTMENT)
2022-06-02 15:43:19 +08:00
public int moveDepartment(DepartmentMoveParam moveParam) {
2022-07-07 14:19:56 +08:00
DepartmentPO departmentPO = getDepartmentMapper().getDeptById(moveParam.getId());
2022-07-05 15:15:00 +08:00
int moveDepartment = getDepartmentService(user).moveDepartment(moveParam);
writeOperateLog(new Object() {
2022-07-07 14:19:56 +08:00
}.getClass(), departmentPO.getDeptName(), JSON.toJSONString(moveParam), departmentPO, getDepartmentMapper().getDeptById(departmentPO.getId()));
2022-07-05 15:15:00 +08:00
return moveDepartment;
2022-06-02 15:43:19 +08:00
}
2022-05-20 15:00:03 +08:00
}