Browse Source

Merge remote-tracking branch 'remotes/origin/dev' into dev_special_subject

master
jianjun 4 years ago
parent
commit
333ab17fad
  1. 4
      epmet-admin/epmet-admin-server/pom.xml
  2. 60
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java
  3. 1
      epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml
  4. 4
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  5. 5
      epmet-commons/epmet-commons-rocketmq/pom.xml
  6. 43
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/ConsumerConfigProperties.java
  7. 77
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQAbstractRegister.java
  8. 29
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerProperties.java
  9. 79
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerRegister.java
  10. 35
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQRegisterConfiguration.java
  11. 12
      epmet-gateway/pom.xml
  12. 2
      epmet-gateway/src/main/java/com/epmet/auth/ExternalAuthProcessor.java
  13. 17
      epmet-gateway/src/main/resources/bootstrap.yml
  14. 14
      epmet-gateway/src/main/resources/logback-spring.xml
  15. 6
      epmet-module/data-report/data-report-server/src/main/resources/mapper/plugins/ScreenWorkRecordOrgDailyDao.xml
  16. 4
      epmet-module/data-statistical/data-statistical-server/pom.xml
  17. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/AnScreenCollController.java
  18. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/BaseReportController.java
  19. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/FactIndexCollectController.java
  20. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/GovernanceDataReportController.java
  21. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/IndexCalculateController.java
  22. 78
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/KcScreenCollController.java
  23. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ScreenProjectDataCollController.java
  24. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ShiBeiScreenCollController.java
  25. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/StatsUserController.java
  26. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/plugins/OfsController.java
  27. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/plugins/WorkRecordColController.java
  28. 60
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java
  29. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml
  30. 4
      epmet-module/gov-issue/gov-issue-server/pom.xml
  31. 53
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java
  32. 1
      epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml
  33. 4
      epmet-module/gov-org/gov-org-server/pom.xml
  34. 79
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java
  35. 1
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/mq/listener/InitCustomerOrgRolesListener.java
  36. 4
      epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml
  37. 3
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml
  38. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/LatestListFormDTO.java
  39. 3
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  40. 9
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  41. 4
      epmet-module/oper-customize/oper-customize-server/pom.xml
  42. 53
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java
  43. 1
      epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml
  44. 4
      epmet-module/resi-group/resi-group-server/pom.xml
  45. 59
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java
  46. 1
      epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml
  47. 2
      epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java
  48. 10
      epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml
  49. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml

4
epmet-admin/epmet-admin-server/pom.xml

@ -136,6 +136,7 @@
<spring.flyway.enabled>false</spring.flyway.enabled> <spring.flyway.enabled>false</spring.flyway.enabled>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -172,6 +173,7 @@
<spring.flyway.enabled>false</spring.flyway.enabled> <spring.flyway.enabled>false</spring.flyway.enabled>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>false</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -205,6 +207,7 @@
<spring.flyway.enabled>true</spring.flyway.enabled> <spring.flyway.enabled>true</spring.flyway.enabled>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -238,6 +241,7 @@
<spring.flyway.enabled>true</spring.flyway.enabled> <spring.flyway.enabled>true</spring.flyway.enabled>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>

60
epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java

@ -2,6 +2,8 @@ package com.epmet.mq.listener;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.mq.listener.listener.AuthOperationLogListener; import com.epmet.mq.listener.listener.AuthOperationLogListener;
import com.epmet.mq.listener.listener.PointOperationLogListener; import com.epmet.mq.listener.listener.PointOperationLogListener;
@ -16,55 +18,15 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@Component @Component
public class RocketMQConsumerRegister { public class RocketMQConsumerRegister extends MQAbstractRegister {
@Value("${spring.profiles.active}")
private String env;
@Value("${rocketmq.name-server}")
private String nameServer;
/** @Override
* @return public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
* @Description 注册监听器 // 客户初始化监听器注册
* @author wxz register(consumerProperties, ConsomerGroupConstants.AUTH_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.AUTH, "*", new AuthOperationLogListener());
* @date 2021.03.03 16:09 register(consumerProperties, ConsomerGroupConstants.PROJECT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectOperationLogListener());
*/ register(consumerProperties, ConsomerGroupConstants.POINT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.POINT, "*", new PointOperationLogListener());
@PostConstruct
public void registerAllListeners() {
try {
if (!EnvEnum.LOCAL.getCode().equals(env)) {
register(nameServer, ConsomerGroupConstants.AUTH_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.AUTH, "*", new AuthOperationLogListener());
register(nameServer, ConsomerGroupConstants.PROJECT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectOperationLogListener());
register(nameServer, ConsomerGroupConstants.POINT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.POINT, "*", new PointOperationLogListener());
}
} catch (MQClientException e) {
e.printStackTrace();
}
}
public void register(String nameServer, String group, MessageModel messageModel, String topic, String subException, MessageListenerConcurrently listener) throws MQClientException {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subException);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
// 启动消费者实例
consumer.start();
}
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName; // ...其他监听器类似
} }
}
}

1
epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml

@ -136,4 +136,5 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq: rocketmq:
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@

