diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index 2ef1bea3dd..1169c9ca84 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -323,11 +323,11 @@
lb://gov-issue-server
-
+
lb://gov-project-server
-
- http://localhost:8103
+ lb://common-service-server
+
lb://resi-home-server
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},'%')
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..295c125f69
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainCreateProjectFormDTO.java
@@ -0,0 +1,26 @@
+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..0cf7f1caac
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProcessProjectFormDTO.java
@@ -0,0 +1,21 @@
+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;
+
+ // 处理人信息更新
+ private BlockChainProjectProcessAssignedStaffFormDTO handledStaff;
+}
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..cdfbf27b95
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectFormDTO.java
@@ -0,0 +1,63 @@
+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;
+
+ // 客户名称
+ 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
new file mode 100644
index 0000000000..f0b82e062d
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessAssignedStaffFormDTO.java
@@ -0,0 +1,64 @@
+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;
+
+ //组织名称
+ 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;
+
+ @NotBlank(message = "人员ID必填")
+ private String staffId;
+
+ // 指派的用户名字
+ private String staffName;
+
+ @NotBlank(message = "部门名称必填")
+ private String departmentName;
+
+ @NotBlank(message = "是否处理必填")
+ private String isHandle;
+
+ @NotBlank(message = "创建者ID必填")
+ private String createdBy;
+
+ @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
new file mode 100644
index 0000000000..4a21f3e3db
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/BlockChainProjectProcessFormDTO.java
@@ -0,0 +1,85 @@
+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;
+
+ // 组织的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 String 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 f71914f828..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,8 +25,8 @@ 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,url = "localhost:8110")
@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class, configuration =
EpmetThirdOpenFeignClient.MultipartSupportConfig.class)
public interface EpmetThirdOpenFeignClient {
@@ -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 a57a1bcfcf..121cb6460b 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
+
+
@@ -208,6 +220,16 @@
SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
+
+
+
+
+
+ true
+ 192.168.1.144:9876
+ EpmetCloud
+ 12345678
@@ -248,6 +270,16 @@
SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
+
+
+
+
+
+ true
+ 192.168.1.144:9876
+ EpmetCloud
+ 12345678
@@ -288,6 +320,16 @@
SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
+
+
+
+
+
+ false
+
+
+
@@ -330,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
new file mode 100644
index 0000000000..2ec27b1e27
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/BlockChainProjectController.java
@@ -0,0 +1,47 @@
+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 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;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 区块链project相关controller
+ */
+@RestController
+@RequestMapping("/blockchain/project")
+public class BlockChainProjectController {
+
+ @Autowired
+ private BlockChainProjectService blockChainProjectService;
+
+ /**
+ * 立项
+ * @param input
+ * @return
+ */
+ @PostMapping("create")
+ public Result blockChainCreateProject(@RequestBody BlockChainCreateProjectFormDTO input) {
+ ValidatorUtils.validateEntity(input);
+ blockChainProjectService.blockChainCreateProject(input);
+ return new Result();
+ }
+
+ /**
+ * 处理进展
+ * @param input
+ * @return
+ */
+ @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..3ec172b7a6
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/mq/producer/BlockChainProducer.java
@@ -0,0 +1,98 @@
+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 TAG_SEND_HANDLED_STAFF = "send_handled_staff";
+
+ /**
+ * 组
+ */
+ 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..36db95499d
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/BlockChainProjectServiceImpl.java
@@ -0,0 +1,204 @@
+package com.epmet.service.impl;
+
+import com.alibaba.fastjson.JSON;
+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
+ * @Date 2021/11/26 9:59 上午
+ * @Version 1.0
+ */
+@Service
+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) {
+
+ BlockChainProjectFormDTO project = input.getProject();
+ BlockChainProjectProcessFormDTO process = input.getProcess();
+ List assignedStaffs = input.getAssignedStaffs();
+
+ fill(project, process, assignedStaffs, null);
+
+ 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, BlockChainProjectProcessAssignedStaffFormDTO handledStaff) {
+
+ // 一.填充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(), "【项目信息上链】查询客户信息失败", null);
+
+ // 组织信息
+ CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(project.getAgencyId()),
+ 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(), "【项目信息上链】查询用户信息失败", null);
+
+ 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信息失败", null);
+
+ 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(), "【项目信息上链】查询处理节点网格信息失败", null);
+
+ 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(), "【项目信息上链】查询处理节点用户信息失败", null);
+
+ process.setStaffName(processStaffInfo.getRealName());
+ process.setCreatedBy(processStaffInfo.getRealName());
+
+ }
+
+ // 三.填充指派用户信息
+ if (assignedStaffs != null) {
+ for (BlockChainProjectProcessAssignedStaffFormDTO assignedStaff : assignedStaffs) {
+ 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(), "【项目信息上链】查询指派人员组织信息失败", null);
+
+ 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(), "【项目信息上链】查询指派人员网格信息失败", null);
+
+ 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(), "【项目信息上链】查询指派用户信息失败", null);
+
+ 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(), "【项目信息上链】查询指派用户信息失败", null);
+
+ Optional.of(createStaffInfo).ifPresent((createStaff) -> assignedStaff.setCreaterName(createStaffInfo.getRealName()));
+ }
+
+ @Override
+ public void blockChainProcessProject(BlockChainProcessProjectFormDTO input) {
+
+ BlockChainProjectProcessFormDTO process = input.getProcess();
+ List assignedStaffs = input.getAssignedStaffs();
+ BlockChainProjectProcessAssignedStaffFormDTO handledStaff = input.getHandledStaff();
+
+ fill(null, process, assignedStaffs, handledStaff);
+
+ String processString = JSON.toJSONString(process);
+ blockChainProducer.sendMsg(BlockChainProducer.TOPIC_PROJECT, BlockChainProducer.TAG_SEND_PROCESS, processString);
+
+ 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/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-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..ae61ba1769
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CategoryListResultDTO.java
@@ -0,0 +1,38 @@
+package com.epmet.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+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;
+
+ 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-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 fd9abdea24..87e60da943 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.IssueApplicationDTO;
import com.epmet.dto.IssueDTO;
@@ -344,4 +346,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 c16cf3b490..2cbb23ae48 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.IssueApplicationDTO;
@@ -284,4 +285,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);
+ }
}
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..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
@@ -245,6 +245,20 @@
+
+
+
UPDATE issue_project_category_dict
SET
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDistributionAnalysisFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDistributionAnalysisFormDTO.java
new file mode 100644
index 0000000000..745febe364
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDistributionAnalysisFormDTO.java
@@ -0,0 +1,23 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/12/7 9:55 上午
+ * @DESC
+ */
+@Data
+public class ProjectDistributionAnalysisFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 4911448213428751186L;
+
+ public interface ProjectDistributionAnalysisForm{}
+
+ @NotBlank(message = "date不能为空",groups = ProjectDistributionAnalysisForm.class)
+ private String date;
+
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CategoryListDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CategoryListDTO.java
new file mode 100644
index 0000000000..a32b7125ea
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CategoryListDTO.java
@@ -0,0 +1,38 @@
+package com.epmet.dto.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/12/7 9:40 上午
+ * @DESC
+ */
+@Data
+public class CategoryListDTO implements Serializable {
+
+ private static final long serialVersionUID = 2782140672250580404L;
+
+ /**
+ * 分类编码
+ */
+ private String categoryCode;
+
+ /**
+ * 分类名字
+ */
+ private String categoryName;
+
+ /**
+ * 个数
+ */
+ private Integer count;
+
+ public CategoryListDTO() {
+ this.categoryCode = "";
+ this.categoryName = "";
+ this.count = NumConstant.ZERO;
+ }
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryByDateDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryByDateDTO.java
new file mode 100644
index 0000000000..b31ca841b5
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectCategoryByDateDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/12/7 11:18 上午
+ * @DESC
+ */
+@Data
+public class ProjectCategoryByDateDTO implements Serializable {
+
+ private static final long serialVersionUID = -6620068264792270703L;
+
+ /**
+ * 项目创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 分类编码
+ */
+ private String categoryCode;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisLeftResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisLeftResultDTO.java
new file mode 100644
index 0000000000..0e991a98e0
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDistributionAnalysisLeftResultDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2021/12/7 9:38 上午
+ * @DESC
+ */
+@Data
+public class ProjectDistributionAnalysisLeftResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -5694808164804517466L;
+
+ /**
+ * 时间段
+ */
+ private String time;
+
+ /**
+ * 分类集合
+ */
+ private List categoryList;
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
index 46de571a19..085cc4c333 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
@@ -17,7 +17,9 @@
package com.epmet.controller;
+import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@@ -31,6 +33,7 @@ import com.epmet.dto.result.*;
import com.epmet.excel.ProjectExcel;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import com.epmet.service.ProjectService;
+import jdk.nashorn.internal.parser.Token;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -271,4 +274,17 @@ public class ProjectController {
return new Result>().ok(projectService.getUnResolvedListByGrid(formDTO));
}
+ /**
+ * @Description 【社区治理】项目分布分析-左边
+ * @param formDTO
+ * @param tokenDto
+ * @author zxc
+ * @date 2021/12/7 10:02 上午
+ */
+ @PostMapping("projectdistributionanalysisleft")
+ public Result> projectDistributionAnalysisLeft(@RequestBody ProjectDistributionAnalysisFormDTO formDTO, @LoginUser TokenDto tokenDto){
+ ValidatorUtils.validateEntity(formDTO, ProjectDistributionAnalysisFormDTO.ProjectDistributionAnalysisForm.class);
+ return new Result>().ok(projectService.projectDistributionAnalysisLeft(formDTO,tokenDto));
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
index 0040584f81..4f65e09ab8 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
@@ -217,4 +217,14 @@ public interface ProjectDao extends BaseDao {
EventProjectInfoDTO selectEventProjectInfo(@Param("projectId")String projectId);
List selectByOriginId(String originId);
+
+ /**
+ * @Description 根据日期查询项目分类
+ * @param date
+ * @param orgId
+ * @author zxc
+ * @date 2021/12/7 2:43 下午
+ */
+ List selectProjectCategoryByDate(@Param("date")String date,@Param("orgId")String orgId,@Param("codeLength")Integer codeLength);
+
}
\ No newline at end of file
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..233f4d5feb
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/BlockChainUploadService.java
@@ -0,0 +1,20 @@
+package com.epmet.service;
+
+import com.epmet.entity.ProjectEntity;
+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(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities, String projectStaffId);
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
index 1f0fd17a0d..7a780592e1 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
@@ -19,6 +19,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@@ -331,4 +332,14 @@ public interface ProjectService extends BaseService {
List getUnResolvedListByGrid(ShiftProjectListFromDTO fromDTO);
List getByOriginId(String eventId);
+
+ /**
+ * @Description 【社区治理】项目分布分析-左边
+ * @param formDTO
+ * @param tokenDto
+ * @author zxc
+ * @date 2021/12/7 10:02 上午
+ */
+ List projectDistributionAnalysisLeft(ProjectDistributionAnalysisFormDTO formDTO, TokenDto tokenDto);
+
}
\ No newline at end of file
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..0d745d23cc
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/BlockChainUploadServiceImpl.java
@@ -0,0 +1,147 @@
+package com.epmet.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.epmet.dao.ProjectStaffDao;
+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;
+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(ProjectEntity projectEntity, ProjectProcessEntity processEntity, List assignedStaffEntities, String projectStaffId) {
+
+ // 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());
+ process.setCreatedTime(processEntity.getCreatedTime());
+ process.setCostWorkDays(processEntity.getCostWorkdays());
+ 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<>();
+ }
+
+ // 3.指派人员列表
+ 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());
+
+ // 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);
+ 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 b082fa1813..e7932e3303 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;
@@ -63,6 +64,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;
@@ -125,6 +127,8 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl page(Map params) {
@@ -412,6 +416,13 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl(), null);
+ } catch (Exception e) {
+ String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
+ log.error("【项目流转】上链失败,错误信息:{}", errorMsg);
+ }
}
/**
@@ -2141,6 +2186,14 @@ public class ProjectServiceImpl extends BaseServiceImpl(), null);
+ } catch (Exception e) {
+ String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
+ log.error("【项目流转】上链失败,错误信息:{}", errorMsg);
+ }
}
/**
@@ -2790,6 +2850,83 @@ public class ProjectServiceImpl extends BaseServiceImpl projectDistributionAnalysisLeft(ProjectDistributionAnalysisFormDTO formDTO, TokenDto tokenDto) {
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
+ if (null == staffInfo){
+ throw new EpmetException("未查询到此工作人员的所属组织信息...");
+ }
+ Result> listResult = govIssueOpenFeignClient.selectCategoryOneLevelListByCustomerId(tokenDto);
+ if (!listResult.success()){
+ throw new EpmetException("查询1级分类列表失败...");
+ }
+ List projectCategoryByDateDTOS = baseDao.selectProjectCategoryByDate(formDTO.getDate(), staffInfo.getAgencyId(), listResult.getData().get(NumConstant.ZERO).getCodeLength());
+ if (CollectionUtils.isEmpty(projectCategoryByDateDTOS)){
+ return new ArrayList<>();
+ }
+ return disposeTimeInterval(projectCategoryByDateDTOS, formDTO.getDate(), listResult.getData());
+ }
+
+ /**
+ * @Description 区间项目分类数量处理
+ * @param categories
+ * @param date
+ * @param listResult
+ * @author zxc
+ * @date 2021/12/8 9:45 上午
+ */
+ public List disposeTimeInterval(List categories, String date,List listResult){
+ List intervalTimeList = getIntervalTimeList("00:00", "24:00", 240);
+ List result = new ArrayList<>();
+ Map> groupByCode = categories.stream().collect(Collectors.groupingBy(ProjectCategoryByDateDTO::getCategoryCode));
+ for (int i = 0; i < intervalTimeList.size(); i++) {
+ ProjectDistributionAnalysisLeftResultDTO dto = new ProjectDistributionAnalysisLeftResultDTO();
+ dto.setTime(intervalTimeList.get(i));
+ dto.setCategoryList(ConvertUtils.sourceToTarget(listResult,CategoryListDTO.class));
+ String concat = date.concat(" ").concat(intervalTimeList.get(i)).concat(":00");
+ long end = DateUtils.stringToDate(DateUtils.DATE_TIME_PATTERN, concat).getTime();
+ if (i == NumConstant.ZERO){
+ dto.getCategoryList().forEach(cate -> {
+ AtomicReference count = new AtomicReference<>(cate.getCount());
+ groupByCode.forEach((k,v) -> {
+ if (cate.getCategoryCode().equals(k)){
+ v.forEach(l -> {
+ if (l.getCreatedTime().getTime() < end){
+ cate.setCount(count.getAndSet(count.get() + NumConstant.ONE));
+ }
+ });
+ }
+ });
+ });
+ }else if (i == intervalTimeList.size() - NumConstant.ONE){
+ break;
+ }else {
+ String startStr = date.concat(" ").concat(intervalTimeList.get(i - NumConstant.ONE)).concat(":00");
+ long start = DateUtils.stringToDate(DateUtils.DATE_TIME_PATTERN, startStr).getTime();
+ dto.getCategoryList().forEach(cate -> {
+ AtomicReference count = new AtomicReference<>(cate.getCount());
+ groupByCode.forEach((k,v) -> {
+ if (cate.getCategoryCode().equals(k)){
+ v.forEach(l -> {
+ if (l.getCreatedTime().getTime() < end && l.getCreatedTime().getTime() >= start){
+ cate.setCount(count.getAndSet(count.get() + NumConstant.ONE));
+ }
+ });
+ }
+ });
+ });
+ }
+ result.add(dto);
+ }
+ return result;
+ }
/**
* @Description 获取固定时间段之间固定时间的集合
@@ -2799,7 +2936,7 @@ public class ProjectServiceImpl extends BaseServiceImpl getIntervalTimeList(String start,String end,Integer interval) {
+ public List getIntervalTimeList(String start,String end,Integer interval) {
Date startDate = convertStringToDate("HH:mm", start);
Date endDate = convertStringToDate("HH:mm", end);
List list = new ArrayList<>();
@@ -2820,11 +2957,12 @@ public class ProjectServiceImpl extends BaseServiceImpl implements ProjectTraceS
private ResiEventService resiEventService;
@Autowired
private ResiEventReportOrgDao resiEventReportOrgDao;
+ @Autowired
+ private BlockChainUploadService blockChainUploadService;
@Override
public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
@@ -534,6 +537,13 @@ public class ProjectTraceServiceImpl implements ProjectTraceS
log.error("项目实时统计消息发送失败");
}
+ // 数据上链
+ try {
+ blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList, null);
+ } catch (Exception e) {
+ String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
+ log.error("【项目流转】上链失败,错误信息:{}", errorMsg);
+ }
}
/**
@@ -860,6 +870,15 @@ public class ProjectTraceServiceImpl implements ProjectTraceS
resiEventService.shiftProject(eventShiftProjectDTO);
EventToProjectResultDTO resultDTO=new EventToProjectResultDTO();
resultDTO.setProjectId(projectEntity.getId());
+
+ // 数据上链
+ try {
+ blockChainUploadService.send2BlockChain(projectEntity, processEntity, entityList, null);
+ } catch (Exception e) {
+ String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
+ log.error("【项目流转】上链失败,错误信息:{}", errorMsg);
+ }
+
return resultDTO;
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
index ab6c65c8a7..bb6e79aaf6 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
@@ -397,4 +397,18 @@
where p.DEL_FLAG = '0'
AND p.ORIGIN_ID = #{originId}
+
+
+
\ No newline at end of file
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 b2b3233af5..d3ba9d2b22 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
@@ -46,8 +46,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 d3a29103dc..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,7 +1,9 @@
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;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@@ -16,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;
/**
* 小区名称
@@ -58,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-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/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/dao/UserBaseInfoDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java
index c44ea90420..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,7 +84,10 @@ 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,
+ @Param("excludeUserId")String excludeUserId);
}
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 164a222894..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,5 +190,8 @@ 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 61d1cf14a0..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,10 +444,15 @@ 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
+ public Integer checkIdNum(String idNum, String customerId, String excludeUserId) {
+ return baseDao.selectCountIdNum(idNum,customerId,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 8134df1477..385c02dc24 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,12 +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.IDCARDNO_ALREADY_EXITS.getCode(), "user_base_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg());
+ }
+ }*/
userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO);
//4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
@@ -313,9 +317,16 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl 0) {
- throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用");
- }
+ //2021-12-08新需求:同客户内不再校验身份证唯一
+ /*if(StringUtils.isNotBlank(userResiInfoDTO.getIdNum())){
+ if (baseDao.selectCountByIdNum(userResiInfoDTO.getIdNum(), userResiInfoDTO.getCustomerId(),userResiInfoDTO.getUserId()) > 0) {
+ 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.IDCARDNO_ALREADY_EXITS.getCode(), "user_base_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg());
+ }
+ }*/
//居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
//数据存入居民注册表
@@ -390,12 +401,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.IDCARDNO_ALREADY_EXITS.getCode(), "user_base_info已存在该身份证号", EpmetErrorCode.IDCARDNO_ALREADY_EXITS.getMsg());
+ }
+ }*/
//更新居民注册信息表
baseDao.updateByUserId(ConvertUtils.sourceToTarget(formDTO, UserResiInfoEntity.class));
//更新baseInfo
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 9d74f0d600..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,17 +121,26 @@
AND USER_ID = #{userId}
-
@@ -190,7 +191,7 @@
-
+
SELECT
uri.*
FROM
@@ -198,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}