diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/controller/admin/WorkReportController.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/controller/admin/WorkReportController.java index 63d688d5..4d47d9fb 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/controller/admin/WorkReportController.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/controller/admin/WorkReportController.java @@ -1,8 +1,6 @@ package cn.iocoder.yudao.module.workReport.controller.admin; -import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; -import cn.iocoder.yudao.module.property.entity.Property; import cn.iocoder.yudao.module.workReport.entity.WorkReport; import cn.iocoder.yudao.module.workReport.service.WorkReportService; import cn.iocoder.yudao.module.workReport.vo.WorkReportPageReqVO; @@ -21,8 +19,10 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; import java.io.IOException; +import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -45,7 +45,7 @@ public class WorkReportController { @PostMapping("/create") @Operation(summary = "创建工作汇报") - @PreAuthorize("@ss.hasPermission('work:report:create')") +// @PreAuthorize("@ss.hasPermission('work:report:create')") public CommonResult createReport(@Valid @RequestBody WorkReportSaveReqVO createReqVO) { createReqVO.setUserId(Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser()).getId()); return success(reportService.createReport(createReqVO)); @@ -53,7 +53,7 @@ public class WorkReportController { @PutMapping("/update") @Operation(summary = "更新工作汇报") - @PreAuthorize("@ss.hasPermission('work:report:update')") +// @PreAuthorize("@ss.hasPermission('work:report:update')") public CommonResult updateReport(@Valid @RequestBody WorkReportSaveReqVO updateReqVO) { reportService.updateReport(updateReqVO); return success(true); @@ -62,7 +62,7 @@ public class WorkReportController { @DeleteMapping("/delete") @Operation(summary = "删除工作汇报") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('work:report:delete')") +// @PreAuthorize("@ss.hasPermission('work:report:delete')") public CommonResult deleteReport(@RequestParam("id") Integer id) { reportService.deleteReport(id); return success(true); @@ -71,17 +71,22 @@ public class WorkReportController { @GetMapping("/get") @Operation(summary = "获得工作汇报") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('work:report:query')") +// @PreAuthorize("@ss.hasPermission('work:report:query')") public CommonResult getReport(@RequestParam("id") Integer id) { WorkReport report = reportService.getReport(id); - return success(BeanUtils.toBean(report, WorkReportRespVO.class)); + WorkReportRespVO bean = BeanUtils.toBean(report, WorkReportRespVO.class); + //将汇报对象转为数组 + bean.setReportTos(Arrays.stream(report.getReportTo().split(",")).map(Long::parseLong) // 转换为 Long 类型 + .collect(Collectors.toList())); + return success(bean); } @GetMapping("/page") @Operation(summary = "获得工作汇报分页") - @PreAuthorize("@ss.hasPermission('work:report:query')") +// @PreAuthorize("@ss.hasPermission('work:report:query')") public CommonResult> getReportPage(@Valid WorkReportPageReqVO pageReqVO) { Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + pageReqVO.setUserId(Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser()).getId()); IPage pageResult = reportService.getReportPage(page, pageReqVO); return success(pageResult); } @@ -99,4 +104,14 @@ public class WorkReportController { ExcelUtils.write(response, "工作汇报.xls", "数据", WorkReportRespVO.class, list); } + /** + * 查询汇报对象 + * @param dictType 字典类型 + * @return + */ + @GetMapping("/queryReportTo") + public CommonResult queryReportTo(String dictType) { + return success(reportService.queryReportTo(dictType)); + } + } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/entity/WorkReport.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/entity/WorkReport.java index 4cbb690e..0c2b178a 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/entity/WorkReport.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/entity/WorkReport.java @@ -43,9 +43,17 @@ public class WorkReport extends TenantBaseDO { * 汇报内容 */ private String reportContent; + /** + * 汇报对象 + */ + private String reportTo; /** * 汇报人 */ private Integer userId; + /** + * 附件 + */ + private String filePath; } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/mapper/WorkReportMapper.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/mapper/WorkReportMapper.java index faf6bf2a..7b00fcdb 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/mapper/WorkReportMapper.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/mapper/WorkReportMapper.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 工作汇报 Mapper @@ -19,5 +20,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface WorkReportMapper extends BaseMapper { - IPage selectPage(Page page, WorkReportPageReqVO pageReqVO); + IPage selectPage(@Param("page") Page page,@Param("pageReqVO") WorkReportPageReqVO pageReqVO); + + Long queryReportCount(@Param("pageReqVO")WorkReportPageReqVO pageReqVO); } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/WorkReportService.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/WorkReportService.java index 52a90751..09babdb9 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/WorkReportService.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/WorkReportService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.workReport.service; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.module.workReport.entity.WorkReport; import cn.iocoder.yudao.module.workReport.vo.WorkReportPageReqVO; import cn.iocoder.yudao.module.workReport.vo.WorkReportRespVO; @@ -57,4 +58,18 @@ public interface WorkReportService extends IService { */ IPage getReportPage(Page page, WorkReportPageReqVO pageReqVO); + /** + * 查询汇报对象 + * + * @param dictType 字典类型 + * @return + */ + List queryReportTo(String dictType); + + /** + * 查询汇报对象数量 + * + * @return + */ + Long queryReportCount(WorkReportPageReqVO pageReqVO); } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/impl/WorkReportServiceImpl.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/impl/WorkReportServiceImpl.java index 97f533f0..7c80bce7 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/impl/WorkReportServiceImpl.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/service/impl/WorkReportServiceImpl.java @@ -1,6 +1,10 @@ package cn.iocoder.yudao.module.workReport.service.impl; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; +import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; +import cn.iocoder.yudao.module.system.service.permission.RoleService; import cn.iocoder.yudao.module.workReport.entity.WorkReport; import cn.iocoder.yudao.module.workReport.mapper.WorkReportMapper; import cn.iocoder.yudao.module.workReport.service.WorkReportService; @@ -15,6 +19,8 @@ import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import java.util.List; +import java.util.stream.Collectors; /** @@ -29,10 +35,20 @@ public class WorkReportServiceImpl extends ServiceImpl queryReportTo(String dictType) { + //根据dictType查询角色 + List roleList = dictDataApi.getDictDataList(dictType); + List codes = roleList.stream().map(DictDataRespDTO::getValue).collect(Collectors.toList()); + + //根据角色查询用户 + return roleService.getUserListByCodes(codes); + } + + /** + * 查询汇报对象数量 + * + * @param userId + * @return + */ + @Override + public Long queryReportCount(WorkReportPageReqVO pageReqVO) { + return reportMapper.queryReportCount(pageReqVO); + } + } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportPageReqVO.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportPageReqVO.java index 988f2f86..836a75fa 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportPageReqVO.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportPageReqVO.java @@ -15,6 +15,9 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class WorkReportPageReqVO extends PageParam { + @Schema(description = "服务包id") + private String servicePackageId; + @Schema(description = "汇报主题") private String reportTopic; @@ -26,7 +29,13 @@ public class WorkReportPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; - @Schema(description = "汇报人", example = "24401") - private Integer userId; + @Schema(description = "汇报人") + private String userName; + + @Schema(description = "汇报主题或汇报人") + private String topicOrUserName; + + @Schema(description = "用户id") + private Long userId; } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportRespVO.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportRespVO.java index 3765dd4c..ff862b2b 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportRespVO.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.workReport.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -16,6 +17,9 @@ public class WorkReportRespVO { @ExcelProperty("id") private Integer id; + @Schema(description = "服务包id") + private String servicePackageId; + @Schema(description = "汇报主题") @ExcelProperty("汇报主题") private String reportTopic; @@ -29,15 +33,22 @@ public class WorkReportRespVO { private String reportContent; @Schema(description = "创建时间") - @ExcelProperty("创建时间") private LocalDateTime createTime; @Schema(description = "汇报人", example = "24401") - @ExcelProperty("汇报人") private Integer userId; @Schema(description = "汇报人姓名", example = "李四") @ExcelProperty("汇报人姓名") private String userName; + @Schema(description = "汇报对象集合") + private List reportTos; + + @Schema(description = "汇报人头像") + private String avatar; + + @Schema(description = "附件") + private String filePath; + } \ No newline at end of file diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportSaveReqVO.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportSaveReqVO.java index 43c91969..aaafbfb7 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportSaveReqVO.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/workReport/vo/WorkReportSaveReqVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.workReport.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -14,10 +15,14 @@ public class WorkReportSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6601") private Integer id; + @Schema(description = "服务套餐id") + private String servicePackageId; + @Schema(description = "汇报主题") private String reportTopic; @Schema(description = "汇报时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime reportTime; @Schema(description = "汇报内容") @@ -26,4 +31,10 @@ public class WorkReportSaveReqVO { @Schema(description = "用户id") private Long userId; + @Schema(description = "附件") + private String filePath; + + @Schema(description = "汇报对象集合") + private List reportTos; + } \ No newline at end of file diff --git a/dl-module-company/src/main/resources/mapper/workReport/WorkReportMapper.xml b/dl-module-company/src/main/resources/mapper/workReport/WorkReportMapper.xml index 24f763fb..0d0abd22 100644 --- a/dl-module-company/src/main/resources/mapper/workReport/WorkReportMapper.xml +++ b/dl-module-company/src/main/resources/mapper/workReport/WorkReportMapper.xml @@ -6,10 +6,11 @@ + + \ No newline at end of file diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionUtilController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionUtilController.java index f39b67ed..542094fa 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionUtilController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionUtilController.java @@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.inspection.service.IInspectionFileService; import cn.iocoder.yudao.module.system.api.permission.PermissionApi; import cn.iocoder.yudao.module.system.api.permission.RoleApi; import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO; +import cn.iocoder.yudao.module.workReport.service.WorkReportService; +import cn.iocoder.yudao.module.workReport.vo.WorkReportPageReqVO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -48,6 +50,9 @@ public class InspectionUtilController { @Resource private IInspectionFileService fileService; + @Resource + private WorkReportService workReportService; + /** * 根据用户取出当前用户的角色,只针对检测 * @@ -94,6 +99,12 @@ public class InspectionUtilController { map.put("equ", equs.getTotal()); long fileCount = fileService.count(new LambdaQueryWrapper().eq(InspectionFile::getType, "2")); map.put("file", fileCount); + //查询汇报数量 + WorkReportPageReqVO workReportPageReqVO = new WorkReportPageReqVO(); + workReportPageReqVO.setUserId(SecurityFrameworkUtils.getLoginUserId()); + workReportPageReqVO.setServicePackageId("jiance"); + Long reportCount = workReportService.queryReportCount(workReportPageReqVO); + map.put("report", reportCount); return success(map); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java index a2aa0bee..58ac9826 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java @@ -7,7 +7,7 @@ import java.util.Collection; import java.util.List; /** - * 角色 API 接口 + * API 接口 * * @author 芋道源码 */ @@ -15,7 +15,7 @@ public interface RoleApi { /** * 校验角色们是否有效。如下情况,视为无效: - * 1. 角色编号不存在 + * 1. 编号不存在 * 2. 角色被禁用 * * @param ids 角色编号数组 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java index f67d6423..0cefc4d0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java @@ -55,4 +55,6 @@ public interface UserRoleMapper extends BaseMapperX { List userCodes(@Param("userIds") List userIds); List selectByRoleIds(@Param("roleIds") List roleIds); + + List selectByRoleCodes(@Param("codes") List codes); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java index 2b609d10..06167262 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java @@ -25,7 +25,7 @@ public interface RoleService { * 创建角色 * * @param createReqVO 创建角色信息 - * @param type 角色类型 + * @param type 角色类型 * @return 角色编号 */ Long createRole(@Valid RoleSaveReqVO createReqVO, Integer type); @@ -50,13 +50,14 @@ public interface RoleService { * @param code 角色编号 */ void deleteRole(String code); + RoleDO queryRole(String code); /** * 设置角色的数据权限 * - * @param id 角色编号 - * @param dataScope 数据范围 + * @param id 角色编号 + * @param dataScope 数据范围 * @param dataScopeDeptIds 部门编号数组 */ void updateRoleDataScope(Long id, Integer dataScope, Set dataScopeDeptIds); @@ -148,20 +149,23 @@ public interface RoleService { * @param ids 角色编号数组 */ void validateRoleList(Collection ids); + @TenantIgnore RoleDO getRoleByCodeWithoutTenant(String rescueOtherNotify); /** * 查询某个角色的用户 - * @author vinjor-M - * @date 15:58 2024/10/26 + * * @param roleCode 角色code * @return java.util.List - **/ - List selectByRoleCode(Long tenantId,String roleCode); + * @author vinjor-M + * @date 15:58 2024/10/26 + **/ + List selectByRoleCode(Long tenantId, String roleCode); /** * 根据服务套餐查询角色 + * * @param roleDO * @return */ @@ -171,6 +175,7 @@ public interface RoleService { /** * 根据用户id查询角色 + * * @param userId * @return */ @@ -178,14 +183,25 @@ public interface RoleService { /** * 根据角色id查询用户 + * * @param roleId * @return */ List getListByUserId(Integer roleId); + /** * 根据角色id查询用户 + * * @param roleId * @return */ List getListByUserIds(List roleId); + + /** + * 根据角色code查询用户 + * + * @param codes 角色code数组 + * @return + */ + List getUserListByCodes(List codes); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java index a1081919..bda18576 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java @@ -400,6 +400,17 @@ public class RoleServiceImpl implements RoleService { return userDTOS; } + /** + * 根据角色code查询用户 + * + * @param codes 角色code数组 + * @return + */ + @Override + public List getUserListByCodes(List codes) { + return userRoleMapper.selectByRoleCodes(codes); + } + /** * 获得自身的代理对象,解决 AOP 生效问题 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml index d140b45d..d1a9d37c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml @@ -80,4 +80,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) +