This commit is contained in:
张江玮
2023-11-16 14:24:09 +08:00
parent 03c2346d6d
commit 0a7d4f53cf
27 changed files with 858 additions and 192 deletions

View File

@@ -74,4 +74,6 @@ public interface NDCAgvService {
* @return
*/
public boolean createChargingTaskToNDC(String carno);
AgvDto findByCarNumber(String carNumber);
}

View File

@@ -3,6 +3,8 @@ package org.nl.acs.agv.server.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Data
public class AgvDto implements Serializable {
@@ -74,4 +76,14 @@ public class AgvDto implements Serializable {
*/
private String transportOrder;
/**
* 故障信息
*/
private List<String> faultInfo = new ArrayList<>();
/**
* 类型
*/
private String type = "AGV";
}

View File

@@ -43,7 +43,7 @@ public class NDCAgvServiceImpl implements NDCAgvService {
private final DeviceExecuteLogService logServer;
Map<String, AgvDto> AGVDeviceStatus = new HashMap<>();
Map<String, AgvDto> agv = new HashMap<>();
private String log_file_type = "log_file_type";
private String log_type = "agv接口日志";
@@ -376,15 +376,15 @@ public class NDCAgvServiceImpl implements NDCAgvService {
@Override
public Map<String, AgvDto> findAllAgvFromCache() {
return AGVDeviceStatus;
return agv;
}
@Override
public void updateAgvFromCache(AgvDto dto) {
if (AGVDeviceStatus.containsKey(dto.getName())) {
AGVDeviceStatus.remove(dto.getName());
if (agv.containsKey(dto.getName())) {
agv.remove(dto.getName());
}
AGVDeviceStatus.put(dto.getName(), dto);
agv.put(dto.getName(), dto);
}
@Override
@@ -441,4 +441,16 @@ public class NDCAgvServiceImpl implements NDCAgvService {
MDC.remove(log_file_type);
}
}
@Override
public AgvDto findByCarNumber(String carNumber) {
if (agv.containsKey(carNumber) && agv.get(carNumber) != null) {
return agv.get(carNumber);
} else {
AgvDto dto = new AgvDto();
dto.setName(carNumber);
agv.put(carNumber, dto);
return dto;
}
}
}

View File

@@ -133,11 +133,9 @@ public class LnshFoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implem
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code, "status", String.valueOf(status));
logServer.deviceExecuteLog(this.device_code, "", "", "信号status" + last_status + " -> " + status);
}

View File

@@ -131,11 +131,9 @@ public class LnshKilnLaneDeviceDriver extends AbstractOpcDeviceDriver implements
logServer.deviceExecuteLog(this.device_code,"","","信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status));
logServer.deviceExecuteLog(this.device_code,"","","信号status" + last_status + " -> " + status);
}

View File

@@ -114,11 +114,9 @@ public class LnshKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implement
logServer.deviceExecuteLog(this.device_code,"","","信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status));
logServer.deviceExecuteLog(this.device_code,"","","信号status" + last_status + " -> " + status);
}

View File

@@ -142,11 +142,9 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen
logServer.deviceExecuteLog(this.device_code,"","","信号error" + last_error + " -> " + error);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status));
logServer.deviceExecuteLog(this.device_code,"","","信号status" + last_status + " -> " + status);
}

View File

@@ -133,11 +133,9 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem
logServer.deviceExecuteLog(this.device_code,"","","信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status));
logServer.deviceExecuteLog(this.device_code,"","","信号status" + last_status + " -> " + status);
}

View File

@@ -158,11 +158,9 @@ public class LnshPackageLineDeviceDriver extends AbstractOpcDeviceDriver impleme
logServer.deviceExecuteLog(this.device_code, "", "", "信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code, "status", String.valueOf(status));
logServer.deviceExecuteLog(this.device_code, "", "", "信号status" + last_status + " -> " + status);
}

View File

