main
hehongyu 2023-08-12 17:13:10 +08:00
parent 41deb60c41
commit 4094fe1e3f
25 changed files with 705 additions and 630 deletions

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="CompilerConfiguration"> <component name="CompilerConfiguration">
<option name="BUILD_PROCESS_HEAP_SIZE" value="2048" />
<annotationProcessing> <annotationProcessing>
<profile default="true" name="Default" enabled="true" /> <profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true"> <profile name="Maven default annotation processors profile" enabled="true">

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: com.rabbitmq:amqp-client:5.13.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../repository/com/rabbitmq/amqp-client/5.13.1/amqp-client-5.13.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../repository/com/rabbitmq/amqp-client/5.13.1/amqp-client-5.13.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../repository/com/rabbitmq/amqp-client/5.13.1/amqp-client-5.13.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: org.springframework.amqp:spring-amqp:2.4.2">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/amqp/spring-amqp/2.4.2/spring-amqp-2.4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/amqp/spring-amqp/2.4.2/spring-amqp-2.4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/amqp/spring-amqp/2.4.2/spring-amqp-2.4.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: org.springframework.amqp:spring-rabbit:2.4.2">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/amqp/spring-rabbit/2.4.2/spring-rabbit-2.4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/amqp/spring-rabbit/2.4.2/spring-rabbit-2.4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/amqp/spring-rabbit/2.4.2/spring-rabbit-2.4.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-amqp:2.6.3">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/boot/spring-boot-starter-amqp/2.6.3/spring-boot-starter-amqp-2.6.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/boot/spring-boot-starter-amqp/2.6.3/spring-boot-starter-amqp-2.6.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/boot/spring-boot-starter-amqp/2.6.3/spring-boot-starter-amqp-2.6.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: org.springframework.retry:spring-retry:1.3.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/retry/spring-retry/1.3.1/spring-retry-1.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/retry/spring-retry/1.3.1/spring-retry-1.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/retry/spring-retry/1.3.1/spring-retry-1.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +0,0 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-messaging:5.3.15">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/spring-messaging/5.3.15/spring-messaging-5.3.15.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/spring-messaging/5.3.15/spring-messaging-5.3.15-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../repository/org/springframework/spring-messaging/5.3.15/spring-messaging-5.3.15-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -3,6 +3,7 @@
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/szhpt-fixed-task/talroad-demo.iml" filepath="$PROJECT_DIR$/szhpt-fixed-task/talroad-demo.iml" /> <module fileurl="file://$PROJECT_DIR$/szhpt-fixed-task/talroad-demo.iml" filepath="$PROJECT_DIR$/szhpt-fixed-task/talroad-demo.iml" />
<module fileurl="file://$PROJECT_DIR$/talroad-module.iml" filepath="$PROJECT_DIR$/talroad-module.iml" />
</modules> </modules>
</component> </component>
</project> </project>

View File

@ -51,10 +51,10 @@
<version>3.0.0</version> <version>3.0.0</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>org.springframework.boot</groupId> <!-- <groupId>org.springframework.boot</groupId>-->
<artifactId>spring-boot-starter-amqp</artifactId> <!-- <artifactId>spring-boot-starter-amqp</artifactId>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>

View File

@ -1,38 +1,38 @@
package cn.cecep.talroad.config; //package cn.cecep.talroad.config;
//
import org.springframework.amqp.core.DirectExchange; //import org.springframework.amqp.core.DirectExchange;
import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.Configuration;
//
/** ///**
* @Auther: cjh // * @Auther: cjh
* @Date: 2023-04-17 14:53 // * @Date: 2023-04-17 14:53
* @Class: ExchangeConfig // * @Class: ExchangeConfig
* @Deseription: // * @Deseription:
* @Version V1.0 // * @Version V1.0
*/ // */
@Configuration //@Configuration
public class ExchangeConfig { //public class ExchangeConfig {
//
/** // /**
* // * 消息交换机的名字
*/ // */
public static final String DIRECT_EXCHANGE = "metadata-bigdata"; // public static final String DIRECT_EXCHANGE = "metadata-bigdata";
//
//
/** // /**
* 1.direct exchangequeueTest // * 1.定义direct exchange绑定queueTest
* 2.durable="true" rabbitmq // * 2.durable="true" rabbitmq重启的时候不需要创建新的交换机
* 3.direct // * 3.direct交换器相对来说比较简单匹配规则为如果路由键匹配消息就被投送到相关的队列
* fanout // * fanout交换器中没有路由键的概念他会把消息发送到所有绑定在此交换器上面的队列中。
* topic // * topic交换器你采用模糊匹配路由键的原则进行转发消息到队列中
* key: queuedirect-exchangekeydirect-exchangekey // * key: queue在该direct-exchange中的key值当消息发送给direct-exchange中指定key为设置值时
* queue // * 消息将会转发给queue参数指定的消息队列
*/ // */
@Bean // @Bean
public DirectExchange directExchange() { // public DirectExchange directExchange() {
DirectExchange directExchange = new DirectExchange(DIRECT_EXCHANGE, true, false); // DirectExchange directExchange = new DirectExchange(DIRECT_EXCHANGE, true, false);
return directExchange; // return directExchange;
} // }
//
} //}