4
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -486,7 +486,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
dto.setMobile(formDTO.getMobile()); dto.setMobile(formDTO.getMobile());
Result<List<CustomerStaffDTO>> customerStaffResult = epmetUserOpenFeignClient.getCustsomerStaffByIdAndPhone(dto); Result<List<CustomerStaffDTO>> customerStaffResult = epmetUserOpenFeignClient.getCustsomerStaffByIdAndPhone(dto);
if (!customerStaffResult.success()) { if (!customerStaffResult.success()) {
logger.error(String.format("手机密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getMobile(), customerStaffResult.getCode(), customerStaffResult.getMsg())); logger.warn(String.format("手机密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getMobile(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
throw new RenException(customerStaffResult.getCode()); throw new RenException(customerStaffResult.getCode());
} }
//2、密码是否正确 //2、密码是否正确
@ -529,7 +529,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
if(result.success()&&null!=result.getData()){ if(result.success()&&null!=result.getData()){
return result.getData(); return result.getData();
} }
logger.error(String .format("手机验证码获取组织,调用%s服务失败,入参手机号%s,密码%s,返回错误码%s,错误提示信息%s", logger.warn(String .format("手机验证码获取组织,调用%s服务失败,入参手机号%s,密码%s,返回错误码%s,错误提示信息%s",
ServiceConstant.GOV_ORG_SERVER, ServiceConstant.GOV_ORG_SERVER,
formDTO.getMobile(), formDTO.getMobile(),
formDTO.getPassword(), formDTO.getPassword(),

5
epmet-commons/epmet-commons-rocketmq/pom.xml

@ -26,5 +26,10 @@
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-tools</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

43
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/ConsumerConfigProperties.java

@ -1,43 +0,0 @@
package com.epmet.commons.rocketmq.register;
import lombok.Data;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import java.io.Serializable;
/**
* desc:mq 消费配置类
*
* @author: LiuJanJun
* @date: 2021/4/30 2:39 下午
* @version: 1.0
*/
@Data
public class ConsumerConfigProperties implements Serializable {
private static final long serialVersionUID = 2069676324708473773L;
/**
* 消费者组
*/
private String consumerGroup;
/**
* 主题
*/
private String topic;
/**
* 标签
*/
private String tag = "*";
/**
* 最小消费的线程数
*/
private int consumeThreadMin = 2;
/**
* 最大消费的线程数
*/
private int consumeThreadMax = 4;
/**
* 消费监听器
*/
private MessageListenerConcurrently consumerListener;
}

77
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQAbstractRegister.java

@ -0,0 +1,77 @@
package com.epmet.commons.rocketmq.register;
import com.epmet.commons.tools.exception.ExceptionUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.MessageListener;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
/**
* @author wxz
* @Description 父类抽象注册器
* @date 2021.07.14 15:38:21
*/
@Slf4j
public abstract class MQAbstractRegister {
/**
* @Description 注册所有监听器由子类实现做具体监听器的注册
* @return
* @author wxz
* @date 2021.07.14 15:48
*/
public abstract void registerAllListeners(String env, MQConsumerProperties consumerProperties);
/**
* @Description 真正执行注册的方法供子类直接调用子类也可以覆盖该方法
* @return
* @author wxz
* @date 2021.07.14 15:56
*/
public void register(MQConsumerProperties consumerProperties, String group, MessageModel messageModel, String topic, String subExpression, MessageListener listener) {
try {
String nameServer = consumerProperties.getNameServer();
Integer consumeThreadMin = consumerProperties.getConsumeThreadMin();
Integer consumeThreadMax = consumerProperties.getConsumeThreadMax();
String instanceName = buildInstanceName();
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(instanceName);
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subExpression);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
if (consumeThreadMin != null) {
consumer.setConsumeThreadMin(consumeThreadMin);
}
if (consumeThreadMax != null) {
consumer.setConsumeThreadMax(consumeThreadMax);
}
// 启动消费者实例
consumer.start();
log.info(String.format("监听器注册完成,消费者组:%s,Topic:%s,Tag:%s,实例名称:%s", group, topic, subExpression, instanceName));
} catch (Exception e) {
log.error(String.format("监听器注册失败,消费者组:%s,Topic:%s,Tag:%s。详细信息:%s", group, topic, subExpression, ExceptionUtils.getErrorStackTrace(e)));
}
}
/**
* @Description 构造实例名称
* @return
* @author wxz
* @date 2021.07.14 15:56
*/
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
}

29
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerProperties.java

@ -0,0 +1,29 @@
package com.epmet.commons.rocketmq.register;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @Description 注册属性
* @author wxz
* @date 2021.07.14 15:33:16
*/
@Data
@ConfigurationProperties(prefix = "rocketmq")
public class MQConsumerProperties {
/**
* nameServer
*/
private String nameServer;
/**
* 最小消费线程数
*/
private Integer consumeThreadMin;
/**
* 最大消费线程数
*/
private Integer consumeThreadMax;
}

79
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerRegister.java

@ -1,79 +0,0 @@
package com.epmet.commons.rocketmq.register;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.PostConstruct;
/**
* desc注册mq监听器
*
* @author liujianjun
*/
@Slf4j
public abstract class MQConsumerRegister {
@Value("${spring.profiles.active}")
private String env;
@Value("${rocketmq.name-server}")
private String namesrvAddr;
public abstract ConsumerConfigProperties getConsumerProperty();
/**
* @return
* @Description 注册监听器
* @author wxz
* @date 2021.03.03 16:09
*/
@PostConstruct
public void registerMQListener() {
ConsumerConfigProperties consumerProperty = getConsumerProperty();
log.info("registerAllListeners consumers:{} success", consumerProperty);
//本地环境不注册
//if (!"local".equals(env)) {
try {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerProperty.getConsumerGroup());
// 设置NameServer的地址
consumer.setNamesrvAddr(namesrvAddr);
consumer.setMessageModel(MessageModel.CLUSTERING);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(consumer.getConsumerGroup(), consumerProperty.getTag());
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(consumerProperty.getConsumerListener());
consumer.setConsumeThreadMin(consumerProperty.getConsumeThreadMin());
consumer.setConsumeThreadMax(consumerProperty.getConsumeThreadMax());
// 启动消费者实例
consumer.start();
} catch (MQClientException e) {
log.info("registerMQListener exception", e);
}
//}
}
/**
* desc: 因为docker-compose部署有问题 所有自己命名
*
* @param
* @return java.lang.String
* @author LiuJanJun
* @date 2021/4/30 5:00 下午
*/
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
}

35
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQRegisterConfiguration.java

@ -0,0 +1,35 @@
package com.epmet.commons.rocketmq.register;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
/**
* @author wxz
* @Description MQ注册配置类
* @date 2021.07.14 15:36:24
*/
@Configuration
@ConditionalOnProperty(prefix = "rocketmq", name = "enable", havingValue = "true", matchIfMissing = false)
@EnableConfigurationProperties(MQConsumerProperties.class)
@Slf4j
public class MQRegisterConfiguration {
@Value("${spring.profiles.active}")
private String env;
@Autowired
private MQConsumerProperties consumerProperties;
@Autowired
private MQAbstractRegister mqRegister;
@PostConstruct
public void register() {
mqRegister.registerAllListeners(env, consumerProperties);
log.info("监听器注册动作执行完毕");
}
}

12
epmet-gateway/pom.xml

@ -233,6 +233,9 @@
<!--宣传服务--> <!--宣传服务-->
<gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url> <gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url>
<!--<gateway.routes.epmet-ext-server.url>lb://127.0.0.1:8115</gateway.routes.epmet-ext-server.url>--> <!--<gateway.routes.epmet-ext-server.url>lb://127.0.0.1:8115</gateway.routes.epmet-ext-server.url>-->
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
<profile> <profile>
@ -361,6 +364,9 @@
<!--宣传服务--> <!--宣传服务-->
<gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url> <gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url>
<!--<gateway.routes.epmet-openapi-adv-server.url>http://localhost:8115</gateway.routes.epmet-openapi-adv-server.url>--> <!--<gateway.routes.epmet-openapi-adv-server.url>http://localhost:8115</gateway.routes.epmet-openapi-adv-server.url>-->
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
<profile> <profile>
@ -458,6 +464,9 @@
<!--宣传服务--> <!--宣传服务-->
<gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url> <gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url>
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
<profile> <profile>
@ -552,6 +561,9 @@
<!--宣传服务--> <!--宣传服务-->
<gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url> <gateway.routes.epmet-openapi-adv-server.url>lb://epmet-openapi-adv-server</gateway.routes.epmet-openapi-adv-server.url>
<!--生产钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>

2
epmet-gateway/src/main/java/com/epmet/auth/ExternalAuthProcessor.java

@ -16,7 +16,6 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher; import org.springframework.util.AntPathMatcher;
import org.springframework.util.MultiValueMap;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -73,6 +72,7 @@ public class ExternalAuthProcessor extends AuthProcessor {
} }
if (!inPaths) { if (!inPaths) {
logger.error("auth 401 ,uri:{}",requestUri);
throw new RenException(EpmetErrorCode.ERR401.getCode(), "所请求的url并未对外部应用开放"); throw new RenException(EpmetErrorCode.ERR401.getCode(), "所请求的url并未对外部应用开放");
} }

17
epmet-gateway/src/main/resources/bootstrap.yml

@ -476,14 +476,24 @@ epmet:
# 外部应用认证,使用AccessToken等头进行认证 # 外部应用认证,使用AccessToken等头进行认证
externalOpenUrls: externalOpenUrls:
- /data/report/** - /data/report/**
- /data/stats/**
- /epmet/ext/** - /epmet/ext/**
- /epmetuser/customerstaff/customerlist - /epmetuser/customerstaff/customerlist
- /message/template/** - /message/template/**
- /data/aggregator/project/projectdistribution - /data/aggregator/project/projectdistribution
- /data/aggregator/epmetuser/open-staffdetail - /data/aggregator/epmetuser/open-staffdetail
#stats external包下 公共的类只外部暴露方法 纯外部使用的 暴漏整个
- /data/stats/statsuser/gm-uploadevent - /data/stats/statsuser/gm-uploadevent
- /data/stats/statsuser/gm-uploaddata - /data/stats/statsuser/gm-uploaddata
- /data/stats/indexcalculate/all
- /data/stats/kcscreencoll/**
- /data/stats/indexcollect/**
- /data/stats/anscreencoll/**
- /data/stats/plugin/**
- /data/stats/screencoll/**
- /data/stats/project/**
- /data/stats/basereport/**
- /data/stats/governance/**
# 对外开放接口认证白名单 # 对外开放接口认证白名单
externalAuthUrlsWhiteList: externalAuthUrlsWhiteList:
@ -497,3 +507,8 @@ jwt:
secret: 7016867071f0ebf1c46f123eaaf4b9d6[elink.epmet] secret: 7016867071f0ebf1c46f123eaaf4b9d6[elink.epmet]
#token有效时长,默认7天,单位秒 #token有效时长,默认7天,单位秒
expire: 604800 expire: 604800
dingTalk:
robot:
webHook: @dingTalk.robot.webHook@
secret: @dingTalk.robot.secret@

14
epmet-gateway/src/main/resources/logback-spring.xml

@ -5,6 +5,8 @@
<property name="log.path" value="logs/gateway"/> <property name="log.path" value="logs/gateway"/>
<springProperty scope="context" name="appname" source="spring.application.name"/> <springProperty scope="context" name="appname" source="spring.application.name"/>
<springProperty scope="context" name="webHook" source="dingTalk.robot.webHook"/>
<springProperty scope="context" name="secret" source="dingTalk.robot.secret"/>
<!-- 日志上下文名称 --> <!-- 日志上下文名称 -->
<contextName>${appname}</contextName> <contextName>${appname}</contextName>
@ -131,13 +133,21 @@
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
</filter> </filter>
<!-- 此日志文档只记录ERROR级别的 发送钉钉短信 -->
<filter class="com.epmet.commons.tools.filter.LogMsgSendFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
<webHook>${webHook}</webHook>
<secret>${secret}</secret>
<appName>${appname}</appName>
</filter>
</appender> </appender>
<!-- 开发、测试环境 --> <!-- 开发、测试环境 -->
<springProfile name="dev,test"> <springProfile name="local,dev,test">
<logger name="org.springframework.web" level="INFO"/> <logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/> <logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet" level="INFO"/>
<logger name="com.epmet" level="DEBUG"/> <logger name="com.epmet" level="DEBUG"/>
<root level="INFO"> <root level="INFO">
<appender-ref ref="DEBUG_FILE"/> <appender-ref ref="DEBUG_FILE"/>

6
epmet-module/data-report/data-report-server/src/main/resources/mapper/plugins/ScreenWorkRecordOrgDailyDao.xml

@ -131,8 +131,8 @@
<select id="selectUpToCalGrid" parameterType="map" resultType="com.epmet.plugins.result.WorkRecordSubRank"> <select id="selectUpToCalGrid" parameterType="map" resultType="com.epmet.plugins.result.WorkRecordSubRank">
SELECT SELECT
sca.GRID_ID AS orgId, scg.GRID_ID AS orgId,
sca.grid_name AS `NAME`, scg.grid_name AS `NAME`,
sum( m.PARTICIPATE_USER_TOTAL ) AS participateUserTotal, sum( m.PARTICIPATE_USER_TOTAL ) AS participateUserTotal,
sum( m.ORGANIZE_TOTAL ) AS participateTotal sum( m.ORGANIZE_TOTAL ) AS participateTotal
FROM FROM
@ -140,11 +140,11 @@
inner join screen_customer_grid scg inner join screen_customer_grid scg
on(m.ORG_ID=scg.grid_id on(m.ORG_ID=scg.grid_id
and scg.DEL_FLAG='0' and scg.DEL_FLAG='0'
AND scg.ALL_PARENT_IDS like concat('%',#{agencyId},'%')
) )
WHERE WHERE
m.DEL_FLAG = '0' m.DEL_FLAG = '0'
AND m.DATE_ID = #{dateId} AND m.DATE_ID = #{dateId}
and m.org_id=#{gridId}
AND m.TYPE_CODE IN AND m.TYPE_CODE IN
<foreach item="typeCode" collection="typeCodeList" open="(" separator="," close=")"> <foreach item="typeCode" collection="typeCodeList" open="(" separator="," close=")">
#{typeCode} #{typeCode}

4
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -256,6 +256,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -375,6 +376,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>local</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -493,6 +495,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -609,6 +612,7 @@
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret> <dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/AnScreenCollController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/AnScreenCollController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BaseReportController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/BaseReportController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactIndexCollectController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/FactIndexCollectController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.indexcollect.form.*; import com.epmet.dto.indexcollect.form.*;

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/GovernanceDataReportController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/GovernanceDataReportController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.extract.form.AgencyGovernDailyFormDTO; import com.epmet.dto.extract.form.AgencyGovernDailyFormDTO;
@ -8,7 +8,6 @@ import com.epmet.service.GovernanceDataReportService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.sql.ResultSet;
/** /**
* 治理能力数据上报 * 治理能力数据上报

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/IndexCalculateController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;

78
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/KcScreenCollController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/KcScreenCollController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -27,13 +27,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_platform_summary_daily * table:screen_kc_platform_summary_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("homepage/platformsummary") @PostMapping("homepage/platformsummary")
public Result platFormSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcHomePageFormDTO> formDTO) { public Result platFormSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcHomePageFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -48,13 +48,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_issue_summary_grid_daily * table:screen_kc_issue_summary_grid_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("issue/summary") @PostMapping("issue/summary")
public Result issueSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcIssueSummaryFormDTO> formDTO) { public Result issueSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcIssueSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -69,13 +69,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table: screen_kc_issue_trend_grid_monthly * table: screen_kc_issue_trend_grid_monthly
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("issue/trend") @PostMapping("issue/trend")
public Result issueTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcIssueTrendFormDTO> formDTO) { public Result issueTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcIssueTrendFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -90,13 +90,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_user_summary_daily * table:screen_kc_user_summary_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("user/summary") @PostMapping("user/summary")
public Result userSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcUserSummaryFormDTO> formDTO) { public Result userSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcUserSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -111,13 +111,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_volunteer_heat_rank_grid_daily * table:screen_kc_volunteer_heat_rank_grid_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("volunteer/heartrank") @PostMapping("volunteer/heartrank")
public Result volunteerHeartRank(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcVolunteerHeartRankFormDTO> formDTO) { public Result volunteerHeartRank(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcVolunteerHeartRankFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -132,13 +132,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_user_trend_grid_monthly * table:screen_kc_user_trend_grid_monthly
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("user/userheartrank") @PostMapping("user/userheartrank")
public Result userHeartRank(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcUserHeartRankFormDTO> formDTO) { public Result userHeartRank(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcUserHeartRankFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -153,13 +153,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_act_summary_daily * table:screen_kc_act_summary_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("act/summary") @PostMapping("act/summary")
public Result actSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcActSummaryFormDTO> formDTO) { public Result actSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcActSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -174,13 +174,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_act_trend_monthly * table:screen_kc_act_trend_monthly
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("act/trend") @PostMapping("act/trend")
public Result actTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcActTrendFormDTO> formDTO) { public Result actTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcActTrendFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -195,13 +195,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_volunteer_summary_daily * table:screen_kc_volunteer_summary_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("act/volunteersummary") @PostMapping("act/volunteersummary")
public Result volunteerSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcVolunteerSummaryFormDTO> formDTO) { public Result volunteerSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcVolunteerSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -216,13 +216,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_project_summary_grid_daily * table:screen_kc_project_summary_grid_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("project/summary") @PostMapping("project/summary")
public Result projectSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcProjectSummaryFormDTO> formDTO) { public Result projectSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcProjectSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -237,13 +237,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_project_category_grid_daily * table:screen_kc_project_category_grid_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("project/categorysummary") @PostMapping("project/categorysummary")
public Result categorySummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcCategorySummaryFormDTO> formDTO) { public Result categorySummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcCategorySummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -258,13 +258,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_project_satis_grid_monthly * table:screen_kc_project_satis_grid_monthly
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("project/satisanalysis") @PostMapping("project/satisanalysis")
public Result projectSatisanalysis(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcProjectSatisanalysisFormDTO> formDTO) { public Result projectSatisanalysis(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcProjectSatisanalysisFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -279,13 +279,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_news_summary_daily * table:screen_kc_news_summary_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("news/summary") @PostMapping("news/summary")
public Result newsSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsSummaryFormDTO> formDTO) { public Result newsSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -300,13 +300,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_news_trend_monthly * table:screen_kc_news_trend_monthly
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("news/trend") @PostMapping("news/trend")
public Result newsTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsTrendFormDTO> formDTO) { public Result newsTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsTrendFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -321,13 +321,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_news_rank * table:screen_kc_news_rank
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("news/hotrank") @PostMapping("news/hotrank")
public Result newsHotRank(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsHotRankFormDTO> formDTO) { public Result newsHotRank(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsHotRankFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -342,13 +342,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_news_category_analysis * table:screen_kc_news_category_analysis
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("news/categoryanalysis") @PostMapping("news/categoryanalysis")
public Result newsCategoryAnalysis(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsCategoryAnalysisFormDTO> formDTO) { public Result newsCategoryAnalysis(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcNewsCategoryAnalysisFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -363,13 +363,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_group_summary_grid_daily * table:screen_kc_group_summary_grid_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("group/summary") @PostMapping("group/summary")
public Result groupSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcGroupSummaryFormDTO> formDTO) { public Result groupSummary(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcGroupSummaryFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -384,13 +384,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_group_detail_grid_daily * table:screen_kc_group_detail_grid_daily
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("group/detail") @PostMapping("group/detail")
public Result groupDetail(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcGroupDetailFormDTO> formDTO) { public Result groupDetail(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcGroupDetailFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
@ -405,13 +405,13 @@ public class KcScreenCollController {
* 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false * 所以如果项目上是分批上传第一次为isFirst=true,后面isFirst应为false
* table:screen_kc_topic_trend_grid_monthly * table:screen_kc_topic_trend_grid_monthly
* *
* *
* @param formDTO * @param formDTO
* @return void * @return void
* @Author zhangyong * @Author zhangyong
* @Date 15:57 2020-09-09 * @Date 15:57 2020-09-09
**/ **/
@PostMapping("group/topictrend") @PostMapping("group/topictrend")
public Result groupTopicTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcGroupTopicTrendFormDTO> formDTO) { public Result groupTopicTrend(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<KcGroupTopicTrendFormDTO> formDTO) {
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ScreenProjectDataCollController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ShiBeiScreenCollController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ShiBeiScreenCollController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO; import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO;

3
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/StatsUserController.java

@ -1,4 +1,4 @@
package com.epmet.controller; package com.epmet.controller.external;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -30,6 +30,7 @@ public class StatsUserController {
* @param formDTO * @param formDTO
* @description 工作端数据一期用户分析参与用户注册用户分析 * @description 工作端数据一期用户分析参与用户注册用户分析
* @Date 2021/3/26 13:27 * @Date 2021/3/26 13:27
* 自用的方法 不暴漏
**/ **/
@RequestMapping("execute") @RequestMapping("execute")
public Result execute(@RequestBody StatsFormDTO formDTO) { public Result execute(@RequestBody StatsFormDTO formDTO) {

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/plugins/OfsController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/plugins/OfsController.java

@ -1,4 +1,4 @@
package com.epmet.controller.plugins; package com.epmet.controller.external.plugins;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -19,16 +19,16 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("plugins/ofs") @RequestMapping("plugins/ofs")
public class OfsController { public class OfsController {
@Autowired @Autowired
private OfsService ofsService; private OfsService ofsService;
/** /**
* @param customerId * @param customerId
* @param formDTO * @param formDTO
* @author yinzuomei * @author yinzuomei
* @description 146一张清单 isFirst=true时,根据customerId先删除后增加 * @description 146一张清单 isFirst=true时,根据customerId先删除后增加
* @Date 2021/1/22 10:19 * @Date 2021/1/22 10:19
**/ **/
@PostMapping("onelist-daily") @PostMapping("onelist-daily")
public Result collOneList(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<OneListFormDTO> formDTO){ public Result collOneList(@RequestHeader("CustomerId") String customerId, @RequestBody ScreenCollFormDTO<OneListFormDTO> formDTO){

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/plugins/WorkRecordColController.java → epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/plugins/WorkRecordColController.java

@ -1,4 +1,4 @@
package com.epmet.controller.plugins; package com.epmet.controller.external.plugins;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -35,7 +35,7 @@ public class WorkRecordColController {
* 按月上传工作日志统计数据时同步调用此接口上传字典信息 * 按月上传工作日志统计数据时同步调用此接口上传字典信息
* @param customerId * @param customerId
* @param data * @param data
* @return com.epmet.commons.tools.utils.Result * @return com.epmet.commons.tools.utils.Result
* @author wangc * @author wangc
* @date 2021.02.04 16:16 * @date 2021.02.04 16:16
*/ */

60
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java

@ -2,6 +2,8 @@ package com.epmet.mq;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.enums.EnvEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -14,57 +16,13 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@Slf4j
@Component @Component
public class RocketMQConsumerRegister { public class RocketMQConsumerRegister extends MQAbstractRegister {
@Value("${spring.profiles.active}")
private String env;
@Value("${rocketmq.name-server}")
private String nameServer;
/** @Override
* @return public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
* @Description 注册监听器 // 客户初始化监听器注册
* @author wxz register(consumerProperties, ConsomerGroupConstants.PROJECT_CHANGED_COMPONENTS_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectChangedCustomListener());
* @date 2021.03.03 16:09 // ...其他监听器类似
*/
@PostConstruct
public void registerAllListeners() {
try {
if (!EnvEnum.LOCAL.getCode().equals(env)) {
register(ConsomerGroupConstants.PROJECT_CHANGED_COMPONENTS_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectChangedCustomListener());
}
} catch (MQClientException e) {
log.error("registerAllListeners exception", e);
}
} }
}
public void register(String group, MessageModel messageModel, String topic, String subException, MessageListenerConcurrently listener) throws MQClientException {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subException);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
//一次批量拉去10条消息
consumer.setConsumeMessageBatchMaxSize(NumConstant.TEN);
// 启动消费者实例
consumer.start();
}
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
}

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml

@ -207,4 +207,5 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq: rocketmq:
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@

4
epmet-module/gov-issue/gov-issue-server/pom.xml

@ -175,6 +175,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -215,6 +216,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>false</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -254,6 +256,7 @@
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook> <dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret> <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -294,6 +297,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>

53
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java

@ -2,6 +2,8 @@ package com.epmet.mq;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.mq.listener.IssueProjectCategoryTagInitListener; import com.epmet.mq.listener.IssueProjectCategoryTagInitListener;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.MessageListener; import org.apache.rocketmq.client.consumer.listener.MessageListener;
@ -13,50 +15,13 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@Component @Component
public class RocketMQConsumerRegister { public class RocketMQConsumerRegister extends MQAbstractRegister {
@Value("${rocketmq.name-server}") @Override
private String nameServer; public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
// 客户初始化监听器注册
register(consumerProperties, ConsomerGroupConstants.ISSUE_PROJECT_CATEGORY_TAG, MessageModel.CLUSTERING, TopicConstants.INIT_CUSTOMER, "*", new IssueProjectCategoryTagInitListener());
/** // ...其他监听器类似
* @return
* @Description 注册监听器
* @author wxz
* @date 2021.03.03 16:09
*/
@PostConstruct
public void registerAllListeners() {
try {
register(nameServer, ConsomerGroupConstants.ISSUE_PROJECT_CATEGORY_TAG, MessageModel.CLUSTERING, TopicConstants.INIT_CUSTOMER, "*", new IssueProjectCategoryTagInitListener());
} catch (MQClientException e) {
e.printStackTrace();
}
} }
}
public void register(String nameServer, String group, MessageModel messageModel, String topic, String subException, MessageListener listener) throws MQClientException {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subException);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
// 启动消费者实例
consumer.start();
}
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
}

1
epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml

@ -129,4 +129,5 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq: rocketmq:
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@

4
epmet-module/gov-org/gov-org-server/pom.xml

@ -170,6 +170,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -212,6 +213,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>false</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -255,6 +257,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -295,6 +298,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>

79
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java

@ -2,65 +2,36 @@ package com.epmet.mq;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.mq.listener.InitCustomerOrgRolesListener; import com.epmet.mq.listener.InitCustomerOrgRolesListener;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.MessageListener;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel; import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; /**
* @Description 如果rocketmq.enable=true这里必须实现 实例化
* @author wxz
* @date 2021.07.14 17:13:41
*/
@Component @Component
public class RocketMQConsumerRegister { public class RocketMQConsumerRegister extends MQAbstractRegister {
@Value("${spring.profiles.active}")
private String env; @Override
@Value("${rocketmq.name-server}") public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
private String nameServer; //判断逻辑,放到了了Pom.xml中,local不开启即可
//if (!EnvEnum.LOCAL.getCode().equals(env)) {
/** //...
* @return //}
* @Description 注册监听器
* @author wxz // 客户初始化监听器注册
* @date 2021.03.03 16:09 register(consumerProperties,
*/ ConsomerGroupConstants.INIT_CUSTOMER_ORG_ROLES_GROUP,
@PostConstruct MessageModel.CLUSTERING,
public void registerAllListeners() { TopicConstants.INIT_CUSTOMER,
try { "*",
if (!EnvEnum.LOCAL.getCode().equals(env)) { new InitCustomerOrgRolesListener());
register(nameServer, ConsomerGroupConstants.INIT_CUSTOMER_ORG_ROLES_GROUP, MessageModel.CLUSTERING, TopicConstants.INIT_CUSTOMER, "*", new InitCustomerOrgRolesListener());
} // ...其他监听器类似
} catch (MQClientException e) {
e.printStackTrace();
}
}
public void register(String nameServer, String group, MessageModel messageModel, String topic, String subException, MessageListener listener) throws MQClientException {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subException);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
// 启动消费者实例
consumer.start();
} }
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
} }

1
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/mq/listener/InitCustomerOrgRolesListener.java

@ -28,7 +28,6 @@ import java.util.concurrent.TimeUnit;
* @return * @return
* @date 2021.03.03 16:10 * @date 2021.03.03 16:10
*/ */
//@Component
public class InitCustomerOrgRolesListener implements MessageListenerConcurrently { public class InitCustomerOrgRolesListener implements MessageListenerConcurrently {
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());

4
epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml

@ -145,4 +145,8 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq: rocketmq:
# 是否开启mq
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@
# consume-thread-min: 2
# consume-thread-max: 2

3
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -314,6 +314,7 @@
INNER JOIN customer_agency ca ON cg.pid = ca.id INNER JOIN customer_agency ca ON cg.pid = ca.id
WHERE cg.del_flag = '0' WHERE cg.del_flag = '0'
AND ca.del_flag = '0' AND ca.del_flag = '0'
AND cg.SYNC_FLAG='1'
AND cg.id IN AND cg.id IN
<foreach item="id" collection="gridIdList" open="(" separator="," close=")"> <foreach item="id" collection="gridIdList" open="(" separator="," close=")">
#{id} #{id}
@ -428,6 +429,7 @@
) agency ON grid.PID = agency.ID ) agency ON grid.PID = agency.ID
WHERE WHERE
grid.del_flag = 0 grid.del_flag = 0
and grid.SYNC_FLAG='1'
<if test='areaCode != "" and areaCode != null'> <if test='areaCode != "" and areaCode != null'>
AND grid.area_code LIKE CONCAT(#{areaCode},'%') AND grid.area_code LIKE CONCAT(#{areaCode},'%')
</if> </if>
@ -467,6 +469,7 @@
) agency ON a.PID = agency.ID ) agency ON a.PID = agency.ID
WHERE WHERE
a.del_flag = 0 a.del_flag = 0
and a.SYNC_FLAG='1'
AND a.customer_id = #{customerId} AND a.customer_id = #{customerId}
) AS c ) AS c
ORDER BY CONVERT ( gridName USING gbk ) ASC ORDER BY CONVERT ( gridName USING gbk ) ASC

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/LatestListFormDTO.java

@ -37,5 +37,7 @@ public class LatestListFormDTO implements Serializable {
*/ */
private Integer pageSize = 3; private Integer pageSize = 3;
private Integer num = 0;
} }

3
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -1014,7 +1014,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
**/ **/
@Override @Override
public List<LatestListResultDTO> getClosedProjectList(LatestListFormDTO formDTO) { public List<LatestListResultDTO> getClosedProjectList(LatestListFormDTO formDTO) {
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setNum(pageIndex);
return baseDao.selectClosedProjectList(formDTO); return baseDao.selectClosedProjectList(formDTO);
} }

9
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -155,19 +155,24 @@
</select> </select>
<select id="selectClosedProjectList" resultType="com.epmet.dto.result.LatestListResultDTO"> <select id="selectClosedProjectList" resultType="com.epmet.dto.result.LatestListResultDTO">
SELECT SELECT DISTINCT
p.id AS "projectId", p.id AS "projectId",
pro.public_reply AS "publicReply", pro.public_reply AS "publicReply",
pro.department_name AS "departmentName", pro.department_name AS "departmentName",
UNIX_TIMESTAMP(pro.created_time) AS "closeProjectTime" UNIX_TIMESTAMP(pro.created_time) AS "closeProjectTime"
FROM project p FROM project p
INNER JOIN project_process pro ON p.id = pro.project_id INNER JOIN project_process pro ON p.id = pro.project_id
INNER JOIN project_related_personnel prp ON p.id = prp.project_id
WHERE p.del_flag = '0' WHERE p.del_flag = '0'
AND pro.del_flag = '0' AND pro.del_flag = '0'
AND p.customer_id = #{customerId} AND p.customer_id = #{customerId}
AND p.`status` = 'closed' AND p.`status` = 'closed'
AND pro.operation = 'close' AND pro.operation = 'close'
ORDER BY p.created_time DESC AND p.origin = 'issue'
AND prp.source_type = 'issue'
AND prp.grid_id = #{gridId}
ORDER BY pro.created_time DESC
LIMIT #{num}, #{pageSize}
</select> </select>
<select id="selectProjectList" resultType="com.epmet.dto.ProjectDTO"> <select id="selectProjectList" resultType="com.epmet.dto.ProjectDTO">

4
epmet-module/oper-customize/oper-customize-server/pom.xml

@ -144,6 +144,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -186,6 +187,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>false</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -228,6 +230,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -268,6 +271,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>

53
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java

@ -2,6 +2,8 @@ package com.epmet.mq;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.mq.listener.InitCustomerComponentsListener; import com.epmet.mq.listener.InitCustomerComponentsListener;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.MessageListener; import org.apache.rocketmq.client.consumer.listener.MessageListener;
@ -13,50 +15,13 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@Component @Component
public class RocketMQConsumerRegister { public class RocketMQConsumerRegister extends MQAbstractRegister {
@Value("${rocketmq.name-server}") @Override
private String nameServer; public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
// 客户初始化监听器注册
/** register(consumerProperties, ConsomerGroupConstants.INIT_CUSTOMER_COMPONENTS_GROUP, MessageModel.CLUSTERING, TopicConstants.INIT_CUSTOMER, "*", new InitCustomerComponentsListener());
* @return // ...其他监听器类似
* @Description 注册监听器
* @author wxz
* @date 2021.03.03 16:09
*/
@PostConstruct
public void registerAllListeners() {
try {
register(nameServer, ConsomerGroupConstants.INIT_CUSTOMER_COMPONENTS_GROUP, MessageModel.CLUSTERING, TopicConstants.INIT_CUSTOMER, "*", new InitCustomerComponentsListener());
} catch (MQClientException e) {
e.printStackTrace();
}
} }
public void register(String nameServer, String group, MessageModel messageModel, String topic, String subException, MessageListener listener) throws MQClientException {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subException);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
// 启动消费者实例
consumer.start();
}
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
} }

