Browse Source

rev:代码优化

master
涂强 1 month ago
parent
commit
7de3402ca6
  1. 47
      hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java
  2. 19
      hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java
  3. 3
      hd/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java
  4. BIN
      hd/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls
  5. 4
      hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/LogServerImpl.java
  6. 5
      hd/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java
  7. 6
      hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
  8. 8
      hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryXZAgvTaskStatus.java
  9. 2
      hd/nladmin-system/src/main/resources/config/application-dev.yml
  10. 32
      hd/nladmin-system/src/main/resources/log/AgvWaitUtil.xml
  11. 4
      qd/public/config.js
  12. 2
      qd/vue.config.js

47
hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java

@ -12,6 +12,7 @@ import org.nl.acs.log.service.LogServer;
import org.nl.exception.BadRequestException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
/**
@ -59,7 +60,30 @@ public class AgvWaitUtil {
//取货完成等待
public JSONObject waitOutGet(String startDeviceCode, Instruction inst) {
log.info("仙工AGV取货完成后请求离开,设备号 - {}", startDeviceCode);
if (startDeviceCode.length() == 4) {
JSONObject requestWMSParam = new JSONObject();
requestWMSParam.put("device_code", startDeviceCode);
requestWMSParam.put("device_status", "close");
JSONObject wmsResult = acsToWmsService.gccControlDoorSwitch(requestWMSParam);
if (HttpStatus.OK.value() == wmsResult.optInt("status")) {
JSONObject responseBody = acsToWmsService.gccQueryDoorStatus(startDeviceCode);
log.info("当前设备" + startDeviceCode + "门的状态:" + responseBody.get("device_status") + ",门的状态应为关闭状态!");
if (ObjectUtil.isNotEmpty(responseBody) && "close".equals(responseBody.get("device_status"))) {
inst.setExecute_status("2");
instructionService.update(inst);
JSONObject map = new JSONObject();
map.put("status", 200);
map.put("message", "允许离开!");
log.info("允许仙工AGV取货完成后请求离开,设备号 - {}", startDeviceCode);
return map;
} else {
throw new BadRequestException("请求失败!");
}
} else {
throw new BadRequestException("请求失败!");
}
} else {
inst.setExecute_status("2");
instructionService.update(inst);
@ -69,6 +93,7 @@ public class AgvWaitUtil {
log.info("允许仙工AGV取货完成后请求离开,设备号 - {}", startDeviceCode);
return map;
}
}
//放货前等待
public JSONObject waitInPut(String endDeviceCode, Instruction inst) {
@ -99,10 +124,32 @@ public class AgvWaitUtil {
public JSONObject waitOutPut(String endDeviceCode, Instruction inst) {
log.info("仙工AGV放货完成后请求离开,设备号 - {}", endDeviceCode);
if (endDeviceCode.length() == 4) {
JSONObject requestWMSParam = new JSONObject();
requestWMSParam.put("device_code", endDeviceCode);
requestWMSParam.put("device_status", "close");
JSONObject wmsResult = acsToWmsService.gccControlDoorSwitch(requestWMSParam);
if (HttpStatus.OK.value() == wmsResult.optInt("status")) {
JSONObject responseBody = acsToWmsService.gccQueryDoorStatus(endDeviceCode);
log.info("当前设备" + endDeviceCode + "门的状态:" + responseBody.get("device_status") + ",门的状态应为关闭状态!");
if (ObjectUtil.isNotEmpty(responseBody) && "close".equals(responseBody.get("device_status"))) {
JSONObject map = new JSONObject();
map.put("status", 200);
map.put("message", "允许离开!");
log.info("允许仙工AGV放货完成后请求离开,设备号 - {}", endDeviceCode);
return map;
} else {
throw new BadRequestException("请求失败!");
}
} else {
throw new BadRequestException("请求失败!");
}
} else {
JSONObject map = new JSONObject();
map.put("status", 200);
map.put("message", "允许离开!");
log.info("允许仙工AGV放货完成后请求离开,设备号 - {}", endDeviceCode);
return map;
}
}
}

19
hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java

@ -54,14 +54,9 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Slf4j
@Service
@ -287,7 +282,6 @@ public class AgvServiceImpl implements AgvService {
}
private AcsPointAngleDto getAcsPointAngleDto(Instruction dto) {
List<AcsPointAngleDto> list = acsPointAngleService.queryAll(new HashMap());
AcsPointAngleDto acsPointAngleDto = new AcsPointAngleDto();
@ -704,7 +698,7 @@ public class AgvServiceImpl implements AgvService {
String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL);
String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT);
agvurl = agvurl + ":" + agvport + "/orders?page=1&size=9999";
agvurl = agvurl + ":" + agvport + "/orders?page=1&size=100&orderBy=createTime";
List<Instruction> insts = instructionService.findAllInstFromCache();
if (!insts.isEmpty()) {
JSONObject where = new JSONObject();
@ -2271,6 +2265,16 @@ public class AgvServiceImpl implements AgvService {
jo5.put("script_args", script_args5);
ja.add(jo5);
}
com.alibaba.fastjson.JSONObject jo6 = new com.alibaba.fastjson.JSONObject();
com.alibaba.fastjson.JSONObject operation_args = new com.alibaba.fastjson.JSONObject();
operation_args.put("robot_spin_angle", 0);
operation_args.put("spin_direction", 0);
jo6.put("blockId", IdUtil.simpleUUID());
jo6.put("location", inst.getNext_point_code() + "OUTPUT");
jo6.put("operation_args", operation_args);
ja.add(jo6);
return ja;
}
@ -2315,4 +2319,5 @@ public class AgvServiceImpl implements AgvService {
throw new BadRequestException("请求失败,IN OUT 站点错误!");
}
}

3
hd/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java

@ -49,6 +49,7 @@ import org.openscada.opc.lib.da.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -86,6 +87,8 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial
@Autowired
AcsConfigService acsConfigService;
@Lazy
@Autowired
TaskService taskService;

BIN
hd/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls

Binary file not shown.

4
hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/LogServerImpl.java

@ -137,6 +137,7 @@ public class LogServerImpl implements LogServer {
@Override
public void log(String task_code, String method, String type, String requestParam, String responseParam, String status_code, String requesturl, String vehicle_code) {
try {
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
@ -159,5 +160,8 @@ public class LogServerImpl implements LogServer {
WQLObject wo = WQLObject.getWQLObject("acs_log");
JSONObject json = JSONObject.fromObject(logDto);
wo.insert(json);
}catch (Exception ex){
ex.printStackTrace();
}
}
}

5
hd/nladmin-system/src/main/java/org/nl/acs/task/service/dto/TaskDto.java

@ -217,4 +217,9 @@ public class TaskDto implements Serializable {
* 外部系统标识
*/
private String ext_task_uuid;
/**
* agv车号
*/
private String carno;
}