@@ -163,11 +163,9 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD
logServer.deviceExecuteLog(this.device_code,"","","信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status));
logServer.deviceExecuteLog(this.device_code,"","","信号status" + last_status + " -> " + status);
}

View File

@@ -127,11 +127,9 @@ public class LnshPalletizingManipulatorDeviceDriver extends AbstractOpcDeviceDri
logServer.deviceExecuteLog(this.device_code,"","","信号mode" + last_mode + " -> " + mode);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status));
logServer.deviceExecuteLog(this.device_code,"","","信号status" + last_status + " -> " + status);
}

View File

@@ -148,11 +148,9 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De
logServer.deviceExecuteLog(this.device_code, "", "", "信号error" + last_error + " -> " + error);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code, "status", String.valueOf(status));
logServer.deviceExecuteLog(this.device_code, "", "", "信号status" + last_status + " -> " + status);
}

View File

@@ -171,11 +171,9 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
logServer.deviceExecuteLog(this.device_code, "", "", "信号error" + last_error + " -> " + error);
}
if (status != last_status) {
if (status == 3) {
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("error", this.error);
this.errorDeviceRecord = true;
}
this.errorDeviceRecordRequest.put("device_code", this.device_code);
this.errorDeviceRecordRequest.put("status", this.status);
this.errorDeviceRecord = true;
logServer.deviceItemValue(this.device_code, "status", String.valueOf(status));
logServer.deviceExecuteLog(this.device_code, "", "", "信号status" + last_status + " -> " + status);
}

View File

@@ -114,4 +114,11 @@ public class WmsToAcsController {
public ResponseEntity<Object> queryBzx() {
return new ResponseEntity<>(wmstoacsService.queryBzx(), HttpStatus.OK);
}
@PostMapping("/getDeviceStatus2")
@Log("查询大屏设备")
@ApiOperation("查询大屏设备")
public ResponseEntity<Object> getDeviceStatus2(@RequestBody JSONArray param) {
return new ResponseEntity<>(wmstoacsService.getDeviceStatus2(param), HttpStatus.OK);
}
}

View File

@@ -79,4 +79,6 @@ public interface WmsToAcsService {
JSONObject writeVehicle(JSONArray param);
JSONObject queryBzx();
JSONObject getDeviceStatus2(JSONArray param);
}

View File

