diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java index 367d449b..99031ddc 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/controller/BusProjectTeamController.java @@ -18,6 +18,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq; import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq; import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq; +import org.dromara.project.domain.resp.projectteam.ProjectTeamForemanResp; import org.dromara.project.domain.vo.BusProjectTeamVo; import org.dromara.project.service.IBusProjectTeamService; import org.springframework.validation.annotation.Validated; @@ -48,6 +49,16 @@ public class BusProjectTeamController extends BaseController { return busProjectTeamService.queryPageList(req, pageQuery); } + /** + * 根据项目id查询项目班组班组长信息列表 + */ + @SaCheckPermission("project:projectTeam:list") + @GetMapping("/listForeman/{projectId}") + public R> listForeman(@NotNull(message = "项目id不能为空") + @PathVariable Long projectId) { + return R.ok(busProjectTeamService.queryForemanList(projectId)); + } + /** * 导出项目班组列表 */ diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java index 2a225dc9..e085160a 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/IBusProjectTeamService.java @@ -9,6 +9,7 @@ import org.dromara.project.domain.BusProjectTeam; import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq; import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq; import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq; +import org.dromara.project.domain.resp.projectteam.ProjectTeamForemanResp; import org.dromara.project.domain.vo.BusProjectTeamVo; import java.util.Collection; @@ -72,6 +73,14 @@ public interface IBusProjectTeamService extends IService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 查询项目班组和班组长分页列表 + * + * @param projectId 项目id + * @return 项目班组和班组长分页列表 + */ + List queryForemanList(Long projectId); + /** * 获取项目班组视图对象 * diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java index 1dab2097..dcf5a29c 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectTeamServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.project.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -13,20 +14,30 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.project.domain.BusConstructionUser; import org.dromara.project.domain.BusProjectTeam; +import org.dromara.project.domain.BusProjectTeamMember; +import org.dromara.project.domain.enums.ProjectTeamMemberPostEnum; import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq; import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq; import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq; +import org.dromara.project.domain.resp.projectteam.ProjectTeamForemanResp; import org.dromara.project.domain.vo.BusProjectTeamVo; import org.dromara.project.mapper.BusProjectTeamMapper; +import org.dromara.project.service.IBusConstructionUserService; import org.dromara.project.service.IBusProjectService; +import org.dromara.project.service.IBusProjectTeamMemberService; import org.dromara.project.service.IBusProjectTeamService; import org.springframework.beans.BeanUtils; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** * 项目班组Service业务层处理 @@ -41,6 +52,14 @@ public class BusProjectTeamServiceImpl extends ServiceImpl queryForemanList(Long projectId) { + List projectTeamList = this.list(Wrappers.lambdaQuery(BusProjectTeam.class).eq(BusProjectTeam::getProjectId, projectId)); + if (CollUtil.isEmpty(projectTeamList)) { + return List.of(); + } + // 获取项目班组id列表 + List teamIdList = projectTeamList.stream().map(BusProjectTeam::getId).toList(); + // 获取项目班组班组长id列表 + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(BusProjectTeamMember.class) + .select(BusProjectTeamMember::getMemberId) + .eq(BusProjectTeamMember::getProjectId, projectId) + .in(BusProjectTeamMember::getTeamId, teamIdList) + .eq(BusProjectTeamMember::getPostId, ProjectTeamMemberPostEnum.FOREMAN.getValue()); + Set foremanIdList = projectTeamMemberService.list(lqw).stream() + .map(BusProjectTeamMember::getMemberId).collect(Collectors.toSet()); + // 获取项目班组长信息 + Map> foremanMap = constructionUserService.listByIds(foremanIdList).stream() + .collect(Collectors.groupingBy(BusConstructionUser::getTeamId)); + // 封装数据 + return projectTeamList.stream().map(projectTeam -> { + ProjectTeamForemanResp projectTeamForemanResp = new ProjectTeamForemanResp(); + projectTeamForemanResp.setId(projectTeam.getId()); + projectTeamForemanResp.setTeamName(projectTeam.getTeamName()); + projectTeamForemanResp.setProjectId(projectTeam.getProjectId()); + if (foremanMap.containsKey(projectTeam.getId())) { + BusConstructionUser constructionUser = foremanMap.get(projectTeam.getId()).get(0); + projectTeamForemanResp.setForemanId(constructionUser.getId()); + projectTeamForemanResp.setForemanName(constructionUser.getUserName()); + } + return projectTeamForemanResp; + }).toList(); + } + /** * 获取项目班组视图对象 * diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/BusSafetyInspection.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/BusSafetyInspection.java index 05512807..0d1d13d6 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/BusSafetyInspection.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/BusSafetyInspection.java @@ -118,12 +118,12 @@ public class BusSafetyInspection extends BaseEntity { /** * 检查附件 */ - private Long checkFile; + private String checkFile; /** * 整改附件 */ - private Long rectificationFile; + private String rectificationFile; /** * 备注 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionCreateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionCreateReq.java index 1ae6959f..8e6045d0 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionCreateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionCreateReq.java @@ -104,12 +104,12 @@ public class SafetyInspectionCreateReq implements Serializable { /** * 检查附件 */ - private Long checkFile; + private String checkFile; /** * 整改附件 */ - private Long rectificationFile; + private String rectificationFile; /** * 备注 diff --git a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionUpdateReq.java b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionUpdateReq.java index 9c2ea4f8..47a9fad4 100644 --- a/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionUpdateReq.java +++ b/RuoYi-Vue-Plus/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/domain/req/safetyinspection/SafetyInspectionUpdateReq.java @@ -109,12 +109,12 @@ public class SafetyInspectionUpdateReq implements Serializable { /** * 检查附件 */ - private Long checkFile; + private String checkFile; /** * 整改附件 */ - private Long rectificationFile; + private String rectificationFile; /** * 备注