From 466d451cd44a8a78ae91117acdc1c76f9ecab82c Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 25 Nov 2021 20:37:43 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=B5=81=E8=BD=AC=E8=BF=87=E7=A8=8B=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8C=BA=E5=9D=97=E9=93=BE=E4=B8=8A=E9=93=BE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/BlockChainCreateProjectFormDTO.java | 25 +++++ .../form/BlockChainProcessProjectFormDTO.java | 18 ++++ .../dto/form/BlockChainProjectFormDTO.java | 41 ++++++++ ...ainProjectProcessAssignedStaffFormDTO.java | 52 ++++++++++ .../form/BlockChainProjectProcessFormDTO.java | 50 ++++++++++ .../feign/EpmetThirdOpenFeignClient.java | 17 ++++ .../EpmetThirdOpenFeignClientFallback.java | 10 ++ .../epmet-third/epmet-third-server/pom.xml | 12 +++ .../BlockChainProjectController.java | 40 ++++++++ .../service/BlockChainUploadService.java | 19 ++++ .../impl/BlockChainUploadServiceImpl.java | 94 +++++++++++++++++++ .../impl/ProjectProcessServiceImpl.java | 19 ++++ .../service/impl/ProjectServiceImpl.java | 89 ++++++++++++++---- .../service/impl/ProjectTraceServiceImpl.java | 19 ++++ 14 files changed, 488 insertions(+), 17 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java new file mode 100644 index 0000000000..f83aad5e4e --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 区块链:创建项目form dto + */ +@Data +public class BlockChainCreateProjectFormDTO { + + @NotNull(message = "项目信息不能为空") + private BlockChainProjectFormDTO project; + + @NotNull(message = "处理进展信息不能为空") + private BlockChainProjectProcessFormDTO process; + + @NotNull(message = "指派的人员列表信息不能为空") + @NotEmpty(message = "指派的人员列表信息不能为空") + private List assignedStaffs; + +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java new file mode 100644 index 0000000000..7e910f8726 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 区块链:项目处理进展信息 + */ +@Data +public class BlockChainProcessProjectFormDTO { + + @NotNull(message = "处理进展信息不能为空") + private BlockChainProjectProcessFormDTO process; + + private List assignedStaffs; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java new file mode 100644 index 0000000000..2477ee2f00 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +/** + * 区块链项目信息formdto + */ +@Data +public class BlockChainProjectFormDTO { + @NotBlank(message = "项目ID必填") + private String projectId; + @NotBlank(message = "客户ID必填") + private String customerId; + @NotBlank(message = "标题必填") + private String title; + @NotBlank(message = "组织ID必填") + private String agencyId; + @NotBlank(message = "项目来源必填") + private String origin; + @NotBlank(message = "项目来源ID必填") + private String originId; + @NotBlank(message = "项目状态必填") + private String status; + @NotBlank(message = "关闭状态必填") + private String closeStatus; + @NotBlank(message = "组织ID PATH必填") + private String orgIdPath; + @NotBlank(message = "定位必填") + private String locateAddress; + @NotBlank(message = "经度必填") + private String locateLongitude; + @NotBlank(message = "维度必填") + private String locateDimension; + @NotBlank(message = "创建时间必填") + private Date createdTime; + @NotBlank(message = "创建者ID必填") + private String createdBy; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java new file mode 100644 index 0000000000..fae80e91f2 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java @@ -0,0 +1,52 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +/** + * 区块链:指派的项目处理人员 form dto + */ +@Data +public class BlockChainProjectProcessAssignedStaffFormDTO { + @NotBlank(message = "ID必填") + private String id; + + @NotBlank(message = "进展ID必填") + private String processId; + + @NotBlank(message = "项目ID必填") + private String projectId; + + @NotBlank(message = "客户ID必填") + private String customerId; + + @NotBlank(message = "组织ID必填") + private String orgId; + + @NotBlank(message = "部门ID必填") + private String departmentId; + + @NotBlank(message = "网格ID必填") + private String gridId; + + @NotBlank(message = "组织ID PATH必填") + private String orgIdPath; + + @NotBlank(message = "人员ID必填") + private String staffId; + + @NotBlank(message = "部门名称必填") + private String departmentName; + + @NotBlank(message = "是否处理必填") + private String isHandle; + + @NotBlank(message = "创建者ID必填") + private String createdBy; + + @NotBlank(message = "创建时间必填") + private Date createdTime; + +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java new file mode 100644 index 0000000000..136dec1e5e --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java @@ -0,0 +1,50 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * 区块链:项目处理form dto + */ +@Data +public class BlockChainProjectProcessFormDTO { + @NotBlank(message = "处理ID必填") + private String processId; + @NotBlank(message = "项目ID必填") + private String projectId; + @NotBlank(message = "客户ID必填") + private String customerId; + @NotBlank(message = "部门名称必填") + private String departmentName; + @NotBlank(message = "组织ID必填") + private String agencyId; + @NotBlank(message = "部门ID必填") + private String departmentId; + @NotBlank(message = "网格ID必填") + private String gridId; + @NotBlank(message = "组织ID PATH必填") + private String orgIdPath; + @NotBlank(message = "处理人员ID必填") + private String staffId; + @NotBlank(message = "操作类型必填") + private String operation; + @NotBlank(message = "操作名称必填") + private String operationName; + @NotBlank(message = "公开答复必填") + private String publicReply; + @NotBlank(message = "内部备注必填必填") + private String internalRemark; + @NotNull(message = "结束时间必填") + private Date endTime; + @NotNull(message = "是否发送到外部系统必填") + private Integer isSend; + @NotNull(message = "耗费天数必填") + private Integer costWorkDays; + @NotBlank(message = "创建者ID必填") + private String createdBy; + @NotNull(message = "创建时间必填") + private Date createdTime; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java index f71914f828..dc5eb828df 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java @@ -54,6 +54,23 @@ public interface EpmetThirdOpenFeignClient { Result uploadFile(@RequestPart("file") MultipartFile file, @RequestParam("customerId") String customerId, @RequestParam( "platformId") String platformId); + + /** + * 区块链:立项 + * @param input + * @return + */ + @PostMapping("/third/blockchain/project/create") + Result blockChainCreateProject(@RequestBody BlockChainCreateProjectFormDTO input); + + /** + * 区块链:处理进展 + * @param input + * @return + */ + @PostMapping("/third/blockchain/project/process") + Result blockChainProcessProject(@RequestBody BlockChainProcessProjectFormDTO input); + class MultipartSupportConfig { @Bean public Encoder feignFormEncoder() { diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java index e855799478..e257b0347b 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java @@ -49,4 +49,14 @@ public class EpmetThirdOpenFeignClientFallback implements EpmetThirdOpenFeignCli return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "uploadFile", customerId); } + @Override + public Result blockChainCreateProject(BlockChainCreateProjectFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "createProject", input); + } + + @Override + public Result blockChainProcessProject(BlockChainProcessProjectFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "processProject", input); + } + } diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index a885af4c93..84b0161a1a 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -146,6 +146,18 @@ compile + + + org.apache.rocketmq + rocketmq-client + 4.9.2 + + + org.apache.rocketmq + rocketmq-acl + 4.9.2 + + diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java new file mode 100644 index 0000000000..7090bc3ce0 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java @@ -0,0 +1,40 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.BlockChainCreateProjectFormDTO; +import com.epmet.dto.form.BlockChainProcessProjectFormDTO; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 区块链project相关controller + */ +@RestController +@RequestMapping("/blockchain/project") +public class BlockChainProjectController { + + /** + * 立项 + * @param input + * @return + */ + @PostMapping("create") + public Result blockChainCreateProject(@RequestBody BlockChainCreateProjectFormDTO input) { + ValidatorUtils.validateEntity(input); + return new Result(); + } + + /** + * 处理进展 + * @param input + * @return + */ + @PostMapping("process") + public Result blockChainProcessProject(@RequestBody BlockChainProcessProjectFormDTO input) { + ValidatorUtils.validateEntity(input); + return new Result(); + } +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java new file mode 100644 index 0000000000..a9bf0848e2 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java @@ -0,0 +1,19 @@ +package com.epmet.service; + +import com.epmet.entity.ProjectProcessEntity; +import com.epmet.entity.ProjectStaffEntity; + +import java.util.List; + +/** + * 上链service接口 + */ +public interface BlockChainUploadService { + + /** + * 数据上链 + * @param processEntity 处理进展entity + * @param assignedStaffEntities 指派给的工作人员entity + */ + void send2BlockChain(ProjectProcessEntity processEntity, List assignedStaffEntities); +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java new file mode 100644 index 0000000000..2a7f45fccb --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java @@ -0,0 +1,94 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.dao.ProjectStaffDao; +import com.epmet.dto.form.BlockChainProcessProjectFormDTO; +import com.epmet.dto.form.BlockChainProjectProcessAssignedStaffFormDTO; +import com.epmet.dto.form.BlockChainProjectProcessFormDTO; +import com.epmet.entity.ProjectProcessEntity; +import com.epmet.entity.ProjectStaffEntity; +import com.epmet.feign.EpmetThirdOpenFeignClient; +import com.epmet.service.BlockChainUploadService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 区块链上链service实现 + */ +@Service +public class BlockChainUploadServiceImpl implements BlockChainUploadService { + + @Autowired + private EpmetThirdOpenFeignClient thirdOpenFeignClient; + + @Autowired + private ProjectStaffDao projectStaffDao; + + /** + * 数据上链 + * @param processEntity 处理进展entity + * @param assignedStaffEntities 指派给的工作人员entity + */ + public void send2BlockChain(ProjectProcessEntity processEntity, List assignedStaffEntities) { + + BlockChainProjectProcessFormDTO process = new BlockChainProjectProcessFormDTO(); + process.setProcessId(processEntity.getId()); + process.setCreatedBy(processEntity.getCreatedBy()); + process.setCreatedTime(processEntity.getCreatedTime()); + String costWorkdays = processEntity.getCostWorkdays(); + process.setCostWorkDays(StringUtils.isBlank(costWorkdays) ? null : Integer.valueOf(costWorkdays)); + process.setAgencyId(processEntity.getAgencyId()); + process.setCustomerId(processEntity.getCustomerId()); + process.setDepartmentId(processEntity.getDepartmentId()); + process.setDepartmentName(processEntity.getDepartmentName()); + process.setEndTime(processEntity.getEndTime()); + process.setGridId(processEntity.getGridId()); + process.setInternalRemark(processEntity.getInternalRemark()); + process.setIsSend(processEntity.getIsSend()); + process.setOperation(processEntity.getOperation()); + process.setOperationName(processEntity.getOperationName()); + process.setOrgIdPath(processEntity.getOrgIdPath()); + process.setProjectId(processEntity.getProjectId()); + process.setPublicReply(processEntity.getPublicReply()); + process.setStaffId(processEntity.getStaffId()); + + if (assignedStaffEntities == null) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(ProjectStaffEntity::getProcessId, process.getProjectId()); + assignedStaffEntities = projectStaffDao.selectList(query); + } + + if (CollectionUtils.isEmpty(assignedStaffEntities)) { + assignedStaffEntities = new ArrayList<>(); + } + + List assignedStaffs = assignedStaffEntities.stream().map(e -> { + BlockChainProjectProcessAssignedStaffFormDTO assignedStaff = new BlockChainProjectProcessAssignedStaffFormDTO(); + assignedStaff.setStaffId(e.getStaffId()); + assignedStaff.setCreatedBy(e.getCreatedBy()); + assignedStaff.setCustomerId(e.getCustomerId()); + assignedStaff.setCreatedTime(e.getCreatedTime()); + assignedStaff.setProcessId(e.getProcessId()); + assignedStaff.setDepartmentId(e.getDepartmentId()); + assignedStaff.setDepartmentName(e.getDepartmentName()); + assignedStaff.setGridId(e.getGridId()); + assignedStaff.setId(e.getId()); + assignedStaff.setIsHandle(e.getIsHandle()); + assignedStaff.setOrgId(e.getOrgId()); + assignedStaff.setOrgIdPath(e.getOrgIdPath()); + assignedStaff.setProjectId(e.getProjectId()); + return assignedStaff; + }).collect(Collectors.toList()); + + BlockChainProcessProjectFormDTO form = new BlockChainProcessProjectFormDTO(); + form.setProcess(process); + form.setAssignedStaffs(assignedStaffs); + thirdOpenFeignClient.blockChainProcessProject(form); + } +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index de0a8347f4..489bb0737f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -26,6 +26,7 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.scan.param.TextScanParamDTO; @@ -58,6 +59,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; import com.epmet.redis.ProjectProcessRedis; import com.epmet.send.SendMqMsgUtil; +import com.epmet.service.BlockChainUploadService; import com.epmet.service.ProjectProcessService; import com.epmet.service.ProjectService; import com.epmet.service.ProjectStaffService; @@ -120,6 +122,8 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl page(Map params) { @@ -407,6 +411,13 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl()); + } catch (Exception e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【项目流转】上链失败,错误信息:{}", errorMsg); + } } /** @@ -2140,6 +2180,14 @@ public class ProjectServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); - if (!textSyncScanResult.success()) { - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } else { - if (!textSyncScanResult.getData().isAllPass()) { - throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); - } - } - } + //if (com.alibaba.nacos.client.utils.StringUtils.isNotBlank(formDTO.getPublicReply())) { + // TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + // TextTaskDTO taskDTO = new TextTaskDTO(); + // taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + // taskDTO.setContent(formDTO.getPublicReply()); + // textScanParamDTO.getTasks().add(taskDTO); + // Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + // if (!textSyncScanResult.success()) { + // throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + // } else { + // if (!textSyncScanResult.getData().isAllPass()) { + // throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + // } + // } + //} //获取项目相关信息 ProjectEntity projectEntity = baseDao.selectById(formDTO.getProjectId()); @@ -2238,6 +2286,13 @@ public class ProjectServiceImpl extends BaseServiceImpl()); + } catch (Exception e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【项目流转】上链失败,错误信息:{}", errorMsg); + } } /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index e8e79882f7..8bf61721f0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -5,6 +5,7 @@ import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; @@ -91,6 +92,8 @@ public class ProjectTraceServiceImpl implements ProjectTraceS private LoginUserUtil loginUserUtil; @Autowired private ResiEventService resiEventService; + @Autowired + private BlockChainUploadService blockChainUploadService; @Override public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) { @@ -529,6 +532,13 @@ public class ProjectTraceServiceImpl implements ProjectTraceS log.error("项目实时统计消息发送失败"); } + // 数据上链 + try { + blockChainUploadService.send2BlockChain(processEntity, entityList); + } catch (Exception e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【项目流转】上链失败,错误信息:{}", errorMsg); + } } /** @@ -845,6 +855,15 @@ public class ProjectTraceServiceImpl implements ProjectTraceS resiEventService.shiftProject(eventShiftProjectDTO); EventToProjectResultDTO resultDTO=new EventToProjectResultDTO(); resultDTO.setProjectId(projectEntity.getId()); + + // 数据上链 + try { + blockChainUploadService.send2BlockChain(processEntity, entityList); + } catch (Exception e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【项目流转】上链失败,错误信息:{}", errorMsg); + } + return resultDTO; } From 353b57c56d13b5cc65780d87aa1680cd93edea89 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 26 Nov 2021 15:17:34 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E9=A1=B9=E7=9B=AE=E6=B5=81=E8=BD=AC->third->=E5=8C=BA?= =?UTF-8?q?=E5=9D=97=E9=93=BEMQ=E7=9A=84=E5=8A=A8=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/BlockChainCreateProjectFormDTO.java | 1 + .../epmet-third/epmet-third-server/pom.xml | 40 +++++++++ .../java/com/epmet/EpmetThirdApplication.java | 3 + .../BlockChainProjectController.java | 7 ++ .../epmet/mq/producer/BlockChainProducer.java | 88 +++++++++++++++++++ .../mq/properties/RocketMQProperties.java | 33 +++++++ .../service/BlockChainProjectService.java | 14 +++ .../impl/BlockChainProjectServiceImpl.java | 44 ++++++++++ .../src/main/resources/bootstrap.yml | 12 +++ .../service/impl/ProjectServiceImpl.java | 30 +++---- 10 files changed, 257 insertions(+), 15 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/properties/RocketMQProperties.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/BlockChainProjectService.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java index f83aad5e4e..295c125f69 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java @@ -23,3 +23,4 @@ public class BlockChainCreateProjectFormDTO { private List assignedStaffs; } + diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 84b0161a1a..350b72b7b2 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -220,6 +220,16 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + + + + true + 192.168.1.144:9876 + EpmetCloud + 12345678 @@ -260,6 +270,16 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + + + + true + 192.168.1.144:9876 + EpmetCloud + 12345678 @@ -300,6 +320,16 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + + + + false + + + @@ -342,6 +372,16 @@ SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1 + + + + + + false + + + diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java index f2072e4efc..3a7ba889a3 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java @@ -1,11 +1,14 @@ package com.epmet; +import com.epmet.mq.properties.RocketMQProperties; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; +@EnableConfigurationProperties(RocketMQProperties.class) @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java index 7090bc3ce0..2ec27b1e27 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java @@ -4,6 +4,8 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.BlockChainCreateProjectFormDTO; import com.epmet.dto.form.BlockChainProcessProjectFormDTO; +import com.epmet.service.BlockChainProjectService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,6 +18,9 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/blockchain/project") public class BlockChainProjectController { + @Autowired + private BlockChainProjectService blockChainProjectService; + /** * 立项 * @param input @@ -24,6 +29,7 @@ public class BlockChainProjectController { @PostMapping("create") public Result blockChainCreateProject(@RequestBody BlockChainCreateProjectFormDTO input) { ValidatorUtils.validateEntity(input); + blockChainProjectService.blockChainCreateProject(input); return new Result(); } @@ -35,6 +41,7 @@ public class BlockChainProjectController { @PostMapping("process") public Result blockChainProcessProject(@RequestBody BlockChainProcessProjectFormDTO input) { ValidatorUtils.validateEntity(input); + blockChainProjectService.blockChainProcessProject(input); return new Result(); } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java new file mode 100644 index 0000000000..1e2e368222 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java @@ -0,0 +1,88 @@ +package com.epmet.mq.producer; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.mq.properties.RocketMQProperties; +import lombok.extern.slf4j.Slf4j; +import org.apache.rocketmq.acl.common.AclClientRPCHook; +import org.apache.rocketmq.acl.common.SessionCredentials; +import org.apache.rocketmq.client.exception.MQClientException; +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.client.producer.SendStatus; +import org.apache.rocketmq.common.message.Message; +import org.apache.rocketmq.remoting.common.RemotingHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/11/26 12:33 下午 + * @Version 1.0 + */ +@Component +@Slf4j +public class BlockChainProducer { + + // topic + public static final String TOPIC_PROJECT = "project"; + public static final String TOPIC_AUTH = "auth"; + + // tag + public static final String TAG_SEND_PROJECT = "send_project"; + public static final String TAG_SEND_PROCESS = "send_process"; + public static final String TAG_SEND_ASSIGNED_STAFFS = "send_assigned_staffs"; + + // 组 + public static final String GROUP_EPMET_CLOUD_PROJECT_SENDER = "epmet_cloud_project_sender"; + + private DefaultMQProducer producer; + + @Autowired + private RocketMQProperties rocketMQProperties; + + @PostConstruct + private void postConstruct() { + try { + producer = new DefaultMQProducer(GROUP_EPMET_CLOUD_PROJECT_SENDER, + new AclClientRPCHook(new SessionCredentials(rocketMQProperties.getBlockChain().getAccessKey(), rocketMQProperties.getBlockChain().getSecretKey()))); + producer.setNamesrvAddr(rocketMQProperties.getBlockChain().getNameServer()); + producer.start(); + } catch (MQClientException e) { + e.printStackTrace(); + } + } + + /** + * 销毁producer + */ + @PreDestroy + private void preDestroy() { + producer.shutdown(); + } + + /** + * 发送消息 + * + * @param topic + * @param tag + */ + public void sendMsg(String topic, String tag, String content) { + try { + Message msg = new Message(topic, tag, content.getBytes(RemotingHelper.DEFAULT_CHARSET)); + SendResult sendResult = producer.send(msg); + if (SendStatus.SEND_OK == sendResult.getSendStatus() + || SendStatus.SLAVE_NOT_AVAILABLE == sendResult.getSendStatus()) { + log.info("消息发送区块链MQ成功, topic:{}, tag:{}, content:{}", topic, tag, content); + } else { + log.error("消息发送区块链MQ失败, topic:{}, tag:{}, content:{}, status: {}", topic, tag, content, sendResult.getSendStatus()); + } + } catch (Exception e) { + log.error("消息发送区块链MQ出错, topic:{}, tag:{}, content:{}, 错误信息:{]", topic, tag, content, ExceptionUtils.getErrorStackTrace(e)); + } + } + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/properties/RocketMQProperties.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/properties/RocketMQProperties.java new file mode 100644 index 0000000000..7c2394ca7d --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/properties/RocketMQProperties.java @@ -0,0 +1,33 @@ +package com.epmet.mq.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/11/26 10:03 上午 + * @Version 1.0 + */ +@ConfigurationProperties(prefix = "rocketmq") +@Data +public class RocketMQProperties { + + // 这里必须new出对象来才能成功封装 + private EpmetCloudInnerProperties epmetCloudInner = new EpmetCloudInnerProperties(); + private BlockChainProperties blockChain = new BlockChainProperties(); + + @Data + public class EpmetCloudInnerProperties { + private Boolean enable; + private String nameServer; + } + + @Data + public class BlockChainProperties { + private Boolean enable; + private String nameServer; + private String accessKey; + private String secretKey; + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/BlockChainProjectService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/BlockChainProjectService.java new file mode 100644 index 0000000000..95f1bfd151 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/BlockChainProjectService.java @@ -0,0 +1,14 @@ +package com.epmet.service; + +import com.epmet.dto.form.BlockChainCreateProjectFormDTO; +import com.epmet.dto.form.BlockChainProcessProjectFormDTO; + +/** + * 区块链:项目service + */ +public interface BlockChainProjectService { + + void blockChainCreateProject(BlockChainCreateProjectFormDTO input); + void blockChainProcessProject(BlockChainProcessProjectFormDTO input); + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java new file mode 100644 index 0000000000..81db281da2 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java @@ -0,0 +1,44 @@ +package com.epmet.service.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.dto.form.BlockChainCreateProjectFormDTO; +import com.epmet.dto.form.BlockChainProcessProjectFormDTO; +import com.epmet.mq.producer.BlockChainProducer; +import com.epmet.mq.properties.RocketMQProperties; +import com.epmet.service.BlockChainProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description 描述 + * @Author wangxianzhang + * @Date 2021/11/26 9:59 上午 + * @Version 1.0 + */ +@Service +public class BlockChainProjectServiceImpl implements BlockChainProjectService { + + @Autowired + private BlockChainProducer blockChainProducer; + + @Override + public void blockChainCreateProject(BlockChainCreateProjectFormDTO input) { + + String projectString = JSON.toJSONString(input.getProject()); + String processString = JSON.toJSONString(input.getProcess()); + String assignedStaffsString = JSON.toJSONString(input.getAssignedStaffs()); + + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROJECT, projectString); + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROCESS, processString); + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_ASSIGNED_STAFFS, assignedStaffsString); + } + + @Override + public void blockChainProcessProject(BlockChainProcessProjectFormDTO input) { + String processString = JSON.toJSONString(input.getProcess()); + String assignedStaffsString = JSON.toJSONString(input.getAssignedStaffs()); + + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROCESS, processString); + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_ASSIGNED_STAFFS, assignedStaffsString); + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml index 0dc793c264..1ad3de55ca 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml @@ -149,3 +149,15 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +rocketmq: + # epmet-cloud集群内部用的rocketmq +# epmet-cloud-inner: +# enable: @rocketmq.epmet-cloud-inner.enable@ +# name-server: @rocketmq.epmet-cloud-inner.name-server@ + # 区块链对接用的rocketmq + block-chain: + enable: @rocketmq.block-chain.enable@ + name-server: @rocketmq.block-chain.name-server@ + access-key: @rocketmq.block-chain.access-key@ + secret-key: @rocketmq.block-chain.secret-key@ \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 24c47a4b92..19a5316d22 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -2198,21 +2198,21 @@ public class ProjectServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); - // if (!textSyncScanResult.success()) { - // throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - // } else { - // if (!textSyncScanResult.getData().isAllPass()) { - // throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); - // } - // } - //} + if (com.alibaba.nacos.client.utils.StringUtils.isNotBlank(formDTO.getPublicReply())) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(formDTO.getPublicReply()); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } //获取项目相关信息 ProjectEntity projectEntity = baseDao.selectById(formDTO.getProjectId()); From 5c5c467986530d14eab87c0c6d4d6a924909a6a1 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 26 Nov 2021 17:51:21 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=95=B0=E6=8D=AE=E4=B8=8A=E9=93=BE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BlockChainUploadService.java | 3 +- .../impl/BlockChainUploadServiceImpl.java | 48 +++++++++++++++---- .../impl/ProjectProcessServiceImpl.java | 4 +- .../service/impl/ProjectServiceImpl.java | 14 +++--- .../service/impl/ProjectTraceServiceImpl.java | 4 +- 5 files changed, 52 insertions(+), 21 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java index a9bf0848e2..9f53558d2d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java @@ -1,5 +1,6 @@ package com.epmet.service; +import com.epmet.entity.ProjectEntity; import com.epmet.entity.ProjectProcessEntity; import com.epmet.entity.ProjectStaffEntity; @@ -15,5 +16,5 @@ public interface BlockChainUploadService { * @param processEntity 处理进展entity * @param assignedStaffEntities 指派给的工作人员entity */ - void send2BlockChain(ProjectProcessEntity processEntity, List assignedStaffEntities); + void send2BlockChain(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java index 2a7f45fccb..88f8603b59 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java @@ -2,9 +2,8 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.dao.ProjectStaffDao; -import com.epmet.dto.form.BlockChainProcessProjectFormDTO; -import com.epmet.dto.form.BlockChainProjectProcessAssignedStaffFormDTO; -import com.epmet.dto.form.BlockChainProjectProcessFormDTO; +import com.epmet.dto.form.*; +import com.epmet.entity.ProjectEntity; import com.epmet.entity.ProjectProcessEntity; import com.epmet.entity.ProjectStaffEntity; import com.epmet.feign.EpmetThirdOpenFeignClient; @@ -35,8 +34,30 @@ public class BlockChainUploadServiceImpl implements BlockChainUploadService { * @param processEntity 处理进展entity * @param assignedStaffEntities 指派给的工作人员entity */ - public void send2BlockChain(ProjectProcessEntity processEntity, List assignedStaffEntities) { + public void send2BlockChain(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities) { + // 1.项目主信息 + BlockChainProjectFormDTO project = null; + + if (projectEntity != null) { + project = new BlockChainProjectFormDTO(); + project.setAgencyId(projectEntity.getAgencyId()); + project.setProjectId(projectEntity.getId()); + project.setCustomerId(projectEntity.getCustomerId()); + project.setCreatedBy(projectEntity.getCreatedBy()); + project.setCreatedTime(projectEntity.getCreatedTime()); + project.setCloseStatus(projectEntity.getClosedStatus()); + project.setLocateAddress(projectEntity.getLocateAddress()); + project.setLocateDimension(projectEntity.getLocateDimension()); + project.setLocateLongitude(projectEntity.getLocateLongitude()); + project.setOrgIdPath(projectEntity.getOrgIdPath()); + project.setOrigin(projectEntity.getOrigin()); + project.setOriginId(projectEntity.getOriginId()); + project.setStatus(projectEntity.getStatus()); + project.setTitle(projectEntity.getTitle()); + } + + // 2.项目处理进展 BlockChainProjectProcessFormDTO process = new BlockChainProjectProcessFormDTO(); process.setProcessId(processEntity.getId()); process.setCreatedBy(processEntity.getCreatedBy()); @@ -68,6 +89,7 @@ public class BlockChainUploadServiceImpl implements BlockChainUploadService { assignedStaffEntities = new ArrayList<>(); } + // 3.指派人员列表 List assignedStaffs = assignedStaffEntities.stream().map(e -> { BlockChainProjectProcessAssignedStaffFormDTO assignedStaff = new BlockChainProjectProcessAssignedStaffFormDTO(); assignedStaff.setStaffId(e.getStaffId()); @@ -85,10 +107,18 @@ public class BlockChainUploadServiceImpl implements BlockChainUploadService { assignedStaff.setProjectId(e.getProjectId()); return assignedStaff; }).collect(Collectors.toList()); - - BlockChainProcessProjectFormDTO form = new BlockChainProcessProjectFormDTO(); - form.setProcess(process); - form.setAssignedStaffs(assignedStaffs); - thirdOpenFeignClient.blockChainProcessProject(form); + + if (project == null) { + BlockChainProcessProjectFormDTO processForm = new BlockChainProcessProjectFormDTO(); + processForm.setProcess(process); + processForm.setAssignedStaffs(assignedStaffs); + thirdOpenFeignClient.blockChainProcessProject(processForm); + } else { + BlockChainCreateProjectFormDTO createForm = new BlockChainCreateProjectFormDTO(); + createForm.setProject(project); + createForm.setProcess(process); + createForm.setAssignedStaffs(assignedStaffs); + thirdOpenFeignClient.blockChainCreateProject(createForm); + } } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index 489bb0737f..510de14c1a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -413,7 +413,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl()); + blockChainUploadService.send2BlockChain(null, projectProcessEntity, new ArrayList<>()); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); @@ -2183,7 +2183,7 @@ public class ProjectServiceImpl extends BaseServiceImpl()); + blockChainUploadService.send2BlockChain(null, projectProcessEntity, new ArrayList<>()); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 8bf61721f0..c3b8aa856c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -534,7 +534,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS // 数据上链 try { - blockChainUploadService.send2BlockChain(processEntity, entityList); + blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); @@ -858,7 +858,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS // 数据上链 try { - blockChainUploadService.send2BlockChain(processEntity, entityList); + blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); From 8cba8e02f46452b45d6c75f77c595743fbe086b1 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 7 Dec 2021 10:06:13 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=B8=8A=E9=93=BE=E6=95=B0=E6=8D=AE=EF=BC=8C=E4=B8=B0?= =?UTF-8?q?=E5=AF=8C=E4=B8=AD=E6=96=87=E5=B1=95=E7=A4=BA=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-gateway/pom.xml | 4 +- .../dto/form/BlockChainProjectFormDTO.java | 22 +++ ...ainProjectProcessAssignedStaffFormDTO.java | 14 +- .../form/BlockChainProjectProcessFormDTO.java | 35 ++++ .../feign/EpmetThirdOpenFeignClient.java | 8 +- .../impl/BlockChainProjectServiceImpl.java | 157 +++++++++++++++++- 6 files changed, 224 insertions(+), 16 deletions(-) diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index d180c7cab9..d2f82494a3 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -323,8 +323,8 @@ lb://gov-issue-server - - lb://gov-project-server + http://localhost:8102 + http://localhost:8103 diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java index 2477ee2f00..cdfbf27b95 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java @@ -12,30 +12,52 @@ import java.util.Date; public class BlockChainProjectFormDTO { @NotBlank(message = "项目ID必填") private String projectId; + @NotBlank(message = "客户ID必填") private String customerId; + + // 客户名称 + private String customerName; + @NotBlank(message = "标题必填") private String title; + @NotBlank(message = "组织ID必填") private String agencyId; + + // 组织名称 + private String agencyName; + @NotBlank(message = "项目来源必填") private String origin; + @NotBlank(message = "项目来源ID必填") private String originId; + @NotBlank(message = "项目状态必填") private String status; + @NotBlank(message = "关闭状态必填") private String closeStatus; + @NotBlank(message = "组织ID PATH必填") private String orgIdPath; + @NotBlank(message = "定位必填") private String locateAddress; + @NotBlank(message = "经度必填") private String locateLongitude; + @NotBlank(message = "维度必填") private String locateDimension; + @NotBlank(message = "创建时间必填") private Date createdTime; + @NotBlank(message = "创建者ID必填") private String createdBy; + + // 创建者名字 + private String createrName; } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java index fae80e91f2..f0b82e062d 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java @@ -24,12 +24,18 @@ public class BlockChainProjectProcessAssignedStaffFormDTO { @NotBlank(message = "组织ID必填") private String orgId; + + //组织名称 + private String orgName; @NotBlank(message = "部门ID必填") private String departmentId; - + @NotBlank(message = "网格ID必填") private String gridId; + + // 网格名称 + private String gridName; @NotBlank(message = "组织ID PATH必填") private String orgIdPath; @@ -37,6 +43,9 @@ public class BlockChainProjectProcessAssignedStaffFormDTO { @NotBlank(message = "人员ID必填") private String staffId; + // 指派的用户名字 + private String staffName; + @NotBlank(message = "部门名称必填") private String departmentName; @@ -49,4 +58,7 @@ public class BlockChainProjectProcessAssignedStaffFormDTO { @NotBlank(message = "创建时间必填") private Date createdTime; + // 创建者名字 + private String createrName; + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java index 136dec1e5e..a7204c3f0a 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java @@ -1,11 +1,16 @@ package com.epmet.dto.form; + import lombok.Data; + import javax.validation.constraints.NotBlank; + import javax.validation.constraints.NotNull; + import java.util.Date; + /** * 区块链:项目处理form dto */ @@ -13,38 +18,68 @@ import java.util.Date; public class BlockChainProjectProcessFormDTO { @NotBlank(message = "处理ID必填") private String processId; + @NotBlank(message = "项目ID必填") private String projectId; + @NotBlank(message = "客户ID必填") private String customerId; + @NotBlank(message = "部门名称必填") private String departmentName; + @NotBlank(message = "组织ID必填") private String agencyId; + + // 组织的ID + private String agencyName; + @NotBlank(message = "部门ID必填") private String departmentId; + @NotBlank(message = "网格ID必填") private String gridId; + + // 网格的名称 + private String gridName; + @NotBlank(message = "组织ID PATH必填") private String orgIdPath; + @NotBlank(message = "处理人员ID必填") private String staffId; + + // 工作人员名字 + private String staffName; + @NotBlank(message = "操作类型必填") private String operation; + @NotBlank(message = "操作名称必填") private String operationName; + @NotBlank(message = "公开答复必填") private String publicReply; + @NotBlank(message = "内部备注必填必填") private String internalRemark; + @NotNull(message = "结束时间必填") private Date endTime; + @NotNull(message = "是否发送到外部系统必填") private Integer isSend; + @NotNull(message = "耗费天数必填") private Integer costWorkDays; + @NotBlank(message = "创建者ID必填") private String createdBy; + + // 创建者名字 + private String createrName; + @NotNull(message = "创建时间必填") private Date createdTime; + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java index dc5eb828df..1175d37f85 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java @@ -25,10 +25,10 @@ import java.util.List; * @author zhaoqifeng * @date 2021/3/18 14:18 */ -// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class,configuration = -// EpmetThirdOpenFeignClient.MultipartSupportConfig.class,url = "localhost:8110") -@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class, configuration = - EpmetThirdOpenFeignClient.MultipartSupportConfig.class) + @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class,configuration = + EpmetThirdOpenFeignClient.MultipartSupportConfig.class,url = "localhost:8110") +//@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class, configuration = +// EpmetThirdOpenFeignClient.MultipartSupportConfig.class) public interface EpmetThirdOpenFeignClient { /** * 请求项目协助 diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java index 81db281da2..e1a7384983 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java @@ -1,14 +1,27 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; -import com.epmet.dto.form.BlockChainCreateProjectFormDTO; -import com.epmet.dto.form.BlockChainProcessProjectFormDTO; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.feign.ResultDataResolver; +import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.CustomerDTO; +import com.epmet.dto.CustomerGridDTO; +import com.epmet.dto.CustomerStaffDTO; +import com.epmet.dto.form.*; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.mq.producer.BlockChainProducer; import com.epmet.mq.properties.RocketMQProperties; import com.epmet.service.BlockChainProjectService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Optional; + /** * @Description 描述 * @Author wangxianzhang @@ -16,27 +29,153 @@ import org.springframework.stereotype.Service; * @Version 1.0 */ @Service -public class BlockChainProjectServiceImpl implements BlockChainProjectService { +public class BlockChainProjectServiceImpl implements BlockChainProjectService, ResultDataResolver { @Autowired private BlockChainProducer blockChainProducer; - + + @Autowired + private OperCrmOpenFeignClient operCrmOpenFeignClient; + + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + + @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; + @Override public void blockChainCreateProject(BlockChainCreateProjectFormDTO input) { - String projectString = JSON.toJSONString(input.getProject()); - String processString = JSON.toJSONString(input.getProcess()); - String assignedStaffsString = JSON.toJSONString(input.getAssignedStaffs()); + BlockChainProjectFormDTO project = input.getProject(); + BlockChainProjectProcessFormDTO process = input.getProcess(); + List assignedStaffs = input.getAssignedStaffs(); + + fill(project, process, assignedStaffs); + + String projectString = JSON.toJSONString(project); + String processString = JSON.toJSONString(process); + String assignedStaffsString = JSON.toJSONString(assignedStaffs); blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROJECT, projectString); blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROCESS, processString); blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_ASSIGNED_STAFFS, assignedStaffsString); } + /** + * 填充数据 + * @param project + * @param process + */ + private void fill(BlockChainProjectFormDTO project, BlockChainProjectProcessFormDTO process, List assignedStaffs) { + + // 一.填充project信息 + + if (project != null) { + // 客户信息 + CustomerDTO customerDTO = new CustomerDTO(); + customerDTO.setId(project.getCustomerId()); + CustomerDTO customerInfo = getResultDataOrThrowsException(operCrmOpenFeignClient.getCustomerInfo(customerDTO), + ServiceConstant.EPMET_THIRD_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询客户信息失败"); + + // 组织信息 + CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(project.getAgencyId()), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询Agency信息失败"); + + // 用户信息 + CustomerStaffDTO customerStaffDTO = new CustomerStaffDTO(); + customerStaffDTO.setUserId(project.getCreatedBy()); + CustomerStaffDTO staffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(customerStaffDTO), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询用户信息失败"); + + project.setCustomerName(customerInfo.getCustomerName()); + project.setAgencyName(agencyInfo.getOrganizationName()); + Optional.of(staffInfo).ifPresent((staff) -> project.setCreaterName(staff.getRealName())); + } + + // 二.填充进展信息 + + if (process != null) { + + if (StringUtils.isNotBlank(process.getAgencyId())) { + // 组织信息 + CustomerAgencyDTO processAgencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(process.getAgencyId()), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点Agency信息失败"); + + process.setAgencyName(processAgencyInfo.getOrganizationName()); + } + + // 网格信息 + if (StringUtils.isNotBlank(process.getGridId())) { + CustomerGridFormDTO processGridFormDTO = new CustomerGridFormDTO(); + processGridFormDTO.setGridId(process.getGridId()); + CustomerGridDTO processGridInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getCustomerGridByGridId(processGridFormDTO), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点网格信息失败"); + + Optional.of(processGridInfo).ifPresent((grid) -> process.setGridName(grid.getGridName())); + } + + // 用户信息 + CustomerStaffDTO processCustomerStaffDTO = new CustomerStaffDTO(); + processCustomerStaffDTO.setUserId(process.getStaffId()); + CustomerStaffDTO processStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(processCustomerStaffDTO), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点用户信息失败"); + + process.setStaffName(processStaffInfo.getRealName()); + process.setCreatedBy(processStaffInfo.getRealName()); + + } + + // 三.填充指派用户信息 + if (assignedStaffs != null) { + for (BlockChainProjectProcessAssignedStaffFormDTO assignedStaff : assignedStaffs) { + // 组织信息 + if (StringUtils.isNotBlank(assignedStaff.getOrgId())) { + CustomerAgencyDTO assignedStaffAgencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(assignedStaff.getOrgId()), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员组织信息失败"); + + assignedStaff.setOrgName(assignedStaffAgencyInfo.getOrganizationName()); + } + + // 网格信息 + if (StringUtils.isNotBlank(assignedStaff.getGridId())) { + CustomerGridFormDTO assignedStaffGridFormDTO = new CustomerGridFormDTO(); + assignedStaffGridFormDTO.setGridId(assignedStaff.getGridId()); + CustomerGridDTO assignedStaffProcessGridInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getCustomerGridByGridId(assignedStaffGridFormDTO), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员网格信息失败"); + + Optional.of(assignedStaffProcessGridInfo).ifPresent((gridOfStaff) -> assignedStaff.setGridName(gridOfStaff.getGridName())); + } + + // 指派用户 + CustomerStaffDTO assignedStaffDTO = new CustomerStaffDTO(); + assignedStaffDTO.setUserId(assignedStaff.getStaffId()); + CustomerStaffDTO assignedStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(assignedStaffDTO), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); + + assignedStaff.setStaffName(assignedStaffInfo.getRealName()); + + // 创建者 + CustomerStaffDTO createStaffDTO = new CustomerStaffDTO(); + createStaffDTO.setUserId(assignedStaff.getCreatedBy()); + CustomerStaffDTO createStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(createStaffDTO), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); + + Optional.of(createStaffInfo).ifPresent((createStaff) -> assignedStaff.setCreaterName(createStaffInfo.getRealName())); + + } + } + } + @Override public void blockChainProcessProject(BlockChainProcessProjectFormDTO input) { - String processString = JSON.toJSONString(input.getProcess()); - String assignedStaffsString = JSON.toJSONString(input.getAssignedStaffs()); + + BlockChainProjectProcessFormDTO process = input.getProcess(); + List assignedStaffs = input.getAssignedStaffs(); + + fill(null, process, assignedStaffs); + + String processString = JSON.toJSONString(process); + String assignedStaffsString = JSON.toJSONString(assignedStaffs); blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROCESS, processString); blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_ASSIGNED_STAFFS, assignedStaffsString); From 54adaf8d205048b2a9bc97186fd152544389a793 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 7 Dec 2021 10:12:36 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-gateway/pom.xml | 8 ++++---- .../java/com/epmet/feign/EpmetThirdOpenFeignClient.java | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index dd53cbd156..1169c9ca84 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -323,11 +323,11 @@ lb://gov-issue-server - http://localhost:8102 - + + lb://gov-project-server - - http://localhost:8103 + lb://common-service-server + lb://resi-home-server diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java index 1175d37f85..22a8c36c5a 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java @@ -25,10 +25,10 @@ import java.util.List; * @author zhaoqifeng * @date 2021/3/18 14:18 */ - @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class,configuration = - EpmetThirdOpenFeignClient.MultipartSupportConfig.class,url = "localhost:8110") -//@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class, configuration = -// EpmetThirdOpenFeignClient.MultipartSupportConfig.class) + //@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class,configuration = + // EpmetThirdOpenFeignClient.MultipartSupportConfig.class,url = "localhost:8110") +@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class, configuration = + EpmetThirdOpenFeignClient.MultipartSupportConfig.class) public interface EpmetThirdOpenFeignClient { /** * 请求项目协助 From 49b59c3f67a3e2b17fab811bc7bce0e55c453b64 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 7 Dec 2021 13:52:09 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E4=B8=80=E7=BA=A7=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/CategoryListResultDTO.java | 31 +++++++++++++++++++ .../IssueProjectCategoryDictController.java | 11 +++++++ .../dao/IssueProjectCategoryDictDao.java | 9 ++++++ .../IssueProjectCategoryDictService.java | 9 ++++++ .../IssueProjectCategoryDictServiceImpl.java | 11 +++++++ .../mapper/IssueProjectCategoryDictDao.xml | 13 ++++++++ 6 files changed, 84 insertions(+) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java new file mode 100644 index 0000000000..9e7844c3ea --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/12/7 1:40 下午 + * @DESC + */ +@Data +public class CategoryListResultDTO implements Serializable { + + private static final long serialVersionUID = 6788749110947073314L; + + /** + * 分类编码 + */ + private String categoryCode; + + /** + * 分类名字 + */ + private String categoryName; + + public CategoryListResultDTO() { + this.categoryCode = ""; + this.categoryName = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java index 4a684d8ef2..f77f9ce9d9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java @@ -277,5 +277,16 @@ public class IssueProjectCategoryDictController { return new Result>().ok(issueProjectCategoryDictService.getProjectCategory(list)); } + /** + * @Description 根据客户ID查询一级分类列表 + * @param tokenDto + * @author zxc + * @date 2021/12/7 1:45 下午 + */ + @PostMapping("categorylist") + public Result> selectCategoryOneLevelListByCustomerId(@LoginUser TokenDto tokenDto){ + return new Result>().ok(issueProjectCategoryDictService.selectCategoryOneLevelListByCustomerId(tokenDto.getCustomerId())); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java index 6d2ad46fa8..50a93b4bef 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java @@ -22,6 +22,7 @@ import com.epmet.dto.IssueProjectCategoryDictDTO; import com.epmet.dto.form.DelCategoryFormDTO; import com.epmet.dto.form.IsDisableCategoryFormDTO; import com.epmet.dto.form.IssueProjectCategoryDictListFormDTO; +import com.epmet.dto.result.CategoryListResultDTO; import com.epmet.dto.result.CustomerCategoryListResultDTO; import com.epmet.dto.result.CustomerCategoryResultDTO; import com.epmet.dto.result.ProjectCategoryDisPoseResultDTO; @@ -183,4 +184,12 @@ public interface IssueProjectCategoryDictDao extends BaseDao getProjectCategory(@Param("list") List list,@Param("customerId") String customerId); + /** + * @Description 根据客户ID查询一级分类列表 + * @param customerId + * @author zxc + * @date 2021/12/7 1:45 下午 + */ + List selectCategoryOneLevelListByCustomerId(@Param("customerId")String customerId); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java index abd4e63d38..292e6449d8 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java @@ -221,4 +221,13 @@ public interface IssueProjectCategoryDictService extends BaseService getProjectCategory(List list); + + /** + * @Description 根据客户ID查询一级分类列表 + * @param customerId + * @author zxc + * @date 2021/12/7 1:45 下午 + */ + List selectCategoryOneLevelListByCustomerId(String customerId); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java index 9236ff80a5..28a7192afb 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java @@ -496,6 +496,17 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl selectCategoryOneLevelListByCustomerId(String customerId) { + return baseDao.selectCategoryOneLevelListByCustomerId(customerId); + } + /** * @Description 项目分类处理 * @Param list diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index dca01a63f5..a421f1c647 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -245,6 +245,19 @@ + + + UPDATE issue_project_category_dict SET From b21206b7990a4dc4605d95c50e66d70b5f8f95c9 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 7 Dec 2021 14:06:48 +0800 Subject: [PATCH 07/14] feign --- .../com/epmet/feign/GovIssueOpenFeignClient.java | 12 ++++++++++++ .../fallback/GovIssueOpenFeignClientFallBack.java | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 5e57fa2007..5e67e24217 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -1,6 +1,8 @@ package com.epmet.feign; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; import com.epmet.dto.form.*; @@ -341,4 +343,14 @@ public interface GovIssueOpenFeignClient { @PostMapping("/gov/issue/issue/unresolvedlist") Result> getUnresolvedList(@RequestBody ShiftProjectListFromDTO formDTO); + + /** + * @Description 根据客户查询1级分类 + * @param tokenDto + * @author zxc + * @date 2021/12/7 2:05 下午 + */ + @PostMapping(value = "/gov/issue/issueprojectcategorydict/categorylist") + Result> selectCategoryOneLevelListByCustomerId(@LoginUser TokenDto tokenDto); + } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 8bc43defbc..bc947a7617 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -1,6 +1,7 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; @@ -281,4 +282,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> getUnresolvedList(ShiftProjectListFromDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getUnresolvedList", formDTO); } + + @Override + public Result> selectCategoryOneLevelListByCustomerId(TokenDto tokenDto) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "selectCategoryOneLevelListByCustomerId", tokenDto); + } } From dff03ab75b891c80de1e949281ae2fec97cf629b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 7 Dec 2021 15:23:12 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=82idNum=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/EditInfoFormDTO.java | 3 ++- .../java/com/epmet/dao/UserBaseInfoDao.java | 4 ++++ .../epmet/service/UserBaseInfoService.java | 2 ++ .../service/impl/UserBaseInfoServiceImpl.java | 5 +++++ .../service/impl/UserResiInfoServiceImpl.java | 21 +++++++++++++++++-- .../main/resources/mapper/UserBaseInfoDao.xml | 14 +++++++++++++ .../main/resources/mapper/UserResiInfoDao.xml | 3 ++- 7 files changed, 48 insertions(+), 4 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java index d3a29103dc..ef54d73a3a 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java @@ -2,6 +2,7 @@ package com.epmet.dto.form; import lombok.Data; import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import java.io.Serializable; @@ -38,7 +39,7 @@ public class EditInfoFormDTO implements Serializable { private String name; //@NotBlank(message = "身份证号不能为空") - //@Length(max=18,message = "身份证号不能超过18位") + @Length(max=18,message = "身份证号不能超过18位") //别的小程序不统一升级,没办法限制必填。 private String idNum; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java index c44ea90420..7cea610e90 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java @@ -85,4 +85,8 @@ public interface UserBaseInfoDao extends BaseDao { UserBaseInfoDTO selectUserId(@Param("customerId") String customerId, @Param("idNum")String idNum, @Param("userId")String userId); + + Integer selectCountIdNum(@Param("idNum") String idNum, + @Param("customerId")String customerId, + @Param("excludeUserId")String excludeUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java index 164a222894..456365e58c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java @@ -191,4 +191,6 @@ public interface UserBaseInfoService extends BaseService { ExtUserInfoResultDTO extUserInfo(CommonUserIdFormDTO param); UserBaseInfoDTO getUserIdByIdNum(String customerId, String idNum,String userId); + + Integer checkIdNum(String idNum, String customerId, String excludeUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index 61d1cf14a0..a8afc76953 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -450,4 +450,9 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); } + //判断user_base_info表是否存在相同的身份证号 + if (userBaseInfoService.checkIdNum(userResiInfoDTO.getIdNum(), userResiInfoDTO.getCustomerId(), null) > 0) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_base_info已存在该身份证号", "身份证号已被使用"); + } } userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO); //4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 @@ -307,8 +311,14 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + if(StringUtils.isNotBlank(userResiInfoDTO.getIdNum())){ + if (baseDao.selectCountByIdNum(userResiInfoDTO.getIdNum(), userResiInfoDTO.getCustomerId(),userResiInfoDTO.getUserId()) > 0) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + } + //判断user_base_info表是否存在相同的身份证号 + if (userBaseInfoService.checkIdNum(userResiInfoDTO.getIdNum(), userResiInfoDTO.getCustomerId(), null) > 0) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_base_info已存在该身份证号", "身份证号已被使用"); + } } //居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 registerRelationService.saveRegisterRelation(userResiInfoDTO); @@ -385,10 +395,17 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl18){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号至多18位"); + } //判断身份证号唯一,除了当前用户外没有人用过这个身份证号吧??? if(baseDao.selectCountByIdNum(formDTO.getIdNum(),formDTO.getCustomerId(),formDTO.getUserId())>0){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); } + //判断user_base_info表是否存在相同的身份证号 + if (userBaseInfoService.checkIdNum(formDTO.getIdNum(), formDTO.getCustomerId(), formDTO.getUserId()) > 0) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_base_info已存在该身份证号", "身份证号已被使用"); + } } //更新居民注册信息表 baseDao.updateByUserId(ConvertUtils.sourceToTarget(formDTO, UserResiInfoEntity.class)); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml index 9d74f0d600..16a0e4d8e9 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml @@ -134,4 +134,18 @@ and user_id=#{userId} + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml index 968abeff28..13ff3e74eb 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml @@ -43,7 +43,8 @@ NAME = #{name}, STREET = #{street}, DISTRICT = #{district}, - BUILDING_ADDRESS = #{buildingAddress} + BUILDING_ADDRESS = #{buildingAddress}, + ID_NUM = #{idNum} where USER_ID = #{userId} and DEL_FLAG = '0' From b0fad9854f9a32b60d6a29a259638f84ab524793 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 7 Dec 2021 19:12:50 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/BlockChainProcessProjectFormDTO.java | 3 + .../form/BlockChainProjectProcessFormDTO.java | 2 +- .../epmet/mq/producer/BlockChainProducer.java | 16 ++- .../impl/BlockChainProjectServiceImpl.java | 101 +++++++++++------- .../service/BlockChainUploadService.java | 2 +- .../impl/BlockChainUploadServiceImpl.java | 31 +++++- .../impl/ProjectProcessServiceImpl.java | 4 +- .../service/impl/ProjectServiceImpl.java | 14 +-- .../service/impl/ProjectTraceServiceImpl.java | 4 +- 9 files changed, 117 insertions(+), 60 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java index 7e910f8726..0cf7f1caac 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java @@ -15,4 +15,7 @@ public class BlockChainProcessProjectFormDTO { private BlockChainProjectProcessFormDTO process; private List assignedStaffs; + + // 处理人信息更新 + private BlockChainProjectProcessAssignedStaffFormDTO handledStaff; } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java index a7204c3f0a..4a21f3e3db 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java @@ -71,7 +71,7 @@ public class BlockChainProjectProcessFormDTO { private Integer isSend; @NotNull(message = "耗费天数必填") - private Integer costWorkDays; + private String costWorkDays; @NotBlank(message = "创建者ID必填") private String createdBy; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java index 1e2e368222..3ec172b7a6 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java @@ -27,16 +27,26 @@ import javax.annotation.PreDestroy; @Slf4j public class BlockChainProducer { - // topic + /** + * topic + */ public static final String TOPIC_PROJECT = "project"; public static final String TOPIC_AUTH = "auth"; - // tag + /** + * tag + */ public static final String TAG_SEND_PROJECT = "send_project"; + // 发送处理进展 public static final String TAG_SEND_PROCESS = "send_process"; + // 发送流转过程中被指派的人员 public static final String TAG_SEND_ASSIGNED_STAFFS = "send_assigned_staffs"; + // 发送处理完成的人员 + public static final String TAG_SEND_HANDLED_STAFF = "send_handled_staff"; - // 组 + /** + * 组 + */ public static final String GROUP_EPMET_CLOUD_PROJECT_SENDER = "epmet_cloud_project_sender"; private DefaultMQProducer producer; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java index e1a7384983..b21b0ae5b7 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java @@ -50,7 +50,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R BlockChainProjectProcessFormDTO process = input.getProcess(); List assignedStaffs = input.getAssignedStaffs(); - fill(project, process, assignedStaffs); + fill(project, process, assignedStaffs, null); String projectString = JSON.toJSONString(project); String processString = JSON.toJSONString(process); @@ -66,7 +66,8 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R * @param project * @param process */ - private void fill(BlockChainProjectFormDTO project, BlockChainProjectProcessFormDTO process, List assignedStaffs) { + private void fill(BlockChainProjectFormDTO project, BlockChainProjectProcessFormDTO process, + List assignedStaffs, BlockChainProjectProcessAssignedStaffFormDTO handledStaff) { // 一.填充project信息 @@ -128,42 +129,54 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R // 三.填充指派用户信息 if (assignedStaffs != null) { for (BlockChainProjectProcessAssignedStaffFormDTO assignedStaff : assignedStaffs) { - // 组织信息 - if (StringUtils.isNotBlank(assignedStaff.getOrgId())) { - CustomerAgencyDTO assignedStaffAgencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(assignedStaff.getOrgId()), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员组织信息失败"); - - assignedStaff.setOrgName(assignedStaffAgencyInfo.getOrganizationName()); - } - - // 网格信息 - if (StringUtils.isNotBlank(assignedStaff.getGridId())) { - CustomerGridFormDTO assignedStaffGridFormDTO = new CustomerGridFormDTO(); - assignedStaffGridFormDTO.setGridId(assignedStaff.getGridId()); - CustomerGridDTO assignedStaffProcessGridInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getCustomerGridByGridId(assignedStaffGridFormDTO), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员网格信息失败"); - - Optional.of(assignedStaffProcessGridInfo).ifPresent((gridOfStaff) -> assignedStaff.setGridName(gridOfStaff.getGridName())); - } - - // 指派用户 - CustomerStaffDTO assignedStaffDTO = new CustomerStaffDTO(); - assignedStaffDTO.setUserId(assignedStaff.getStaffId()); - CustomerStaffDTO assignedStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(assignedStaffDTO), - ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); - - assignedStaff.setStaffName(assignedStaffInfo.getRealName()); - - // 创建者 - CustomerStaffDTO createStaffDTO = new CustomerStaffDTO(); - createStaffDTO.setUserId(assignedStaff.getCreatedBy()); - CustomerStaffDTO createStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(createStaffDTO), - ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); - - Optional.of(createStaffInfo).ifPresent((createStaff) -> assignedStaff.setCreaterName(createStaffInfo.getRealName())); - + fillAssignedStaffInfo(assignedStaff); } } + + // 4.填充当前处理人信息 + if (handledStaff != null) { + fillAssignedStaffInfo(handledStaff); + } + } + + /** + * 填充被指派人的信息 + * @param assignedStaff + */ + private void fillAssignedStaffInfo(BlockChainProjectProcessAssignedStaffFormDTO assignedStaff) { + // 组织信息 + if (StringUtils.isNotBlank(assignedStaff.getOrgId())) { + CustomerAgencyDTO assignedStaffAgencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(assignedStaff.getOrgId()), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员组织信息失败"); + + assignedStaff.setOrgName(assignedStaffAgencyInfo.getOrganizationName()); + } + + // 网格信息 + if (StringUtils.isNotBlank(assignedStaff.getGridId())) { + CustomerGridFormDTO assignedStaffGridFormDTO = new CustomerGridFormDTO(); + assignedStaffGridFormDTO.setGridId(assignedStaff.getGridId()); + CustomerGridDTO assignedStaffProcessGridInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getCustomerGridByGridId(assignedStaffGridFormDTO), + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员网格信息失败"); + + Optional.of(assignedStaffProcessGridInfo).ifPresent((gridOfStaff) -> assignedStaff.setGridName(gridOfStaff.getGridName())); + } + + // 指派用户 + CustomerStaffDTO assignedStaffDTO = new CustomerStaffDTO(); + assignedStaffDTO.setUserId(assignedStaff.getStaffId()); + CustomerStaffDTO assignedStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(assignedStaffDTO), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); + + assignedStaff.setStaffName(assignedStaffInfo.getRealName()); + + // 创建者 + CustomerStaffDTO createStaffDTO = new CustomerStaffDTO(); + createStaffDTO.setUserId(assignedStaff.getCreatedBy()); + CustomerStaffDTO createStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(createStaffDTO), + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); + + Optional.of(createStaffInfo).ifPresent((createStaff) -> assignedStaff.setCreaterName(createStaffInfo.getRealName())); } @Override @@ -171,13 +184,21 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R BlockChainProjectProcessFormDTO process = input.getProcess(); List assignedStaffs = input.getAssignedStaffs(); + BlockChainProjectProcessAssignedStaffFormDTO handledStaff = input.getHandledStaff(); - fill(null, process, assignedStaffs); + fill(null, process, assignedStaffs, handledStaff); String processString = JSON.toJSONString(process); - String assignedStaffsString = JSON.toJSONString(assignedStaffs); - blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROCESS, processString); - blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_ASSIGNED_STAFFS, assignedStaffsString); + + if (assignedStaffs != null && assignedStaffs.size() > 0) { + String assignedStaffsString = JSON.toJSONString(assignedStaffs); + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_ASSIGNED_STAFFS, assignedStaffsString); + } + + if (handledStaff != null) { + String handledStaffString = JSON.toJSONString(handledStaff); + blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_HANDLED_STAFF, handledStaffString); + } } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java index 9f53558d2d..233f4d5feb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java @@ -16,5 +16,5 @@ public interface BlockChainUploadService { * @param processEntity 处理进展entity * @param assignedStaffEntities 指派给的工作人员entity */ - void send2BlockChain(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities); + void send2BlockChain(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities, String projectStaffId); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java index 88f8603b59..0d745d23cc 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java @@ -34,11 +34,11 @@ public class BlockChainUploadServiceImpl implements BlockChainUploadService { * @param processEntity 处理进展entity * @param assignedStaffEntities 指派给的工作人员entity */ - public void send2BlockChain(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities) { + public void send2BlockChain(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities, String projectStaffId) { // 1.项目主信息 BlockChainProjectFormDTO project = null; - + if (projectEntity != null) { project = new BlockChainProjectFormDTO(); project.setAgencyId(projectEntity.getAgencyId()); @@ -62,8 +62,7 @@ public class BlockChainUploadServiceImpl implements BlockChainUploadService { process.setProcessId(processEntity.getId()); process.setCreatedBy(processEntity.getCreatedBy()); process.setCreatedTime(processEntity.getCreatedTime()); - String costWorkdays = processEntity.getCostWorkdays(); - process.setCostWorkDays(StringUtils.isBlank(costWorkdays) ? null : Integer.valueOf(costWorkdays)); + process.setCostWorkDays(processEntity.getCostWorkdays()); process.setAgencyId(processEntity.getAgencyId()); process.setCustomerId(processEntity.getCustomerId()); process.setDepartmentId(processEntity.getDepartmentId()); @@ -107,13 +106,37 @@ public class BlockChainUploadServiceImpl implements BlockChainUploadService { assignedStaff.setProjectId(e.getProjectId()); return assignedStaff; }).collect(Collectors.toList()); + + // 4.当前处理人 + BlockChainProjectProcessAssignedStaffFormDTO handledStaff = null; + if (StringUtils.isNotBlank(projectStaffId)) { + ProjectStaffEntity handledStaffEntity = projectStaffDao.selectById(projectStaffId); + + handledStaff = new BlockChainProjectProcessAssignedStaffFormDTO(); + handledStaff.setStaffId(handledStaffEntity.getStaffId()); + handledStaff.setCreatedBy(handledStaffEntity.getCreatedBy()); + handledStaff.setCustomerId(handledStaffEntity.getCustomerId()); + handledStaff.setCreatedTime(handledStaffEntity.getCreatedTime()); + handledStaff.setProcessId(handledStaffEntity.getProcessId()); + handledStaff.setDepartmentId(handledStaffEntity.getDepartmentId()); + handledStaff.setDepartmentName(handledStaffEntity.getDepartmentName()); + handledStaff.setGridId(handledStaffEntity.getGridId()); + handledStaff.setId(handledStaffEntity.getId()); + handledStaff.setIsHandle(handledStaffEntity.getIsHandle()); + handledStaff.setOrgId(handledStaffEntity.getOrgId()); + handledStaff.setOrgIdPath(handledStaffEntity.getOrgIdPath()); + handledStaff.setProjectId(handledStaffEntity.getProjectId()); + } if (project == null) { + // 处理 BlockChainProcessProjectFormDTO processForm = new BlockChainProcessProjectFormDTO(); processForm.setProcess(process); processForm.setAssignedStaffs(assignedStaffs); + processForm.setHandledStaff(handledStaff); thirdOpenFeignClient.blockChainProcessProject(processForm); } else { + // 立项 BlockChainCreateProjectFormDTO createForm = new BlockChainCreateProjectFormDTO(); createForm.setProject(project); createForm.setProcess(process); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index 510de14c1a..7b7702bc37 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -413,7 +413,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl()); + blockChainUploadService.send2BlockChain(null, projectProcessEntity, new ArrayList<>(), null); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); @@ -2183,7 +2183,7 @@ public class ProjectServiceImpl extends BaseServiceImpl()); + blockChainUploadService.send2BlockChain(null, projectProcessEntity, new ArrayList<>(), null); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index c3b8aa856c..111d2bf8e0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -534,7 +534,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS // 数据上链 try { - blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList); + blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList, null); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); @@ -858,7 +858,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS // 数据上链 try { - blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList); + blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList, null); } catch (Exception e) { String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); log.error("【项目流转】上链失败,错误信息:{}", errorMsg); From 9f6b32a3a8bb8248b38b73349317f4949a9ffee3 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 8 Dec 2021 09:33:50 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9BlockChainService=E4=B8=ADgetResultOrThrowException()?= =?UTF-8?q?=E5=85=A5=E5=8F=82=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BlockChainProjectServiceImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java index b21b0ae5b7..36db95499d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java @@ -76,17 +76,17 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R CustomerDTO customerDTO = new CustomerDTO(); customerDTO.setId(project.getCustomerId()); CustomerDTO customerInfo = getResultDataOrThrowsException(operCrmOpenFeignClient.getCustomerInfo(customerDTO), - ServiceConstant.EPMET_THIRD_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询客户信息失败"); + ServiceConstant.EPMET_THIRD_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询客户信息失败", null); // 组织信息 CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(project.getAgencyId()), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询Agency信息失败"); + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询Agency信息失败", null); // 用户信息 CustomerStaffDTO customerStaffDTO = new CustomerStaffDTO(); customerStaffDTO.setUserId(project.getCreatedBy()); CustomerStaffDTO staffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(customerStaffDTO), - ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询用户信息失败"); + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询用户信息失败", null); project.setCustomerName(customerInfo.getCustomerName()); project.setAgencyName(agencyInfo.getOrganizationName()); @@ -100,7 +100,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R if (StringUtils.isNotBlank(process.getAgencyId())) { // 组织信息 CustomerAgencyDTO processAgencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(process.getAgencyId()), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点Agency信息失败"); + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点Agency信息失败", null); process.setAgencyName(processAgencyInfo.getOrganizationName()); } @@ -110,7 +110,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R CustomerGridFormDTO processGridFormDTO = new CustomerGridFormDTO(); processGridFormDTO.setGridId(process.getGridId()); CustomerGridDTO processGridInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getCustomerGridByGridId(processGridFormDTO), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点网格信息失败"); + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点网格信息失败", null); Optional.of(processGridInfo).ifPresent((grid) -> process.setGridName(grid.getGridName())); } @@ -119,7 +119,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R CustomerStaffDTO processCustomerStaffDTO = new CustomerStaffDTO(); processCustomerStaffDTO.setUserId(process.getStaffId()); CustomerStaffDTO processStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(processCustomerStaffDTO), - ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点用户信息失败"); + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询处理节点用户信息失败", null); process.setStaffName(processStaffInfo.getRealName()); process.setCreatedBy(processStaffInfo.getRealName()); @@ -147,7 +147,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R // 组织信息 if (StringUtils.isNotBlank(assignedStaff.getOrgId())) { CustomerAgencyDTO assignedStaffAgencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(assignedStaff.getOrgId()), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员组织信息失败"); + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员组织信息失败", null); assignedStaff.setOrgName(assignedStaffAgencyInfo.getOrganizationName()); } @@ -157,7 +157,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R CustomerGridFormDTO assignedStaffGridFormDTO = new CustomerGridFormDTO(); assignedStaffGridFormDTO.setGridId(assignedStaff.getGridId()); CustomerGridDTO assignedStaffProcessGridInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getCustomerGridByGridId(assignedStaffGridFormDTO), - ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员网格信息失败"); + ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派人员网格信息失败", null); Optional.of(assignedStaffProcessGridInfo).ifPresent((gridOfStaff) -> assignedStaff.setGridName(gridOfStaff.getGridName())); } @@ -166,7 +166,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R CustomerStaffDTO assignedStaffDTO = new CustomerStaffDTO(); assignedStaffDTO.setUserId(assignedStaff.getStaffId()); CustomerStaffDTO assignedStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(assignedStaffDTO), - ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败", null); assignedStaff.setStaffName(assignedStaffInfo.getRealName()); @@ -174,7 +174,7 @@ public class BlockChainProjectServiceImpl implements BlockChainProjectService, R CustomerStaffDTO createStaffDTO = new CustomerStaffDTO(); createStaffDTO.setUserId(assignedStaff.getCreatedBy()); CustomerStaffDTO createStaffInfo = getResultDataOrThrowsException(userOpenFeignClient.getCustomerStaffInfoByUserId(createStaffDTO), - ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败"); + ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【项目信息上链】查询指派用户信息失败", null); Optional.of(createStaffInfo).ifPresent((createStaff) -> assignedStaff.setCreaterName(createStaffInfo.getRealName())); } From 93f64369b47f36ba360a7516106a40ca269f81ec Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 8 Dec 2021 09:47:18 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E5=B7=A6=E8=BE=B9=E9=A5=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/CategoryListResultDTO.java | 7 ++ .../mapper/IssueProjectCategoryDictDao.xml | 3 +- .../ProjectDistributionAnalysisFormDTO.java | 23 +++++ .../com/epmet/dto/result/CategoryListDTO.java | 38 ++++++++ .../dto/result/ProjectCategoryByDateDTO.java | 27 ++++++ ...jectDistributionAnalysisLeftResultDTO.java | 27 ++++++ .../epmet/controller/ProjectController.java | 16 ++++ .../main/java/com/epmet/dao/ProjectDao.java | 10 +++ .../com/epmet/service/ProjectService.java | 11 +++ .../service/impl/ProjectServiceImpl.java | 89 ++++++++++++++++++- .../src/main/resources/mapper/ProjectDao.xml | 14 +++ 11 files changed, 261 insertions(+), 4 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDistributionAnalysisFormDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CategoryListDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryByDateDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisLeftResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java index 9e7844c3ea..ae61ba1769 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.result; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import java.io.Serializable; @@ -24,8 +25,14 @@ public class CategoryListResultDTO implements Serializable { */ private String categoryName; + private Integer count; + + private Integer codeLength; + public CategoryListResultDTO() { this.categoryCode = ""; this.categoryName = ""; + this.count = NumConstant.ZERO; + this.codeLength = NumConstant.ZERO; } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml index a421f1c647..0030bb0a27 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml @@ -249,7 +249,8 @@ + SELECT + DISTINCT p.ID AS projectId, + p.CREATED_TIME AS createdTime, + LEFT(pc.CATEGORY_CODE,#{codeLength}) AS categoryCode + FROM project p + INNER JOIN project_category pc ON (pc.PROJECT_ID = p.ID AND pc.DEL_FLAG = 0) + WHERE p.DEL_FLAG = 0 + AND p.ORG_ID_PATH LIKE CONCAT('%',#{orgId}) + AND DATE_FORMAT(p.CREATED_TIME,'%Y-%m-%d') = #{date} + ORDER BY projectId + \ No newline at end of file From 3fa03b586cce9c0d24d54ed9397554a4076cf148 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 8 Dec 2021 10:34:45 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=81=E6=B3=A8=E5=86=8C=E5=B1=85=E6=B0=91=E3=80=81=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E5=85=9A=E5=91=98=E4=B9=8B=E8=87=AA=E5=8A=A8=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=B1=85=E6=B0=91=E9=83=BD=E4=B8=8D=E5=86=8D=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E5=86=85=E5=94=AF=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PersonalCenterController.java | 4 +++ .../impl/PersonalCenterServiceImpl.java | 2 -- .../com/epmet/dto/form/EditInfoFormDTO.java | 22 +++++++++----- .../com/epmet/dto/form/InfoSubmitFromDTO.java | 2 +- .../controller/UserResiInfoController.java | 1 + .../epmet/service/UserBaseInfoService.java | 1 + .../service/impl/UserResiInfoServiceImpl.java | 30 ++++++++++--------- 7 files changed, 37 insertions(+), 25 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java index e71b28101f..48ea31f06b 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/PersonalCenterController.java @@ -3,6 +3,7 @@ package com.epmet.modules.mine.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.EditInfoFormDTO; import com.epmet.dto.form.EditMobileFormDTO; import com.epmet.dto.form.SendCodeFormDTO; @@ -51,6 +52,9 @@ public class PersonalCenterController { */ @PostMapping("editinfo") public Result editInfo(@LoginUser TokenDto tokenDto, @RequestBody EditInfoFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,EditInfoFormDTO.AddUserShowGroup.class,EditInfoFormDTO.AddUserInternalGroup.class); personalCenterService.editInfo(tokenDto, formDTO); return new Result(); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java index d60b177815..d9c1b86e9a 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/service/impl/PersonalCenterServiceImpl.java @@ -45,8 +45,6 @@ public class PersonalCenterServiceImpl implements PersonalCenterService { @Override public void editInfo(TokenDto tokenDto, EditInfoFormDTO formDTO) { - formDTO.setUserId(tokenDto.getUserId()); - formDTO.setCustomerId(tokenDto.getCustomerId()); Result result = epmetUserOpenFeignClient.editUserInfo(formDTO); if (!result.success()) { throw new RenException(result.getCode(), result.getMsg()); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java index ef54d73a3a..e8eb4249fa 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; @@ -17,36 +18,41 @@ import java.io.Serializable; public class EditInfoFormDTO implements Serializable { private static final long serialVersionUID = 1280489016677129419L; + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } /** * 头像 */ - @NotBlank(message = "头像不能为空") + @NotBlank(message = "userId不能为空",groups = AddUserInternalGroup.class) private String userId; /** * 头像 */ - @NotBlank(message = "头像不能为空") + @NotBlank(message = "头像不能为空",groups = AddUserShowGroup.class) private String headImgUrl; /** * 姓 */ - @NotBlank(message = "姓不能为空") + @NotBlank(message = "姓不能为空",groups = AddUserShowGroup.class) private String surname; /** * 名 */ - @NotBlank(message = "名不能为空") + @NotBlank(message = "名不能为空",groups = AddUserShowGroup.class) private String name; //@NotBlank(message = "身份证号不能为空") - @Length(max=18,message = "身份证号不能超过18位") + @Length(max=18,message = "身份证号不能超过18位",groups = AddUserShowGroup.class) //别的小程序不统一升级,没办法限制必填。 private String idNum; /** * 路牌号 */ - @NotBlank(message = "路牌号不能为空") + @NotBlank(message = "路牌号不能为空",groups = AddUserShowGroup.class) private String street; /** * 小区名称 @@ -59,12 +65,12 @@ public class EditInfoFormDTO implements Serializable { /** * 昵称 */ - @NotBlank(message = "昵称不能为空") + @NotBlank(message = "昵称不能为空",groups = AddUserShowGroup.class) private String nickname; /** * 当前客户id */ - @NotBlank(message = "customerId不能为空") + @NotBlank(message = "customerId不能为空",groups = AddUserInternalGroup.class) private String customerId; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java index d64368a7b4..c99a96878c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java @@ -57,7 +57,7 @@ public class InfoSubmitFromDTO implements Serializable { private String name; //@NotBlank(message = "身份证号不能为空") - //@Length(max=18,message = "身份证号不能超过18位") + @Length(max=18,message = "身份证号不能超过18位") //别的小程序不统一升级,没办法限制必填。 private String idNum; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java index 41e4a1114a..820f310a40 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java @@ -171,6 +171,7 @@ public class UserResiInfoController { */ @PostMapping("edituserinfo") public Result editUserInfo(@RequestBody EditInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO,EditInfoFormDTO.AddUserShowGroup.class,EditInfoFormDTO.AddUserInternalGroup.class); userResiInfoService.editUserInfo(formDTO); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java index 456365e58c..35e52df1d8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java @@ -192,5 +192,6 @@ public interface UserBaseInfoService extends BaseService { UserBaseInfoDTO getUserIdByIdNum(String customerId, String idNum,String userId); + @Deprecated Integer checkIdNum(String idNum, String customerId, String excludeUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java index 2d25fc6bde..09a74b157f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java @@ -27,7 +27,6 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; -import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; @@ -218,16 +217,17 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl NumConstant.ZERO) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + throw new EpmetException(EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getCode(), "user_resi_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg()); } //判断user_base_info表是否存在相同的身份证号 if (userBaseInfoService.checkIdNum(userResiInfoDTO.getIdNum(), userResiInfoDTO.getCustomerId(), null) > 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_base_info已存在该身份证号", "身份证号已被使用"); + throw new EpmetException(EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getCode(), "user_base_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg()); } - } + }*/ userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO); //4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 registerRelationService.saveRegisterRelation(userResiInfoDTO); @@ -311,15 +311,16 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + throw new EpmetException(EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getCode(), "user_resi_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg()); } //判断user_base_info表是否存在相同的身份证号 if (userBaseInfoService.checkIdNum(userResiInfoDTO.getIdNum(), userResiInfoDTO.getCustomerId(), null) > 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_base_info已存在该身份证号", "身份证号已被使用"); + throw new EpmetException(EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getCode(), "user_base_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg()); } - } + }*/ //居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 registerRelationService.saveRegisterRelation(userResiInfoDTO); //数据存入居民注册表 @@ -394,19 +395,20 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl18){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号至多18位"); } //判断身份证号唯一,除了当前用户外没有人用过这个身份证号吧??? if(baseDao.selectCountByIdNum(formDTO.getIdNum(),formDTO.getCustomerId(),formDTO.getUserId())>0){ - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + throw new EpmetException(EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getCode(), "user_resi_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg()); } //判断user_base_info表是否存在相同的身份证号 if (userBaseInfoService.checkIdNum(formDTO.getIdNum(), formDTO.getCustomerId(), formDTO.getUserId()) > 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_base_info已存在该身份证号", "身份证号已被使用"); + throw new EpmetException(EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getCode(), "user_base_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg()); } - } + }*/ //更新居民注册信息表 baseDao.updateByUserId(ConvertUtils.sourceToTarget(formDTO, UserResiInfoEntity.class)); //更新baseInfo From e154b2fa1c92131896806098e313d8c9f71ac318 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 8 Dec 2021 11:07:39 +0800 Subject: [PATCH 13/14] =?UTF-8?q?/epmetuser/icresiuser/persondata=E8=BF=94?= =?UTF-8?q?=E5=8F=82=E5=A2=9E=E5=8A=A0epmetUserIdList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/result/PersonDataResultDTO.java | 2 +- .../com/epmet/dto/result/ResiUserResDTO.java | 9 +++++---- .../java/com/epmet/dao/UserBaseInfoDao.java | 7 ++++--- .../java/com/epmet/dao/UserResiInfoDao.java | 5 ++--- .../com/epmet/service/UserBaseInfoService.java | 2 +- .../service/impl/IcResiUserServiceImpl.java | 2 +- .../service/impl/UserBaseInfoServiceImpl.java | 6 +++--- .../com/epmet/service/impl/UserServiceImpl.java | 17 +++++++++-------- .../main/resources/mapper/UserBaseInfoDao.xml | 9 ++------- .../main/resources/mapper/UserResiInfoDao.xml | 9 ++------- 10 files changed, 30 insertions(+), 38 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java index 3d1334d249..68ad326637 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java @@ -21,7 +21,7 @@ public class PersonDataResultDTO implements Serializable { /** * epemt_user.user.id */ - private String epmetUserId; + private List epmetUserIdList; /** * ic_resi_user.id diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java index 3d0679b9d4..250ed45494 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java @@ -1,15 +1,16 @@ package com.epmet.dto.result; -import com.epmet.dto.form.ResiUserFormDTO; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.List; +/** + * 根据ic_resi_user找 epmetUser + */ @Data public class ResiUserResDTO implements Serializable { private String idNum; private String customerId; - private String epmetUserId; - private String icResiUserId; + private List epmetUserIdList; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java index 7cea610e90..3cd4c5ffe2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java @@ -26,6 +26,8 @@ import com.epmet.entity.UserBaseInfoEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 用户基础信息 * @@ -82,9 +84,8 @@ public interface UserBaseInfoDao extends BaseDao { **/ String selectIdByUserId(@Param("userId") String userId); - UserBaseInfoDTO selectUserId(@Param("customerId") String customerId, - @Param("idNum")String idNum, - @Param("userId")String userId); + List selectCommonIdNumUser(@Param("customerId") String customerId, + @Param("idNum")String idNum); Integer selectCountIdNum(@Param("idNum") String idNum, @Param("customerId")String customerId, diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java index 048b6d114b..73044f21c4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java @@ -106,7 +106,6 @@ public interface UserResiInfoDao extends BaseDao { @Param("customerId") String customerId, @Param("excludeUserId")String excludeUserId); - UserResiInfoDTO selectByIdNum(@Param("customerId") String customerId, - @Param("idNum")String idNum, - @Param("userId")String userId); + List selectCommonIdNumUser(@Param("customerId") String customerId, + @Param("idNum")String idNum); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java index 35e52df1d8..b5ca38d3ed 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java @@ -190,7 +190,7 @@ public interface UserBaseInfoService extends BaseService { **/ ExtUserInfoResultDTO extUserInfo(CommonUserIdFormDTO param); - UserBaseInfoDTO getUserIdByIdNum(String customerId, String idNum,String userId); + List getCommonIdNumUser(String customerId, String idNum); @Deprecated Integer checkIdNum(String idNum, String customerId, String excludeUserId); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index ed20fb2374..ea21846183 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -538,7 +538,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl()); personData.setIcResiUserId(formDTO.getUserId()); // 房屋信息查询 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index a8afc76953..5dd7677665 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -444,11 +444,11 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl getCommonIdNumUser(String customerId, String idNum) { + if(StringUtils.isBlank(idNum)){ return null; } - return baseDao.selectUserId(customerId,idNum,userId); + return baseDao.selectCommonIdNumUser(customerId,idNum); } @Override diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 36e820b18d..697fda9582 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -2,7 +2,6 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; @@ -26,13 +25,17 @@ import com.epmet.service.IcResiUserService; import com.epmet.service.UserBaseInfoService; import com.epmet.service.UserService; import com.epmet.util.ModuleConstant; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; /** @@ -370,15 +373,13 @@ public class UserServiceImpl extends BaseServiceImpl implem } ResiUserResDTO resiUserResDTO = ConvertUtils.sourceToTarget(formDTO, ResiUserResDTO.class); if (StringUtils.isNotBlank(formDTO.getIdNum())) { - UserBaseInfoDTO userBaseInfoDTO = userBaseInfoService.getUserIdByIdNum(formDTO.getCustomerId(), - formDTO.getIdNum(), null); - if (null == userBaseInfoDTO || StringUtils.isBlank(userBaseInfoDTO.getUserId())) { + List userBaseInfoList = userBaseInfoService.getCommonIdNumUser(formDTO.getCustomerId(),formDTO.getIdNum()); + if (CollectionUtils.isEmpty(userBaseInfoList)) { log.info("user_base_info没有找到,去查下user_resi_info表吧"); - UserResiInfoDTO userResiInfoDTO = userResiInfoDao.selectByIdNum(formDTO.getCustomerId(), - formDTO.getIdNum(), null); - resiUserResDTO.setEpmetUserId(null != userResiInfoDTO ? userResiInfoDTO.getId() : StrConstant.EPMETY_STR); + List userResiInfoDTO = userResiInfoDao.selectCommonIdNumUser(formDTO.getCustomerId(),formDTO.getIdNum()); + resiUserResDTO.setEpmetUserIdList(CollectionUtils.isNotEmpty(userResiInfoDTO) ? userResiInfoDTO.stream().map(UserResiInfoDTO::getUserId).collect(Collectors.toList()): new ArrayList<>()); } else { - resiUserResDTO.setEpmetUserId(userBaseInfoDTO.getUserId()); + resiUserResDTO.setEpmetUserIdList(userBaseInfoList.stream().map(UserBaseInfoDTO::getUserId).collect(Collectors.toList())); } } return resiUserResDTO; diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml index 16a0e4d8e9..ae0fbc5486 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml @@ -121,18 +121,13 @@ AND USER_ID = #{userId} - SELECT * FROM user_base_info WHERE DEL_FLAG = '0' AND customer_id = #{customerId} - - and id_num=#{idNum} - - - and user_id=#{userId} - + and id_num=#{idNum} - SELECT uri.* FROM @@ -199,11 +199,6 @@ WHERE uri.DEL_FLAG = '0' and uri.customer_id=#{customerId} - - AND uri.id_num = #{idNum} - - - and uri.user_id=#{userId} - + AND uri.id_num = #{idNum} From d9c81f6af5dfb72db48fcde71b56d88551e5fca1 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 8 Dec 2021 11:15:13 +0800 Subject: [PATCH 14/14] =?UTF-8?q?"mydemand"=E5=85=A5=E5=8F=82=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0epmetUserIdList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/demand/IcResiUserDemandFromDTO.java | 7 ++++++- .../service/impl/IcUserDemandRecServiceImpl.java | 6 +++++- .../src/main/resources/mapper/IcUserDemandRecDao.xml | 12 ++++-------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java index 51d334d874..f29e088293 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.List; @Data public class IcResiUserDemandFromDTO implements Serializable { @@ -21,7 +22,7 @@ public class IcResiUserDemandFromDTO implements Serializable { /** * icresiuser/persondata接口返参中有此值 */ - private String epmetUserId; + private List epmetUserIdList; @NotNull(message = "pageNo不能为空", groups = AddUserInternalGroup.class) private Integer pageNo; @@ -36,4 +37,8 @@ public class IcResiUserDemandFromDTO implements Serializable { @NotBlank(message = "tokenDto获取客户id不能为空", groups = AddUserInternalGroup.class) private String customerId; + /** + * epmetUserIdList+userId + */ + private List userIds; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 0693b7ec7b..3a0f278b10 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -475,7 +475,11 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl userIds=new ArrayList<>(); + userIds.add(formDTO.getUserId()); + if(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())){ + userIds.addAll(formDTO.getEpmetUserIdList()); + } //2、小程序内自己上报+赋能平台待录入的 PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectUserDemand(formDTO)); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index 8aed916dee..33d491e2b4 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -134,14 +134,10 @@ ic_user_demand_rec r WHERE r.DEL_FLAG = '0' - - - AND (r.DEMAND_USER_ID = #{userId} or r.DEMAND_USER_ID=#{epmetUserId}) - - - AND r.DEMAND_USER_ID = #{userId} - - + AND r.DEMAND_USER_ID in + + #{demandUserId} + and r.CATEGORY_CODE like concat(#{firstCategoryCode},'%')