feat(REQ-3488): 迁移dto

This commit is contained in:
zhanghongbo 2025-01-03 11:33:46 +08:00
parent e876cbf1d9
commit a7c4a3eaf6
56 changed files with 2763 additions and 0 deletions

View File

@ -0,0 +1,176 @@
package cn.axzo.orgmanax.api.projectgroup.feign;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.projectgroup.req.*;
import cn.axzo.orgmanax.dto.projectgroup.resp.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
import java.util.List;
/**
* 项目内小组
*
* @author wenXueFeng
* @date 2022/10/21 9:59
*/
@FeignClient(name = "org-gateway", url = "${axzo.service.org-gateway:http://org-gateway:8080}")
public interface OrgProjectGroupApi {
/**
* 项目内班组列表查询
*
* @author: zhanglei
* @date: 2023/08/21 11:03
* @param req req - 对应LabourProjectGroupQueryBo
* @return:
**/
@PostMapping("api/project-group/page")
ApiResult<List<LabourProjectGroupListV2Res>> page(@RequestBody @Valid ProjectGroupPageReq req);
/**
* CMS创建小组
* todo 三期实现
* @param req
* @return
*/
@PostMapping("api/project-group/create-group")
ApiResult<Long> create(@RequestBody @Valid GroupNodeCreateReq req);
/**
* CMS编辑小组
* todo 三期实现
*
* @param req
* @return
*/
@PostMapping("api/project-group/edit")
ApiResult<Void> edit(@RequestBody @Valid GroupNodeEditReq req);
/**
* CMS解散小组
* todo 三期实现
* @param req
* @return
*/
@PostMapping("api/project-group/delete")
ApiResult<Void> delete(@RequestBody @Valid GroupNodeDeleteReq req);
/**
* 目前用来做cms协同管理, worker里面的大部分信息都直接需要
* <p> 慎用这个接口
*
* @param workspaceId
* @return
*/
@PostMapping("api/project-group/worker/expose-workers")
ApiResult<List<ExposeGroupWorkerRespItem>> exposeWorkers(
@RequestParam("workspaceId") Long workspaceId);
// /**
// * 查询甲方班组的合作小组
// */
// @PostMapping("/api/project-group/group/list")
// ApiResult<List<ProjectTeamGroupListResp>> groupList(@RequestBody ProjectTeamGroupListReq req);
/**
* 未分组工人
*
* @param req req
* @author: wxf
* @date: 2022/11/30 11:40
* @return:
* REQ-1483
**/
@PostMapping("api/ungrouped/worker")
ApiResult<List<ProjectDirectGroupUngroupedWorkerResp>> ungroupedWorker(@RequestBody @Valid ProjectDirectGroupUngroupedWorkerReq req);
/**
* 直属小组工人
*
* @param req req
* @author: wxf
* @date: 2022/11/30 14:04
* @return:
**/
@PostMapping("api/direct-group/worker")
ApiResult<List<ProjectDirectGroupWorkerListResp>> workerList(@RequestBody @Valid ProjectDirectGroupWorkerListReq req);
/**
* 小组长权限
*
* @param groupId 小组id
* @author: wxf
* @date: 2022/11/30 14:47
* @return:
**/
@GetMapping("api/direct-group/owner/permission")
ApiResult<ProjectGroupOwnerPermissionRes> groupOwnerPermission(@RequestParam("groupId") Long groupId);
/**
* 查询没有设置小组长的小组
*
* @param workspaceId
* @return cn.axzo.apollo.core.web.Result<cn.axzo.maokai.api.labour.dto.projectgroup.ProjectGroupListRes>
* @author zhongjie
* @date 2022/11/30 16:32
**/
@GetMapping("api/direct-group/no-leader/group")
ApiResult<ProjectGroupListRes> getNoLeaderGroupList(@RequestParam("workspaceId") Long workspaceId, @RequestParam("platTeamId") Long platTeamId, @RequestParam("isReturnWorker") Boolean isReturnWorker);
/**
* 查询平台班组id + 工人id 项目内是否为小组长
*
* @param req
* @return cn.axzo.apollo.core.web.Result<cn.axzo.maokai.api.labour.dto.projectgroup.ProjectGroupRes>
* @author zhongjie
* @date 2022/11/30 16:41
**/
@PostMapping("api/direct-group/page-group-info")
ApiResult<PageResp<ProjectGroupRes>> pageGroupInfo(@RequestBody @Valid ProjectDirectGroupPageGroupReq req);
/**
* 小组成立序号
*
* @param projectTeamId
* @param groupId
* @return
*/
@GetMapping("api/direct-group/get-join-team-top-no")
ApiResult<Integer> getJoinTeamTopNo(@RequestParam("projectTeamId") Long projectTeamId,
@RequestParam("groupId") Long groupId);
/**
* 列表项目内班组班组下小组成员列表
* @param projectTeamId
* @return
*/
@GetMapping("api/direct-group/list-project-group-worker")
ApiResult<List<ProjectTeamGroupWorkerRes>> listProjectGroupWorker(@RequestParam("projectTeamId") Long projectTeamId);
/**
* @param req 与项目内小组关联节点
* @return
* @author zr
* @description 通过小组节点获取项目内小组信息
* @date 2024/1/15 17:15
**/
@PostMapping("api/direct-group/get-project-group-by-group-node-id")
ApiResult<List<ProjectGroupNodeRes>> pageProjectGroupNode(@RequestBody ProjectDirectGroupPageProjectGroupNodeReq req);
/**
* @param teamNodeId 班组节点id
* @return
* @author zr
* @description 通过班组节点获取无小组长的小组列表和未加入小组的工人列表
* @date 2024/2/4 17:15
**/
@GetMapping("api/direct-group/get-project-group-un-owner-and-worker")
ApiResult<ProjectGroupAndWorkerResp> getProjectGroupUnOwnerAndWorker(@RequestParam("teamNodeId") Long teamNodeId);
}

View File