View File

@ -1,41 +1,41 @@
package cn.cecep.talroad.config; //package cn.cecep.talroad.config;
//
import org.springframework.amqp.core.Queue; //import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.Configuration;
//
/** ///**
* @Auther: cjh // * @Auther: cjh
* @Date: 2023-04-17 14:56 // * @Date: 2023-04-17 14:56
* @Class: QueueConfig // * @Class: QueueConfig
* @Deseription: // * @Deseription:
* @Version V1.0 // * @Version V1.0
*/ // */
@Configuration //@Configuration
public class QueueConfig { //public class QueueConfig {
//
private static final String statusQueue = "status-queue"; // private static final String statusQueue = "status-queue";
//
private static final String yieldQueue = "yield-queue"; // private static final String yieldQueue = "yield-queue";
//
@Bean // @Bean
public Queue statusQueue() { // public Queue statusQueue() {
/** // /**
durable="true" rabbitmq // durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
auto-delete 使 false // auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
exclusive connection,false // exclusive 表示该消息队列是否只在当前connection生效,默认是false
*/ // */
return new Queue(statusQueue, true, false, false); // return new Queue(statusQueue, true, false, false);
} // }
//
@Bean // @Bean
public Queue yieldQueue() { // public Queue yieldQueue() {
/** // /**
durable="true" rabbitmq // durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
auto-delete 使 false // auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
exclusive connection,false // exclusive 表示该消息队列是否只在当前connection生效,默认是false
*/ // */
return new Queue(yieldQueue, true, false, false); // return new Queue(yieldQueue, true, false, false);
} // }
//
} //}

View File

@ -1,49 +1,49 @@
package cn.cecep.talroad.config; //package cn.cecep.talroad.config;
//
import org.springframework.amqp.core.Binding; //import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder; //import org.springframework.amqp.core.BindingBuilder;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.Configuration;
//
/** ///**
* @Auther: cjh // * @Auther: cjh
* @Date: 2023-04-17 15:20 // * @Date: 2023-04-17 15:20
* @Class: RabbitmqConfig // * @Class: RabbitmqConfig
* @Deseription: // * @Deseription:
* @Version V1.0 // * @Version V1.0
*/ // */
@Configuration //@Configuration
public class RabbitmqConfig { //public class RabbitmqConfig {
//
/** // /**
* // * 停限产设备状态路由
*/ // */
public static final String ROUTE_KEY_STATUS = "route_key_status"; // public static final String ROUTE_KEY_STATUS = "route_key_status";
/** // /**
* // * 产量统计路由
*/ // */
public static final String ROUTE_KEY_YIELD = "route_key_yield"; // public static final String ROUTE_KEY_YIELD = "route_key_yield";
//
@Autowired // @Autowired
private QueueConfig queueConfig; // private QueueConfig queueConfig;
@Autowired // @Autowired
private ExchangeConfig exchangeConfig; // private ExchangeConfig exchangeConfig;
//
/** // /**
* // * 将停限产状态消息队列和交换机进行绑定
*/ // */
@Bean // @Bean
public Binding binding_statusQueue() { // public Binding binding_statusQueue() {
return BindingBuilder.bind(queueConfig.statusQueue()).to(exchangeConfig.directExchange()).with(RabbitmqConfig.ROUTE_KEY_STATUS); // return BindingBuilder.bind(queueConfig.statusQueue()).to(exchangeConfig.directExchange()).with(RabbitmqConfig.ROUTE_KEY_STATUS);
} // }
//
/** // /**
* // * 将产量统计队列和交换机进行绑定
*/ // */
@Bean // @Bean
public Binding binding_yieldQueue() { // public Binding binding_yieldQueue() {
return BindingBuilder.bind(queueConfig.yieldQueue()).to(exchangeConfig.directExchange()).with(RabbitmqConfig.ROUTE_KEY_YIELD); // return BindingBuilder.bind(queueConfig.yieldQueue()).to(exchangeConfig.directExchange()).with(RabbitmqConfig.ROUTE_KEY_YIELD);
} // }
//
} //}

View File