6
hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java

@ -834,8 +834,6 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
@Transactional(rollbackFor = Exception.class)
public void update(TaskDto dto) {
TaskDto entity = this.findById(dto.getTask_id());
Instruction instruction = instructionService.findByTaskcode(dto.getTask_code());
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
String currentUsername = SecurityUtils.getCurrentUsername();
@ -859,13 +857,13 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
}
//判断是否为WMS下发的任务,如果是反馈任务状态给WMS
String hasWms = acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS);
if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")&&ObjectUtil.isNotEmpty(dto.getCarno())) {
TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
JSONObject feed_jo = new JSONObject();
feed_jo.put("task_code", dto.getTask_code());
feed_jo.put("ext_task_uuid", entity.getExt_task_uuid());
feed_jo.put("task_status", dto.getTask_status());
feed_jo.put("agv_code",instruction.getCarno());
feed_jo.put("agv_code",dto.getCarno());
JSONArray ja = new JSONArray();
ja.add(feed_jo);
String message = null;

8
hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryXZAgvTaskStatus.java

@ -57,8 +57,8 @@ public class QueryXZAgvTaskStatus {
String carno = one.getString("vehicle");
if (ObjectUtil.isEmpty(inst.getCarno())) {
inst.setCarno(carno);
instructionService.update(inst);
TaskDto taskDto = taskService.findByCode(inst.getTask_code());
taskDto.setCarno(carno);
taskService.update(taskDto);
}
}
@ -74,14 +74,20 @@ public class QueryXZAgvTaskStatus {
//执行中
if ("RUNNING".equals(state) || "CREATED".equals(state) || "TOBEDISPATCHED".equals(state) || "WAITING".equals(state)) {
log.info("queryXZAgvTaskStatus--当前inst_code:{},agv_status:{}", inst.getInstruction_code(), state);
if (inst != null) {
inst.setInstruction_status("1");
instructionService.update(inst);
}else {
log.info("queryXZAgvTaskStatus--指令为空");
}
} else if ("FINISHED".equals(state)) {
log.info("queryXZAgvTaskStatus--当前inst_code:{},agv_status:{}", inst.getInstruction_code(), state);
if (inst != null) {
inst.setInstruction_status("2");
instructionService.finish(inst);
}else {
log.info("queryXZAgvTaskStatus--指令为空");
}
} else if ("STOPPED".equals(state) || "FAILED".equals(state) || "Error".equals(state)) {
if (inst != null) {

2
hd/nladmin-system/src/main/resources/config/application-dev.yml

@ -11,7 +11,7 @@ spring:
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:gcc_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:gcc_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
username: ${DB_USER:root}
password: ${DB_PWD:root}
password: ${DB_PWD:123456}
# password: ${DB_PWD:Root.123456}
# 初始连接数
initial-size: 5

32
hd/nladmin-system/src/main/resources/log/AgvWaitUtil.xml

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<included>
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<property name="LOG_HOME" value="${logPath}"/>
<!-- 按照每天生成日志文件 -->
<appender name="FILE9" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/反馈仙工取放货状态/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<!--单个日志最大容量 至少10MB才能看得出来-->
<maxFileSize>200MB</maxFileSize>
<!--所有日志最多占多大容量-->
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
<appender-ref ref="FILE3"/>
</logger>-->
<!-- 打印sql -->
<logger name="org.nl.acs.agv.service.AgvWaitUtil" level="info" additivity="false">
<appender-ref ref="FILE9"/>
</logger>
</included>

4
qd/public/config.js

@ -1,9 +1,9 @@
window.g = {
dev: {
VUE_APP_BASE_API: '/'
VUE_APP_BASE_API: 'http://10.118.33.115:8010'
},
prod: {
VUE_APP_BASE_API: 'http://127.0.0.1:8010'
VUE_APP_BASE_API: 'http://10.118.33.115:8010'
}

2
qd/vue.config.js

@ -19,6 +19,8 @@ module.exports = {
lintOnSave: process.env.NODE_ENV === 'development',
productionSourceMap: false,
devServer: {
allowedHosts: ['all'],
disableHostCheck: true,
port: port,
open: true,
overlay: {

Loading…
Cancel
Save