Merge branch 'feature/REQ-3282-syl' into 'feature/REQ-3282'

Feature/req 3282 syl

See merge request universal/infrastructure/backend/orgmanax!41
This commit is contained in:
宋远伦 2024-12-25 14:00:00 +00:00
commit b9d296f004
10 changed files with 81 additions and 38 deletions

View File

@ -73,4 +73,19 @@ public class PageOrgJobReq extends PageReqV2 {
*/
private Long workspaceId;
/**
* 岗位名称 模糊查询
*/
private String jobNameLike;
/**
* 关联身份类型 1工人 2班组长 3从业人员 5运营人员
*/
private Integer identityType;
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
private Boolean includeDeleted;
}

View File

@ -1,5 +1,8 @@
package cn.axzo.orgmanax.infra.dao.orgjob.entity;
import cn.axzo.orgmanax.dto.job.enums.OrgJobFlagEnum;
import cn.axzo.orgmanax.dto.job.enums.OrgJobTypeEnum;
import cn.axzo.orgmanax.dto.job.enums.VisibilityEnum;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@ -59,7 +62,7 @@ public class OrgJob implements Serializable {
/**
* 可见性: SHOW-可见,HIDE-隐藏
*/
private String visible;
private VisibilityEnum visible;
/**
* 是否为默认岗的标识: 0-非默认,1-默认
@ -74,12 +77,12 @@ public class OrgJob implements Serializable {
/**
* 岗位类型SYSTEM - 系统CUSTOM - 自定义
*/
private String type;
private OrgJobTypeEnum type;
/**
* 岗位标签SYSTEM - 系统岗BUSINESS - 业务岗
*/
private String flag;
private OrgJobFlagEnum flag;
/**
* 单位id,自定义类型时该值才有意义
@ -99,6 +102,7 @@ public class OrgJob implements Serializable {
/**
* 关联身份类型 1-工人,2-班组长,3-从业人员,5-运营人员
*/
@TableField("identity_type")
private Integer identityType;
/**
@ -139,7 +143,5 @@ public class OrgJob implements Serializable {
*/
private Long isDelete;
// public static class LongListTypeHandler<Long> extends BaseListTypeHandler<Long> {
// }
}

View File