@ -6,7 +6,7 @@ import cn.cecep.talroad.domain.AmProblemFiProcess;
import cn.cecep.talroad.service.IAmProblemFiService; import cn.cecep.talroad.service.IAmProblemFiService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.junit.jupiter.api.Disabled; //import org.junit.jupiter.api.Disabled;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -37,7 +37,7 @@ public class AmProblemFiCallbackController extends BasesController {
@ApiOperation(value = "审核结果回调") @ApiOperation(value = "审核结果回调")
@PostMapping(value = "/audit/result") @PostMapping(value = "/audit/result")
@Disabled // @Disabled
public AjaxResults auditResult(@RequestBody @Validated AmProblemFiProcess param) { public AjaxResults auditResult(@RequestBody @Validated AmProblemFiProcess param) {
amProblemFiService.auditResult(param); amProblemFiService.auditResult(param);
return AjaxResults.success(); return AjaxResults.success();

View File

@ -14,7 +14,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.junit.jupiter.api.Disabled; //import org.junit.jupiter.api.Disabled;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -51,7 +51,7 @@ public class ERmStationExceedController {
@GetMapping("/selectInfo") @GetMapping("/selectInfo")
@ApiOperation("查询站点信息--弃用,使用接口 POST station/detail/air/{id}") @ApiOperation("查询站点信息--弃用,使用接口 POST station/detail/air/{id}")
@Disabled("使用cn.cecep.talroad.controller.TCodStationController.airStationDetail") // @Disabled("使用cn.cecep.talroad.controller.TCodStationController.airStationDetail")
public AjaxResults<ERmStationHour> selectInfo(@RequestParam(name = "stationCode") String stationCode) { public AjaxResults<ERmStationHour> selectInfo(@RequestParam(name = "stationCode") String stationCode) {
QueryWrapper<ERmStationHour> ew = new QueryWrapper<>(); QueryWrapper<ERmStationHour> ew = new QueryWrapper<>();
ew.eq(ERmStationHour.COL_STATION_CODE, stationCode); ew.eq(ERmStationHour.COL_STATION_CODE, stationCode);

View File

@ -0,0 +1,35 @@
package cn.cecep.talroad.data.analyse.task.execute.report.specifications.audit;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author hehongyu
* @description:
* @date 2023/8/12 17:07
*/
@Slf4j
@Service
public class ExecuteReportAuditService {
public void audit(List<String> executeReportIds){
//执行报表分批次进行
List<List<String>> partitionIds = Lists.partition(executeReportIds, 10);
for (List<String> partitionExecuteReportIds : partitionIds) {
//执行所有审核任务
try {
execute(partitionExecuteReportIds);
}catch (Exception e){
log.error("执行审核相关任务错误 executeReportIds{}", executeReportIds, e);
}
}
}
public void execute(List<String> partitionIds){
//所有的审核任务 需要将方法手动添加到此处!!!
}
}

View File

@ -0,0 +1,9 @@
package cn.cecep.talroad.data.analyse.task.execute.report.specifications.audit;
/**
* @author hehongyu
* @description:
* @date 2023/8/12 17:06
*/
public class FugitiveExhaustPollutantsService {
}

View File

@ -0,0 +1,6 @@
/**
* @description:
* @author hehongyu
* @date 2023/7/17 22:28
*/
package cn.cecep.talroad.data.analyse.task.execute.report.specifications.audit;

View File

@ -4,13 +4,9 @@ import cn.cecep.talroad.common.core.utils.StringUtils;
import cn.cecep.talroad.domain.AppVersionAddressManagement; import cn.cecep.talroad.domain.AppVersionAddressManagement;
import cn.cecep.talroad.mapper.AppVersionAddressManagementMapper; import cn.cecep.talroad.mapper.AppVersionAddressManagementMapper;
import cn.cecep.talroad.service.IAppVersionAddressManagementService; import cn.cecep.talroad.service.IAppVersionAddressManagementService;
import cn.cecep.talroad.util.QrCodeUtils;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/** /**
* @Description: app * @Description: app
@ -58,8 +54,8 @@ public class AppVersionAddressManagementServiceImpl extends ServiceImpl<AppVersi
if (StringUtils.isEmpty(logUrl)) { if (StringUtils.isEmpty(logUrl)) {
logUrl = versionAddress.getLogImgUrl(); logUrl = versionAddress.getLogImgUrl();
} }
return null;
String encode = QrCodeUtils.createQrCodeBase64Encode(url, StrUtil.isNotEmpty(logUrl)? FileUtil.file(logUrl): null, true); // String encode = QrCodeUtils.createQrCodeBase64Encode(url, StrUtil.isNotEmpty(logUrl)? FileUtil.file(logUrl): null, true);
return BASE64_CODE_PREFIX + encode; // return BASE64_CODE_PREFIX + encode;
} }
} }

View File

@ -1,13 +1,11 @@
package cn.cecep.talroad.service.impl.analysis; package cn.cecep.talroad.service.impl.analysis;
import cn.cecep.talroad.common.core.text.UUID;
import cn.cecep.talroad.common.core.utils.DateUtils; import cn.cecep.talroad.common.core.utils.DateUtils;
import cn.cecep.talroad.common.core.utils.StringUtils; import cn.cecep.talroad.common.core.utils.StringUtils;
import cn.cecep.talroad.domain.BasDevice; import cn.cecep.talroad.domain.BasDevice;
import cn.cecep.talroad.mapper.BasDeviceMapper; import cn.cecep.talroad.mapper.BasDeviceMapper;
import cn.cecep.talroad.service.analysis.IBasDeviceStatusService; import cn.cecep.talroad.service.analysis.IBasDeviceStatusService;
import cn.cecep.talroad.service.strategy.StrategyFactory; import cn.cecep.talroad.service.strategy.StrategyFactory;
import cn.cecep.talroad.util.MsgProducer;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -17,6 +15,8 @@ import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
//import cn.cecep.talroad.util.MsgProducer;
/** /**
* @Auther: cjh * @Auther: cjh
* @Date: 2023-03-31 16:10 * @Date: 2023-03-31 16:10
@ -32,8 +32,8 @@ public class BasDeviceStatusServiceImpl implements IBasDeviceStatusService {
private BasDeviceMapper deviceMapper; private BasDeviceMapper deviceMapper;
@Autowired @Autowired
private StrategyFactory strategyFactory; private StrategyFactory strategyFactory;
@Autowired // @Autowired
private MsgProducer msgProducer; // private MsgProducer msgProducer;
@Override @Override
public void doCheckDeviceStatus(String industry, String deviceType) { public void doCheckDeviceStatus(String industry, String deviceType) {
@ -55,10 +55,10 @@ public class BasDeviceStatusServiceImpl implements IBasDeviceStatusService {
deviceQueryWrapper.eq("is_status", "1"); deviceQueryWrapper.eq("is_status", "1");
List<BasDevice> deviceList = deviceMapper.selectList(deviceQueryWrapper); List<BasDevice> deviceList = deviceMapper.selectList(deviceQueryWrapper);
if (deviceList != null && deviceList.size() > 0) { if (deviceList != null && deviceList.size() > 0) {
// 查询设备类型的参数配置 // // 查询设备类型的参数配置
deviceList.forEach(d -> { // deviceList.forEach(d -> {
msgProducer.sendYieldStatisticMsg(UUID.randomUUID().toString(),d.getDeviceId()); // msgProducer.sendYieldStatisticMsg(UUID.randomUUID().toString(),d.getDeviceId());
}); // });
} }
} }

View File

@ -1,53 +1,53 @@
package cn.cecep.talroad.util; //package cn.cecep.talroad.util;
//
import cn.cecep.talroad.config.ExchangeConfig; //import cn.cecep.talroad.config.ExchangeConfig;
import cn.cecep.talroad.config.RabbitmqConfig; //import cn.cecep.talroad.config.RabbitmqConfig;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.connection.CorrelationData; //import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate; //import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
/** ///**
* @Auther: cjh // * @Auther: cjh
* @Date: 2022-05-07 15:27 // * @Date: 2022-05-07 15:27
* @Class: MsgProducer // * @Class: MsgProducer
* @Deseription: // * @Deseription:
* @Version V1.0 // * @Version V1.0
*/ // */
@Slf4j //@Slf4j
@Component //@Component
public class MsgProducer implements RabbitTemplate.ConfirmCallback { //public class MsgProducer implements RabbitTemplate.ConfirmCallback {
//
//
@Autowired // @Autowired
private RabbitTemplate rabbitTemplate; // private RabbitTemplate rabbitTemplate;
//
/** // /**
* - // * 发送消息-定时判断设备停限产状态
* // *
* @param uuid // * @param uuid
* @param message // * @param message 消息
*/ // */
public void sendStatusMsg(String uuid, Object message) { // public void sendStatusMsg(String uuid, Object message) {
rabbitTemplate.setConfirmCallback(this); // rabbitTemplate.setConfirmCallback(this);
CorrelationData correlationId = new CorrelationData(uuid); // CorrelationData correlationId = new CorrelationData(uuid);
rabbitTemplate.convertAndSend(ExchangeConfig.DIRECT_EXCHANGE, RabbitmqConfig.ROUTE_KEY_STATUS,message, correlationId); // rabbitTemplate.convertAndSend(ExchangeConfig.DIRECT_EXCHANGE, RabbitmqConfig.ROUTE_KEY_STATUS,message, correlationId);
} // }
//
/** // /**
* // * 发送探查消息
* @param uuid // * @param uuid
* @param message // * @param message
*/ // */
public void sendYieldStatisticMsg(String uuid, Object message) { // public void sendYieldStatisticMsg(String uuid, Object message) {
rabbitTemplate.setConfirmCallback(this); // rabbitTemplate.setConfirmCallback(this);
CorrelationData correlationId = new CorrelationData(uuid); // CorrelationData correlationId = new CorrelationData(uuid);
rabbitTemplate.convertAndSend(ExchangeConfig.DIRECT_EXCHANGE, RabbitmqConfig.ROUTE_KEY_YIELD,message, correlationId); // rabbitTemplate.convertAndSend(ExchangeConfig.DIRECT_EXCHANGE, RabbitmqConfig.ROUTE_KEY_YIELD,message, correlationId);
} // }
//
@Override // @Override
public void confirm(CorrelationData correlationData, boolean b, String s) { // public void confirm(CorrelationData correlationData, boolean b, String s) {
log.info("消息推送交换机状态{},消息ID{}",b,correlationData.getId()); // log.info("消息推送交换机状态{},消息ID{}",b,correlationData.getId());
} // }
} //}

View File

@ -1,229 +1,229 @@
package cn.cecep.talroad.util; //package cn.cecep.talroad.util;
//
import com.google.zxing.BarcodeFormat; //import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType; //import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter; //import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException; //import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix; //import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; //import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.springframework.web.client.RestTemplate; //import org.springframework.web.client.RestTemplate;
//
import javax.imageio.ImageIO; //import javax.imageio.ImageIO;
import java.awt.*; //import java.awt.*;
import java.awt.geom.RoundRectangle2D; //import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage; //import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream; //import java.io.ByteArrayOutputStream;
import java.io.File; //import java.io.File;
import java.util.*; //import java.util.*;
//
/** ///**
* @Description // * @Description二维码工具类
* @PACKAGE_NAME: cn.cecep.talroad.utils // * @PACKAGE_NAME: cn.cecep.talroad.utils
* @date 2021-12-21 11:10*/ // * @date 2021-12-21 11:10*/
public class QrCodeUtils { //public class QrCodeUtils {
//
private static final int BLACK = 0xFF000000; // private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF; // private static final int WHITE = 0xFFFFFFFF;
private static final String CHARSET = "utf-8"; // private static final String CHARSET = "utf-8";
private static final String FORMAT_NAME = "JPG"; // private static final String FORMAT_NAME = "JPG";
// 二维码尺寸 // // 二维码尺寸
private static final int QRCODE_SIZE = 300; // private static final int QRCODE_SIZE = 300;
// LOGO宽度 // // LOGO宽度
private static final int WIDTH = 60; // private static final int WIDTH = 60;
// LOGO高度 // // LOGO高度
private static final int HEIGHT = 60; // private static final int HEIGHT = 60;
//
private static RestTemplate restTemplate = new RestTemplate(); // private static RestTemplate restTemplate = new RestTemplate();
//
//
/** // /**
* // * 生成二维码
* base64 // * 经过base64编码
* // *
* @param url // * @param url
* @return // * @return
*/ // */
public static BufferedImage createQrCode(String url) throws WriterException { // public static BufferedImage createQrCode(String url) throws WriterException {
Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>(4); // Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>(4);
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 500, 500, hints); // BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 500, 500, hints);
//
return toBufferedImage(bitMatrix); // return toBufferedImage(bitMatrix);
} // }
//
/** // /**
* // * 生成二维码
* base64 // * 经过base64编码
* // *
* @param url // * @param url
* @return // * @return
*/ // */
public static String createQrCodeBase64(String url) { // public static String createQrCodeBase64(String url) {
String base64String = ""; // String base64String = "";
try { // try {
Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>(4); // Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>(4);
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 400, 400, hints); // BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 400, 400, hints);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); // ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//
BufferedImage bufferedImage = toBufferedImage(bitMatrix); // BufferedImage bufferedImage = toBufferedImage(bitMatrix);
ImageIO.write(bufferedImage, "jpg", outputStream); // ImageIO.write(bufferedImage, "jpg", outputStream);
Base64.Encoder encoder = Base64.getEncoder(); // Base64.Encoder encoder = Base64.getEncoder();
base64String = encoder.encodeToString(outputStream.toByteArray()); // base64String = encoder.encodeToString(outputStream.toByteArray());
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
//return "data:image/jpg;base64," + base64String; // //return "data:image/jpg;base64," + base64String;
return base64String; // return base64String;
} // }
//
private static BufferedImage toBufferedImage(BitMatrix matrix) { // private static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth(); // int width = matrix.getWidth();
int height = matrix.getHeight(); // int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) { // for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) { // for (int y = 0; y < height; y++) {
image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE); // image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
} // }
} // }
return image; // return image;
} // }
//
/** // /**
* (LOGO) // * 生成二维码(内嵌LOGO)
* author zhangpeizhi // * author zhangpeizhi
* @param content // * @param content 内容
* @param logoFile LOGO // * @param logoFile LOGO文件
* @param needCompress LOGO // * @param needCompress 是否压缩LOGO
* @throws Exception // * @throws Exception
*/ // */
public static String createQrCodeBase64Encode(String content, File logoFile, // public static String createQrCodeBase64Encode(String content, File logoFile,
boolean needCompress) throws Exception { // boolean needCompress) throws Exception {
BufferedImage image = createImage(content, logoFile, // BufferedImage image = createImage(content, logoFile,
needCompress); // needCompress);
//
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); // ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//
ImageIO.write(image, "jpg", outputStream); // ImageIO.write(image, "jpg", outputStream);
Base64.Encoder encoder = Base64.getEncoder(); // Base64.Encoder encoder = Base64.getEncoder();
String base64String = encoder.encodeToString(outputStream.toByteArray()); // String base64String = encoder.encodeToString(outputStream.toByteArray());
//
return base64String; // return base64String;
} // }
//
//
/** // /**
* (LOGO) // * 生成二维码(内嵌LOGO)
* // *
* @param content // * @param content 内容
* @param logoFile LOGO // * @param logoFile LOGO文件
* @param destPath // * @param destPath 存放目录
* @param needCompress LOGO // * @param needCompress 是否压缩LOGO
* @throws Exception // * @throws Exception
*/ // */
public static String encode(String content, File logoFile, String destPath, // public static String encode(String content, File logoFile, String destPath,
boolean needCompress) throws Exception { // boolean needCompress) throws Exception {
BufferedImage image = createImage(content, logoFile, // BufferedImage image = createImage(content, logoFile,
needCompress); // needCompress);
mkdirs(destPath); // mkdirs(destPath);
String file = new Random().nextInt(99999999) + ".jpg"; // String file = new Random().nextInt(99999999) + ".jpg";
ImageIO.write(image, FORMAT_NAME, new File(destPath + "/" + file)); // ImageIO.write(image, FORMAT_NAME, new File(destPath + "/" + file));
return file; // return file;
} // }
//
private static BufferedImage createImage(String content, File logoFile, // private static BufferedImage createImage(String content, File logoFile,
boolean needCompress) throws Exception { // boolean needCompress) throws Exception {
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); // Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET, CHARSET); // hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
hints.put(EncodeHintType.MARGIN, 1); // hints.put(EncodeHintType.MARGIN, 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, // BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints); // BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints);
int width = bitMatrix.getWidth(); // int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight(); // int height = bitMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height, // BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB); // BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) { // for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) { // for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 // image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000
: 0xFFFFFFFF); // : 0xFFFFFFFF);
} // }
} // }
if (CmUtil.isEmpty(logoFile)) { // if (CmUtil.isEmpty(logoFile)) {
return image; // return image;
} // }
// 插入图片 // // 插入图片
insertImage(image, logoFile, needCompress); // insertImage(image, logoFile, needCompress);
return image; // return image;
} // }
//
/** // /**
* mkdirsmkdir(mkdir) // * 当文件夹不存在时mkdirs会自动创建多层目录区别于mkdir(mkdir如果父目录不存在则会抛出异常)
* // *
* @param destPath // * @param destPath 存放目录
* @date 2013-12-11 10:16:36 // * @date 2013-12-11 上午10:16:36
*/ // */
public static void mkdirs(String destPath) { // public static void mkdirs(String destPath) {
File file = new File(destPath); // File file = new File(destPath);
//当文件夹不存在时mkdirs会自动创建多层目录区别于mkdir(mkdir如果父目录不存在则会抛出异常) // //当文件夹不存在时mkdirs会自动创建多层目录区别于mkdir(mkdir如果父目录不存在则会抛出异常)
if (!file.exists() && !file.isDirectory()) { // if (!file.exists() && !file.isDirectory()) {
file.mkdirs(); // file.mkdirs();
} // }
} // }
//
public static class CmUtil{ // public static class CmUtil{
public static boolean isEmpty(File file){ // public static boolean isEmpty(File file){
if (null == file || 0 == file.length() || !file.exists()) return true; // if (null == file || 0 == file.length() || !file.exists()) return true;
return false; // return false;
} // }
} // }
//
//
/** // /**
* LOGO // * 插入LOGO
* // *
* @param source // * @param source 二维码图片
* @param logoFile LOGO // * @param logoFile LOGO图片文件
* @param needCompress // * @param needCompress 是否压缩
* @throws Exception // * @throws Exception
*/ // */
private static void insertImage(BufferedImage source, File logoFile, // private static void insertImage(BufferedImage source, File logoFile,
boolean needCompress) throws Exception { // boolean needCompress) throws Exception {
//
if (!logoFile.exists()) { // if (!logoFile.exists()) {
System.err.println("" + logoFile + " 该文件不存在!"); // System.err.println("" + logoFile + " 该文件不存在!");
return; // return;
} // }
Image src = ImageIO.read(logoFile); // Image src = ImageIO.read(logoFile);
int width = src.getWidth(null); // int width = src.getWidth(null);
int height = src.getHeight(null); // int height = src.getHeight(null);
// 压缩LOGO // // 压缩LOGO
if (needCompress) { // if (needCompress) {
if (width > WIDTH) { // if (width > WIDTH) {
width = WIDTH; // width = WIDTH;
} // }
if (height > HEIGHT) { // if (height > HEIGHT) {
height = HEIGHT; // height = HEIGHT;
} // }
Image image = src.getScaledInstance(width, height, // Image image = src.getScaledInstance(width, height,
Image.SCALE_SMOOTH); // Image.SCALE_SMOOTH);
BufferedImage tag = new BufferedImage(width, height, // BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB); // BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics(); // Graphics g = tag.getGraphics();
// 绘制缩小后的图 // // 绘制缩小后的图
g.drawImage(image, 0, 0, null); // g.drawImage(image, 0, 0, null);
g.dispose(); // g.dispose();
src = image; // src = image;
} // }
// 插入LOGO // // 插入LOGO
Graphics2D graph = source.createGraphics(); // Graphics2D graph = source.createGraphics();
int x = (QRCODE_SIZE - width) / 2; // int x = (QRCODE_SIZE - width) / 2;
int y = (QRCODE_SIZE - height) / 2; // int y = (QRCODE_SIZE - height) / 2;
graph.drawImage(src, x, y, width, height, null); // graph.drawImage(src, x, y, width, height, null);
Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6); // Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
graph.setStroke(new BasicStroke(3f)); // graph.setStroke(new BasicStroke(3f));
graph.draw(shape); // graph.draw(shape);
graph.dispose(); // graph.dispose();
} // }
//
} //}

