diff --git a/src/main/java/com/lz/common/utils/StringUtil.java b/src/main/java/com/lz/common/utils/StringUtil.java index 44765039..d075f2f9 100644 --- a/src/main/java/com/lz/common/utils/StringUtil.java +++ b/src/main/java/com/lz/common/utils/StringUtil.java @@ -683,4 +683,34 @@ public class StringUtil extends StringUtils { } return list; } + + public static List getLongList(String evaluationGroupInfoStr) { + List longList = new ArrayList<>(); + if (StringUtil.isNotBlank(evaluationGroupInfoStr)) { + String[] ids = evaluationGroupInfoStr.split(","); + if (ids != null && ids.length > 0) { + for (String id : ids) { + if (StringUtil.isNotBlank(id)) { + longList.add(NumberUtil.objToLongDefault(id, 0l)); + } + } + } + } + return longList; + } + + public static List getStringList(String evaluationGroupInfoStr) { + List longList = new ArrayList<>(); + if (StringUtil.isNotBlank(evaluationGroupInfoStr)) { + String[] ids = evaluationGroupInfoStr.split(","); + if (ids != null && ids.length > 0) { + for (String id : ids) { + if (StringUtil.isNotBlank(id)) { + longList.add(id); + } + } + } + } + return longList; + } } diff --git a/src/main/java/com/lz/modules/app/controller/StaffRoleController.java b/src/main/java/com/lz/modules/app/controller/StaffRoleController.java index ba64aa5d..22db83be 100644 --- a/src/main/java/com/lz/modules/app/controller/StaffRoleController.java +++ b/src/main/java/com/lz/modules/app/controller/StaffRoleController.java @@ -210,10 +210,30 @@ public class StaffRoleController { return staffRoleService.selectRoleInfoBy(roleModel); } - // http://localhost:8080/lz_management/user/lzstaffrole/role/detail + // http://localhost:8080/lz_management/user/lzstaffrole/role/detail?id=4 @RequestMapping("/role/detail") public R roleDetail(RoleModel roleModel) { return staffRoleService.selectRoleDetail(roleModel); } + + // 老板add :http://localhost:8080/lz_management/user/lzstaffrole/role/addOrUpdate?departmentLevel=BOSS&staffId=294 + // 老板edit :http://localhost:8080/lz_management/user/lzstaffrole/role/addOrUpdate?id=24&staffId=294 + // 普通add: http://localhost:8080/lz_management/user/lzstaffrole/role/addOrUpdate?departmentLevel=CHILD_PM&staffId=28&evaluationGroupId=1&evaluationGroupInfoStr=2,3&departmentId=2&departmentInfoStr=154332270,379635019&selectStaffMenuInfoStr=15,17 + // 普通add: http://localhost:8080/lz_management/user/lzstaffrole/role/addOrUpdate?id=26&evaluationGroupId=1&evaluationGroupInfoStr=2,4&departmentId=2&departmentInfoStr=154332270,379635019&selectStaffMenuInfoStr=15,17 + // 主管理员add:http://localhost:8080/lz_management/user/lzstaffrole/role/addOrUpdate?departmentLevel=MASTER_PM&staffId=294 + // 主管理员edit:http://localhost:8080/lz_management/user/lzstaffrole/role/addOrUpdate?id=19&staffId=303 + @RequestMapping("/role/addOrUpdate") + public R roleAddOrUpdate(RoleModel roleModel) { + return staffRoleService.roleAddOrUpdate(roleModel); + } + + + + // http://localhost:8080/lz_management/user/lzstaffrole/role/delete?id=26 + @RequestMapping("/role/delete") + public R roleDelete(RoleModel roleModel) { + return staffRoleService.delete(roleModel); + } + } diff --git a/src/main/java/com/lz/modules/app/dto/DepartmentInfo.java b/src/main/java/com/lz/modules/app/dto/DepartmentInfo.java new file mode 100644 index 00000000..3af90b83 --- /dev/null +++ b/src/main/java/com/lz/modules/app/dto/DepartmentInfo.java @@ -0,0 +1,4 @@ +package com.lz.modules.app.dto; + +public class DepartmentInfo { +} diff --git a/src/main/java/com/lz/modules/app/dto/EvaluationGroupInfo.java b/src/main/java/com/lz/modules/app/dto/EvaluationGroupInfo.java new file mode 100644 index 00000000..40c54281 --- /dev/null +++ b/src/main/java/com/lz/modules/app/dto/EvaluationGroupInfo.java @@ -0,0 +1,10 @@ +package com.lz.modules.app.dto; + +import lombok.Data; + +@Data +public class EvaluationGroupInfo { + private int id ; + private String name; + private int isSelect; +} diff --git a/src/main/java/com/lz/modules/app/dto/StaffMenuInfo.java b/src/main/java/com/lz/modules/app/dto/StaffMenuInfo.java new file mode 100644 index 00000000..d24f27f0 --- /dev/null +++ b/src/main/java/com/lz/modules/app/dto/StaffMenuInfo.java @@ -0,0 +1,4 @@ +package com.lz.modules.app.dto; + +public class StaffMenuInfo { +} diff --git a/src/main/java/com/lz/modules/app/dto/StaffRoleDetailInfo.java b/src/main/java/com/lz/modules/app/dto/StaffRoleDetailInfo.java new file mode 100644 index 00000000..ff0fbb40 --- /dev/null +++ b/src/main/java/com/lz/modules/app/dto/StaffRoleDetailInfo.java @@ -0,0 +1,19 @@ +package com.lz.modules.app.dto; + +import com.lz.modules.flow.entity.StaffMenu; +import com.lz.modules.flow.entity.StaffRoleDepartment; +import lombok.Data; + +import java.util.List; + +@Data +public class StaffRoleDetailInfo { + private Long staffId; + //0表示全部组,1表示特定组 + private Long evaluationGroupId; + private List evaluationGroupInfos; + private Long departmentId; + private List departmentInfos; + private List staffMenuInfos; + private List selectStaffMenuInfos; +} diff --git a/src/main/java/com/lz/modules/app/enums/DepartmentPMEnums.java b/src/main/java/com/lz/modules/app/enums/DepartmentPMEnums.java new file mode 100644 index 00000000..af815aa2 --- /dev/null +++ b/src/main/java/com/lz/modules/app/enums/DepartmentPMEnums.java @@ -0,0 +1,32 @@ +package com.lz.modules.app.enums; + +public enum DepartmentPMEnums { + ALL(0l,"全公司"), + SELF_DEPARTMENT(1l,"所在部门及以下部门"), + SPECIAL_DEPARTMENT(2l,"特定部门"); + + + private Long type ; + private String desc; + + DepartmentPMEnums(Long type, String desc) { + this.type = type; + this.desc = desc; + } + + public Long getType() { + return type; + } + + public void setType(Long type) { + this.type = type; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/src/main/java/com/lz/modules/app/enums/EvaluationGroupEnums.java b/src/main/java/com/lz/modules/app/enums/EvaluationGroupEnums.java new file mode 100644 index 00000000..5a11a329 --- /dev/null +++ b/src/main/java/com/lz/modules/app/enums/EvaluationGroupEnums.java @@ -0,0 +1,32 @@ +package com.lz.modules.app.enums; + +public enum EvaluationGroupEnums { + ALL(0l,"全部考评组"), + SELF_DEPARTMENT(1l,"特定考评组"); + + + private Long type ; + private String desc; + + EvaluationGroupEnums(Long type, String desc) { + this.type = type; + this.desc = desc; + + } + + public Long getType() { + return type; + } + + public void setType(Long type) { + this.type = type; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/src/main/java/com/lz/modules/app/enums/RoleMenuEnums.java b/src/main/java/com/lz/modules/app/enums/RoleMenuEnums.java new file mode 100644 index 00000000..7b8e34e9 --- /dev/null +++ b/src/main/java/com/lz/modules/app/enums/RoleMenuEnums.java @@ -0,0 +1,34 @@ +package com.lz.modules.app.enums; + +public enum RoleMenuEnums { + MASTER_PM(-1l,"绩效管理员"), + BOSS(-2l,"企业负责人"), + DEPARTMENT_PM(-3l,"部门主管"), + COMMON_STAFF(-4l,"普通员工"); + + + private Long type ; + private String desc; + + RoleMenuEnums(Long type, String desc) { + this.type = type; + this.desc = desc; + + } + + public Long getType() { + return type; + } + + public void setType(Long type) { + this.type = type; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/src/main/java/com/lz/modules/app/model/RoleModel.java b/src/main/java/com/lz/modules/app/model/RoleModel.java index 39e42667..43bdc8c4 100644 --- a/src/main/java/com/lz/modules/app/model/RoleModel.java +++ b/src/main/java/com/lz/modules/app/model/RoleModel.java @@ -7,5 +7,11 @@ public class RoleModel { private int currPage = 1; private int pageSize = 10; private Long id; - + private Long staffId; + private Long evaluationGroupId; + private String evaluationGroupInfoStr; + private Long departmentId; + private String departmentInfoStr; + private String selectStaffMenuInfoStr; + private String departmentLevel; } diff --git a/src/main/java/com/lz/modules/flow/dao/StaffMenuMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffMenuMapper.java index b6d87ae7..7fec2842 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffMenuMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffMenuMapper.java @@ -11,6 +11,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.lz.modules.flow.entity.StaffMenu; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + +import java.util.List; + @Mapper public interface StaffMenuMapper extends BaseMapper { @@ -30,4 +33,7 @@ public interface StaffMenuMapper extends BaseMapper { int deleteStaffMenuById(@Param("id") Long id); + List selctAll(); + + List selectByParentId(@Param("parentId") Long parentId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java index 9467266c..b1bff628 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java @@ -45,4 +45,6 @@ public interface StaffRoleDepartmentMapper extends BaseMapper selectStaffRoleDepartmentByStaffRoleIdDepartments(@Param("staffRoleId") Long staffRoleId, @Param("departments") List departments); List selectDepartmentSimpleInfos(@Param("ids") List ids); + + void deleteStaffRoleDepartmentByRoleId(@Param("roleId") Long roleId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java index c10c2862..38535aa9 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java @@ -8,9 +8,13 @@ package com.lz.modules.flow.dao; * @since 2020-11-02 */ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lz.modules.app.dto.EvaluationGroupInfo; import com.lz.modules.flow.entity.StaffRoleEvaluationGroup; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + +import java.util.List; + @Mapper public interface StaffRoleEvaluationGroupMapper extends BaseMapper { @@ -29,5 +33,7 @@ public interface StaffRoleEvaluationGroupMapper extends BaseMapper selectStaffRoleEvaluationGroupBy(@Param("roleId") Long roleId); + void deleteStaffRoleEvaluationGroupByRoleId(@Param("roleId") Long roleId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/dao/StaffRoleMenuMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffRoleMenuMapper.java index 53de0415..f61e03d8 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleMenuMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleMenuMapper.java @@ -35,4 +35,6 @@ public interface StaffRoleMenuMapper extends BaseMapper { List selectByRoleId(@Param("roleId") Long roleId); + + void deleteStaffRoleMenuByRoleId(@Param("roleId") Long roleId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/entity/StaffMenu.java b/src/main/java/com/lz/modules/flow/entity/StaffMenu.java index bb8b3269..dbb43b83 100644 --- a/src/main/java/com/lz/modules/flow/entity/StaffMenu.java +++ b/src/main/java/com/lz/modules/flow/entity/StaffMenu.java @@ -1,11 +1,16 @@ package com.lz.modules.flow.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; + import java.util.Date; +import java.util.List; + /** *

