From 4109e0214f55eca98807574d2a95c95d93778ef0 Mon Sep 17 00:00:00 2001 From: zhanghonghao Date: Mon, 30 Dec 2024 17:59:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3488):=20=E6=8F=90=E4=BE=9B=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=86=85=E7=8F=AD=E7=BB=84=E5=88=97=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/team/feign/OrgProjectTeamApi.java | 27 ++++ .../project/team/dto/OrgProjectTeamDTO.java | 107 +++++++++++++++ .../project/team/enums/ValidationEnum.java | 7 +- .../project/team/req/ListProjectTeamReq.java | 46 +++++++ .../orgmanax/dto/unit/req/ListUnitReq.java | 9 +- .../project/team/dao/OrgProjectTeamDao.java | 15 +++ .../project/team/entity/OrgProjectTeam.java | 125 ++++++++++++++++++ .../team/mapper/OrgProjectTeamMapper.java | 10 ++ .../OrgProjectTeamQueryRepository.java | 119 +++++++++++++++++ .../OrgProjectTeamQueryRepositoryImpl.java | 45 +++++++ .../controller/OrgProjectTeamController.java | 29 ++++ .../team/service/ProjectTeamService.java | 11 ++ .../service/impl/ProjectTeamServiceImpl.java | 32 +++++ 13 files changed, 571 insertions(+), 11 deletions(-) create mode 100644 orgmanax-api/src/main/java/cn/axzo/orgmanax/api/project/team/feign/OrgProjectTeamApi.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/dto/OrgProjectTeamDTO.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/req/ListProjectTeamReq.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/dao/OrgProjectTeamDao.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/entity/OrgProjectTeam.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/mapper/OrgProjectTeamMapper.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/OrgProjectTeamQueryRepository.java create mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/impl/OrgProjectTeamQueryRepositoryImpl.java create mode 100644 orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/controller/OrgProjectTeamController.java create mode 100644 orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/ProjectTeamService.java create mode 100644 orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/impl/ProjectTeamServiceImpl.java diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/project/team/feign/OrgProjectTeamApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/project/team/feign/OrgProjectTeamApi.java new file mode 100644 index 0000000..638c90a --- /dev/null +++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/project/team/feign/OrgProjectTeamApi.java @@ -0,0 +1,27 @@ +package cn.axzo.orgmanax.api.project.team.feign; + +import cn.axzo.foundation.result.ApiResult; +import cn.axzo.orgmanax.dto.project.team.dto.OrgProjectTeamDTO; +import cn.axzo.orgmanax.dto.project.team.req.ListProjectTeamReq; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * 项目内班组api + * 业务表 + */ +@FeignClient( + value = "orgmanax", + url = "${axzo.service.orgmanax:http://orgmanax:8080}") +public interface OrgProjectTeamApi { + + /** + * 列表接口。 + */ + @PostMapping("/api/org/project-team/list") + ApiResult> list(@RequestBody @Validated ListProjectTeamReq req); +} \ No newline at end of file diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/dto/OrgProjectTeamDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/dto/OrgProjectTeamDTO.java new file mode 100644 index 0000000..6d920d6 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/dto/OrgProjectTeamDTO.java @@ -0,0 +1,107 @@ +package cn.axzo.orgmanax.dto.project.team.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/30 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Accessors(chain = true) +public class OrgProjectTeamDTO implements Serializable { + + + private Long id; + + /** + * 工作台ID + */ + private Long workspaceId; + + /** + * 总包ID + */ + private Long entId; + + /** + * 所属单位ID + */ + private Long organizationalUnitId; + + /** + * 所属单位类型: 1:总包 4:专业分包 5:劳务分包 + */ + private Integer organizationalUnitType; + + /** + * 项目内班组组织节点ID + */ + private Long organizationalNodeId; + + /** + * 项目外班组id + */ + private Long platTeamId; + + /** + * 班组长身份id + */ + private Long teamLeaderId; + + /** + * 状态:1-履约中 2-已退场 3-待履约 + */ + private Integer status; + + /** + * 班组进场时间 + */ + private Date joinAt; + + /** + * 班组退场时间 + */ + private Date resignAt; + + /** + * 工期要求开始时间 + */ + private Date beginDate; + + /** + * 工期要求结束时间 + */ + private Date endDate; + + /** + * 班组入驻编号(前端展示) + */ + private String settledCode; + + /** + * 是否删除 0:否 其他:删除 + */ + private Integer isDelete; + + /** + * 创建时间 + */ + private Date createAt; + + private Date updateAt; + + /** + * 工人进场方式 1-普通进场 2-任务单进场 + */ + private Integer enterProjectType = 1; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/enums/ValidationEnum.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/enums/ValidationEnum.java index c3a45e0..19cd1a0 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/enums/ValidationEnum.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/enums/ValidationEnum.java @@ -1,11 +1,12 @@ package cn.axzo.orgmanax.dto.project.team.enums; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; + import java.util.Arrays; import java.util.Objects; import java.util.Optional; -import lombok.AccessLevel; -import lombok.AllArgsConstructor; -import lombok.Getter; /** * @description diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/req/ListProjectTeamReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/req/ListProjectTeamReq.java new file mode 100644 index 0000000..a2fb7c7 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/project/team/req/ListProjectTeamReq.java @@ -0,0 +1,46 @@ +package cn.axzo.orgmanax.dto.project.team.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; +import java.util.Set; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/30 + */ +@NoArgsConstructor +@AllArgsConstructor +@Data +@SuperBuilder +public class ListProjectTeamReq { + + private Long id; + + private Set ids; + + private Set statusList; + + private Long teamLeaderId; + + private Set teamLeaderIds; + + private Long platTeamId; + + private Set platTeamIds; + + private Long workspaceId; + + private Set workspaceIds; + + private Long organizationalNodeId; + + private Set organizationalNodeIdList; + + private Boolean includeDeleted; + + private List sort; +} \ No newline at end of file diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/req/ListUnitReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/req/ListUnitReq.java index f5b0ce8..cc653bf 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/req/ListUnitReq.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/req/ListUnitReq.java @@ -9,7 +9,6 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import java.util.List; import java.util.Set; @EqualsAndHashCode(callSuper = true) @@ -63,11 +62,5 @@ public class ListUnitReq extends PageReqV2 { */ @CriteriaField(ignore = true) private Boolean includeDeleted; - @CriteriaField(ignore = true) - Integer page; - @CriteriaField(ignore = true) - Integer pageSize; - @CriteriaField(ignore = true) - List sort; -} +} \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/dao/OrgProjectTeamDao.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/dao/OrgProjectTeamDao.java new file mode 100644 index 0000000..056b8d4 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/dao/OrgProjectTeamDao.java @@ -0,0 +1,15 @@ +package cn.axzo.orgmanax.infra.dao.project.team.dao; + +import cn.axzo.orgmanax.infra.dao.project.team.entity.OrgProjectTeam; +import cn.axzo.orgmanax.infra.dao.project.team.mapper.OrgProjectTeamMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Repository; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/30 + */ +@Repository +public class OrgProjectTeamDao extends ServiceImpl { + +} \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/entity/OrgProjectTeam.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/entity/OrgProjectTeam.java new file mode 100644 index 0000000..dece01f --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/entity/OrgProjectTeam.java @@ -0,0 +1,125 @@ +package cn.axzo.orgmanax.infra.dao.project.team.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import lombok.experimental.Accessors; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; +import java.util.Date; + +/** + * 项目内班组 + * + * @since 2022-07-12 + */ +@TableName(value = "org_project_team", autoResultMap = true) +@Data +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = false) +public class OrgProjectTeam implements Serializable { + + /** + * 主键 + */ + @TableId( + type = IdType.AUTO + ) + private Long id; + + /** + * 工作台ID + */ + private Long workspaceId; + + /** + * 总包ID + */ + private Long entId; + + /** + * 所属单位ID + */ + private Long organizationalUnitId; + + /** + * 所属单位类型: 1:总包 4:专业分包 5:劳务分包 + */ + private Integer organizationalUnitType; + + /** + * 项目内班组组织节点ID + */ + private Long organizationalNodeId; + + /** + * 项目外班组id + */ + private Long platTeamId; + + /** + * 班组长身份id + */ + private Long teamLeaderId; + + /** + * 状态:1-履约中 2-已退场 3-待履约 + */ + private Integer status; + + /** + * 班组进场时间 + */ + private Date joinAt; + + /** + * 班组退场时间 + */ + private Date resignAt; + + /** + * 工期要求开始时间 + */ + private Date beginDate; + + /** + * 工期要求结束时间 + */ + private Date endDate; + + + /** + * 班组入驻编号(前端展示) + */ + private String settledCode; + + /** + * 工人进场方式 1-普通进场 2-任务单进场 + */ + private Integer enterProjectType = 1; + + private Integer syncState; + + /** + * 是否删除 0否,其他是 + */ + private Long isDelete = 0L; + + /** + * 创建时间 + */ + private Date createAt; + + /** + * 更新时间 + */ + private Date updateAt; + + +} \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/mapper/OrgProjectTeamMapper.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/mapper/OrgProjectTeamMapper.java new file mode 100644 index 0000000..6f3936d --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/mapper/OrgProjectTeamMapper.java @@ -0,0 +1,10 @@ +package cn.axzo.orgmanax.infra.dao.project.team.mapper; + +import cn.axzo.orgmanax.infra.dao.project.team.entity.OrgProjectTeam; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OrgProjectTeamMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/OrgProjectTeamQueryRepository.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/OrgProjectTeamQueryRepository.java new file mode 100644 index 0000000..68e6baf --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/OrgProjectTeamQueryRepository.java @@ -0,0 +1,119 @@ +package cn.axzo.orgmanax.infra.dao.project.team.repository; + +import cn.axzo.foundation.dao.support.wrapper.CriteriaField; +import cn.axzo.foundation.dao.support.wrapper.Operator; +import cn.axzo.foundation.page.IPageReq; +import cn.axzo.foundation.page.PageReqV2; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.dao.project.team.entity.OrgProjectTeam; +import cn.hutool.core.bean.BeanUtil; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; +import java.util.Optional; +import java.util.Set; + +public interface OrgProjectTeamQueryRepository { + + PageResp page(ListReq paramReq); + + default List list(ListReq req) { + PageReq pageReq = BeanUtil.toBean(req, PageReq.class); + pageReq.setPage(1); + pageReq.setPageSize(1000); + return page(pageReq).getData(); + } + + default OrgProjectTeamResp one(OneReq req) { + return oneOpt(req).orElse(null); + } + + default Optional oneOpt(OneReq req) { + req.check(); + PageReq page = BeanUtil.toBean(req, PageReq.class); + page.setPage(1); + page.setPageSize(1); + return page(page).getData().stream().findFirst(); + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class OneReq { + + /** + * id + */ + private Long id; + + /** + * id集合 + */ + private Set ids; + + public void check() { + } + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class ListReq extends PageReqV2 { + @CriteriaField + private Long id; + @CriteriaField(field = "id", operator = Operator.IN) + private Set ids; + @CriteriaField(field = "status", operator = Operator.IN) + private Set statusList; + @CriteriaField + private Long teamLeaderId; + @CriteriaField(field = "teamLeaderId", operator = Operator.IN) + private Set teamLeaderIds; + @CriteriaField + private Long platTeamId; + @CriteriaField(field = "platTeamId", operator = Operator.IN) + private Set platTeamIds; + @CriteriaField + private Long workspaceId; + @CriteriaField(field = "workspaceId", operator = Operator.IN) + private Set workspaceIds; + @CriteriaField + private Long organizationalNodeId; + @CriteriaField(field = "organizationalNodeId", operator = Operator.IN) + private Set organizationalNodeIdList; + @CriteriaField(ignore = true) + private Boolean includeDeleted; + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class PageReq extends ListReq implements IPageReq { + @CriteriaField(ignore = true) + Integer page; + @CriteriaField(ignore = true) + Integer pageSize; + @CriteriaField(ignore = true) + List sort; + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class OrgProjectTeamResp extends OrgProjectTeam { + // 按需扩展字段,占个位。避免报错 + private String todo; + } + +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/impl/OrgProjectTeamQueryRepositoryImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/impl/OrgProjectTeamQueryRepositoryImpl.java new file mode 100644 index 0000000..dbcab30 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/impl/OrgProjectTeamQueryRepositoryImpl.java @@ -0,0 +1,45 @@ +package cn.axzo.orgmanax.infra.dao.project.team.repository.impl; + +import cn.axzo.foundation.dao.support.converter.PageConverter; +import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.dao.project.team.dao.OrgProjectTeamDao; +import cn.axzo.orgmanax.infra.dao.project.team.entity.OrgProjectTeam; +import cn.axzo.orgmanax.infra.dao.project.team.repository.OrgProjectTeamQueryRepository; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.BooleanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/30 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class OrgProjectTeamQueryRepositoryImpl implements OrgProjectTeamQueryRepository { + + private final OrgProjectTeamDao orgProjectTeamDao; + + @Override + public PageResp page(ListReq req) { + IPage page = PageConverter.toMybatis(req, OrgProjectTeam.class); + QueryWrapper wrapper = QueryWrapperHelper.fromBean(req, OrgProjectTeam.class); + if (!BooleanUtil.isTrue(req.getIncludeDeleted())) { + wrapper.eq("is_delete", 0); + } + IPage results = orgProjectTeamDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, OrgProjectTeamQueryRepository.OrgProjectTeamResp.class)); + PageResp resp = PageConverter.toResp(results); + List records = resp.getData(); + CollUtil.isEmpty(records); + return resp; + } + +} \ No newline at end of file diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/controller/OrgProjectTeamController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/controller/OrgProjectTeamController.java new file mode 100644 index 0000000..8af5adc --- /dev/null +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/controller/OrgProjectTeamController.java @@ -0,0 +1,29 @@ +package cn.axzo.orgmanax.server.project.team.controller; + +import cn.axzo.foundation.result.ApiResult; +import cn.axzo.orgmanax.api.project.team.feign.OrgProjectTeamApi; +import cn.axzo.orgmanax.dto.project.team.dto.OrgProjectTeamDTO; +import cn.axzo.orgmanax.dto.project.team.req.ListProjectTeamReq; +import cn.axzo.orgmanax.server.project.team.service.ProjectTeamService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/30 + */ +@RestController +@RequestMapping +@RequiredArgsConstructor +public class OrgProjectTeamController implements OrgProjectTeamApi { + + private final ProjectTeamService projectTeamService; + + @Override + public ApiResult> list(ListProjectTeamReq req) { + return ApiResult.success(projectTeamService.list(req)); + } +} diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/ProjectTeamService.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/ProjectTeamService.java new file mode 100644 index 0000000..fcd5a64 --- /dev/null +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/ProjectTeamService.java @@ -0,0 +1,11 @@ +package cn.axzo.orgmanax.server.project.team.service; + +import cn.axzo.orgmanax.dto.project.team.dto.OrgProjectTeamDTO; +import cn.axzo.orgmanax.dto.project.team.req.ListProjectTeamReq; + +import java.util.List; + +public interface ProjectTeamService { + + List list(ListProjectTeamReq req); +} \ No newline at end of file diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/impl/ProjectTeamServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/impl/ProjectTeamServiceImpl.java new file mode 100644 index 0000000..504c052 --- /dev/null +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/impl/ProjectTeamServiceImpl.java @@ -0,0 +1,32 @@ +package cn.axzo.orgmanax.server.project.team.service.impl; + +import cn.axzo.orgmanax.dto.project.team.dto.OrgProjectTeamDTO; +import cn.axzo.orgmanax.dto.project.team.req.ListProjectTeamReq; +import cn.axzo.orgmanax.infra.dao.project.team.repository.OrgProjectTeamQueryRepository; +import cn.axzo.orgmanax.server.project.team.service.ProjectTeamService; +import cn.hutool.core.bean.BeanUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ProjectTeamServiceImpl implements ProjectTeamService { + + private final OrgProjectTeamQueryRepository orgProjectTeamQueryRepository; + + @Override + public List list(ListProjectTeamReq req) { + OrgProjectTeamQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, OrgProjectTeamQueryRepository.ListReq.class); + List projectTeamResps = orgProjectTeamQueryRepository.list(listReq); + return BeanUtil.copyToList(projectTeamResps, OrgProjectTeamDTO.class); + } + +} \ No newline at end of file