View File

@ -1,48 +1,47 @@
package cn.cecep.talroad.util; //package cn.cecep.talroad.util;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
import org.springframework.stereotype.Component;
/**
* @Auther: cjh
* @Date: 2023-04-17 11:02
* @Class: MsgReceiver
* @Deseription:
* @Version V1.0
*/
@Slf4j
@Component
public class StatusConsumer implements ChannelAwareMessageListener {
@Override
//@RabbitListener(queues = "status-queue")
public void onMessage(Message message, Channel channel) throws Exception {
// try {
// String deviceId = new String(message.getBody());
// BasDevice d = deviceMapper.selectById(deviceId);
// PcFactory p = pcFactoryMapper.selectPcFactoryById(d.getFactoryId());
// //
// QueryWrapper<BasDeviceParam> paramWrapper = new QueryWrapper<>(); //import com.rabbitmq.client.Channel;
// paramWrapper.eq("industry", d.getIndustry()); //import lombok.extern.slf4j.Slf4j;
// paramWrapper.eq("device_id", d.getDeviceId()); //import org.springframework.amqp.core.Message;
// paramWrapper.eq("device_type",d.getType()); //import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
// List<BasDeviceParam> paramList = basDeviceParamMapper.selectList(paramWrapper); //import org.springframework.stereotype.Component;
// //拼接策略服务名称
// String strategyName = StringUtils.upperCase(d.getIndustry() + d.getType());
// //执行策略,处理设备状态
// strategyFactory.getByName(strategyName).doCheckProcess(p, d, paramList);
// //
// } catch (Exception e) { ///**
// log.error("MsgReceiver.onMessage##失败:" + e.getMessage()); // * @Auther: cjh
// } finally { // * @Date: 2023-04-17 11:02
// //ACK 手动签收消息,告诉对方消息签收成功,唯一标识ID // * @Class: MsgReceiver
// Long deliverTag = message.getMessageProperties().getDeliveryTag(); // * @Deseription: 停限产状态消息消费
// channel.basicAck(deliverTag, false); // * @Version V1.0
// */
//@Slf4j
//@Component
//public class StatusConsumer implements ChannelAwareMessageListener {
//
//
// @Override
// //@RabbitListener(queues = "status-queue")
// public void onMessage(Message message, Channel channel) throws Exception {
//// try {
//// String deviceId = new String(message.getBody());
//// BasDevice d = deviceMapper.selectById(deviceId);
//// PcFactory p = pcFactoryMapper.selectPcFactoryById(d.getFactoryId());
////
//// QueryWrapper<BasDeviceParam> paramWrapper = new QueryWrapper<>();
//// paramWrapper.eq("industry", d.getIndustry());
//// paramWrapper.eq("device_id", d.getDeviceId());
//// paramWrapper.eq("device_type",d.getType());
//// List<BasDeviceParam> paramList = basDeviceParamMapper.selectList(paramWrapper);
//// //拼接策略服务名称
//// String strategyName = StringUtils.upperCase(d.getIndustry() + d.getType());
//// //执行策略,处理设备状态
//// strategyFactory.getByName(strategyName).doCheckProcess(p, d, paramList);
////
//// } catch (Exception e) {
//// log.error("MsgReceiver.onMessage##失败:" + e.getMessage());
//// } finally {
//// //ACK 手动签收消息,告诉对方消息签收成功,唯一标识ID
//// Long deliverTag = message.getMessageProperties().getDeliveryTag();
//// channel.basicAck(deliverTag, false);
//// }
// }
//} //}
}
}

