add:增加自动取放货功能。
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
package org.nl.agv.enu;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务类型
|
||||||
|
*
|
||||||
|
* @author gbx
|
||||||
|
* @since 2023-11-24
|
||||||
|
*/
|
||||||
|
public enum TaskTypeEnum {
|
||||||
|
|
||||||
|
//
|
||||||
|
COMMON("普通", "1"),
|
||||||
|
REST("返回休息点任务", "2"),
|
||||||
|
TAKE("取货", "3"),
|
||||||
|
PUT("放货", "4"),
|
||||||
|
RETURN("返程", "5"),
|
||||||
|
MULTIPLE("多机", "6");
|
||||||
|
private final String name;
|
||||||
|
private final String code;
|
||||||
|
|
||||||
|
TaskTypeEnum(String name, String code) {
|
||||||
|
this.name = name;
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TaskStatusEnum getType(String type) {
|
||||||
|
Optional<TaskStatusEnum> first = Arrays.stream(TaskStatusEnum.values()).filter(a -> a.getCode().equals(type)).findFirst();
|
||||||
|
return first.orElse(TaskStatusEnum.OTHER);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,10 @@ public interface HomeService {
|
|||||||
* @return Map<String, Object>
|
* @return Map<String, Object>
|
||||||
*/
|
*/
|
||||||
Map<String, Object> queryHomePage(Map<String, String> jsonObject);
|
Map<String, Object> queryHomePage(Map<String, String> jsonObject);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首页确定按钮
|
* 首页确定按钮
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ public interface TaskService {
|
|||||||
* @return Map<String, Object>
|
* @return Map<String, Object>
|
||||||
*/
|
*/
|
||||||
Map<String, Object> confirmPoint(Map<String, String> jsonObject);
|
Map<String, Object> confirmPoint(Map<String, String> jsonObject);
|
||||||
|
|
||||||
|
Map<String, Object> confirmPoint1(Map<String, String> jsonObject);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询任务列表
|
* 查询任务列表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -31,8 +31,11 @@ import edu.wpi.rail.jrosbridge.messages.Message;
|
|||||||
import edu.wpi.rail.jrosbridge.services.ServiceResponse;
|
import edu.wpi.rail.jrosbridge.services.ServiceResponse;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.ibatis.annotations.Case;
|
||||||
import org.nl.agv.enu.TaskSendBackStatusEnum;
|
import org.nl.agv.enu.TaskSendBackStatusEnum;
|
||||||
import org.nl.agv.enu.TaskStatusEnum;
|
import org.nl.agv.enu.TaskStatusEnum;
|
||||||
|
import org.nl.agv.enu.TaskTypeEnum;
|
||||||
import org.nl.agv.service.HomeService;
|
import org.nl.agv.service.HomeService;
|
||||||
import org.nl.agv.unit.RosUtil;
|
import org.nl.agv.unit.RosUtil;
|
||||||
import org.nl.agv.unit.sendToAgvUtil;
|
import org.nl.agv.unit.sendToAgvUtil;
|
||||||
@@ -40,8 +43,14 @@ import org.nl.common.utils.SecurityUtils;
|
|||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -68,6 +77,13 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
this.pool = pool;
|
this.pool = pool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TaskServiceServiceImpl taskServiceServiceImpl;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${spring.profiles.active}")
|
||||||
|
private String isProd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优化获取主页及状态栏信息
|
* 优化获取主页及状态栏信息
|
||||||
*/
|
*/
|
||||||
@@ -78,7 +94,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
String agvrun_status_name = "";
|
String agvrun_status_name = "";
|
||||||
String automatic_status_name = "";
|
String automatic_status_name = "";
|
||||||
String device_info = "";
|
String device_info = "";
|
||||||
String task_name = "";
|
String task_name = "无任务";
|
||||||
String task_info = "";
|
String task_info = "";
|
||||||
Integer electric = 0;
|
Integer electric = 0;
|
||||||
String speed = "";
|
String speed = "";
|
||||||
@@ -88,19 +104,19 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
JSONObject row = new JSONObject();
|
JSONObject row = new JSONObject();
|
||||||
try {
|
try {
|
||||||
CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
|
CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
|
||||||
|
//CompletableFuture.runAsync(this::handleTaskStatus, pool);
|
||||||
List<JSONObject> allTasks = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0").getResultJSONArray(0).toJavaList(JSONObject.class);
|
List<JSONObject> allTasks = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0").getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||||
// 执行中任务
|
// 执行中任务
|
||||||
Optional<JSONObject> taskingOptional = allTasks.stream().filter(task -> TaskStatusEnum.RUNNING.getCode().equals(task.getString("task_status")) && "1".equals(task.getString("task_type"))).findFirst();
|
Optional<JSONObject> taskingOptional = allTasks.stream().filter(task -> TaskStatusEnum.RUNNING.getCode().equals(task.getString("task_status")) && !TaskTypeEnum.REST.getCode().equals(task.getString("task_type"))).findFirst();
|
||||||
//所有未执行任务的第一个任务
|
//所有未执行任务的第一个任务
|
||||||
Optional<JSONObject> taskedOptional = allTasks.stream().filter(task -> TaskStatusEnum.CREATE.getCode().equals(task.getString("task_status")) && "1".equals(task.getString("task_type"))).min(Comparator.comparingInt(task -> task.getIntValue("seq_num")));
|
Optional<JSONObject> taskedOptional = allTasks.stream().filter(task -> TaskStatusEnum.CREATE.getCode().equals(task.getString("task_status")) && !TaskTypeEnum.REST.getCode().equals(task.getString("task_type"))).min(Comparator.comparingInt(task -> task.getIntValue("seq_num")));
|
||||||
//需要人工介入的任务
|
//需要人工介入的任务
|
||||||
Optional<JSONObject> unManFinishTaskOptional = allTasks.stream().filter(task -> TaskStatusEnum.END.getCode().equals(task.getString("task_status")) && "0".equals(task.getString("is_manualfinished")) && "1".equals(task.getString("task_type"))).findFirst();
|
Optional<JSONObject> unManFinishTaskOptional = allTasks.stream().filter(task -> TaskStatusEnum.END.getCode().equals(task.getString("task_status")) && "0".equals(task.getString("is_manualfinished")) && !TaskTypeEnum.REST.getCode().equals(task.getString("task_type"))).findFirst();
|
||||||
if (taskingOptional.isPresent()) {
|
if (taskingOptional.isPresent()) {
|
||||||
task_name = "任务号:" + taskingOptional.get().getString("task_code");
|
task_name = "任务号:" + taskingOptional.get().getString("task_code");
|
||||||
task_info = "目标点:" + taskingOptional.get().getString("next_point_code");
|
task_info = "目标点:" + taskingOptional.get().getString("next_point_code");
|
||||||
task_status = "执行中";
|
task_status = "执行中";
|
||||||
}
|
} else if (taskedOptional.isPresent()) {
|
||||||
else if(taskedOptional.isPresent()) {
|
|
||||||
task_name = "任务号:" + taskedOptional.get().getString("task_code");
|
task_name = "任务号:" + taskedOptional.get().getString("task_code");
|
||||||
task_info = "目标点:" + taskedOptional.get().getString("next_point_code");
|
task_info = "目标点:" + taskedOptional.get().getString("next_point_code");
|
||||||
task_status = "有任务未执行";
|
task_status = "有任务未执行";
|
||||||
@@ -132,7 +148,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
button_code = "";
|
button_code = "";
|
||||||
button_name = "";
|
button_name = "";
|
||||||
}
|
}
|
||||||
//查询今天待执行/今天所有任务
|
//查询今天待执行/今天所有任务,改为不限今天,所有待执行/所有任务
|
||||||
String task_num = determineTaskNum(allTasks);
|
String task_num = determineTaskNum(allTasks);
|
||||||
if (debugInfoJson.size() > 0) {
|
if (debugInfoJson.size() > 0) {
|
||||||
//agv 运行状态获取名称
|
//agv 运行状态获取名称
|
||||||
@@ -168,8 +184,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
returnjo.put("desc", "操作成功");
|
returnjo.put("desc", "操作成功");
|
||||||
returnjo.put("result", row);
|
returnjo.put("result", row);
|
||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch(Exception e) {
|
|
||||||
Log.error("通信失败:" + e.getMessage());
|
Log.error("通信失败:" + e.getMessage());
|
||||||
throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage());
|
throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -186,8 +201,8 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String determineTaskNum(List<JSONObject> allTasks) {
|
private String determineTaskNum(List<JSONObject> allTasks) {
|
||||||
long allTasksCount = allTasks.stream().filter(task -> task.getString("date").equals(DateUtil.today())).count();
|
long allTasksCount = allTasks.size();
|
||||||
long todayUnfinishedTasksCount = allTasks.stream().filter(task -> task.getString("date").equals(DateUtil.today()) && task.getString("task_status").equals("00")).count();
|
long todayUnfinishedTasksCount = allTasks.stream().filter(task -> task.getString("task_status").equals(TaskStatusEnum.CREATE.getCode())).count();
|
||||||
return "待执行" + todayUnfinishedTasksCount + "/" + allTasksCount;
|
return "待执行" + todayUnfinishedTasksCount + "/" + allTasksCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,8 +210,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
private String getAgvRunStatusName(String agvRunStatus) {
|
private String getAgvRunStatusName(String agvRunStatus) {
|
||||||
if (StrUtil.equals(agvRunStatus, "1")) {
|
if (StrUtil.equals(agvRunStatus, "1")) {
|
||||||
return "运行";
|
return "运行";
|
||||||
}
|
} else if (StrUtil.equals(agvRunStatus, "0")) {
|
||||||
else if(StrUtil.equals(agvRunStatus, "0")) {
|
|
||||||
return "待机";
|
return "待机";
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
@@ -206,11 +220,9 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
private String getAutomaticStatusName(String automaticStatus) {
|
private String getAutomaticStatusName(String automaticStatus) {
|
||||||
if (StrUtil.equals(automaticStatus, "3")) {
|
if (StrUtil.equals(automaticStatus, "3")) {
|
||||||
return "手动";
|
return "手动";
|
||||||
}
|
} else if (StrUtil.equals(automaticStatus, "4")) {
|
||||||
else if(StrUtil.equals(automaticStatus, "4")) {
|
|
||||||
return "自动";
|
return "自动";
|
||||||
}
|
} else if (StrUtil.equals(automaticStatus, "5")) {
|
||||||
else if(StrUtil.equals(automaticStatus, "5")) {
|
|
||||||
return "IO";
|
return "IO";
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
@@ -232,7 +244,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
try {
|
try {
|
||||||
//查询调试信息
|
//查询调试信息
|
||||||
CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
|
CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
|
||||||
JSONObject tasking = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and task_type='1'").uniqueResult(0);
|
JSONObject tasking = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and task_type!='2'").uniqueResult(0);
|
||||||
// 1 无任务 2 有任务未执行 3 执行中
|
// 1 无任务 2 有任务未执行 3 执行中
|
||||||
String task_status = "";
|
String task_status = "";
|
||||||
//1确认完成 2确认完成继续下个任务3继续搬运,4返回休息点
|
//1确认完成 2确认完成继续下个任务3继续搬运,4返回休息点
|
||||||
@@ -240,8 +252,8 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
if (tasking == null) {
|
if (tasking == null) {
|
||||||
task_status = "无任务";
|
task_status = "无任务";
|
||||||
}
|
}
|
||||||
//JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type='1'").uniqueResult(0);
|
//JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type!='2'").uniqueResult(0);
|
||||||
JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type='1' order by seq_num ").uniqueResult(0);
|
JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type!='2' order by seq_num ").uniqueResult(0);
|
||||||
if (tasked != null) {
|
if (tasked != null) {
|
||||||
task_status = "有任务未执行";
|
task_status = "有任务未执行";
|
||||||
}
|
}
|
||||||
@@ -255,7 +267,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
// task_name = "任务号:" + tasked.getString("task_code");
|
// task_name = "任务号:" + tasked.getString("task_code");
|
||||||
// task_info = "目标点:" + tasked.getString("next_point_code");
|
// task_info = "目标点:" + tasked.getString("next_point_code");
|
||||||
// }
|
// }
|
||||||
JSONObject unManFinishTask = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='02' and is_manualfinished='0'and task_type='1'").uniqueResult(0);
|
JSONObject unManFinishTask = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='02' and is_manualfinished='0'and task_type!='2'").uniqueResult(0);
|
||||||
//没有未执行任务,且需要人工完成
|
//没有未执行任务,且需要人工完成
|
||||||
if (unManFinishTask != null && tasked == null) {
|
if (unManFinishTask != null && tasked == null) {
|
||||||
button_code = "1";
|
button_code = "1";
|
||||||
@@ -290,9 +302,9 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
}
|
}
|
||||||
String task_num = "待执行0";
|
String task_num = "待执行0";
|
||||||
//分母 今天所有的任务,分子今天未完成的任务
|
//分母 今天所有的任务,分子今天未完成的任务
|
||||||
JSONArray alltaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type='1' and date ='" + date + "'").getResultJSONArray(0);
|
JSONArray alltaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type!='2' and date ='" + date + "'").getResultJSONArray(0);
|
||||||
if (alltaskja.size() > 0) {
|
if (alltaskja.size() > 0) {
|
||||||
JSONArray todaytaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type='1' and date ='" + date + "' and task_status='00'").getResultJSONArray(0);
|
JSONArray todaytaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type!='2' and date ='" + date + "' and task_status='00'").getResultJSONArray(0);
|
||||||
String alltask_num = String.valueOf(alltaskja.size());
|
String alltask_num = String.valueOf(alltaskja.size());
|
||||||
String todaytask_num = String.valueOf(todaytaskja.size());
|
String todaytask_num = String.valueOf(todaytaskja.size());
|
||||||
task_num = "待执行" + todaytask_num + "/" + alltask_num;
|
task_num = "待执行" + todaytask_num + "/" + alltask_num;
|
||||||
@@ -365,8 +377,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
returnjo.put("desc", "操作成功");
|
returnjo.put("desc", "操作成功");
|
||||||
returnjo.put("result", row);
|
returnjo.put("result", row);
|
||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch(Exception e) {
|
|
||||||
Log.error("通信失败:" + e.getMessage());
|
Log.error("通信失败:" + e.getMessage());
|
||||||
throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage());
|
throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -379,7 +390,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
JSONObject returnjo = new JSONObject();
|
JSONObject returnjo = new JSONObject();
|
||||||
//1确认完成
|
//1确认完成
|
||||||
if (StrUtil.equals(button_code, "1")) {
|
if (StrUtil.equals(button_code, "1")) {
|
||||||
JSONObject taskjo = taskTable.query("is_delete='0' and task_status='02' and task_type ='1' and is_manualfinished='0'").uniqueResult(0);
|
JSONObject taskjo = taskTable.query("is_delete='0' and task_status='02' and task_type!='2' and is_manualfinished='0'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(taskjo)) {
|
if (ObjectUtil.isEmpty(taskjo)) {
|
||||||
throw new BadRequestException("未找到任务");
|
throw new BadRequestException("未找到任务");
|
||||||
}
|
}
|
||||||
@@ -389,7 +400,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
}
|
}
|
||||||
// 2确认完成继续下个任务
|
// 2确认完成继续下个任务
|
||||||
if (StrUtil.equals(button_code, "2")) {
|
if (StrUtil.equals(button_code, "2")) {
|
||||||
JSONObject taskjo = taskTable.query("is_delete='0' and task_status='02' and task_type ='1' and is_manualfinished='0'").uniqueResult(0);
|
JSONObject taskjo = taskTable.query("is_delete='0' and task_status='02' and task_type!='2' and is_manualfinished='0'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(taskjo)) {
|
if (ObjectUtil.isEmpty(taskjo)) {
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", "未找到任务");
|
returnjo.put("desc", "未找到任务");
|
||||||
@@ -399,7 +410,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
taskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
taskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
||||||
taskTable.update(taskjo);
|
taskTable.update(taskjo);
|
||||||
//下发下一个任务
|
//下发下一个任务
|
||||||
JSONObject nexttaskjo = taskTable.query("is_delete='0' and task_status='00' and task_type ='1' ", "seq_num").uniqueResult(0);
|
JSONObject nexttaskjo = taskTable.query("is_delete='0' and task_status='00' and task_type!='2' ", "seq_num").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(nexttaskjo)) {
|
if (ObjectUtil.isEmpty(nexttaskjo)) {
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", "未找到任务");
|
returnjo.put("desc", "未找到任务");
|
||||||
@@ -415,8 +426,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
nexttaskjo.put("task_status_name", "执行中");
|
nexttaskjo.put("task_status_name", "执行中");
|
||||||
nexttaskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
nexttaskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
||||||
WQLObject.getWQLObject("ST_TASK_INFO").update(nexttaskjo);
|
WQLObject.getWQLObject("ST_TASK_INFO").update(nexttaskjo);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", TaskSendBackStatusEnum.getName(resultflag));
|
returnjo.put("desc", TaskSendBackStatusEnum.getName(resultflag));
|
||||||
return returnjo;
|
return returnjo;
|
||||||
@@ -424,7 +434,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
}
|
}
|
||||||
//3继续搬运
|
//3继续搬运
|
||||||
if (StrUtil.equals(button_code, "3")) {
|
if (StrUtil.equals(button_code, "3")) {
|
||||||
JSONObject nexttaskjo = taskTable.query("is_delete='0' and task_status='00' and task_type ='1' ", "seq_num").uniqueResult(0);
|
JSONObject nexttaskjo = taskTable.query("is_delete='0' and task_status='00' and task_type!='2' ", "seq_num").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(nexttaskjo)) {
|
if (ObjectUtil.isEmpty(nexttaskjo)) {
|
||||||
throw new BadRequestException("未找到任务");
|
throw new BadRequestException("未找到任务");
|
||||||
}
|
}
|
||||||
@@ -439,8 +449,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
nexttaskjo.put("task_status_name", "执行中");
|
nexttaskjo.put("task_status_name", "执行中");
|
||||||
nexttaskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
nexttaskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
||||||
WQLObject.getWQLObject("ST_TASK_INFO").update(nexttaskjo);
|
WQLObject.getWQLObject("ST_TASK_INFO").update(nexttaskjo);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", TaskSendBackStatusEnum.getName(resultflag));
|
returnjo.put("desc", TaskSendBackStatusEnum.getName(resultflag));
|
||||||
return returnjo;
|
return returnjo;
|
||||||
@@ -449,7 +458,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
//4返回休息点
|
//4返回休息点
|
||||||
if (StrUtil.equals(button_code, "4")) {
|
if (StrUtil.equals(button_code, "4")) {
|
||||||
TaskServiceServiceImpl taskServiceServiceImpl = new TaskServiceServiceImpl();
|
TaskServiceServiceImpl taskServiceServiceImpl = new TaskServiceServiceImpl();
|
||||||
//查询有没有正在执行的任务,假如有不能返回生成任务
|
//查询有没有正在执行的任务,假如有不能生成返回任务
|
||||||
JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' ").uniqueResult(0);
|
JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' ").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(doingtaskjo)) {
|
if (ObjectUtil.isNotEmpty(doingtaskjo)) {
|
||||||
returnjo.put("code", "0");
|
returnjo.put("code", "0");
|
||||||
@@ -481,8 +490,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
taskjo.put("task_status", "01");
|
taskjo.put("task_status", "01");
|
||||||
taskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
taskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
||||||
taskjo.put("task_status_name", "执行中");
|
taskjo.put("task_status_name", "执行中");
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", TaskSendBackStatusEnum.getName(resultflag));
|
returnjo.put("desc", TaskSendBackStatusEnum.getName(resultflag));
|
||||||
return returnjo;
|
return returnjo;
|
||||||
@@ -494,7 +502,6 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 已合并至queryHomePage
|
* 已合并至queryHomePage
|
||||||
*/
|
*/
|
||||||
@@ -535,13 +542,16 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void qeryDebuggerInfo() {
|
public void qeryDebuggerInfo() {
|
||||||
Map<String,String> urlInfo = RosUtil.getRosHostInfo();
|
|
||||||
//todo RosJons模拟数据用,正式需改回
|
//todo RosJons模拟数据用,正式需改回
|
||||||
//String result1 = HttpUtil.get("http://localhost:8011/api/pcsIfPurchaseorder/queryApt");
|
//String result1 = HttpUtil.get("http://localhost:8011/api/pcsIfPurchaseorder/queryApt");
|
||||||
//String result1 = "{\"Msg_DisplayState\":{\"AGV_ID\":255,\"Auto_In_Line_State\":0,\"Bosch_Car_Global_Theta\":-90.19221757272916,\"Bosch_Car_Global_rx\":-1.0619603784858553,\"Bosch_Car_Global_ry\":0.0020978358374357303,\"Bosch_Loc_State\":-2,\"Bosch_No_Rec_State\":0,\"Bosch_raw_age\":0.01389455795288086,\"Bosch_raw_epoch\":1,\"Bosch_raw_locState\":-2,\"Bosch_raw_qw\":0.9999999908132869,\"Bosch_raw_qx\":0.0,\"Bosch_raw_qy\":0.0,\"Bosch_raw_qz\":0.00013554861104682667,\"Bosch_raw_timestamp\":1695633231.1093392,\"Bosch_raw_uniqueId\":0,\"Bosch_raw_x\":0.0008994877773440588,\"Bosch_raw_x_odo\":0.0008994877773440588,\"Bosch_raw_y\":0.0006906610801896382,\"Bosch_raw_y_odo\":0.0006906610801896382,\"Bosch_raw_yaw\":0.00027109722292381746,\"Bosch_raw_yaw_odo\":0.0006906610801896382,\"Bosch_raw_z\":0.0,\"CAD_Or_TCS_Ctrl\":0,\"Car_Global_Theta\":-90.19221757272916,\"Car_Global_rx\":-1.0619603784858553,\"Car_Global_ry\":0.0020978358374357303,\"CurNodeID\":2,\"Cur_Stop_Info1_Authorized_Pass\":1,\"Cur_Stop_Info1_High_Precious_Enable\":1,\"Cur_Stop_Info1_Reached_Stop\":0,\"Cur_Stop_Info1_Set_Patht\":0.0,\"Cur_Stop_Info1_Set_Pathx\":0.0,\"Cur_Stop_Info1_Set_Pathy\":0.0,\"Cur_Stop_Info1_Single_Request_Sch\":0,\"Cur_Stop_Info1_Single_Stop_Sch\":0,\"Cur_Stop_Info1_StopEndNode\":0,\"Cur_Stop_Info1_StopStartNode\":0,\"Cur_Stop_Info1_Stop_Endt\":0.0,\"Cur_Stop_Info1_Stop_Endx\":0.0,\"Cur_Stop_Info1_Stop_Endy\":0.0,\"Cur_Stop_Info1_Stop_Num\":0,\"Cur_Stop_Info2_Authorized_Pass\":1,\"Cur_Stop_Info2_High_Precious_Enable\":1,\"Cur_Stop_Info2_Reached_Stop\":0,\"Cur_Stop_Info2_Set_Patht\":0.0,\"Cur_Stop_Info2_Set_Pathx\":0.0,\"Cur_Stop_Info2_Set_Pathy\":0.0,\"Cur_Stop_Info2_Single_Request_Sch\":0,\"Cur_Stop_Info2_Single_Stop_Sch\":0,\"Cur_Stop_Info2_StopEndNode\":0,\"Cur_Stop_Info2_StopStartNode\":0,\"Cur_Stop_Info2_Stop_Endt\":0.0,\"Cur_Stop_Info2_Stop_Endx\":0.0,\"Cur_Stop_Info2_Stop_Endy\":0.0,\"Cur_Stop_Info2_Stop_Num\":0,\"Curtis_Warning_Code_Pump\":0,\"Curtis_Warning_Code_Speed\":82,\"Curtis_Warning_Code_Steer\":0,\"EndNode\":0,\"Env_CustomName\":\"NobleLift\",\"Env_HMIUseJavaApp\":\"true\",\"Env_LearnEnable\":\"true\",\"Env_Lu_ROS_IP2\":\"\",\"Env_SoftwareVersion\":\"[Version]Magic4.1[Info]2023_09_21_20_41_37_Lu_ROS_magic4_waypointab_v31\",\"Env_VehicleType\":\"PS10LMT_HuaHai\",\"Get_Nav350_Curr_Layer\":0,\"Language\":1022739087,\"LastAltitudeExpectValue_mm\":0,\"LastGantryXExpectValue_mm\":0,\"LastGantryYExpectValue_mm\":0,\"Lateral_Deviation_m\":0.0,\"License_Info\":\"EC060800FFFBEBBF 6B7685747EBC EC060800FFFBEBBF 6B7685747EBC 2021/8/26 13:46:47 2021/8/26 13:46:47 1 UserClass5 Magic4_1\",\"LindeAgwSteerCenterPivotPlateAng\":0,\"LindeAgwSteerErrorFlag\":0,\"LindeAgwSteerModeSelectorState\":0,\"LindeAgwTracLiftErrorFlag\":0,\"LindeAgwTracLiftModeSelectorState\":0,\"LindeDriveErrCode1\":0,\"LindeDriveErrCode2\":0,\"LindeDriveErrCode3\":0,\"LindeDriveErrCode4\":0,\"LindeLiftErrCode1\":0,\"LindeLiftErrCode2\":0,\"LindeLiftErrCode3\":0,\"LindeLiftErrCode4\":0,\"LindeSteerErrCode1\":0,\"LindeSteerErrCode2\":0,\"LindeSteerErrCode3\":0,\"LindeSteerErrCode4\":0,\"Login_Info\":\"\",\"Min_Dist\":0.0,\"MissionCompleteAltitude_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryX_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryY_mm_RemoteOrHMI_FB\":0,\"Navi_Method\":3,\"ObstacleDetectState\":0,\"ObstacleTouchState\":0,\"Out_Of_Path_Times\":0,\"PFC_Sch\":0,\"PFC_State\":\"[PathFollow_Control_Handle_WLANJSON][PathFollow_Schedule_WLANJSON=0]\\n\",\"PLC_Warning_Code\":0,\"PWR_Percent\":100,\"PWR_Warn\":0,\"PathFollow_Enable\":1,\"PathFollow_Expect_AltitudeCtrlEnable\":0,\"PathFollow_Expect_GantryXCtrlEnable\":0,\"PathFollow_Expect_GantryYCtrlEnable\":0,\"Plate_Check_Err_Code\":0,\"ReachState\":0,\"RealAutoChargeState\":0,\"Ref_std_rt\":0.0,\"Ref_std_rx\":0.0,\"Ref_std_ry\":0.0,\"Remote_Or_HMI_Ctrl\":1,\"SVreal_angle\":0.0,\"Sche_JSON_Sche_Enable\":0,\"Speedm_Tmp\":0.0,\"StartNode\":0,\"Sub_Warning_Code0\":0,\"Sys_Mode\":4,\"Task_Sch\":0,\"Task_State\":\"\",\"Update_Sch\":0,\"Update_State\":\"\",\"VehicleCtrlExpThrottle\":0,\"VehicleCtrlRealAltitude_mm\":998,\"VehicleCtrlRealCustomStateByte0\":0,\"VehicleCtrlRealCustomStateByte1\":0,\"VehicleCtrlRealCustomStateByte2\":0,\"VehicleCtrlRealCustomStateByte3\":0,\"VehicleCtrlRealGantryX_mm\":0,\"VehicleCtrlRealGantryY_mm\":0,\"VehicleCtrlRealJoyEnable\":0,\"VehicleCtrlRealRCEnable\":0,\"VehicleCtrl_CAN_Err_Info\":0,\"Vertical_Deviation_deg\":0.0,\"Warning_Code\":754529,\"header\":{\"frame_id\":\"\",\"seq\":1904,\"stamp\":{\"nsec\":160948865,\"sec\":1695633231}}}}";
|
|
||||||
//JSONObject json = JSONObject.parseObject(result1);
|
|
||||||
try {
|
try {
|
||||||
String result = HttpUtil.get(urlInfo.get("javaUrl"));
|
Map<String, String> urlInfo = RosUtil.getRosHostInfo();
|
||||||
|
String result;
|
||||||
|
if ("prod".equals(isProd)) {
|
||||||
|
result = HttpUtil.get(urlInfo.get("javaUrl"));
|
||||||
|
} else {
|
||||||
|
result = "{\"Msg_DisplayState\":{\"AGV_ID\":255,\"Auto_In_Line_State\":0,\"Bosch_Car_Global_Theta\":-90.19221757272916,\"Bosch_Car_Global_rx\":-1.0619603784858553,\"Bosch_Car_Global_ry\":0.0020978358374357303,\"Bosch_Loc_State\":-2,\"Bosch_No_Rec_State\":0,\"Bosch_raw_age\":0.01389455795288086,\"Bosch_raw_epoch\":1,\"Bosch_raw_locState\":-2,\"Bosch_raw_qw\":0.9999999908132869,\"Bosch_raw_qx\":0.0,\"Bosch_raw_qy\":0.0,\"Bosch_raw_qz\":0.00013554861104682667,\"Bosch_raw_timestamp\":1695633231.1093392,\"Bosch_raw_uniqueId\":0,\"Bosch_raw_x\":0.0008994877773440588,\"Bosch_raw_x_odo\":0.0008994877773440588,\"Bosch_raw_y\":0.0006906610801896382,\"Bosch_raw_y_odo\":0.0006906610801896382,\"Bosch_raw_yaw\":0.00027109722292381746,\"Bosch_raw_yaw_odo\":0.0006906610801896382,\"Bosch_raw_z\":0.0,\"CAD_Or_TCS_Ctrl\":0,\"Car_Global_Theta\":-90.19221757272916,\"Car_Global_rx\":-1.0619603784858553,\"Car_Global_ry\":0.0020978358374357303,\"CurNodeID\":11,\"Cur_Stop_Info1_Authorized_Pass\":1,\"Cur_Stop_Info1_High_Precious_Enable\":1,\"Cur_Stop_Info1_Reached_Stop\":0,\"Cur_Stop_Info1_Set_Patht\":0.0,\"Cur_Stop_Info1_Set_Pathx\":0.0,\"Cur_Stop_Info1_Set_Pathy\":0.0,\"Cur_Stop_Info1_Single_Request_Sch\":0,\"Cur_Stop_Info1_Single_Stop_Sch\":0,\"Cur_Stop_Info1_StopEndNode\":0,\"Cur_Stop_Info1_StopStartNode\":0,\"Cur_Stop_Info1_Stop_Endt\":0.0,\"Cur_Stop_Info1_Stop_Endx\":0.0,\"Cur_Stop_Info1_Stop_Endy\":0.0,\"Cur_Stop_Info1_Stop_Num\":0,\"Cur_Stop_Info2_Authorized_Pass\":1,\"Cur_Stop_Info2_High_Precious_Enable\":1,\"Cur_Stop_Info2_Reached_Stop\":0,\"Cur_Stop_Info2_Set_Patht\":0.0,\"Cur_Stop_Info2_Set_Pathx\":0.0,\"Cur_Stop_Info2_Set_Pathy\":0.0,\"Cur_Stop_Info2_Single_Request_Sch\":0,\"Cur_Stop_Info2_Single_Stop_Sch\":0,\"Cur_Stop_Info2_StopEndNode\":0,\"Cur_Stop_Info2_StopStartNode\":0,\"Cur_Stop_Info2_Stop_Endt\":0.0,\"Cur_Stop_Info2_Stop_Endx\":0.0,\"Cur_Stop_Info2_Stop_Endy\":0.0,\"Cur_Stop_Info2_Stop_Num\":0,\"Curtis_Warning_Code_Pump\":0,\"Curtis_Warning_Code_Speed\":82,\"Curtis_Warning_Code_Steer\":0,\"EndNode\":0,\"Env_CustomName\":\"NobleLift\",\"Env_HMIUseJavaApp\":\"true\",\"Env_LearnEnable\":\"true\",\"Env_Lu_ROS_IP2\":\"\",\"Env_SoftwareVersion\":\"[Version]Magic4.1[Info]2023_09_21_20_41_37_Lu_ROS_magic4_waypointab_v31\",\"Env_VehicleType\":\"PS10LMT_HuaHai\",\"Get_Nav350_Curr_Layer\":0,\"Language\":1022739087,\"LastAltitudeExpectValue_mm\":0,\"LastGantryXExpectValue_mm\":0,\"LastGantryYExpectValue_mm\":0,\"Lateral_Deviation_m\":0.0,\"License_Info\":\"EC060800FFFBEBBF 6B7685747EBC EC060800FFFBEBBF 6B7685747EBC 2021/8/26 13:46:47 2021/8/26 13:46:47 1 UserClass5 Magic4_1\",\"LindeAgwSteerCenterPivotPlateAng\":0,\"LindeAgwSteerErrorFlag\":0,\"LindeAgwSteerModeSelectorState\":0,\"LindeAgwTracLiftErrorFlag\":0,\"LindeAgwTracLiftModeSelectorState\":0,\"LindeDriveErrCode1\":0,\"LindeDriveErrCode2\":0,\"LindeDriveErrCode3\":0,\"LindeDriveErrCode4\":0,\"LindeLiftErrCode1\":0,\"LindeLiftErrCode2\":0,\"LindeLiftErrCode3\":0,\"LindeLiftErrCode4\":0,\"LindeSteerErrCode1\":0,\"LindeSteerErrCode2\":0,\"LindeSteerErrCode3\":0,\"LindeSteerErrCode4\":0,\"Login_Info\":\"\",\"Min_Dist\":0.0,\"MissionCompleteAltitude_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryX_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryY_mm_RemoteOrHMI_FB\":0,\"Navi_Method\":3,\"ObstacleDetectState\":0,\"ObstacleTouchState\":0,\"Out_Of_Path_Times\":0,\"PFC_Sch\":0,\"PFC_State\":\"[PathFollow_Control_Handle_WLANJSON][PathFollow_Schedule_WLANJSON=0]\\n\",\"PLC_Warning_Code\":0,\"PWR_Percent\":100,\"PWR_Warn\":0,\"PathFollow_Enable\":0,\"PathFollow_Expect_AltitudeCtrlEnable\":0,\"PathFollow_Expect_GantryXCtrlEnable\":0,\"PathFollow_Expect_GantryYCtrlEnable\":0,\"Plate_Check_Err_Code\":0,\"ReachState\":0,\"RealAutoChargeState\":0,\"Ref_std_rt\":0.0,\"Ref_std_rx\":0.0,\"Ref_std_ry\":0.0,\"Remote_Or_HMI_Ctrl\":1,\"SVreal_angle\":0.0,\"Sche_JSON_Sche_Enable\":0,\"Speedm_Tmp\":0.0,\"StartNode\":0,\"Sub_Warning_Code0\":0,\"Sys_Mode\":4,\"Task_Sch\":0,\"Task_State\":\"\",\"Update_Sch\":0,\"Update_State\":\"\",\"VehicleCtrlExpThrottle\":0,\"VehicleCtrlRealAltitude_mm\":998,\"VehicleCtrlRealCustomStateByte0\":0,\"VehicleCtrlRealCustomStateByte1\":0,\"VehicleCtrlRealCustomStateByte2\":0,\"VehicleCtrlRealCustomStateByte3\":0,\"VehicleCtrlRealGantryX_mm\":0,\"VehicleCtrlRealGantryY_mm\":0,\"VehicleCtrlRealJoyEnable\":0,\"VehicleCtrlRealRCEnable\":0,\"VehicleCtrl_CAN_Err_Info\":0,\"Vertical_Deviation_deg\":0.0,\"Warning_Code\":754529,\"header\":{\"frame_id\":\"\",\"seq\":1904,\"stamp\":{\"nsec\":160948865,\"sec\":1695633231}}}}";
|
||||||
|
}
|
||||||
JSONObject json = JSONObject.parseObject(result);
|
JSONObject json = JSONObject.parseObject(result);
|
||||||
JSONObject jo = JSONObject.parseObject(json.getString("Msg_DisplayState"));
|
JSONObject jo = JSONObject.parseObject(json.getString("Msg_DisplayState"));
|
||||||
debugInfoJson.put("Msg_Timestamp", jo.getJSONObject("header").getJSONObject("stamp").getString("sec"));
|
debugInfoJson.put("Msg_Timestamp", jo.getJSONObject("header").getJSONObject("stamp").getString("sec"));
|
||||||
@@ -582,6 +592,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
debugInfoJson.put("VehicleCtrlRealCustomStateByte1", jo.getString("VehicleCtrlRealCustomStateByte1"));
|
debugInfoJson.put("VehicleCtrlRealCustomStateByte1", jo.getString("VehicleCtrlRealCustomStateByte1"));
|
||||||
debugInfoJson.put("VehicleCtrlRealCustomStateByte2", jo.getString("VehicleCtrlRealCustomStateByte2"));
|
debugInfoJson.put("VehicleCtrlRealCustomStateByte2", jo.getString("VehicleCtrlRealCustomStateByte2"));
|
||||||
debugInfoJson.put("VehicleCtrlRealCustomStateByte3", jo.getString("VehicleCtrlRealCustomStateByte3"));
|
debugInfoJson.put("VehicleCtrlRealCustomStateByte3", jo.getString("VehicleCtrlRealCustomStateByte3"));
|
||||||
|
debugInfoJson.put("MissionCompleteAltitude_mm_RemoteOrHMI_FB", jo.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB"));
|
||||||
debugInfoJson.put("LastAltitudeExpectValue_mm", jo.getString("LastAltitudeExpectValue_mm"));
|
debugInfoJson.put("LastAltitudeExpectValue_mm", jo.getString("LastAltitudeExpectValue_mm"));
|
||||||
debugInfoJson.put("Get_Nav350_Curr_Layer", jo.getString("Get_Nav350_Curr_Layer"));
|
debugInfoJson.put("Get_Nav350_Curr_Layer", jo.getString("Get_Nav350_Curr_Layer"));
|
||||||
debugInfoJson.put("Update_Sch", jo.getString("Update_Sch"));
|
debugInfoJson.put("Update_Sch", jo.getString("Update_Sch"));
|
||||||
@@ -599,30 +610,86 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
debugInfoJson.put("Sche_JSON_Sche_Enable", jo.getString("Sche_JSON_Sche_Enable"));
|
debugInfoJson.put("Sche_JSON_Sche_Enable", jo.getString("Sche_JSON_Sche_Enable"));
|
||||||
debugInfoJson.put("VehicleCtrlRealRCEnable", jo.getString("VehicleCtrlRealRCEnable"));
|
debugInfoJson.put("VehicleCtrlRealRCEnable", jo.getString("VehicleCtrlRealRCEnable"));
|
||||||
debugInfoJson.put("VehicleCtrlRealJoyEnable", jo.getString("VehicleCtrlRealJoyEnable"));
|
debugInfoJson.put("VehicleCtrlRealJoyEnable", jo.getString("VehicleCtrlRealJoyEnable"));
|
||||||
//小车当前点位,未到为起点,到达为终点
|
|
||||||
debugInfoJson.put("CurNodeID", jo.getString("CurNodeID"));
|
debugInfoJson.put("CurNodeID", jo.getString("CurNodeID"));
|
||||||
String PathFollow_Enable = jo.getString("PathFollow_Enable");
|
//handleTaskStatus;
|
||||||
String curNodeId = jo.getString("CurNodeID");
|
} catch (Exception e) {
|
||||||
if(StrUtil.equals("0", PathFollow_Enable)) {
|
|
||||||
JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0);
|
|
||||||
if(ObjectUtil.isNotEmpty(taskjo)) {
|
|
||||||
//小车停止,且已到达目标点位
|
|
||||||
if(curNodeId.equals(taskjo.getString("next_point_code"))) {
|
|
||||||
taskjo.put("task_status", TaskStatusEnum.END.getCode());
|
|
||||||
taskjo.put("task_status_name", "任务完成");
|
|
||||||
taskjo.put("update_time", DateUtil.now());
|
|
||||||
taskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
|
||||||
WQLObject.getWQLObject("ST_TASK_INFO").update(taskjo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
debugInfoJson.put("PathFollow_Enable", PathFollow_Enable);
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
Log.error("通信失败:" + e.getMessage());
|
Log.error("通信失败:" + e.getMessage());
|
||||||
throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage());
|
throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void handleTaskStatus() {
|
||||||
|
qeryDebuggerInfo();
|
||||||
|
JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0);
|
||||||
|
//小车停止,且已到达目标点位
|
||||||
|
if (ObjectUtil.isNotEmpty(taskjo) && StrUtil.equals("0", debugInfoJson.getString("PathFollow_Enable")) && debugInfoJson.getString("CurNodeID").equals(taskjo.getString("next_point_code"))) {
|
||||||
|
//叉腿高度
|
||||||
|
String legHeight = debugInfoJson.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB") == null ? "0" : debugInfoJson.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB");
|
||||||
|
legHeight = "20";
|
||||||
|
Map<String, String> jsonObject = new HashMap<>();
|
||||||
|
//普通任务
|
||||||
|
if (TaskTypeEnum.COMMON.getCode().equals(taskjo.getString("task_type"))) {
|
||||||
|
updateTaskStatus(taskjo, TaskStatusEnum.END);
|
||||||
|
} else if (TaskTypeEnum.TAKE.getCode().equals(taskjo.getString("task_type")) || TaskTypeEnum.PUT.getCode().equals(taskjo.getString("task_type"))) {
|
||||||
|
//取货
|
||||||
|
if (TaskTypeEnum.TAKE.getCode().equals(taskjo.getString("task_type"))) {
|
||||||
|
//已到达目标点
|
||||||
|
if (StringUtils.isBlank(taskjo.getString("step"))) {
|
||||||
|
//取货
|
||||||
|
//ServiceResponse send = sendToAgvUtil.send("HMIStepOrRTPathFollow:0;2;0#");
|
||||||
|
//叉腿已抬升
|
||||||
|
taskjo.put("step", "0");
|
||||||
|
updateTaskStatus(taskjo, null);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (StringUtils.isBlank(taskjo.getString("step"))) {
|
||||||
|
//放货
|
||||||
|
//ServiceResponse send = sendToAgvUtil.send("HMIStepOrRTPathFollow:0;1;0#");
|
||||||
|
//叉腿已抬升
|
||||||
|
taskjo.put("step", "0");
|
||||||
|
updateTaskStatus(taskjo, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//叉腿抬高动作已下发,且高度为10或20且待机,发送返程任务
|
||||||
|
if ((Integer.parseInt(legHeight) == 20 || Integer.parseInt(legHeight) == 10) && "0".equals(taskjo.getString("step"))) {
|
||||||
|
//返程任务已下发
|
||||||
|
taskjo.put("step", "1");
|
||||||
|
updateTaskStatus(taskjo, TaskStatusEnum.END);
|
||||||
|
jsonObject.put("type", TaskTypeEnum.RETURN.getCode());
|
||||||
|
jsonObject.put("point_code", taskjo.getString("next_point_code2"));
|
||||||
|
taskServiceServiceImpl.confirmPoint1(jsonObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
||||||
|
public void updateTaskStatus(JSONObject taskjo, TaskStatusEnum statusEnum) {
|
||||||
|
if (statusEnum != null) {
|
||||||
|
taskjo.put("task_status", statusEnum.getCode());
|
||||||
|
taskjo.put("task_status_name", statusEnum.getName());
|
||||||
|
}
|
||||||
|
taskjo.put("update_time", DateUtil.now());
|
||||||
|
taskjo.put("update_by", SecurityUtils.getCurrentNickName());
|
||||||
|
WQLObject.getWQLObject("ST_TASK_INFO").update(taskjo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理任务状态
|
||||||
|
*/
|
||||||
|
@Async("taskExecutor")
|
||||||
|
@Scheduled(cron = "0/10 * * * * *")
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void handleTaskStatuss() {
|
||||||
|
//StopWatch stopWatch = new StopWatch();
|
||||||
|
//stopWatch.start();
|
||||||
|
//handleTaskStatus();
|
||||||
|
//stopWatch.stop();
|
||||||
|
//System.out.println("花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// public void QueryDebuggerInfo2() {
|
// public void QueryDebuggerInfo2() {
|
||||||
// debugInfoJson = new JSONObject();
|
// debugInfoJson = new JSONObject();
|
||||||
// Ros ros = RosUtil.getRos();
|
// Ros ros = RosUtil.getRos();
|
||||||
@@ -682,7 +749,7 @@ public class HomeServiceImpl implements HomeService{
|
|||||||
// JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0);
|
// JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0);
|
||||||
// if(ObjectUtil.isNotEmpty(taskjo)) {
|
// if(ObjectUtil.isNotEmpty(taskjo)) {
|
||||||
// taskjo.put("task_status", "02");
|
// taskjo.put("task_status", "02");
|
||||||
// taskjo.put("task_status_name", "任务完成");
|
// taskjo.put("task_status_name", "完成");
|
||||||
// taskjo.put("update_time", DateUtil.now());
|
// taskjo.put("update_time", DateUtil.now());
|
||||||
// WQLObject.getWQLObject("ST_TASK_INFO").update(taskjo);
|
// WQLObject.getWQLObject("ST_TASK_INFO").update(taskjo);
|
||||||
// }
|
// }
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import edu.wpi.rail.jrosbridge.services.ServiceResponse;
|
|||||||
import jline.internal.Log;
|
import jline.internal.Log;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.nl.agv.enu.TaskTypeEnum;
|
||||||
import org.nl.agv.service.DevelopService;
|
import org.nl.agv.service.DevelopService;
|
||||||
import org.nl.agv.service.TaskService;
|
import org.nl.agv.service.TaskService;
|
||||||
import org.nl.agv.unit.sendToAgvUtil;
|
import org.nl.agv.unit.sendToAgvUtil;
|
||||||
@@ -38,10 +39,16 @@ import org.nl.modules.common.exception.BadRequestException;
|
|||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.Map;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static org.nl.agv.service.impl.HomeServiceImpl.debugInfoJson;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhanghouying
|
* @author zhanghouying
|
||||||
@@ -49,6 +56,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
@EnableScheduling
|
||||||
public class TaskServiceServiceImpl implements TaskService {
|
public class TaskServiceServiceImpl implements TaskService {
|
||||||
public static JSONObject pointJson = new JSONObject();
|
public static JSONObject pointJson = new JSONObject();
|
||||||
|
|
||||||
@@ -84,58 +92,57 @@ public class TaskServiceServiceImpl implements TaskService{
|
|||||||
returnjo.put("desc", "查询成功!");
|
returnjo.put("desc", "查询成功!");
|
||||||
returnjo.put("rest_pointcode", rest_pointcode);
|
returnjo.put("rest_pointcode", rest_pointcode);
|
||||||
returnjo.put("result", arr);
|
returnjo.put("result", arr);
|
||||||
}
|
} catch (Exception ex) {
|
||||||
catch(Exception ex) {
|
String error = ex.getMessage();
|
||||||
String sfd = ex.getMessage();
|
|
||||||
}
|
}
|
||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> confirmPoint(Map<String, String> jsonObject) {
|
public Map<String, Object> confirmPoint(Map<String, String> jsonObject) {
|
||||||
String point_code = (String) jsonObject.get("point_code");
|
String pointCode = jsonObject.get("point_code");
|
||||||
JSONObject returnjo = new JSONObject();
|
JSONObject returnjo = new JSONObject();
|
||||||
if(StrUtil.isEmpty(point_code)) {
|
if (StrUtil.isEmpty(pointCode)) {
|
||||||
throw new BadRequestException("站点不能为空!");
|
throw new BadRequestException("站点不能为空!");
|
||||||
}
|
}
|
||||||
//查询未完成的指令有多少条
|
//查询未完成的指令有多少条
|
||||||
int num = WQL.getWO("QAGVERROR").addParam("flag", "3").process().uniqueResult(0).getInteger("num");
|
int num = WQL.getWO("QAGVERROR").addParam("flag", "3").process().uniqueResult(0).getInteger("num");
|
||||||
//查询最多的任务数量
|
//查询最多的任务数量
|
||||||
int max_task_num = WQLObject.getWQLObject("ST_SYSTEM_PARAM").query("1=1").uniqueResult(0).getInteger("max_task_num");
|
int maxTaskNum = WQLObject.getWQLObject("ST_SYSTEM_PARAM").query("1=1").uniqueResult(0).getInteger("max_task_num");
|
||||||
if(num >= max_task_num) {
|
if (num >= maxTaskNum) {
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", "未执行的任务数量达到上限!");
|
returnjo.put("desc", "未执行的任务数量达到上限!");
|
||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
}
|
||||||
JSONObject taskjo = new JSONObject();
|
JSONObject taskjo = new JSONObject();
|
||||||
int seq_num = 1;
|
int seqNum = 1;
|
||||||
String task_status = "00";
|
String task_status = "00";
|
||||||
String task_status_name = "生成未执行";
|
String task_status_name = "生成未执行";
|
||||||
//查询未完成最大的顺序号
|
//查询未完成最大的顺序号
|
||||||
JSONObject taskrow = WQLObject.getWQLObject("ST_TASK_INFO").query("is_manualfinished=0", "seq_num desc").uniqueResult(0);
|
JSONObject taskrow = WQLObject.getWQLObject("ST_TASK_INFO").query("is_manualfinished=0", "seq_num desc").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(taskrow)) {
|
if (ObjectUtil.isNotEmpty(taskrow)) {
|
||||||
seq_num = taskrow.getInteger("seq_num") + 1;
|
seqNum = taskrow.getInteger("seq_num") + 1;
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(taskrow)) {
|
if (ObjectUtil.isEmpty(taskrow)) {
|
||||||
//只有第一条下发给agv
|
//只有第一条下发给agv
|
||||||
String a = "HMIStepOrRTPathFollow:0;" + point_code + ";1#";
|
String a = "HMIStepOrRTPathFollow:0;" + pointCode + ";1#";
|
||||||
ServiceResponse send = sendToAgvUtil.send(a);
|
ServiceResponse send = sendToAgvUtil.send(a);
|
||||||
JSONObject resjo = JSONObject.parseObject(send.toString());
|
JSONObject resjo = JSONObject.parseObject(send.toString());
|
||||||
if (StrUtil.equals("0", resjo.getString("result"))) {
|
if (StrUtil.equals("0", resjo.getString("result"))) {
|
||||||
task_status_name = "执行中";
|
task_status_name = "执行中";
|
||||||
task_status = "01";
|
task_status = "01";
|
||||||
}
|
}
|
||||||
JSONObject change = sendToAgvUtil.change(point_code);
|
JSONObject change = sendToAgvUtil.change(pointCode);
|
||||||
//sendToAgvUtil.sendtask(change.getString("first"), change.getString("last"));
|
//sendToAgvUtil.sendtask(change.getString("first"), change.getString("last"));
|
||||||
}
|
}
|
||||||
taskjo.put("task_uuid", IdUtil.simpleUUID());
|
taskjo.put("task_uuid", IdUtil.simpleUUID());
|
||||||
taskjo.put("task_code", CodeUtil.getNewCode("TASK_NO"));
|
taskjo.put("task_code", CodeUtil.getNewCode("TASK_NO"));
|
||||||
taskjo.put("task_status", task_status);
|
taskjo.put("task_status", task_status);
|
||||||
taskjo.put("task_status_name", task_status_name);
|
taskjo.put("task_status_name", task_status_name);
|
||||||
taskjo.put("next_point_code", point_code);
|
taskjo.put("next_point_code", pointCode);
|
||||||
taskjo.put("task_type", "1");
|
taskjo.put("task_type", "1");
|
||||||
taskjo.put("is_delete", "0");
|
taskjo.put("is_delete", "0");
|
||||||
taskjo.put("seq_num", seq_num);
|
taskjo.put("seq_num", seqNum);
|
||||||
taskjo.put("date", DateUtil.today());
|
taskjo.put("date", DateUtil.today());
|
||||||
taskjo.put("create_time", DateUtil.now());
|
taskjo.put("create_time", DateUtil.now());
|
||||||
taskjo.put("is_agvfinished", "0");
|
taskjo.put("is_agvfinished", "0");
|
||||||
@@ -147,6 +154,105 @@ public class TaskServiceServiceImpl implements TaskService{
|
|||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> confirmPoint1(Map<String, String> jsonObject) {
|
||||||
|
String point_code = jsonObject.get("point_code");
|
||||||
|
String type = jsonObject.get("type");
|
||||||
|
if (StrUtil.isEmpty(point_code) || StrUtil.isEmpty(type)) {
|
||||||
|
throw new BadRequestException("站点或操作类型不能为空!");
|
||||||
|
}
|
||||||
|
String instruct = "";
|
||||||
|
int seq_num = 1;
|
||||||
|
String task_status = "00";
|
||||||
|
String task_status_name = "生成未执行";
|
||||||
|
JSONObject returnjo = new JSONObject();
|
||||||
|
//查询未完成的指令有多少条
|
||||||
|
int num = WQL.getWO("QAGVERROR").addParam("flag", "3").process().uniqueResult(0).getInteger("num");
|
||||||
|
//查询最多的任务数量
|
||||||
|
int max_task_num = WQLObject.getWQLObject("ST_SYSTEM_PARAM").query("1=1").uniqueResult(0).getInteger("max_task_num");
|
||||||
|
if (num >= max_task_num) {
|
||||||
|
returnjo.put("code", "1");
|
||||||
|
returnjo.put("desc", "未执行的任务数量达到上限!");
|
||||||
|
return returnjo;
|
||||||
|
}
|
||||||
|
//查询未完成最大的顺序号
|
||||||
|
JSONObject taskrow = WQLObject.getWQLObject("ST_TASK_INFO").query("is_manualfinished=0", "seq_num desc").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(taskrow)) {
|
||||||
|
seq_num = taskrow.getInteger("seq_num") + 1;
|
||||||
|
}
|
||||||
|
JSONObject taskjo = new JSONObject();
|
||||||
|
taskjo.put("task_type", type.equals(TaskTypeEnum.RETURN.getCode()) ? TaskTypeEnum.COMMON.getCode() : type);
|
||||||
|
taskjo.put("seq_num", type.equals(TaskTypeEnum.RETURN.getCode()) ? getSeqNum() : seq_num);
|
||||||
|
taskjo.put("task_uuid", IdUtil.simpleUUID());
|
||||||
|
taskjo.put("task_code", CodeUtil.getNewCode("TASK_NO"));
|
||||||
|
taskjo.put("next_point_code", point_code);
|
||||||
|
taskjo.put("is_delete", "0");
|
||||||
|
taskjo.put("date", DateUtil.today());
|
||||||
|
taskjo.put("create_time", DateUtil.now());
|
||||||
|
taskjo.put("is_agvfinished", "0");
|
||||||
|
taskjo.put("is_manualfinished", "0");
|
||||||
|
taskjo.put("create_by", SecurityUtils.getCurrentNickName());
|
||||||
|
//只有一条且是第一条下发给agv
|
||||||
|
if (ObjectUtil.isEmpty(taskrow)) {
|
||||||
|
if (type.equals(TaskTypeEnum.COMMON.getCode())) {
|
||||||
|
instruct = "HMIStepOrRTPathFollow:0;" + point_code + ";1#";
|
||||||
|
} else if (type.equals(TaskTypeEnum.TAKE.getCode()) || type.equals(TaskTypeEnum.PUT.getCode())) {
|
||||||
|
instruct = "HMIStepOrRTPathFollow:0;" + point_code + ";1#";
|
||||||
|
//获取返程点
|
||||||
|
//ServiceResponse send = sendToAgvUtil.send("HMIRouter:" + debugInfoJson.getString("CurNodeID") + ";" + point_code + ";#");
|
||||||
|
// JSONObject resjo = JSONObject.parseObject(send.toString());
|
||||||
|
//todo 需要改回,检查返回的路由信息resjo
|
||||||
|
String v2 = "HMIRouter:0;2;#\nExport_NodeIDPath:\n1 2 \nExport_NodeIDPath_End";
|
||||||
|
String pointCode2 = v2.substring(v2.indexOf("Export_NodeIDPath:\n") + "Export_NodeIDPath:\n".length(), v2.indexOf(" \nExport_NodeIDPath_End"));
|
||||||
|
taskjo.put("next_point_code2", pointCode2);
|
||||||
|
} else if (type.equals(TaskTypeEnum.RETURN.getCode())) {
|
||||||
|
instruct = "HMIStepOrRTPathFollow:0;" + point_code + ";1#";
|
||||||
|
taskjo.put("task_type", TaskTypeEnum.COMMON.getCode());
|
||||||
|
}
|
||||||
|
//ServiceResponse send = sendToAgvUtil.send(instruct);
|
||||||
|
//JSONObject resjo = JSONObject.parseObject(send.toString());
|
||||||
|
//
|
||||||
|
// if (StrUtil.equals("0", resjo.getString("result"))) {
|
||||||
|
// task_status_name = "执行中";
|
||||||
|
// task_status = "01";
|
||||||
|
// }
|
||||||
|
if (true) {
|
||||||
|
task_status_name = "执行中";
|
||||||
|
task_status = "01";
|
||||||
|
}
|
||||||
|
//JSONObject change = sendToAgvUtil.change(point_code);
|
||||||
|
//sendToAgvUtil.sendtask(change.getString("first"), change.getString("last"));
|
||||||
|
}
|
||||||
|
taskjo.put("task_status", task_status);
|
||||||
|
taskjo.put("task_status_name", task_status_name);
|
||||||
|
WQLObject.getWQLObject("ST_TASK_INFO").insert(taskjo);
|
||||||
|
returnjo.put("code", "1");
|
||||||
|
returnjo.put("desc", "新增成功!");
|
||||||
|
return returnjo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Integer getSeqNum() {
|
||||||
|
WQLObject taskTable = WQLObject.getWQLObject("ST_TASK_INFO");
|
||||||
|
JSONArray taskrows = taskTable.query("task_status='00' or task_status='01'").getResultJSONArray(0);
|
||||||
|
//存在多条未完成任务,则重新排序,返程任务最优先
|
||||||
|
if (taskrows.size() > 0) {
|
||||||
|
//获取序号最小值
|
||||||
|
int minSeqNum = taskrows.stream().mapToInt(o -> ((JSONObject) o).getIntValue("seq_num")).min().orElse(0);
|
||||||
|
//更新现有数据的序号
|
||||||
|
taskrows.forEach(taskObj -> ((JSONObject) taskObj).put("seq_num", ((JSONObject) taskObj).getIntValue("seq_num") + 1));
|
||||||
|
//返程任务顺序号为最小
|
||||||
|
int seq_num = minSeqNum;
|
||||||
|
//taskrows.add(0, taskjo); //插入到最前面
|
||||||
|
for (int i = 0; i < taskrows.size(); i++) {
|
||||||
|
JSONObject task = taskrows.getJSONObject(i);
|
||||||
|
taskTable.update(task);
|
||||||
|
}
|
||||||
|
return seq_num;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryTaskList(Map<String, String> jsonObject) {
|
public Map<String, Object> queryTaskList(Map<String, String> jsonObject) {
|
||||||
JSONArray resultJSONArray = WQL.getWO("QAGVERROR").addParam("flag", "2").process().getResultJSONArray(0);
|
JSONArray resultJSONArray = WQL.getWO("QAGVERROR").addParam("flag", "2").process().getResultJSONArray(0);
|
||||||
@@ -216,11 +322,12 @@ public class TaskServiceServiceImpl implements TaskService{
|
|||||||
is_correct = "1";
|
is_correct = "1";
|
||||||
returnjo.put("code", "1");
|
returnjo.put("code", "1");
|
||||||
returnjo.put("desc", "密码校验成功!");
|
returnjo.put("desc", "密码校验成功!");
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
returnjo.put("code", "0");
|
returnjo.put("code", "0");
|
||||||
returnjo.put("desc", "密码不正确!");
|
returnjo.put("desc", "密码不正确!");
|
||||||
}
|
}
|
||||||
return returnjo;
|
return returnjo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
server:
|
server:
|
||||||
port: 8018
|
port: 8019
|
||||||
##配置数据源
|
##配置数据源
|
||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
|
|||||||
185
nladmin-system/src/main/resources/config/application-prod1.yml
Normal file
185
nladmin-system/src/main/resources/config/application-prod1.yml
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
server:
|
||||||
|
port: 8018
|
||||||
|
#配置数据源
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
druid:
|
||||||
|
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||||
|
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||||
|
#192.168.137.41
|
||||||
|
url: jdbc:g4lojdbc:mysql://${DB_HOST:192.168.137.41}:${DB_PORT:3306}/${DB_NAME:nl_agv}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||||
|
#url: jdbc:log4jdbc:mysql://${DB_HOST:43.139.166.161}:${DB_PORT:3310}/${DB_NAME:nl_agv}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||||
|
#url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||||
|
username: ${DB_USER:generallu}
|
||||||
|
#password: ${DB_PWD:P@ssw0rd}
|
||||||
|
password: ${DB_PWD:123456}
|
||||||
|
#password: ${DB_PWD:Root.123456}
|
||||||
|
# 初始连接数
|
||||||
|
initial-size: 15
|
||||||
|
# 最小连接数
|
||||||
|
min-idle: 45
|
||||||
|
# 最大连接数
|
||||||
|
max-active: 90
|
||||||
|
# 是否自动回收超时连接
|
||||||
|
remove-abandoned: true
|
||||||
|
# 超时时间(以秒数为单位)
|
||||||
|
remove-abandoned-timeout: 180
|
||||||
|
# 获取连接超时时间
|
||||||
|
max-wait: 3000
|
||||||
|
# 连接有效性检测时间
|
||||||
|
time-between-eviction-runs-millis: 60000
|
||||||
|
# 连接在池中最小生存的时间
|
||||||
|
min-evictable-idle-time-millis: 300000
|
||||||
|
# 连接在池中最大生存的时间
|
||||||
|
max-evictable-idle-time-millis: 900000
|
||||||
|
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
|
||||||
|
test-while-idle: true
|
||||||
|
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
|
||||||
|
test-on-borrow: true
|
||||||
|
# 是否在归还到池中前进行检验
|
||||||
|
test-on-return: false
|
||||||
|
# 检测连接是否有效
|
||||||
|
validation-query: select 1
|
||||||
|
# 配置监控统计
|
||||||
|
webStatFilter:
|
||||||
|
enabled: true
|
||||||
|
stat-view-servlet:
|
||||||
|
enabled: true
|
||||||
|
url-pattern: /druid/*
|
||||||
|
reset-enable: false
|
||||||
|
filters:
|
||||||
|
DruidFilter,stat
|
||||||
|
redis:
|
||||||
|
#数据库索引
|
||||||
|
database: ${REDIS_DB:6}
|
||||||
|
host: ${REDIS_HOST:127.0.0.1}
|
||||||
|
#host: ${REDIS_HOST:localhost}
|
||||||
|
port: ${REDIS_PORT:6379}
|
||||||
|
password: ${REDIS_PWD:}
|
||||||
|
#连接超时时间
|
||||||
|
timeout: 5000
|
||||||
|
redisson:
|
||||||
|
config: |
|
||||||
|
threads: 4
|
||||||
|
nettyThreads: 4
|
||||||
|
singleServerConfig:
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
connectionPoolSize: 8
|
||||||
|
address: redis://127.0.0.1:6379
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
timeout: 3000
|
||||||
|
# 登录相关配置
|
||||||
|
login:
|
||||||
|
# 登录缓存
|
||||||
|
cache-enable: true
|
||||||
|
# 是否限制单用户登录
|
||||||
|
single-login: false
|
||||||
|
# 验证码
|
||||||
|
login-code:
|
||||||
|
# 验证码类型配置 查看 LoginProperties 类
|
||||||
|
code-type: arithmetic
|
||||||
|
# 登录图形验证码有效时间/分钟
|
||||||
|
expiration: 2
|
||||||
|
# 验证码高度
|
||||||
|
width: 111
|
||||||
|
# 验证码宽度
|
||||||
|
heigth: 36
|
||||||
|
# 内容长度
|
||||||
|
length: 2
|
||||||
|
# 字体名称,为空则使用默认字体
|
||||||
|
font-name:
|
||||||
|
# 字体大小
|
||||||
|
font-size: 25
|
||||||
|
|
||||||
|
#jwt
|
||||||
|
jwt:
|
||||||
|
header: Authorization
|
||||||
|
# 令牌前缀
|
||||||
|
token-start-with: Bearer
|
||||||
|
# 必须使用最少88位的Base64对该令牌进行编码
|
||||||
|
base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
|
||||||
|
# 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
|
||||||
|
token-validity-in-seconds: 14400000
|
||||||
|
# 在线用户key
|
||||||
|
online-key: online-token-
|
||||||
|
# 验证码
|
||||||
|
code-key: code-key-
|
||||||
|
# token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
|
||||||
|
detect: 1800000
|
||||||
|
# 续期时间范围,默认1小时,单位毫秒
|
||||||
|
renew: 3600000
|
||||||
|
|
||||||
|
#是否允许生成代码,生产环境设置为false
|
||||||
|
generator:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
#是否开启 swagger-ui
|
||||||
|
swagger:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# IP 本地解析
|
||||||
|
ip:
|
||||||
|
local-parsing: true
|
||||||
|
|
||||||
|
# 文件存储路径
|
||||||
|
file:
|
||||||
|
mac:
|
||||||
|
path: ~/file/
|
||||||
|
avatar: ~/avatar/
|
||||||
|
linux:
|
||||||
|
path: /home/eladmin/file/
|
||||||
|
avatar: /home/eladmin/avatar/
|
||||||
|
windows:
|
||||||
|
path: C:\eladmin\file\
|
||||||
|
avatar: C:\eladmin\avatar\
|
||||||
|
# 文件大小 /M
|
||||||
|
maxSize: 100
|
||||||
|
avatarMaxSize: 5
|
||||||
|
|
||||||
|
sa-token:
|
||||||
|
# token 名称 (同时也是cookie名称)
|
||||||
|
token-name: Authorization
|
||||||
|
# token 有效期,单位s 默认30天, -1代表永不过期
|
||||||
|
timeout: 2592000
|
||||||
|
# token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||||
|
activity-timeout: -1
|
||||||
|
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||||
|
is-concurrent: true
|
||||||
|
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||||
|
is-share: false
|
||||||
|
# token风格
|
||||||
|
token-style: random-128
|
||||||
|
# 是否输出操作日志
|
||||||
|
is-log: false
|
||||||
|
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
|
||||||
|
# token 前缀
|
||||||
|
token-prefix:
|
||||||
|
cookie:
|
||||||
|
# 配置 Cookie 作用域:根据二级域名实现sso登入如lms.sso.com;acs.sso.com
|
||||||
|
domain:
|
||||||
|
|
||||||
|
jetcache:
|
||||||
|
defaultCacheType: LOCAL
|
||||||
|
statIntervalMinutes: 15
|
||||||
|
areaInCacheName: false
|
||||||
|
hiddenPackages: com.yb
|
||||||
|
local:
|
||||||
|
default:
|
||||||
|
type: caffeine
|
||||||
|
limit: 100
|
||||||
|
keyConvertor: fastjson
|
||||||
|
expireAfterWriteInMillis: 60000
|
||||||
|
remote:
|
||||||
|
default:
|
||||||
|
type: redis.lettuce
|
||||||
|
keyConvertor: fastjson
|
||||||
|
valueEncoder: kryo
|
||||||
|
valueDecoder: kryo
|
||||||
|
poolConfig:
|
||||||
|
minIdle: 5
|
||||||
|
maxIdle: 200
|
||||||
|
maxTotal: 1000
|
||||||
|
uri:
|
||||||
|
- redis://127.0.0.1:6379
|
||||||
|
es:
|
||||||
|
index: mes_log
|
||||||
@@ -2,7 +2,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: prod
|
active: dev
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
|
|||||||
Reference in New Issue
Block a user