@ -5,7 +5,6 @@ import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJobGroupRelation;
import cn.hutool.core.collection.CollUtil;
import java.util.Collection;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -26,27 +25,21 @@ public interface OrgJobGroupRelationRepository {
@SuperBuilder
class PageReq extends PageReqV2 {
/**
* 分组id集合
*/
@CriteriaField(ignore = true)
private Collection<Long> groupIds;
/**
* 岗位分组编码集合
*/
@CriteriaField(field = "group_code", operator = Operator.IN)
@CriteriaField(field = "groupCode", operator = Operator.IN)
private Collection<String> groupCodes;
/**
* 岗位编码集合
*/
@CriteriaField(field = "job_code", operator = Operator.IN)
@CriteriaField(field = "jobCode", operator = Operator.IN)
private Collection<String> jobCodes;
public boolean isInvalid() {
return CollUtil.isEmpty(groupIds)
&& CollUtil.isEmpty(groupCodes)
&& CollUtil.isEmpty(jobCodes);
}
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
}

View File

@ -6,7 +6,6 @@ import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.enums.OrgJobGroupFlagEnum;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJobGroup;
import cn.hutool.core.collection.CollUtil;
import java.util.Collection;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -40,11 +39,11 @@ public interface OrgJobGroupRepository {
@CriteriaField(field = "flag", operator = Operator.IN)
private Collection<OrgJobGroupFlagEnum> orgJobGroupFlags;
public boolean isInvalid() {
return CollUtil.isEmpty(groupIds)
&& CollUtil.isEmpty(groupCodes)
&& CollUtil.isEmpty(orgJobGroupFlags);
}
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}

View File

@ -69,6 +69,17 @@ public interface OrgJobQueryRepository {
@CriteriaField(field = "name", operator = Operator.LIKE)
private String nameLike;
/**
* 关联身份类型 1工人 2班组长 3从业人员 5运营人员
*/
private Integer identityType;
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
@EqualsAndHashCode(callSuper = true)

View File

@ -1,14 +1,18 @@
package cn.axzo.orgmanax.infra.dao.orgjob.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.orgjob.dao.OrgJobGroupRelationDao;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJobGroupRelation;
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobGroupRelationRepository;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.stereotype.Repository;
/**
@ -23,11 +27,12 @@ public class OrgJobGroupRelationRepositoryImpl implements OrgJobGroupRelationRep
@Override
public PageResp<OrgJobGroupRelation> page(PageReq req) {
IPage<OrgJobGroupRelation> page = PageConverter.toMybatis(req, OrgJobGroupRelation.class);
IPage<OrgJobGroupRelation> results = orgJobGroupRelationDao.lambdaQuery()
.in(CollUtil.isNotEmpty(req.getGroupCodes()), OrgJobGroupRelation::getGroupCode, req.getGroupCodes())
.in(CollUtil.isNotEmpty(req.getJobCodes()), OrgJobGroupRelation::getJobCode, req.getJobCodes())
.eq(OrgJobGroupRelation::getIsDelete, 0L)
.page(page);
QueryWrapper<OrgJobGroupRelation> wrapper = QueryWrapperHelper.fromBean(req, OrgJobGroupRelation.class);
if (BooleanUtils.isNotTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<OrgJobGroupRelation> results = orgJobGroupRelationDao.page(page, wrapper)
.convert(e -> BeanUtil.toBean(e, OrgJobGroupRelation.class));
PageResp<OrgJobGroupRelation> resp = PageConverter.toResp(results);
List<OrgJobGroupRelation> records = resp.getData();
if (CollUtil.isEmpty(records)) {

View File

@ -1,14 +1,18 @@
package cn.axzo.orgmanax.infra.dao.orgjob.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.orgjob.dao.OrgJobGroupDao;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJobGroup;
import cn.axzo.orgmanax.infra.dao.orgjob.repository.OrgJobGroupRepository;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.stereotype.Repository;
/**
@ -24,12 +28,12 @@ public class OrgJobGroupRepositoryImpl implements OrgJobGroupRepository {
@Override
public PageResp<OrgJobGroup> page(PageReq req) {
IPage<OrgJobGroup> page = PageConverter.toMybatis(req, OrgJobGroup.class);
IPage<OrgJobGroup> results = orgJobGroupDao.lambdaQuery()
.in(CollUtil.isNotEmpty(req.getOrgJobGroupFlags()), OrgJobGroup::getFlag, req.getOrgJobGroupFlags())
.in(CollUtil.isNotEmpty(req.getGroupCodes()), OrgJobGroup::getCode, req.getGroupCodes())
.in(CollUtil.isNotEmpty(req.getGroupIds()), OrgJobGroup::getId, req.getGroupIds())
.eq(OrgJobGroup::getIsDelete, 0L)
.page(page);
QueryWrapper<OrgJobGroup> wrapper = QueryWrapperHelper.fromBean(req, OrgJobGroup.class);
if (BooleanUtils.isNotTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<OrgJobGroup> results = orgJobGroupDao.page(page, wrapper)
.convert(e -> BeanUtil.toBean(e, OrgJobGroup.class));
PageResp<OrgJobGroup> resp = PageConverter.toResp(results);
List<OrgJobGroup> records = resp.getData();
if (CollUtil.isEmpty(records)) {

View File

@ -11,6 +11,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
@ -32,6 +33,9 @@ public class OrgJobQueryRepositoryImpl implements OrgJobQueryRepository {
.or()
.like("alias", req.getKeyword()));
}
if (BooleanUtils.isNotTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
if (wrapper.isEmptyOfWhere()) {
return PageResp.<JobResp>builder().build();
}

View File

@ -77,8 +77,6 @@ public class OrgJobPageParam extends PageReqV2 {
*/
private Boolean readonly;
// workspace和unitId 只有自定义类型使用
/**
* 单位/团队 ID.
*/
@ -89,6 +87,16 @@ public class OrgJobPageParam extends PageReqV2 {
*/
private Long workspaceId;
/**
* 关联身份类型 1工人 2班组长 3从业人员 5运营人员
*/
private Integer identityType;
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
private Boolean includeDeleted;
public Set<Integer> fetchTypes() {
if (CollUtil.isNotEmpty(cooperateTypes)) {
return Sets.newHashSet(cooperateTypes);

View File

@ -94,8 +94,10 @@ public class OrgJobServiceImpl implements OrgJobService {
@Override
public PageResp<OrgJobDTO> page(OrgJobPageParam param) {
log.info("org job page request param: [{}]", JSONUtil.toJsonStr(param));
resolveCooperateTypes(param);
OrgJobPageParam orgJobPageParam = resolveJobPageParam(param);
log.info("org job page actual param: [{}]", JSONUtil.toJsonStr(param));
PageResp<OrgJobDTO> orgJobs = foundationService.page(param);
if (CollUtil.isEmpty(orgJobs.getData())) {
log.info("org job page there is not any job. param:{}", JSONUtil.toJsonStr(orgJobPageParam));