View File

@ -1,52 +1,52 @@
package cn.cecep.talroad.util; //package cn.cecep.talroad.util;
//
import cn.cecep.talroad.common.core.utils.StringUtils; //import cn.cecep.talroad.common.core.utils.StringUtils;
import cn.cecep.talroad.service.IBasDeviceService; //import cn.cecep.talroad.service.IBasDeviceService;
import cn.cecep.talroad.service.strategy.StrategyFactory; //import cn.cecep.talroad.service.strategy.StrategyFactory;
import cn.cecep.talroad.vo.FactoryDeviceVo; //import cn.cecep.talroad.vo.FactoryDeviceVo;
import com.rabbitmq.client.Channel; //import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; //import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener; //import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener; //import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
/** ///**
* @Auther: cjh // * @Auther: cjh
* @Date: 2023-04-17 11:02 // * @Date: 2023-04-17 11:02
* @Class: MsgReceiver // * @Class: MsgReceiver
* @Deseription: // * @Deseription: 产量统计消息消费
* @Version V1.0 // * @Version V1.0
*/ // */
@Slf4j //@Slf4j
@Component //@Component
public class YieldConsumer implements ChannelAwareMessageListener { //public class YieldConsumer implements ChannelAwareMessageListener {
//
@Autowired // @Autowired
private IBasDeviceService basDeviceService; // private IBasDeviceService basDeviceService;
@Autowired // @Autowired
private StrategyFactory strategyFactory; // private StrategyFactory strategyFactory;
//
@Override // @Override
@RabbitListener(queues = "yield-queue") // @RabbitListener(queues = "yield-queue")
public void onMessage(Message message, Channel channel) throws Exception { // public void onMessage(Message message, Channel channel) throws Exception {
String deviceId = new String(message.getBody()); // String deviceId = new String(message.getBody());
try { // try {
FactoryDeviceVo vo = basDeviceService.selectFactoryDeviceVoByDeviceId(deviceId); // FactoryDeviceVo vo = basDeviceService.selectFactoryDeviceVoByDeviceId(deviceId);
//
//拼接策略服务名称 // //拼接策略服务名称
String strategyName = StringUtils.upperCase(vo.getIndustry() + vo.getDeviceType() + vo.getDeviceType()); // String strategyName = StringUtils.upperCase(vo.getIndustry() + vo.getDeviceType() + vo.getDeviceType());
log.info("开始消费者-产量统计-行业:"+vo.getIndustry()+",设备类型:"+vo.getDeviceType()); // log.info("开始消费者-产量统计-行业:"+vo.getIndustry()+",设备类型:"+vo.getDeviceType());
//执行策略,处理设备状态 // //执行策略,处理设备状态
strategyFactory.getByName(strategyName).doCheckProcessYield(vo); // strategyFactory.getByName(strategyName).doCheckProcessYield(vo);
//
} catch (Exception e) { // } catch (Exception e) {
log.error("MsgReceiver.onMessage##设备ID:"+ deviceId+"##异常信息:"+ e.getMessage()); // log.error("MsgReceiver.onMessage##设备ID:"+ deviceId+"##异常信息:"+ e.getMessage());
} finally { // } finally {
//ACK 手动签收消息,告诉对方消息签收成功,唯一标识ID // //ACK 手动签收消息,告诉对方消息签收成功,唯一标识ID
Long deliverTag = message.getMessageProperties().getDeliveryTag(); // Long deliverTag = message.getMessageProperties().getDeliveryTag();
channel.basicAck(deliverTag, false); // channel.basicAck(deliverTag, false);
} // }
} // }
} //}