@ -0,0 +1,94 @@
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.resp.WorkerProfessionTagResp;
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
*/
@FeignClient(
value = "orgmanax",
url = "${axzo.service.orgmanax:http://orgmanax:8080}")
public interface OrgProjectWorkerProfessionApi {
/**
* CMS 批量设置工人工种 (小组详情) 批量指多人工种单个
*
* @param req
* @return
*/
@PostMapping("/api/labour/cms/project-worker-profession/update")
ApiResult<Void> update(@Valid @RequestBody ProjectWorkerProfessionUpdateReq req);
/**
* 获取有效的工种信息
* @param req
* @return
*/
@PostMapping("/api/labour/cms/project-worker-profession/list-valid")
ApiResult<Map<Long, List<ProfessionDTO>>> listValid(@Valid @RequestBody ProjectWorkerProfessionListValidReq req);
/**
* 计算项目内工人工种类型
*/
@PostMapping("/api/labour/project-worker-profession/sort-out-profession-category")
ApiResult<Map<Long, List<String>>> sortOutProfessionCategory(@RequestBody @Valid ProjectWorkerProfessionSortOutProfessionCategoryReq req);
/**
* 设置工人工种&技能标签
*
* @param request 工人工种&技能标签信息
*/
@PostMapping(value = "/api/worker/profession/configure")
ApiResult<Void> configure(@RequestBody @Validated WorkerProfessionTagOperationConfigureReq request);
/**
* 单个工种及其关联的技能标签列表删除
*
* @param request 工种及人员的相关信息
*/
@PostMapping(value = "/api/worker/profession/remove")
ApiResult<Void> remove(@RequestBody @Validated WorkerProfessionTagOperationRemoveReq request);
/**
* 新增工种及相关的技能标签(新增|修改)
*
* @param request 工种及其关联的技能标签列表
*/
@PostMapping(value = "/api/worker/profession/upsert")
ApiResult<Void> upsert(@RequestBody @Validated WorkerProfessionTagOperationUpsertReq request);
/**
* 设置工种为无效并将相关的技能标签置为无效
*
* @param request
*/
@PostMapping(value = "/api/worker/profession/singletonProfessionValidUpdate")
ApiResult<Void> validUpdate(@RequestBody @Validated WorkerProfessionTagOperationValidUpdateReq request);
/**
*
* 通用查询接口仅校验查询条件非空支持返回技能标签
* XXX: 通用查询接口
*
* @param req
* @return
*/
@PostMapping(value = "/api/worker/profession/page")
ApiResult<PageResp<WorkerProfessionTagResp>> page(@RequestBody @Validated WorkerProfessionTagQueryPageReq req);
}

View File

@ -42,6 +42,11 @@
<groupId>cn.axzo.trade</groupId>
<artifactId>trade-data-security-core</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,36 @@
package cn.axzo.orgmanax.dto.common.util;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* @author cn
* @version 1.0
* @description
* @date 2022/6/18 15:55
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Slf4j
public class NumberUtil {
public static boolean isPositiveNumber(Number number) {
return number != null && number.floatValue() > 0;
}
public static boolean isNotPositiveNumber(Number number) {
return !isPositiveNumber(number);
}
public static Integer appVersionParse(String appVersion) {
log.info("app version parse :{}",appVersion);
try {
appVersion = appVersion.split("-")[0];
return cn.hutool.core.util.NumberUtil.parseInt(appVersion.replace("v", "")
.replace("V", "")
.replace(".", ""));
} catch (Exception e) {
return 0;
}
}
}

View File

