|
@@ -108,7 +108,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Resource
|
|
|
StmmsUtils stmmsUtils;
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
@@ -376,6 +375,31 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
throw ExceptionResultEnum.ERROR.exception("找不到此课程信息");
|
|
|
}
|
|
|
|
|
|
+ BasicSchool basicSchool = (BasicSchool) ServletUtil.getRequestSchool();
|
|
|
+ if (Objects.equals(basicSchool.getCode(), FlowSchoolCodeEnum.JXZYYDX.getCode())) {
|
|
|
+ List<ApproveUserResult> approveUserResultList = sysUserService.findByJxzyyDirectorApprove(null, FlowApproveNameEnum.TEACHER);
|
|
|
+ if (Objects.nonNull(approveUserResultList) && approveUserResultList.size() > 0) {//说明是实施人员提交
|
|
|
+ List<BlurryUserDto> blurryUserDtoList = new ArrayList<>();
|
|
|
+ for (ApproveUserResult sysUser : approveUserResultList) {
|
|
|
+ blurryUserDtoList.add(new BlurryUserDto(sysUser.getId(), sysUser.getLoginName(), sysUser.getRealName()));
|
|
|
+ }
|
|
|
+ return blurryUserDtoList;
|
|
|
+ } else {
|
|
|
+ return listUserCommon(basicCourse, schoolId);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return listUserCommon(basicCourse, schoolId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查找命题老师公用
|
|
|
+ *
|
|
|
+ * @param basicCourse
|
|
|
+ * @param schoolId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<BlurryUserDto> listUserCommon(BasicCourse basicCourse, Long schoolId) {
|
|
|
int count = this.countByTeachingRoomId(basicCourse.getTeachingRoomId());
|
|
|
List<SysOrg> sysOrgList = null;
|
|
|
if (count == 0) {
|
|
@@ -829,14 +853,59 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
* 获取教研室主任审批人
|
|
|
*
|
|
|
* @param realName
|
|
|
+ * @param flowApproveNameEnum
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<ApproveUserResult> findByJxzyyDirectorApprove(String realName) {
|
|
|
+ public List<ApproveUserResult> findByJxzyyDirectorApprove(String realName, FlowApproveNameEnum flowApproveNameEnum) {
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
- List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(sysUser.getOrgId(), true, false);
|
|
|
- Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
|
|
|
- return sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds, true, FlowApproveNameEnum.DIRECTOR, realName);
|
|
|
+ AuthBean authBean = teachcloudCommonService.getUserAuth(sysUser.getId());
|
|
|
+ Set<SysRolePrivilege> sysRolePrivilegeSet = new HashSet<>();
|
|
|
+ for (SysRole s : authBean.getRoleList()) {
|
|
|
+ sysRolePrivilegeSet.addAll(teachcloudCommonService.getRolePrivilege(s.getId()));
|
|
|
+ }
|
|
|
+ boolean cjmt = false, cjss = false;
|
|
|
+ List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(new QueryWrapper<SysPrivilege>().lambda().in(SysPrivilege::getUrl, Arrays.asList(FlowApproveNameEnum.DIRECTOR.getId(), FlowApproveNameEnum.PRESIDENT.getId())));
|
|
|
+ go:
|
|
|
+ for (SysRolePrivilege sysRolePrivilege : sysRolePrivilegeSet) {
|
|
|
+ for (SysPrivilege sysPrivilege : sysPrivilegeList) {
|
|
|
+ if (Objects.equals(sysPrivilege.getUrl(), FlowApproveNameEnum.DIRECTOR.getId()) && sysRolePrivilege.getPrivilegeId().longValue() == sysPrivilege.getId().longValue()) {
|
|
|
+ cjmt = true;
|
|
|
+ } else if (Objects.equals(sysPrivilege.getUrl(), FlowApproveNameEnum.PRESIDENT.getId()) && sysRolePrivilege.getPrivilegeId().longValue() == sysPrivilege.getId().longValue()) {
|
|
|
+ cjss = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (cjmt && cjss) {
|
|
|
+ break go;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SysOrg sysOrg = authBean.getOrg();
|
|
|
+ if (sysOrg.getType() == OrgTypeEnum.SCHOOL) {//学校下是实施人员或者超级老师
|
|
|
+ List<ApproveUserResult> approveUserResultList = new ArrayList<>();
|
|
|
+ if (cjss && cjmt) {
|
|
|
+ List<ApproveUserResult> presidentList = this.findByJxzyyTopDirectorOrPresidentApprove(Arrays.asList(sysOrg.getId()), realName, FlowApproveNameEnum.PRESIDENT);
|
|
|
+ List<ApproveUserResult> directorList = this.findByJxzyyTopDirectorOrPresidentApprove(Arrays.asList(sysOrg.getId()), realName, FlowApproveNameEnum.DIRECTOR);
|
|
|
+ approveUserResultList.addAll(presidentList);
|
|
|
+ approveUserResultList.addAll(directorList);
|
|
|
+ Set<ApproveUserResult> approveUserResultSet = new HashSet<>(approveUserResultList);
|
|
|
+ approveUserResultList = new ArrayList<>(approveUserResultSet);
|
|
|
+ } else if (cjss) {
|
|
|
+ approveUserResultList = this.findByJxzyyTopDirectorOrPresidentApprove(Arrays.asList(sysOrg.getId()), realName, FlowApproveNameEnum.PRESIDENT);
|
|
|
+ } else if (cjmt && flowApproveNameEnum == FlowApproveNameEnum.DIRECTOR) {
|
|
|
+ approveUserResultList = this.findByJxzyyTopDirectorOrPresidentApprove(Arrays.asList(sysOrg.getId()), realName, FlowApproveNameEnum.DIRECTOR);
|
|
|
+ }
|
|
|
+ return approveUserResultList;
|
|
|
+ } else {//否则是学校命题老师
|
|
|
+ if (flowApproveNameEnum == FlowApproveNameEnum.DIRECTOR) {
|
|
|
+ List<ApproveUserResult> approveUserResultList = this.findByJxzyyTopDirectorOrPresidentApprove(Arrays.asList(sysOrg.getId()), realName, FlowApproveNameEnum.DIRECTOR);
|
|
|
+ List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(sysUser.getOrgId(), true, false);
|
|
|
+ Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
|
|
|
+ approveUserResultList.addAll(sysUserService.filterFlowPrivilege(sysUser.getSchoolId(), orgIds, true, FlowApproveNameEnum.DIRECTOR, realName));
|
|
|
+ return approveUserResultList;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -865,6 +934,29 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取院长审批人
|
|
|
+ *
|
|
|
+ * @param orgIds
|
|
|
+ * @param realName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ApproveUserResult> findByJxzyyTopDirectorOrPresidentApprove(List<Long> orgIds, String realName, FlowApproveNameEnum flowApproveNameEnum) {
|
|
|
+ if (Objects.nonNull(orgIds) && orgIds.size() > 0) {
|
|
|
+ Long schoolId = SystemConstant.getHeadOrUserSchoolId();
|
|
|
+ Set<SysOrg> sysOrgSet = new HashSet<>();
|
|
|
+ for (Long l : orgIds) {
|
|
|
+ sysOrgSet.addAll(sysOrgService.findByJxzyyConnectByParentId(l, OrgTypeEnum.SCHOOL));
|
|
|
+ }
|
|
|
+ Set<Long> orgIdsSet = sysOrgSet.stream().map(s -> s.getId()).collect(Collectors.toSet());
|
|
|
+ List<ApproveUserResult> approveUserResultList = sysUserService.filterFlowPrivilege(schoolId, orgIdsSet, true, flowApproveNameEnum, realName);
|
|
|
+ return approveUserResultList;
|
|
|
+ } else {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取同级别下一级审批人
|
|
|
*
|