add https 反馈AGV信息接口

This commit is contained in:
张江玮
2023-08-11 17:41:30 +08:00
parent ce5c100923
commit ed84907a44
15 changed files with 1020 additions and 23 deletions

View File

@@ -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"),

View File

@@ -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;
}
}
//到达位置点

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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")

View File

@@ -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;
// }
//}

View File

@@ -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);
}
}

View File

@@ -73,4 +73,6 @@ public interface DictService {
* @throws IOException /
*/
void download(List<DictDto> queryAll, HttpServletResponse response) throws IOException;
List<Dict> queryAll();
}

View File

@@ -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();
}
}

Binary file not shown.

View File

@@ -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

Binary file not shown.