@ -28,6 +28,7 @@ public class ProcessRelationListReq {
*
*/
private List<BusinessProcessRelationshipTypeEnum> typeList;
/**
* 业务id
*/

View File

@ -0,0 +1,47 @@
package cn.axzo.orgmanax.dto.projectgroup.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 小组长权限集枚举
* 枚举顺序调整需要清洗数据库中小组长权限数据
*
* @author wxf
* @date 2022/12/1 15:07
*/
@AllArgsConstructor
@Getter
public enum ProjectGroupOwnerPermissionEnum {
WORKPOINT(0, "unused", "小组内工人记工"),
TASK_OPERATION(1, "unused", "小组任务终止、转单、撤销"),
// WORKER_ATTENDANCE(2, "小组工人考勤管理"),
DISPATCH(3, "unused", "派工"),
RECTIFICATION(4, "unused", "整改"),
ATTENDANCE_SUPPLEMENT(5, "cms:bz_subteam_absence&attendance", "发起考勤补卡"),
;
public int type;
private String code;
public String desc;
public static List<ProjectGroupOwnerPermissionEnum> listByType(List<Integer> type) {
ProjectGroupOwnerPermissionEnum[] values = values();
Map<Integer, ProjectGroupOwnerPermissionEnum> groupOwnerPermissionEnumMap = Arrays.stream(values)
.collect(Collectors.toMap(ProjectGroupOwnerPermissionEnum::getType, Function
.identity()));
List<ProjectGroupOwnerPermissionEnum> resList = new ArrayList<>(values.length);
for (int item : type) {
ProjectGroupOwnerPermissionEnum permissionEnum = groupOwnerPermissionEnumMap
.getOrDefault(item, null);
if (Objects.nonNull(permissionEnum)) {
resList.add(permissionEnum);
}
}
return resList;
}
}

View File

@ -0,0 +1,91 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GroupNodeCreateReq {
/**
* 项目内班组节点id
*/
@NotNull(message = "项目内班组节点id不能为空")
private Long projectTeamNodeId;
/**
* 小组名称
*/
@NotNull(message = "请输入小组名称")
private String projectGroupNodeName;
@NotNull(message = "工作台id不能为空")
private Long workspaceId;
/**
* 小组长权限
*/
private List<Long> roleIds;
/**
* 小组长信息
*/
private GroupMember groupLeaderInfo;
/**
* 操作人personId
*/
private Long operatorId;
/**
* 小组成员信息 (所有小组成员包括小组长)
*/
private List<GroupMember> members;
@Data
public static class GroupMember {
/**
* 工作台ID
*/
private Long workspaceId;
/**
* 所属的项目内班组id
*/
private Long belongProjectTeamId;
/**
* 项目内工人id
*/
private Long projectWorkerId;
/**
* 工人身份id
*/
@NotNull(message = "工人身份id不能为空")
private Long workerIdentityId;
/**
* 工人姓名
*/
private String workerName;
/**
* 是否是项目内工人0 不是 1是
*/
private Integer isInProject;
/**
* 工种
*/
private List<ProjectGroupProfessionBaseReq> professions;
}
}

View File

@ -0,0 +1,27 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GroupNodeDeleteReq {
/**
* 项目内小组节点id
*/
@NotNull(message = "项目内小组节点id不能为空")
private Long projectGroupNodeId;
/**
* 操作人personId
*/
private Long operatorId;
}

View File

@ -0,0 +1,48 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GroupNodeEditReq {
/**
* 项目内小组节点id
*/
@NotNull(message = "项目内小组节点id不能为空")
private Long projectGroupNodeId;
/**
* 小组名称
*/
@NotBlank(message = "请输入小组名称")
private String projectGroupNodeName;
/**
* 小组长身份id -没有小组长传 null
*/
private Long groupOwnerIdentityId;
/**
* 角色权限 ids
*/
private List<Long> roleIds;
/**
* 操作人personId
*/
private Long operatorId;
}

View File

@ -0,0 +1,29 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import javax.validation.constraints.NotNull;
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class LeaderAndPermissionReq extends PageReqV2 {
/**
* 是否有小组长
*/
@NotNull
private Boolean isHaveLeader;
/**
* 小组状态 0-未激活 1-已激活 2-已结束
*/
private Integer status;
/**
* 是否逻辑删除(0未删除1已删除)
*/
private Long isDelete;
}

View File

@ -0,0 +1,60 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/20
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectDirectGroupPageGroupReq extends PageReqV2 {
/**
* 小组类型0-直属小组1-合作小组
*/
private Integer groupType;
/**
* 平台班组id
*/
private Long platTeamId;
/**
* 项目内班组id
*/
private Long projectTeamId;
/**
* 工人身份id
*/
@Size(min = 1, message = "工人身份id不能为空")
private List<Long> workerIdentityIds;
/**
* 项目id
*/
private Long workspaceId;
/**
* 小组id(支持批量)
*/
private List<Long> groupIds;
/**
* 小组长id(支持批量)
*/
private List<Long> groupOwnerIdentityIds;
/**
* 是否忽略状态
*/
private Boolean isIgnoreStatus = false;
}

View File

@ -0,0 +1,29 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/20
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectDirectGroupPageProjectGroupNodeReq extends PageReqV2 {
/**
* 小组节点id列表
*/
private List<Long> groupNodeIds;
/**
* 班组节点id
*/
private Long teamNodeId;
}

View File

@ -0,0 +1,26 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 未分组工人参数
* @author wxf
* @date 2022/11/30 10:38
*/
@Data
public class ProjectDirectGroupUngroupedWorkerReq {
/**
* 平台班组id
*/
@NotNull(message = "平台班组id为空")
private Long platTeamId;
/**
* 项目id
*/
@NotNull(message = "项目id为空")
private Long workspaceId;
}

View File

@ -0,0 +1,43 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import lombok.Data;
import java.util.List;
/**
* 直属小组工人查询参数
* @author wxf
* @date 2022/11/30 11:47
*/
@Data
public class ProjectDirectGroupWorkerListReq {
/**
* 小组id集合
*/
private List<Long> groupIdList;
/**
* 小组id
*/
private Long groupId;
/**
* 工人身份id
*/
private Long workerIdentityId;
/**
* 工人身份id集合
*/
private List<Long> workerIdentityIdList;
/**
* 项目id
*/
private Long workspaceId;
/**
* 小组长工人身份id
*/
private Long groupOwnerIdentityId;
/**
* 小组长工人身份id集合
*/
private List<Long> groupOwnerIdentityIdList;
}

View File

@ -0,0 +1,105 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import cn.axzo.foundation.page.PageReqV2;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/20
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectGroupPageReq extends PageReqV2 {
private Long id;
/**
* 工作台ID
*/
private Long workspaceId;
/**
* 工作台ID
*/
private List<Long> workspaceIdList;
/**
* 所属项目内班组ID
*/
private Long belongProjectTeamId;
/**
* 所属平台班组id
*/
private Long belongPlatTeamId;
/**
* 原项目内班组id合作小组时和 belongProjectTeamId 的值不一样
*/
private Long sourceProjectTeamId;
/**
* 原平台班组id合作小组时和 belongPlatTeamId 的值不一样
*/
private Long sourcePlatTeamId;
/**
* 小组类型0-直属小组1-合作小组
*/
private Integer groupType;
/**
* 小组状态 0-未激活 1-已激活 2-已结束
*/
private Integer status;
/**
* 班组ID
*/
@JsonIgnore
private Long teamId;
/**
* 是否逻辑删除(0未删除1已删除)
*/
private Long isDelete;
/**
* 小组长id(支持批量)
*/
private List<Long> groupOwnerIdentityIds;
/**
* 小组id(支持批量)
*/
private List<Long> groupIds;
/**
* 项目内班组id(支持批量)
*/
private List<Long> projectTeamIds;
/**
* 小组单位节点ids
*/
private List<Long> organizationalNodeIds;
/**
* 小组长工人身份id
*/
private Long ownerWorkerIdentityId;
/**
* 是否有小组长
*/
private Boolean isHaveLeader;
/**
* 小组名称
*/
private String name;
/**
* 项目工人id
*/
private Long projectWorkerId;
}

View File

@ -0,0 +1,93 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
import lombok.Data;
import java.util.List;
/**
* @author zhongjie
* @description
* @date 2023/02/20 14:08
*/
@Data
public class ProjectGroupProfessionBaseReq {
/**
* 工种id
*/
private Long professionId;
/**
* 工种名称
*/
private String professionName;
/**
* 1=普工 2=技术工
*/
private Integer professionCategory;
// 技能标签集合
private List<ProjectTeamWorkerSkillTagInfo> skillTagList;
/**
* 技能标签
*/
@Data
public static class ProjectTeamWorkerSkillTagInfo {
/**
* 工种
*/
private Long professionId;
/**
* 标签名称
*/
private String skillName;
/**
* 标签code
*/
private String skillCode;
/**
* 父级标签code
*/
private String parentSkillCode;
private List<ProjectTeamWorkerSkillTagInfo> childSkillTags;
}
// public List<AddWorkerDto> convertDto() {
// return workers.stream().map(worker -> {
// AddWorkerDto addWorkerDto = BeanUtil.copyProperties(this, AddWorkerDto.class);
// addWorkerDto.setWorkerIdentityId(worker.getWorkerId());
// addWorkerDto.setSource(WorkerJoinSourceEnum.LEADER.getValue());
//
// // 工人工种
// List<PlatWorkerProfessionDto> platWorkerProfessions = new ArrayList<>();
// // 处理工种和技能标签
// worker.getProfessions().forEach(profession -> {
// Long professionId = profession.getProfessionId();
// PlatWorkerProfessionDto platWorkerProfessionDto = new PlatWorkerProfessionDto();
// platWorkerProfessionDto.setProfessionId(professionId);
// platWorkerProfessionDto.setProfessionName(profession.getProfessionName());
// platWorkerProfessionDto.setProfessionCategory(profession.getProfessionCategory());
// platWorkerProfessions.add(platWorkerProfessionDto);
//
// if (ObjectUtils.isNotEmpty(profession.getSkillTagList())) {
// List<PlatWorkerSkillTagDto> platWorkerSkillTagDtos = BeanConvertUtils.copyList(
// profession.getSkillTagList(), PlatWorkerSkillTagDto.class);
// platWorkerProfessionDto.setSkillTagList(platWorkerSkillTagDtos);
// }
// });
// addWorkerDto.setPlatWorkerProfessions(platWorkerProfessions);
// return addWorkerDto;
//
// }).collect(Collectors.toList());
// }
}

View File

@ -0,0 +1,35 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
/**
* @author yanglin
*/
@Data
public class ExposeGroupWorkerRespItem {
/**
* 小组id
*/
private Long projectGroupId;
/**
* 工人身份ID
*/
private Long workerIdentityId;
/**
* 状态 状态 0-有效 1-无效
*/
private Integer status;
/**
* 所属的项目内班组id
*/
private Long belongProjectTeamId;
/**
* (合作小组才有)原项目内班组id
*/
private Long sourceProjectTeamId;
}

View File

@ -0,0 +1,103 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author wenXueFeng
* @date 2022/10/18 17:08
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class LabourProjectGroupListV2Res {
/**
* 主键id
*/
private Long id;
/**
* 工作台ID
*/
private Long workspaceId;
/**
* 项目内小组组织节点ID
*/
private Long organizationalNodeId;
/**
* 小组类型 0-直属小组 1-合作小组
*/
private Integer type;
/**
* 小组名称
*/
private String name;
/**
* 小组状态 0-未激活 1-已激活 2-已结束
*/
private Integer status;
/**
* 所属的项目内班组id
*/
private Long belongProjectTeamId;
/**
* 所属的平台班组id
*/
private Long belongPlatTeamId;
/**
* (合作小组才有)原项目内班组id
*/
private Long sourceProjectTeamId;
/**
* (合作小组才有)原平台班组id
*/
private Long sourcePlatTeamId;
/**
* 是否删除 0: 其他删除
*/
private Long isDelete;
/**
* 创建时间
*/
private Date createAt;
private Date updateAt;
/**
* 小组长权限集
*/
private Long permissionGroup;
/**
* 小组长工人身份id
*/
private Long ownerWorkerIdentityId;
/**
* 小组长姓名
*/
private String ownerWorkerName;
/**
* 小组长项目内工人id
*/
private Long ownerProjectWorkerId;
/**
* 小组管理类型 0-班组管理 1-小组长管理
*/
private Integer manageType;
}

View File

@ -0,0 +1,49 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class LeaderAndPermissionRes {
/**
* 小组nodeId
*/
private Long groupNodeId;
/**
* 工作台id
*/
private Long workspaceId;
/**
* 小组长Personid
*/
private Long groupLeaderPersonId;
/**
* 团队Id
*/
private Long ouId;
/**
* 小组长身份id
*/
private Long groupLeaderIdentityId;
/**
* 权限名列表
*/
private List<String> permissionNameList = Lists.newArrayListWithExpectedSize(3);
/**
* 小组状态 0-未激活 1-已激活 2-已结束
*/
private Integer status;
/**
* 是否逻辑删除(0未删除1已删除)
*/
private Long isDelete;
}

View File

@ -0,0 +1,60 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 未设置小组长工人
* @author zhongjie
* @date 2022/12/3 10:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class NoleaderProjectGroupWorkerRes {
/**
* 项目内工人id
*/
private Long projectWorkerId;
/**
* 工人身份id
*/
private Long identityId;
/**
* 名称
*/
private String name;
/**
* 工人手机号
*/
private String phone;
/**
* 人脸地址
*/
private String faceUrl;
/**
* 工种集合
*/
private List<ProjectGroupWorkerProfession> professionList;
/**
* 技能标签
*/
private List<ProjectWorkerSkillTagRes> skillTagList;
/**
* 技工/普工
*/
private String professionCategory;
@Data
public static class ProjectGroupWorkerProfession {
private String professionName;
private Long professionId;
}
}

View File

@ -0,0 +1,20 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
/**
* 未分组工人
* @author wxf
* @date 2022/11/30 10:50
*/
@Data
public class ProjectDirectGroupUngroupedWorkerResp extends ProjectWorkerBaseInfo {
/**
* 平台班组id
*/
private Long platTeamId;
/**
* 项目内班组id
*/
private Long projectTeamId;
}

View File

@ -0,0 +1,13 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
/**
* 项目直属小组工人
* @author wxf
* @date 2022/11/30 11:48
*/
@Data
public class ProjectDirectGroupWorkerListResp extends ProjectWorkerBaseInfo {
}

View File

@ -0,0 +1,59 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
import java.util.List;
/**
* @Author zr
* @Date 2024/2/4 15:33
* @Description
**/
@Data
public class ProjectGroupAndWorkerResp {
/**
* 小组及工人列表
*/
private List<GroupWorkerRes> groupWorkers;
/**
* 未分组小组工人列表
*/
private List<ProjectNodeWorkerResp> unJoinGroupWorker;
@Data
public static class GroupWorkerRes {
/**
* 小组下工人列表
*/
private List<ProjectNodeWorkerResp> groupWorkers;
/**
* 小组名称
*/
private String name;
/**
* 所属的项目内班组id
*/
private Long belongProjectTeamId;
/**
* 小组nodeId节点
*/
private Long organizationalNodeId;
/**
* 小组长姓名
*/
private String ownerWorkerName;
/**
* 小组id
*/
private Long groupId;
}
}

View File

@ -0,0 +1,87 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @author zhongjie
* @date 2022/11/30 16:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ProjectGroupListRes {
/**
* 小组列表
*/
private List<ProjectGroupInfo> projectGroupList;
@Data
public static class ProjectGroupInfo {
/**
* 主键id
*/
private Long id;
/**
* 小组名称
*/
private String name;
/**
* 工作台ID
*/
private Long workspaceId;
/**
* 所属的项目内班组id
*/
private Long belongProjectTeamId;
/**
* 所属的平台班组id
*/
private Long belongPlatTeamId;
/**
* 小组长姓名
*/
private Long ownerProjectWorkerId;
/**
* 小组长姓名
*/
private String ownerWorkerName;
/**
* 小组长手机号
*/
private String ownerWorkerPhone;
/**
* 小组长照片
*/
private String ownerWorkerFaceUrl;
/**
* 小组类型 0-直属小组 1-合作小组
*/
private Integer groupType;
/**
* 创建时间
*/
private Date createAt;
/**
* 更新时间
*/
private Date updateAt;
/**
* 工人列表
*/
List<NoleaderProjectGroupWorkerRes> projectGroupWorkerList;
}
}

View File

@ -0,0 +1,26 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
/**
* @Author zr
* @Date 2024/1/16 10:03
* @Description
**/
@Data
public class ProjectGroupNodeRes extends ProjectGroupRes {
/**
* nodeId节点
*/
private Long nodeId;
/**
* 原项目内班组id
*/
private Long sourceProjectTeamId;
/**
* 原班组id
*/
private Long sourcePlatTeamId;
}

View File

@ -0,0 +1,38 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import cn.axzo.orgmanax.dto.projectgroup.enums.ProjectGroupOwnerPermissionEnum;
import lombok.Data;
import java.util.List;
/**
* 小组长权限
* @author wxf
* @date 2022/11/29 19:13
*/
@Data
public class ProjectGroupOwnerPermissionRes {
/**
* 小组长工人身份id
*/
private Long ownerWorkerIdentityId;
/**
* 权限集合
*/
private List<ProjectGroupOwnerPermission> permissionList;
@Data
public static class ProjectGroupOwnerPermission {
/**
* 权限类型
*/
private ProjectGroupOwnerPermissionEnum type;
/**
* 权限开启标识 true-开启 反则-关闭
*/
private Boolean openFlag;
}
}

View File

@ -0,0 +1,94 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import cn.axzo.orgmanax.dto.project.team.dto.TeamCategoryDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @author zhongjie
* @date 2022/11/30 16:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectGroupRes {
/**
* 主键id
*/
private Long id;
/**
* 小组名称
*/
private String name;
/**
* 工作台ID
*/
private Long workspaceId;
/**
* 所属的项目内班组id
*/
private Long belongProjectTeamId;
/**
* 所属的平台班组id
*/
private Long belongPlatTeamId;
/**
* 小组nodeId节点
*/
private Long organizationalNodeId;
/**
* 小组长身份id
*/
private Long ownerWorkerIdentityId;
/**
* 小组长自然人ID
*/
private Long ownerWorkerPersonId;
/**
* 小组长项目内工人id
*/
private Long ownerProjectWorkerId;
/**
* 小组长姓名
*/
private String ownerWorkerName;
/**
* 小组长手机号
*/
private String ownerWorkerPhone;
/**
* 小组长照片
*/
private String ownerWorkerFaceUrl;
/**
* 小组类型 0-直属小组 1-合作小组
*/
private Integer groupType;
/**
* 创建时间
*/
private Date createAt;
/**
* 更新时间
*/
private Date updateAt;
/**
* 小组激活状态1-已激活 2-已结束
*/
private Integer status;
/**
* 经营范围
*/
List<TeamCategoryDTO> teamCategoryList;
}

View File

@ -0,0 +1,49 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.List;
@Data
public class ProjectNodeWorkerResp {
private String name;
private Long workerIdentityId;
/**
* 头像
*/
private String workerFaceUrl;
@JsonIgnore
private Long projectWorkerId;
@JsonIgnore
private Long projectTeamId;
//平台班组Id
private Long platTeamId;
private Long personId;
/**
* 技工普工
*/
private String skillType;
public void setSkillType(String skillType) {
this.skillType = skillType;
}
/**
* 工种集合
*/
private List<ProjectWorkerProfessionRes> professionList;
/**
* 技能标签
*/
private List<ProjectWorkerSkillTagRes> skillTagList;
private Long nodeId;
}

View File

@ -0,0 +1,28 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
/**
* @ClassName ProjectTeamGroupWorkerRes
* @Author zr
* @Date 2023/6/26 17:22
* @Description 班组下小组成员列表
**/
@Data
public class ProjectTeamGroupWorkerRes {
/**
* 项目内班组id
*/
private Long projectTeamId;
/**
* 小组id
*/
private Long groupId;
/**
* 工人身份id
*/
private Long workerIdentityId;
}

View File

@ -0,0 +1,63 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* 项目内工人基础信息
* @author wxf
* @date 2022/11/30 11:09
*/
@Data
@Accessors(chain = true)
public class ProjectWorkerBaseInfo {
/**
* 工人自然人id
*/
private Long workerPersonId;
/**
* 工人身份id
*/
private Long workerIdentityId;
/**
* 工人名称
*/
private String workerName;
/**
* 工人手机号
*/
private String workerPhone;
/**
* 工人人脸照片
*/
private String workerFaceUrl;
/**
* 工种类别 普工技工
*/
private String professionCategoryName;
/**
* 工种
*/
private List<ProjectWorkerProfessionRes> professionList;
/**
* 技能标签
*/
private List<ProjectWorkerSkillTagRes> skillTagList;
/**
* 是否为黑名单 0- 1-
*/
private Integer blackType;
/**
* 工人在项目内班组 0未激活 1已激活 3已退场
*/
private Integer status;
/**
* 工人入场时间
*/
private Date joinAt;
}

View File

@ -0,0 +1,31 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author wenXueFeng
* @date 2022/7/3 16:20
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ProjectWorkerProfessionRes {
/**
* id
*/
private Long id;
/**
* 名称
*/
private String name;
/**
* 技能标签 null- 1-普工 2-技工
*/
private Integer skillType;
}

View File

@ -0,0 +1,39 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author wenXueFeng
* @date 2022/7/3 16:21
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ProjectWorkerSkillTagRes {
/**
* id
*/
private Long id;
/**
* 父级code
*/
private String parentCode;
/**
* code
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 工种id
*/
private Long professionId;
}

View File

@ -0,0 +1,57 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Date;
import java.util.List;
/**
* @Author zr
* @Date 2024/1/19 14:27
* @Description
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ProfessionDTO {
/**
* 工种名称
*/
private String professionName;
/**
* 工种id
*/
private Long professionId;
/**
* 工种创建时间
*/
private Date createAt;
/**
* 是否有效
*/
private Integer valid;
/**
* 1.普工 2.技工
*/
private Integer skillType;
/**
* 技能标签
*/
private List<SkillTagDTO> skillTags;
public void computeLevel(int level) {
if (CollectionUtils.isNotEmpty(skillTags)) {
for (SkillTagDTO skill : skillTags) {
skill.computeLevel(level);
}
}
}
}

