更新工作汇报相关代码

This commit is contained in:
许允枞 2025-02-12 15:12:40 +08:00
parent dc28a00757
commit d7ce59ce52
5 changed files with 37 additions and 3 deletions

View File

@ -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<WorkReportMapper, WorkRep
@Resource
private RoleService roleService;
@Resource
private PermissionApi permissionApi;
@Override
public Integer createReport(WorkReportSaveReqVO createReqVO) {
// 插入
@ -58,6 +67,8 @@ public class WorkReportServiceImpl extends ServiceImpl<WorkReportMapper, WorkRep
public void updateReport(WorkReportSaveReqVO updateReqVO) {
// 校验存在
validateReportExists(updateReqVO.getId());
// 将汇报对象集合转换为字符串
updateReqVO.setReportTo(updateReqVO.getReportTos().stream().map(String::valueOf).collect(Collectors.joining(",")));
// 更新
WorkReport updateObj = BeanUtils.toBean(updateReqVO, WorkReport.class);
reportMapper.updateById(updateObj);
@ -84,6 +95,19 @@ public class WorkReportServiceImpl extends ServiceImpl<WorkReportMapper, WorkRep
@Override
public IPage<WorkReportRespVO> getReportPage(Page<WorkReport> page, WorkReportPageReqVO pageReqVO) {
//根据dictType查询角色
List<DictDataRespDTO> roleList = dictDataApi.getDictDataList(pageReqVO.getDictType());
//公司高层角色code集合
List<String> codes = roleList.stream().map(DictDataRespDTO::getValue).collect(Collectors.toList());
Map<Long, List<String>> longListMap = permissionApi.roleCodesByUserIds(Collections.singletonList(SecurityFrameworkUtils.getLoginUserId()));
List<String> roleKey = longListMap.get(SecurityFrameworkUtils.getLoginUserId());
//判断当前登陆人的角色是否是公司高层
boolean isCompanyLeader = roleKey != null && roleKey.stream().anyMatch(codes::contains);
if (isCompanyLeader) {
pageReqVO.setUserId(null);
}
return reportMapper.selectPage(page, pageReqVO);
}

View File

@ -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;
}

View File

@ -37,4 +37,9 @@ public class WorkReportSaveReqVO {
@Schema(description = "汇报对象集合")
private List<Long> reportTos;
/**
* 汇报对象
*/
private String reportTo;
}

View File

@ -35,6 +35,7 @@
OR FIND_IN_SET(#{pageReqVO.userId}, wr.report_to) > 0) -- 查询汇报给自己的汇报
</if>
</where>
ORDER BY wr.create_time DESC
</select>
<select id="queryReportCount" resultType="java.lang.Long" parameterType="java.lang.Long">
SELECT COUNT(*)

View File

@ -217,7 +217,7 @@ where sig.partner_id =#{partnerId}
info.customer_source as customerSource, info.other_phone as otherPhone,oi.sku_id as skuId, oi.sku_name as skuName,oi.goods_price as goodsPrice
from
inspection_info info
LEFT JOIN inspection_step_info step ON info.id = step.inspection_info_id
LEFT JOIN inspection_step_info step ON info.id = st ep.inspection_info_id
INNER JOIN system_users su on su.id = info.user_id
INNER JOIN order_info oi on oi.id = info.inspection_order_id
WHERE info.status = #{status} and info.partner_id = #{partnerId}