From 7ca9bf8356d3ec064a086e5c5b13721837548257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=95=8F?= Date: Mon, 28 Oct 2024 11:07:10 +0800 Subject: [PATCH 1/9] =?UTF-8?q?feat(REQ-3136):=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E9=A1=B9=E7=9B=AE=E4=BA=BA=E5=91=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/feign/ThirdPartPersonApi.java | 22 +++-- .../client/req/ListThirdProjectPeopleReq.java | 31 +++++++ .../axzo/riven/client/res/ThirdPersonRes.java | 73 ++++++++++++++++ .../client/res/ThirdProjectPersonRes.java | 85 +++++++++++++++++++ .../cn/axzo/riven/RivenTestApplication.java | 54 ++++++++++++ .../controller/ThirdPartPersonController.java | 11 +++ 6 files changed, 269 insertions(+), 7 deletions(-) create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/res/ThirdPersonRes.java create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectPersonRes.java create mode 100644 riven-server/src/main/java/cn/axzo/riven/RivenTestApplication.java diff --git a/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java index 89d680a..56b301b 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java @@ -2,17 +2,19 @@ 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.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Set; /** @@ -24,12 +26,18 @@ public interface ThirdPartPersonApi { /** * 通过安心筑人员账号和三方类型获取三方人员信息 + * * @param personId 安心筑人员ID * @param thirdCode 三方类型,枚举值 * @return */ @GetMapping("/api/thirdPart/getPerson") - ApiResult getThirdPartPerson(@RequestParam("personId")Long personId,@RequestParam("thirdCode") ThirdCodeEnum thirdCode); - + ApiResult getThirdPartPerson(@RequestParam("personId") Long personId, @RequestParam("thirdCode") ThirdCodeEnum thirdCode); + /** + * 查询三方项目用户 + * @param param + * @return + */ + ApiResult> listThirdProjectPeople(ListThirdProjectPeopleReq param); } diff --git a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java new file mode 100644 index 0000000..11d2ef5 --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java @@ -0,0 +1,31 @@ +package cn.axzo.riven.client.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Set; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ListThirdProjectPeopleReq implements Serializable { + + /** + * 三方名称code + */ + private String thirdCode; + /** + * '三方项目编号' + */ + private String thirdProjectId; + /** + * 三方人员唯一ID + */ + private Set thirdUniquePersonIds; + + private Boolean needThirdPerson; +} diff --git a/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdPersonRes.java b/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdPersonRes.java new file mode 100644 index 0000000..ea91adb --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdPersonRes.java @@ -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; + +} diff --git a/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectPersonRes.java b/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectPersonRes.java new file mode 100644 index 0000000..0d0a455 --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectPersonRes.java @@ -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; +} diff --git a/riven-server/src/main/java/cn/axzo/riven/RivenTestApplication.java b/riven-server/src/main/java/cn/axzo/riven/RivenTestApplication.java new file mode 100644 index 0000000..2708932 --- /dev/null +++ b/riven-server/src/main/java/cn/axzo/riven/RivenTestApplication.java @@ -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----------------------------------------------------------"); + } + +} diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index 9dac55a..e8c7ae5 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -3,12 +3,17 @@ package cn.axzo.riven.third.controller; 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.ThirdProjectPersonRes; import cn.axzo.riven.third.service.ThirdPersonService; +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; + /** * @author zhongpeng * @date 2024/8/9 18:10 @@ -26,4 +31,10 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { return ApiResult.ok(thirdPartPersonRes); } + + @Override + public ApiResult> listThirdProjectPeople(ListThirdProjectPeopleReq param) { + // TODO + return ApiResult.ok(ImmutableList.of()); + } } From c58ca3855fe423ff208b0a6b686a21bd0d9c5403 Mon Sep 17 00:00:00 2001 From: songyuanlun Date: Mon, 28 Oct 2024 11:13:20 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat(REQ-3136):=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=B3=B0=E5=B7=9E=E9=A1=B9=E7=9B=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84feign?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/riven/client/feign/TaiZhouApi.java | 26 ++++++++ .../client/feign/ThirdPartPersonApi.java | 2 + .../riven/client/req/ThirdProjectReq.java | 25 ++++++++ .../riven/client/res/TaiZhouProjectResp.java | 59 +++++++++++++++++++ .../client/res/TaiZhouThirdProjectExtDto.java | 27 +++++++++ .../axzo/riven/third/api/TaiZhouApiImpl.java | 41 +++++++++++++ .../third/mapstruct/TaiZhouConverter.java | 26 ++++++++ 7 files changed, 206 insertions(+) create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/req/ThirdProjectReq.java create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java create mode 100644 riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouThirdProjectExtDto.java create mode 100644 riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java create mode 100644 riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java diff --git a/riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java b/riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java new file mode 100644 index 0000000..8e74ffe --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java @@ -0,0 +1,26 @@ +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.ThirdProjectReq; +import cn.axzo.riven.client.res.TaiZhouProjectResp; +import cn.axzo.riven.client.res.ThirdPartPersonRes; +import java.util.List; +import javax.validation.Valid; +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; + +/** + * @author syl + * @date 2024/10/24 + */ +@FeignClient(name = "riven", url = "${axzo.service.riven:http://riven:8080}") +public interface TaiZhouApi { + + @PostMapping("/api/third/queryProject") + ApiResult> queryThirdProject(@RequestBody @Valid ThirdProjectReq req); + +} diff --git a/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java index 56b301b..9318341 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java @@ -11,6 +11,7 @@ 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.RequestParam; import java.util.List; @@ -39,5 +40,6 @@ public interface ThirdPartPersonApi { * @param param * @return */ + @PostMapping("/api/thirdPart/listPerson") ApiResult> listThirdProjectPeople(ListThirdProjectPeopleReq param); } diff --git a/riven-api/src/main/java/cn/axzo/riven/client/req/ThirdProjectReq.java b/riven-api/src/main/java/cn/axzo/riven/client/req/ThirdProjectReq.java new file mode 100644 index 0000000..1e52ec1 --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/req/ThirdProjectReq.java @@ -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; +} diff --git a/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java b/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java new file mode 100644 index 0000000..ee801af --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java @@ -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 TaiZhouProjectResp { + + /** + * 三方名称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; +} diff --git a/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouThirdProjectExtDto.java b/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouThirdProjectExtDto.java new file mode 100644 index 0000000..c95317f --- /dev/null +++ b/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouThirdProjectExtDto.java @@ -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; +} diff --git a/riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java b/riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java new file mode 100644 index 0000000..f8d546b --- /dev/null +++ b/riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java @@ -0,0 +1,41 @@ +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.TaiZhouApi; +import cn.axzo.riven.client.req.ThirdProjectReq; +import cn.axzo.riven.client.res.TaiZhouProjectResp; +import cn.axzo.riven.client.res.ThirdPartPersonRes; +import cn.axzo.riven.third.mapstruct.TaiZhouConverter; +import cn.axzo.riven.third.taizhou.entity.TaiZhouProject; +import cn.axzo.riven.third.taizhou.service.TaiZhouService; +import java.util.ArrayList; +import java.util.Collections; +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 TaiZhouApiImpl implements TaiZhouApi { + + @Autowired + private TaiZhouService taiZhouService; + + @Override + public ApiResult> queryThirdProject(ThirdProjectReq req) { + // 目前仅对接泰州,所以这里仅支持泰州项目查询 + if (!Objects.equals(ThirdCodeEnum.TAI_ZHOU, req.getThirdCode())) { + return ApiResult.ok(new ArrayList<>()); + } + List taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou(); + List result = TaiZhouConverter.INSTANCE.convertFromProjects(taiZhouProjectList); + return ApiResult.ok(result); + } +} diff --git a/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java b/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java new file mode 100644 index 0000000..a03b655 --- /dev/null +++ b/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java @@ -0,0 +1,26 @@ +package cn.axzo.riven.third.mapstruct; + +import cn.axzo.riven.client.res.TaiZhouProjectResp; +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 TaiZhouConverter { + + TaiZhouConverter INSTANCE = Mappers.getMapper(TaiZhouConverter.class); + + @Mappings({ + @Mapping(source = "taiZhouThirdProjectExt", target = "taiZhouThirdProjectExt"), + }) + TaiZhouProjectResp map(TaiZhouProject project); + + List convertFromProjects(List req); +} From ee8f4461b73725d61386632b96c99bf35d621f4c Mon Sep 17 00:00:00 2001 From: songyuanlun Date: Mon, 28 Oct 2024 11:30:07 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat(REQ-3136):=20=E8=A7=A3=E5=86=B3riven?= =?UTF-8?q?=E6=89=93=E4=B8=8D=E8=B5=B7=E5=8C=85=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- integration-test/pom.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/integration-test/pom.xml b/integration-test/pom.xml index fd03191..0f01050 100644 --- a/integration-test/pom.xml +++ b/integration-test/pom.xml @@ -6,14 +6,13 @@ cn.axzo riven - 2.0.0-SNAPSHOT + ${revision} + ../pom.xml integration-test - 11 - 11 UTF-8 From 84c278533abea65da5d1eb689acef4e5f09eebc9 Mon Sep 17 00:00:00 2001 From: songyuanlun Date: Mon, 28 Oct 2024 12:55:11 +0800 Subject: [PATCH 4/9] =?UTF-8?q?feat(REQ-3136):=20=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E9=A1=B9=E7=9B=AE=E4=BF=A1=E6=81=AFapi=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{TaiZhouApi.java => ThirdProjectApi.java} | 10 +++------- ...iZhouProjectResp.java => ThirdProjectResp.java} | 2 +- ...aiZhouApiImpl.java => ThirdProjectApiImpl.java} | 14 ++++++-------- ...ouConverter.java => ThirdProjectConverter.java} | 10 +++++----- 4 files changed, 15 insertions(+), 21 deletions(-) rename riven-api/src/main/java/cn/axzo/riven/client/feign/{TaiZhouApi.java => ThirdProjectApi.java} (56%) rename riven-api/src/main/java/cn/axzo/riven/client/res/{TaiZhouProjectResp.java => ThirdProjectResp.java} (96%) rename riven-third/src/main/java/cn/axzo/riven/third/api/{TaiZhouApiImpl.java => ThirdProjectApiImpl.java} (68%) rename riven-third/src/main/java/cn/axzo/riven/third/mapstruct/{TaiZhouConverter.java => ThirdProjectConverter.java} (61%) diff --git a/riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdProjectApi.java similarity index 56% rename from riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java rename to riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdProjectApi.java index 8e74ffe..c34f204 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/feign/TaiZhouApi.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdProjectApi.java @@ -1,26 +1,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.ThirdProjectReq; -import cn.axzo.riven.client.res.TaiZhouProjectResp; -import cn.axzo.riven.client.res.ThirdPartPersonRes; +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.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; /** * @author syl * @date 2024/10/24 */ @FeignClient(name = "riven", url = "${axzo.service.riven:http://riven:8080}") -public interface TaiZhouApi { +public interface ThirdProjectApi { @PostMapping("/api/third/queryProject") - ApiResult> queryThirdProject(@RequestBody @Valid ThirdProjectReq req); + ApiResult> queryThirdProject(@RequestBody @Valid ThirdProjectReq req); } diff --git a/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java b/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectResp.java similarity index 96% rename from riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java rename to riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectResp.java index ee801af..fd9719a 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/res/TaiZhouProjectResp.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/res/ThirdProjectResp.java @@ -13,7 +13,7 @@ import lombok.NoArgsConstructor; @Builder @NoArgsConstructor @AllArgsConstructor -public class TaiZhouProjectResp { +public class ThirdProjectResp { /** * 三方名称code diff --git a/riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java b/riven-third/src/main/java/cn/axzo/riven/third/api/ThirdProjectApiImpl.java similarity index 68% rename from riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java rename to riven-third/src/main/java/cn/axzo/riven/third/api/ThirdProjectApiImpl.java index f8d546b..20bbd06 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/api/TaiZhouApiImpl.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/api/ThirdProjectApiImpl.java @@ -2,15 +2,13 @@ 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.TaiZhouApi; +import cn.axzo.riven.client.feign.ThirdProjectApi; import cn.axzo.riven.client.req.ThirdProjectReq; -import cn.axzo.riven.client.res.TaiZhouProjectResp; -import cn.axzo.riven.client.res.ThirdPartPersonRes; -import cn.axzo.riven.third.mapstruct.TaiZhouConverter; +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.Collections; import java.util.List; import java.util.Objects; import lombok.extern.slf4j.Slf4j; @@ -23,19 +21,19 @@ import org.springframework.web.bind.annotation.RestController; */ @Slf4j @RestController -public class TaiZhouApiImpl implements TaiZhouApi { +public class ThirdProjectApiImpl implements ThirdProjectApi { @Autowired private TaiZhouService taiZhouService; @Override - public ApiResult> queryThirdProject(ThirdProjectReq req) { + public ApiResult> queryThirdProject(ThirdProjectReq req) { // 目前仅对接泰州,所以这里仅支持泰州项目查询 if (!Objects.equals(ThirdCodeEnum.TAI_ZHOU, req.getThirdCode())) { return ApiResult.ok(new ArrayList<>()); } List taiZhouProjectList = taiZhouService.queryThirdProjectForTaiZhou(); - List result = TaiZhouConverter.INSTANCE.convertFromProjects(taiZhouProjectList); + List result = ThirdProjectConverter.INSTANCE.convertFromProjects(taiZhouProjectList); return ApiResult.ok(result); } } diff --git a/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java b/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/ThirdProjectConverter.java similarity index 61% rename from riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java rename to riven-third/src/main/java/cn/axzo/riven/third/mapstruct/ThirdProjectConverter.java index a03b655..f0791f3 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/TaiZhouConverter.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/mapstruct/ThirdProjectConverter.java @@ -1,6 +1,6 @@ package cn.axzo.riven.third.mapstruct; -import cn.axzo.riven.client.res.TaiZhouProjectResp; +import cn.axzo.riven.client.res.ThirdProjectResp; import cn.axzo.riven.third.taizhou.entity.TaiZhouProject; import java.util.List; import org.mapstruct.Mapper; @@ -13,14 +13,14 @@ import org.mapstruct.factory.Mappers; * @date 2024/10/24 */ @Mapper(builder = @org.mapstruct.Builder(disableBuilder = true)) -public interface TaiZhouConverter { +public interface ThirdProjectConverter { - TaiZhouConverter INSTANCE = Mappers.getMapper(TaiZhouConverter.class); + ThirdProjectConverter INSTANCE = Mappers.getMapper(ThirdProjectConverter.class); @Mappings({ @Mapping(source = "taiZhouThirdProjectExt", target = "taiZhouThirdProjectExt"), }) - TaiZhouProjectResp map(TaiZhouProject project); + ThirdProjectResp map(TaiZhouProject project); - List convertFromProjects(List req); + List convertFromProjects(List req); } From 40d18046cb30b1e1cdbe4daf525a26319db88edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=95=8F?= Date: Wed, 30 Oct 2024 10:26:19 +0800 Subject: [PATCH 5/9] =?UTF-8?q?feat(REQ-3136):=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E9=A1=B9=E7=9B=AE=E4=BA=BA=E5=91=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=20step2=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/third-project-person-api.http | 12 ++++ .../client/feign/ThirdPartPersonApi.java | 6 +- .../client/req/ListThirdProjectPeopleReq.java | 3 + .../controller/ThirdPartPersonController.java | 58 +++++++++++++++++-- 4 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 integration-test/src/test/resources/third-project-person-api.http diff --git a/integration-test/src/test/resources/third-project-person-api.http b/integration-test/src/test/resources/third-project-person-api.http new file mode 100644 index 0000000..458db63 --- /dev/null +++ b/integration-test/src/test/resources/third-project-person-api.http @@ -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 +} diff --git a/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java index 9318341..7ecd89f 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/feign/ThirdPartPersonApi.java @@ -12,8 +12,10 @@ 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; @@ -40,6 +42,6 @@ public interface ThirdPartPersonApi { * @param param * @return */ - @PostMapping("/api/thirdPart/listPerson") - ApiResult> listThirdProjectPeople(ListThirdProjectPeopleReq param); + @PostMapping("/api/thirdPart/listProjectPeople") + ApiResult> listThirdProjectPeople(@RequestBody @Valid ListThirdProjectPeopleReq param); } diff --git a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java index 11d2ef5..8951831 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java @@ -5,6 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Set; @@ -17,10 +18,12 @@ public class ListThirdProjectPeopleReq implements Serializable { /** * 三方名称code */ + @NotBlank(message = "thirdCode不能为空") private String thirdCode; /** * '三方项目编号' */ + @NotBlank(message = "thirdProjectId不能为空") private String thirdProjectId; /** * 三方人员唯一ID diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index e8c7ae5..8784df3 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -1,18 +1,30 @@ 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.ThirdProjectPersonDao; +import cn.axzo.riven.third.entity.ThirdPerson; +import cn.axzo.riven.third.entity.ThirdProjectPerson; import cn.axzo.riven.third.service.ThirdPersonService; -import com.google.common.collect.ImmutableList; +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 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 @@ -23,18 +35,54 @@ import java.util.List; public class ThirdPartPersonController implements ThirdPartPersonApi { private final ThirdPersonService thirdPersonService; + private final ThirdProjectPersonDao thirdProjectPersonDao; + private final ThirdPersonDao thirdPersonDao; @Override public ApiResult getThirdPartPerson(Long personId, ThirdCodeEnum thirdCode) { - ThirdPartPersonRes thirdPartPersonRes = thirdPersonService.getThirdPartPerson(personId,thirdCode); + ThirdPartPersonRes thirdPartPersonRes = thirdPersonService.getThirdPartPerson(personId, thirdCode); return ApiResult.ok(thirdPartPersonRes); } @Override public ApiResult> listThirdProjectPeople(ListThirdProjectPeopleReq param) { - // TODO - return ApiResult.ok(ImmutableList.of()); + List 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 -> BeanUtil.toBean(e, ThirdProjectPersonRes.class)) + .collect(Collectors.toList()); + assembleThirdPersonIfNeed(result, param); + return ApiResult.ok(result); + } + + private void assembleThirdPersonIfNeed(List result, ListThirdProjectPeopleReq param) { + if (result.isEmpty()) { + return; + } + if (!BooleanUtil.isTrue(param.getNeedThirdPerson())) { + return; + } + Set thirdPersonIds = result.stream() + .map(ThirdProjectPersonRes::getThirdUniquePersonId) + .filter(StrUtil::isNotBlank) + .collect(Collectors.toSet()); + if (thirdPersonIds.isEmpty()) { + return; + } + Map thirdPersonMap = thirdPersonDao.lambdaQuery() + .eq(ThirdPerson::getThirdCode, param.getThirdCode()) + .in(ThirdPerson::getThirdUniquePersonId, thirdPersonIds) + .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)); + }); } } From dda00b5e183247c51fd7db7a7b80a8366a3c71e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=95=8F?= Date: Wed, 30 Oct 2024 11:53:20 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat(REQ-3136):=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E9=A1=B9=E7=9B=AE=E4=BA=BA=E5=91=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=20step3=20=E8=BF=94=E5=9B=9Eworkspa?= =?UTF-8?q?ceId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../third/controller/ThirdPartPersonController.java | 13 ++++++++++++- .../cn/axzo/riven/third/entity/ThirdProject.java | 9 +++++++++ .../axzo/riven/third/entity/ThirdProjectPerson.java | 5 +++++ .../taizhou/entity/TaiZhouThirdProjectExt.java | 4 ++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index 8784df3..2cf8e88 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -9,8 +9,10 @@ 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; @@ -37,6 +39,7 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { private final ThirdPersonService thirdPersonService; private final ThirdProjectPersonDao thirdProjectPersonDao; private final ThirdPersonDao thirdPersonDao; + private final ThirdProjectDao thirdProjectDao; @Override public ApiResult getThirdPartPerson(Long personId, ThirdCodeEnum thirdCode) { @@ -48,13 +51,21 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { @Override public ApiResult> listThirdProjectPeople(ListThirdProjectPeopleReq param) { + ThirdProject thirdProject = thirdProjectDao.lambdaQuery().eq(ThirdProject::getThirdCode, param.getThirdCode()) + .eq(ThirdProject::getThirdProjectId, param.getThirdProjectId()) + .eq(ThirdProject::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .one(); List 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 -> BeanUtil.toBean(e, ThirdProjectPersonRes.class)) + .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); diff --git a/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProject.java b/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProject.java index 68ac833..5d5db5b 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProject.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProject.java @@ -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 { */ private String thirdProjectExt; + public TaiZhouThirdProjectExt normalizedExt() { + return StrUtil.isBlank(thirdProjectExt) ? new TaiZhouThirdProjectExt() + : JSON.parseObject(thirdProjectExt, TaiZhouThirdProjectExt.class); + } + } diff --git a/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProjectPerson.java b/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProjectPerson.java index 6a08724..e2e3e77 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProjectPerson.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/entity/ThirdProjectPerson.java @@ -60,6 +60,11 @@ public class ThirdProjectPerson extends BaseEntity{ */ private String thirdPostName; + /** + * 最后一次同步时间 + */ + private Date lastSyncAt; + /** * 三方ext,扩展域等等,工种信息等等 */ diff --git a/riven-third/src/main/java/cn/axzo/riven/third/taizhou/entity/TaiZhouThirdProjectExt.java b/riven-third/src/main/java/cn/axzo/riven/third/taizhou/entity/TaiZhouThirdProjectExt.java index d9460fd..a151913 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/taizhou/entity/TaiZhouThirdProjectExt.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/taizhou/entity/TaiZhouThirdProjectExt.java @@ -22,5 +22,9 @@ public class TaiZhouThirdProjectExt implements Serializable { */ private String dataNumber; + /** + * 对应安心筑项目id + */ + private Long workspaceId; } From b134a81fd917e0dfd2f5aa553f0173f6434a8c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=95=8F?= Date: Wed, 30 Oct 2024 13:38:01 +0800 Subject: [PATCH 7/9] =?UTF-8?q?feat(REQ-3136):=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E9=A1=B9=E7=9B=AE=E4=BA=BA=E5=91=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=20=E5=A2=9E=E5=8A=A0=E5=AF=B9thirdC?= =?UTF-8?q?ode+thirdProjectId=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=E9=98=B2?= =?UTF-8?q?=E5=BE=A1=EF=BC=8C=E8=BF=94=E5=9B=9E=E7=A9=BA=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../riven/third/controller/ThirdPartPersonController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index 2cf8e88..4cdff4c 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -19,6 +19,7 @@ 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.web.bind.annotation.RestController; @@ -55,6 +56,9 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { .eq(ThirdProject::getThirdProjectId, param.getThirdProjectId()) .eq(ThirdProject::getIsDelete, TableIsDeleteEnum.NORMAL.value) .one(); + if (thirdProject == null){ + return ApiResult.ok(ImmutableList.of()); + } List result = thirdProjectPersonDao.lambdaQuery() .eq(ThirdProjectPerson::getThirdCode, param.getThirdCode()) .eq(ThirdProjectPerson::getThirdProjectId, param.getThirdProjectId()) From 15805b0707c52319e134c665422482da4bfc5ed1 Mon Sep 17 00:00:00 2001 From: songyuanlun Date: Fri, 8 Nov 2024 15:37:33 +0800 Subject: [PATCH 8/9] =?UTF-8?q?feat(REQ-3136):=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=B3=B0=E5=B7=9E=E4=BA=BA=E5=91=98=E5=88=97=E8=A1=A8=E6=96=B0?= =?UTF-8?q?=E5=A2=9Epersonid=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java | 5 +++++ .../riven/third/controller/ThirdPartPersonController.java | 1 + 2 files changed, 6 insertions(+) diff --git a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java index 8951831..17f10c6 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java @@ -30,5 +30,10 @@ public class ListThirdProjectPeopleReq implements Serializable { */ private Set thirdUniquePersonIds; + /** + * 人员id集合 + */ + private Set personIds; + private Boolean needThirdPerson; } diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index 4cdff4c..31f9452 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -92,6 +92,7 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { Map 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())); From 5eb6083ce0f86e424ed166d74359ed46faf77e54 Mon Sep 17 00:00:00 2001 From: songyuanlun Date: Fri, 8 Nov 2024 21:21:12 +0800 Subject: [PATCH 9/9] =?UTF-8?q?feat(REQ-3173):=20=E6=B3=B0=E5=B7=9E?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ThirdPartPersonController.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index 31f9452..31c453d 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -59,6 +59,9 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { if (thirdProject == null){ return ApiResult.ok(ImmutableList.of()); } + if (CollUtil.isNotEmpty(param.getPersonIds())) { + return ApiResult.ok(queryByPerson(param, thirdProject)); + } List result = thirdProjectPersonDao.lambdaQuery() .eq(ThirdProjectPerson::getThirdCode, param.getThirdCode()) .eq(ThirdProjectPerson::getThirdProjectId, param.getThirdProjectId()) @@ -75,6 +78,39 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { return ApiResult.ok(result); } + private List queryByPerson(ListThirdProjectPeopleReq param, ThirdProject thirdProject) { + Map 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 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 result, ListThirdProjectPeopleReq param) { if (result.isEmpty()) { return;