@@ -1275,4 +1275,174 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
log.info("queryBzx - 返回参数 {}", data);
return result;
}
@Override
public JSONObject getDeviceStatus2(JSONArray param) {
log.info("getDeviceStatus2 - 请求参数 {}", param);
if (ObjectUtil.isNotEmpty(param)) {
for (int i = 0; i < param.size(); i++) {
JSONObject status = param.getJSONObject(i);
if (ObjectUtil.isEmpty(status)) {
continue;
}
String deviceCode = status.getString("device_code");
if (StrUtil.isBlank(deviceCode)) {
continue;
} else if (deviceCode.startsWith("HLJ") && !deviceCode.contains("XL")) {
deviceCode = "HLJ";
}
Device device = DeviceAppService.findDeviceByCode(deviceCode);
if (ObjectUtil.isEmpty(device)) {
continue;
}
DeviceDriver deviceDriver = device.getDeviceDriver();
if (deviceDriver instanceof LnshMixingMillDeviceDriver) {
LnshMixingMillDeviceDriver driver = (LnshMixingMillDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("error", driver.getError());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
status.put("weight", driver.getWeight());
status.put("mix_num", driver.getMix_num());
status.put("material", driver.getMaterial());
} else if (deviceDriver instanceof LnshStationDeviceDriver) {
LnshStationDeviceDriver driver = (LnshStationDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("move", driver.getMove());
status.put("action", driver.getAction());
status.put("ioaction", driver.getIo_action());
status.put("error", driver.getError());
status.put("task", driver.getTask());
status.put("weight", driver.getWeight());
status.put("material", driver.getMaterial());
status.put("barcode", driver.getBarcode());
} else if (deviceDriver instanceof StandardInspectSiteDeviceDriver) {
StandardInspectSiteDeviceDriver driver = (StandardInspectSiteDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("move", driver.getMove());
status.put("error", driver.getError());
status.put("task", driver.getTask());
} else if (deviceDriver instanceof LnshPressDeviceDriver) {
LnshPressDeviceDriver driver = (LnshPressDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("error", driver.getError());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
status.put("material", driver.getMaterial());
status.put("qty", driver.getQty());
status.put("weight", driver.getWeight());
status.put("qualified", driver.getQualified());
status.put("unqualified", driver.getUnqualified());
status.put("order_No", driver.getOrder_No());
} else if (deviceDriver instanceof LnshPalletizingManipulatorDeviceDriver) {
LnshPalletizingManipulatorDeviceDriver driver = (LnshPalletizingManipulatorDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("action", driver.getAction());
status.put("error", driver.getError());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
} else if (deviceDriver instanceof LnshPalletizingManipulatorSiteDeviceDriver) {
LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("move", driver.getMove());
status.put("action", driver.getAction());
status.put("ioaction", driver.getIo_action());
status.put("error", driver.getError());
status.put("task", driver.getTask());
status.put("weight", driver.getWeight());
status.put("material", driver.getMaterial());
status.put("barcode", driver.getBarcode());
status.put("unqualified_qty", driver.getUnqualified_qty());
status.put("encoder_qty", driver.getEncoder_qty());
} else if (deviceDriver instanceof LnshKilnTrussDeviceDriver) {
LnshKilnTrussDeviceDriver driver = (LnshKilnTrussDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
} else if (deviceDriver instanceof LnshKilnLaneDeviceDriver) {
LnshKilnLaneDeviceDriver driver = (LnshKilnLaneDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
status.put("car_sum", driver.getCar_sum());
status.put("nullCar_qty", driver.getNullCar_qty());
status.put("burning_car_qty", driver.getBurning_car_qty());
} else if (deviceDriver instanceof LnshOutKilnTrussDeviceDriver) {
LnshOutKilnTrussDeviceDriver driver = (LnshOutKilnTrussDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("outKiln_move", driver.getOutKiln_move());
status.put("outKiln_barcode", driver.getOutKiln_barcode());
status.put("outKiln_device", driver.getOutKiln_device());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
} else if (deviceDriver instanceof LnshPackagePalletManipulatorDeviceDriver) {
LnshPackagePalletManipulatorDeviceDriver driver = (LnshPackagePalletManipulatorDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("error", driver.getError());
status.put("putStation", driver.getPut_station());
status.put("material", driver.getMaterial());
status.put("qty", driver.getQty());
status.put("order_qty", driver.getOrder_qty());
status.put("open_time", driver.getOpen_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
status.put("order_No", driver.getOrder_No());
status.put("product_code", driver.getProduct_code());
status.put("AlongSide", driver.getAlongSide());
status.put("BshortSide", driver.getBshortSide());
status.put("Htrapezoidal", driver.getHtrapezoidal());
status.put("Wthickness", driver.getWthickness());
} else if (deviceDriver instanceof LnshLaminatingMachineDeviceDriver) {
LnshLaminatingMachineDeviceDriver driver = (LnshLaminatingMachineDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("move", driver.getMove());
status.put("container_type", driver.getContainer_type());
status.put("error", driver.getError());
status.put("task", driver.getTask());
} else if (deviceDriver instanceof LnshFoldDiscSiteDeviceDriver) {
LnshFoldDiscSiteDeviceDriver driver = (LnshFoldDiscSiteDeviceDriver) deviceDriver;
status.put("mode", driver.getMode());
status.put("status", driver.getStatus());
status.put("open_time", driver.getOpen_time());
status.put("close_time", driver.getClose_time());
status.put("standby_time", driver.getStandby_time());
status.put("production_time", driver.getProduction_time());
status.put("error_time", driver.getError_time());
status.put("container_qty", driver.getContainer_qty());
}
}
param.addAll(ndcAgvService.findAllAgvFromCache().values());
}
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "查询成功!");
result.put("data", param);
log.info("getDeviceStatus2 - 响应参数 {}", result);
return result;
}
}

View File

@@ -38,8 +38,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Date;
import java.util.Map;
import java.util.*;
@Slf4j
@Component
@@ -52,10 +51,22 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
static DataInputStream dis;
private int recordTimeOut = 10000;
private Date recordTime;
String[] ERROR = new String[]{
"货叉尖部传感器触发", "S300传感器触发", "载货状态改变", "急停按钮触发", "触边开关出发", "需要复位",
"停在充电位", "取货失败", "放货失败", "轮子打滑", "没有动作码不能进入站点", "取货时有货", "丢失定位",
"抬叉停止"};
public static final String[] ERROR = new String[]{
"货叉尖部传感器触发",
"S300传感器触发",
"载货状态改变",
"急停按钮触发",
"触边开关触发",
"需要复位",
"停在充电位",
"取货失败",
"放货失败",
"轮子打滑",
"没有动作码不能进入站点",
"取货时有货",
"丢失定位",
"抬叉停止"
};
boolean bConnected = true;
boolean isReConnect = false;
@@ -84,7 +95,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
ParamService acsConfigService = SpringContextHolder.getBean(ParamServiceImpl.class);
InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class);
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
NDCAgvService AgvService = SpringContextHolder.getBean(NDCAgvService.class);
NDCAgvService ndcAGVService = SpringContextHolder.getBean(NDCAgvService.class);
DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogServiceImpl.class);
@@ -165,13 +176,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
try {
if (phase == 0x01) {
data = AgvService.sendAgvOneModeInst(phase, index);
data = ndcAGVService.sendAgvOneModeInst(phase, index);
if (!ObjectUtil.isEmpty(inst)) {
inst.setInstruction_status("1");
inst.setAgv_jobno(String.valueOf(index));
inst.setSend_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
flag = true;
}
@@ -202,7 +213,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& standardInspectSiteDeviceDriver.getMove() != 0) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
standardInspectSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -230,7 +241,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& (lnshStationDeviceDriver.getAction() == 3 || lnshStationDeviceDriver.getAction() == 1)) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -256,7 +267,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& (lnshStationDeviceDriver.getAction() == 3 || lnshStationDeviceDriver.getAction() == 1)) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -290,7 +301,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& (lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 1)) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshPalletizingManipulatorSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -318,13 +329,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findByCode(AcsConfig.IGNOREHASGOODS).getValue(), "1")) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
} else {
if (device.getHas_goods() != 0) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
} else {
logServer.deviceExecuteLog(device_code, "", "", "AGV请求取货设备{}无货,无法反馈");
@@ -340,7 +351,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& deviceDriver.getContainer_qty() > 0) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
deviceDriver.setMessage("");
flag = true;
} else {
@@ -381,7 +392,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("5");
instructionService.update(inst);
standardInspectSiteDeviceDriver.writing(2);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
standardInspectSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -408,7 +419,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("5");
instructionService.update(inst);
lnshStationDeviceDriver.writing(2);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -431,7 +442,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("5");
instructionService.update(inst);
lnshStationDeviceDriver.writing(2);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -461,7 +472,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("5");
instructionService.update(inst);
lnshPalletizingManipulatorSiteDeviceDriver.writing(2);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshPalletizingManipulatorSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -489,7 +500,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("5");
instructionService.update(inst);
deviceDriver.writing(2);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
deviceDriver.setMessage("");
flag = true;
} else {
@@ -506,13 +517,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findByCode(AcsConfig.IGNOREHASGOODS).getValue(), "1")) {
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
} else {
if (device.getHas_goods() != 0) {
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
}
}
@@ -559,7 +570,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& standardInspectSiteDeviceDriver.getMove() == 0) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
standardInspectSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -588,7 +599,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("3");
instructionService.update(inst);
lnshStationDeviceDriver.writing(3, Integer.parseInt(inst.getInstruction_code()));
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -615,7 +626,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("3");
instructionService.update(inst);
lnshStationDeviceDriver.writing(3, Integer.parseInt(inst.getInstruction_code()));
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -649,7 +660,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& (lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 2 || lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 3)) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshPalletizingManipulatorSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -679,7 +690,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
&& deviceDriver.getContainer_qty() < Integer.parseInt(deviceDriver.getExtraValue().get("max_emptypalletnum").toString())) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
deviceDriver.setMessage("");
flag = true;
} else {
@@ -701,13 +712,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findByCode(AcsConfig.IGNOREHASGOODS).getValue(), "1")) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
} else {
if (device.getHas_goods() != 0) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
}
}
@@ -737,7 +748,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("6");
instructionService.update(inst);
standardInspectSiteDeviceDriver.writing(3);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
} else {
String message = "";
@@ -763,7 +774,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("6");
instructionService.update(inst);
lnshStationDeviceDriver.writing(3);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -786,7 +797,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("6");
instructionService.update(inst);
lnshStationDeviceDriver.writing(3);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshStationDeviceDriver.setMessage("");
flag = true;
} else {
@@ -817,7 +828,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("6");
instructionService.update(inst);
lnshPalletizingManipulatorSiteDeviceDriver.writing(3);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
lnshPalletizingManipulatorSiteDeviceDriver.setMessage("");
flag = true;
} else {
@@ -843,7 +854,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setExecute_status("6");
instructionService.update(inst);
deviceDriver.writing(3);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
deviceDriver.setMessage("");
flag = true;
} else {
@@ -861,13 +872,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findByCode(AcsConfig.IGNOREHASGOODS).getValue(), "1")) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
} else {
if (device.getHas_goods() != 0) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
flag = true;
}
}
@@ -886,13 +897,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setInstruction_status("2");
instructionService.finish(inst);
}
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
//请求删除任务
else if (phase == 0x30) {
log.info("NDC 请求删除任务");
flag = true;
data = AgvService.sendAgvOneModeInst(0x8F, index, 0);
data = ndcAGVService.sendAgvOneModeInst(0x8F, index, 0);
}
//任务删除确认
//(需要WCS反馈)
@@ -902,7 +913,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (!ObjectUtil.isEmpty(inst)) {
instructionService.cancelNOSendAgv(inst.getInstruction_id());
}
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
//进入区域
else if (phase == 0x50) {
@@ -912,7 +923,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardAutodoorDeviceDriver.OpenOrClose("1");
if (standardAutodoorDeviceDriver.getAction() == 1) {
standardAutodoorDeviceDriver.OpenOrClose("1");
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
}
}
@@ -923,111 +934,42 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
standardAutodoorDeviceDriver.OpenOrClose("2");
if (standardAutodoorDeviceDriver.getAction() == 2) {
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
} else {
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
} else if (phase == 0x64) {
data = AgvService.sendAgvOneModeInst(phase, index, 0);
data = ndcAGVService.sendAgvOneModeInst(phase, index, 0);
}
//上报异常
else if (phase == 0x67) {
log.info("NDC 上报异常");
AgvDto dto = null;
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
if (map.containsKey(String.valueOf(carno))) {
dto = map.get(String.valueOf(carno));
} else {
dto = new AgvDto();
}
dto.setName(String.valueOf(carno));
// if (arr[18] * 256 + arr[19] == 0) {
// dto.setState("IDLE");
// acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "0", "");
// } else {
// StringBuffer errbs = new StringBuffer();
// for (int i = 0; i < ERROR.length; i++) {
// if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0)
// errbs.append("," + ERROR[i]);
// //反馈故障
// }
// dto.setState("ERROR");
// acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "1", "error");
// }
AgvDto agv = ndcAGVService.findByCarNumber(String.valueOf(arr[18] * 256 + arr[19]));
agv.setFaultInfo(getNDCFaultInfo(ikey));
}
//X坐标
else if (phase == 0x70) {
log.info("NDC 上报X坐标");
AgvDto dto = null;
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
carno = arr[18] * 256 + arr[19];
if (map.containsKey(String.valueOf(carno))) {
dto = map.get(String.valueOf(carno));
} else {
dto = new AgvDto();
}
dto.setName(String.valueOf(carno));
dto.setPositionX(String.valueOf(ikey));
AgvService.updateAgvFromCache(dto);
AgvDto agv = ndcAGVService.findByCarNumber(String.valueOf(arr[18] * 256 + arr[19]));
agv.setPositionX(String.valueOf(ikey));
}
//Y坐标
else if (phase == 0x71) {
log.info("NDC 上报Y坐标");
AgvDto dto = null;
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
carno = arr[18] * 256 + arr[19];
if (map.containsKey(String.valueOf(carno))) {
dto = map.get(String.valueOf(carno));
} else {
dto = new AgvDto();
}
dto.setName(String.valueOf(carno));
dto.setPositionY(String.valueOf(ikey));
AgvService.updateAgvFromCache(dto);
AgvDto agv = ndcAGVService.findByCarNumber(String.valueOf(arr[18] * 256 + arr[19]));
agv.setPositionY(String.valueOf(ikey));
}
//角度
else if (phase == 0x72) {
log.info("NDC 上报角度");
AgvDto dto = null;
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
carno = arr[18] * 256 + arr[19];
if (map.containsKey(String.valueOf(carno))) {
dto = map.get(String.valueOf(carno));
} else {
dto = new AgvDto();
}
dto.setName(String.valueOf(carno));
dto.setPositionAngle(String.valueOf(ikey));
AgvService.updateAgvFromCache(dto);
AgvDto agv = ndcAGVService.findByCarNumber(String.valueOf(arr[18] * 256 + arr[19]));
agv.setPositionAngle(String.valueOf(ikey));
}
//电量
else if (phase == 0x73) {
log.info("NDC 上报电量");
AgvDto dto = null;
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
carno = arr[18] * 256 + arr[19];
if (map.containsKey(String.valueOf(carno))) {
dto = map.get(String.valueOf(carno));
} else {
dto = new AgvDto();
}
dto.setName(String.valueOf(carno));
dto.setEnergyLevel(String.valueOf(ikey));
AgvService.updateAgvFromCache(dto);
AgvDto agv = ndcAGVService.findByCarNumber(String.valueOf(arr[18] * 256 + arr[19]));
agv.setEnergyLevel(String.valueOf(ikey));
} else if (phase == 0x74) {
log.info("NDC 上报车辆状态");
AgvDto dto = null;
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
carno = arr[18] * 256 + arr[19];
if (map.containsKey(String.valueOf(carno))) {
dto = map.get(String.valueOf(carno));
} else {
dto = new AgvDto();
}
dto.setName(String.valueOf(carno));
dto.setState(String.valueOf(ikey));
AgvService.updateAgvFromCache(dto);
// 状态
AgvDto agv = ndcAGVService.findByCarNumber(String.valueOf(arr[18] * 256 + arr[19]));
agv.setState(String.valueOf(ikey));
}
if (!ObjectUtil.isEmpty(data)) {
write(data);
@@ -1082,4 +1024,29 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
}
return ret;
}
public static List<String> getNDCFaultInfo(int errorCode) {
if (errorCode == 0) {
return Collections.singletonList("正常");
} else {
if (errorCode > Math.pow(2, ERROR.length - 1)) {
return Collections.singletonList("NDC上报故障代码有误");
} else {
int index = 0;
ArrayList<String> faultInfo = new ArrayList<>();
for (int i = errorCode; i != 0; i = i >> 1) {
if (index == ERROR.length) {
faultInfo.clear();
faultInfo.add("NDC上报故障代码有误");
break;
}
if (i % 2 == 1) {
faultInfo.add(ERROR[index]);
}
index++;
}
return faultInfo;
}
}
}
}