纽迪希亚2页面非工作模式切换
This commit is contained in:
@@ -42,4 +42,6 @@ public interface AcsConfig {
|
||||
String NDC_RECONNECTION = "NDC_reconnection";
|
||||
//自动清理日志保留时间
|
||||
String AutoCleanDays = "AutoCleanDays";
|
||||
//agv闲置时间 单位(分钟)
|
||||
String AGVIDLETIME = "agvIdleTime";
|
||||
}
|
||||
|
||||
@@ -5,13 +5,17 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.nl.acs.agv.server.AgvService;
|
||||
import org.nl.acs.config.AcsConfig;
|
||||
import org.nl.acs.config.server.AcsConfigService;
|
||||
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.acs.device_driver.DeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.device_driver.weighing_site.WeighingSiteDeviceDriver;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
import org.nl.acs.route.service.RouteLineService;
|
||||
import org.nl.acs.task.service.TaskService;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
@@ -20,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -33,6 +38,10 @@ public class ElectricFenceDeviceDriver extends AbstractOpcDeviceDriver implement
|
||||
|
||||
@Autowired
|
||||
AgvService agvService = SpringContextHolder.getBean("agvServiceImpl");
|
||||
@Autowired
|
||||
DeviceAppService appService = SpringContextHolder.getBean("deviceAppServiceImpl");
|
||||
@Autowired
|
||||
AcsConfigService acsConfigService = SpringContextHolder.getBean("acsConfigServiceImpl");
|
||||
|
||||
String devicecode;
|
||||
int mode = 0;
|
||||
@@ -50,6 +59,10 @@ public class ElectricFenceDeviceDriver extends AbstractOpcDeviceDriver implement
|
||||
//是否暂停 0为暂停 1为恢复
|
||||
String suspended = "1";
|
||||
|
||||
Date start_time = new Date();
|
||||
Date last_start_time = new Date();
|
||||
|
||||
|
||||
@Override
|
||||
public Device getDevice() {
|
||||
return this.device;
|
||||
@@ -82,6 +95,22 @@ public class ElectricFenceDeviceDriver extends AbstractOpcDeviceDriver implement
|
||||
//this.execute_log.setContainer("");
|
||||
this.execute_log.log("设备:" + device_code + ",last_error -> error:" + last_error + "->" + error);
|
||||
}
|
||||
|
||||
int agvidletime = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.BUSINESSTYPE));
|
||||
if (start_time == last_start_time) {
|
||||
last_start_time = start_time;
|
||||
}
|
||||
if ((start_time.getTime() - last_start_time.getTime())/(60*1000) >= agvidletime) {
|
||||
List<Device> allDevice = appService.findAllDevice();
|
||||
WeighingSiteDeviceDriver weighingSiteDeviceDriver;
|
||||
for (int i = 0; i < allDevice.size(); i++) {
|
||||
Device device = allDevice.get(i);
|
||||
if (device.getDeviceDriver() instanceof WeighingSiteDeviceDriver){
|
||||
weighingSiteDeviceDriver = (WeighingSiteDeviceDriver) device.getDeviceDriver();
|
||||
weighingSiteDeviceDriver.setNowMode("0");
|
||||
}
|
||||
}
|
||||
}
|
||||
last_action = action;
|
||||
last_mode = mode;
|
||||
last_error = error;
|
||||
|
||||
@@ -83,6 +83,9 @@ public class WeighingSiteDeviceDriver extends AbstractDeviceDriver implements De
|
||||
|
||||
int move;
|
||||
|
||||
//0-非工作模式 1-工作模式
|
||||
String nowMode = "1";
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
if (!ObjectUtils.isEmpty(inst)) {
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.nl.acs.device.service.impl.DeviceServiceImpl;
|
||||
import org.nl.acs.device_driver.special_ordinary_site.SpecialOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_inspect_site.StandardInspectSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.weighing_site.WeighingSiteDeviceDriver;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.instruction.service.dto.Instruction;
|
||||
@@ -285,6 +286,17 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(TaskDto dto) throws Exception {
|
||||
List<Device> allDevice = deviceAppService.findAllDevice();
|
||||
WeighingSiteDeviceDriver weighingSiteDeviceDriver;
|
||||
for (int i = 0; i < allDevice.size(); i++) {
|
||||
Device device = allDevice.get(i);
|
||||
if (device.getDeviceDriver() instanceof WeighingSiteDeviceDriver){
|
||||
weighingSiteDeviceDriver = (WeighingSiteDeviceDriver) device.getDeviceDriver();
|
||||
if (weighingSiteDeviceDriver.getNowMode().equals("0")) {
|
||||
throw new RuntimeException("当前为非工作模式");
|
||||
}
|
||||
}
|
||||
}
|
||||
dto = foramte(dto);
|
||||
if (!StrUtil.isEmpty(dto.getVehicle_code())) {
|
||||
TaskDto vehicle_dto = this.findByContainer(dto.getVehicle_code());
|
||||
|
||||
@@ -156,4 +156,12 @@ public class NdxyHandTwoController {
|
||||
return new ResponseEntity<>(HandService.createTask2(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/mode")
|
||||
@Log("修改工作模式")
|
||||
@ApiOperation("修改工作模式")
|
||||
//@PreAuthorize("@el.check('sect:list')")
|
||||
public ResponseEntity<Object> updateMode(@RequestBody String mode) {
|
||||
return new ResponseEntity<>(HandService.updateMode(mode), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -120,4 +120,11 @@ public interface NdxyTwoHandService {
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
Map<String, Object> createTask2(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 修改工作模式
|
||||
*
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
Map<String, Object> updateMode(String mode);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.nl.acs.device_driver.ndxy_special.NdxySpecialDeviceDriver;
|
||||
import org.nl.acs.device_driver.ndxy_special_two.NdxySpecialTwoDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_inspect_site.StandardInspectSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.weighing_site.WeighingSiteDeviceDriver;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.instruction.service.dto.Instruction;
|
||||
import org.nl.acs.instruction.service.dto.InstructionDto;
|
||||
@@ -983,5 +984,21 @@ public class NdxyTwoHandServiceImpl implements NdxyTwoHandService {
|
||||
return resultJson;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> updateMode(String mode) {
|
||||
List<Device> allDevice = deviceAppService.findAllDevice();
|
||||
WeighingSiteDeviceDriver weighingSiteDeviceDriver;
|
||||
for (int i = 0; i < allDevice.size(); i++) {
|
||||
Device device = allDevice.get(i);
|
||||
if (device.getDeviceDriver() instanceof WeighingSiteDeviceDriver){
|
||||
weighingSiteDeviceDriver = (WeighingSiteDeviceDriver) device.getDeviceDriver();
|
||||
weighingSiteDeviceDriver.setNowMode(mode);
|
||||
}
|
||||
}
|
||||
JSONObject resultJson = new JSONObject();
|
||||
resultJson.put("code", "1");
|
||||
resultJson.put("desc", "更新成功");
|
||||
resultJson.put("result", new JSONObject());
|
||||
return resultJson;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import net.sf.json.JSONArray;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.nl.acs.agv.server.AgvService;
|
||||
import org.nl.acs.device_driver.electric_fence.ElectricFenceDeviceDriver;
|
||||
import org.nl.acs.device_driver.feedback_agv_status_site.FeedbackAGVStatusSiteDeviceDriver;
|
||||
import org.nl.acs.instruction.service.InstructionService;
|
||||
import org.nl.acs.opc.Device;
|
||||
import org.nl.acs.opc.DeviceAppService;
|
||||
@@ -16,6 +15,7 @@ import org.nl.utils.SpringContextHolder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -41,6 +41,8 @@ public class QueryMagicAgvDeviceStatus {
|
||||
JSONObject jo = ja.getJSONObject(i);
|
||||
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
|
||||
|
||||
Date now = new Date();
|
||||
|
||||
ElectricFenceDeviceDriver electricFenceDeviceDriver;
|
||||
List<Device> deviceAll = appService.findDevice(DeviceType.safetydoor);
|
||||
for (int j = 0; j < deviceAll.size(); j++) {
|
||||
@@ -48,11 +50,16 @@ public class QueryMagicAgvDeviceStatus {
|
||||
if (device.getDeviceDriver() instanceof ElectricFenceDeviceDriver) {
|
||||
electricFenceDeviceDriver = (ElectricFenceDeviceDriver) device.getDeviceDriver();
|
||||
if (jo.optString("state").equals("IDLE")) {
|
||||
electricFenceDeviceDriver.setStart_time(now);
|
||||
|
||||
electricFenceDeviceDriver.writing(1);
|
||||
}
|
||||
else if (jo.optString("state").equals("EXECUTING")) {
|
||||
} else if (jo.optString("state").equals("EXECUTING")) {
|
||||
electricFenceDeviceDriver.writing(2);
|
||||
}
|
||||
if (!jo.optString("state").equals("IDLE")) {
|
||||
electricFenceDeviceDriver.setStart_time(now);
|
||||
electricFenceDeviceDriver.setLast_start_time(now);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user