diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java b/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java index 15a9d9c..7adebca 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java @@ -231,7 +231,7 @@ public class AbstractDriverService implements DriverDeviceService { try { itemProtocol = methodItemProtocol.invoke(driver); } catch (Exception e) { - e.printStackTrace(); + //e.printStackTrace(); } } Field[] fields = new Field[0]; @@ -247,7 +247,7 @@ public class AbstractDriverService implements DriverDeviceService { try { fieldValue = (String) field.get(fieldName); } catch (Exception e) { - e.printStackTrace(); + //e.printStackTrace(); } Method method = null; try { @@ -264,7 +264,7 @@ public class AbstractDriverService implements DriverDeviceService { try { stringValueMethod = driverClass.getMethod("getStringValue",String.class,int.class); } catch (NoSuchMethodException e) { - e.printStackTrace(); + //e.printStackTrace(); } String stringValue = null; if (ObjectUtil.isNotEmpty(stringValueMethod)){ @@ -273,7 +273,7 @@ public class AbstractDriverService implements DriverDeviceService { stringValue = (String) stringValueMethod.invoke(driver,fieldValue,(int)itemValue); } } catch (Exception e) { - e.printStackTrace(); + //e.printStackTrace(); } } if (StrUtil.isNotEmpty(stringValue)){ diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/common/deviceInfo/StandardCoveyorControlDevice.java b/hd/nladmin-system/src/main/java/org/nl/acs/common/deviceInfo/StandardCoveyorControlDevice.java new file mode 100644 index 0000000..eaa4afa --- /dev/null +++ b/hd/nladmin-system/src/main/java/org/nl/acs/common/deviceInfo/StandardCoveyorControlDevice.java @@ -0,0 +1,47 @@ +package org.nl.acs.common.deviceInfo; + +import net.sf.json.JSONObject; +import org.nl.acs.common.AbstractDriverService; +import org.nl.acs.device_driver.standard_conveyor_control.StandardCoveyorControlDeviceDriver; +import org.nl.acs.opc.Device; +import org.nl.acs.task.service.dto.TaskDto; +import org.springframework.stereotype.Component; + +/** + * @author geng by + * 缓存架 + */ +@Component("standard_conveyor_control") +public class StandardCoveyorControlDevice extends AbstractDriverService { + StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; + + @Override + public JSONObject getDeviceInfo(Device device) { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + JSONObject jo = this.getCommonDeviceInfo(standardCoveyorControlDeviceDriver); + jo.put("is_click", true); + jo.put("hasGoods", standardCoveyorControlDeviceDriver.getBySignal()); + jo.put("device_type", "conveyor"); + return jo; + } + + @Override + public Boolean createInstCheckStartPoint(Device device, TaskDto taskDto) throws Exception { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + return true; + } + + @Override + public Boolean createInstCheckNextPoint(Device device, TaskDto taskDto) throws Exception { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + return true; + } + + @Override + public void changeDeviceStatus(Device device, JSONObject form) { + int hasGoodStatus = form.getInt("hasGoodStatus"); + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + standardCoveyorControlDeviceDriver.setBySignal(hasGoodStatus); + // this.changeDeviceStatus(standardCoveyorControlDeviceDriver, form, false); + } +} diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/common/deviceInfo/StandardInspectSiteDevice.java b/hd/nladmin-system/src/main/java/org/nl/acs/common/deviceInfo/StandardInspectSiteDevice.java deleted file mode 100644 index ae7c095..0000000 --- a/hd/nladmin-system/src/main/java/org/nl/acs/common/deviceInfo/StandardInspectSiteDevice.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.nl.acs.common.deviceInfo; - -import net.sf.json.JSONObject; -import org.nl.acs.common.AbstractDriverService; -import org.nl.acs.common.enums.InstEnum; -import org.nl.acs.device_driver.standard_inspect_site.StandardInspectSiteDeviceDriver; -import org.nl.acs.opc.Device; -import org.nl.acs.task.service.dto.TaskDto; -import org.springframework.stereotype.Component; - -/** - * @author geng by - * 缓存架 - */ -@Component("standard_inspect_site") -public class StandardInspectSiteDevice extends AbstractDriverService { - StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; - @Override - public JSONObject getDeviceInfo(Device device) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - JSONObject jo = this.getCommonDeviceInfo(standardInspectSiteDeviceDriver); - return jo; - } - - @Override - public Boolean createInstCheckStartPoint(Device device, TaskDto taskDto) throws Exception { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - return this.checkStartPoint(standardInspectSiteDeviceDriver, taskDto, InstEnum.standard_inspect_site_start.getMode(), InstEnum.standard_inspect_site_start.getMove()); - } - - @Override - public Boolean createInstCheckNextPoint(Device device, TaskDto taskDto) throws Exception { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - return this.checkNextPoint(standardInspectSiteDeviceDriver, taskDto,InstEnum.standard_inspect_site_next.getMode(), InstEnum.standard_conveyor_line_next.getMove()); - } - - @Override - public void changeDeviceStatus(Device device, JSONObject form) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - this.changeDeviceStatus(standardInspectSiteDeviceDriver, form, false); - } -} diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java index 49e4a4d..ed75f6b 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java @@ -73,7 +73,11 @@ public class AgvWaitUtil { } if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getBySignal() == 1 && standardCoveyorControlDeviceDriver.getByAction() == 0) { + int byError = standardCoveyorControlDeviceDriver.getByError(); + int bySignal = standardCoveyorControlDeviceDriver.getBySignal(); + int byAction = standardCoveyorControlDeviceDriver.getByAction(); + if (byError == 0 && bySignal == 1 && byAction == 0) { + standardCoveyorControlDeviceDriver.writing(1, "0"); feedMap.put("feedbackStatus", "applyTake"); Map feedback = acsToWmsZDService.taskFeedback(feedMap); int responseCode = Integer.parseInt((String) feedback.get("responseCode")); @@ -94,7 +98,7 @@ public class AgvWaitUtil { } } else { map.put("status", 400); - map.put("message", "请求失败,起点位置无货!move = " + standardCoveyorControlDeviceDriver.getBySignal()); + map.put("message", "请求失败,起点位置无货!move = " + bySignal + ",action = " + byAction + ",error = " + byError); type = "erro"; logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); throw new BadRequestException("请求失败,起点位置无货!"); @@ -213,7 +217,11 @@ public class AgvWaitUtil { } if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getBySignal() == 0 && standardCoveyorControlDeviceDriver.getByAction() == 0) { + int byError = standardCoveyorControlDeviceDriver.getByError(); + int bySignal = standardCoveyorControlDeviceDriver.getBySignal(); + int byAction = standardCoveyorControlDeviceDriver.getByAction(); + if (byError == 0 && bySignal == 0 && byAction == 0) { + standardCoveyorControlDeviceDriver.writing(1, "0"); feedMap.put("feedbackStatus", "applyPut"); Map feedback = acsToWmsZDService.taskFeedback(feedMap); int responseCode = Integer.parseInt((String) feedback.get("responseCode")); @@ -234,7 +242,7 @@ public class AgvWaitUtil { } } else { map.put("status", 400); - map.put("message", "请求失败,终点位置有货!move = " + standardCoveyorControlDeviceDriver.getBySignal()); + map.put("message", "请求失败,终点位置有货!move = " + bySignal + ",action = " + byAction + ",error = " + byError); type = "erro"; logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); throw new BadRequestException("请求失败,终点位置有货!"); diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java index e48680e..7343b99 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java @@ -4,16 +4,11 @@ import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONObject; -import org.nl.acs.device_driver.standard_conveyor_control.StandardCoveyorControlDeviceDriver; -import org.nl.acs.device_driver.standard_conveyor_line.StandardConveyorLineDeviceDriver; import org.nl.acs.ext.wms.service.AgvToAcsService; import org.nl.acs.ext.wms.service.AgvWaitUtil; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.LogServer; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.task.service.TaskService; import org.nl.exception.BadRequestException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,9 +21,6 @@ import java.util.Map; @Slf4j public class AgvToAcsServiceImpl implements AgvToAcsService { - private final TaskService taskService; - private final DeviceAppService deviceAppService; - private final AcsToWmsZDServiceImpl acsToWmsZDService; private final InstructionService instructionService; private final AgvWaitUtil agvWaitUtil; @Autowired @@ -52,23 +44,22 @@ public class AgvToAcsServiceImpl implements AgvToAcsService { feedMap.put("taskCode", task_code); feedMap.put("taskType", instructionDto.getInstruction_type()); feedMap.put("carId", instructionDto.getAgv_jobno()); - String type = ""; String start_device_code = instructionDto.getStart_device_code(); String next_device_code = instructionDto.getNext_device_code(); if (address.contains("IN")) { String deviceCodeNow = address.substring(0, address.length() - 2); if (start_device_code.equals(deviceCodeNow)) { - return agvWaitUtil.waitInGet(deviceCodeNow,feedMap,param); - }else if (next_device_code.equals(deviceCodeNow)) { - return agvWaitUtil.waitOutGet(deviceCodeNow,feedMap,param); + return agvWaitUtil.waitInGet(deviceCodeNow, feedMap, param); + } else if (next_device_code.equals(deviceCodeNow)) { + return agvWaitUtil.waitOutGet(deviceCodeNow, feedMap, param); } } if (address.contains("OUT")) { String deviceCodeNow = address.substring(0, address.length() - 3); if (start_device_code.equals(deviceCodeNow)) { - return agvWaitUtil.waitInPut(deviceCodeNow,feedMap,param); - }else if (next_device_code.equals(deviceCodeNow)) { - return agvWaitUtil.waitOutPut(deviceCodeNow,feedMap,param); + return agvWaitUtil.waitInPut(deviceCodeNow, feedMap, param); + } else if (next_device_code.equals(deviceCodeNow)) { + return agvWaitUtil.waitOutPut(deviceCodeNow, feedMap, param); } } map.put("status", 400); diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java index d56d2f3..e37cb78 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java @@ -121,6 +121,14 @@ public class TaskController { return new ResponseEntity<>(HttpStatus.OK); } + @Log("非终点位放货完成") + @ApiOperation("非终点位放货完成") + @PostMapping(value = "/noTargetPutFinish/{id}") + public ResponseEntity noTargetPutFinish(@RequestBody String id) throws Exception { + taskService.noTargetPutFinish(id); + return new ResponseEntity<>(HttpStatus.OK); + } + @Log("任务异常完成") @ApiOperation("任务异常完成") @PostMapping(value = "/errorFinish/{id}") diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java index 4a70c47..9181f74 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java @@ -173,6 +173,13 @@ public interface TaskService { */ void finish(String ids); + /** + * 非终点位放货完成 + * + * @param ids + */ + void noTargetPutFinish(String ids); + /** * 取消任务 * diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index a82d36e..fa7fd34 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -698,6 +698,33 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { removeByCodeFromCache(entity.getTask_code()); } + @Override + @Transactional(rollbackFor = Exception.class) + public void noTargetPutFinish(String ids) { + TaskDto entity = this.findById(ids); + Instruction instruction = instructionService.findByTaskcode(entity.getTask_code()); + if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); + InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); + InstructionDto instdto = instructionservice.findByTaskid(ids, "instruction_status <2 "); + if (instdto != null) throw new BadRequestException("有指令未完成!"); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_by(currentUsername); + entity.setTask_status("3"); + entity.setRemark("非终点位放货完成"); + WQLObject wo = WQLObject.getWQLObject("acs_task"); + JSONObject json = JSONObject.fromObject(entity); + wo.update(json); + Map feedMap = new HashMap(); + feedMap.put("taskCode", entity.getTask_code()); + feedMap.put("taskType", entity.getTask_type()); + feedMap.put("carId", instruction.getAgv_jobno()); + feedMap.put("feedbackStatus", "NoTargetPutFinish"); + acsToWmsZDService.taskFeedback(feedMap); + removeByCodeFromCache(entity.getTask_code()); + } + @Override @Transactional(rollbackFor = Exception.class) public void finish(String id) { diff --git a/qd/src/api/acs/task/task.js b/qd/src/api/acs/task/task.js index 2285a51..60434e6 100644 --- a/qd/src/api/acs/task/task.js +++ b/qd/src/api/acs/task/task.js @@ -48,6 +48,14 @@ export function errorFinish(task_id) { }) } +export function noTargetPutFinish(task_id) { + return request({ + url: 'api/task/noTargetPutFinish/' + task_id, + method: 'post', + data: task_id + }) +} + export function exceptions(task_id) { return request({ url: 'api/task/exception/' + task_id, @@ -119,5 +127,5 @@ export function specialTaskCreate(data) { }) } -export default { add, edit, del, finish, cancel, createTaskByClick, deviceAskTask, ordinaryTaskCreate, specialTaskCreate, createInst, reload, errorFinish, exceptions, deprecate } +export default { add, edit, del, noTargetPutFinish, finish, cancel, createTaskByClick, deviceAskTask, ordinaryTaskCreate, specialTaskCreate, createInst, reload, errorFinish, exceptions, deprecate } diff --git a/qd/src/views/acs/task/index.vue b/qd/src/views/acs/task/index.vue index e9f4347..d01c1b3 100644 --- a/qd/src/views/acs/task/index.vue +++ b/qd/src/views/acs/task/index.vue @@ -271,6 +271,7 @@ 异常完成 异常 作废 + 非终点任务完成 @@ -467,6 +468,14 @@ export default { console.log(err.response.data.message) }) }, + noTargetPutFinish(index, row) { + crudTask.noTargetPutFinish(row.task_id).then(res => { + this.crud.toQuery() + this.crud.notify('成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + }).catch(err => { + console.log(err.response.data.message) + }) + }, reload() { crudTask.reload().then(res => { this.crud.toQuery() @@ -502,6 +511,9 @@ export default { case 'f':// 作废 this.deprecate(command.index, command.row) break + case 'g':// 作废 + this.noTargetPutFinish(command.index, command.row) + break } }, showStartStorage(val) {