View File

@ -0,0 +1,106 @@
# Tomcat
server:
port: 6010
# spring配置
spring:
redis:
host: 39.100.149.153
port: 6379
password: abc@123@...
# rabbitmq:
# host: 10.0.200.121
# port: 5672
# username: trkj
# password: 123@abc
# listener:
# simple:
# acknowledge-mode: manual
# concurrency: 5
# max-concurrency: 10
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
dynamic:
primary: master
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
# 主库数据源
master:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://39.100.149.153:5432/public?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: postgres
password: abc@123@...
# ods:
# driver-class-name: org.postgresql.Driver
# url: jdbc:postgresql://10.0.200.170:5432/ts_bigdata?currentSchema=ts_accurate_emission_reduction&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
# username: ts_bigdata
# password: ~jLvod5s#=X}{gUigrm+w&y7.b{!
# seata: true # 开启seata代理开启后默认每个数据源都代理如果某个不需要代理可单独关闭
# seata配置
seata:
# 默认关闭如需启用spring.datasource.dynami.seata需要同时开启
enabled: false
# Seata 应用编号,默认为 ${spring.application.name}
application-id: ${spring.application.name}
# Seata 事务组编号,用于 TC 集群名
tx-service-group: ${spring.application.name}-group
# 关闭自动代理
enable-auto-data-source-proxy: false
# 服务配置项
service:
# 虚拟组和分组的映射
vgroup-mapping:
ruoyi-system-group: default
config:
type: nacos
nacos:
serverAddr: 10.0.200.93:8848
group: SEATA_GROUP
namespace:
registry:
type: nacos
nacos:
application: seata-server
server-addr: 10.0.200.93:8848
namespace:
# mybatis配置
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
type-aliases-package: cn.cecep.talroad.**.mapper
global-config:
db-config:
logic-delete-field: delFlag
logic-delete-value: 2 # 逻辑已删除值
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
call-setters-on-nulls: true
#ys:
# appKey: 9fb9d26fa9a447c5802af954fb852077
# secret: ae77423d6c0d42698f9807b5726558a6
#amproblem:
# zf:
# url: http://106.119.195.117:7080/qyzhgk/jgzfDataTask/callbackResult
#url:
# threeSupervision: http://106.119.195.117:7080/qyzhgk