1
epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml

@ -126,6 +126,7 @@ dingTalk:
secret: @dingTalk.robot.secret@ secret: @dingTalk.robot.secret@
rocketmq: rocketmq:
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@
# 停机选项 # 停机选项

4
epmet-module/resi-group/resi-group-server/pom.xml

@ -205,6 +205,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
<rocketmq.producer.group>epmet_message</rocketmq.producer.group> <rocketmq.producer.group>epmet_message</rocketmq.producer.group>
</properties> </properties>
@ -260,6 +261,7 @@
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd <dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>false</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -314,6 +316,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>
@ -365,6 +368,7 @@
</dingTalk.robot.secret> </dingTalk.robot.secret>
<!--rocketmq--> <!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver> <rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
</properties> </properties>
</profile> </profile>

59
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java

@ -2,6 +2,8 @@ package com.epmet.mq;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.enums.EnvEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
@ -13,56 +15,13 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@Slf4j
@Component @Component
public class RocketMQConsumerRegister { public class RocketMQConsumerRegister extends MQAbstractRegister {
@Value("${spring.profiles.active}")
private String env;
@Value("${rocketmq.name-server}")
private String nameServer;
/** @Override
* @return public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
* @Description 注册监听器 // 客户初始化监听器注册
* @author wxz register(consumerProperties, ConsomerGroupConstants.GROUP_ACHIEVEMENT_COMPONENTS_GROUP, MessageModel.CLUSTERING, TopicConstants.GROUP_ACHIEVEMENT, "*", new GroupAchievementCustomListener());
* @date 2021.03.03 16:09 // ...其他监听器类似
*/
@PostConstruct
public void registerAllListeners() {
try {
if (!EnvEnum.LOCAL.getCode().equals(env)) {
register(ConsomerGroupConstants.GROUP_ACHIEVEMENT_COMPONENTS_GROUP, MessageModel.CLUSTERING, TopicConstants.GROUP_ACHIEVEMENT, "*", new GroupAchievementCustomListener());
}
} catch (MQClientException e) {
log.error("registerAllListeners exception", e);
}
} }
}
public void register(String group, MessageModel messageModel, String topic, String subException, MessageListenerConcurrently listener) throws MQClientException {
// 实例化消费者
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
// 设置NameServer的地址
consumer.setNamesrvAddr(nameServer);
consumer.setMessageModel(messageModel);
consumer.setInstanceName(buildInstanceName());
// 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
consumer.subscribe(topic, subException);
consumer.setConsumeMessageBatchMaxSize(10);
// 注册回调实现类来处理从broker拉取回来的消息
consumer.registerMessageListener(listener);
// 启动消费者实例
consumer.start();
}
private String buildInstanceName() {
String instanceName = "";
for (int i = 0; i < 4; i++) {
int t = (int) (Math.random() * 10);
instanceName = instanceName.concat(t + "");
}
return instanceName;
}
}

