add 自动门对接 rev luncener日志更新
This commit is contained in:
@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.agv.server.MagicAgvService;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@@ -19,7 +21,9 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
@RequestMapping("/api/magic")
|
||||
@Slf4j
|
||||
public class MagicAgvController {
|
||||
private final MagicAgvService magicAgvService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private MagicAgvService magicAgvService;
|
||||
|
||||
@PostMapping("/agvack/{device}")
|
||||
@Log("AGV请求离开")
|
||||
|
||||
@@ -27,6 +27,8 @@ import org.nl.acs.opc.DeviceType;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.service.ParamService;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -38,9 +40,12 @@ import java.util.Map;
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MagicAgvServiceImpl implements MagicAgvService {
|
||||
private final DeviceAppService deviceAppService;
|
||||
private final ParamService paramService;
|
||||
private final AcsToWmsService acsToWmsService;
|
||||
@Autowired
|
||||
private DeviceAppService deviceAppService;
|
||||
@Autowired
|
||||
private ParamService paramService;
|
||||
@Autowired
|
||||
private AcsToWmsService acsToWmsService;
|
||||
|
||||
|
||||
Map<String, AgvDto> AGVDeviceStatus = new HashMap();
|
||||
|
||||
@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.auto.initial.ApplicationAutoInitialExecuter;
|
||||
import org.nl.acs.auto.initial.WebAutoInitialExecuter;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.core.annotation.Order;
|
||||
@@ -17,8 +18,10 @@ import org.springframework.stereotype.Component;
|
||||
@RequiredArgsConstructor
|
||||
@Order(50)
|
||||
public class AcsInit implements ApplicationRunner {
|
||||
private final ApplicationAutoInitialExecuter applicationAutoInitialExecuter;
|
||||
private final WebAutoInitialExecuter webAutoInitialExecuter;
|
||||
@Autowired
|
||||
private ApplicationAutoInitialExecuter applicationAutoInitialExecuter;
|
||||
@Autowired
|
||||
private WebAutoInitialExecuter webAutoInitialExecuter;
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
//随线程启动
|
||||
|
||||
@@ -62,7 +62,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
ParamService paramService = SpringContextHolder.getBean(ParamServiceImpl.class);
|
||||
InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class);
|
||||
TaskService taskService=SpringContextHolder.getBean(TaskServiceImpl.class);
|
||||
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
|
||||
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
|
||||
NDCAgvService NDCAgvService = SpringContextHolder.getBean(NDCAgvService.class);
|
||||
DeviceExecuteLogService logService = SpringContextHolder.getBean(DeviceExecuteLogService.class);
|
||||
DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
|
||||
@@ -179,7 +179,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//到达取货点
|
||||
//(需要WCS反馈)
|
||||
} else if (phase == 0x03) {
|
||||
log.info("==================AGV请求取货==================");
|
||||
log.info("================== ==================");
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
log.info("未找到指令:" + ikey);
|
||||
logService.deviceExecuteLog(device_code, "", "", "未找到指令 [" + ikey + "]");
|
||||
@@ -230,15 +230,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//标准版-机械手对接位
|
||||
if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) {
|
||||
lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver();
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",2);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0
|
||||
&& lnshPalletizingManipulatorSiteDeviceDriver.getMove() != 0
|
||||
&& (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 1)
|
||||
&& (lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 1)) {
|
||||
inst.setExecute_status("1");
|
||||
instructionService.update(inst);
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",2);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if(lnshPalletizingManipulatorSiteDeviceDriver.getTo_command()==2){
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}else {
|
||||
@@ -505,14 +505,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//标准版-机械手对接位
|
||||
if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) {
|
||||
lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver();
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",3);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0
|
||||
&& lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0
|
||||
&& (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 2)
|
||||
) {
|
||||
inst.setExecute_status("5");
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",3);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if(lnshPalletizingManipulatorSiteDeviceDriver.getTo_command()==3){
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}else {
|
||||
@@ -780,15 +780,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//标准版-机械手对接位
|
||||
if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) {
|
||||
lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver();
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",4);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0
|
||||
&& lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0
|
||||
&& (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 1 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3)
|
||||
&& (lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 2 || lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 3)) {
|
||||
inst.setExecute_status("3");
|
||||
instructionService.update(inst);
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",4);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if(lnshPalletizingManipulatorSiteDeviceDriver.getTo_command()==4){
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}else {
|
||||
@@ -1047,14 +1047,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//标准版-机械手对接位
|
||||
if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) {
|
||||
lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver();
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",5);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0
|
||||
&& lnshPalletizingManipulatorSiteDeviceDriver.getMove() != 0
|
||||
&& (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 2 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3)) {
|
||||
inst.setExecute_status("6");
|
||||
instructionService.update(inst);
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",5);
|
||||
lnshPalletizingManipulatorSiteDeviceDriver.writing(map);
|
||||
if(lnshPalletizingManipulatorSiteDeviceDriver.getTo_command()==5){
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}else {
|
||||
@@ -1130,17 +1130,17 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
String direction=task.getDirection();
|
||||
if(ObjectUtil.isNotEmpty(direction)){
|
||||
Integer direction1=Integer.parseInt(direction);
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",5);
|
||||
//困料位写入方向
|
||||
conveyorPressStationDeviceDriver.writing(2,direction1);
|
||||
map.put("to_target",direction1);
|
||||
conveyorPressStationDeviceDriver.writing(map);
|
||||
}else{
|
||||
log.info("未输入方向");
|
||||
}
|
||||
}else{
|
||||
log.info("任务号为空");
|
||||
}
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("to_command",5);
|
||||
conveyorPressStationDeviceDriver.writing(map);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
conveyorPressStationDeviceDriver.setMessage("");
|
||||
flag = true;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
||||
|
||||
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class);
|
||||
|
||||
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
|
||||
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
|
||||
|
||||
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
|
||||
|
||||
|
||||
@@ -120,6 +120,12 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
String material;
|
||||
String last_material;
|
||||
int barcode;
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return super.hashCode();
|
||||
}
|
||||
|
||||
int last_barcode;
|
||||
|
||||
@Override
|
||||
|
||||
@@ -874,7 +874,7 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic
|
||||
* @param
|
||||
*/
|
||||
public synchronized boolean apply_take_full_vehicle() {
|
||||
if(move > 0) {
|
||||
if(move > 0 && ObjectUtil.isNotEmpty(barcode)) {
|
||||
ApplyTaskRequest request = new ApplyTaskRequest();
|
||||
request.setDevice_code(this.getDevice_code());
|
||||
request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName());
|
||||
|
||||
@@ -155,7 +155,7 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
lucene.deviceItemValue(this.device_code, "mode", String.valueOf(mode));
|
||||
lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "信号mode:" + last_mode + " -> " + mode));
|
||||
}
|
||||
if (move != last_move) {
|
||||
if (move != last_move && mode>0) {
|
||||
logServer.deviceItemValue(this.device_code, "move", String.valueOf(move));
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + " -> " + move);
|
||||
lucene.deviceItemValue(this.device_code, "move", String.valueOf(move));
|
||||
|
||||
@@ -56,6 +56,7 @@ import org.nl.modules.wql.exception.WDKException;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
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;
|
||||
@@ -78,21 +79,22 @@ import java.util.regex.Pattern;
|
||||
public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
|
||||
List<TaskDto> tasks = new ArrayList();
|
||||
|
||||
private final DeviceAppService deviceAppService;
|
||||
|
||||
private final RouteLineService routelineserver;
|
||||
@Autowired
|
||||
private DeviceAppService deviceAppService;
|
||||
@Autowired
|
||||
private RouteLineService routelineserver;
|
||||
@Autowired
|
||||
private AcsToWmsService acstowmsService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private TaskFeedbackService taskFeedbackService;
|
||||
@Autowired
|
||||
private ParamService acsConfigService;
|
||||
|
||||
private final ParamService acsConfigService;
|
||||
|
||||
|
||||
private final RouteLineService routeLineService;
|
||||
|
||||
private final DeviceAssignedService deviceAssignedService;
|
||||
@Autowired
|
||||
private RouteLineService routeLineService;
|
||||
@Autowired
|
||||
private DeviceAssignedService deviceAssignedService;
|
||||
@Autowired
|
||||
private InstructionService instructionService;
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.nl.modules.lucene.common;
|
||||
*/
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.yomahub.tlog.core.context.AspectLogContext;
|
||||
import com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -20,6 +21,14 @@ public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
||||
@Override
|
||||
protected void append(ILoggingEvent event) {
|
||||
String traceId = AspectLogContext.getLogValue();
|
||||
if (StringUtils.isEmpty(traceId)){
|
||||
traceId = IdUtil.nanoId()+"@";
|
||||
AspectLogContext.putLogValue(traceId);
|
||||
}else {
|
||||
if (!traceId.contains("@")){
|
||||
AspectLogContext.putLogValue(traceId+"@");
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotEmpty(traceId)){
|
||||
MDC.put("traceId",traceId);
|
||||
Map<String, String> mdcPropertyMap = event.getMDCPropertyMap();
|
||||
|
||||
@@ -59,7 +59,8 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
protected void append(ILoggingEvent event) {
|
||||
String message = event.getFormattedMessage();
|
||||
try {
|
||||
LuceneLogDto luceneLogDto = JSONObject.parseObject(message, LuceneLogDto.class);
|
||||
String[] split = message.split("@");
|
||||
LuceneLogDto luceneLogDto = JSONObject.parseObject(split[1], LuceneLogDto.class);
|
||||
Document document = new Document();
|
||||
try {
|
||||
//向document对象中添加域。
|
||||
|
||||
@@ -92,6 +92,7 @@ public class Searcher {
|
||||
Document doc = reader.document(scoreDoc.doc);
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("content",doc.get("fieldContent"));
|
||||
// object.put("trace_id",doc.get("trace_id"));
|
||||
object.put("device_code",doc.get("device_code"));
|
||||
object.put("logTime",doc.get("logTime"));
|
||||
object.put("method",doc.get("method"));
|
||||
|
||||
@@ -62,7 +62,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
</appender>
|
||||
|
||||
<appender name="luceneAppender" class="org.nl.modules.lucene.common.LuceneAppender" />
|
||||
<appender name="asyncLuceneAppender" class="org.nl.modules.lucene.common.AsyncLuceneAppender">
|
||||
<appender name="asyncLuceneAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<appender-ref ref="luceneAppender" />
|
||||
<!-- 设置队列大小,根据您的需求调整 -->
|
||||
<queueSize>512</queueSize>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<!-- <el-table-column v-if="false" prop="id" label="id"/>-->
|
||||
<el-table-column prop="operate" width="50" label="操作" />
|
||||
<el-table-column prop="device_code" label="设备号" min-width="130" show-overflow-tooltip />
|
||||
<!-- <el-table-column prop="trace_id" label="链路追踪" /> -->
|
||||
<el-table-column prop="task_code" label="任务编号" />
|
||||
<el-table-column prop="instruct_code" label="指令编号" />
|
||||
<el-table-column prop="method" label="方法" />
|
||||
|
||||
Reference in New Issue
Block a user