rev:现场问题优化
This commit is contained in:
@@ -4,11 +4,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.AcsConfig;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
@@ -16,7 +12,6 @@ import org.nl.acs.device_driver.agv.xg_agv_car.XgAgvCarDeviceDriver;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.task.domain.Task;
|
||||
import org.nl.acs.task.enums.AgvActionTypeEnum;
|
||||
import org.nl.acs.task.enums.AgvSystemTypeEnum;
|
||||
import org.nl.acs.task.service.TaskService;
|
||||
@@ -80,7 +75,7 @@ public class QueryAGVStatus {
|
||||
instruction.setCarno(carNo);
|
||||
TaskDto task = new TaskDto();
|
||||
instructionService.update(instruction);
|
||||
task.setCarno(carNo);
|
||||
task.setCar_no(carNo);
|
||||
task.setTask_id(instruction.getTask_id());
|
||||
instructionService.update(instruction);
|
||||
taskService.update(task);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package org.nl.acs.agv.server.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.AcsConfig;
|
||||
import org.nl.acs.agv.server.NDCAgvService;
|
||||
import org.nl.acs.agv.server.dto.AgvDto;
|
||||
import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
|
||||
import org.nl.acs.auto.run.TwoNDCSocketConnectionAutoRun;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
@@ -15,10 +15,9 @@ import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
import org.nl.acs.log.service.DeviceExecuteLogService;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.opc.DeviceAppServiceImpl;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -98,6 +97,13 @@ public class NDCAgvServiceImpl implements NDCAgvService {
|
||||
|
||||
String str = "十进制下发:";
|
||||
String str1 = "十六进制下发:";
|
||||
if (ObjectUtil.isNotEmpty(inst.getCarno())) {
|
||||
int carNo = Integer.parseInt(inst.getCarno());
|
||||
byte agvnohigh = (byte) IntToHexHigh(carNo);
|
||||
byte agvnolow = (byte) IntToHexLow(carNo);
|
||||
str += "agv车号 /carNo:" + (carNo);
|
||||
str1 += "agv车号 /carNo:" + hexToString(agvnolow & 0xFF);
|
||||
}
|
||||
str += "任务号 ikey:" + (Integer.parseInt(instcode));
|
||||
str1 += "任务号 ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF);
|
||||
|
||||
@@ -111,20 +117,41 @@ public class NDCAgvServiceImpl implements NDCAgvService {
|
||||
|
||||
|
||||
byte[] b = new byte[]{};
|
||||
b = new byte[]{(byte) 0X87, (byte) 0XCD,
|
||||
(byte) 0X00, (byte) 0X08,
|
||||
(byte) 0X00, (byte) 0X12,
|
||||
(byte) 0X00, (byte) 0X01,
|
||||
(byte) 0X00, (byte) 0X71,
|
||||
(byte) 0X00, (byte) 0X0E,
|
||||
(byte) 0X01, (byte) 0X80,
|
||||
(byte) 0X00, (byte) 0X01,
|
||||
(byte) ikeyhigh, (byte) ikeylow,
|
||||
(byte) ikeyhigh, (byte) ikeylow,
|
||||
(byte) typehigh, (byte) typelow,
|
||||
(byte) qhdhigh, (byte) qhdlow,
|
||||
(byte) fhdhigh, (byte) fhdlow,
|
||||
};
|
||||
if (ObjectUtil.isNotEmpty(inst.getCarno())) {
|
||||
int carNo = Integer.parseInt(inst.getCarno());
|
||||
byte agvnohigh = (byte) IntToHexHigh(carNo);
|
||||
byte agvnolow = (byte) IntToHexLow(carNo);
|
||||
b = new byte[]{(byte) 0X87, (byte) 0XCD,
|
||||
(byte) 0X00, (byte) 0X08,
|
||||
(byte) 0X00, (byte) 0X14,
|
||||
(byte) 0X00, (byte) 0X01,
|
||||
(byte) 0X00, (byte) 0X71,
|
||||
(byte) 0X00, (byte) 0X10,
|
||||
(byte) 0X01, (byte) 0X80,
|
||||
(byte) 0X00, (byte) 0X01,
|
||||
(byte) ikeyhigh, (byte) ikeylow,
|
||||
(byte) ikeyhigh, (byte) ikeylow,
|
||||
(byte) typehigh, (byte) typelow,
|
||||
(byte) qhdhigh, (byte) qhdlow,
|
||||
(byte) fhdhigh, (byte) fhdlow,
|
||||
(byte) agvnohigh, (byte) agvnolow
|
||||
};
|
||||
} else {
|
||||
b = new byte[]{(byte) 0X87, (byte) 0XCD,
|
||||
(byte) 0X00, (byte) 0X08,
|
||||
(byte) 0X00, (byte) 0X12,
|
||||
(byte) 0X00, (byte) 0X01,
|
||||
(byte) 0X00, (byte) 0X71,
|
||||
(byte) 0X00, (byte) 0X0E,
|
||||
(byte) 0X01, (byte) 0X80,
|
||||
(byte) 0X00, (byte) 0X01,
|
||||
(byte) ikeyhigh, (byte) ikeylow,
|
||||
(byte) ikeyhigh, (byte) ikeylow,
|
||||
(byte) typehigh, (byte) typelow,
|
||||
(byte) qhdhigh, (byte) qhdlow,
|
||||
(byte) fhdhigh, (byte) fhdlow,
|
||||
};
|
||||
}
|
||||
log.info("下发AGV作业指令 --{}", str1);
|
||||
log.info("下发AGV作业指令--{}", str);
|
||||
log.info("下发agv指令数据--{}", Bytes2HexString(b));
|
||||
@@ -255,7 +282,7 @@ public class NDCAgvServiceImpl implements NDCAgvService {
|
||||
(byte) 0X00, (byte) 0X6D,
|
||||
(byte) 0X00, (byte) 0X06,
|
||||
(byte) indexhigh, (byte) indexlow,
|
||||
(byte) 0X01, (byte) 0X10,
|
||||
(byte) 0X01, (byte) 0X12,
|
||||
(byte) phasehigh, (byte) phaselow
|
||||
};
|
||||
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
package org.nl.acs.auto.run;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.AcsConfig;
|
||||
import org.nl.acs.agv.server.NDCAgvService;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device_driver.agv.ndcone.AgvNdcOneDeviceDriver;
|
||||
import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver;
|
||||
import org.nl.acs.device_driver.autodoor.standard_autodoor.StandardAutodoorDeviceDriver;
|
||||
import org.nl.acs.device_driver.conveyor.standard_inspect_site.StandardInspectSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
@@ -20,8 +18,11 @@ import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
|
||||
import org.nl.acs.log.service.DeviceExecuteLogService;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.region.domain.Region;
|
||||
import org.nl.acs.region.service.RegionService;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
||||
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -30,13 +31,9 @@ import org.springframework.stereotype.Component;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import static org.nl.acs.agv.server.impl.NDCAgvServiceImpl.Bytes2HexString;
|
||||
|
||||
@@ -93,6 +90,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class);
|
||||
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
|
||||
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
|
||||
RegionService regionService = SpringContextHolder.getBean(RegionService.class);
|
||||
DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
|
||||
DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
|
||||
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
|
||||
@@ -244,18 +242,35 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
if (ObjectUtil.isNotEmpty(device)) {
|
||||
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
|
||||
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
|
||||
try {
|
||||
standardAutodoorDeviceDriver.writing("to_open", "1");
|
||||
standardAutodoorDeviceDriver.writing("to_close", "0");
|
||||
} catch (Exception e) {
|
||||
log.info("下发电气信号失败:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (standardAutodoorDeviceDriver.getOpen() == 1 && standardAutodoorDeviceDriver.getToOpen() == 1) {
|
||||
log.info("下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getOpen());
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
String region_code = (String) device.getExtraValue().get("region");
|
||||
if (StrUtil.isNotEmpty(region_code)) {
|
||||
Region region = regionService.findByCode(region_code);
|
||||
if (StrUtil.equals(region.getIs_charge(), CommonFinalParam.ZERO)) {
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
region.setIs_charge("1");
|
||||
region.setHas_agv("1");
|
||||
regionService.updateById(region);
|
||||
}
|
||||
} else {
|
||||
log.info("未下发NDC信号原因: 下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getToClose());
|
||||
try {
|
||||
standardAutodoorDeviceDriver.writing("to_open", "1");
|
||||
standardAutodoorDeviceDriver.writing("to_close", "0");
|
||||
} catch (Exception e) {
|
||||
log.info("下发电气信号失败:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (standardAutodoorDeviceDriver.getOpen() == 1 && standardAutodoorDeviceDriver.getToOpen() == 1) {
|
||||
log.info("下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getOpen());
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
} else {
|
||||
log.info("未下发NDC信号原因: 下发开门信号值为:{},读取开门信号值为:{}", standardAutodoorDeviceDriver.getToOpen(), standardAutodoorDeviceDriver.getToClose());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -270,18 +285,34 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
if (ObjectUtil.isNotEmpty(device)) {
|
||||
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
|
||||
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
|
||||
try {
|
||||
standardAutodoorDeviceDriver.writing("to_close", "1");
|
||||
standardAutodoorDeviceDriver.writing("to_open", "0");
|
||||
} catch (Exception e) {
|
||||
log.info("下发电气信号失败:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (standardAutodoorDeviceDriver.getClose() == 1) {
|
||||
log.info("读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
String region_code = (String) device.getExtraValue().get("region");
|
||||
if (StrUtil.isNotEmpty(region_code)) {
|
||||
Region region = regionService.findByCode(region_code);
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
region.setIs_charge("0");
|
||||
region.setHas_agv("0");
|
||||
regionService.updateById(region);
|
||||
} else {
|
||||
log.info("未下发NDC信号原因: 读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
|
||||
try {
|
||||
standardAutodoorDeviceDriver.writing("to_close", "1");
|
||||
standardAutodoorDeviceDriver.writing("to_open", "0");
|
||||
} catch (Exception e) {
|
||||
log.info("下发电气信号失败:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (standardAutodoorDeviceDriver.getClose() == 1) {
|
||||
log.info("读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||
standardAutodoorDeviceDriver.writing("to_close", "0");
|
||||
} else {
|
||||
log.info("未下发NDC信号原因: 读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -15,15 +15,8 @@ import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.FeedLmsRealFailed;
|
||||
import org.nl.acs.device_driver.agv.utils.TwoAgvPhase;
|
||||
import org.nl.acs.device_driver.conveyor.standard_inspect_site.StandardInspectSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.paper_tube_pick_site.PaperTubePickSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.storage.standard_storage.StandardStorageDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.HongXiangStationDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.ranging_stations.RangingStationsDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.waste_foil_weighing_station.WasteFoilWeighingStationDriver;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||
import org.nl.acs.history.ErrorUtil;
|
||||
@@ -36,21 +29,16 @@ import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
|
||||
import org.nl.acs.log.service.DeviceExecuteLogService;
|
||||
import org.nl.acs.monitor.DeviceStageMonitor;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.region.domain.Region;
|
||||
import org.nl.acs.region.service.RegionService;
|
||||
import org.nl.acs.task.service.TaskService;
|
||||
import org.nl.acs.task.service.dto.TaskDto;
|
||||
import org.nl.acs.task.service.impl.TaskServiceImpl;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
||||
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
||||
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
|
||||
/**
|
||||
@@ -226,26 +214,16 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
|
||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||
//放货确认
|
||||
if (standardOrdinarySiteDeviceDriver.getOption() == 1) {
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setOption(0);
|
||||
} else {
|
||||
log.info("等待一体机进行放货确认,设备号{},option值{}", standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行放货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行放货确认,设备号" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
}
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
||||
} else {
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
@@ -302,23 +280,39 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
log.info("未找到指令号{}对应的指令", ikey);
|
||||
return;
|
||||
}
|
||||
if (ObjectUtil.isEmpty(inst.getCarno())) {
|
||||
inst.setCarno(String.valueOf(carno));
|
||||
instructionService.update(inst);
|
||||
}
|
||||
|
||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
||||
//放货确认
|
||||
if (standardOrdinarySiteDeviceDriver.getOption() == 1) {
|
||||
log.info("等待一体机进行放货确认,指令号{},设备号{},option值{}", inst, standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.instruct_code(inst.getInstruction_code())
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行放货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setOption(0);
|
||||
LuceneLogDto logDto1 = LuceneLogDto.builder()
|
||||
.instruct_code(inst.getInstruction_code())
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行放货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto1.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto1);
|
||||
} else {
|
||||
log.info("等待一体机进行放货确认,指令号{},设备号{},option值{}", inst.getInstruction_code(), standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行放货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.instruct_code(inst.getInstruction_code())
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行放货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,26 +357,16 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||
//卸货确认
|
||||
if (standardOrdinarySiteDeviceDriver.getOption() == 2) {
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setOption(0);
|
||||
} else {
|
||||
log.info("等待一体机进行卸货确认,设备号{},option值{}", standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行卸货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行卸货确认,设备号" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
}
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
||||
|
||||
} else {
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
@@ -437,131 +421,39 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
||||
}
|
||||
}
|
||||
|
||||
//todo 待完善
|
||||
else if (phase == 0x4D) {
|
||||
if (agvaddr == 0) {
|
||||
agvaddr = agvaddr_copy;
|
||||
}
|
||||
if (agvaddr < 1) {
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("agv地址参数有误,phase:" + phase)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
return;
|
||||
}
|
||||
if (agvaddr != 0) {
|
||||
CommonFinalParam commonFinalParam = new CommonFinalParam();
|
||||
old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
|
||||
if (StrUtil.contains(old_device_code, commonFinalParam.getBARRE())) {
|
||||
String[] point = old_device_code.split(commonFinalParam.getBARRE());
|
||||
device_code = point[0];
|
||||
} else if (StrUtil.contains(old_device_code, commonFinalParam.getPOINT())) {
|
||||
String[] point = old_device_code.split("\\.");
|
||||
device_code = point[0];
|
||||
emptyNum = point[1];
|
||||
} else {
|
||||
device_code = old_device_code;
|
||||
}
|
||||
}
|
||||
|
||||
device = deviceAppService.findDeviceByCode(device_code);
|
||||
if (ObjectUtil.isEmpty(device_code)) {
|
||||
log.info(agvaddr + "对应设备号为空!");
|
||||
return;
|
||||
}
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
log.info("未找到指令号{}对应的指令", ikey);
|
||||
return;
|
||||
}
|
||||
|
||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
//通道1
|
||||
Region region = regionService.findByCode("1");
|
||||
if (StrUtil.equals(region.getIs_charge(), CommonFinalParam.ZERO)) {
|
||||
//卸货确认
|
||||
if (standardOrdinarySiteDeviceDriver.getOption() == 2) {
|
||||
log.info("等待一体机进行卸货确认,指令号{},设备号{},option值{}", inst.getInstruction_code(), standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.instruct_code(inst.getInstruction_code())
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行卸货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
region.setIs_charge("1");
|
||||
region.setHas_agv("1");
|
||||
regionService.updateById(region);
|
||||
}
|
||||
}
|
||||
}
|
||||
standardOrdinarySiteDeviceDriver.setOption(0);
|
||||
LuceneLogDto logDto1 = LuceneLogDto.builder()
|
||||
.instruct_code(inst.getInstruction_code())
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行卸货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto1.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto1);
|
||||
|
||||
//todo 待完善
|
||||
else if (phase == 0x4E) {
|
||||
if (agvaddr == 0) {
|
||||
agvaddr = agvaddr_copy;
|
||||
}
|
||||
if (agvaddr < 1) {
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("agv地址参数有误,phase:" + phase)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
return;
|
||||
}
|
||||
if (agvaddr != 0) {
|
||||
CommonFinalParam commonFinalParam = new CommonFinalParam();
|
||||
old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr);
|
||||
if (StrUtil.contains(old_device_code, commonFinalParam.getBARRE())) {
|
||||
String[] point = old_device_code.split(commonFinalParam.getBARRE());
|
||||
device_code = point[0];
|
||||
} else if (StrUtil.contains(old_device_code, commonFinalParam.getPOINT())) {
|
||||
String[] point = old_device_code.split("\\.");
|
||||
device_code = point[0];
|
||||
emptyNum = point[1];
|
||||
} else {
|
||||
device_code = old_device_code;
|
||||
log.info("等待一体机进行卸货确认,指令号{},设备号{},option值{}", inst.getInstruction_code(), standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption());
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "等待一体机进行卸货确认,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.instruct_code(inst.getInstruction_code())
|
||||
.device_code(standardOrdinarySiteDeviceDriver.getDevice_code())
|
||||
.content("等待一体机进行卸货确认,指令号:" + inst.getInstruction_code() + ",设备号:" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
}
|
||||
}
|
||||
|
||||
device = deviceAppService.findDeviceByCode(device_code);
|
||||
if (ObjectUtil.isEmpty(device_code)) {
|
||||
log.info(agvaddr + "对应设备号为空!");
|
||||
return;
|
||||
}
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
log.info("未找到指令号{}对应的指令", ikey);
|
||||
return;
|
||||
}
|
||||
|
||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
Region region = regionService.findByCode("1");
|
||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "反馈:" + data)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
region.setIs_charge("0");
|
||||
region.setHas_agv("0");
|
||||
regionService.updateById(region);
|
||||
}
|
||||
}
|
||||
|
||||
else if (phase == 0x70) {
|
||||
} else if (phase == 0x70) {
|
||||
//x坐标
|
||||
x = ikey;
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
|
||||
@@ -8,16 +8,13 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.agv.server.NDCAgvService;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device.service.dto.DeviceDto;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||
import org.nl.acs.history.ErrorUtil;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.log.service.DeviceExecuteLogService;
|
||||
@@ -267,15 +264,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
||||
move = LangProcess.msg("universal_two_yes");
|
||||
jo.put("hasGoods", true);
|
||||
}
|
||||
DeviceDto dto = deviceservice.findByCode(this.getDevice().getDevice_code());
|
||||
jo.put("zh_device_name", dto.getZh_device_name());
|
||||
jo.put("en_device_name", dto.getEn_device_name());
|
||||
jo.put("mode", mode);
|
||||
jo.put("move", move);
|
||||
jo.put("action", action);
|
||||
jo.put("isOnline", true);
|
||||
jo.put("error", ErrorUtil.getDictDetail("error_type", String.valueOf(this.getError())));
|
||||
jo.put("isError", this.getIserror());
|
||||
jo.put("option", option);
|
||||
jo.put("is_click", true);
|
||||
return jo;
|
||||
|
||||
@@ -2,41 +2,35 @@ package org.nl.acs.region.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.nl.acs.auto.initial.ApplicationAutoInitial;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.common.base.PageInfo;
|
||||
import org.nl.acs.common.base.impl.CommonServiceImpl;
|
||||
import org.nl.acs.custompolicy.domain.CustomPolicy;
|
||||
import org.nl.acs.custompolicy.server.dto.CustomPolicyDTO;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
import org.nl.acs.region.domain.Region;
|
||||
import org.nl.acs.region.service.RegionService;
|
||||
import org.nl.acs.region.service.dto.RegionDto;
|
||||
import org.nl.acs.region.service.mapper.RegionMapper;
|
||||
import org.nl.acs.task.domain.Task;
|
||||
import org.nl.acs.utils.ConvertUtil;
|
||||
import org.nl.acs.utils.PageUtil;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.language.LangProcess;
|
||||
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.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
@@ -121,9 +115,10 @@ public class RegionServiceImpl extends CommonServiceImpl<RegionMapper,Region> im
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(String[] ids) {
|
||||
Set<String> idsSet = new HashSet<>(1);
|
||||
idsSet.addAll(Arrays.asList(ids));
|
||||
regionMapper.upBatchIds(idsSet);
|
||||
List<Region> list = regionMapper.selectBatchIds(Arrays.asList(ids));
|
||||
for (Region region : list) {
|
||||
regionMapper.deleteById(region.getId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,24 +1,16 @@
|
||||
package org.nl.acs.task.domain;
|
||||
|
||||
import org.nl.acs.common.base.CommonModel;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.*;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.nl.acs.common.base.CommonModel;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author jiaolm
|
||||
@@ -196,6 +188,8 @@ public class Task extends CommonModel<Task> implements Serializable {
|
||||
|
||||
private String empty_site;
|
||||
|
||||
private String car_no;
|
||||
|
||||
|
||||
@NotBlank
|
||||
private String is_active;
|
||||
|
||||
@@ -57,7 +57,7 @@ public class TaskDto implements Serializable {
|
||||
/**
|
||||
* 车号
|
||||
*/
|
||||
private String carno;
|
||||
private String car_no;
|
||||
|
||||
/**
|
||||
* 复合任务
|
||||
|
||||
@@ -21,6 +21,9 @@ import org.nl.acs.AcsConfig;
|
||||
import org.nl.acs.agv.server.XianGongAgvService;
|
||||
import org.nl.acs.auto.initial.ApplicationAutoInitial;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.common.base.PageInfo;
|
||||
import org.nl.acs.common.base.QueryHelpMybatisPlus;
|
||||
import org.nl.acs.common.base.impl.CommonServiceImpl;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
import org.nl.acs.device.enums.DeviceType;
|
||||
import org.nl.acs.device.service.DeviceAssignedService;
|
||||
@@ -28,7 +31,6 @@ import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device.service.dto.DeviceAssignedDto;
|
||||
import org.nl.acs.device.service.impl.DeviceServiceImpl;
|
||||
import org.nl.acs.device_driver.DeviceDriverDefination;
|
||||
import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.storage.standard_storage.StandardStorageDeviceDriver;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
@@ -42,35 +44,30 @@ import org.nl.acs.route.domain.RoutePlan;
|
||||
import org.nl.acs.route.service.RouteLineService;
|
||||
import org.nl.acs.route.service.dto.RouteLineDto;
|
||||
import org.nl.acs.route.service.mapper.RoutePlanMapper;
|
||||
import org.nl.acs.task.domain.Task;
|
||||
import org.nl.acs.task.enums.AgvSystemTypeEnum;
|
||||
import org.nl.acs.task.enums.TaskStatusEnum;
|
||||
import org.nl.acs.task.enums.TaskTypeEnum;
|
||||
import org.nl.acs.task.service.TaskFeedbackService;
|
||||
import org.nl.acs.common.base.PageInfo;
|
||||
import org.nl.acs.common.base.QueryHelpMybatisPlus;
|
||||
import org.nl.acs.common.base.impl.CommonServiceImpl;
|
||||
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.acs.utils.ConvertUtil;
|
||||
import org.nl.common.utils.FileUtil;
|
||||
import org.nl.acs.utils.PageUtil;
|
||||
import org.nl.acs.task.domain.Task;
|
||||
import org.nl.acs.task.service.TaskService;
|
||||
import org.nl.acs.task.service.dto.TaskDto;
|
||||
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
|
||||
import org.nl.acs.task.service.dto.TaskQueryParam;
|
||||
import org.nl.acs.task.service.mapper.TaskMapper;
|
||||
import org.nl.acs.utils.ConvertUtil;
|
||||
import org.nl.acs.utils.PageUtil;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.FileUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.config.language.LangProcess;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
@@ -551,6 +548,14 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
||||
dto.setTask_id(IdUtil.simpleUUID());
|
||||
}
|
||||
String task_code = dto.getTask_code();
|
||||
if (StrUtil.isEmpty(dto.getCar_no())) {
|
||||
if ((dto.getStart_device_code().equals("A3") && dto.getNext_device_code().equals("A2")) || (dto.getStart_device_code().equals("A3") && dto.getNext_device_code().equals("A1"))) {
|
||||
dto.setCar_no("2");
|
||||
}
|
||||
if (dto.getStart_device_code().equals("A3") && dto.getNext_device_code().equals("A4")) {
|
||||
dto.setCar_no("1");
|
||||
}
|
||||
}
|
||||
if (StrUtil.isEmpty(task_code)) {
|
||||
task_code = CodeUtil.getNewCode("TASK_NO");
|
||||
task_code = CommonFinalParam.HYPHEN_ + task_code;
|
||||
@@ -1068,7 +1073,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
||||
map.put("路由方案编码", acsTask.getRoute_plan_code());
|
||||
map.put("是否需要反馈上位系统", acsTask.getIs_needfeedback());
|
||||
map.put("备注", acsTask.getRemark());
|
||||
map.put("agv车号", acsTask.getCarno());
|
||||
map.put("agv车号", acsTask.getCar_no());
|
||||
map.put("是否启用", acsTask.getIs_active());
|
||||
map.put("是否删除", acsTask.getIs_delete());
|
||||
map.put("创建者", acsTask.getCreate_by());
|
||||
@@ -1682,8 +1687,8 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
||||
if (ObjectUtil.isNotEmpty(entity.getWeight())) {
|
||||
feed_jo.put("weight", entity.getWeight());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(entity.getCarno())) {
|
||||
feed_jo.put("car_no", entity.getCarno());
|
||||
if (ObjectUtil.isNotEmpty(entity.getCar_no())) {
|
||||
feed_jo.put("car_no", entity.getCar_no());
|
||||
}
|
||||
JSONArray ja = new JSONArray();
|
||||
ja.add(feed_jo);
|
||||
|
||||
@@ -9,52 +9,36 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.AcsConfig;
|
||||
import org.nl.acs.address.service.AddressService;
|
||||
import org.nl.acs.address.service.dto.AddressDto;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver;
|
||||
import org.nl.acs.device_driver.conveyor.box_palletizing_manipulator.BoxPalletizingManipulatorDeviceDriver;
|
||||
import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.one_conveyor.fold_disc_site.FoldDiscSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.one_manipulator.box_package_manipulator.BoxPackageManipulatorDeviceDriver;
|
||||
import org.nl.acs.device_driver.paper_tube_device2.PaperTubeConveyor2DeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.blank_manipulator.BlankManipulatorDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.hongxiang_device.HongXiangConveyorDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.inflatable_shaft_library.InflatableShaftLibraryDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.subvolume_weighing_station.SubvolumeWeighingStationDriver;
|
||||
import org.nl.acs.device_driver.two_conveyor.waste_foil_weighing_station.WasteFoilWeighingStationDriver;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.region.domain.Region;
|
||||
import org.nl.acs.region.service.RegionService;
|
||||
import org.nl.acs.storage_cell.domain.StorageCell;
|
||||
import org.nl.acs.task.enums.TaskStatusEnum;
|
||||
import org.nl.acs.task.service.TaskService;
|
||||
import org.nl.acs.task.service.dto.TaskDto;
|
||||
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.language.LangProcess;
|
||||
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
||||
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
||||
import org.nl.hand.dto.HeadDto;
|
||||
import org.nl.hand.dto.HeadTaskDto;
|
||||
import org.nl.hand.service.HandService;
|
||||
import org.nl.hand.service.PdaService;
|
||||
import org.nl.system.service.dict.dao.Dict;
|
||||
import org.nl.system.service.dict.dao.mapper.SysDictMapper;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -62,6 +46,9 @@ import java.util.Map;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class PdaServiceImpl implements PdaService {
|
||||
|
||||
@Autowired
|
||||
LuceneExecuteLogService luceneExecuteLogService;
|
||||
@Autowired
|
||||
private DeviceService deviceService;
|
||||
|
||||
@@ -91,6 +78,7 @@ public class PdaServiceImpl implements PdaService {
|
||||
JSONArray data = new JSONArray();
|
||||
//查询所有设备
|
||||
List<Device> list = deviceService.lambdaQuery()
|
||||
.eq(Device::getDriver_code, "standard_ordinary_site")
|
||||
.list();
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
throw new BadRequestException(LangProcess.msg("error_no_regional"));
|
||||
@@ -154,6 +142,12 @@ public class PdaServiceImpl implements PdaService {
|
||||
jo.put("task_type", "1");
|
||||
jo.put("agv_system_type", "2");
|
||||
jo.put("priority", "1");
|
||||
if ((start_device_code.equals("A3") && next_device_code.equals("A2"))|| (start_device_code.equals("A3") && next_device_code.equals("A1"))) {
|
||||
jo.put("car_no", "2");
|
||||
}
|
||||
if (start_device_code.equals("A3") && next_device_code.equals("A4")){
|
||||
jo.put("car_no", "1");
|
||||
}
|
||||
|
||||
TaskDto task_dto = jo.toJavaObject(TaskDto.class);
|
||||
try {
|
||||
@@ -209,21 +203,27 @@ public class PdaServiceImpl implements PdaService {
|
||||
throw new BadRequestException("当前任务不存在!");
|
||||
}
|
||||
JSONObject resultJson = new JSONObject();
|
||||
Instruction instruction = instructionService.findByTaskid(dto.getTask_id(), "instruction_status <2 ");
|
||||
if (instruction != null) {
|
||||
resultJson.put("message", "有指令未完成!");
|
||||
if (Integer.parseInt(dto.getTask_status()) == 0) {
|
||||
TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
|
||||
taskIdAndStatusDTO.setTask_id(dto.getTask_id());
|
||||
taskIdAndStatusDTO.setTask_status(dto.getTask_status());
|
||||
try {
|
||||
taskserver.finish(taskIdAndStatusDTO);
|
||||
} catch (Exception e) {
|
||||
resultJson.put("message", e.getMessage());
|
||||
return resultJson;
|
||||
}
|
||||
resultJson.put("message", "强制完成成功");
|
||||
return resultJson;
|
||||
}
|
||||
TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
|
||||
taskIdAndStatusDTO.setTask_id(dto.getTask_id());
|
||||
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
|
||||
try {
|
||||
taskserver.finish(taskIdAndStatusDTO);
|
||||
Instruction instruction = instructionService.findByTaskid(dto.getTask_id(), "1");
|
||||
instructionService.finish(instruction);
|
||||
} catch (Exception e) {
|
||||
resultJson.put("message", e.getMessage());
|
||||
return resultJson;
|
||||
}
|
||||
resultJson.put("message", "操作成功");
|
||||
resultJson.put("message", "强制完成成功");
|
||||
return resultJson;
|
||||
}
|
||||
|
||||
@@ -288,6 +288,12 @@ public class PdaServiceImpl implements PdaService {
|
||||
if (device_k.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device_k.getDeviceDriver();
|
||||
standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option));
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("设备号:" + device_code + ",option当前值:" + standardOrdinarySiteDeviceDriver.getOption())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
}
|
||||
JSONObject resultJson = new JSONObject();
|
||||
if (ObjectUtil.isEmpty(errArr)) {
|
||||
@@ -327,7 +333,7 @@ public class PdaServiceImpl implements PdaService {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryDevice(String jsonObject) throws Exception {
|
||||
JSONArray backja = new JSONArray();
|
||||
JSONObject resultJson = new JSONObject();
|
||||
JSONArray datas = JSONArray.parseArray(jsonObject);
|
||||
//agv
|
||||
AgvNdcTwoDeviceDriver agvNdcTwoDeviceDriver;
|
||||
@@ -347,18 +353,18 @@ public class PdaServiceImpl implements PdaService {
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) {
|
||||
agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) device.getDeviceDriver();
|
||||
jo.put("device_code", agvNdcTwoDeviceDriver.getDevice().getDevice_code());
|
||||
jo.put("x", agvNdcTwoDeviceDriver.getX());
|
||||
jo.put("y", agvNdcTwoDeviceDriver.getY());
|
||||
jo.put("angle", agvNdcTwoDeviceDriver.getAngle());
|
||||
ja.put(agvNdcTwoDeviceDriver.getDevice().getDevice_code(), jo);
|
||||
if (device_code.equals("1")) {
|
||||
resultJson.put("one", jo);
|
||||
} else {
|
||||
resultJson.put("two", jo);
|
||||
}
|
||||
}
|
||||
backja.add(ja);
|
||||
}
|
||||
JSONObject resultJson = new JSONObject();
|
||||
resultJson.put("status", HttpStatus.OK.value());
|
||||
resultJson.put("message", "操作成功");
|
||||
resultJson.put("data", backja);
|
||||
return resultJson;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,14 @@
|
||||
package org.nl.system.service.quartz.task;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.nl.acs.common.base.CommonFinalParam;
|
||||
import org.nl.acs.device.domain.Device;
|
||||
import org.nl.acs.instruction.domain.InstructionMybatis;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
import org.nl.acs.instruction.enums.InstructionStatusEnum;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.instruction.domain.Instruction;
|
||||
import org.nl.acs.limit_regional.server.LimitRegionalService;
|
||||
import org.nl.acs.limit_regional.server.dto.LimitRegionalDto;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.opc.DeviceAppServiceImpl;
|
||||
import org.nl.acs.route.service.RouteLineService;
|
||||
@@ -86,6 +79,7 @@ public class AutoCreateInst {
|
||||
String route_plan_code = acsTask.getRoute_plan_code();
|
||||
String vehicleType = acsTask.getVehicle_type();
|
||||
String agv_system_type = acsTask.getAgv_system_type();
|
||||
String car_no = acsTask.getCar_no();
|
||||
|
||||
String start_height = acsTask.getStart_height();
|
||||
String next_height = acsTask.getNext_height();
|
||||
@@ -163,6 +157,7 @@ public class AutoCreateInst {
|
||||
instdto.setStart_height(start_height);
|
||||
instdto.setNext_height(next_height);
|
||||
instdto.setAgv_action_type(agvActionType);
|
||||
instdto.setCarno(car_no);
|
||||
//判断agv系统
|
||||
//1、1楼叉车系统
|
||||
//2、2楼1区域AGV系统
|
||||
|
||||
@@ -10,7 +10,7 @@ spring:
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:stand_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:lzhl_two_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:xlm_acs}?serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:jinbao}?serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:123456}
|
||||
# password: ${DB_PWD:p@ssw0rd}
|
||||
|
||||
@@ -6,7 +6,7 @@ spring:
|
||||
freemarker:
|
||||
check-template-location: false
|
||||
profiles:
|
||||
active: dev
|
||||
active: prod
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
data:
|
||||
|
||||
@@ -62,9 +62,9 @@ universal_notCreateInstMessage9=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmode!=2\uFF0C\u65E
|
||||
universal_notCreateInstMessage10=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmove!=0\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
|
||||
universal_notCreateInstMessage11=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=2\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
|
||||
universal_notCreateInstMessage12=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=1\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
|
||||
universal_actionMessage1=\u4E0D\u5141\u8BB8\u53D6\u653E
|
||||
universal_actionMessage2=\u5141\u8BB8\u53D6\u653E
|
||||
universal_actionMessage3=\u5141\u8BB8\u79BB\u5F00
|
||||
universal_actionMessage1=\u5F85\u673A
|
||||
universal_actionMessage2=\u653E\u8D27\u786E\u8BA4
|
||||
universal_actionMessage3=\u5378\u8D27\u786E\u8BA4
|
||||
universal_actionMessage4=\u8BF7\u6C42\u52A8\u4F5C\u5DF2\u590D\u4F4D
|
||||
universal_actionMessage5=\u8BF7\u6C42\u52A8\u4F5C\u672A\u590D\u4F4D
|
||||
universal_actionMessage6=\u5141\u8BB8\u53D6
|
||||
|
||||
@@ -43,9 +43,9 @@ universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u7
|
||||
universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
|
||||
universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
|
||||
universal_feedMessage6=\u4EFB\u52A1\u5B8C\u6210
|
||||
universal_actionMessage1=\u4E0D\u5141\u8BB8\u53D6\u653E
|
||||
universal_actionMessage2=\u5141\u8BB8\u53D6\u653E
|
||||
universal_actionMessage3=\u5141\u8BB8\u79BB\u5F00
|
||||
universal_actionMessage1=\u5F85\u673A
|
||||
universal_actionMessage2=\u653E\u8D27\u786E\u8BA4
|
||||
universal_actionMessage3=\u5378\u8D27\u786E\u8BA4
|
||||
universal_actionMessage4=\u8BF7\u6C42\u52A8\u4F5C\u5DF2\u590D\u4F4D
|
||||
universal_actionMessage5=\u8BF7\u6C42\u52A8\u4F5C\u672A\u590D\u4F4D
|
||||
universal_actionMessage6=\u5141\u8BB8\u53D6
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
<?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="AgvNdcTwoDeviceDriver" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ndc-agv请求/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>15</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>50MB</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>
|
||||
<charset>${log.charset}</charset>
|
||||
</encoder>
|
||||
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver" level="info" additivity="true">
|
||||
<appender-ref ref="AgvNdcTwoDeviceDriver"/>
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -73,30 +73,6 @@ https://juejin.cn/post/6844903775631572999
|
||||
<!-- <appender-ref ref="asyncFileAppender"/>-->
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
<!-- <logger name="jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.hibernate" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.quartz" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="com.google" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.redisson" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.springframework.data" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.jinterop" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>-->
|
||||
</springProfile>
|
||||
|
||||
<!--测试环境:打印控制台-->
|
||||
@@ -115,6 +91,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<root level="info">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
<logger name="jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
|
||||
@@ -8,8 +8,13 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
|
||||
import java.util.Scanner;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.CompletionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -25,23 +30,39 @@ public class ApplicationTest {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
System.out.println("请输入第一个数:");
|
||||
int a = scanner.nextInt();
|
||||
System.out.println("请输入第一个数:");
|
||||
int b = scanner.nextInt();
|
||||
System.out.println("请输入第一个数:");
|
||||
int c = scanner.nextInt();
|
||||
//求最小值
|
||||
int min = (((a < b) ? a : b) < c) ? ((a < b) ? a : b) : c;
|
||||
//求最大值
|
||||
int max = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
|
||||
//求中间值
|
||||
int mid = a + b + c - max - min;
|
||||
//排序
|
||||
System.out.println("最小值为:" + min + "中间值为:" + mid + "最大值为:" + max);
|
||||
List<String> list = Arrays.asList("a", "b", "c");
|
||||
long a = list.stream().filter(s -> s.contains("a")).count();
|
||||
System.out.println(a);
|
||||
list.stream().filter(s -> s.contains("a")).forEach(System.out::println);
|
||||
List<String> list1 = list.stream().collect(Collectors.toList());
|
||||
list1.forEach(System.out::println);
|
||||
}
|
||||
@Test
|
||||
void test() {
|
||||
Boolean b = true;
|
||||
if (!b)
|
||||
System.out.println(b);
|
||||
}
|
||||
@Test
|
||||
void test1() {
|
||||
int a = 1;
|
||||
int b = 10;
|
||||
b++;
|
||||
int c = countSum(a,b);
|
||||
System.out.println(c);
|
||||
}
|
||||
|
||||
@Test
|
||||
void test2() {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < 50; i++) {
|
||||
sum += i;
|
||||
System.out.println(sum);
|
||||
}
|
||||
}
|
||||
|
||||
private int countSum(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
BIN
acs2/nladmin-ui/src/assets/images/1.png
Normal file
BIN
acs2/nladmin-ui/src/assets/images/1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -14,7 +14,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Logo from '@/assets/images/newloge.png'
|
||||
import Logo from '@/assets/images/1.png'
|
||||
import variables from '@/assets/styles/variables.scss'
|
||||
export default {
|
||||
name: 'SidebarLogo',
|
||||
@@ -26,7 +26,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '山东金宝铜箔ACS系统',
|
||||
title: '山东金宝ACS系统',
|
||||
logo: Logo,
|
||||
title_param: 'platform'
|
||||
}
|
||||
@@ -65,8 +65,8 @@ export default {
|
||||
width: 100%;
|
||||
|
||||
& .sidebar-logo {
|
||||
width: 55px;
|
||||
height: 15px;
|
||||
width: 75px;
|
||||
height: 50px;
|
||||
vertical-align: middle;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
@@ -242,8 +242,7 @@ export default {
|
||||
rules: {},
|
||||
region: [
|
||||
{ region_name: '区域一', region_number: '1' },
|
||||
{ region_name: '区域二', region_number: '2' },
|
||||
{ region_name: '区域三', region_number: '3' }
|
||||
{ region_name: '区域二', region_number: '2' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
style="width: 190px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Task_status')">
|
||||
@@ -57,7 +57,7 @@
|
||||
style="width: 190px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option v-for="item in dict.task_status" :key="item.id" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in dict.task_status" :key="item.id" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Task_type')">
|
||||
@@ -71,7 +71,7 @@
|
||||
style="width: 190px"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Origin_or_destination')">
|
||||
@@ -86,7 +86,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.time')">
|
||||
<Search />
|
||||
<Search/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- <el-input-->
|
||||
@@ -125,7 +125,7 @@
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item v-if="false" label="任务标识" prop="task_id">
|
||||
<el-input v-model="form.task_id" style="width: 370px;" />
|
||||
<el-input v-model="form.task_id" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Material_type')">
|
||||
<el-select
|
||||
@@ -251,18 +251,21 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.select.Priority')">
|
||||
<el-input v-model="form.priority" style="width: 370px;" />
|
||||
<el-input v-model="form.priority" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.select.Vehicle_number')">
|
||||
<el-input v-model="form.vehicle_code" style="width: 370px;" />
|
||||
<el-input v-model="form.vehicle_code" style="width: 370px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.select.Description')" prop="description">
|
||||
<el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea" />
|
||||
<el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">{{
|
||||
$t('task.select.Confirm')
|
||||
}}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
@@ -274,13 +277,16 @@
|
||||
style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
<el-table-column v-if="false" prop="task_id" label="任务标识" />
|
||||
<el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')" :min-width="flexWidth('task_code',crud.data,$t('task.txt_box.Task_code'))" />
|
||||
<el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')" />
|
||||
<el-table-column v-if="false" prop="task_id" label="任务标识"/>
|
||||
<el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')"
|
||||
:min-width="flexWidth('task_code',crud.data,$t('task.txt_box.Task_code'))"/>
|
||||
<el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')"/>
|
||||
<el-table-column prop="task_type" :label="$t('task.txt_box.Task_type')" width="100px">
|
||||
debugger
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.class_type!=null && scope.row.class_type.length===2 ">{{ dict.label.task_type[scope.row.class_type] }}</span>
|
||||
<span v-if="scope.row.class_type!=null && scope.row.class_type.length===2 ">{{
|
||||
dict.label.task_type[scope.row.class_type]
|
||||
}}</span>
|
||||
<span v-else>{{ dict.label.task_type[scope.row.task_type] }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -292,22 +298,30 @@
|
||||
<span v-if="scope.row.task_status=='3' ">{{ $t('task.select.Cancel') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="priority" :label="$t('TaskRecord.table.Priority')" :min-width="flexWidth('priority',crud.data,$t('TaskRecord.table.Priority'))" />
|
||||
<el-table-column prop="start_point_code" :label="$t('task.select.Start_point')" :min-width="flexWidth('start_point_code',crud.data,$t('task.select.Start_point'))" />
|
||||
<el-table-column prop="next_point_code" :label="$t('task.select.Destination')" :min-width="flexWidth('next_point_code',crud.data,$t('task.select.Destination'))" />
|
||||
<el-table-column prop="start_point_code2" :label="$t('TaskRecord.table.Starting_point_two')" :min-width="flexWidth('start_point_code2',crud.data,$t('TaskRecord.table.Starting_point_two'))" />
|
||||
<el-table-column prop="next_point_code2" :label="$t('TaskRecord.table.Endpoint_two')" :min-width="flexWidth('next_point_code2',crud.data,$t('TaskRecord.table.Endpoint_two'))" />
|
||||
<el-table-column prop="interaction_json" :label="$t('task.select.Interaction_json')" :show-overflow-tooltip="true" width="150px" />
|
||||
<el-table-column prop="matarial" :label="$t('TaskRecord.table.Material')" />
|
||||
<el-table-column prop="quantity" :label="$t('TaskRecord.table.Quantity')" />
|
||||
<el-table-column prop="remark" :label="$t('task.select.Remark')" />
|
||||
<el-table-column prop="create_by" :label="$t('task.select.Creator')" />
|
||||
<el-table-column prop="create_time" :label="$t('task.select.Create_time')" width="135" />
|
||||
<el-table-column prop="update_by" :label="$t('TaskRecord.table.Update_by')" :min-width="flexWidth('update_by',crud.data,$t('TaskRecord.table.Update_by'))" />
|
||||
<el-table-column prop="update_time" :label="$t('TaskRecord.table.Update_time')" :min-width="flexWidth('update_time',crud.data,$t('task.select.Update_time'))" />
|
||||
<el-table-column prop="priority" :label="$t('TaskRecord.table.Priority')"
|
||||
:min-width="flexWidth('priority',crud.data,$t('TaskRecord.table.Priority'))"/>
|
||||
<el-table-column prop="start_point_code" :label="$t('task.select.Start_point')"
|
||||
:min-width="flexWidth('start_point_code',crud.data,$t('task.select.Start_point'))"/>
|
||||
<el-table-column prop="next_point_code" :label="$t('task.select.Destination')"
|
||||
:min-width="flexWidth('next_point_code',crud.data,$t('task.select.Destination'))"/>
|
||||
<el-table-column prop="start_point_code2" :label="$t('TaskRecord.table.Starting_point_two')"
|
||||
:min-width="flexWidth('start_point_code2',crud.data,$t('TaskRecord.table.Starting_point_two'))"/>
|
||||
<el-table-column prop="next_point_code2" :label="$t('TaskRecord.table.Endpoint_two')"
|
||||
:min-width="flexWidth('next_point_code2',crud.data,$t('TaskRecord.table.Endpoint_two'))"/>
|
||||
<el-table-column prop="interaction_json" :label="$t('task.select.Interaction_json')"
|
||||
:show-overflow-tooltip="true" width="150px"/>
|
||||
<el-table-column prop="matarial" :label="$t('TaskRecord.table.Material')"/>
|
||||
<el-table-column prop="quantity" :label="$t('TaskRecord.table.Quantity')"/>
|
||||
<el-table-column prop="remark" :label="$t('task.select.Remark')"/>
|
||||
<el-table-column prop="create_by" :label="$t('task.select.Creator')"/>
|
||||
<el-table-column prop="create_time" :label="$t('task.select.Create_time')" width="135"/>
|
||||
<el-table-column prop="update_by" :label="$t('TaskRecord.table.Update_by')"
|
||||
:min-width="flexWidth('update_by',crud.data,$t('TaskRecord.table.Update_by'))"/>
|
||||
<el-table-column prop="update_time" :label="$t('TaskRecord.table.Update_time')"
|
||||
:min-width="flexWidth('update_time',crud.data,$t('task.select.Update_time'))"/>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
<pagination/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -315,14 +329,14 @@
|
||||
<script>
|
||||
import Search from '@/views/lucene/time'
|
||||
import crudTask from '@/api/acs/task/task'
|
||||
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||
import CRUD, {crud, form, header, presenter} from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import deviceCrud from '@/api/acs/device/device'
|
||||
import routeCurd from '@/api/acs/route/routePlan'
|
||||
import { getDicts } from '@/views/system/dict/dict'
|
||||
import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
import {getDicts} from '@/views/system/dict/dict'
|
||||
import {download} from '@/api/data'
|
||||
import {downloadFile} from '@/utils'
|
||||
|
||||
const defaultForm = {
|
||||
task_id: null,
|
||||
@@ -347,7 +361,7 @@ const defaultForm = {
|
||||
}
|
||||
export default {
|
||||
name: 'Task',
|
||||
components: { pagination, crudOperation, Search },
|
||||
components: {pagination, crudOperation, Search},
|
||||
dicts: ['task_status', 'task_type'],
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
@@ -356,8 +370,8 @@ export default {
|
||||
url: 'api/task/getAll',
|
||||
idField: 'task_id',
|
||||
sort: 'task_id,desc',
|
||||
query: { is_over: '1' },
|
||||
crudMethod: { ...crudTask },
|
||||
query: {is_over: '1'},
|
||||
crudMethod: {...crudTask},
|
||||
optShow: {}
|
||||
})
|
||||
},
|
||||
@@ -424,28 +438,28 @@ export default {
|
||||
},
|
||||
rules: {
|
||||
start_point_code: [
|
||||
{ required: true, message: '起点不能为空', trigger: 'change' }
|
||||
{required: true, message: '起点不能为空', trigger: 'change'}
|
||||
],
|
||||
next_point_code: [
|
||||
{ required: true, message: '终点不能为空', trigger: 'change' }
|
||||
{required: true, message: '终点不能为空', trigger: 'change'}
|
||||
],
|
||||
from_y: [
|
||||
{ validator: checkFromY, trigger: 'change' }
|
||||
{validator: checkFromY, trigger: 'change'}
|
||||
],
|
||||
from_z: [
|
||||
{ validator: checkFromZ, trigger: 'change' }
|
||||
{validator: checkFromZ, trigger: 'change'}
|
||||
],
|
||||
to_y: [
|
||||
{ validator: checkToY, trigger: 'change' }
|
||||
{validator: checkToY, trigger: 'change'}
|
||||
],
|
||||
to_z: [
|
||||
{ validator: checkToZ, trigger: 'change' }
|
||||
{validator: checkToZ, trigger: 'change'}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
rangeDate: function(newVal, oldVal) {
|
||||
rangeDate: function (newVal, oldVal) {
|
||||
if (newVal !== null) {
|
||||
this.tableParams.beginDate = newVal[0]
|
||||
this.tableParams.endDate = newVal[1]
|
||||
@@ -495,9 +509,11 @@ export default {
|
||||
vehicle_code: this.query.vehicle_code,
|
||||
material_type: this.query.material_type,
|
||||
status: this.query.status,
|
||||
point_code: this.crud.pointCode,
|
||||
createTime: this.crud.createTime,
|
||||
end_time: this.crud.endTime // 假设 this.crud.endTime 是你的结束时间
|
||||
point_code: this.query.point_code,
|
||||
}
|
||||
if (this.crud.query.createTime !== undefined) {
|
||||
params.createTime = this.crud.query.createTime[0]
|
||||
params.end_time = this.crud.query.createTime[1]
|
||||
}
|
||||
const url = 'api/task/downloadTaskLogging'
|
||||
download(url, params).then(result => {
|
||||
|
||||
@@ -114,30 +114,12 @@
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="formDia" :title="crud.status.title" width="1100px">
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="formDia" :title="crud.status.title" width="600px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="135px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<div class="grid-content bg-purple"/>
|
||||
<el-form-item v-if="false" label="任务标识" prop="task_id">
|
||||
<el-input v-model="form.task_id" style="width: 240px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Material_type')">
|
||||
<el-select
|
||||
v-model="form.material"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
:placeholder="$t('task.select.Placeholder')"
|
||||
@change="isDisabled=false"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.material_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Task_type')">
|
||||
<el-select
|
||||
v-model="form.task_type"
|
||||
@@ -188,23 +170,23 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="$t('task.txt_box.agv_action_type')">
|
||||
<el-select
|
||||
v-model="form.agv_action_type"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
:placeholder="$t('task.select.Placeholder')"
|
||||
default-first-option
|
||||
@change="isDisabled=false"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in agvActionList"
|
||||
:key="item.key"
|
||||
:label="item.key"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="路由方案">
|
||||
<el-select
|
||||
v-model="form.route_plan_code"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
default-first-option
|
||||
@change="isDisabled=false"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in routeList"
|
||||
:key="item.plan_code"
|
||||
:label="item.plan_name"
|
||||
:value="item.plan_code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.select.Start_point')" prop="start_point_code">
|
||||
<el-select
|
||||
v-model="form.start_point_code"
|
||||
@@ -304,11 +286,6 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="grid-content bg-purple-light"/>
|
||||
|
||||
<el-form-item v-show="start_flag" :label="$t('task.select.Starting_column')" prop="from_y2">
|
||||
<el-select
|
||||
v-model="form.from_y2"
|
||||
@@ -381,9 +358,6 @@
|
||||
<el-form-item :label="$t('task.txt_box.Vehicle_number')">
|
||||
<el-input v-model="form.vehicle_code" style="width: 370px;" @change="isDisabled=false"/>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
:range-separator="$t('monitor.lucence.until')"
|
||||
:start-placeholder="$t('auto.common.startDate')"
|
||||
:end-placeholder="$t('auto.common.endDate')"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
align="right"
|
||||
/>
|
||||
<rrOperation />
|
||||
|
||||
Reference in New Issue
Block a user