add:新增手持功能以及优化agv驱动代码
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.acs.agv.server;
|
package org.nl.acs.agv.server;
|
||||||
|
|
||||||
import org.nl.acs.agv.server.dto.AgvDto;
|
import org.nl.acs.agv.server.dto.AgvDto;
|
||||||
|
import org.nl.acs.instruction.domain.InstructionMybatis;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.Manipulator
|
|||||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
|
import org.nl.acs.history.service.DeviceErrorLogService;
|
||||||
|
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
|
||||||
|
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
||||||
import org.nl.acs.instruction.domain.Instruction;
|
import org.nl.acs.instruction.domain.Instruction;
|
||||||
import org.nl.acs.instruction.service.InstructionService;
|
import org.nl.acs.instruction.service.InstructionService;
|
||||||
import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
|
import org.nl.acs.instruction.service.impl.InstructionServiceImpl;
|
||||||
@@ -57,6 +60,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
|
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
|
||||||
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
|
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
|
||||||
DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
|
DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
|
||||||
|
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
|
||||||
DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
|
DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
|
||||||
LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class);
|
LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class);
|
||||||
TwoAgvPhase twoAgvPhase = new TwoAgvPhase();
|
TwoAgvPhase twoAgvPhase = new TwoAgvPhase();
|
||||||
@@ -70,6 +74,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
int phase = 0;
|
int phase = 0;
|
||||||
int region = 0;
|
int region = 0;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
int last_error = 0;
|
||||||
private Instruction instruction;
|
private Instruction instruction;
|
||||||
String message = null;
|
String message = null;
|
||||||
int x = 0; //x坐标
|
int x = 0; //x坐标
|
||||||
@@ -218,10 +223,27 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
|
|
||||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
|
if (ObjectUtil.isNotEmpty(device.getExtraValue().get("wait"))
|
||||||
|
&& StrUtil.equals("true", device.getExtraValue().get("wait").toString())
|
||||||
|
&& StrUtil.equals(task.getTask_type(), "1")) {
|
||||||
|
if (standardOrdinarySiteDeviceDriver.getOption() == 1) {
|
||||||
|
String task_code = standardOrdinarySiteDeviceDriver.getTask_code();
|
||||||
|
log.info("当前任务号{},创建任务号{}", task.getTask_code(), task_code);
|
||||||
|
if (StrUtil.isEmpty(task_code) || !task_code.equals(task.getTask_code())) {
|
||||||
|
log.info("等待LMS系统进行确认允许取货,设备号{},指令号{},任务号{}", device_code, ikey, task.getTask_code());
|
||||||
|
message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey;
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||||
|
} else {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
}
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
}else {
|
||||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey);
|
||||||
|
message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey;
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||||
|
|
||||||
@@ -340,10 +362,15 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
|
|
||||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
|
if (ObjectUtil.isNotEmpty(this.device.getExtraValue().get("wait"))
|
||||||
|
&& StrUtil.equals("true", this.device.getExtraValue().get("wait").toString())
|
||||||
|
&& StrUtil.equals(task.getTask_type(), "1")) {
|
||||||
|
standardOrdinarySiteDeviceDriver.setOption(0);
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
}else {
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
}
|
||||||
|
this.setPhase(phase);
|
||||||
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
||||||
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
||||||
|
|
||||||
@@ -455,10 +482,30 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) {
|
if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) {
|
||||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
if (ObjectUtil.isNotEmpty(standardOrdinarySiteDeviceDriver.getDevice().getExtraValue().get("wait"))
|
||||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
&& StrUtil.equals("true", standardOrdinarySiteDeviceDriver.getDevice().getExtraValue().get("wait").toString())
|
||||||
|
&& StrUtil.equals(task.getTask_type(), "1")) {
|
||||||
|
if (standardOrdinarySiteDeviceDriver.getOption() == 1) {
|
||||||
|
standardOrdinarySiteDeviceDriver.setAgvphase(0);
|
||||||
|
String task_code = standardOrdinarySiteDeviceDriver.getTask_code();
|
||||||
|
log.info("当前任务号{},创建任务号{}", task.getTask_code(), task_code);
|
||||||
|
if (StrUtil.isEmpty(task_code) || !task_code.equals(task.getTask_code())) {
|
||||||
|
log.info("等待LMS系统进行确认允许取货,设备号{},指令号{},任务号{}", device_code, ikey, task.getTask_code());
|
||||||
|
message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey;
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey);
|
||||||
|
} else {
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey);
|
||||||
|
message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey;
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code());
|
||||||
|
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
|
}
|
||||||
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
||||||
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
||||||
|
|
||||||
@@ -568,6 +615,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) {
|
if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) {
|
||||||
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
|
if (ObjectUtil.isNotEmpty(standardOrdinarySiteDeviceDriver.getDevice().getExtraValue().get("wait"))
|
||||||
|
&& StrUtil.equals("true", standardOrdinarySiteDeviceDriver.getDevice().getExtraValue().get("wait").toString())
|
||||||
|
&& StrUtil.equals(task.getTask_type(), "1")) {
|
||||||
|
standardOrdinarySiteDeviceDriver.setOption(0);
|
||||||
|
}else {
|
||||||
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
|
}
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
standardOrdinarySiteDeviceDriver.setIndex(index);
|
||||||
@@ -651,6 +705,14 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
weight = agvaddr;
|
weight = agvaddr;
|
||||||
inst.setWeight(String.valueOf(weight));
|
inst.setWeight(String.valueOf(weight));
|
||||||
instructionService.update(inst);
|
instructionService.update(inst);
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(task)) {
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "上报满卷重量,weight:" + weight);
|
||||||
|
message = "上报满卷重量,weight:" + weight + ",指令号:" + ikey;
|
||||||
|
task.setWeight(String.valueOf(weight));
|
||||||
|
task.setCarno(this.device_code);
|
||||||
|
taskService.update(task);
|
||||||
|
}
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
@@ -817,9 +879,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
// }
|
// }
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
this.setPhase(phase);
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
|
||||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
|
||||||
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
||||||
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
||||||
|
|
||||||
@@ -929,9 +989,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
// }
|
// }
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
this.setPhase(phase);
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
|
||||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
|
||||||
|
|
||||||
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
||||||
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
||||||
@@ -1037,9 +1095,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
// }
|
// }
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
||||||
standardOrdinarySiteDeviceDriver.setAgvphase(phase);
|
this.setPhase(phase);
|
||||||
standardOrdinarySiteDeviceDriver.setIndex(index);
|
|
||||||
standardOrdinarySiteDeviceDriver.setInst(inst);
|
|
||||||
|
|
||||||
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) {
|
||||||
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver();
|
||||||
@@ -1130,32 +1186,10 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
last_status = status;
|
last_status = status;
|
||||||
} //进入区域(phase值)
|
} //进入区域(phase值)
|
||||||
else if (phase == 0x50) {
|
else if (phase == 0x50) {
|
||||||
if (ObjectUtil.isEmpty(inst)) {
|
|
||||||
log.info("未找到指令号{}对应的指令", ikey);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
region = agvaddr;
|
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
|
||||||
.device_code(device_code)
|
|
||||||
.content("agvphase:" + phase + "反馈:" + data)
|
|
||||||
.build();
|
|
||||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//离开区域(phase值)
|
//离开区域(phase值)
|
||||||
else if (phase == 0x51) {
|
else if (phase == 0x51) {
|
||||||
if (ObjectUtil.isEmpty(inst)) {
|
|
||||||
log.info("未找到指令号{}对应的指令", ikey);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
region = agvaddr;
|
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0);
|
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
|
||||||
.device_code(device_code)
|
|
||||||
.content("agvphase:" + phase + "反馈:" + data)
|
|
||||||
.build();
|
|
||||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//上报异常信息
|
//上报异常信息
|
||||||
@@ -1170,11 +1204,23 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
String info = error.get("info");
|
String info = error.get("info");
|
||||||
this.setErrorInfo(ikey, code, info);
|
this.setErrorInfo(ikey, code, info);
|
||||||
}
|
}
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
if (error != last_error) {
|
||||||
.device_code(device_code)
|
DeviceErrorLogDto dto = new DeviceErrorLogDto();
|
||||||
.content("agvphase:" + phase + "反馈:" + data)
|
dto.setDevice_code(this.getDevice().getDevice_code());
|
||||||
.build();
|
dto.setError_code(String.valueOf(error_code));
|
||||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
dto.setError_info(error_message);
|
||||||
|
deviceErrorLogService.create(dto);
|
||||||
|
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("device_code", this.device_code);
|
||||||
|
param.put("error", error);
|
||||||
|
param.put("error_msg", error == 0 ? "" : this.getError_message());
|
||||||
|
param.put("device_name", this.getDevice().getDevice_name());
|
||||||
|
param.put("device_type", "4");
|
||||||
|
param.put("product_area", ISysParamService.findByCode("productArea").getValue());
|
||||||
|
acsToWmsService.sendDeviceStatus(param);
|
||||||
|
}
|
||||||
|
last_error = error;
|
||||||
}
|
}
|
||||||
if (!ObjectUtil.isEmpty(data)) {
|
if (!ObjectUtil.isEmpty(data)) {
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||||
@@ -1183,11 +1229,14 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||||
// if (StrUtil.equals(inst.getAgv_system_type(), "2")) {
|
// if (StrUtil.equals(inst.getAgv_system_type(), "2")) {
|
||||||
TwoNDCSocketConnectionAutoRun.write(data);
|
// TwoNDCSocketConnectionAutoRun.write(data);
|
||||||
// }
|
// }
|
||||||
// else if (StrUtil.equals(inst.getAgv_system_type(), "3")) {
|
// else if (StrUtil.equals(inst.getAgv_system_type(), "3")) {
|
||||||
// TwoNDC2SocketConnectionAutoRun.write(data);
|
// TwoNDC2SocketConnectionAutoRun.write(data);
|
||||||
// }
|
// }
|
||||||
|
if (StrUtil.equals(inst.getAgv_system_type(), "2")) {
|
||||||
|
TwoNDCSocketConnectionAutoRun.write(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.acs.device_driver.conveyor.standard_ordinary_site;
|
package org.nl.acs.device_driver.conveyor.standard_ordinary_site;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -61,6 +62,9 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
|||||||
Boolean iserror = false;
|
Boolean iserror = false;
|
||||||
Boolean islock = false;
|
Boolean islock = false;
|
||||||
|
|
||||||
|
// 1 上位系统允许进入 2 上位系统允许离开
|
||||||
|
int option = 0;
|
||||||
|
|
||||||
int branchProtocol = 0;
|
int branchProtocol = 0;
|
||||||
int last_branchProtocol = 0;
|
int last_branchProtocol = 0;
|
||||||
/**
|
/**
|
||||||
@@ -223,6 +227,14 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
|||||||
String mode = "";
|
String mode = "";
|
||||||
String action = "";
|
String action = "";
|
||||||
String move = "";
|
String move = "";
|
||||||
|
String option = "";
|
||||||
|
if(this.getOption() == 0){
|
||||||
|
option ="禁止进出";
|
||||||
|
} else if(this.getOption() == 1){
|
||||||
|
option ="允许进入";
|
||||||
|
} else if(this.getOption() == 2){
|
||||||
|
option ="允许离开";
|
||||||
|
}
|
||||||
if (this.getMode() == 0) {
|
if (this.getMode() == 0) {
|
||||||
mode = LangProcess.msg("universal_off-line");
|
mode = LangProcess.msg("universal_off-line");
|
||||||
} else if (this.getMode() == 1) {
|
} else if (this.getMode() == 1) {
|
||||||
@@ -252,13 +264,18 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple
|
|||||||
jo.put("isOnline", true);
|
jo.put("isOnline", true);
|
||||||
jo.put("error", this.getError());
|
jo.put("error", this.getError());
|
||||||
jo.put("isError", this.getIserror());
|
jo.put("isError", this.getIserror());
|
||||||
|
jo.put("option", option);
|
||||||
|
jo.put("is_click", true);
|
||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setDeviceStatus(JSONObject data) {
|
public void setDeviceStatus(JSONObject data) {
|
||||||
|
String flag = data.getString("option");
|
||||||
|
if(StrUtil.isNotEmpty(flag)){
|
||||||
|
option = Integer.parseInt(flag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,11 @@ public class TaskDto implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String task_status;
|
private String task_status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车号
|
||||||
|
*/
|
||||||
|
private String carno;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复合任务
|
* 复合任务
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1007,6 +1007,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
|||||||
map.put("路由方案编码", acsTask.getRoute_plan_code());
|
map.put("路由方案编码", acsTask.getRoute_plan_code());
|
||||||
map.put("是否需要反馈上位系统", acsTask.getIs_needfeedback());
|
map.put("是否需要反馈上位系统", acsTask.getIs_needfeedback());
|
||||||
map.put("备注", acsTask.getRemark());
|
map.put("备注", acsTask.getRemark());
|
||||||
|
map.put("agv车号", acsTask.getCarno());
|
||||||
map.put("是否启用", acsTask.getIs_active());
|
map.put("是否启用", acsTask.getIs_active());
|
||||||
map.put("是否删除", acsTask.getIs_delete());
|
map.put("是否删除", acsTask.getIs_delete());
|
||||||
map.put("创建者", acsTask.getCreate_by());
|
map.put("创建者", acsTask.getCreate_by());
|
||||||
@@ -1588,6 +1589,12 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
|||||||
feed_jo.put("task_id", entity.getExt_task_id());
|
feed_jo.put("task_id", entity.getExt_task_id());
|
||||||
feed_jo.put("task_code", entity.getTask_code());
|
feed_jo.put("task_code", entity.getTask_code());
|
||||||
feed_jo.put("task_status", entity.getTask_status());
|
feed_jo.put("task_status", entity.getTask_status());
|
||||||
|
if (ObjectUtil.isNotEmpty(entity.getWeight())) {
|
||||||
|
feed_jo.put("weight", entity.getWeight());
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(entity.getCarno())) {
|
||||||
|
feed_jo.put("car_no", entity.getCarno());
|
||||||
|
}
|
||||||
JSONArray ja = new JSONArray();
|
JSONArray ja = new JSONArray();
|
||||||
ja.add(feed_jo);
|
ja.add(feed_jo);
|
||||||
//TODO 有需要根据上位系统反馈的信息再做进一步处理
|
//TODO 有需要根据上位系统反馈的信息再做进一步处理
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package org.nl.hand.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author : TuQiang
|
||||||
|
* @create 2024/4/15 13:59
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class B2HeadDto implements Serializable {
|
||||||
|
/**
|
||||||
|
* 起始设备编码1
|
||||||
|
*/
|
||||||
|
private String start_device_code1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 目标设备编码1
|
||||||
|
*/
|
||||||
|
private String next_device_code1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 起始设备编码2
|
||||||
|
*/
|
||||||
|
private String start_device_code2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 目标设备编码2
|
||||||
|
*/
|
||||||
|
private String next_device_code2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务类型
|
||||||
|
*/
|
||||||
|
private String task_type;
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package org.nl.hand.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author : TuQiang
|
||||||
|
* @create 2024/4/15 15:04
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class HeadDeviceDto implements Serializable {
|
||||||
|
/**
|
||||||
|
* 设备号
|
||||||
|
*/
|
||||||
|
private String device_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作类型
|
||||||
|
* 0-禁止进出;
|
||||||
|
* 1-允许取放
|
||||||
|
* 2-允许离开
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String option;
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package org.nl.hand.rest;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.nl.hand.dto.B2HeadDto;
|
||||||
|
import org.nl.hand.dto.HeadDeviceDto;
|
||||||
|
import org.nl.hand.dto.RegionDto;
|
||||||
|
import org.nl.hand.service.B2HandService;
|
||||||
|
import org.nl.hand.service.HandService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author : TuQiang
|
||||||
|
* @create 2024/4/15 13:50
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "手持接口")
|
||||||
|
@RequestMapping("api/hands")
|
||||||
|
@Slf4j
|
||||||
|
public class B2HandController {
|
||||||
|
@Autowired
|
||||||
|
private B2HandService b2HandService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HandService handService;
|
||||||
|
|
||||||
|
@PostMapping("/queryArea")
|
||||||
|
@Log("查询区域")
|
||||||
|
@ApiOperation("查询区域")
|
||||||
|
@SaIgnore
|
||||||
|
//@PreAuthorize("@el.check('sect:list')")
|
||||||
|
public ResponseEntity<Object> queryArea() {
|
||||||
|
return new ResponseEntity<>(handService.queryArea(), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/queryPointByArea")
|
||||||
|
@Log("根据区域编码查点位")
|
||||||
|
@ApiOperation("根据区域编码查点位")
|
||||||
|
@SaIgnore
|
||||||
|
//@PreAuthorize("@el.check('sect:list')")
|
||||||
|
public ResponseEntity<Object> queryPointByArea(@RequestBody RegionDto dto) {
|
||||||
|
String region_code = dto.getRegion_code();
|
||||||
|
return new ResponseEntity<>(handService.queryPointByArea(region_code), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/callTask")
|
||||||
|
@Log("手持创建任务")
|
||||||
|
@ApiOperation("手持创建任务")
|
||||||
|
@SaIgnore
|
||||||
|
//@PreAuthorize("@el.check('sect:list')")
|
||||||
|
public ResponseEntity<Object> callTask(@RequestBody B2HeadDto dto) {
|
||||||
|
return new ResponseEntity<>(b2HandService.callTask(dto), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/queryDevices")
|
||||||
|
@Log("查询所有设备")
|
||||||
|
@ApiOperation("查询所有设备")
|
||||||
|
@SaIgnore
|
||||||
|
//@PreAuthorize("@el.check('sect:list')")
|
||||||
|
public ResponseEntity<Object> queryDevices() {
|
||||||
|
return new ResponseEntity<>(b2HandService.queryDevices(), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/updateDeviceStatus")
|
||||||
|
@Log("更新设备状态")
|
||||||
|
@ApiOperation("更新设备状态")
|
||||||
|
@SaIgnore
|
||||||
|
//@PreAuthorize("@el.check('sect:list')")
|
||||||
|
public ResponseEntity<Object> updateDeviceStatus(@RequestBody HeadDeviceDto dto) {
|
||||||
|
return new ResponseEntity<>(b2HandService.updateDeviceStatus(dto), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package org.nl.hand.service;
|
||||||
|
|
||||||
|
import org.nl.hand.dto.B2HeadDto;
|
||||||
|
import org.nl.hand.dto.HeadDeviceDto;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author : TuQiang
|
||||||
|
* @create 2024/4/15 13:52
|
||||||
|
*/
|
||||||
|
public interface B2HandService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手持创建任务
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> callTask(B2HeadDto dto);
|
||||||
|
|
||||||
|
Map<String, Object> queryDevices();
|
||||||
|
|
||||||
|
Map<String, Object> updateDeviceStatus(HeadDeviceDto dto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
package org.nl.hand.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
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.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||||
|
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.service.TaskService;
|
||||||
|
import org.nl.acs.task.service.dto.TaskDto;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.hand.dto.B2HeadDto;
|
||||||
|
import org.nl.hand.dto.HeadDeviceDto;
|
||||||
|
import org.nl.hand.service.B2HandService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author : TuQiang
|
||||||
|
* @create 2024/4/15 13:52
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class B2HandServiceImpl implements B2HandService {
|
||||||
|
@Autowired
|
||||||
|
private TaskService taskserver;
|
||||||
|
@Autowired
|
||||||
|
private DeviceService deviceService;
|
||||||
|
@Autowired
|
||||||
|
private DeviceAppService deviceAppService;
|
||||||
|
@Autowired
|
||||||
|
private InstructionService instructionService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> callTask(B2HeadDto dto) {
|
||||||
|
JSONArray errArr = new JSONArray();
|
||||||
|
String start_device_code = dto.getStart_device_code1();
|
||||||
|
String next_device_code = dto.getNext_device_code1();
|
||||||
|
String start_device_code2 = dto.getStart_device_code2();
|
||||||
|
String next_device_code2 = dto.getNext_device_code2();
|
||||||
|
String task_type = dto.getTask_type();
|
||||||
|
|
||||||
|
if (StrUtil.isEmpty(start_device_code)) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("message", "起点1不能为空");
|
||||||
|
errArr.add(json);
|
||||||
|
}
|
||||||
|
if (StrUtil.isEmpty(next_device_code)) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("message", "终点1不能为空");
|
||||||
|
errArr.add(json);
|
||||||
|
}
|
||||||
|
if (StrUtil.isEmpty(task_type)) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("message", "任务类型不能为空");
|
||||||
|
errArr.add(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
if (StrUtil.equals(task_type, CommonFinalParam.TYPE_ONE)) {
|
||||||
|
jo.put("start_device_code2", start_device_code2);
|
||||||
|
jo.put("next_device_code2", next_device_code2);
|
||||||
|
jo.put("start_point_code2", start_device_code2);
|
||||||
|
jo.put("next_point_code2", next_device_code2);
|
||||||
|
} else if (StrUtil.equals(task_type, CommonFinalParam.TYPE_TWO)) {
|
||||||
|
jo.put("start_device_code2", start_device_code2);
|
||||||
|
jo.put("next_device_code2", next_device_code2);
|
||||||
|
jo.put("start_point_code2", start_device_code2);
|
||||||
|
jo.put("next_point_code2", next_device_code2);
|
||||||
|
}
|
||||||
|
jo.put("start_device_code", start_device_code);
|
||||||
|
jo.put("next_device_code", next_device_code);
|
||||||
|
jo.put("start_point_code", start_device_code);
|
||||||
|
jo.put("next_point_code", next_device_code);
|
||||||
|
jo.put("start_device_code2", start_device_code2);
|
||||||
|
jo.put("next_device_code2", next_device_code2);
|
||||||
|
jo.put("start_point_code2", start_device_code2);
|
||||||
|
jo.put("next_point_code2", next_device_code2);
|
||||||
|
jo.put("task_type", task_type);
|
||||||
|
jo.put("agv_system_type", "2");
|
||||||
|
jo.put("priority", "1");
|
||||||
|
|
||||||
|
TaskDto task_dto = jo.toJavaObject(TaskDto.class);
|
||||||
|
try {
|
||||||
|
taskserver.create(task_dto);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("message", e.getMessage());
|
||||||
|
errArr.add(json);
|
||||||
|
}
|
||||||
|
JSONArray data = new JSONArray();
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
if (ObjectUtil.isEmpty(errArr)) {
|
||||||
|
resultJson.put("message", "操作成功");
|
||||||
|
resultJson.put("data", data);
|
||||||
|
} else {
|
||||||
|
resultJson.put("message", "操作失败");
|
||||||
|
resultJson.put("data", data);
|
||||||
|
}
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> queryDevices() {
|
||||||
|
JSONArray data = new JSONArray();
|
||||||
|
//查询所有生箔区的设备
|
||||||
|
List<Device> list = deviceService.lambdaQuery()
|
||||||
|
.eq(Device::getRegion, "2")
|
||||||
|
.list();
|
||||||
|
if (CollectionUtil.isEmpty(list)) {
|
||||||
|
throw new BadRequestException("未查到该区域的设备!");
|
||||||
|
}
|
||||||
|
|
||||||
|
StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver;
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
Device device = list.get(i);
|
||||||
|
String device_id = device.getDevice_id();
|
||||||
|
String device_code = device.getDevice_code();
|
||||||
|
Device deviceCode = deviceAppService.findDeviceByCode(device_code);
|
||||||
|
int option = 0;
|
||||||
|
if (deviceCode.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
|
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) deviceCode.getDeviceDriver();
|
||||||
|
option = standardOrdinarySiteDeviceDriver.getOption();
|
||||||
|
}
|
||||||
|
String device_name = device.getDevice_name();
|
||||||
|
BigDecimal seq_num = device.getSeq_num();
|
||||||
|
jo.put("device_id", device_id);
|
||||||
|
jo.put("device_code", device_code);
|
||||||
|
jo.put("device_name", device_name);
|
||||||
|
jo.put("seq_num", seq_num);
|
||||||
|
jo.put("option", option);
|
||||||
|
data.add(jo);
|
||||||
|
}
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
resultJson.put("message", "操作成功");
|
||||||
|
resultJson.put("data", data);
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> updateDeviceStatus(HeadDeviceDto dto) {
|
||||||
|
JSONArray errArr = new JSONArray();
|
||||||
|
String device_code = dto.getDevice_code();
|
||||||
|
String option = dto.getOption();
|
||||||
|
if (StrUtil.isEmpty(device_code)) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("message", "设备号不能为空");
|
||||||
|
errArr.add(json);
|
||||||
|
}
|
||||||
|
if (StrUtil.isEmpty(option)) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("message", "操作不能为空");
|
||||||
|
errArr.add(json);
|
||||||
|
}
|
||||||
|
if (device_code.contains("K")&&(!"1".equals(option))){
|
||||||
|
throw new BadRequestException("该设备为空轴位,不能进行该操作");
|
||||||
|
}
|
||||||
|
if (device_code.contains("M")&&(!"2".equals(option))){
|
||||||
|
throw new BadRequestException("该设备为满轴位,不能进行该操作");
|
||||||
|
}
|
||||||
|
StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver;
|
||||||
|
Device device = deviceAppService.findDeviceByCode(device_code);
|
||||||
|
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
|
standardOrdinarySiteDeviceDriver.setOption(Integer.parseInt(option));
|
||||||
|
JSONArray data = new JSONArray();
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
if (ObjectUtil.isEmpty(errArr)) {
|
||||||
|
resultJson.put("message", "操作成功");
|
||||||
|
resultJson.put("data", data);
|
||||||
|
} else {
|
||||||
|
resultJson.put("message", "操作失败");
|
||||||
|
resultJson.put("data", data);
|
||||||
|
}
|
||||||
|
return resultJson;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user