Merge remote-tracking branch 'origin/master' into feature/REQ-3114
This commit is contained in:
commit
f95d203bd4
@ -6,14 +6,13 @@
|
||||
<parent>
|
||||
<groupId>cn.axzo</groupId>
|
||||
<artifactId>riven</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>integration-test</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
|
||||
@ -0,0 +1,12 @@
|
||||
###
|
||||
POST localhost:8080/api/thirdPart/listProjectPeople
|
||||
Accept: application/json
|
||||
Content-Type: application/json
|
||||
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJOVF9PTVNfV0VCOjkwMDA0MDAzMjIiLCJyblN0ciI6IndWbXF6d1VYWG5sZ2lHRm1MRmpHVXdzdGVac0xrbkpnIn0.fapfkozDj51dA2lFmCmIkv7ZFaLVOFGzn6OAyvndW1c
|
||||
|
||||
{
|
||||
"thirdCode": "taizhou",
|
||||
"thirdProjectId": "Jh0Cj4e%2BJhtDDYYdhmkV0flbxjUPOZXzS4z%2BAXKMf%2B8=",
|
||||
"thirdUniquePersonIds": [],
|
||||
"needThirdPerson": true
|
||||
}
|
||||
@ -2,17 +2,22 @@ package cn.axzo.riven.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.riven.client.common.enums.ThirdCodeEnum;
|
||||
import cn.axzo.riven.client.req.ListDeptReq;
|
||||
import cn.axzo.riven.client.req.ListThirdProjectPeopleReq;
|
||||
import cn.axzo.riven.client.res.ThirdPartPersonRes;
|
||||
import cn.axzo.riven.client.res.ThirdPartUserRes;
|
||||
import cn.axzo.riven.client.res.ThirdPartyDeptTreeRes;
|
||||
import cn.axzo.riven.client.res.ThirdPartyDeptUserTreeRes;
|
||||
import cn.axzo.riven.client.res.ThirdProjectPersonRes;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
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;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
/**
|
||||
@ -24,12 +29,19 @@ public interface ThirdPartPersonApi {
|
||||
|
||||
/**
|
||||
* 通过安心筑人员账号和三方类型获取三方人员信息
|
||||
*
|
||||
* @param personId 安心筑人员ID
|
||||
* @param thirdCode 三方类型,枚举值
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/api/thirdPart/getPerson")
|
||||
ApiResult<ThirdPartPersonRes> getThirdPartPerson(@RequestParam("personId")Long personId,@RequestParam("thirdCode") ThirdCodeEnum thirdCode);
|
||||
|
||||
ApiResult<ThirdPartPersonRes> getThirdPartPerson(@RequestParam("personId") Long personId, @RequestParam("thirdCode") ThirdCodeEnum thirdCode);
|
||||
|
||||
/**
|
||||
* 查询三方项目用户
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/thirdPart/listProjectPeople")
|
||||
ApiResult<List<ThirdProjectPersonRes>> listThirdProjectPeople(@RequestBody @Valid ListThirdProjectPeopleReq param);
|
||||
}
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package cn.axzo.riven.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.riven.client.req.ThirdProjectReq;
|
||||
import cn.axzo.riven.client.res.ThirdProjectResp;
|
||||
import java.util.List;
|
||||
import javax.validation.Valid;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
/**
|
||||
* @author syl
|
||||
* @date 2024/10/24
|
||||
*/
|
||||
@FeignClient(name = "riven", url = "${axzo.service.riven:http://riven:8080}")
|
||||
public interface ThirdProjectApi {
|
||||
|
||||
@PostMapping("/api/third/queryProject")
|
||||
ApiResult<List<ThirdProjectResp>> queryThirdProject(@RequestBody @Valid ThirdProjectReq req);
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.axzo.riven.client.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.io.Serializable;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class ListThirdProjectPeopleReq implements Serializable {
|
||||
|
||||
/**
|
||||
* 三方名称code
|
||||
*/
|
||||
@NotBlank(message = "thirdCode不能为空")
|
||||
private String thirdCode;
|
||||
/**
|
||||
* '三方项目编号'
|
||||
*/
|
||||
@NotBlank(message = "thirdProjectId不能为空")
|
||||
private String thirdProjectId;
|
||||
/**
|
||||
* 三方人员唯一ID
|
||||
*/
|
||||
private Set<String> thirdUniquePersonIds;
|
||||
|
||||
/**
|
||||
* 人员id集合
|
||||
*/
|
||||
private Set<Long> personIds;
|
||||
|
||||
private Boolean needThirdPerson;
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package cn.axzo.riven.client.req;
|
||||
|
||||
import cn.axzo.riven.client.common.enums.ThirdCodeEnum;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author syl
|
||||
* @date 2024/10/24
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ThirdProjectReq {
|
||||
|
||||
/**
|
||||
* 第三方编码code
|
||||
*/
|
||||
@NotNull(message = "第三方编码不能为空")
|
||||
private ThirdCodeEnum thirdCode;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.axzo.riven.client.res;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author syl
|
||||
* @date 2024/10/24
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TaiZhouThirdProjectExtDto {
|
||||
|
||||
/**
|
||||
* 考勤供应商登记编号
|
||||
*/
|
||||
private String bagsBH;
|
||||
|
||||
/**
|
||||
* 项目数据指纹
|
||||
*/
|
||||
private String dataNumber;
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package cn.axzo.riven.client.res;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class ThirdPersonRes implements Serializable {
|
||||
|
||||
private Long id;
|
||||
/**
|
||||
* 三方名称code
|
||||
*/
|
||||
private String thirdCode;
|
||||
|
||||
|
||||
/**
|
||||
* 三方人员唯一ID
|
||||
*/
|
||||
private String thirdUniquePersonId;
|
||||
/**
|
||||
* 三方人员姓名
|
||||
*/
|
||||
private String thirdPersonName;
|
||||
/**
|
||||
* 三方人员手机号
|
||||
*/
|
||||
private String thirdPersonPhone;
|
||||
|
||||
/**
|
||||
* 三方人员身份证照片
|
||||
*/
|
||||
private String thirdPersonPhoto;
|
||||
|
||||
/**
|
||||
* 身份证签发单位
|
||||
*/
|
||||
private String thirdAuthority;
|
||||
|
||||
|
||||
/**
|
||||
* 三方身份证号
|
||||
*/
|
||||
private String thirdIdNumber;
|
||||
|
||||
/**
|
||||
* 三方人脸照片
|
||||
*/
|
||||
private String thirdPersonFaceUrl;
|
||||
|
||||
/**
|
||||
* 三方性别
|
||||
*/
|
||||
private String thirdSex;
|
||||
|
||||
/**
|
||||
* 安心筑人员ID,安心筑唯一识别码
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
private String thirdExt;
|
||||
private Long isDelete = 0L;
|
||||
private Date createAt;
|
||||
private Date updateAt;
|
||||
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
package cn.axzo.riven.client.res;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class ThirdProjectPersonRes {
|
||||
|
||||
private Long id;
|
||||
/**
|
||||
* 三方名称code
|
||||
*/
|
||||
private String thirdCode;
|
||||
|
||||
/**
|
||||
* '三方项目编号'
|
||||
*/
|
||||
private String thirdProjectId;
|
||||
|
||||
|
||||
/**
|
||||
* 三方人员唯一ID
|
||||
*/
|
||||
private String thirdUniquePersonId;
|
||||
|
||||
/**
|
||||
* 三方人员工号ID
|
||||
*/
|
||||
private String thirdWorkerId;
|
||||
/**
|
||||
* 三方工人类型
|
||||
*/
|
||||
private String thirdWorkType;
|
||||
|
||||
/**
|
||||
* 三方所属班组
|
||||
*/
|
||||
private String thirdTeamId;
|
||||
|
||||
/**
|
||||
* 三方所属班组名称
|
||||
*/
|
||||
private String thirdTeamName;
|
||||
|
||||
/**
|
||||
* 三方班组ID
|
||||
*/
|
||||
private String thirdWorkId;
|
||||
|
||||
/**
|
||||
* 三方部门ID
|
||||
*/
|
||||
private String thirdDepartmentId;
|
||||
|
||||
/**
|
||||
* 三方岗位名称
|
||||
*/
|
||||
private String thirdPostName;
|
||||
|
||||
/**
|
||||
* 最后一次同步时间
|
||||
*/
|
||||
private Date lastSyncAt;
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 三方ext,扩展域等等,工种信息等等
|
||||
*/
|
||||
private String thirdExt;
|
||||
private Long isDelete = 0L;
|
||||
private Date createAt;
|
||||
private Date updateAt;
|
||||
|
||||
/**
|
||||
* 需要指定 needThirdPerson = true
|
||||
*/
|
||||
private ThirdPersonRes thirdPersonRes;
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
package cn.axzo.riven.client.res;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author syl
|
||||
* @date 2024/10/24
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ThirdProjectResp {
|
||||
|
||||
/**
|
||||
* 三方名称code
|
||||
*/
|
||||
private String thirdCode;
|
||||
|
||||
/**
|
||||
* 三方项目编号
|
||||
*/
|
||||
private String thirdProjectId;
|
||||
|
||||
/**
|
||||
* 三方项目名称
|
||||
*/
|
||||
private String thirdProjectName;
|
||||
|
||||
/**
|
||||
* 同步策略,0不创建人员,1创建普通员工,2创建管理员,3创建普通员工+管理员)
|
||||
*/
|
||||
private String syncType;
|
||||
|
||||
/**
|
||||
* 三方单位统一社会信用代码
|
||||
*/
|
||||
private String uniformSocialCreditCode;
|
||||
|
||||
|
||||
/**
|
||||
* 三方建设单位名称
|
||||
*/
|
||||
private String thirdProjectConstructionUnit;
|
||||
|
||||
/**
|
||||
* 三方扩展域
|
||||
* 每个三方对应扩展域不同
|
||||
*/
|
||||
private String thirdProjectExt;
|
||||
|
||||
/**
|
||||
* 泰州项目扩展配置
|
||||
*/
|
||||
private TaiZhouThirdProjectExtDto taiZhouThirdProjectExt;
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
package cn.axzo.riven;
|
||||
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
//@SpringBootApplication(scanBasePackages = "cn.axzo")
|
||||
@EnableFeignClients(basePackages = {"cn.axzo"})
|
||||
@Log4j2
|
||||
public class RivenTestApplication {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
System.setProperty("spring.profiles.active", "test");
|
||||
System.setProperty("NACOS_HOST", "https://test-nacos.axzo.cn");
|
||||
System.setProperty("NACOS_NAMESPACE_ID", "f3c0f0d2-bac4-4498-bee7-9c3636b3afdf");
|
||||
System.setProperty("CUSTOM_ENV", "test");
|
||||
System.setProperty("NACOS_PORT", "443");
|
||||
|
||||
System.setProperty("spring.redis.port", "6379");
|
||||
System.setProperty("spring.redis.host", "172.16.2.149");
|
||||
System.setProperty("spring.datasource.url", "jdbc:mysql://172.16.2.143:3306/pudge?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=true&verifyServerCertificate=false");
|
||||
|
||||
System.setProperty("rocketmq.name-server", "172.16.2.82:9876");
|
||||
|
||||
SpringApplication application = new SpringApplication(RivenTestApplication.class);
|
||||
ApplicationContext applicationContext = application.run(args);
|
||||
Environment env = applicationContext.getEnvironment();
|
||||
log.info(
|
||||
"--------------------------------------------------------------------------------------------------------------------\n" +
|
||||
"Application 【{}】 is running on 【{}】 environment!\n" +
|
||||
"Api Local: \thttp://127.0.0.1:{}\n" +
|
||||
"Mysql: \t{}\t username:{}\n" +
|
||||
"Redis: \t{}:{}\t database:{}\n" +
|
||||
"RabbitMQ: \t{}\t username:{}",
|
||||
env.getProperty("spring.application.name"),
|
||||
env.getProperty("spring.profiles.active"),
|
||||
env.getProperty("server.port"),
|
||||
env.getProperty("spring.datasource.url"),
|
||||
env.getProperty("spring.datasource.username"),
|
||||
env.getProperty("spring.redis.host"),
|
||||
env.getProperty("spring.redis.port"),
|
||||
env.getProperty("spring.redis.database"),
|
||||
env.getProperty("spring.rabbitmq.addresses"),
|
||||
env.getProperty("spring.rabbitmq.username") +
|
||||
"\n----------------------------------------------------------");
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.axzo.riven.third.api;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.riven.client.common.enums.ThirdCodeEnum;
|
||||
import cn.axzo.riven.client.feign.ThirdProjectApi;
|
||||
import cn.axzo.riven.client.req.ThirdProjectReq;
|
||||
import cn.axzo.riven.client.res.ThirdProjectResp;
|
||||
import cn.axzo.riven.third.mapstruct.ThirdProjectConverter;
|
||||
import cn.axzo.riven.third.taizhou.entity.TaiZhouProject;
|
||||
import cn.axzo.riven.third.taizhou.service.TaiZhouService;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author syl
|
||||
* @date 2024/10/24
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class ThirdProjectApiImpl implements ThirdProjectApi {
|
||||
|
||||
@Autowired
|
||||
private TaiZhouService taiZhouService;
|
||||
|
||||
@Override
|
||||
public ApiResult<List<ThirdProjectResp>> queryThirdProject(ThirdProjectReq req) {
|
||||
// 目前仅对接泰州,所以这里仅支持泰州项目查询
|
||||
if (!Objects.equals(ThirdCodeEnum.TAI_ZHOU, req.getThirdCode())) {
|
||||
return ApiResult.ok(new ArrayList<>());
|
||||
}
|
||||
List<TaiZhouProject> taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou();
|
||||
List<ThirdProjectResp> result = ThirdProjectConverter.INSTANCE.convertFromProjects(taiZhouProjectList);
|
||||
return ApiResult.ok(result);
|
||||
}
|
||||
}
|
||||
@ -1,14 +1,34 @@
|
||||
package cn.axzo.riven.third.controller;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.riven.client.common.enums.ThirdCodeEnum;
|
||||
import cn.axzo.riven.client.feign.ThirdPartPersonApi;
|
||||
import cn.axzo.riven.client.req.ListThirdProjectPeopleReq;
|
||||
import cn.axzo.riven.client.res.ThirdPartPersonRes;
|
||||
import cn.axzo.riven.client.res.ThirdPersonRes;
|
||||
import cn.axzo.riven.client.res.ThirdProjectPersonRes;
|
||||
import cn.axzo.riven.third.dao.ThirdPersonDao;
|
||||
import cn.axzo.riven.third.dao.ThirdProjectDao;
|
||||
import cn.axzo.riven.third.dao.ThirdProjectPersonDao;
|
||||
import cn.axzo.riven.third.entity.ThirdPerson;
|
||||
import cn.axzo.riven.third.entity.ThirdProject;
|
||||
import cn.axzo.riven.third.entity.ThirdProjectPerson;
|
||||
import cn.axzo.riven.third.service.ThirdPersonService;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.BooleanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhongpeng
|
||||
* @date 2024/8/9 18:10
|
||||
@ -18,12 +38,103 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
public class ThirdPartPersonController implements ThirdPartPersonApi {
|
||||
|
||||
private final ThirdPersonService thirdPersonService;
|
||||
private final ThirdProjectPersonDao thirdProjectPersonDao;
|
||||
private final ThirdPersonDao thirdPersonDao;
|
||||
private final ThirdProjectDao thirdProjectDao;
|
||||
|
||||
@Override
|
||||
public ApiResult<ThirdPartPersonRes> getThirdPartPerson(Long personId, ThirdCodeEnum thirdCode) {
|
||||
|
||||
ThirdPartPersonRes thirdPartPersonRes = thirdPersonService.getThirdPartPerson(personId,thirdCode);
|
||||
ThirdPartPersonRes thirdPartPersonRes = thirdPersonService.getThirdPartPerson(personId, thirdCode);
|
||||
|
||||
return ApiResult.ok(thirdPartPersonRes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<ThirdProjectPersonRes>> listThirdProjectPeople(ListThirdProjectPeopleReq param) {
|
||||
ThirdProject thirdProject = thirdProjectDao.lambdaQuery().eq(ThirdProject::getThirdCode, param.getThirdCode())
|
||||
.eq(ThirdProject::getThirdProjectId, param.getThirdProjectId())
|
||||
.eq(ThirdProject::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.one();
|
||||
if (thirdProject == null){
|
||||
return ApiResult.ok(ImmutableList.of());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(param.getPersonIds())) {
|
||||
return ApiResult.ok(queryByPerson(param, thirdProject));
|
||||
}
|
||||
List<ThirdProjectPersonRes> result = thirdProjectPersonDao.lambdaQuery()
|
||||
.eq(ThirdProjectPerson::getThirdCode, param.getThirdCode())
|
||||
.eq(ThirdProjectPerson::getThirdProjectId, param.getThirdProjectId())
|
||||
.in(CollUtil.isNotEmpty(param.getThirdUniquePersonIds()), ThirdProjectPerson::getThirdUniquePersonId, param.getThirdUniquePersonIds())
|
||||
.eq(ThirdProjectPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list()
|
||||
.stream().map(e -> {
|
||||
ThirdProjectPersonRes res = BeanUtil.toBean(e, ThirdProjectPersonRes.class);
|
||||
res.setWorkspaceId(thirdProject.normalizedExt().getWorkspaceId());
|
||||
return res;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
assembleThirdPersonIfNeed(result, param);
|
||||
return ApiResult.ok(result);
|
||||
}
|
||||
|
||||
private List<ThirdProjectPersonRes> queryByPerson(ListThirdProjectPeopleReq param, ThirdProject thirdProject) {
|
||||
Map<String, ThirdPerson> thirdPersonMap = thirdPersonDao.lambdaQuery()
|
||||
.eq(ThirdPerson::getThirdCode, param.getThirdCode())
|
||||
.in(CollUtil.isNotEmpty(param.getThirdUniquePersonIds()),
|
||||
ThirdPerson::getThirdUniquePersonId, param.getThirdUniquePersonIds())
|
||||
.in(CollUtil.isNotEmpty(param.getPersonIds()), ThirdPerson::getPersonId, param.getPersonIds())
|
||||
.eq(ThirdPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(ThirdPerson::getThirdUniquePersonId, Function.identity()));
|
||||
|
||||
if (CollUtil.isEmpty(thirdPersonMap)) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
List<ThirdProjectPersonRes> result = thirdProjectPersonDao.lambdaQuery()
|
||||
.eq(ThirdProjectPerson::getThirdCode, param.getThirdCode())
|
||||
.eq(ThirdProjectPerson::getThirdProjectId, param.getThirdProjectId())
|
||||
.in(ThirdProjectPerson::getThirdUniquePersonId, thirdPersonMap.keySet())
|
||||
.eq(ThirdProjectPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list()
|
||||
.stream().map(e -> {
|
||||
ThirdProjectPersonRes res = BeanUtil.toBean(e, ThirdProjectPersonRes.class);
|
||||
res.setWorkspaceId(thirdProject.normalizedExt().getWorkspaceId());
|
||||
|
||||
ThirdPerson thirdPerson = thirdPersonMap.get(e.getThirdUniquePersonId());
|
||||
res.setThirdPersonRes(thirdPerson == null ? null : BeanUtil.toBean(thirdPerson, ThirdPersonRes.class));
|
||||
return res;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
return result;
|
||||
}
|
||||
|
||||
private void assembleThirdPersonIfNeed(List<ThirdProjectPersonRes> result, ListThirdProjectPeopleReq param) {
|
||||
if (result.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (!BooleanUtil.isTrue(param.getNeedThirdPerson())) {
|
||||
return;
|
||||
}
|
||||
Set<String> thirdPersonIds = result.stream()
|
||||
.map(ThirdProjectPersonRes::getThirdUniquePersonId)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.collect(Collectors.toSet());
|
||||
if (thirdPersonIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Map<String, ThirdPerson> thirdPersonMap = thirdPersonDao.lambdaQuery()
|
||||
.eq(ThirdPerson::getThirdCode, param.getThirdCode())
|
||||
.in(ThirdPerson::getThirdUniquePersonId, thirdPersonIds)
|
||||
.in(CollUtil.isNotEmpty(param.getPersonIds()), ThirdPerson::getPersonId, param.getPersonIds())
|
||||
.eq(ThirdPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list().stream()
|
||||
.collect(Collectors.toMap(ThirdPerson::getThirdUniquePersonId, Function.identity()));
|
||||
result.forEach(t -> {
|
||||
ThirdPerson thirdPerson = thirdPersonMap.get(t.getThirdUniquePersonId());
|
||||
t.setThirdPersonRes(thirdPerson == null ? null : BeanUtil.toBean(thirdPerson, ThirdPersonRes.class));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
package cn.axzo.riven.third.entity;
|
||||
|
||||
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
|
||||
import cn.axzo.riven.third.taizhou.entity.TaiZhouThirdProjectExt;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -49,4 +53,9 @@ public class ThirdProject extends BaseEntity<ThirdProject> {
|
||||
*/
|
||||
private String thirdProjectExt;
|
||||
|
||||
public TaiZhouThirdProjectExt normalizedExt() {
|
||||
return StrUtil.isBlank(thirdProjectExt) ? new TaiZhouThirdProjectExt()
|
||||
: JSON.parseObject(thirdProjectExt, TaiZhouThirdProjectExt.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.axzo.riven.third.mapstruct;
|
||||
|
||||
import cn.axzo.riven.client.res.ThirdProjectResp;
|
||||
import cn.axzo.riven.third.taizhou.entity.TaiZhouProject;
|
||||
import java.util.List;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* @author syl
|
||||
* @date 2024/10/24
|
||||
*/
|
||||
@Mapper(builder = @org.mapstruct.Builder(disableBuilder = true))
|
||||
public interface ThirdProjectConverter {
|
||||
|
||||
ThirdProjectConverter INSTANCE = Mappers.getMapper(ThirdProjectConverter.class);
|
||||
|
||||
@Mappings({
|
||||
@Mapping(source = "taiZhouThirdProjectExt", target = "taiZhouThirdProjectExt"),
|
||||
})
|
||||
ThirdProjectResp map(TaiZhouProject project);
|
||||
|
||||
List<ThirdProjectResp> convertFromProjects(List<TaiZhouProject> req);
|
||||
}
|
||||
@ -22,5 +22,9 @@ public class TaiZhouThirdProjectExt implements Serializable {
|
||||
*/
|
||||
private String dataNumber;
|
||||
|
||||
/**
|
||||
* 对应安心筑项目id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user