*

*绩效管理菜单表 @@ -38,6 +43,8 @@ public class StaffMenu implements java.io.Serializable { //授权 id @ApiModelProperty(value = "授权 id", name = "authIds") private Long authIds; + @TableField(exist=false) + private List childs; /** * * @return diff --git a/src/main/java/com/lz/modules/flow/entity/StaffRoleDepartment.java b/src/main/java/com/lz/modules/flow/entity/StaffRoleDepartment.java index 6a690bce..54c6062b 100644 --- a/src/main/java/com/lz/modules/flow/entity/StaffRoleDepartment.java +++ b/src/main/java/com/lz/modules/flow/entity/StaffRoleDepartment.java @@ -1,33 +1,43 @@ package com.lz.modules.flow.entity; -import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** *

-* 菜单权限表 *

*流转关系表 * @author quyixiao -* @since 2020-08-18 +* @since 2020-11-02 */ @Data @TableName("lz_staff_role_department") +@ApiModel(value = "流转关系表") public class StaffRoleDepartment implements java.io.Serializable { // @TableId(value = "id", type = IdType.AUTO) private Long id; //是否删除状态,1:删除,0:有效 + @ApiModelProperty(value = "是否删除状态,1:删除,0:有效", name = "isDelete") private Integer isDelete; //创建时间 + @ApiModelProperty(value = "创建时间", name = "gmtCreate") private Date gmtCreate; //最后修改时间 + @ApiModelProperty(value = "最后修改时间", name = "gmtModified") private Date gmtModified; - // + //角色 id + @ApiModelProperty(value = "角色 id", name = "staffRoleId") private Long staffRoleId; - // + //部门 id + @ApiModelProperty(value = "部门 id", name = "departmentId") private String departmentId; + //部门名称 + @ApiModelProperty(value = "部门名称", name = "departmentName") + private String departmentName; /** * * @return @@ -89,14 +99,14 @@ public class StaffRoleDepartment implements java.io.Serializable { } /** - * + * 角色 id * @return */ public Long getStaffRoleId() { return staffRoleId; } /** - * + * 角色 id * @param staffRoleId */ public void setStaffRoleId(Long staffRoleId) { @@ -104,20 +114,35 @@ public class StaffRoleDepartment implements java.io.Serializable { } /** - * + * 部门 id * @return */ public String getDepartmentId() { return departmentId; } /** - * + * 部门 id * @param departmentId */ public void setDepartmentId(String departmentId) { this.departmentId = departmentId; } + /** + * 部门名称 + * @return + */ + public String getDepartmentName() { + return departmentName; + } + /** + * 部门名称 + * @param departmentName + */ + public void setDepartmentName(String departmentName) { + this.departmentName = departmentName; + } + @Override public String toString() { return "StaffRoleDepartment{" + @@ -127,6 +152,7 @@ public class StaffRoleDepartment implements java.io.Serializable { ",gmtModified=" + gmtModified + ",staffRoleId=" + staffRoleId + ",departmentId=" + departmentId + + ",departmentName=" + departmentName + "}"; } } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffMenuService.java b/src/main/java/com/lz/modules/flow/service/StaffMenuService.java index 521a8ba1..767a3a84 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffMenuService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffMenuService.java @@ -3,6 +3,8 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.modules.flow.entity.StaffMenu; +import java.util.List; + /** *

* 绩效管理菜单表 服务类 @@ -30,4 +32,7 @@ public interface StaffMenuService extends IService { int deleteStaffMenuById(Long id); + List selectAll(); + + List selectByParentId(Long parentId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java index 07e7f51a..1f8124b7 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java @@ -42,4 +42,6 @@ public interface StaffRoleDepartmentService extends IService selectDepartmentSimpleInfos(List ids); + + void deleteStaffRoleDepartmentByRoleId(Long roleId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java index 9370ed1e..db57994f 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java @@ -1,8 +1,11 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.lz.modules.app.dto.EvaluationGroupInfo; import com.lz.modules.flow.entity.StaffRoleEvaluationGroup; +import java.util.List; + /** *

* 绩效管理菜单表 服务类 @@ -30,4 +33,7 @@ public interface StaffRoleEvaluationGroupService extends IService selectStaffRoleEvaluationGroupBy(Long id); + + void deleteStaffRoleEvaluationGroupByRoleId(Long roleId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleMenuService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleMenuService.java index b0e81cf7..460ff922 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleMenuService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleMenuService.java @@ -34,4 +34,6 @@ public interface StaffRoleMenuService extends IService { List selectByRoleId(Long id); + + void deleteStaffRoleMenuByRoleId(Long roleId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java index ff04943f..04b44e22 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java @@ -57,4 +57,8 @@ public interface StaffRoleService extends IService { R selectRoleInfoBy(RoleModel roleModel); R selectRoleDetail(RoleModel roleModel); + + R roleAddOrUpdate(RoleModel roleModel); + + R delete(RoleModel roleModel); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffMenuServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffMenuServiceImpl.java index 765d3816..37159ccb 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffMenuServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffMenuServiceImpl.java @@ -7,6 +7,8 @@ import com.lz.modules.flow.service.StaffMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 绩效管理菜单表 服务类 @@ -58,6 +60,15 @@ public class StaffMenuServiceImpl extends ServiceImpl selectAll() { + return staffMenuMapper.selctAll(); + } + + @Override + public List selectByParentId(Long parentId) { + return staffMenuMapper.selectByParentId(parentId); + } } diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java index 1925104e..162d6530 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java @@ -86,5 +86,10 @@ public class StaffRoleDepartmentServiceImpl extends ServiceImpl * 绩效管理菜单表 服务类 @@ -58,6 +61,15 @@ public class StaffRoleEvaluationGroupServiceImpl extends ServiceImpl selectStaffRoleEvaluationGroupBy(Long roleId) { + return staffRoleEvaluationGroupMapper.selectStaffRoleEvaluationGroupBy(roleId); + } + + @Override + public void deleteStaffRoleEvaluationGroupByRoleId(Long roleId) { + staffRoleEvaluationGroupMapper.deleteStaffRoleEvaluationGroupByRoleId(roleId); + } } diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleMenuServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleMenuServiceImpl.java index 106586a9..b936ff41 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleMenuServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleMenuServiceImpl.java @@ -66,5 +66,10 @@ public class StaffRoleMenuServiceImpl extends ServiceImpl staffRoleDepartments = staffRoleDepartmentMapper.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId()); + info.setDepartmentInfos(staffRoleDepartments); + List evaluationGroupInfos = staffRoleEvaluationGroupService.selectStaffRoleEvaluationGroupBy(roleModel.getId()); + info.setEvaluationGroupInfos(evaluationGroupInfos); + List all = staffMenuService.selectAll(); + List roots = staffMenuService.selectByParentId(0l); + for (StaffMenu root : roots) { + getStaffMenuInfo(root, all); + } + info.setStaffMenuInfos(roots); + + List staffMenus = staffRoleMenuService.selectByRoleId(staffRole.getId()); + List selectStaffMenuInfos = new ArrayList<>(); + for (StaffMenu staffMenu : staffMenus) { + selectStaffMenuInfos.add(staffMenu.getId()); + } + info.setSelectStaffMenuInfos(selectStaffMenuInfos); + return R.ok().put("data", info); } + @Override + public R roleAddOrUpdate(RoleModel roleModel) { + if (roleModel.getId() == null && roleModel.getStaffId() == null) { + return R.error("请传入 id 或 员工 id "); + } + List evaluationGroupInfoIds = StringUtil.getLongList(roleModel.getEvaluationGroupInfoStr()); + List departmentInfoIds = StringUtil.getStringList(roleModel.getDepartmentInfoStr()); + List selectStaffMenuInfoIdIds = StringUtil.getLongList(roleModel.getSelectStaffMenuInfoStr()); + StaffEntity staffEntity = staffDao.selectStaffById(roleModel.getStaffId()); + StaffRole staffRole = null; + if (roleModel.getId() != null) { + staffRole = staffRoleMapper.selectStaffRoleById(roleModel.getId()); + //删除之前的数据 + staffRoleDepartmentService.deleteStaffRoleDepartmentByRoleId(staffRole.getId()); + staffRoleMenuService.deleteStaffRoleMenuByRoleId(staffRole.getId()); + staffRoleEvaluationGroupService.deleteStaffRoleEvaluationGroupByRoleId(staffRole.getId()); + com.lz.modules.app.utils.BeanUtils.copyProperty(staffRole, roleModel); + staffEntity = staffDao.selectStaffById(staffRole.getStaffId()); + staffRole.setStaffName(staffEntity.getName()); + + staffRoleMapper.updateStaffRoleById(staffRole); + if (RoleEnums.BOSS.getName().equals(staffRole.getDepartmentLevel()) || + RoleEnums.MASTER_PM.getName().equals(staffRole.getDepartmentLevel())) { + return R.ok("更新成功"); + } + } else if (roleModel.getStaffId() != null) { // 员工不为空 + staffRole = new StaffRole(); + com.lz.modules.app.utils.BeanUtils.copyProperty(staffRole, roleModel); + staffRole.setStaffName(staffEntity.getName()); + staffRoleMapper.insertStaffRole(staffRole); + } + + if (RoleEnums.BOSS.getName().equals(staffRole.getDepartmentLevel())) { + insertPM(staffRole, RoleMenuEnums.BOSS.getType(), staffEntity); + } else if (RoleEnums.MASTER_PM.getName().equals(staffRole.getDepartmentLevel())) { + insertPM(staffRole, RoleMenuEnums.MASTER_PM.getType(), staffEntity); + } else if (RoleEnums.CHILD_PM.getName().equals(staffRole.getDepartmentLevel())) { //如果是子管理员 + for (Long evaluationGroupId : evaluationGroupInfoIds) { + StaffRoleEvaluationGroup evaluationGroup = new StaffRoleEvaluationGroup(); + evaluationGroup.setIsSelect(1); + evaluationGroup.setRoleId(staffRole.getId()); + evaluationGroup.setEvaluationGroupId(evaluationGroupId); + staffRoleEvaluationGroupService.insertStaffRoleEvaluationGroup(evaluationGroup); + } + if (roleModel.getDepartmentId().equals(DepartmentPMEnums.SELF_DEPARTMENT.getType().toString())) {//如果是自己所在部门 + departmentInfoIds.clear(); + DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(staffEntity.getId()); + departmentInfoIds.add(departmentsStaffRelateEntity.getDepartmentId()); + } + for (String deparmentId : departmentInfoIds) { + StaffRoleDepartment staffRoleDepartment = new StaffRoleDepartment(); + staffRoleDepartment.setDepartmentId(deparmentId); + staffRoleDepartment.setStaffRoleId(staffRole.getId()); + DepartmentsEntity departmentsEntity = departmentsDao.selectByDepartmentId(deparmentId); + staffRoleDepartment.setDepartmentName(departmentsEntity.getDepartmentName()); + staffRoleDepartmentService.insertStaffRoleDepartment(staffRoleDepartment); + } + for (Long staffMenuId : selectStaffMenuInfoIdIds) { + StaffRoleMenu staffRoleMenu = new StaffRoleMenu(); + staffRoleMenu.setRoleId(staffRole.getId()); + staffRoleMenu.setMenuId(staffMenuId); + staffRoleMenuService.insertStaffRoleMenu(staffRoleMenu); + } + } + return R.ok(); + } + + @Override + public R delete(RoleModel roleModel) { + staffRoleMapper.deleteStaffRoleById(roleModel.getId()); + return R.ok(); + } + + public void insertPM(StaffRole staffRole, Long parentId, StaffEntity staffEntity) { + staffRole.setEvaluationGroupId(EvaluationGroupEnums.ALL.getType());//全部考评组 + staffRole.setDepartmentId(DepartmentPMEnums.ALL.getType());//所有部门 + staffRole.setStaffName(staffEntity.getName()); + List roots = staffMenuService.selectByParentId(parentId); + for (StaffMenu staffMenu : roots) { + StaffRoleMenu staffRoleMenu = new StaffRoleMenu(); + staffRoleMenu.setRoleId(staffRole.getId()); + staffRoleMenu.setMenuId(staffMenu.getId()); + staffRoleMenuService.insertStaffRoleMenu(staffRoleMenu); + } + if (parentId.equals(RoleMenuEnums.MASTER_PM.getType())) { //如果是绩效管理员 + StaffRoleEvaluationGroup staffRoleEvaluationGroup = new StaffRoleEvaluationGroup(); + staffRoleEvaluationGroup.setRoleId(staffRole.getId()); + staffRoleEvaluationGroup.setIsSelect(1); + staffRoleEvaluationGroupService.insertStaffRoleEvaluationGroup(staffRoleEvaluationGroup); + } + } + + public void getStaffMenuInfo(StaffMenu parent, List all) { + List childs = new ArrayList<>(); + for (StaffMenu child : all) { + if (child.getParentId().equals(parent.getId())) { + childs.add(child); + getStaffMenuInfo(child, all); + } + } + parent.setChilds(childs); + } } diff --git a/src/main/resources/mapper/flow/StaffMenuMapper.xml b/src/main/resources/mapper/flow/StaffMenuMapper.xml index c4e6a40f..5b28f1cc 100644 --- a/src/main/resources/mapper/flow/StaffMenuMapper.xml +++ b/src/main/resources/mapper/flow/StaffMenuMapper.xml @@ -79,5 +79,15 @@ update lz_staff_menu set is_delete = 1 where id=#{id} limit 1 + + + + + + diff --git a/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml b/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml index b438fa15..a97daee9 100644 --- a/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml @@ -10,46 +10,51 @@ + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, staff_role_id AS staffRoleId, department_id AS departmentId + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, staff_role_id AS staffRoleId, department_id AS departmentId, department_name AS departmentName + insert into lz_staff_role_department( - staff_role_id, - department_id, - is_delete, - gmt_create, - gmt_modified + staff_role_id, + department_id, + department_name, + is_delete, + gmt_create, + gmt_modified )values( - #{ staffRoleId}, - #{ departmentId}, - 0, - now(), - now() + #{ staffRoleId}, + #{ departmentId}, + #{ departmentName}, + 0, + now(), + now() ) update - lz_staff_role_department + lz_staff_role_department is_delete = #{isDelete}, gmt_create = #{gmtCreate}, staff_role_id = #{staffRoleId}, - department_id = #{departmentId} + department_id = #{departmentId}, + department_name = #{departmentName} ,gmt_modified = now() where id = #{id} @@ -58,12 +63,13 @@ update - lz_staff_role_department - set + lz_staff_role_department + set is_delete = #{isDelete}, gmt_create = #{gmtCreate}, staff_role_id = #{staffRoleId}, - department_id = #{departmentId} + department_id = #{departmentId}, + department_name = #{departmentName} ,gmt_modified = now() where id = #{id} @@ -101,7 +107,6 @@ delete from lz_staff_role_department where id = #{id} - + + + delete from lz_staff_role_department where staff_role_id = #{roleId} + + + + diff --git a/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml b/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml index 2ff1e439..3181c9f4 100644 --- a/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml @@ -21,12 +21,12 @@ - + insert into lz_staff_role_evaluation_group( role_id, @@ -79,5 +79,19 @@ update lz_staff_role_evaluation_group set is_delete = 1 where id=#{id} limit 1 + + + + + + + + delete from lz_staff_role_evaluation_group where role_id = #{roleId} + + diff --git a/src/main/resources/mapper/flow/StaffRoleMenuMapper.xml b/src/main/resources/mapper/flow/StaffRoleMenuMapper.xml index 5cb5b001..0aac4175 100644 --- a/src/main/resources/mapper/flow/StaffRoleMenuMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleMenuMapper.xml @@ -20,7 +20,6 @@ - @@ -81,5 +80,11 @@ select * from lz_staff_menu where id in (select menu_id from lz_staff_role_menu where role_id = #{roleId}) + + + delete from lz_staff_role_menu where role_id = #{roleId} + + +