From e4d0ab00603dd35e38464c64fb26746e3cb3590b Mon Sep 17 00:00:00 2001 From: zhanghonghao Date: Thu, 2 Jan 2025 17:00:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3488):=20=E5=88=A0=E9=99=A4org=5Fproje?= =?UTF-8?q?ct=5Fteam=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/team/dao/OrgProjectTeamDao.java | 15 --- .../project/team/entity/OrgProjectTeam.java | 125 ------------------ .../team/mapper/OrgProjectTeamMapper.java | 10 -- .../OrgProjectTeamQueryRepository.java | 119 ----------------- .../OrgProjectTeamQueryRepositoryImpl.java | 45 ------- .../service/impl/ProjectTeamServiceImpl.java | 22 ++- 6 files changed, 17 insertions(+), 319 deletions(-) delete mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/dao/OrgProjectTeamDao.java delete mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/entity/OrgProjectTeam.java delete mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/mapper/OrgProjectTeamMapper.java delete mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/OrgProjectTeamQueryRepository.java delete mode 100644 orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/impl/OrgProjectTeamQueryRepositoryImpl.java 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 deleted file mode 100644 index 056b8d4..0000000 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/dao/OrgProjectTeamDao.java +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index dece01f..0000000 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/entity/OrgProjectTeam.java +++ /dev/null @@ -1,125 +0,0 @@ -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 deleted file mode 100644 index 6f3936d..0000000 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/mapper/OrgProjectTeamMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 68e6baf..0000000 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/OrgProjectTeamQueryRepository.java +++ /dev/null @@ -1,119 +0,0 @@ -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 deleted file mode 100644 index dbcab30..0000000 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/project/team/repository/impl/OrgProjectTeamQueryRepositoryImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -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/service/impl/ProjectTeamServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/project/team/service/impl/ProjectTeamServiceImpl.java index 504c052..333c429 100644 --- 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 @@ -1,15 +1,20 @@ package cn.axzo.orgmanax.server.project.team.service.impl; +import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO; +import cn.axzo.orgmanax.dto.node.enums.NodeTypeEnum; +import cn.axzo.orgmanax.dto.node.req.ListNodeReq; 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.node.service.NodeService; 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.HashSet; import java.util.List; +import java.util.Set; /** * @author : zhanghonghao@axzo.cn @@ -20,13 +25,20 @@ import java.util.List; @Service public class ProjectTeamServiceImpl implements ProjectTeamService { - private final OrgProjectTeamQueryRepository orgProjectTeamQueryRepository; + private final NodeService nodeService; @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); + //todo @周敏 这里需要桥接原org_project_team表 + Set includeOrgNodeTypes = new HashSet<>(); + includeOrgNodeTypes.add(NodeTypeEnum.PROJECT_TEAM.getCode()); + ListNodeReq nodeReq = ListNodeReq.builder() + .includeOrgNodeTypes(includeOrgNodeTypes) + .ids(req.getOrganizationalNodeIdList()) + .workspaceIds(req.getWorkspaceIds()) + .build(); + List orgNodeDTOS = nodeService.list(nodeReq); + return BeanUtil.copyToList(orgNodeDTOS, OrgProjectTeamDTO.class); } } \ No newline at end of file