View File

@ -0,0 +1,56 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import cn.axzo.orgmanax.dto.workerprofession.model.ProfessionSkillTagTreeNode;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
/**
* @author luofu
* @version 1.0
* @date 2024/6/7
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProfessionTagBriefDTO implements Serializable {
private static final long serialVersionUID = 4864924282236897602L;
/**
* 工种id
*/
private Long professionId;
/**
* 工种名称
*/
private String professionName;
/**
* 工种类型: 1-普工 2-技工
*/
private Integer type;
/**
* 技能标签列表
*/
private List<ProfessionSkillTagTreeNode> skillTags;
public boolean isInvalid() {
return Objects.isNull(professionId)
|| ObjectUtil.isEmpty(professionName)
|| (CollectionUtil.isNotEmpty(skillTags) && skillTags.stream().anyMatch(ProfessionSkillTagTreeNode::isInvalid));
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,49 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
/**
* @Author zr
* @Date 2024/1/19 14:28
* @Description
**/
@Data
public class SkillTagDTO {
/**
* id
*/
private Long id;
/**
* 父级code
*/
private String parentCode;
/**
* code
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 工种id
*/
private Long professionId;
private List<SkillTagDTO> childSkillTags;
private int level;
public void computeLevel(int level) {
this.level = level;
if (CollectionUtils.isNotEmpty(childSkillTags)) {
for (SkillTagDTO child : childSkillTags) {
child.computeLevel(level + 1);
}
}
}
}

View File

@ -0,0 +1,67 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.Lists;
import lombok.Data;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Data
public class StandardWorkerProfessionDTO {
/**
* id
*/
private Long professionId;
/**
* 名称
*/
private String professionName;
/**
* 工种类别 来源产业技术
*/
private Integer skillType;
/**
* 技能标签
*/
private List<StandardWorkerSkillDTO> skillTags;
public static List<WorkerProfessionDto> convertToUsed(List<StandardWorkerProfessionDTO> dtos) {
if (CollUtil.isEmpty(dtos)) {
return Collections.emptyList();
}
return dtos.stream().map(dto -> {
WorkerProfessionDto oldDto = new WorkerProfessionDto();
oldDto.setId(dto.getProfessionId());
oldDto.setName(dto.getProfessionName());
oldDto.setProfessionCategory(dto.getSkillType());
if (CollUtil.isNotEmpty(dto.getSkillTags())) {
List<WorkerSkillDto> subList = treeTraverseConvert(dto.getSkillTags());
oldDto.setWorkerSkillDtos(subList);
}
return oldDto;
}).collect(Collectors.toList());
}
private static List<WorkerSkillDto> treeTraverseConvert(List<StandardWorkerSkillDTO> dtos) {
if (CollUtil.isEmpty(dtos)) {
return Collections.emptyList();
}
List<WorkerSkillDto> resList = Lists.newArrayListWithCapacity(dtos.size());
for (StandardWorkerSkillDTO skillTag : dtos) {
WorkerSkillDto workerSkillDto = new WorkerSkillDto();
workerSkillDto.setProfessionId(skillTag.getProfessionId());
workerSkillDto.setId(skillTag.getId());
workerSkillDto.setCode(skillTag.getSkillTagCode());
workerSkillDto.setName(skillTag.getSkillTagName());
workerSkillDto.setParentCode(skillTag.getParentSkillTagCode());
workerSkillDto.setWorkerSkillDtos(treeTraverseConvert(skillTag.getSkillTags()));
resList.add(workerSkillDto);
}
return resList;
}
}

View File

@ -0,0 +1,34 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import lombok.Data;
import java.util.List;
@Data
public class StandardWorkerSkillDTO {
/**
* 工种id
*/
private Long professionId;
/**
* id
*/
private Long id;
/**
* 名称
*/
private String skillTagName;
/**
* 编码
*/
private String skillTagCode;
/**
* 父级编码
*/
private String parentSkillTagCode;
/**
* 技能标签 子集
*/
private List<StandardWorkerSkillDTO> skillTags;
}

View File

@ -0,0 +1,29 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import lombok.Data;
import java.util.List;
/**
*
*/
@Data
public class WorkerProfessionDto {
/**
* id
*/
private Long id;
/**
* 名称
*/
private String name;
/**
* 工种类别 来源产业技术
*/
private Integer professionCategory;
/**
* 技能标签
*/
private List<WorkerSkillDto> workerSkillDtos;
}

View File

@ -0,0 +1,53 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import cn.axzo.orgmanax.dto.common.util.NumberUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @description
* 工人工种&技能标签DTO
* @author luofu
* @version 1.0
* @date 2024/6/3
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WorkerProfessionTagDTO implements Serializable {
private static final long serialVersionUID = 6443488257054919316L;
/**
* 自然人id
*/
private Long personId;
/**
* 工种&技能标签列表
*/
private List<ProfessionTagBriefDTO> professionTags;
/**
* 附属信息
*/
private JSONObject bizData;
public boolean isInvalid() {
return NumberUtil.isNotPositiveNumber(personId)
|| (CollectionUtil.isNotEmpty(professionTags) && professionTags.stream().anyMatch(ProfessionTagBriefDTO::isInvalid));
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,38 @@
package cn.axzo.orgmanax.dto.workerprofession.dto;
import lombok.Data;
import java.util.List;
/**
* @author wenXueFeng
* @date 2022/7/9 10:52
*/
@Data
public class WorkerSkillDto {
/**
* 工种id
*/
private Long professionId;
/**
* id
*/
private Long id;
/**
* 名称
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 父级编码
*/
private String parentCode;
/**
* 技能标签 子集
*/
private List<WorkerSkillDto> workerSkillDtos;
}

View File

@ -0,0 +1,15 @@
package cn.axzo.orgmanax.dto.workerprofession.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author zhanghongbo
* @date 2024/12/18
*/
@Getter
@AllArgsConstructor
public enum WorkerProfessionTagOperationActionType {
SAVE,
UPDATE;
}

View File

@ -0,0 +1,42 @@
package cn.axzo.orgmanax.dto.workerprofession.model;
import java.util.List;
/**
* @author cn
* @version 1.0
* @description
* @date 2022/4/6 13:56
*/
public interface IBaseTree<T extends IBaseTree<T, O>, O> {
/**
* 节点编码
*
* @return 节点编码
*/
O getNodeCode();
/**
* 父节点编码
*
* @return 父节点编码
*/
O getParentNodeCode();
/**
* 子节点
*
* @return 子节点
*/
List<T> getNodeChildren();
/**
* 设置子节点
*
* @param nodeChildren
*/
void setNodeChildren(List<T> nodeChildren);
}

View File

@ -0,0 +1,83 @@
package cn.axzo.orgmanax.dto.workerprofession.model;
import cn.axzo.trade.datasecurity.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
/**
* @author luofu
* @version 1.0
* @date 2024/6/7
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProfessionSkillTagTreeNode implements Serializable, IBaseTree<ProfessionSkillTagTreeNode, String> {
private static final long serialVersionUID = -7045675211299001896L;
/**
* 技能标签code
*/
private String skillTagCode;
/**
* 技能标签名称
*/
private String skillTagName;
/**
* 父技能标签code
*/
private String parentSkillTagCode;
/**
* 附属信息
*/
private JSONObject bizData;
/**
* 子技能标签列表
*/
private List<ProfessionSkillTagTreeNode> children;
public boolean isInvalid() {
return StringUtils.isEmpty(skillTagCode)
|| Objects.equals(skillTagCode, parentSkillTagCode)
|| StringUtils.isEmpty(skillTagName);
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
@Override
public String getNodeCode() {
return this.skillTagCode;
}
@Override
public String getParentNodeCode() {
return this.parentSkillTagCode;
}
@Override
public List<ProfessionSkillTagTreeNode> getNodeChildren() {
return this.children;
}
@Override
public void setNodeChildren(List<ProfessionSkillTagTreeNode> nodeChildren) {
this.children = nodeChildren;
}
}

View File

@ -0,0 +1,32 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.orgmanax.dto.project.team.enums.TeamSceneEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import java.io.Serializable;
import java.util.Set;
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
@Slf4j
public class ListPersonProfessionTagReq implements Serializable {
private static final long serialVersionUID = -1L;
private Set<Long> orgNodeIds;
private Set<Long> personIds;
private TeamSceneEnum scene;
public void check() {
if (CollectionUtils.isNotEmpty(orgNodeIds) || CollectionUtils.isNotEmpty(personIds)) {
return;
}
log.warn("通用查询接口节点id或者personIds不能都为空");
throw new IllegalArgumentException("通用查询接口节点id或者personIds不能都为空");
}
}

View File

@ -0,0 +1,34 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.orgmanax.dto.project.team.enums.TeamSceneEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import java.io.Serializable;
import java.util.Set;
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
@Slf4j
public class ListWorkerProfessionTagReq implements Serializable {
private static final long serialVersionUID = -1L;
private Long orgNodeId;
private Set<Long> personIds;
private TeamSceneEnum scene;
private Set<Long> professionIds;
private Boolean needSkillTags;
public void check() {
if (orgNodeId != null || CollectionUtils.isNotEmpty(personIds)) {
return;
}
log.warn("通用查询接口节点id或者personIds不能都为空");
throw new IllegalArgumentException("通用查询接口节点id或者personIds不能都为空");
}
}

View File

@ -0,0 +1,36 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.project.team.enums.TeamSceneEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import java.io.Serializable;
import java.util.Set;
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
public class PageWorkerProfessionTagReq extends PageReqV2 implements Serializable {
private static final long serialVersionUID = -1L;
private Long orgNodeId;
private Set<Long> personIds;
private TeamSceneEnum scene;
private Set<Long> professionIds;
private Boolean needSkillTags;
public void check() {
if (orgNodeId != null || CollectionUtils.isNotEmpty(personIds)) {
return;
}
log.warn("通用查询接口节点id或者personIds不能都为空");
throw new IllegalArgumentException("通用查询接口节点id或者personIds不能都为空");
}
}

View File

@ -0,0 +1,32 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/19
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ProjectWorkerProfessionListValidReq {
@NotNull(message = "workspaceId must not null")
private Long workspaceId;
@NotEmpty(message = "workerIdentityIds must not null")
private List<Long> workerIdentityIds;
/**
* node user表可能出现同一个人在同一个项目中在2个不同部门做工人
*/
@NotEmpty(message = "nodeIds must not null")
private List<Long> nodeIds;
}

View File

@ -0,0 +1,23 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/19
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ProjectWorkerProfessionSortOutProfessionCategoryReq {
@NotEmpty(message = "projectWorkerIdList must not null")
private List<Long> projectWorkerIdList;
}

View File

@ -0,0 +1,48 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.orgmanax.dto.workerprofession.dto.StandardWorkerProfessionDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ProjectWorkerProfessionUpdateReq {
/**
* 所属部门nodeId
* todo teamOrGroupNodeId | nodeId 不能为空
*/
private Long teamOrGroupNodeId;
/**
* 所属部门nodeId (项目内班组部门nodeId)
*/
private Long nodeId;
/**
* 工人身份id
*/
//TODO workerIdentityId | workerIdentityIds 不能为空
// @NotNull(message = "工人身份id不能为空")
private Long workerIdentityId;
/**
* 工人身份ids
*/
// @NotEmpty(message = "工人身份ids不能为空")
private List<Long> workerIdentityIds;
/**
* 工种
*/
@NotEmpty
private List<StandardWorkerProfessionDTO> professions;
}

View File

@ -0,0 +1,31 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.orgmanax.dto.project.team.enums.TeamSceneEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Set;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class WorkerProfessionTagListReq implements Serializable {
private static final long serialVersionUID = -1L;
@NotNull(message = "orgNodeId不能为null")
private Long orgNodeId;
@NotNull
@Size(min = 1, max = 100, message = "personIds不能为空且不能超过100个")
private Set<Long> personIds;
/**
* 可不传因为根据orgNodeId已经知道是平台班组还是项目内班组
*/
private TeamSceneEnum scene;
private Set<Long> professionIds;
private Boolean needSkillTags;
}

View File

@ -0,0 +1,58 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.orgmanax.dto.workerprofession.dto.WorkerProfessionTagDTO;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @description
* 工人工种&技能标签设置入参模型
* @author luofu
* @version 1.0
* @date 2024/6/3
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WorkerProfessionTagOperationConfigureReq implements Serializable {
private static final long serialVersionUID = 5514955519310763390L;
/**
* 部门id
*/
@NotNull(message = "orgNodeId can not be null")
private Long orgNodeId;
/**
* 操作人的自然人id
*/
@NotNull(message = "operatorPersonId can not be null")
private Long operatorPersonId;
/**
* 工人工种
* TODO workerProfessionTag | workerProfessionTags 不能为空
*/
// @NotNull(message = "workerProfessionTag can not be null")
private WorkerProfessionTagDTO workerProfessionTag;
/**
* 工人工种列表
*/
// @Size(max = 50)
// @NotEmpty(message = "workerProfessionTags can not be empty")
private List<WorkerProfessionTagDTO> workerProfessionTags;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,49 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author luofu
* @version 1.0
* @date 2024/6/7
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WorkerProfessionTagOperationRemoveReq implements Serializable {
private static final long serialVersionUID = 865785656926535514L;
/**
* 待移除工种的人员的自然人id
*/
@NotNull(message = "personId can not null")
private Long personId;
/**
* 部门id
*/
@NotNull(message = "orgNodeId can not null")
private Long orgNodeId;
/**
* 当前操作人的自然人id
*/
@NotNull(message = "operatorPersonId can not null")
private Long operatorPersonId;
/**
* 工种id
*/
@NotNull(message = "professionId can not null")
private Long professionId;
@Override
public String toString() {
return super.toString();
}
}

View File

@ -0,0 +1,58 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.orgmanax.dto.workerprofession.dto.ProfessionTagBriefDTO;
import cn.axzo.orgmanax.dto.workerprofession.enums.WorkerProfessionTagOperationActionType;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author luofu
* @version 1.0
* @date 2024/6/7
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WorkerProfessionTagOperationUpsertReq implements Serializable {
private static final long serialVersionUID = -3078890508111501603L;
/**
* 动作类型新增|修改
*/
@NotNull(message = "actionType can not be null")
private WorkerProfessionTagOperationActionType actionType;
/**
* 部门id
*/
@NotNull(message = "orgNodeId can not be null")
private Long orgNodeId;
/**
* 当前操作人的自然人id
*/
@NotNull(message = "operatorPersonId can not be null")
private Long operatorPersonId;
/**
* 当前人员的自然人id
*/
@NotNull(message = "personId can not be null")
private Long personId;
/**
* 工种及其关联的技能标签列表
*/
@NotNull(message = "personId can not be null")
private ProfessionTagBriefDTO profession;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,48 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Objects;
import java.util.Set;
/**
* @Author zr
* @Date 2024/6/12 18:16
* @Description
**/
@Data
public class WorkerProfessionTagOperationValidUpdateReq {
/**
* 待移除工种的人员的自然人id
*/
@NotNull(message = "personId can not null")
@Size(min = 1, message = "personId must be greater than 1")
private Set<Long> personIds;
/**
* 部门id
*/
@NotNull(message = "orgNodeId can not null")
private Long orgNodeId;
/**
* 当前操作人的自然人id
*/
@NotNull(message = "operatorPersonId can not null")
private Long operatorPersonId;
/**
* 工种id列表
*/
private Set<Long> professionIds;
private Boolean valid = Boolean.FALSE;
public Long getOperatorPersonId(){
if(Objects.isNull(this.operatorPersonId)){
return -1L;
}
return this.operatorPersonId;
}
}

View File

@ -0,0 +1,27 @@
package cn.axzo.orgmanax.dto.workerprofession.req;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.project.team.enums.TeamSceneEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Set;
/**
* @author zhanghongbo
* @date 2024/12/19
*/
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
public class WorkerProfessionTagQueryPageReq extends PageReqV2 {
private Long orgNodeId;
private Set<Long> personIds;
private TeamSceneEnum scene;
private Set<Long> professionIds;
private Boolean needSkillTags;
private Set<Long> orgNodeIds;
}

View File

@ -0,0 +1,60 @@
package cn.axzo.orgmanax.dto.workerprofession.resp;
import cn.axzo.orgmanax.dto.project.team.enums.TeamSceneEnum;
import cn.axzo.orgmanax.dto.workerprofession.model.ProfessionSkillTagTreeNode;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class WorkerProfessionTagResp implements Serializable {
protected Long id;
/**
* 自然人id
*/
private Long personId;
/**
* 租户id
*/
private Long workspaceId;
/**
* 组织节点id
*/
private Long orgNodeId;
/**
* 班组场景
*/
private TeamSceneEnum scene;
/**
* 工种类型
* NONE(0, ""),
* COMMON(1, "普工"),
* ENGINE_MAN(2, "技工"),
*
* cn.axzo.data.collection.constant.enums.SkillTypeEnum
*/
private Integer type;
/**
* 工种id
*/
private Long professionId;
/**
* 工种名称
*/
private String professionName;
/**
* 数据有效性标记
*/
private Integer valid;
/**
* 技能标签列表
*/
private List<ProfessionSkillTagTreeNode> skillTags;
}