1
epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml

@ -159,4 +159,5 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,每超过30秒,打印一次错误日志 waitTimeSecs: 30 # 优雅停机等待时间,每超过30秒,打印一次错误日志
rocketmq: rocketmq:
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@ name-server: @rocketmq.nameserver@

2
epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java

@ -30,6 +30,6 @@ public class PublishSuggestionFormDTO implements Serializable {
@NotNull(message = "是否匿名不能为空", groups = {AddUserInternalGroup.class}) @NotNull(message = "是否匿名不能为空", groups = {AddUserInternalGroup.class})
private Boolean publicFlag; private Boolean publicFlag;
@Length(max = 500, message = "内容不能超过500字", groups = {AddUserShowGroup.class}) @Length(min = 1, max = 500, message = "内容不能为空,且不能超过500字", groups = {AddUserShowGroup.class})
private String suggestion; private String suggestion;
} }

10
epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml

@ -132,11 +132,13 @@
gov_staff_role gov_staff_role
WHERE WHERE
DEL_FLAG = 0 DEL_FLAG = 0
AND ( <if test="roleIds != null and roleIds.size() > 0">
<foreach collection="roleIds" item="roleId" separator=" OR "> AND (
ID = #{roleId} <foreach collection="roleIds" item="roleId" separator=" OR ">
</foreach> ID = #{roleId}
</foreach>
) )
</if>
</select> </select>
<select id="getStaffRoles" resultType="com.epmet.entity.GovStaffRoleEntity"> <select id="getStaffRoles" resultType="com.epmet.entity.GovStaffRoleEntity">
SELECT SELECT

2
epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml

@ -22,7 +22,7 @@
pr.STAFF_ID = #{userId} pr.STAFF_ID = #{userId}
</foreach> </foreach>
) )
GROUP BY pr.STAFF_ID ORDER BY pr.CREATED_TIME DESC)t ORDER BY pr.CREATED_TIME DESC)t GROUP BY STAFF_ID
</select> </select>
<!-- 巡查记录查询 --> <!-- 巡查记录查询 -->

Loading…
Cancel
Save