View File

@ -4,23 +4,23 @@ spring:
name: szhpt-fixed-task name: szhpt-fixed-task
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
cloud: # cloud:
nacos: # nacos:
discovery: # discovery:
# 服务注册地址 # # 服务注册地址
server-addr: 10.0.200.93:8848 # server-addr: 10.0.200.93:8848
namespace: szhpt-dev # namespace: szhpt-dev
# 本地开发不注册到注册中心 # # 本地开发不注册到注册中心
#register-enabled: false # #register-enabled: false
config: # config:
name: ${spring.application.name} # name: ${spring.application.name}
# 配置中心地址 # # 配置中心地址
server-addr: ${spring.cloud.nacos.discovery.server-addr} # server-addr: ${spring.cloud.nacos.discovery.server-addr}
# 配置文件格式 # # 配置文件格式
file-extension: yaml # file-extension: yaml
# 共享配置 # # 共享配置
shared-configs: # shared-configs:
- application-pub.${spring.cloud.nacos.config.file-extension} # - application-pub.${spring.cloud.nacos.config.file-extension}
- application-pub-db.${spring.cloud.nacos.config.file-extension} # - application-pub-db.${spring.cloud.nacos.config.file-extension}
- application-swagger-ui.${spring.cloud.nacos.config.file-extension} # - application-swagger-ui.${spring.cloud.nacos.config.file-extension}
namespace: ${spring.cloud.nacos.discovery.namespace} # namespace: ${spring.cloud.nacos.discovery.namespace}