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 7c80bce7..c588c5c8 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,8 +1,10 @@ package cn.iocoder.yudao.module.workReport.service.impl; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 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.permission.PermissionApi; 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; @@ -15,11 +17,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + import javax.annotation.Resource; + import org.springframework.validation.annotation.Validated; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @@ -41,6 +47,9 @@ public class WorkReportServiceImpl extends ServiceImpl getReportPage(Page page, WorkReportPageReqVO pageReqVO) { + //根据dictType查询角色 + List roleList = dictDataApi.getDictDataList(pageReqVO.getDictType()); + //公司高层角色code集合 + List codes = roleList.stream().map(DictDataRespDTO::getValue).collect(Collectors.toList()); + + Map> longListMap = permissionApi.roleCodesByUserIds(Collections.singletonList(SecurityFrameworkUtils.getLoginUserId())); + List roleKey = longListMap.get(SecurityFrameworkUtils.getLoginUserId()); + + //判断当前登陆人的角色是否是公司高层 + boolean isCompanyLeader = roleKey != null && roleKey.stream().anyMatch(codes::contains); + if (isCompanyLeader) { + pageReqVO.setUserId(null); + } return reportMapper.selectPage(page, pageReqVO); } 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 836a75fa..c6ce16e0 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 @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.workReport.vo; +import cn.hutool.core.date.DateTime; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -22,8 +23,8 @@ public class WorkReportPageReqVO extends PageParam { private String reportTopic; @Schema(description = "汇报时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] reportTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private String[] reportTime; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @@ -38,4 +39,7 @@ public class WorkReportPageReqVO extends PageParam { @Schema(description = "用户id") private Long userId; + @Schema(description = "字典类型(公司高层的字典类型)") + private String dictType; + } \ 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 aaafbfb7..3c6a3a08 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 @@ -37,4 +37,9 @@ public class WorkReportSaveReqVO { @Schema(description = "汇报对象集合") private List reportTos; + /** + * 汇报对象 + */ + private String reportTo; + } \ 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 0d0abd22..b10b18ae 100644 --- a/dl-module-company/src/main/resources/mapper/workReport/WorkReportMapper.xml +++ b/dl-module-company/src/main/resources/mapper/workReport/WorkReportMapper.xml @@ -35,6 +35,7 @@ OR FIND_IN_SET(#{pageReqVO.userId}, wr.report_to) > 0) -- 查询汇报给自己的汇报 + ORDER BY wr.create_time DESC