From d7ce59ce52380bc7ca127e9cec8903eec23c3adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Wed, 12 Feb 2025 15:12:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B7=A5=E4=BD=9C=E6=B1=87?= =?UTF-8?q?=E6=8A=A5=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkReportServiceImpl.java | 24 +++++++++++++++++++ .../workReport/vo/WorkReportPageReqVO.java | 8 +++++-- .../workReport/vo/WorkReportSaveReqVO.java | 5 ++++ .../mapper/workReport/WorkReportMapper.xml | 1 + .../inspection/AppInspectionPartnerMapper.xml | 2 +- 5 files changed, 37 insertions(+), 3 deletions(-) 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