add https 反馈AGV信息接口
This commit is contained in:
@@ -9,9 +9,9 @@ import com.alibaba.fastjson.JSONObject;
|
||||
* https://blog.csdn.net/moneyshi/article/details/82978073
|
||||
*/
|
||||
public enum DriverTypeEnum {
|
||||
ORDINARY_SITE(1, "standard_ordinary_site", "普通站点", "conveyor"),
|
||||
ORDINARY_SITE(1, "standard_ordinary_site", "普通站点", "station"),
|
||||
|
||||
INSPECT_SITE(2, "standard_inspect_site", "检测站点", "conveyor"),
|
||||
INSPECT_SITE(2, "standard_inspect_site", "检测站点", "station"),
|
||||
|
||||
STORAGE(3, "standard_storage", "标准版-货架", "storage"),
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
String error_message = "";
|
||||
String device_status = "UNKNOWN";
|
||||
String message = "";
|
||||
Instruction inst;
|
||||
|
||||
public synchronized void processSocket(int[] arr) {
|
||||
device_code = this.getDeviceCode();
|
||||
@@ -119,10 +120,16 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//分配 车id
|
||||
//(不需要WCS反馈)
|
||||
if (phase == 0x02) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
log.info("未找到编号{}对应的指令", ikey);
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "未找到关联编号对应的指令" + ikey);
|
||||
return;
|
||||
}
|
||||
inst.setCarno(String.valueOf(carno));
|
||||
instructionService.update(inst);
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + "反馈:" + data);
|
||||
this.device_status = "EXECUTING";
|
||||
this.inst = inst;
|
||||
|
||||
//到达取货点
|
||||
//(需要WCS反馈)
|
||||
@@ -825,6 +832,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
|
||||
if (flag) {
|
||||
this.device_status = "IDLE";
|
||||
this.inst = null;
|
||||
}
|
||||
}
|
||||
//到达位置点
|
||||
|
||||
@@ -6,11 +6,9 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||
|
||||
@@ -266,18 +266,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
String methods_url = addressDto.getMethods_url();
|
||||
String url = wmsUrl + methods_url;
|
||||
HttpResponse result = null;
|
||||
log.info("feedbackAgv----请求参数{}", from);
|
||||
|
||||
try {
|
||||
// log.info("feedAgvTaskStatus - 请求参数 {}", param);
|
||||
result = HttpRequest.post(url)
|
||||
.body(String.valueOf(from))
|
||||
.execute();
|
||||
System.out.println(result);
|
||||
log.info("feedbackAgv----返回参数{}", result);
|
||||
// log.info("feedAgvTaskStatus - 返回参数 {}", response.body());
|
||||
} catch (Exception e) {
|
||||
String msg = e.getMessage();
|
||||
//网络不通
|
||||
//System.out.println(msg);
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -537,16 +533,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
public HttpResponse shipDeviceUpdate(JSONObject param) {
|
||||
try {
|
||||
MDC.put(log_file_type, log_type);
|
||||
// log.info("shipDeviceUpdate-----输入参数{}", param);
|
||||
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) {
|
||||
String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue();
|
||||
AddressDto addressDto = addressService.findByCode("shipDeviceUpdate");
|
||||
String methods_url = addressDto.getMethods_url();
|
||||
String url = wmsUrl + methods_url;
|
||||
// log.info("feedAgvTaskStatus - 请求参数 {}", param);
|
||||
return HttpRequest
|
||||
.post(url)
|
||||
.body(param.toString())
|
||||
.execute();
|
||||
// log.info("feedAgvTaskStatus - 返回参数 {}", response.body());
|
||||
}
|
||||
} catch (Throwable ignored) {
|
||||
|
||||
@@ -571,7 +568,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
.post(url)
|
||||
.body(from.toString())
|
||||
.execute();
|
||||
// log.info("feedAgvTaskStatus - 返回参数 {}", response.body());
|
||||
// log.info("feedAgvTaskStatus - 返回参数 {}", response.body());
|
||||
return JSONObject.parseObject(response.body());
|
||||
}
|
||||
} catch (Throwable ignored) {
|
||||
@@ -610,5 +607,4 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
return resp;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package org.nl.acs.test.rest;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -10,10 +11,7 @@ import org.nl.acs.test.service.TestService;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
@@ -27,17 +25,18 @@ import java.util.Map;
|
||||
@Api(tags = "任务管理")
|
||||
@RequestMapping("/api/test")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class TestController {
|
||||
|
||||
private final TestService testService;
|
||||
|
||||
@Log("test1")
|
||||
@ApiOperation("test1")
|
||||
@PostMapping("/test1")
|
||||
@GetMapping("/test1")
|
||||
//@PreAuthorize("@el.check('task:add')")
|
||||
public ResponseEntity<Object> test1() throws IOException {
|
||||
testService.test1();
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
return new ResponseEntity<>("success", HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("test2")
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
//package org.nl.config;
|
||||
//
|
||||
//import org.apache.catalina.Context;
|
||||
//import org.apache.catalina.connector.Connector;
|
||||
//import org.apache.tomcat.util.descriptor.web.SecurityCollection;
|
||||
//import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
|
||||
//import org.springframework.beans.factory.annotation.Value;
|
||||
//import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.context.annotation.Configuration;
|
||||
//
|
||||
//@Configuration
|
||||
//public class TomcatHttpConfig {
|
||||
//
|
||||
// @Value("${server.http-port}")
|
||||
// Integer httpPort;
|
||||
//
|
||||
// @Value("${server.port}")
|
||||
// Integer httpsPort;
|
||||
//
|
||||
// /**
|
||||
// * 配置内置的servlet容器工厂为tomcat.
|
||||
// */
|
||||
// @Bean
|
||||
// public TomcatServletWebServerFactory servletContainer() {
|
||||
// TomcatServletWebServerFactory tomcatServletWebServerFactory = new TomcatServletWebServerFactory() {
|
||||
// @Override
|
||||
// protected void postProcessContext(Context context) {
|
||||
// SecurityConstraint constraint = new SecurityConstraint();
|
||||
// constraint.setUserConstraint("CONFIDENTIAL");
|
||||
// SecurityCollection collection = new SecurityCollection();
|
||||
// collection.addPattern("/*");
|
||||
// constraint.addCollection(collection);
|
||||
// context.addConstraint(constraint);
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// tomcatServletWebServerFactory.addAdditionalTomcatConnectors(initiateHttpConnector());
|
||||
// tomcatServletWebServerFactory.addConnectorCustomizers(connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
|
||||
// return tomcatServletWebServerFactory;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 配置一个http连接信息.
|
||||
// */
|
||||
// private Connector initiateHttpConnector() {
|
||||
// Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
|
||||
// connector.setScheme("http");
|
||||
// connector.setPort(httpPort);
|
||||
// connector.setSecure(false);
|
||||
// connector.setRedirectPort(httpsPort);
|
||||
// return connector;
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,56 @@
|
||||
package org.nl.modules.quartz.task;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device_driver.basedriver.agv.ndcone.AgvNdcOneDeviceDriver;
|
||||
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.opc.DeviceType;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 百济神州
|
||||
* 自动反馈 AGV 信息
|
||||
*
|
||||
* @author zhangjiangwei
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
@Component("autoFeedbackAGVInfo")
|
||||
public class AutoFeedbackAGVInfo {
|
||||
|
||||
private final DeviceAppService deviceAppService;
|
||||
|
||||
private final AcsToWmsServiceImpl acsToWmsService;
|
||||
|
||||
/**
|
||||
* 自动收集 AGV 信息请求 WMS
|
||||
*/
|
||||
public void run() {
|
||||
List<Device> agvList = deviceAppService.findDevice(DeviceType.agv);
|
||||
JSONArray param = new JSONArray();
|
||||
|
||||
agvList.forEach(d -> {
|
||||
if (d.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) {
|
||||
AgvNdcOneDeviceDriver driver = (AgvNdcOneDeviceDriver) d.getDeviceDriver();
|
||||
JSONObject agvInfo = new JSONObject();
|
||||
agvInfo.put("device_code", "AGV" + driver.getDevice_code());
|
||||
agvInfo.put("device_status", driver.getDevice_status());
|
||||
agvInfo.put("energyLevel", driver.getElectric_qty());
|
||||
agvInfo.put("transportOrder", ObjectUtil.isNotEmpty(driver.getInst()) ? driver.getInst().getTask_code() : null);
|
||||
agvInfo.put("positionX", driver.getX());
|
||||
agvInfo.put("positionY", driver.getY());
|
||||
agvInfo.put("positionAngle", driver.getAngle());
|
||||
param.add(agvInfo);
|
||||
}
|
||||
});
|
||||
|
||||
acsToWmsService.feedbackAgv(param);
|
||||
}
|
||||
}
|
||||
@@ -73,4 +73,6 @@ public interface DictService {
|
||||
* @throws IOException /
|
||||
*/
|
||||
void download(List<DictDto> queryAll, HttpServletResponse response) throws IOException;
|
||||
|
||||
List<Dict> queryAll();
|
||||
}
|
||||
@@ -119,4 +119,9 @@ public class DictServiceImpl implements DictService {
|
||||
public void delCaches(Dict dict){
|
||||
redisUtils.del("dict::name:" + dict.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Dict> queryAll() {
|
||||
return dictRepository.findAll();
|
||||
}
|
||||
}
|
||||
|
||||
BIN
acs/nladmin-system/src/main/resources/client.p12
Normal file
BIN
acs/nladmin-system/src/main/resources/client.p12
Normal file
Binary file not shown.
@@ -1,10 +1,21 @@
|
||||
server:
|
||||
port: 8010
|
||||
http-port: 8011
|
||||
tomcat:
|
||||
accept-count: 1000
|
||||
max-connections: 10000
|
||||
max-threads: 800
|
||||
min-spare-threads: 100
|
||||
ssl:
|
||||
key-store: classpath:server.p12
|
||||
key-store-password: 123456
|
||||
key-store-type: PKCS12
|
||||
key-alias: server
|
||||
trust-store: classpath:server.p12
|
||||
trust-store-password: 123456
|
||||
trust-store-type: JKS
|
||||
trust-store-provider: SUN
|
||||
client-auth: need
|
||||
#配置数据源
|
||||
spring:
|
||||
datasource:
|
||||
@@ -13,11 +24,11 @@ spring:
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:lzhl_one_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wzgj_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:bjsz_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
|
||||
username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:P@ssw0rd}
|
||||
# password: ${DB_PWD:Root.123456}
|
||||
password: ${DB_PWD:password}
|
||||
password: ${DB_PWD:123456}
|
||||
|
||||
# 初始连接数
|
||||
initial-size: 5
|
||||
|
||||
BIN
acs/nladmin-system/src/main/resources/server.p12
Normal file
BIN
acs/nladmin-system/src/main/resources/server.p12
Normal file
Binary file not shown.
Reference in New Issue
Block a user