diff --git a/pom.xml b/pom.xml index b72e203..2f0f802 100644 --- a/pom.xml +++ b/pom.xml @@ -34,16 +34,16 @@ org.jolokia jolokia-core - - io.springfox - springfox-swagger2 - ${swagger.version} - - - io.springfox - springfox-swagger-ui - ${swagger.version} - + + + + + + + + + + org.springframework.boot spring-boot-starter-aop diff --git a/user-service/pom.xml b/user-service/pom.xml index d652165..517dccf 100644 --- a/user-service/pom.xml +++ b/user-service/pom.xml @@ -129,11 +129,11 @@ 0.0.1-SNAPSHOT - - de.codecentric - spring-boot-admin-starter-client - 2.2.2 - + + + + + org.projectlombok diff --git a/user-service/src/main/java/com/mh/user/UserServiceApplication.java b/user-service/src/main/java/com/mh/user/UserServiceApplication.java index 8ec61f4..66415b0 100644 --- a/user-service/src/main/java/com/mh/user/UserServiceApplication.java +++ b/user-service/src/main/java/com/mh/user/UserServiceApplication.java @@ -1,9 +1,11 @@ package com.mh.user; import com.mh.user.constants.Constant; +import com.mh.user.entity.ProjectInfoEntity; import com.mh.user.job.CollectionLoopRunner; import com.mh.user.netty.EchoServer; import com.mh.user.service.DeviceCodeParamService; +import com.mh.user.service.ProjectInfoService; import com.mh.user.utils.GetReadOrder485; import lombok.extern.slf4j.Slf4j; import org.apache.log4j.Logger; @@ -15,6 +17,7 @@ import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.scheduling.annotation.EnableScheduling; import javax.annotation.PreDestroy; +import java.util.List; @SpringBootApplication(scanBasePackages = "com.mh.user") @@ -24,9 +27,6 @@ public class UserServiceApplication extends SpringBootServletInitializer { private static final Logger log = Logger.getLogger(UserServiceApplication.class); - @Autowired - DeviceCodeParamService deviceCodeParamService; - @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(UserServiceApplication.class); @@ -38,15 +38,6 @@ public class UserServiceApplication extends SpringBootServletInitializer { //System.out.println(Constant.projectId); //Constant.projectId=7; //System.out.println(Constant.projectId); - GetReadOrder485 getReadOrder485=new GetReadOrder485(); - getReadOrder485.createOrderParam("2"); //生成采集参数,1新珠江,2广合科技,3广大科技,6珠江国际,7保利山庄,8东莞迎宾馆 - try{ - new EchoServer(6001).start(); // 调用服务器的start方法,网关作为客户端,6006新珠江,6001广合科技,6077广大科技 -// new EchoServer2(6013).start(); // 6028(6006)珠江国际,5000保利山庄,6004东莞迎宾馆 -// log.info("测试日志路径========!"); - }catch (Exception e){ - System.out.println("端口已占用!"); - } } @PreDestroy diff --git a/user-service/src/main/java/com/mh/user/config/SwaggerConfig.java b/user-service/src/main/java/com/mh/user/config/SwaggerConfig.java index 4079b06..165b473 100644 --- a/user-service/src/main/java/com/mh/user/config/SwaggerConfig.java +++ b/user-service/src/main/java/com/mh/user/config/SwaggerConfig.java @@ -1,49 +1,49 @@ -package com.mh.user.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.ParameterBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.schema.ModelRef; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Parameter; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author ljf - * @title : - * @description : - * @updateTime 2020-03-13 - * @throws : - */ -@Configuration -@EnableSwagger2 -public class SwaggerConfig { - - @Bean - public Docket createRestApi(){ - // 添加请求参数,我们这里把token作为请求头部参数传入后端 - ParameterBuilder parameterBuilder = new ParameterBuilder(); - List parameters = new ArrayList(); - parameterBuilder.name("token").description("令牌") - .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); - parameters.add(parameterBuilder.build()); - return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() - .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()) - .build().globalOperationParameters(parameters); +//package com.mh.user.config; +// +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import springfox.documentation.builders.ApiInfoBuilder; +//import springfox.documentation.builders.ParameterBuilder; +//import springfox.documentation.builders.PathSelectors; +//import springfox.documentation.builders.RequestHandlerSelectors; +//import springfox.documentation.schema.ModelRef; +//import springfox.documentation.service.ApiInfo; +//import springfox.documentation.service.Parameter; +//import springfox.documentation.spi.DocumentationType; +//import springfox.documentation.spring.web.plugins.Docket; +//import springfox.documentation.swagger2.annotations.EnableSwagger2; +// +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * @author ljf +// * @title : +// * @description : +// * @updateTime 2020-03-13 +// * @throws : +// */ +//@Configuration +//@EnableSwagger2 +//public class SwaggerConfig { +// +// @Bean +// public Docket createRestApi(){ +// // 添加请求参数,我们这里把token作为请求头部参数传入后端 +// ParameterBuilder parameterBuilder = new ParameterBuilder(); +// List parameters = new ArrayList(); +// parameterBuilder.name("token").description("令牌") +// .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); +// parameters.add(parameterBuilder.build()); // return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() -// .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build(); - } - - private ApiInfo apiInfo(){ - return new ApiInfoBuilder().build(); - } - -} +// .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()) +// .build().globalOperationParameters(parameters); +//// return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() +//// .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build(); +// } +// +// private ApiInfo apiInfo(){ +// return new ApiInfoBuilder().build(); +// } +// +//} diff --git a/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java b/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java index 73e0b94..b75290f 100644 --- a/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java +++ b/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java @@ -1,14 +1,18 @@ package com.mh.user.job; import com.mh.user.entity.AddCronJobReq; +import com.mh.user.entity.ProjectInfoEntity; import com.mh.user.manage.QuartzManager; import com.mh.user.netty.EchoServer; import com.mh.user.serialport.SerialPortListener; import com.mh.user.serialport.SerialPortUtil; +import com.mh.user.service.ProjectInfoService; +import com.mh.user.utils.GetReadOrder485; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import lombok.extern.slf4j.Slf4j; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @@ -25,231 +29,241 @@ import java.util.Map; * @updateTime 2020-05-15 * @throws : */ -//@Component +@Component public class CollectionLoopRunner implements ApplicationRunner { private static final Logger log = Logger.getLogger(CollectionLoopRunner.class); - @Resource - QuartzManager quartzManager; - public static SerialPort serialPort = null; + @Autowired + ProjectInfoService projectInfoService; + @Override public void run(ApplicationArguments args) throws Exception { -// collectionMeterAndCloud(); - log.info("==================测试日志================"); - } - - public void test() throws Exception { - System.out.println("测试定时采集开关"); - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "2"); - params.put("name", "test1"); - //每 1 分钟 执行一次 - AddCronJobReq addCronJobReq = new AddCronJobReq(); - addCronJobReq.setDate("0/10 * * * * ?"); -// addCronJobReq.setDate("0/5 * * * * ?"); - addCronJobReq.setJobClass("JobTest1"); - addCronJobReq.setJobGroupName("JobTestGroup1"); - addCronJobReq.setJobName("Test1"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerTestGroup1"); - addCronJobReq.setTriggerName("triggerTest1"); - quartzManager.addCronJob(addCronJobReq); - } - - /** - * 定时采集电表和冷量计 - * - * @throws Exception - */ - public void collectionMeterAndCloud() throws Exception { - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "6"); - params.put("name", "cloud_meter"); - AddCronJobReq addCronJobReq = new AddCronJobReq(); - //每 15 分钟 执行一次 - addCronJobReq.setDate("0 0/15 * * * ?"); - //每 3 分钟 执行一次 -// addCronJobReq.setDate("35 0/2 * * * ?"); - //每 2 分钟 执行一次 -// addCronJobReq.setDate("25 0/2 * * * ?"); - //每 1 分钟 执行一次 -// addCronJobReq.setDate("0/10 * * * * ?"); -// addCronJobReq.setDate("0/5 * * * * ?"); - addCronJobReq.setJobClass("JobCloudAndMeter"); - addCronJobReq.setJobGroupName("JobCloudAndMeterGroup"); - addCronJobReq.setJobName("CloudAndMeter"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerCloudAndMeterGroup"); - addCronJobReq.setTriggerName("triggerCloudAndMeter"); - quartzManager.addCronJob(addCronJobReq); - } - - /** - * 定时采集冷量计 - * - * @throws Exception - */ - public void collectionCloud() throws Exception { - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "1"); - params.put("name", "cloud"); - AddCronJobReq addCronJobReq = new AddCronJobReq(); - //每 2 分钟 执行一次 - addCronJobReq.setDate("25 0/2 * * * ?"); -// addCronJobReq.setDate("0/5 * * * * ?"); - addCronJobReq.setJobClass("JobCloud"); - addCronJobReq.setJobGroupName("JobCloudGroup"); - addCronJobReq.setJobName("Cloud"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerCloudGroup"); - addCronJobReq.setTriggerName("triggerCloud"); - quartzManager.addCronJob(addCronJobReq); - } - /** - * 定时采集电表 - * - * @throws Exception - */ - public void collectionMeter() throws Exception { - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "2"); - params.put("name", "meter"); - AddCronJobReq addCronJobReq = new AddCronJobReq(); - //每 3 分钟 执行一次 - addCronJobReq.setDate("35 0/2 * * * ?"); -// addCronJobReq.setDate("0/20 * * * * ?"); - addCronJobReq.setJobClass("JobMeter"); - addCronJobReq.setJobGroupName("JobMeterGroup"); - addCronJobReq.setJobName("Meter"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerMeterGroup"); - addCronJobReq.setTriggerName("triggerMeter"); - quartzManager.addCronJob(addCronJobReq); - } - - /** - * 定时采集DDC设备 - * - * @throws Exception - */ - public void collectionDDC() throws Exception { - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "3"); - params.put("name", "ddc"); - AddCronJobReq addCronJobReq = new AddCronJobReq(); - //每 1分钟 执行一次 -// addCronJobReq.setDate("3,33 * * * * ?"); - addCronJobReq.setDate("45 0/1 * * * ?"); - addCronJobReq.setJobClass("JobDDC"); - addCronJobReq.setJobGroupName("JobDDCGroup"); - addCronJobReq.setJobName("DDC"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerDDCGroup"); - addCronJobReq.setTriggerName("triggerDDC"); - quartzManager.addCronJob(addCronJobReq); - } - - /** - * 定时采集冷水机组设备 - * - * @throws Exception - */ - public void collectionChillers() throws Exception { - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "4"); - params.put("name", "chillers"); - AddCronJobReq addCronJobReq = new AddCronJobReq(); - //每3分钟 执行一次 - addCronJobReq.setDate("55 0/2 * * * ? "); -// addCronJobReq.setDate("0/30 * * * * ?"); - addCronJobReq.setJobClass("JobChillers"); - addCronJobReq.setJobGroupName("JobChillersGroup"); - addCronJobReq.setJobName("Chillers"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerChillersGroup"); - addCronJobReq.setTriggerName("triggerChillers"); - quartzManager.addCronJob(addCronJobReq); - } - - /** - * 4分钟,采集第二个冷水机组数据 - */ - public void collectionChillers1() { - // 执行定义的定时采集程序 - Map params = new HashMap<>(); - params.put("id", "5"); - params.put("name", "chillers1"); - AddCronJobReq addCronJobReq = new AddCronJobReq(); - //每 4分钟 执行一次 - addCronJobReq.setDate("0 0/5 * * * ? "); -// addCronJobReq.setDate("0/30 * * * * ?"); - addCronJobReq.setJobClass("JobChillers1"); - addCronJobReq.setJobGroupName("JobChillersGroup1"); - addCronJobReq.setJobName("Chillers1"); - addCronJobReq.setParams(params); - addCronJobReq.setTriggerGroupName("triggerChillersGroup1"); - addCronJobReq.setTriggerName("triggerChillers1"); - try { - quartzManager.addCronJob(addCronJobReq); - } catch (Exception e) { - e.printStackTrace(); + GetReadOrder485 getReadOrder485=new GetReadOrder485(); + List projectInfoEntities = projectInfoService.queryProjectInfo("1"); + if (null != projectInfoEntities && !projectInfoEntities.isEmpty()) { + for (ProjectInfoEntity projectInfoEntity : projectInfoEntities) { + getReadOrder485.createOrderParam(projectInfoEntity.getId()); //生成采集参数,1新珠江(6000),2广合科技(6001),3广大科技(6002),6珠江国际,7保利山庄,8东莞迎宾馆 + } } - } - - public void testSerialPort(){ - - String portname = "COM7"; - //TestA(); - //查看所有串口 - SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil(); - ArrayList port = serialPortUtil.findPort(); - System.out.println("发现全部串口:" + port); - - System.out.println("打开指定portname:" + portname); - //打开该对应portname名字的串口 - CollectionLoopRunner.serialPort = serialPortUtil.openPort(portname, 2400, SerialPort.DATABITS_8, SerialPort.PARITY_EVEN, SerialPort.PARITY_ODD); - - byte[] HEX = SerialPortListener.hexStr2Byte("FEFEFE6810398710810000000103901F007C16"); - serialPortUtil.sendToPort(CollectionLoopRunner.serialPort, HEX); - - //给对应的serialPort添加监听器 - serialPortUtil.addListener(CollectionLoopRunner.serialPort, new SerialPortListener()); - - } - - public void plcAnalytic() { - String portName = "COM1"; - //查看所有串口 - SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil(); - //打开该对应portName名字的串口 - if (CollectionLoopRunner.serialPort == null) { - CollectionLoopRunner.serialPort = serialPortUtil.openPort(portName, 19200, SerialPort.DATABITS_8, SerialPort.PARITY_NONE, SerialPort.PARITY_ODD); - byte[] hex = SerialPortListener.hexStr2Byte("A55A230000000022".replaceAll("\\s*", "")); - serialPortUtil.sendToPort(CollectionLoopRunner.serialPort, hex); - - //给对应的serialPort添加监听器-->设置串口的Listener - SerialPortUtil.setListenerToSerialPort(CollectionLoopRunner.serialPort, serialPortEvent -> { - if (serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { - byte[] bytes = serialPortUtil.readFromPort(CollectionLoopRunner.serialPort); - - String needData = SerialPortListener.printHexString(bytes); - - //数据校验 校验数据长度、起始5A A5、数据sum位 -// if (PlcUtil.makeChecksum(needData)) { -// //数据解析方法 此处编写你的解析方法,根据获取到的数据编写适合自己的方法 -// } - } - }); + try{ + new EchoServer(6001).start(); // 调用服务器的start方法,网关作为客户端,6006新珠江,6001广合科技,6077广大科技 6028(6006)珠江国际,5000保利山庄,6004东莞迎宾馆 + }catch (Exception e){ + log.info("6001端口已占用!"); } } +// public void test() throws Exception { +// System.out.println("测试定时采集开关"); +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "2"); +// params.put("name", "test1"); +// //每 1 分钟 执行一次 +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// addCronJobReq.setDate("0/10 * * * * ?"); +//// addCronJobReq.setDate("0/5 * * * * ?"); +// addCronJobReq.setJobClass("JobTest1"); +// addCronJobReq.setJobGroupName("JobTestGroup1"); +// addCronJobReq.setJobName("Test1"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerTestGroup1"); +// addCronJobReq.setTriggerName("triggerTest1"); +// quartzManager.addCronJob(addCronJobReq); +// } +// +// /** +// * 定时采集电表和冷量计 +// * +// * @throws Exception +// */ +// public void collectionMeterAndCloud() throws Exception { +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "6"); +// params.put("name", "cloud_meter"); +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// //每 15 分钟 执行一次 +// addCronJobReq.setDate("0 0/15 * * * ?"); +// //每 3 分钟 执行一次 +//// addCronJobReq.setDate("35 0/2 * * * ?"); +// //每 2 分钟 执行一次 +//// addCronJobReq.setDate("25 0/2 * * * ?"); +// //每 1 分钟 执行一次 +//// addCronJobReq.setDate("0/10 * * * * ?"); +//// addCronJobReq.setDate("0/5 * * * * ?"); +// addCronJobReq.setJobClass("JobCloudAndMeter"); +// addCronJobReq.setJobGroupName("JobCloudAndMeterGroup"); +// addCronJobReq.setJobName("CloudAndMeter"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerCloudAndMeterGroup"); +// addCronJobReq.setTriggerName("triggerCloudAndMeter"); +// quartzManager.addCronJob(addCronJobReq); +// } +// +// /** +// * 定时采集冷量计 +// * +// * @throws Exception +// */ +// public void collectionCloud() throws Exception { +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "1"); +// params.put("name", "cloud"); +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// //每 2 分钟 执行一次 +// addCronJobReq.setDate("25 0/2 * * * ?"); +//// addCronJobReq.setDate("0/5 * * * * ?"); +// addCronJobReq.setJobClass("JobCloud"); +// addCronJobReq.setJobGroupName("JobCloudGroup"); +// addCronJobReq.setJobName("Cloud"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerCloudGroup"); +// addCronJobReq.setTriggerName("triggerCloud"); +// quartzManager.addCronJob(addCronJobReq); +// } +// /** +// * 定时采集电表 +// * +// * @throws Exception +// */ +// public void collectionMeter() throws Exception { +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "2"); +// params.put("name", "meter"); +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// //每 3 分钟 执行一次 +// addCronJobReq.setDate("35 0/2 * * * ?"); +//// addCronJobReq.setDate("0/20 * * * * ?"); +// addCronJobReq.setJobClass("JobMeter"); +// addCronJobReq.setJobGroupName("JobMeterGroup"); +// addCronJobReq.setJobName("Meter"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerMeterGroup"); +// addCronJobReq.setTriggerName("triggerMeter"); +// quartzManager.addCronJob(addCronJobReq); +// } +// +// /** +// * 定时采集DDC设备 +// * +// * @throws Exception +// */ +// public void collectionDDC() throws Exception { +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "3"); +// params.put("name", "ddc"); +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// //每 1分钟 执行一次 +//// addCronJobReq.setDate("3,33 * * * * ?"); +// addCronJobReq.setDate("45 0/1 * * * ?"); +// addCronJobReq.setJobClass("JobDDC"); +// addCronJobReq.setJobGroupName("JobDDCGroup"); +// addCronJobReq.setJobName("DDC"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerDDCGroup"); +// addCronJobReq.setTriggerName("triggerDDC"); +// quartzManager.addCronJob(addCronJobReq); +// } +// +// /** +// * 定时采集冷水机组设备 +// * +// * @throws Exception +// */ +// public void collectionChillers() throws Exception { +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "4"); +// params.put("name", "chillers"); +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// //每3分钟 执行一次 +// addCronJobReq.setDate("55 0/2 * * * ? "); +//// addCronJobReq.setDate("0/30 * * * * ?"); +// addCronJobReq.setJobClass("JobChillers"); +// addCronJobReq.setJobGroupName("JobChillersGroup"); +// addCronJobReq.setJobName("Chillers"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerChillersGroup"); +// addCronJobReq.setTriggerName("triggerChillers"); +// quartzManager.addCronJob(addCronJobReq); +// } +// +// /** +// * 4分钟,采集第二个冷水机组数据 +// */ +// public void collectionChillers1() { +// // 执行定义的定时采集程序 +// Map params = new HashMap<>(); +// params.put("id", "5"); +// params.put("name", "chillers1"); +// AddCronJobReq addCronJobReq = new AddCronJobReq(); +// //每 4分钟 执行一次 +// addCronJobReq.setDate("0 0/5 * * * ? "); +//// addCronJobReq.setDate("0/30 * * * * ?"); +// addCronJobReq.setJobClass("JobChillers1"); +// addCronJobReq.setJobGroupName("JobChillersGroup1"); +// addCronJobReq.setJobName("Chillers1"); +// addCronJobReq.setParams(params); +// addCronJobReq.setTriggerGroupName("triggerChillersGroup1"); +// addCronJobReq.setTriggerName("triggerChillers1"); +// try { +// quartzManager.addCronJob(addCronJobReq); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// public void testSerialPort(){ +// +// String portname = "COM7"; +// //TestA(); +// //查看所有串口 +// SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil(); +// ArrayList port = serialPortUtil.findPort(); +// System.out.println("发现全部串口:" + port); +// +// System.out.println("打开指定portname:" + portname); +// //打开该对应portname名字的串口 +// CollectionLoopRunner.serialPort = serialPortUtil.openPort(portname, 2400, SerialPort.DATABITS_8, SerialPort.PARITY_EVEN, SerialPort.PARITY_ODD); +// +// byte[] HEX = SerialPortListener.hexStr2Byte("FEFEFE6810398710810000000103901F007C16"); +// serialPortUtil.sendToPort(CollectionLoopRunner.serialPort, HEX); +// +// //给对应的serialPort添加监听器 +// serialPortUtil.addListener(CollectionLoopRunner.serialPort, new SerialPortListener()); +// +// } +// +// public void plcAnalytic() { +// String portName = "COM1"; +// //查看所有串口 +// SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil(); +// //打开该对应portName名字的串口 +// if (CollectionLoopRunner.serialPort == null) { +// CollectionLoopRunner.serialPort = serialPortUtil.openPort(portName, 19200, SerialPort.DATABITS_8, SerialPort.PARITY_NONE, SerialPort.PARITY_ODD); +// byte[] hex = SerialPortListener.hexStr2Byte("A55A230000000022".replaceAll("\\s*", "")); +// serialPortUtil.sendToPort(CollectionLoopRunner.serialPort, hex); +// +// //给对应的serialPort添加监听器-->设置串口的Listener +// SerialPortUtil.setListenerToSerialPort(CollectionLoopRunner.serialPort, serialPortEvent -> { +// if (serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { +// byte[] bytes = serialPortUtil.readFromPort(CollectionLoopRunner.serialPort); +// +// String needData = SerialPortListener.printHexString(bytes); +// +// //数据校验 校验数据长度、起始5A A5、数据sum位 +//// if (PlcUtil.makeChecksum(needData)) { +//// //数据解析方法 此处编写你的解析方法,根据获取到的数据编写适合自己的方法 +//// } +// } +// }); +// } +// } + } diff --git a/user-service/src/main/java/com/mh/user/netty/EchoServer.java b/user-service/src/main/java/com/mh/user/netty/EchoServer.java index 2acfac5..ef989f8 100644 --- a/user-service/src/main/java/com/mh/user/netty/EchoServer.java +++ b/user-service/src/main/java/com/mh/user/netty/EchoServer.java @@ -1,12 +1,10 @@ package com.mh.user.netty; -import com.mh.user.UserServiceApplication; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelOption; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; -import lombok.extern.slf4j.Slf4j; import org.apache.log4j.Logger; public class EchoServer { diff --git a/user-service/src/main/java/com/mh/user/netty/ServerChannelInitializer.java b/user-service/src/main/java/com/mh/user/netty/ServerChannelInitializer.java index da9e03e..a66af56 100644 --- a/user-service/src/main/java/com/mh/user/netty/ServerChannelInitializer.java +++ b/user-service/src/main/java/com/mh/user/netty/ServerChannelInitializer.java @@ -25,7 +25,7 @@ public class ServerChannelInitializer extends ChannelInitializer{ // pipeline.addLast( new StringEncoder()); // 设置读写超时操作 // 入参说明: 读超时时间、写超时时间、所有类型的超时时间、时间格式 - pipeline.addLast(new IdleStateHandler(10, 0, 0, TimeUnit.SECONDS)); + pipeline.addLast(new IdleStateHandler(40, 40, 40, TimeUnit.SECONDS)); //服务器的逻辑 pipeline.addLast("handler", new EchoServerHandler()); } diff --git a/user-service/src/main/resources/bootstrap.yml b/user-service/src/main/resources/bootstrap.yml index a703451..4530483 100644 --- a/user-service/src/main/resources/bootstrap.yml +++ b/user-service/src/main/resources/bootstrap.yml @@ -1,26 +1,17 @@ server: port: 8766 #8764新珠江,8766广合科技,8767广大科技,8768珠江国际,8769保利山庄,8770东莞迎宾馆 spring: + application: + name: jnd-user-service datasource: name: druidDataSource type: com.alibaba.druid.pool.DruidDataSource druid: #添加allowMultiQueries=true 在批量更新时才不会出错 -# url: jdbc:sqlserver://192.168.1.108:2012;DatabaseName=FSBG;allowMultiQueries=true -# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver -# username: sa -# password: mh@803 -## url: jdbc:sqlserver://120.25.220.177:32012;DatabaseName=M_CHWS;allowMultiQueries=true - url: jdbc:sqlserver://120.25.220.177:32012;DatabaseName=mh_esi;allowMultiQueries=true + url: jdbc:sqlserver://111.230.50.186:32012;DatabaseName=mh_jnd;allowMultiQueries=true driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - username: mh_sa - password: mhtech@803 - -# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CHWS;allowMultiQueries=true -# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver -# username: chws -# password: minghan123456@ - + username: jnd + password: Mh@803tech filters: stat,wall,log4j,config max-active: 100 initial-size: 1 @@ -37,19 +28,16 @@ spring: max-pool-prepared-statement-per-connection-size: 50 rabbitmq: - host: 159.75.86.232 + host: 127.0.0.1 port: 5672 - username: ningxr - password: ningxr123456 - virtual-host: /ning_host - template: - retry: - enabled: true - initial-interval: 10000ms - max-interval: 300000ms - multiplier: 2 - exchange: topic.exchange - publisher-confirms: true + username: guest + password: guest + virtual-host: /jnd + listener: + direct: + prefetch: 2 + simple: + prefetch: 2 # redis: # database: 0 @@ -99,14 +87,14 @@ log: #设置将SQL语句打印到控制台 level后面是 mybatis接口目录 logging: -# level: -# com: -# mh: -# user: -# mapper: DEBUG + level: + com: + mh: + user: + mapper: DEBUG file: max-size: 30 - + path: logs/${spring.application.name} ##软件最后更新日期20230116 diff --git a/user-service/src/main/resources/logback-spring.xml b/user-service/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..01ece4a --- /dev/null +++ b/user-service/src/main/resources/logback-spring.xml @@ -0,0 +1,83 @@ + + + logs + + + + + + + + + + + + + ${log.colorPattern} + + + + + + + ${log.path}/info/info.%d{yyyy-MM-dd}.log + ${log.maxHistory} + + + ${log.pattern} + + + INFO + ACCEPT + DENY + + + + + + ${log.path}/error/error.%d{yyyy-MM-dd}.log + + + ${log.pattern} + + + ERROR + ACCEPT + DENY + + + + + + + ${log.path}/info/info.mapper.%d{yyyy-MM-dd}.log + ${log.maxHistory} + + + ${log.pattern} + + + trace + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file