纽迪希亚2页面非工作模式切换

This commit is contained in:
loujf
2022-08-03 19:30:08 +08:00
parent cdb55b33e4
commit d9cfa27c6b
8 changed files with 89 additions and 4 deletions

View File

@@ -42,4 +42,6 @@ public interface AcsConfig {
String NDC_RECONNECTION = "NDC_reconnection";
//自动清理日志保留时间
String AutoCleanDays = "AutoCleanDays";
//agv闲置时间 单位(分钟)
String AGVIDLETIME = "agvIdleTime";
}

View File

@@ -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;

View File

@@ -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)) {

View File

@@ -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());

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}
}