diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/domain/form/FirmReportsUpdateForm.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/domain/form/FirmReportsUpdateForm.java index 83d98b1..035f48e 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/domain/form/FirmReportsUpdateForm.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/domain/form/FirmReportsUpdateForm.java @@ -13,7 +13,7 @@ import lombok.Data; */ @Data -public class FirmReportsUpdateForm { +public class FirmReportsUpdateForm extends FirmReportsAddForm{ @Schema(description = "主键ID,唯一标识每条记录", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "主键ID,唯一标识每条记录 不能为空") diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/service/FirmReportsService.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/service/FirmReportsService.java index 82f84af..f2f43e3 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/service/FirmReportsService.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/cost/service/FirmReportsService.java @@ -59,14 +59,16 @@ public class FirmReportsService { List roleIdList = roleEmployeeService.getRoleIdList(requestUser.getEmployeeId()); String roleCode = roleIdList.get(0).getRoleCode(); - // 检查角色类型 - boolean isCeo = UserTypeEnum.CEO.getDesc().equals(roleCode); - if (isCeo) { - // 如果是CEO角色,查询自己的数据和已经提交的数据(审批状态大于等于3的数据) - queryForm.setUserId(requestUser.getEmployeeId()); - queryForm.setIncludeSubmitted(true); // 设置查询参数以包括已提交的数据 - }else { - queryForm.setUserId(requestUser.getEmployeeId()); + if (!UserTypeEnum.Admin.getDesc().equals(roleCode)) { + // 检查角色类型 + boolean isCeo = UserTypeEnum.CEO.getDesc().equals(roleCode); + if (isCeo) { + // 如果是CEO角色,查询自己的数据和已经提交的数据(审批状态大于等于3的数据) + queryForm.setUserId(requestUser.getEmployeeId()); + queryForm.setIncludeSubmitted(true); // 设置查询参数以包括已提交的数据 + }else { + queryForm.setUserId(requestUser.getEmployeeId()); + } } List list = firmReportsDao.queryPage(page, queryForm); diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/letter/service/LetterService.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/letter/service/LetterService.java index c74c269..68614d0 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/letter/service/LetterService.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/letter/service/LetterService.java @@ -65,8 +65,11 @@ public class LetterService { //律师只看到自己,律所看到自己和律所下面的,管理员看全部 String roleCode = getRoleCode(); Page page = SmartPageUtil.convert2PageQuery(queryForm); - if (!UserTypeEnum.CEO.getDesc().equals(roleCode)){ - queryForm.setUserId(AdminRequestUtil.getRequestUser().getUserId()); + + if (!UserTypeEnum.Admin.getDesc().equals(roleCode)) { + if (!UserTypeEnum.CEO.getDesc().equals(roleCode)) { + queryForm.setUserId(AdminRequestUtil.getRequestUser().getUserId()); + } } List list = letterDao.queryPage(page, queryForm); //查询用户名称 diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyApplyService.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyApplyService.java index 97b63e4..d6e9f2d 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyApplyService.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/penalty/service/PenaltyApplyService.java @@ -64,14 +64,15 @@ public class PenaltyApplyService { // 安全获取角色代码,避免NPE String roleCode = getUserRoleCode(requestUser); - if (roleCode.equals(UserTypeEnum.CEO.getDesc())) { - queryForm.setUserType(roleCode); - }else if(roleCode.equals(UserTypeEnum.CTO.getDesc())){ - queryForm.setDepartmentId(requestUser.getDepartmentId()); - }else { - queryForm.setUserId(requestUser.getUserId()); + if (!UserTypeEnum.Admin.getDesc().equals(roleCode)) { + if (roleCode.equals(UserTypeEnum.CEO.getDesc())) { + queryForm.setUserType(roleCode); + } else if (roleCode.equals(UserTypeEnum.CTO.getDesc())) { + queryForm.setDepartmentId(requestUser.getDepartmentId()); + } else { + queryForm.setUserId(requestUser.getUserId()); + } } - List list = penaltyApplyDao.queryPage(page, queryForm); return SmartPageUtil.convert2PageResult(page, list); } diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java index 671d401..82555f6 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/service/service/ServiceApplicationsService.java @@ -182,54 +182,54 @@ public class ServiceApplicationsService { // 检查角色类型 boolean isAssociationRole = UserTypeEnum.CEO.getDesc().equals(roleCode); boolean isFirmAdminRole = UserTypeEnum.CTO.getDesc().equals(roleCode); // 律所管理员 - - if (isAssociationRole) { - // 协会用户(CEO):可以看到所有律所提交的数据,但只显示associationAuditStatus为待审核(1)、通过(3)和拒绝(4)的数据和自己创建的数据 - // CEO作为最高权限用户,不需要限制在特定部门范围内,直接设置includeAssociationReviewed即可 - queryForm.setIncludeAssociationReviewed(true); - } else if (isFirmAdminRole) { - // 律所管理员(cto):能看到自己部门范围内的数据,但只显示firmAuditStatus为待审核、通过和拒绝的数据和自己创建的数据 - Integer oneByRoleId = dataScopeViewService.getOneByRoleId(roleIdList.get(0).getRoleId()); - // 获取自己部门范围内的数据 - List departmentEmployees = new ArrayList<>(); - if (DataScopeViewTypeEnum.ME.getValue().equals(oneByRoleId)) { - departmentEmployees = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.ME, requestUser.getUserId()); - } else if (DataScopeViewTypeEnum.DEPARTMENT.getValue().equals(oneByRoleId)) { - departmentEmployees = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.DEPARTMENT, requestUser.getUserId()); - } - - // 确保包含当前用户ID,以便能看到自己创建的数据 - if (departmentEmployees == null) { - departmentEmployees = new ArrayList<>(); - } - if (!departmentEmployees.contains(requestUser.getUserId())) { - departmentEmployees.add(requestUser.getUserId()); - } - - queryForm.setEmployeeIdList(departmentEmployees); - // 律所管理员可以查看部门内所有已审核数据以及自己创建的有效数据(明确排除未提交的草稿) - queryForm.setIncludeFirmReviewed(true); - } else { - // 律所普通用户:只能看到自己提交的数据,包括所有firmAuditStatus状态 - Integer oneByRoleId = dataScopeViewService.getOneByRoleId(roleIdList.get(0).getRoleId()); - if (DataScopeViewTypeEnum.ME.getValue().equals(oneByRoleId)) { - longs = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.ME, requestUser.getUserId()); - } else if (DataScopeViewTypeEnum.DEPARTMENT.getValue().equals(oneByRoleId)) { - longs = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.DEPARTMENT, requestUser.getUserId()); - } - // 确保普通用户至少能看到自己的数据,如果longs为空或不包含当前用户ID,则添加当前用户ID - if (longs == null) { - longs = new ArrayList<>(); - } - if (!longs.contains(requestUser.getUserId())) { - longs.add(requestUser.getUserId()); + if (!UserTypeEnum.Admin.getDesc().equals(roleCode)) { + if (isAssociationRole) { + // 协会用户(CEO):可以看到所有律所提交的数据,但只显示associationAuditStatus为待审核(1)、通过(3)和拒绝(4)的数据和自己创建的数据 + // CEO作为最高权限用户,不需要限制在特定部门范围内,直接设置includeAssociationReviewed即可 + queryForm.setIncludeAssociationReviewed(true); + } else if (isFirmAdminRole) { + // 律所管理员(cto):能看到自己部门范围内的数据,但只显示firmAuditStatus为待审核、通过和拒绝的数据和自己创建的数据 + Integer oneByRoleId = dataScopeViewService.getOneByRoleId(roleIdList.get(0).getRoleId()); + // 获取自己部门范围内的数据 + List departmentEmployees = new ArrayList<>(); + if (DataScopeViewTypeEnum.ME.getValue().equals(oneByRoleId)) { + departmentEmployees = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.ME, requestUser.getUserId()); + } else if (DataScopeViewTypeEnum.DEPARTMENT.getValue().equals(oneByRoleId)) { + departmentEmployees = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.DEPARTMENT, requestUser.getUserId()); + } + + // 确保包含当前用户ID,以便能看到自己创建的数据 + if (departmentEmployees == null) { + departmentEmployees = new ArrayList<>(); + } + if (!departmentEmployees.contains(requestUser.getUserId())) { + departmentEmployees.add(requestUser.getUserId()); + } + + queryForm.setEmployeeIdList(departmentEmployees); + // 律所管理员可以查看部门内所有已审核数据以及自己创建的有效数据(明确排除未提交的草稿) + queryForm.setIncludeFirmReviewed(true); + } else { + // 律所普通用户:只能看到自己提交的数据,包括所有firmAuditStatus状态 + Integer oneByRoleId = dataScopeViewService.getOneByRoleId(roleIdList.get(0).getRoleId()); + if (DataScopeViewTypeEnum.ME.getValue().equals(oneByRoleId)) { + longs = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.ME, requestUser.getUserId()); + } else if (DataScopeViewTypeEnum.DEPARTMENT.getValue().equals(oneByRoleId)) { + longs = dataScopeViewService.getCanViewEmployeeId(DataScopeViewTypeEnum.DEPARTMENT, requestUser.getUserId()); + } + // 确保普通用户至少能看到自己的数据,如果longs为空或不包含当前用户ID,则添加当前用户ID + if (longs == null) { + longs = new ArrayList<>(); + } + if (!longs.contains(requestUser.getUserId())) { + longs.add(requestUser.getUserId()); + } + queryForm.setEmployeeIdList(longs); + // 普通用户不需要审核状态过滤,可以看到自己所有状态的数据 + queryForm.setNoStatusFilter(true); } - queryForm.setEmployeeIdList(longs); - // 普通用户不需要审核状态过滤,可以看到自己所有状态的数据 - queryForm.setNoStatusFilter(true); + queryForm.setCurrentUserId(requestUser.getUserId()); // 传递当前用户ID用于SQL中的特殊过滤 } - queryForm.setCurrentUserId(requestUser.getUserId()); // 传递当前用户ID用于SQL中的特殊过滤 - List list = serviceApplicationsDao.queryPage(page, queryForm); if (!CollectionUtils.isEmpty(list)) { //翻译单位名称和用户名称 @@ -1440,6 +1440,7 @@ public class ServiceApplicationsService { for (LawyerStatisticsVO statisticsVO : lawyerStatisticsVOPageResult) { // 创建新的查询表单对象以避免修改原始对象 LawyerStatisticsQueryForm queryForm = SmartBeanUtil.copy(originalQueryForm, LawyerStatisticsQueryForm.class); + queryForm.setFirmId(statisticsVO.getFirmId()); if (queryForm.getQuarter() == null) { // 如果没有指定季度,使用上一季度的时间范围 TimeVo startQuarter = DateTimeUtil.getStartQuarter(); diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java index 1652ec7..c4eee41 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java @@ -103,4 +103,5 @@ public class EmployeeEntity { * 是否有成本查看权限 */ private Boolean costVisibleFlag; + private Boolean penaltyFlag; } diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java index e08484a..4ef8e04 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java @@ -68,4 +68,6 @@ public class EmployeeAddForm { * 是否有成本查看权限 */ private Boolean costVisibleFlag; + + private Boolean penaltyFlag; } diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java index c237b3a..d64a499 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java @@ -66,4 +66,5 @@ public class EmployeeVO { * 是否有成本查看权限 */ private Boolean costVisibleFlag; + private Boolean penaltyFlag; } diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java index 552b309..b3d1638 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java @@ -70,6 +70,8 @@ public class RequestEmployee implements RequestUser, Serializable { */ private Boolean costVisibleFlag; + private Boolean penaltyFlag; + @Override public Long getUserId() { return employeeId; diff --git a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java index 55de814..4b5190c 100644 --- a/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java +++ b/yun-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java @@ -249,13 +249,26 @@ public class LoginService implements StpInterface { (menuVO.getMenuName() != null && !menuVO.getMenuName().contains("成本"))) .collect(Collectors.toList()); } - if (requestEmployee.getLoginName().equals("admin")){ - // 移除成本管理相关的菜单项 - menuAndPointsList = menuAndPointsList.stream() - .filter(menuVO -> - (menuVO.getMenuName() != null && !menuVO.getMenuName().contains("服务申报"))) - .collect(Collectors.toList()); + if (UserTypeEnum.CEO.getDesc().equals(roleList.get(0).getRoleCode())) { + if (null == requestEmployee.getPenaltyFlag() || !requestEmployee.getPenaltyFlag()){ + // 移除无处罚管理相关的菜单项 + menuAndPointsList = menuAndPointsList.stream() + .filter(menuVO -> + (menuVO.getMenuName() != null && !menuVO.getMenuName().contains("无处罚"))) + .collect(Collectors.toList()); + }else { + //只要无处罚的菜单 + menuAndPointsList = menuAndPointsList.stream().filter(menuVO -> + (menuVO.getMenuName() != null && menuVO.getMenuName().contains("无处罚"))).collect(Collectors.toList()); + } } + //if (requestEmployee.getLoginName().equals("admin")){ + // 移除成本管理相关的菜单项 + //menuAndPointsList = menuAndPointsList.stream() + // .filter(menuVO -> + // (menuVO.getMenuName() != null && !menuVO.getMenuName().contains("服务申报"))) + //.collect(Collectors.toList()); + //} loginResultVO.setMenuList(menuAndPointsList); // 上次登录信息 diff --git a/yun-admin/src/main/resources/mapper/cost/FirmReportsMapper.xml b/yun-admin/src/main/resources/mapper/cost/FirmReportsMapper.xml index 1df1fd7..ab42e6f 100644 --- a/yun-admin/src/main/resources/mapper/cost/FirmReportsMapper.xml +++ b/yun-admin/src/main/resources/mapper/cost/FirmReportsMapper.xml @@ -57,6 +57,7 @@ AND t_firm_reports.approval_status = #{queryForm.approvalStatus} + ORDER BY t_firm_reports.update_time DESC diff --git a/yun-admin/src/main/resources/mapper/letter/LetterMapper.xml b/yun-admin/src/main/resources/mapper/letter/LetterMapper.xml index 2dbab50..6567361 100644 --- a/yun-admin/src/main/resources/mapper/letter/LetterMapper.xml +++ b/yun-admin/src/main/resources/mapper/letter/LetterMapper.xml @@ -28,6 +28,7 @@ AND t_letter.user_id = #{queryForm.userId} + order by t_letter.create_time desc @@ -256,7 +256,7 @@ LEFT JOIN t_department d ON tsa.firm_id = d.department_id tsa.deleted_flag = 0 - AND tsa.firm_audit_status = 3 + AND tsa.association_audit_status = 3 AND tsa.firm_audit_time >= #{queryForm.startTime} @@ -291,7 +291,7 @@ LEFT JOIN t_department d ON tsa.firm_id = d.department_id tsa.deleted_flag = 0 - AND tsa.firm_audit_status = 3 + AND tsa.association_audit_status = 3 AND tsa.firm_audit_time >= #{queryForm.startTime} @@ -324,7 +324,7 @@ LEFT JOIN t_employee e ON tsa.user_id = e.employee_id tsa.deleted_flag = 0 - AND tsa.firm_audit_status = 3 + AND tsa.association_audit_status = 3 AND tsa.firm_audit_time >= #{queryForm.startTime} @@ -336,6 +336,7 @@ GROUP BY tsa.user_id, tsa.certificate_number + LIMIT 1