diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/invite/feign/OrgProjectTeamInviteApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/invite/feign/OrgProjectTeamInviteApi.java new file mode 100644 index 0000000..738e0fd --- /dev/null +++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/invite/feign/OrgProjectTeamInviteApi.java @@ -0,0 +1,44 @@ +package cn.axzo.orgmanax.api.invite.feign; + +import cn.axzo.foundation.result.ApiResult; +import cn.axzo.orgmanax.dto.invite.req.ApplyOrgTeamInviteReq; +import cn.axzo.orgmanax.dto.invite.req.ApproveOrgTeamInviteReq; +import cn.axzo.orgmanax.dto.invite.req.InviteBatchOrgProjectTeamReq; +import javax.validation.Valid; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * + * TODO 三期实现 + * + * 班组邀请进项目 + * + * @author wangli + * @since 2024/7/17 20:36 + */ +@FeignClient( + value = "orgmanax", + url = "${axzo.service.orgmanax:http://orgmanax:8080}") +public interface OrgProjectTeamInviteApi { + + /** + * cms批量邀请工人加入项目 + * todo 三期实现,迁移至invite的package下 + */ + @PostMapping("/api/project/team-group/invite-batch") + ApiResult teamOwnerBatchAgreeWorkerJoinProject(@RequestBody @Valid InviteBatchOrgProjectTeamReq req); + + /** + * 班组邀请进项目申请 + */ + @PostMapping("/api/project/team-invite/apply") + ApiResult fakeApplyProjectTeam(@Valid @RequestBody ApplyOrgTeamInviteReq req); + + /** + * 班组邀请进项目审批 + */ + @PostMapping("/api/project/team-invite/approve") + ApiResult fakeApproveApplyProjectTeam(@Valid @RequestBody ApproveOrgTeamInviteReq req); +} diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/invite/feign/OrgProjectWorkerInviteApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/invite/feign/OrgProjectWorkerInviteApi.java new file mode 100644 index 0000000..3aed288 --- /dev/null +++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/invite/feign/OrgProjectWorkerInviteApi.java @@ -0,0 +1,46 @@ +package cn.axzo.orgmanax.api.invite.feign; + +import cn.axzo.foundation.page.PageResp; +import cn.axzo.foundation.result.ApiResult; +import cn.axzo.orgmanax.dto.invite.project.req.CancelProjectWorkerInviteReq; +import cn.axzo.orgmanax.dto.invite.project.req.PageProjectWorkerInviteReq; +import cn.axzo.orgmanax.dto.invite.project.req.UpdateProjectWorkerInviteReq; +import cn.axzo.orgmanax.dto.invite.project.resp.OrgProjectWorkerInviteResp; +import javax.validation.Valid; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * todo:三期实现 + * 项目内工人邀请api + * + * @author 夏嘉孚 + * @since 2023/2/10 + */ +@FeignClient( + value = "orgmanax", + url = "${axzo.service.orgmanax:http://orgmanax:8080}") +public interface OrgProjectWorkerInviteApi { + + /** + * 分页查询项目内工人邀请信息 + */ + @PostMapping("/api/project/worker-invite/page") + ApiResult> page(@RequestBody @Valid PageProjectWorkerInviteReq req); + + /** + * 终止邀请 + */ + @PostMapping("/api/project/worker-invite/cancel") + ApiResult cancelProjectWorkerInvite(@RequestBody @Valid CancelProjectWorkerInviteReq req); + + /** + * 修改接口,能兼容旧逻辑 + * 【非请勿调】修改工人邀请记录的状态 + * + */ + @PostMapping("/api/project/worker-invite/update") + ApiResult update(@RequestBody @Valid UpdateProjectWorkerInviteReq req); + +} diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/workerprofession/feign/OrgProjectWorkerProfessionApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/workerprofession/feign/OrgProjectWorkerProfessionApi.java index 618e5dd..be00623 100644 --- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/workerprofession/feign/OrgProjectWorkerProfessionApi.java +++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/workerprofession/feign/OrgProjectWorkerProfessionApi.java @@ -3,18 +3,25 @@ package cn.axzo.orgmanax.api.workerprofession.feign; import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.result.ApiResult; import cn.axzo.orgmanax.dto.workerprofession.dto.ProfessionDTO; -import cn.axzo.orgmanax.dto.workerprofession.req.*; +import cn.axzo.orgmanax.dto.workerprofession.req.PageTeamProfessionsReq; +import cn.axzo.orgmanax.dto.workerprofession.req.ProjectWorkerProfessionListValidReq; +import cn.axzo.orgmanax.dto.workerprofession.req.ProjectWorkerProfessionSortOutProfessionCategoryReq; +import cn.axzo.orgmanax.dto.workerprofession.req.ProjectWorkerProfessionUpdateReq; +import cn.axzo.orgmanax.dto.workerprofession.req.WorkerProfessionTagOperationConfigureReq; +import cn.axzo.orgmanax.dto.workerprofession.req.WorkerProfessionTagOperationRemoveReq; +import cn.axzo.orgmanax.dto.workerprofession.req.WorkerProfessionTagOperationUpsertReq; +import cn.axzo.orgmanax.dto.workerprofession.req.WorkerProfessionTagOperationValidUpdateReq; +import cn.axzo.orgmanax.dto.workerprofession.req.WorkerProfessionTagQueryPageReq; +import cn.axzo.orgmanax.dto.workerprofession.resp.OrgWorkerProfessionResp; import cn.axzo.orgmanax.dto.workerprofession.resp.WorkerProfessionTagResp; +import java.util.List; +import java.util.Map; +import javax.validation.Valid; 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 javax.validation.Valid; -import javax.validation.constraints.NotEmpty; -import java.util.List; -import java.util.Map; - /** * @author zhanghongbo * @date 2025/1/3 @@ -91,4 +98,15 @@ public interface OrgProjectWorkerProfessionApi { */ @PostMapping(value = "/api/worker/profession/page") ApiResult> page(@RequestBody @Validated WorkerProfessionTagQueryPageReq req); + + /** + * 查询班组下工种 + * 这个两个必传一个值 + * + * @author zr + * @date 2023/8/1 17:42 + **/ + @PostMapping("/api/project/team/profession/page") + ApiResult> pageProfessions( + @RequestBody @Valid PageTeamProfessionsReq req); } diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/CancelProjectWorkerInviteReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/CancelProjectWorkerInviteReq.java new file mode 100644 index 0000000..2ee7887 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/CancelProjectWorkerInviteReq.java @@ -0,0 +1,24 @@ +package cn.axzo.orgmanax.dto.invite.project.req; + +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author syl + * @date 2024/12/19 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class CancelProjectWorkerInviteReq { + + /** + * 邀请记录id + */ + @NotNull(message = "邀请记录id不能为空") + private Long inviteId; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/PageProjectWorkerInviteReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/PageProjectWorkerInviteReq.java new file mode 100644 index 0000000..fa6dc56 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/PageProjectWorkerInviteReq.java @@ -0,0 +1,46 @@ +package cn.axzo.orgmanax.dto.invite.project.req; + +import cn.axzo.foundation.page.PageReqV2; +import java.util.Set; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author syl + * @date 2024/12/19 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class PageProjectWorkerInviteReq extends PageReqV2 { + + /** + * 流程实例id + */ + private String processInstanceId; + + /** + * 项目部id + */ + private Long workspaceId; + + /** + * 项目班组ID + */ + private Long projectTeamId; + + /** + * 工人身份ID + */ + private Long workerIdentityId; + + /** + * 邀请记录ID列表 + */ + private Set inviteIds; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/UpdateProjectWorkerInviteReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/UpdateProjectWorkerInviteReq.java new file mode 100644 index 0000000..b97ac50 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/req/UpdateProjectWorkerInviteReq.java @@ -0,0 +1,29 @@ +package cn.axzo.orgmanax.dto.invite.project.req; + +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author syl + * @date 2024/12/19 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class UpdateProjectWorkerInviteReq { + + /** + * 邀请记录id + */ + @NotNull(message = "邀请记录id不能为空") + private Long inviteId; + + /** + * 状态 + */ + private Integer status; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/resp/OrgProjectWorkerInviteResp.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/resp/OrgProjectWorkerInviteResp.java new file mode 100644 index 0000000..265538c --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/project/resp/OrgProjectWorkerInviteResp.java @@ -0,0 +1,85 @@ +package cn.axzo.orgmanax.dto.invite.project.resp; + +import java.util.Date; +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author 夏嘉孚 + * @since 2023/2/10 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class OrgProjectWorkerInviteResp { + /** + * 邀请id 同下inviteId + */ + private Long id; + + /** + * 1-待班组审批 2-待项目审批 3-审批通过,已加入项目 + */ + private Integer status; + /** + * 邀请id + */ + private Long inviteId; + /** + * 工人身份ID + */ + private Long workerIdentityId; + /** + * 项目id + */ + private Long workspaceId; + /** + * 总包ID + */ + private Long entId; + /** + * 所属单位ID + */ + private Long organizationalUnitId; + /** + * 项目内班组id + */ + private Long projectTeamId; + /** + * 班组长姓名 + */ + private String teamOwnerName; + + /** + * 更新时间 + */ + private Date updateAt; + /** + * 审批人的从业人员身份id + */ + private Long approverIdentityId; + + /** + * 班组长审批时间,REQ-598 + */ + private Date teamLeaderAuditDate; + /** + * 经营范围 + */ + private List teamCategory; + /** + * 工人工种 + */ + private List profession; + + /** + * 流程实例id + */ + private String processInstanceId; + + private String contextJsonStr; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/ApplyOrgTeamInviteReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/ApplyOrgTeamInviteReq.java new file mode 100644 index 0000000..85f7c6f --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/ApplyOrgTeamInviteReq.java @@ -0,0 +1,68 @@ +package cn.axzo.orgmanax.dto.invite.req; + +import cn.axzo.orgmanax.dto.project.team.dto.TeamCategoryDTO; +import java.util.List; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 班组扫码申请进入项目 REQ + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ApplyOrgTeamInviteReq { + /** + * 工作台ID + */ + @NotNull(message = "工作台不能为空") + private Long workspaceId; + /** + * 平台班组ID + */ + @NotNull(message = "班组不能为空") + private Long teamId; + /** + * 平台班组长身份ID + */ + private Long teamLeaderId; + + /** + * 所属单位 + */ + @NotNull(message = "所属单位不能为空") + private Long ouId; + /** + * 所属单位类型 + */ + @NotNull(message = "所属单位类型不能为空") + private Integer ouType; + + /** + * 经营范围 + */ + @NotEmpty(message = "经营范围不能为空") + private List categories; + + /** + * 申请操作路径 1-链接-LINK 2-二维码-QRCODE + */ + @NotNull(message = "操作路径不能为空") + @Max(2) + @Min(1) + private Integer route; + + /** + * 备注 + */ + @Size(max = 100) + private String applyNote; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/ApproveOrgTeamInviteReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/ApproveOrgTeamInviteReq.java new file mode 100644 index 0000000..3b62aad --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/ApproveOrgTeamInviteReq.java @@ -0,0 +1,24 @@ +package cn.axzo.orgmanax.dto.invite.req; + +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 审批 班组扫码申请进入项目 REQ + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ApproveOrgTeamInviteReq { + + /** + * 邀请记录ID + */ + @NotNull(message = "邀请记录ID不能为空") + private Long inviteId; + +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/InviteBatchOrgProjectTeamReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/InviteBatchOrgProjectTeamReq.java new file mode 100644 index 0000000..c9a4fd3 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/InviteBatchOrgProjectTeamReq.java @@ -0,0 +1,118 @@ +package cn.axzo.orgmanax.dto.invite.req; + +import java.util.ArrayList; +import java.util.List; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class InviteBatchOrgProjectTeamReq { + + /** + * 邀请类型,0:班组,1:小组 + * */ + @NotNull(message = "添加类型不能为空") + private Integer type; + + /** + * 班组或小组的NodeId + * */ + @NotNull(message = "nodeId不能为空") + private Long organizationNodeId; + + /** + * 项目Id + * */ + @NotNull(message = "项目信息不能为空") + private Long workspaceId; + + /** + * 工人工种 + */ + private List platWorkerProfessions; + + /** + * 工人身份id列表 + */ + @NotNull(message = "工人列表不能为空") + private List personIds; + + @NotNull(message = "操作人不能为空") + private Long operatorId; + + /** + * 发起人的personId + * */ + private Long initiatorPersonId; + + /** + * 工种 + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class ProfessionDto { + + /** + * 工种id + */ + private Long professionId; + /** + * 工种名称 + */ + private String professionName; + + /** + * 技能标签 1:普工 2:技工 + */ + private Integer skillType; + + /** + * 技能标签列表-平铺结构 + */ + //private List expandedSkillTags; + /** + * 技能标签列表-树形结构 + */ + private List skillTags = new ArrayList<>(); + } + + /** + * 技能标签 + */ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class SkillTagDto { + /** + * 所属工种id + */ + private Long professionId; + /** + * 父级技能标签id + */ + private String parentSkillTagCode; + /** + * 技能标签code + */ + private String skillTagCode; + /** + * 技能标签名称 + */ + private String skillTagName; + /** + * 子技能标签列表 + */ + + private List skillTags; + } +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/SaveOrgWorkerInviteReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/SaveOrgWorkerInviteReq.java index 739d007..fb75acc 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/SaveOrgWorkerInviteReq.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/invite/req/SaveOrgWorkerInviteReq.java @@ -1,13 +1,12 @@ package cn.axzo.orgmanax.dto.invite.req; -import java.util.Collections; import java.util.List; import javax.validation.Valid; import javax.validation.constraints.NotNull; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; /** * @Description 班组同意或者拒绝 @@ -15,7 +14,7 @@ import lombok.NoArgsConstructor; * @Date 2022/6/17 18:04 **/ @Data -@Builder +@SuperBuilder @NoArgsConstructor @AllArgsConstructor public class SaveOrgWorkerInviteReq { diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/dto/OrgWorkerSkillTagDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/dto/OrgWorkerSkillTagDTO.java new file mode 100644 index 0000000..2de0430 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/dto/OrgWorkerSkillTagDTO.java @@ -0,0 +1,48 @@ +package cn.axzo.orgmanax.dto.workerprofession.dto; + +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 工人技能标签dto + * @author zhangtianyu + * @date 2022/7/17 12:03 AM + **/ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class OrgWorkerSkillTagDTO { + /** + * 工种id + */ + private Long professionId; + + /** + * 技能id + */ + private Long skillId; + /** + * 父技能id + */ + private Long parentSkillId; + /** + * 技能code + */ + private String skillCode; + /** + * 父技能code + */ + private String parentSkillCode; + /** + * 技能名称 + */ + private String skillName; + /** + * 子技能 + */ + private List childSkillTags; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/req/PageTeamProfessionsReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/req/PageTeamProfessionsReq.java new file mode 100644 index 0000000..949a456 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/req/PageTeamProfessionsReq.java @@ -0,0 +1,31 @@ +package cn.axzo.orgmanax.dto.workerprofession.req; + +import cn.axzo.foundation.page.PageReqV2; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author syl + * @date 2024/12/19 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class PageTeamProfessionsReq extends PageReqV2 { + + /** + * 项目班组Id + * todo 需要改造,按照新的方式实现 + */ + private Long projectTeamId; + + /** + * 项目班组节点Id + */ + private Long projectTeamNodeId; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/resp/OrgWorkerProfessionResp.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/resp/OrgWorkerProfessionResp.java new file mode 100644 index 0000000..5e69e2e --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/workerprofession/resp/OrgWorkerProfessionResp.java @@ -0,0 +1,29 @@ +package cn.axzo.orgmanax.dto.workerprofession.resp; + +import cn.axzo.orgmanax.dto.workerprofession.dto.OrgWorkerSkillTagDTO; +import java.util.ArrayList; +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 平台工人工种 + * @author zhangtianyu + * @date 2022/7/16 11:38 PM + **/ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class OrgWorkerProfessionResp { + private Long professionId; + private String professionName; + private String professionCategoryName; + private Integer professionCategory; + /** + * 技能标签 + */ + private List skillTagList = new ArrayList<>(); +}