diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/autotask/CleanTaskAndInst.java b/acs/nladmin-system/src/main/java/org/nl/acs/autotask/CleanTaskAndInst.java new file mode 100644 index 000000000..082574baa --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/autotask/CleanTaskAndInst.java @@ -0,0 +1,33 @@ +package org.nl.acs.autotask; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.task.service.TaskService; +import org.nl.modules.system.service.ParamService; +import org.nl.modules.wql.core.bean.WQLObject; +import org.springframework.stereotype.Component; + +/** + * 定时清理任务和指令 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class CleanTaskAndInst { + + private final TaskService taskService; + private final ParamService paramService; + + public void run(){ + + WQLObject acsTask = WQLObject.getWQLObject("acs_task"); + int days = Integer.parseInt(paramService.findByCode("task_inst_time").getValue()); + acsTask.delete("DATE(create_time) <= DATE(DATE_SUB(NOW(),INTERVAL " + days + " day))"); + log.info("自动清理任务日志执行成功...!"); + + WQLObject acsInst = WQLObject.getWQLObject("acs_instruction"); + acsInst.delete("DATE(create_time) <= DATE(DATE_SUB(NOW(),INTERVAL " + days + " day))"); + log.info("自动清理指令日志执行成功...!"); + + } +} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index f6c3817c7..86e9b7d11 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -933,8 +933,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i int door = hongXiangConveyorDeviceDriver.getDoor(); int action = hongXiangConveyorDeviceDriver.getAction(); int error1 = hongXiangConveyorDeviceDriver.getError1(); + int error = hongXiangConveyorDeviceDriver.getError(); int move = hongXiangConveyorDeviceDriver.getMove(); - if (mode == 1 && door == 1 && action == 1 && error1 == 0 && move == 1) { + if (mode == 1 && door == 1 && action == 1 && error1 == 0 && error == 0 && move == 1) { if (this.getNow_steps_type() == 2) { this.writing("to_command", "2"); this.setNow_steps_type(3); @@ -1038,8 +1039,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i int door = hongXiangConveyorDeviceDriver.getDoor(); int action = hongXiangConveyorDeviceDriver.getAction(); int error1 = hongXiangConveyorDeviceDriver.getError1(); + int error = hongXiangConveyorDeviceDriver.getError(); int move = hongXiangConveyorDeviceDriver.getMove(); - if (mode == 1 && door == 1 && action == 1 && error1 == 0 && move == 0) { + if (mode == 1 && door == 1 && action == 1 && error1 == 0 && error == 0 && move == 0) { if (this.getNow_steps_type() == 4) { this.writing("to_command", "4"); this.setNow_steps_type(5); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 1504c8294..34740dbfd 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -443,13 +443,6 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } } else { if (StrUtil.equals(task.getTask_type(), "9") && StrUtil.isNotEmpty(task.getPut_device_code())) { -// if(task.getNext_device_code().equals(device_code) -// && StrUtil.equals(task.getTask_status(), "1")){ -// Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); -// if (ObjectUtil.isNotEmpty(instruction)) { -// list.add(task); -// } -// } Instruction instruction = instructionService.findByDeviceCodeFromCache(task.getNext_device_code()); if (ObjectUtil.isNotEmpty(instruction)) { if (StrUtil.equals(instruction.getStart_device_code(), device_code)) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java index 02927bb23..1908f1bdf 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java @@ -1,7 +1,5 @@ package org.nl.acs.address.rest; - - import lombok.RequiredArgsConstructor; import org.nl.acs.address.service.AddressService; import org.nl.acs.address.service.dto.AddressDto; @@ -29,14 +27,12 @@ public class AddressController { @GetMapping @Log("查询接口方法地址") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(addressService.queryAll(whereJson, page), HttpStatus.OK); } @PostMapping @Log("新增接口方法地址") - public ResponseEntity create(@Validated @RequestBody AddressDto dto) { addressService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); @@ -44,14 +40,12 @@ public class AddressController { @PutMapping @Log("修改接口方法地址") - public ResponseEntity update(@Validated @RequestBody AddressDto dto) { addressService.update(dto); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Log("删除接口方法地址") - @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { addressService.deleteAll(ids); @@ -59,7 +53,6 @@ public class AddressController { } @Log("导出接口方法地址") - @GetMapping(value = "/download") public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException { addressService.download(addressService.queryAll(whereJson), response); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressDto.java index b4893a78a..5b6faa312 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressDto.java @@ -1,17 +1,8 @@ package org.nl.acs.address.service.dto; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; - import java.io.Serializable; -import java.util.Date; -import java.sql.Timestamp; - - /** * @author jiaolm diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressQueryParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressQueryParam.java index 8600eb053..77f621a57 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressQueryParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/dto/AddressQueryParam.java @@ -3,12 +3,6 @@ package org.nl.acs.address.service.dto; import lombok.Getter; import lombok.Setter; -import java.util.List; -import java.util.Date; - -import org.nl.common.annotation.Query; -import org.springframework.format.annotation.DateTimeFormat; - /** * @author jiaolm * @date 2023-05-10 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java index e6558cc23..ef0cc7e30 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java @@ -132,10 +132,9 @@ public class AddressServiceImpl extends CommonServiceImpl AGVDeviceStatus = new HashMap(); - @LokiLog(type = LokiLogType.AGV) + @Override public void deleteAgvInstToNDC(Instruction inst) throws Exception { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) { @@ -74,7 +72,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { } - @LokiLog(type = LokiLogType.AGV) + @Override public void sendAgvInstToNDC(String agv_system_type, Instruction inst) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) { @@ -309,7 +307,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { } - @LokiLog(type = LokiLogType.AGV) + @Override public Map findAllAgvFromCache() { return AGVDeviceStatus; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java index 2472995e7..3cdcca2bc 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java @@ -21,8 +21,6 @@ import org.nl.acs.device.domain.Device; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.log.LokiLog; -import org.nl.acs.log.LokiLogType; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.device.enums.DeviceType; import org.nl.common.exception.BadRequestException; @@ -67,7 +65,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { @Value("${agvToAcs.addr}") private String addr; - @LokiLog(type = LokiLogType.AGV) + @Override public String waitPointRequest(String param) { log.info("收到AGV请求参数:{}", param); @@ -112,7 +110,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse markComplete(String code) throws Exception { @@ -138,7 +136,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse queryXZAgvDeviceStatus() { @@ -199,7 +197,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse queryXZAgvInstStatus(String instCode) { @@ -222,7 +220,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse deleteXZAgvInst(String instCode) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) { @@ -242,49 +240,32 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse sendOrderSequencesToXZ(Instruction inst) throws Exception { - /*JSONObject jo = new JSONObject(); - jo.put("intendedVehicle", ""); - jo.put("category", ""); - jo.put("failureFatal", false); - jo.put("complete", false); - JSONArray transports = new JSONArray(); - JSONObject orderjo = new JSONObject(); - orderjo.put("name", inst.getInstruction_code()); - orderjo.put("order", createOrederData(inst, CommonFinalParam.ONE)); - transports.add(orderjo); - jo.put("transports", transports); - - JSONArray ja1 = new JSONArray(); - JSONObject jo1 = new JSONObject(); - jo1.put("key", ""); - jo1.put("value", ""); - ja1.add(jo1); - jo.put("properties", ja1); - log.info("任务号:{},指令号{},下发agv订单序列参数:{}", inst.getTask_code(), inst.getInstruction_code(), jo.toString());*/ - com.alibaba.fastjson.JSONObject jo = new com.alibaba.fastjson.JSONObject(); jo.put("id", inst.getInstruction_code()); + //运单封口,true=创建运单之后不可添加动作块;false=创建运单可以添加动作块 jo.put("complete", true); + //动作块 jo.put("blocks", createBlocksData(inst)); + //运单优先级 jo.put("priority", inst.getPriority()); - log.info("任务号:{},指令号{},下发agv订单序列参数:{}", inst.getTask_code(), inst.getInstruction_code(), jo.toString()); + log.info("任务号:{},指令号{},下发agv订单序列参数:{}", inst.getTask_code(), inst.getInstruction_code(), jo); if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) { String agvurl = paramService.findByCode(AcsConfig.AGVURL).getValue(); String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue(); - agvurl = agvurl + ":" + agvport + "/api/route/orderSequences/" + inst.getTask_code(); + agvurl = agvurl + ":" + agvport + "/setOrder"; + log.info(agvurl); HttpResponse result = HttpRequest.post(agvurl) //表单内容 .body(String.valueOf(jo)) //超时,毫秒 .timeout(20000) .execute(); - log.info(agvurl); log.info("任务号:{},指令号{},状态{},下发agv订单序列反馈:{}", inst.getTask_code(), inst.getInstruction_code(), result.getStatus(), result.body()); return result; @@ -294,41 +275,57 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } /** - * 下发运单 + * 下发动作块信号 + * * @param inst * @return */ public JSONArray createBlocksData(Instruction inst) { JSONArray ja = new JSONArray(); - sendStartDeviceOrder(ja,inst.getStart_device_code(), inst.getStart_point_code(),inst.getInstruction_code()); - sendEndDeviceOrder(ja,inst.getStart_device_code(),inst.getInstruction_code(),inst.getNext_point_code(),inst.getNext_device_code()); - if(StrUtil.isNotEmpty(inst.getStart_device_code2())){ - sendStartDeviceOrder(ja,inst.getStart_device_code2(), inst.getStart_point_code2(),inst.getInstruction_code()); + String instruction_code = inst.getInstruction_code(); + String start_device_code = inst.getStart_device_code(); + String start_point_code = inst.getStart_point_code(); + String next_device_code = inst.getNext_device_code(); + String next_point_code = inst.getNext_point_code(); + sendStartDeviceOrder(ja, start_device_code, start_point_code, instruction_code); + sendEndDeviceOrder(ja, start_device_code, instruction_code, next_point_code, next_device_code); + String start_device_code2 = inst.getStart_device_code2(); + String start_point_code2 = inst.getStart_point_code2(); + if (StrUtil.isNotEmpty(start_device_code2)) { + sendStartDeviceOrder(ja, start_device_code2, start_point_code2, instruction_code); } - if(StrUtil.isNotEmpty(inst.getNext_device_code2())){ - sendEndDeviceOrder(ja,inst.getNext_device_code2(),inst.getInstruction_code(),inst.getNext_point_code2(),inst.getNext_device_code2()); + String next_device_code2 = inst.getNext_device_code2(); + String next_point_code2 = inst.getNext_point_code2(); + if (StrUtil.isNotEmpty(next_device_code2)) { + sendEndDeviceOrder(ja, start_device_code2, instruction_code, next_device_code2, next_point_code2); } return ja; } /** - * 下发取货 - * @param device_code - * @param instCode + * 下发取货信号 + * @param ja + * @param pointCode 起始点位 + * @param device_code 起始设备 + * @param instCode 指令号 */ - public void sendStartDeviceOrder(JSONArray ja,String pointCode, String device_code,String instCode){ - + public void sendStartDeviceOrder(JSONArray ja, String pointCode, String device_code, String instCode) { Device startDevice = deviceAppService.findDeviceByCode(device_code); //忽略取货校验 if ("true".equals(startDevice.getExtraValue().get("ignore_pickup_check"))) { //取货前等待 JSONObject jo = new JSONObject(); + //动作块id jo.put("blockId", IdUtil.simpleUUID()); + //目的地名称 jo.put("location", pointCode + "INGET"); + //执行脚本 jo.put("operation", "script"); jo.put("id", pointCode + "INGET"); + //通信脚本,动作前后与现场设备交互的场景 jo.put("script_name", "userpy/interact.py"); JSONObject script_args = new JSONObject(); + //更改为现场设备IP及PORT script_args.put("addr", addr); JSONObject data = new JSONObject(); JSONObject reach = new JSONObject(); @@ -340,7 +337,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { jo.put("script_args", script_args); ja.add(jo); } - + //将货物顶起来 JSONObject jo1 = new JSONObject(); jo1.put("blockId", IdUtil.simpleUUID()); jo1.put("location", pointCode); @@ -368,11 +365,14 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } /** - * 下发放货 - * @param device_code - * @param instCode + * 下发放货信号 + * @param ja + * @param device_code 起始设备 + * @param instCode 指令号 + * @param pointCode 终点点位 + * @param nextDeviceCode 终点设备 */ - public void sendEndDeviceOrder(JSONArray ja,String device_code,String instCode,String pointCode,String nextDeviceCode){ + public void sendEndDeviceOrder(JSONArray ja, String device_code, String instCode, String pointCode, String nextDeviceCode) { Device nextDevice = deviceAppService.findDeviceByCode(nextDeviceCode); //忽略放货校验 if ("true".equals(nextDevice.getExtraValue().get("ignore_release_check"))) { @@ -398,24 +398,27 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { //放货前下发旋转角度 JSONObject json1 = new JSONObject(); - AcsPointAngle acsPointAngleDto = acsPointAngleService.findByCode(device_code,nextDeviceCode); - if (ObjectUtil.isNotEmpty(acsPointAngleDto)){ + AcsPointAngle acsPointAngleDto = acsPointAngleService.findByCode(device_code, nextDeviceCode); + if (ObjectUtil.isNotEmpty(acsPointAngleDto)) { log.info("acsPointAngleDto----參數,{}", acsPointAngleDto.toString()); com.alibaba.fastjson.JSONObject operation_args = new com.alibaba.fastjson.JSONObject(); BigDecimal next_point_angle = acsPointAngleDto.getNext_point_angle(); - operation_args.put("increase_spin_angle",next_point_angle);//弧度值,如3.14 - operation_args.put("skill_name","GoByOdometer"); + operation_args.put("increase_spin_angle", next_point_angle);//弧度值,如3.14 + operation_args.put("skill_name", "GoByOdometer"); json1.put("blockId", IdUtil.simpleUUID()); json1.put("location", pointCode + "INPUT"); - json1.put("operation_args",operation_args); + json1.put("operation_args", operation_args); ja.add(json1); } + //将货物放下 com.alibaba.fastjson.JSONObject jo4 = new com.alibaba.fastjson.JSONObject(); jo4.put("blockId", IdUtil.simpleUUID()); jo4.put("location", pointCode); jo4.put("operation", "JackUnload"); ja.add(jo4); + + //忽略放货校验 if ("true".equals(nextDevice.getExtraValue().get("ignore_release_check"))) { //放货完成等待 @@ -439,7 +442,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse addOrderSequences(Instruction inst) throws Exception { JSONObject orderjo = createOrederData(inst, CommonFinalParam.ONE); @@ -466,7 +469,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - @LokiLog(type = LokiLogType.AGV) + @Override public String sendOrderSequencesParam(Instruction inst) throws Exception { JSONObject jo = new JSONObject(); @@ -484,7 +487,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { return jo.toString(); } - @LokiLog(type = LokiLogType.AGV) + @Override public JSONObject createOrederData(Instruction inst, String inst_type) { String inst_code = inst.getInstruction_code(); @@ -523,8 +526,8 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { Device startdevice = deviceAppService.findDeviceByCode(startAddress); Device nextdevice = deviceAppService.findDeviceByCode(nextAddress); break; - default: - break; + default: + break; } orderjo.put("destinations", ja); @@ -621,7 +624,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { return destinationOrder; } - @LokiLog(type = LokiLogType.AGV) + @Override public String queryDoorStatus(String device) { log.info("AGV查询自动门状态,参数:{}", device); @@ -711,35 +714,13 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { throw new BadRequestException("请求失败,IN OUT 站点错误!"); } - @Override - public HttpResponse selectOrderByInstCode(String instCode) { - if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { - String agvurl =paramService.findByCode(AcsConfig.AGVURL).getValue(); - String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue(); - - com.alibaba.fastjson.JSONObject param = new com.alibaba.fastjson.JSONObject(); - param.put("id", instCode); - param.put("disableVehicle", false); - agvurl = agvurl + ":" + agvport + "/" + instCode; - log.info("根据运单号查询运单状态的请求:{}", agvurl); - HttpResponse result = HttpRequest.post(agvurl) - .body(param.toJSONString()) - .timeout(20000)//超时,毫秒 - .execute(); - log.info("根据运单号查询运单状态的请求反馈:{}", result); - return result; - } else { - return null; - } - } - @Override public HttpResponse getRobotInfo(String robotCode) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { - String agvurl =paramService.findByCode(AcsConfig.AGVURL).getValue(); + String agvurl = paramService.findByCode(AcsConfig.AGVURL).getValue(); String agvport = paramService.findByCode(AcsConfig.AGVPORT).getValue(); - agvurl = agvurl + ":" + agvport + "/"+ " robotsStatus?vehicles=" + robotCode; + agvurl = agvurl + ":" + agvport + "/" + " robotsStatus?vehicles=" + robotCode; log.info("根据指定机器人查询状态的请求:{}", agvurl); HttpResponse result = HttpRequest.get(agvurl) .timeout(20000)//超时,毫秒 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java index 1f731235f..0d66afd52 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/ZheDaAgvServiceImpl.java @@ -17,8 +17,6 @@ import org.nl.acs.device_driver.two_conveyor.hongxiang_device.HongXiangConveyorD import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.log.LokiLog; -import org.nl.acs.log.LokiLogType; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.task.service.TaskService; @@ -61,7 +59,7 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { */ private static final String UNLOAD = "Unload"; - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse sendAgvInstToAgv(Instruction inst) throws Exception { JSONObject jo = new JSONObject(); @@ -127,7 +125,7 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { * @param type * @return */ - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse queryAgvInstStatus(String type) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) { @@ -165,7 +163,7 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { * @param processingVehicle * @return */ - @LokiLog(type = LokiLogType.AGV) + @Override public synchronized String process(String jobno, String type, String address, String action, String processingVehicle) { log.info("查询到AGV请求参数,jobno:{},address:{}", jobno + ",address:" + address + ",type:" + type + ",action:" + action); @@ -341,7 +339,7 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { } - @LokiLog(type = LokiLogType.AGV) + @Override public HttpResponse markComplete(String code) { @@ -378,7 +376,7 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService { * demo:destination("cz14", "JackUnload", "3", "") * @return */ - @LokiLog(type = LokiLogType.AGV) + public static JSONObject destination(String locationName, String operation, String propertiesType, String pro) { //新增业务订单 JSONObject destinationOrder = new JSONObject(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java new file mode 100644 index 000000000..7587a9b3c --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java @@ -0,0 +1,348 @@ +package org.nl.acs.auto.run; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.AcsConfig; +import org.nl.acs.agv.server.NDCAgvService; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device.service.DeviceService; +import org.nl.acs.device_driver.agv.ndctwo.AgvNdcTwoDeviceDriver; +import org.nl.acs.device_driver.autodoor.standard_autodoor.StandardAutodoorDeviceDriver; +import org.nl.acs.ext.wms.service.AcsToWmsService; +import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; +import org.nl.acs.instruction.domain.Instruction; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.instruction.service.impl.InstructionServiceImpl; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.acs.opc.DeviceAppService; +import org.nl.config.SpringContextHolder; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.system.service.param.ISysParamService; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.Date; +import java.util.List; + +import static org.nl.acs.agv.server.impl.NDCAgvServiceImpl.Bytes2HexString; + + +@Slf4j +@Component +public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { + + Socket s; + String ip = "192.168.46.225"; + int port = 1234; + static DataOutputStream dos; + static DataInputStream dis; + private int recordTimeOut = 10000; + private Date recordTime; + String[] ERROR = new String[]{ + "货叉尖部传感器触发", "S300传感器触发", "载货状态改变", "急停按钮触发", "触边开关出发", "需要复位", + "停在充电位", "取货失败", "放货失败", "轮子打滑", "没有动作码不能进入站点", "取货时有货", "丢失定位", + "抬叉停止"}; + boolean bConnected = true; + + boolean isReConnect = false; + + @Autowired + ISysParamService paramService; + @Autowired + AutoRunService autoRunService; + @Autowired + LuceneExecuteLogService luceneExecuteLogService; + + + public TwoNDCSocketConnectionAutoRun() { + this.recordTime = new Date((new Date()).getTime() - (long) this.recordTimeOut); + } + + @Override + public String getCode() { + return TwoNDCSocketConnectionAutoRun.class.getSimpleName(); + } + + @Override + public String getName() { + return "2楼1区域AGV系统"; + } + + @Override + public void autoRun() throws IOException { + ISysParamService paramService = SpringContextHolder.getBean(SysParamServiceImpl.class); + InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); + NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); + DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); + DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); + + try { + System.out.println("2楼1区域AGV系统链接开始"); + ip = paramService.findByCode(AcsConfig.AGVURL2).getValue(); + port = Integer.parseInt(paramService.findByCode(AcsConfig.AGVPORT2).getValue()); +// byte[] b = new byte[1024]; +// s = new Socket(ip, port); +// System.out.println("2楼1区域Agv链接成功"); +// dos = new DataOutputStream(s.getOutputStream()); +// dis = new DataInputStream(s.getInputStream()); + + InetSocketAddress socketAddress = new InetSocketAddress(ip, port); + + byte[] b = new byte[1024]; + s = new Socket(); + s.connect(socketAddress,2*1000); + s.setKeepAlive(true);//长链接 +// s.setSoTimeout(1000* 60 * 10);//读取超时时间 + dos = new DataOutputStream(s.getOutputStream()); + dis = new DataInputStream(s.getInputStream()); + + while (bConnected) { + int count = dis.read(b); + + if (count == -1) { + log.error("agv连接出现异常:服务端被关闭"); + if (ObjectUtil.isNotEmpty(s)) { + s.close(); + } + break; + } + + int[] arr = new int[count]; + StringBuffer bs = new StringBuffer(); + + for (int i = 0; i < count; i++) { + int temp = b[i]; + if (temp < 0) + temp += 256; + arr[i] = temp; + StringBuffer bs1 = new StringBuffer("0"); + bs.append(temp < 16 ? bs1.append(Integer.toHexString(temp)) : Integer.toHexString(temp)); + } + + System.out.println("收到请求参数:" + bs); + boolean flag = false; + if (arr[8] * 256 + arr[9] == 0x73) { + byte[] data = null; + System.out.println("接收agv上报信息:" + bs); + //执行阶段 + int phase = arr[16] * 256 + arr[17]; + // agv任务号 + int index = arr[12] * 256 + arr[13]; + //任务号 + int ikey = arr[26] * 256 + arr[27]; + //站点号 + int agvaddr = arr[18] * 256 + arr[19]; + //车号 + int carno = arr[20]; + Instruction inst = null; + if (ikey != 0) { + inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); + } + log.info("接收agv上报信息:" + bs); + log.info("接收agv上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); + Device device = null; + String device_code = null; + String old_device_code = null; + String emptyNum = null; + //自动门 + StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; + if (agvaddr != 0) { + old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr); + if (StrUtil.contains(old_device_code, "-")) { + String[] point = old_device_code.split("-"); + device_code = point[0]; + } else if (StrUtil.contains(old_device_code, ".")) { + String[] point = old_device_code.split("\\."); + device_code = point[0]; + emptyNum = point[1]; + } else { + device_code = old_device_code; + } + device = deviceAppService.findDeviceByCode(device_code); + } + + AgvNdcTwoDeviceDriver agvNdcTwoDeviceDriver; + //开始任务 + if (phase == 0x01) { + if (!ObjectUtil.isEmpty(inst)) { + inst.setInstruction_status("1"); + inst.setAgv_jobno(String.valueOf(index)); + inst.setSend_status("1"); + instructionService.update(inst); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + flag = true; + } + //任务完毕 + //(无车id及状态) + else if (phase == 0x14) { + if (ObjectUtil.isEmpty(inst)) { + log.info("未找到指令号{}对应的指令", ikey); + } else { + String agvcar = inst.getCarno(); + Device agvDevice = deviceAppService.findDeviceByCode(agvcar); + if (agvDevice != null) { + if (agvDevice.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) { + agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) agvDevice.getDeviceDriver(); + agvNdcTwoDeviceDriver.setInstruction(null); + } + } + inst.setInstruction_status("2"); + try { + instructionService.finish(inst); + } catch (Exception e) { + e.printStackTrace(); + } + } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + //请求删除任务 + //(需要WCS反馈) + else if (phase == 0x30) { + data = ndcAgvService.sendAgvTwoModeInst(0x8F, index, 0); + } + //任务删除确认 + //(需要WCS反馈) + else if (phase == 0xFF) { + if (ObjectUtil.isEmpty(inst)) { + log.info("未找到指令号{}对应的指令", ikey); + } else { + instructionService.cancelNOSendAgv(inst.getInstruction_id()); + } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else if (phase == 0x50) { + if (ObjectUtil.isEmpty(device_code)) { + log.info(agvaddr + "对应设备号为空!"); + return; + } + if(ObjectUtil.isNotEmpty(device)) { + if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { + standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); + try { + standardAutodoorDeviceDriver.writing("to_command", 1); + } catch (Exception e) { + log.info("下发电气信号失败:" + e.getMessage()); + e.printStackTrace(); + } + if (standardAutodoorDeviceDriver.getAction() == 1 && standardAutodoorDeviceDriver.getTo_command() == 1 ) { + log.info("下发开门信号值为:{}", standardAutodoorDeviceDriver.getTo_command()); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } + } else { + log.info(agvaddr + "对应设备号为空!"); + } + + } else if (phase == 0x51) { + if (ObjectUtil.isEmpty(device_code)) { + log.info(agvaddr + "对应设备号为空!"); + return; + } + if(ObjectUtil.isNotEmpty(device)){ + if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { + standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); + try { + standardAutodoorDeviceDriver.writing("to_command", 2); + } catch (Exception e) { + log.info("下发电气信号失败:" + e.getMessage()); + e.printStackTrace(); + } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else { + log.info(device_code + "对应设备号为空!"); + } + + } else { + //上报异常信息 + //(不需要WCS反馈) + if (phase == 0x67 || phase == 0x70 || phase == 0x71 || phase == 0x72 || phase == 0x73 || phase == 0x74) { + device = deviceAppService.findDeviceByCode(Integer.toString(arr[18] * 256 + arr[19])); + } else { + device = deviceAppService.findDeviceByCode(Integer.toString(arr[20])); + } + try{ + if(ObjectUtil.isNotEmpty(device)){ + if (device.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) { + agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) device.getDeviceDriver(); + agvNdcTwoDeviceDriver.processSocket(arr); + } + } else { + log.info("当前phase:"+ phase +"未找到对应设备"); + } + } catch (Exception e){ + log.info("processSocket出错:{},{}" ,e, e.getMessage()); + e.printStackTrace(); + } + } + if (!ObjectUtil.isEmpty(data)) { + write(data); + } + + } else { + System.out.println("agv上报不是0073类型动作,不处理"); + } + } + + } catch (Exception e) { + + + System.out.println("TwoAgv链接异常"); + log.info("TwoAgv链接异常"); + log.error("agv连接出现异常:{}", e); + logServer.deviceExecuteLog("NDC2", "", "", "agv异常" + e.getMessage()); + logServer.deviceExecuteLog("NDC2", "", "", "agv异常" + e); + if (ObjectUtil.isNotEmpty(s)) { + s.close(); + } + System.out.println(e.getMessage()); + + } finally { + + + } + + } + + + @Override + public void stop() { + super.after(); + try { + s.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + public static void write(byte[] b) { + try { + log.info("下发agv数据:" + Bytes2HexString(b)); + System.out.println("下发agv数据:" + Bytes2HexString(b)); + dos.write(b); + dos.flush(); + } catch (Exception e) { + // TODO Auto-generated catch block + try{ + Thread.sleep(5000); + log.info("再次下发agv数据:" + Bytes2HexString(b)); + System.out.println("再次下发agv数据:" + Bytes2HexString(b)); + dos.write(b); + dos.flush(); + } catch (Exception e1){ + e1.printStackTrace(); + } + + } + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java index f5ba681d1..68ca91154 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/common/base/CommonFinalParam.java @@ -5,7 +5,6 @@ package org.nl.acs.common.base; import lombok.Data; -import org.springframework.stereotype.Component; @Data public class CommonFinalParam { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/CustomerStragetyCacheService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/CustomerStragetyCacheService.java index c1f2bbf5c..7ae5ad02e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/CustomerStragetyCacheService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/CustomerStragetyCacheService.java @@ -1,7 +1,6 @@ package org.nl.acs.custompolicy; import org.nl.acs.auto.initial.ApplicationAutoInitial; - import java.util.HashMap; import java.util.Map; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/WaitingInstructionDeque.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/WaitingInstructionDeque.java index 89561654b..58b6f6562 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/WaitingInstructionDeque.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/WaitingInstructionDeque.java @@ -5,12 +5,7 @@ import cn.hutool.core.util.StrUtil; import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.instruction.enums.InstructionStatusEnum; import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.log.service.DeviceExecuteLogService; -import org.nl.acs.opc.ObjectUtl; -import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.impl.RouteLineServiceImpl; import org.nl.config.SpringContextHolder; -import org.springframework.beans.factory.annotation.Autowired; import java.util.Iterator; import java.util.LinkedList; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/domain/CustomPolicy.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/domain/CustomPolicy.java index 791c97809..45e45b325 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/domain/CustomPolicy.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/domain/CustomPolicy.java @@ -1,14 +1,10 @@ package org.nl.acs.custompolicy.domain; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; - import lombok.*; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/rest/CustomPolicyController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/rest/CustomPolicyController.java index 802954a0e..9a544a6fa 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/rest/CustomPolicyController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/rest/CustomPolicyController.java @@ -1,11 +1,8 @@ package org.nl.acs.custompolicy.rest; - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.acs.address.service.dto.AddressDto; -import org.nl.acs.agv.server.MagicAgvService; import org.nl.acs.custompolicy.server.CustomPolicyService; import org.nl.acs.custompolicy.server.dto.CustomPolicyDTO; import org.nl.acs.custompolicy.server.vo.CustomPolicyPlantVO; @@ -31,14 +28,12 @@ public class CustomPolicyController { @GetMapping @Log("查询自定义策略") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(customPolicyService.queryAll(whereJson, page), HttpStatus.OK); } @PostMapping @Log("新增自定义策略基础信息") - public ResponseEntity create(@Validated @RequestBody CustomPolicyDTO dto) { customPolicyService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); @@ -53,7 +48,6 @@ public class CustomPolicyController { } @Log("删除自定义策略") - @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { customPolicyService.deleteAll(ids); @@ -63,7 +57,6 @@ public class CustomPolicyController { @PostMapping("/plantAdd") @Log("新增自定义策略") - public ResponseEntity createPlant(@RequestBody CustomPolicyPlantVO customPolicyPlantVO) { customPolicyService.createPlant(customPolicyPlantVO); return new ResponseEntity<>(HttpStatus.CREATED); @@ -71,14 +64,12 @@ public class CustomPolicyController { @GetMapping("/plantList") @Log("自定义策略列表") - public ResponseEntity plantList(@RequestParam Long id) { return new ResponseEntity<>(customPolicyService.plantList(id), HttpStatus.OK); } @GetMapping("/updateOn") @Log("是否启用") - public ResponseEntity updateOn(@RequestParam Long id, @RequestParam Integer is_on) { customPolicyService.updateOn(id, is_on); return new ResponseEntity<>(HttpStatus.OK); @@ -87,7 +78,6 @@ public class CustomPolicyController { @GetMapping("/getStrategy") @Log("自定义策略列表") - public ResponseEntity updateOn() { List list = customPolicyService.findDeviceStrategyOption(); return new ResponseEntity<>(list, HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/CustomPolicyService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/CustomPolicyService.java index 1d4bebb62..abf4ab228 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/CustomPolicyService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/CustomPolicyService.java @@ -2,7 +2,6 @@ package org.nl.acs.custompolicy.server; import org.nl.acs.common.base.CommonService; import org.nl.acs.common.base.PageInfo; -import org.nl.acs.custompolicy.DeviceStrategy; import org.nl.acs.custompolicy.domain.CustomPolicy; import org.nl.acs.custompolicy.server.dto.CustomPolicyDTO; import org.nl.acs.custompolicy.server.vo.CustomPolicyPlantVO; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/impl/CustomPolicyServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/impl/CustomPolicyServiceImpl.java index 1638e092a..f40e27ad7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/impl/CustomPolicyServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/impl/CustomPolicyServiceImpl.java @@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import jodd.util.StringUtil; import lombok.AllArgsConstructor; - import org.nl.acs.auto.initial.ApplicationAutoInitial; import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.impl.CommonServiceImpl; @@ -19,7 +18,6 @@ import org.nl.acs.custompolicy.server.dto.CustomPolicyDTO; import org.nl.acs.custompolicy.server.dto.CustomPolicyPlantDTO; import org.nl.acs.custompolicy.server.mapper.CustomPolicyMapper; import org.nl.acs.custompolicy.server.vo.CustomPolicyPlantVO; -import org.nl.acs.task.TaskInstructionLock; import org.nl.acs.utils.ConvertUtil; import org.nl.acs.utils.PageUtil; import org.nl.common.utils.SecurityUtils; @@ -173,7 +171,6 @@ public class CustomPolicyServiceImpl extends CommonServiceImpl query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(deviceService.queryAll(whereJson, page), HttpStatus.OK); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceDbitemController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceDbitemController.java index 671453c38..c58cd993c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceDbitemController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceDbitemController.java @@ -28,21 +28,18 @@ public class DeviceDbitemController { @GetMapping @Log("查询设备DB项") - public ResponseEntity query(DeviceDbitemQueryParam query, Pageable pageable) { return new ResponseEntity<>(deviceDbitemService.queryAll(query, pageable), HttpStatus.OK); } @PostMapping @Log("新增设备DB项") - public ResponseEntity create(@Validated @RequestBody DeviceDbitemDto resources) { return new ResponseEntity<>(deviceDbitemService.insert(resources), HttpStatus.CREATED); } @PutMapping @Log("修改设备DB项") - public ResponseEntity update(@Validated @RequestBody DeviceDbitemDto resources) { deviceDbitemService.updateById(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -50,7 +47,6 @@ public class DeviceDbitemController { @DeleteMapping @Log("删除设备DB项") - public ResponseEntity delete(@RequestBody Set ids) { deviceDbitemService.removeByIds(ids); return new ResponseEntity<>(HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceErpmappingController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceErpmappingController.java index 0efc7ec8b..cc1d26cad 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceErpmappingController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceErpmappingController.java @@ -21,7 +21,6 @@ import java.util.Map; **/ @RestController @RequiredArgsConstructor - @RequestMapping("/api/acsDeviceErpmapping") public class DeviceErpmappingController { @@ -30,14 +29,11 @@ public class DeviceErpmappingController { @GetMapping @Log("查询设备-ERP映射") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(acsDeviceErpmappingService.queryAll(whereJson, page), HttpStatus.OK); } - @PostMapping @Log("新增设备-ERP映射") - public ResponseEntity create(@Validated @RequestBody AcsDeviceErpmappingDto dto) { acsDeviceErpmappingService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); @@ -45,22 +41,18 @@ public class DeviceErpmappingController { @PutMapping @Log("修改设备-ERP映射") - public ResponseEntity update(@Validated @RequestBody AcsDeviceErpmappingDto dto) { acsDeviceErpmappingService.update(dto); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Log("删除设备-ERP映射") - @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { acsDeviceErpmappingService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } - @Log("导出设备-ERP映射") - @GetMapping(value = "/download") public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException { acsDeviceErpmappingService.download(acsDeviceErpmappingService.queryAll(whereJson), response); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceExtraController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceExtraController.java index f28f1b382..54571672b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceExtraController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceExtraController.java @@ -36,14 +36,12 @@ public class DeviceExtraController { @PostMapping @Log("新增设备扩展") - public ResponseEntity create(@Validated @RequestBody DeviceExtraDto resources) { return new ResponseEntity<>(deviceExtraService.insert(resources), HttpStatus.CREATED); } @PutMapping @Log("修改设备扩展") - public ResponseEntity update(@Validated @RequestBody DeviceExtraDto resources) { deviceExtraService.updateById(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -51,7 +49,6 @@ public class DeviceExtraController { @DeleteMapping @Log("删除设备扩展") - public ResponseEntity delete(@RequestBody Set ids) { deviceExtraService.removeByIds(ids); return new ResponseEntity<>(HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceRunpointController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceRunpointController.java index ebb71be1d..0fae6b0ba 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceRunpointController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceRunpointController.java @@ -20,7 +20,6 @@ import java.util.Set; **/ @RestController @RequiredArgsConstructor - @RequestMapping("/api/deviceRunpoint") public class DeviceRunpointController { @@ -28,21 +27,18 @@ public class DeviceRunpointController { @GetMapping @Log("查询设备点位") - public ResponseEntity query(DeviceRunpointQueryParam query, Pageable pageable) { return new ResponseEntity<>(deviceRunpointService.queryAll(query, pageable), HttpStatus.OK); } @PostMapping @Log("新增设备点位") - public ResponseEntity create(@Validated @RequestBody DeviceRunpointDto resources) { return new ResponseEntity<>(deviceRunpointService.insert(resources), HttpStatus.CREATED); } @PutMapping @Log("修改设备点位") - public ResponseEntity update(@Validated @RequestBody DeviceRunpointDto resources) { deviceRunpointService.updateById(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -50,7 +46,6 @@ public class DeviceRunpointController { @DeleteMapping @Log("删除设备点位") - public ResponseEntity delete(@RequestBody Set ids) { deviceRunpointService.removeByIds(ids); return new ResponseEntity<>(HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceisonlineController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceisonlineController.java index d6278b231..3cf784cf0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceisonlineController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceisonlineController.java @@ -10,8 +10,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; - - import java.util.Set; /** @@ -20,7 +18,6 @@ import java.util.Set; **/ @RestController @RequiredArgsConstructor - @RequestMapping("/api/deviceisonline") public class DeviceisonlineController { @@ -28,21 +25,18 @@ public class DeviceisonlineController { @GetMapping @Log("查询设备在线状态") - public ResponseEntity query(DeviceisonlineQueryParam query, Pageable pageable) { return new ResponseEntity<>(deviceisonlineService.queryAll(query, pageable), HttpStatus.OK); } @PostMapping @Log("新增设备在线状态") - public ResponseEntity create(@Validated @RequestBody DeviceisonlineDto resources) { return new ResponseEntity<>(deviceisonlineService.insert(resources), HttpStatus.CREATED); } @PutMapping @Log("修改设备在线状态") - public ResponseEntity update(@Validated @RequestBody DeviceisonlineDto resources) { deviceisonlineService.updateById(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); @@ -50,7 +44,6 @@ public class DeviceisonlineController { @DeleteMapping @Log("删除设备在线状态") - public ResponseEntity delete(@RequestBody Set ids) { deviceisonlineService.removeByIds(ids); return new ResponseEntity<>(HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/AcsDeviceErpmappingDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/AcsDeviceErpmappingDto.java index 5d06d516c..b5d6c8af4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/AcsDeviceErpmappingDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/AcsDeviceErpmappingDto.java @@ -1,15 +1,8 @@ package org.nl.acs.device.service.dto; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; - import java.io.Serializable; -import java.util.Date; -import java.sql.Timestamp; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemDto.java index bc81a5752..955a3bbc0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemDto.java @@ -1,15 +1,8 @@ package org.nl.acs.device.service.dto; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; - import java.io.Serializable; -import java.util.Date; -import java.sql.Timestamp; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemQueryParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemQueryParam.java index 73f313251..7429e0b6b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemQueryParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDbitemQueryParam.java @@ -3,12 +3,6 @@ package org.nl.acs.device.service.dto; import lombok.Getter; import lombok.Setter; -import java.util.List; -import java.util.Date; - -import org.nl.common.annotation.Query; -import org.springframework.format.annotation.DateTimeFormat; - /** * @author jiaolm * @date 2023-05-09 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDto.java index 79cc86b0b..8fc4f1d9b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceDto.java @@ -1,16 +1,9 @@ package org.nl.acs.device.service.dto; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; - -import java.math.BigDecimal; import java.io.Serializable; -import java.util.Date; -import java.sql.Timestamp; +import java.math.BigDecimal; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceErpmappingQueryParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceErpmappingQueryParam.java index d316c0c87..fa0440f1c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceErpmappingQueryParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceErpmappingQueryParam.java @@ -2,13 +2,6 @@ package org.nl.acs.device.service.dto; import lombok.Getter; import lombok.Setter; - -import java.util.List; -import java.util.Date; - -import org.nl.common.annotation.Query; -import org.springframework.format.annotation.DateTimeFormat; - /** * @author jiaolm * @date 2023-05-09 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceExtraDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceExtraDto.java index 02d94b9c0..e9f11db4a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceExtraDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceExtraDto.java @@ -3,7 +3,6 @@ package org.nl.acs.device.service.dto; import lombok.*; import lombok.experimental.Accessors; - import java.io.Serializable; import java.math.BigDecimal; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceQueryParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceQueryParam.java index 33df8d5c6..42bdf3fb9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceQueryParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceQueryParam.java @@ -3,12 +3,6 @@ package org.nl.acs.device.service.dto; import lombok.Getter; import lombok.Setter; -import java.util.List; -import java.util.Date; - -import org.nl.common.annotation.Query; -import org.springframework.format.annotation.DateTimeFormat; - /** * @author jiaolm * @date 2023-05-09 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointDto.java index 1ee656af4..d3820c301 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointDto.java @@ -1,15 +1,9 @@ package org.nl.acs.device.service.dto; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; import java.io.Serializable; -import java.util.Date; -import java.sql.Timestamp; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointQueryParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointQueryParam.java index b6f5cd65e..5ea2de24d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointQueryParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceRunpointQueryParam.java @@ -3,12 +3,6 @@ package org.nl.acs.device.service.dto; import lombok.Getter; import lombok.Setter; -import java.util.List; -import java.util.Date; - -import org.nl.common.annotation.Query; -import org.springframework.format.annotation.DateTimeFormat; - /** * @author jiaolm * @date 2023-05-09 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineDto.java index 7e4065f6f..9fe6bb7e9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineDto.java @@ -1,15 +1,8 @@ package org.nl.acs.device.service.dto; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.*; import lombok.experimental.Accessors; - import java.io.Serializable; -import java.util.Date; -import java.sql.Timestamp; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineQueryParam.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineQueryParam.java index ed509f377..2dae32d1e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineQueryParam.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/dto/DeviceisonlineQueryParam.java @@ -3,12 +3,6 @@ package org.nl.acs.device.service.dto; import lombok.Getter; import lombok.Setter; -import java.util.List; -import java.util.Date; - -import org.nl.common.annotation.Query; -import org.springframework.format.annotation.DateTimeFormat; - /** * @author jiaolm * @date 2023-05-09 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceErpmappingServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceErpmappingServiceImpl.java index c99e57fc0..6bf940914 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceErpmappingServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceErpmappingServiceImpl.java @@ -1,6 +1,5 @@ package org.nl.acs.device.service.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -9,26 +8,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.AllArgsConstructor; -import org.nl.acs.device.domain.Device; -import org.nl.acs.device.service.mapper.DeviceMapper; import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.QueryHelpMybatisPlus; import org.nl.acs.common.base.impl.CommonServiceImpl; -import org.nl.common.exception.BadRequestException; -import org.nl.acs.utils.ConvertUtil; -import org.nl.common.utils.FileUtil; -import org.nl.acs.utils.PageUtil; +import org.nl.acs.device.domain.Device; import org.nl.acs.device.domain.DeviceErpmapping; import org.nl.acs.device.service.DeviceErpmappingService; import org.nl.acs.device.service.dto.AcsDeviceErpmappingDto; import org.nl.acs.device.service.dto.DeviceErpmappingQueryParam; import org.nl.acs.device.service.mapper.DeviceErpmappingMapper; -import org.nl.common.utils.SecurityUtils; +import org.nl.acs.device.service.mapper.DeviceMapper; +import org.nl.acs.utils.ConvertUtil; +import org.nl.acs.utils.PageUtil; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.FileUtil; import org.nl.config.language.LangProcess; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceExtraServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceExtraServiceImpl.java index a2bb403a2..6335155d5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceExtraServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceExtraServiceImpl.java @@ -3,25 +3,22 @@ package org.nl.acs.device.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.AllArgsConstructor; -import org.nl.acs.device.domain.DeviceAssigned; -import org.nl.acs.device.domain.DeviceExtra; -import org.nl.acs.device.service.DeviceExtraService; -import org.nl.acs.device.service.dto.DeviceAssignedDto; -import org.nl.acs.device.service.dto.DeviceExtraDto; -import org.nl.acs.device.service.dto.DeviceExtraQueryParam; -import org.nl.acs.device.service.mapper.DeviceExtraMapper; import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.QueryHelpMybatisPlus; import org.nl.acs.common.base.impl.CommonServiceImpl; -import org.nl.common.exception.BadRequestException; +import org.nl.acs.device.domain.DeviceExtra; +import org.nl.acs.device.service.DeviceExtraService; +import org.nl.acs.device.service.dto.DeviceExtraDto; +import org.nl.acs.device.service.dto.DeviceExtraQueryParam; +import org.nl.acs.device.service.mapper.DeviceExtraMapper; import org.nl.acs.utils.ConvertUtil; import org.nl.acs.utils.PageUtil; +import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.config.language.LangProcess; import org.springframework.data.domain.Pageable; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 6ad4e3b4c..d32e195ed 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -26,15 +26,12 @@ import org.nl.acs.device.enums.DeviceType; import org.nl.acs.device.service.mapper.DeviceExtraMapper; import org.nl.acs.device.domain.DeviceRunpoint; import org.nl.acs.device.service.mapper.DeviceRunpointMapper; +import org.nl.acs.device_driver.stacker.standard_stacker.StandardStackerDeviceDriver; import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver; import org.nl.acs.device_driver.two_conveyor.slit_two_manipulator.SlitTwoManipulatorDeviceDriver; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.route.domain.RouteLine; import org.nl.acs.route.service.mapper.RouteLineMapper; -//import org.nl.acs.stage.domain.Stage; -//import org.nl.acs.stage.domain.StageActor; -//import org.nl.acs.stage.service.mapper.StageActorMapper; -//import org.nl.acs.stage.service.mapper.StageMapper; import org.nl.acs.storage_cell.domain.StorageCell; import org.nl.acs.storage_cell.service.mapper.StorageCellMapper; import org.nl.acs.utils.ConvertUtil; @@ -83,10 +80,6 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -// 默认不使用缓存 -//import org.springframework.cache.annotation.CacheConfig; -//import org.springframework.cache.annotation.CacheEvict; -//import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; @@ -1018,9 +1011,12 @@ public class DeviceServiceImpl extends CommonServiceImpl i StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver = (StandardCoveyorControlWithScannerDeviceDriver) device.getDeviceDriver(); standardCoveyorControlWithScannerDeviceDriver.setDeviceStatus(form); - } else if (device.getDeviceDriver() instanceof DeviceStageMonitor) { + }/* else if (device.getDeviceDriver() instanceof DeviceStageMonitor) { DeviceStageMonitor deviceStageMonitor = (DeviceStageMonitor) device.getDeviceDriver(); deviceStageMonitor.setDeviceStatus(form); + }*/else if (device.getDeviceDriver() instanceof StandardStackerDeviceDriver) { + StandardStackerDeviceDriver standardStackerDeviceDriver = (StandardStackerDeviceDriver) device.getDeviceDriver(); + standardStackerDeviceDriver.setDeviceStatus(form); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 9121e9760..b965f64c0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -10,18 +10,25 @@ 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.DeviceDriver; +import org.nl.acs.device_driver.conveyor.standard_inspect_site.StandardInspectSiteDeviceDriver; import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; +import org.nl.acs.device_driver.paper_tube_pick_site.PaperTubePickSiteDeviceDriver; import org.nl.acs.device_driver.storage.standard_storage.StandardStorageDeviceDriver; import org.nl.acs.device_driver.driver.AbstractDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.HongXiangStationDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; -import org.nl.acs.log.LokiLog; -import org.nl.acs.log.LokiLogType; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.task.service.TaskService; +import org.nl.acs.task.service.dto.TaskDto; +import org.nl.acs.task.service.impl.TaskServiceImpl; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; import org.nl.system.service.param.ISysParamService; import org.nl.config.SpringContextHolder; @@ -36,11 +43,14 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic ISysParamService ISysParamService = SpringContextHolder.getBean(ISysParamService.class); InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); + TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); + LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); + int agvaddr = 0; int agvaddr_copy = 0; int weight = 0; @@ -48,17 +58,18 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic String device_code = ""; int phase = 0; int region = 0; + private Instruction instruction; + String message = null; - @LokiLog(type = LokiLogType.ACS_TO_LMS) public synchronized void processSocket(int[] arr) throws Exception { device_code = this.getDeviceCode(); byte[] data = null; phase = arr[16] * 256 + arr[17]; // agv任务号 int index = arr[12] * 256 + arr[13]; - /** - * 任务号 - */ + /** + * 任务号 + */ int ikey = arr[26] * 256 + arr[27]; //站点号 agvaddr = arr[18] * 256 + arr[19]; @@ -69,8 +80,19 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic if (carno != 0) { agv_device = deviceAppService.findDeviceByCode(String.valueOf(carno)); } + TaskDto task = null; if (ikey != 0) { - inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); + if (phase != 0x67 && phase != 0x71 && phase != 0x72 && phase != 0x73 && phase != 0x74 && phase != 0x75) { + inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); + this.instruction = inst; + } + if (ObjectUtil.isNotEmpty(inst)) { +// log.info("该指令号未找到对应指令:" + ikey); +// message = "该指令号未找到对应指令:" + ikey; +// logServer.deviceExecuteLog(this.device_code, "", "", "该指令号未找到对应指令:" + ikey); +// return; + task = taskService.findByTaskCode(inst.getTask_code()); + } } @@ -99,6 +121,14 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; //货架 StandardStorageDeviceDriver standardStorageDeviceDriver; + //纸管抓取位 + PaperTubePickSiteDeviceDriver paperTubePickSiteDeviceDriver; + //标准-光电检测 + StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; + //烘箱对接位 + HongXiangStationDeviceDriver hongXiangStationDeviceDriver; + //行架-agv对接位 + ManipulatorAgvStationDeviceDriver manipulatorAgvStationDeviceDriver; if (phase == 0x02) { if (ObjectUtil.isEmpty(inst)) { @@ -107,7 +137,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } inst.setCarno(String.valueOf(carno)); instructionService.update(inst); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + "反馈:" + data); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } //到达取货点 //(Itype=1/2/3,需要WCS反馈Phase) @@ -138,16 +172,124 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic device = deviceAppService.findDeviceByCode(device_code); if (ObjectUtil.isEmpty(device_code)) { log.info(agvaddr + "对应设备号为空!"); - logServer.deviceExecuteLog(this.device_code, "", "", agvaddr + "对应设备号为空"); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content(agvaddr + "对应设备号为空") + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (ObjectUtil.isEmpty(inst)) { log.info("未找到指令号{}对应的指令", ikey); return; } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (ObjectUtil.isEmpty(inst.getCarno())) { + inst.setCarno(String.valueOf(carno)); + instructionService.update(inst); + } + + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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.getMove() == 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; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else { + log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); + message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } + else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { + standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); + + try { + standardInspectSiteDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if ((standardInspectSiteDeviceDriver.getMove() == 1 && standardInspectSiteDeviceDriver.getAction() == 1 && standardInspectSiteDeviceDriver.getError() == 0)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + "报警信号:" + standardInspectSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction() + , standardInspectSiteDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(2); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(2); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } } + // 取货完毕 //(Itype=1/2/3,需要WCS反馈Phase) else if (phase == 0x05) { @@ -155,7 +297,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -176,15 +322,121 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic if (ObjectUtil.isEmpty(device_code)) { log.info(agvaddr + "对应设备号为空!"); - logServer.deviceExecuteLog(this.device_code, "", "", "对应设备号为空" + device_code); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("对应设备号为空" + device_code) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (ObjectUtil.isEmpty(inst)) { log.info("未找到指令号{}对应的指令", ikey); return; } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (ObjectUtil.isEmpty(inst.getCarno())) { + inst.setCarno(String.valueOf(carno)); + instructionService.update(inst); + } + + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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.getMove() == 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; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else { + log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); + message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(3); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(0); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(3); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { + standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); + + try { + standardInspectSiteDeviceDriver.writing(0); + } catch (Exception e) { + e.printStackTrace(); + } + if ((standardInspectSiteDeviceDriver.getMove() == 1 && standardInspectSiteDeviceDriver.getAction() == 1 && standardInspectSiteDeviceDriver.getError() == 0)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + "报警信号:" + standardInspectSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction() + , standardInspectSiteDeviceDriver.getError(), ikey); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } } //到达取货点(Itype=1、3,需要WCS反馈) else if (phase == 0x08) { @@ -192,7 +444,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -218,10 +474,113 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } + if (ObjectUtil.isEmpty(inst.getCarno())) { + inst.setCarno(String.valueOf(carno)); + instructionService.update(inst); + } + String agv_inst_type = inst.getAgv_inst_type(); if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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.getMove() == 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; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else { + log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); + message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(2); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(2); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() == 1) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { + standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); + + try { + standardInspectSiteDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if ((standardInspectSiteDeviceDriver.getMove() == 1 && standardInspectSiteDeviceDriver.getAction() == 1 && standardInspectSiteDeviceDriver.getError() == 0)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + "报警信号:" + standardInspectSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction() + , standardInspectSiteDeviceDriver.getError(), ikey); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } } } // 取货完毕 @@ -231,7 +590,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -260,10 +623,103 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } String agv_inst_type = inst.getAgv_inst_type(); if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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.getMove() == 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; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else { + log.info("等待LMS系统进行确认允许取货,设备号{},指令号{}", device_code, ikey); + message = "等待LMS系统进行确认允许取货,设备号:" + device_code + ",指令号:" + ikey; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + } else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(0); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + try { + manipulatorAgvStationDeviceDriver.writing(3); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(3); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { + standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); + + try { + standardInspectSiteDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if ((standardInspectSiteDeviceDriver.getMove() == 1 && standardInspectSiteDeviceDriver.getAction() == 1 && standardInspectSiteDeviceDriver.getError() == 0)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction() + "报警信号:" + standardInspectSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction() + , standardInspectSiteDeviceDriver.getError(), ikey); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + } } //(Itype=1,上传称重数据) else if (phase == 0x64) { @@ -278,7 +734,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic // inst.setWeight(String.valueOf(weight)); // instructionService.update(inst); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } } // 到达放货点 @@ -288,7 +749,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -315,8 +780,73 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); + + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + + standardOrdinarySiteDeviceDriver.setAgvphase(phase); + standardOrdinarySiteDeviceDriver.setIndex(index); + standardOrdinarySiteDeviceDriver.setInst(inst); + + } else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(4); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(4); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { + standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); + standardInspectSiteDeviceDriver.writing(1); + if ((standardInspectSiteDeviceDriver.getMove() == 0 && standardInspectSiteDeviceDriver.getAction() == 1 && standardInspectSiteDeviceDriver.getError() == 0)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + }else { + message = "设备号:" + device_code + "光电信号:" + standardInspectSiteDeviceDriver.getMove() + ",动作信号:" + standardInspectSiteDeviceDriver.getAction()+ "报警信号:" + standardInspectSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足放货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,报警信号{},不满足放货条件,指令号{}", device_code, standardInspectSiteDeviceDriver.getMove(), standardInspectSiteDeviceDriver.getAction() + ,standardInspectSiteDeviceDriver.getError(), ikey); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } } //放货完成 //(Itype=1/2/3,需要WCS反馈) @@ -325,7 +855,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -352,8 +886,79 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("未找到指令号{}对应的指令", ikey); return; } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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")) { +// // +// if (standardOrdinarySiteDeviceDriver.getOption() == 2) { +// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); +// standardOrdinarySiteDeviceDriver.setOption(0); +// } else { +// log.info("等待LMS系统进行确认离开,设备号{},指令号:{}", device_code, ikey); +// message = "等待LMS系统进行确认离开,设备号:" + device_code + ",指令号:" + ikey; +// } +// } else { +// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); +// } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + this.setPhase(phase); + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(0); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { + standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); + standardInspectSiteDeviceDriver.writing(0); + if ((standardInspectSiteDeviceDriver.getMove() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } + } else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } } //到达放货点 //(Itype=1、3,需要WCS反馈) @@ -362,7 +967,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -391,8 +1000,74 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } String agv_inst_type = inst.getAgv_inst_type(); if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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")) { +// // +// if (standardOrdinarySiteDeviceDriver.getOption() == 2) { +// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); +// standardOrdinarySiteDeviceDriver.setOption(0); +// } else { +// log.info("等待LMS系统进行确认离开,设备号{},指令号:{}", device_code, ikey); +// message = "等待LMS系统进行确认离开,设备号:" + device_code + ",指令号:" + ikey; +// } +// } else { +// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); +// } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + this.setPhase(phase); + + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(4); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(1); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(4); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() == 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } + else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } } } //放货完成 @@ -402,7 +1077,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agv地址参数有误,phase:" + phase) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return; } if (agvaddr != 0) { @@ -431,8 +1110,74 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } String agv_inst_type = inst.getAgv_inst_type(); if (StrUtil.equals(agv_inst_type, CommonFinalParam.ONE) || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + 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")) { +// // +// if (standardOrdinarySiteDeviceDriver.getOption() == 2) { +// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); +// standardOrdinarySiteDeviceDriver.setOption(0); +// } else { +// log.info("等待LMS系统进行确认离开,设备号{},指令号:{}", device_code, ikey); +// message = "等待LMS系统进行确认离开,设备号:" + device_code + ",指令号:" + ikey; +// } +// } else { +// data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); +// } + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + this.setPhase(phase); + + } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + + try { + manipulatorAgvStationDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + if ((manipulatorAgvStationDeviceDriver.getAction() == 1)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", device_code, manipulatorAgvStationDeviceDriver.getAction(), ikey); + } + } + else if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { + paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); + try { + paperTubePickSiteDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + if (paperTubePickSiteDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + paperTubePickSiteDeviceDriver.getMove() + ",动作信号:" + paperTubePickSiteDeviceDriver.getAction() + "报警信号:" + paperTubePickSiteDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, paperTubePickSiteDeviceDriver.getMove(), paperTubePickSiteDeviceDriver.getAction() + , paperTubePickSiteDeviceDriver.getError(), ikey); + } + } + else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + try { + hongXiangStationDeviceDriver.writing(0); + } catch (Exception e) { + e.printStackTrace(); + } + if (hongXiangStationDeviceDriver.getMove() > 0) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + message = "设备号:" + device_code + "光电信号:" + hongXiangStationDeviceDriver.getMove() + ",动作信号:" + hongXiangStationDeviceDriver.getAction() + "报警信号:" + hongXiangStationDeviceDriver.getError() + ",指令号:" + ikey + "不满足取货条件"; + log.info("设备{}当前光电信号{},动作信号{} ,错误信号{},不满足取货条件,指令号{}", device_code, hongXiangStationDeviceDriver.getMove(), hongXiangStationDeviceDriver.getAction() + , hongXiangStationDeviceDriver.getError(), ikey); + } + } + else { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } } } //上传AGV电量 @@ -443,7 +1188,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } agv_power = ikey; data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } //进入区域(phase值) else if (phase == 0x50) { @@ -453,7 +1202,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } region = agvaddr; data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } //离开区域(phase值) @@ -464,7 +1217,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } region = agvaddr; data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } //上报异常信息 @@ -474,10 +1231,18 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic if (agvaddr == 0) { } - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } if (!ObjectUtil.isEmpty(data)) { - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); // if (StrUtil.equals(inst.getAgv_system_type(), "2")) { // TwoNDCSocketConnectionAutoRun.write(data); // } else if (StrUtil.equals(inst.getAgv_system_type(), "3")) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv_car/XgAgvCarDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv_car/XgAgvCarDeviceDriver.java index 436891663..68dfce5ba 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv_car/XgAgvCarDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv_car/XgAgvCarDeviceDriver.java @@ -31,7 +31,7 @@ import java.util.Date; /** - * 普通站点仙工AGV + * 仙工AGV */ @Slf4j @Data @@ -181,24 +181,24 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device getAgvStatus(); JSONObject jo = new JSONObject(); String isError; - if(is_error){ + if (is_error) { isError = "报错"; - }else{ + } else { isError = "正常"; } - if(CommonFinalParam.ONE.equals(upload_scene_status)){ + if (CommonFinalParam.ONE.equals(upload_scene_status)) { upload_scene_status = "正在更新场景"; - }else if(CommonFinalParam.TWO.equals(upload_scene_status)){ + } else if (CommonFinalParam.TWO.equals(upload_scene_status)) { upload_scene_status = "正在执行运单"; - }else if(CommonFinalParam.DELETE.equals(upload_scene_status)){ + } else if (CommonFinalParam.DELETE.equals(upload_scene_status)) { upload_scene_status = "可推送"; } - jo.put("is_error",isError); - jo.put("upload_scene_status",upload_scene_status); - jo.put("procBusiness",procBusiness); - jo.put("current_order",current_order); - jo.put("connection_status",connection_status); - jo.put("dispatchable",dispatchable); + jo.put("is_error", isError); + jo.put("upload_scene_status", upload_scene_status); + jo.put("procBusiness", procBusiness); + jo.put("current_order", current_order); + jo.put("connection_status", connection_status); + jo.put("dispatchable", dispatchable); return jo; } @@ -209,13 +209,12 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device } - /** * 获取机器人信息 */ private void getAgvStatus() { HttpResponse robotInfo = xianGongAgvService.getRobotInfo(this.getDevice().getDevice_name()); - if(robotInfo.getStatus() == 200){ + if (robotInfo.getStatus() == 200) { JSONObject jsonObject = JSONObject.parseObject(robotInfo.body()); String report = jsonObject.getString("report"); //core出错标识 @@ -223,8 +222,8 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device //是否推送场景的状态 0=可推送 1=正在更新场景 2=正在执行运单 upload_scene_status = jsonObject.getString("upload_scene_status"); JSONArray objects = JSONObject.parseArray(report); - for (int i = 0; i < objects.size(); i++) { - JSONObject json = (JSONObject)objects.get(i); + for (Object object : objects) { + JSONObject json = (JSONObject) object; //是否正在执行用户下发的运单 procBusiness = json.getBooleanValue("procBusiness"); //机器人当前运单 @@ -234,7 +233,7 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device //机器人可接单状态 true=可接单 false=不可接单 dispatchable = json.getString("dispatchable"); } - }else{ + } else { log.info("请求{}机器人状态失败", this.getDevice().getDevice_name()); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/standard_autodoor/StandardAutodoorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/standard_autodoor/StandardAutodoorDeviceDriver.java index 4d73afe1d..d86e60da9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/standard_autodoor/StandardAutodoorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/standard_autodoor/StandardAutodoorDeviceDriver.java @@ -85,6 +85,11 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem private Date instruction_require_time = new Date(); private Date instruction_finished_time = new Date(); + int to_command = 0; + int last_to_command = 0; + + + private int instruction_require_time_out; boolean requireSucess = false; @@ -106,6 +111,7 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem mode = this.itemProtocol.getMode(); action = this.itemProtocol.getAction(); error = this.itemProtocol.getError(); + to_command = this.itemProtocol.getToCommand(); if (mode != last_mode) { } if (action != last_action) { @@ -124,6 +130,7 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem last_mode = mode; last_error = error; last_state = state; + last_to_command = to_command; //message = StringFormatUtl.format("设备报警:{}", new Object[]{}); // String manual_create_task = this.getDevice().getExtraValue().get("manual_create_task").toString(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java index db13c6e8b..f9b0b526f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java @@ -747,6 +747,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements jo.put("inventory_qty", inventory_qty); jo.put("out_finish", out_finish); jo.put("material", material); + jo.put("is_click", true); jo.put("isOnline", this.getIsonline()); return jo; @@ -822,7 +823,12 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements @Override public void setDeviceStatus(JSONObject data) { - + String requestSucess = data.getString("requireSucess"); + if (StrUtil.equals(requestSucess, "0")) { + this.requireSucess = false; + } else if (StrUtil.equals(requestSucess, "1")) { + this.requireSucess = true; + } } public static boolean arrayEquals(int[] a, int[] b) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/double_belt_conveyor/DoubleBeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/double_belt_conveyor/DoubleBeltConveyorDeviceDriver.java index d9116a778..bcec9130a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/double_belt_conveyor/DoubleBeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/double_belt_conveyor/DoubleBeltConveyorDeviceDriver.java @@ -27,6 +27,7 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.config.SpringContextHolder; @@ -494,7 +495,7 @@ public class DoubleBeltConveyorDeviceDriver extends AbstractOpcDeviceDriver impl log.error("指令创建失败!", e.getMessage()); return false; } - taskdto.setTask_status("1"); + taskdto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); requireSucess = true; Map map = new LinkedHashMap<>(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index b1b3c322a..9f339c2b7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -116,6 +116,9 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple */ private int flag; + //任务号 + String task_code; + /** * 人工确认信号 默认0 agv到达后请求置1 等人工确认后变为2 反馈agv后继续为0 */ diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java index 04fbae0a4..fab615663 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/OpcDeviceDriver.java @@ -190,7 +190,7 @@ public interface OpcDeviceDriver extends DeviceDriver { * @return */ default String getStringValue(String protocol) { - return (String) this.getOpcValueAccessor().getValue(this.getItem(protocol)); + return String.valueOf(this.getOpcValueAccessor().getValue(this.getItem(protocol))); } /** diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java index 904130d24..cb3ccc486 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java @@ -30,6 +30,7 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.config.SpringContextHolder; @@ -172,8 +173,7 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i heartbeat = this.itemProtocol.getHeartbeat(); - - if (move != 0 && task > 0) { + if (move != 0 && task > 0) { update_instruction_status(); } @@ -421,7 +421,7 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i return false; } //创建指令后修改任务状态 - taskdto.setTask_status("1"); + taskdto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); requireSucess = true; String next_addr = nextdevice.getExtraValue().get("address").toString(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java index 4fcb21da1..eb0c4f787 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_subvolumes_conveyor/BoxSubvolumesConveyorDeviceDriver.java @@ -28,6 +28,7 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.config.SpringContextHolder; @@ -169,47 +170,12 @@ public class BoxSubvolumesConveyorDeviceDriver extends AbstractOpcDeviceDriver i to_task = this.itemProtocol.getTo_task(); heartbeat = this.itemProtocol.getHeartbeat(); material_barcode = this.itemProtocol.getMaterialBarCode(); - - - - if (to_length != last_to_length) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_length:" + last_to_length + "->" + to_length); - } - if (to_weight != last_to_weight) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_weight:" + last_to_weight + "->" + to_weight); - } - if (to_height != last_to_height) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_height:" + last_to_height + "->" + to_height); - } - if (to_command != last_to_command) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + last_to_command + "->" + to_command); - } - if (to_target != last_to_target) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + last_to_target + "->" + to_target); - } - if (to_task != last_to_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); - } - if (mode != last_mode) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记:" + requireSucess); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - - if (carrier_direction != last_carrier_direction) { - logServer.deviceItemValue(this.device_code, "carrier_direction", String.valueOf(carrier_direction)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号carrier_direction:" + last_carrier_direction + "->" + carrier_direction); - } - if (error != last_error) { - - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } + // 更新指令状态 if (move != 0 && task > 0) { update_instruction_status(); } - } catch (Exception var17) { var17.printStackTrace(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage() + ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol)); @@ -531,7 +497,7 @@ public class BoxSubvolumesConveyorDeviceDriver extends AbstractOpcDeviceDriver i return false; } //创建指令后修改任务状态 - taskdto.setTask_status("1"); + taskdto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); requireSucess = true; String next_addr = nextdevice.getExtraValue().get("address").toString(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java index 9159cdb3d..393693a31 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/finished_product_out_with_bind_lable_conveyor/FinishedProductOutBindLableDeviceDriver.java @@ -34,6 +34,7 @@ import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.storage_cell.domain.StorageCell; import org.nl.acs.storage_cell.service.mapper.StorageCellMapper; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.config.SpringContextHolder; @@ -638,7 +639,7 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr return false; } //创建指令后修改任务状态 - taskdto.setTask_status("1"); + taskdto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); requireSucess = true; String next_addr = nextdevice.getExtraValue().get("address").toString(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDefination.java index 83b4f4a0b..5f25a5629 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDefination.java @@ -19,12 +19,12 @@ public class FoldDiscSiteDefination implements OpcDeviceDriverDefination { @Override public String getDriverName() { - return "叠盘机"; + return "叠盘机位"; } @Override public String getDriverDescription() { - return "叠盘机"; + return "叠盘机位"; } @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index b939ac8ef..ccdf499c0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -35,6 +35,7 @@ import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; @@ -409,7 +410,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv Device nextdevice = deviceAppservice.findDeviceByCode(taskdto.getNext_device_code()); //创建指令后修改任务状态 - taskdto.setTask_status("1"); + taskdto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); String next_addr = nextdevice.getExtraValue().get("address").toString(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java index 27ae88f9a..b3f615b27 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java @@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -18,19 +17,21 @@ import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.enums.StorageTypeEnum; +import org.nl.acs.ext.wms.data.one.ApplyLabelingAndBindingRequest; +import org.nl.acs.ext.wms.data.one.ApplyLabelingAndBindingResponse; import org.nl.acs.ext.wms.service.AcsToWmsService; 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.service.InstructionService; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.config.SpringContextHolder; @@ -70,6 +71,8 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class); DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + + DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); //当前指令 Instruction inst = null; @@ -191,11 +194,11 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl } List toInstructions; + Instruction instruction = instructionService.findByCode(String.valueOf(task)); //空箱出库开盖位,申请开盖 if (mode == 7 && move == 1 && task > 0) { //不允许开盖,完成出库任务,自动去扫码位 - if (!applyUnbox()){ - Instruction instruction = instructionService.findByCode(String.valueOf(task)); + if (!applyUnbox(instruction)){ if (ObjectUtil.isNotEmpty(instruction)) { try { instructionService.finish(instruction); @@ -224,7 +227,7 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl last_to_height =to_height; } - private Boolean applyUnbox() { + private Boolean applyUnbox(Instruction instruction) { Date date = new Date(); if (date.getTime() - this.require_apply_strangulation_time.getTime() < (long) this.instruction_require_time_out) { @@ -232,15 +235,20 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl return false; } else { try { + ApplyLabelingAndBindingRequest applyLabelingAndBindingRequest = new ApplyLabelingAndBindingRequest(); JSONObject param = new JSONObject(); param.put("device_code", device_code); param.put("task", task); logServer.deviceExecuteLog(this.device_code, "", "", "木箱申请开盖任务,参数:" + param); - HttpResponse response = acsToWmsService.shipDeviceUpdate(param); - if (response == null || response.getStatus() == 200) { - logServer.deviceExecuteLog(this.device_code, "", "", "木箱申请开盖任务,接口返回:" + response.body()); + ApplyLabelingAndBindingResponse response = acsToWmsService.applyLabelingAndBindingRequest(applyLabelingAndBindingRequest); + if (response == null || response.getstatus() == 200) { + Map datas = response.getData(); + packagePLCData(datas,instruction); + this.setRequireSucess(true); return true; } + + } catch (Exception e) { e.printStackTrace(); } @@ -248,6 +256,64 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl return false; } + private void packagePLCData(Map datas, Instruction instruction) { + String length = datas.get("length").toString(); + String weight = datas.get("weight").toString(); + String height = datas.get("height").toString(); + String printQty = datas.get("printQty").toString(); + String printDevice = datas.get("printDevice").toString(); + String bundleTimes = datas.get("bundleTimes").toString(); + String next_device_code = instruction.getNext_device_code(); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + + List list = new ArrayList(); + Map map = new HashMap(); + map.put("code", "to_task"); + map.put("value", task); + list.add(map); + Map map2 = new HashMap(); + map2.put("code", "to_container_type"); + map2.put("value", instruction.getVehicle_code()); + list.add(map2); + Map map3 = new HashMap(); + map3.put("code", "to_target"); + map3.put("value", next_addr); + list.add(map3); + Map map4 = new HashMap(); + map4.put("code", "to_leight"); + map4.put("value", length); + list.add(map4); + Map map5 = new HashMap(); + map5.put("code", "to_wedth"); + map5.put("value", weight); + list.add(map5); + Map map6 = new HashMap(); + map6.put("code", "to_height"); + map6.put("value", height); + list.add(map6); + Map map7 = new HashMap(); + map7.put("code", "to_print_qty"); + map7.put("value", printQty); + list.add(map7); + Map map9 = new HashMap(); + map9.put("code", "to_print_device"); + map9.put("value", printDevice); + list.add(map9); + Map map11 = new HashMap(); + map11.put("code", "to_binding_times"); + map11.put("value", bundleTimes); + list.add(map11); + try { + this.writing(list); + } catch (Exception e) { + message = "写入信号失败"; + } + this.setRequireSucess(true); + + } + + public boolean exe_error() { if (this.error == 0) { return true; @@ -519,7 +585,7 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl return false; } //创建指令后修改任务状态 - taskdto.setTask_status("1"); + taskdto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); requireSucess = true; String next_addr = nextdevice.getExtraValue().get("address").toString(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java index 76cee61c0..602435f47 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_manipulator.box_package_manipulator; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -30,9 +31,11 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; import java.util.*; @@ -319,101 +322,103 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i //找终点为入库输送线工位任务类型为行架的任务 for (int i = 0; i < getDeviceCodeList.size(); i++) { String startDeviceCode = getDeviceCodeList.get(i); - TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); - if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { - String interactionJson = taskDto.getInteraction_json(); - InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); - String start_device_code = taskDto.getStart_device_code(); - String next_device_code = taskDto.getNext_device_code(); - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - String start_addr = startDevice.getExtraValue().get("address").toString(); - String next_addr = nextDevice.getExtraValue().get("address").toString(); - String taskid = taskDto.getTask_id(); - String taskcode = taskDto.getTask_code(); - String start_point_code = taskDto.getStart_point_code(); - String route_plan_code = taskDto.getRoute_plan_code(); - String next_point_code = taskDto.getNext_point_code(); - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(device_code); + //先查指令 + List taskDtoInstruction = taskserver.queryTaskByDeviceCodeAndStatus2(startDeviceCode); + if (CollUtil.isNotEmpty(taskDtoInstruction)){ + TaskDto taskDtoIns = taskDtoInstruction.get(0); + if (TaskTypeEnum.Truss_Task.getIndex().equals(taskDtoIns.getTask_type())) { + Instruction instruction = instructionService.findByTaskcodeAndStatus(taskDtoIns.getTask_code()); + String interactionJson = taskDtoIns.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDtoIns.getStart_device_code(); + String next_device_code = taskDtoIns.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instruction.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8); + } catch (Exception e) { - try { - instructionService.create(instdto); - } catch (Exception e) { - notCreateInstMessage = e.getMessage(); - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); - return false; + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instruction.getInstruction_code() + ",指令起点:" + instruction.getStart_device_code() + + ",指令终点:" + instruction.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; } - //创建指令后修改任务状态 - taskDto.setTask_status("1"); - taskserver.update(taskDto); - requireSucess = true; + }else { + TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { + String interactionJson = taskDto.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDto.getStart_device_code(); + String next_device_code = taskDto.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } - Map map1 = new HashMap<>(); - List list = new ArrayList(); - map1.put("code", "to_command"); - map1.put("value", 1); - list.add(map1); - Map map2 = new HashMap<>(); - map2.put("code", "to_target"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap<>(); - map3.put("code", "to_onset"); - map3.put("value", start_addr); - list.add(map3); - Map map4 = new HashMap<>(); - map4.put("code", "to_task"); - map4.put("value", instdto.getInstruction_code()); - list.add(map4); - if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getSeq())) { - Map map5 = new HashMap<>(); - map5.put("code", "to_seq"); - map5.put("value", interactionJsonDTO.getSeq()); - list.add(map5); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLastOne())) { - Map map6 = new HashMap<>(); - map6.put("code", "to_last_one"); - map6.put("value", interactionJsonDTO.getLastOne()); - list.add(map6); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getDirection())) { - Map map7 = new HashMap<>(); - map7.put("code", "to_direction"); - map7.put("value", interactionJsonDTO.getDirection()); - list.add(map7); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getMaxNo())) { - Map map8 = new HashMap<>(); - map8.put("code", "to_max_no"); - map8.put("value", interactionJsonDTO.getMaxNo()); - list.add(map8); - } - } + String taskid = taskDto.getTask_id(); + String taskcode = taskDto.getTask_code(); + String start_point_code = taskDto.getStart_point_code(); + String route_plan_code = taskDto.getRoute_plan_code(); + String next_point_code = taskDto.getNext_point_code(); + Instruction instdto = new Instruction(); + packageData(instdto, route_plan_code, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code); - try { - this.writing(list); - } catch (Exception e) { - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + try { + instructionService.create(instdto); + } catch (Exception e) { + notCreateInstMessage = e.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); + return false; + } + //创建指令后修改任务状态 + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); + taskserver.update(taskDto); + requireSucess = true; + + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instdto.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; + } else { + notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } - this.setRequireSucess(true); - return true; - }else{ - notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } } return true; @@ -421,6 +426,59 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } + private void pushPLC(Map map1, Map map2, String next_addr, Map map3, String start_addr, Map map4, String task, InteractionJsonDTO interactionJsonDTO, Map map5, Map map6, Map map7, Map map8) { + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + map4.put("code", "to_task"); + map4.put("value", task); + list.add(map4); + if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getSeq())) { + map5.put("code", "to_seq"); + map5.put("value", interactionJsonDTO.getSeq()); + list.add(map5); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLastOne())) { + map6.put("code", "to_last_one"); + map6.put("value", interactionJsonDTO.getLastOne()); + list.add(map6); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getDirection())) { + map7.put("code", "to_direction"); + map7.put("value", interactionJsonDTO.getDirection()); + list.add(map7); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getMaxNo())) { + map8.put("code", "to_max_no"); + map8.put("value", interactionJsonDTO.getMaxNo()); + list.add(map8); + } + } + this.writing(list); + } + + private void packageData(Instruction instdto, String route_plan_code, String taskid, String taskcode, String start_device_code, String next_device_code, String start_point_code, String next_point_code) { + instdto.setInstruction_id(IdUtil.simpleUUID()); + instdto.setRoute_plan_code(route_plan_code); + instdto.setTask_id(taskid); + instdto.setTask_code(taskcode); + instdto.setCreate_by("auto"); + instdto.setStart_device_code(start_device_code); + instdto.setNext_device_code(next_device_code); + instdto.setStart_point_code(start_point_code); + instdto.setNext_point_code(next_point_code); + instdto.setInstruction_status("0"); + instdto.setExecute_device_code(device_code); + } + public synchronized boolean finish_instruction(Instruction inst) throws Exception { instructionService.finish(inst); return true; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java index 52c86bc27..ed13d1187 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_manipulator.box_storage_manipulator; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -31,10 +32,14 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; import java.util.*; @@ -61,37 +66,21 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i DeviceExtraService deviceExtraService = SpringContextHolder.getBean(DeviceExtraServiceImpl.class); DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - + LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); int mode = 0; - int last_mode = 0; int move = 0; - int last_move = 0; int action = 0; - int last_action = 0; int error = 0; - int last_error = 0; int task = 0; - int last_task = 0; - - int heartbeat = 0; - int last_heartbeat = 0; int to_command = 0; - int last_to_command = 0; - int to_target = 0; - int last_to_target = 0; - int to_onset = 0; - int last_to_onset = 0; int to_task = 0; - int last_to_task = 0; int to_layer = 0; - int last_to_layer = 0; String to_barcode = null; - String last_to_barcode = null; Boolean isonline = true; int hasGoods = 0; @@ -161,7 +150,11 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } } catch (Exception e) { - logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + Arrays.toString(e.getStackTrace())); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("读取信号值时出现异常" + this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.device_code + "." + Arrays.toString(e.getStackTrace())) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } @@ -209,17 +202,6 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } } - last_mode = mode; - last_move = move; - last_action = action; - last_error = error; - last_task = task; - last_heartbeat = heartbeat; - last_to_task = to_task; - last_to_command = to_command; - last_to_target = to_target; - last_to_layer = to_layer; - last_to_barcode = to_barcode; } @@ -299,110 +281,104 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i //找终点为入库输送线工位任务类型为行架的任务 for (int i = 0; i < getDeviceCodeList.size(); i++) { String startDeviceCode = getDeviceCodeList.get(i); - TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); - if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { - String interactionJson = taskDto.getInteraction_json(); - InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); - String start_device_code = taskDto.getStart_device_code(); - String next_device_code = taskDto.getNext_device_code(); - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - String start_addr = startDevice.getExtraValue().get("address").toString(); - String next_addr = nextDevice.getExtraValue().get("address").toString(); - String taskid = taskDto.getTask_id(); - String taskcode = taskDto.getTask_code(); - String start_point_code = taskDto.getStart_point_code(); - String route_plan_code = taskDto.getRoute_plan_code(); - String next_point_code = taskDto.getNext_point_code(); - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(device_code); - - try { - instructionService.create(instdto); - } catch (Exception e) { - notCreateInstMessage = e.getMessage(); - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); - return false; + //先查指令 + List taskDtoInstruction = taskserver.queryTaskByDeviceCodeAndStatus2(startDeviceCode); + if (CollUtil.isNotEmpty(taskDtoInstruction)) { + TaskDto taskDtoIns = taskDtoInstruction.get(0); + if (TaskTypeEnum.Truss_Task.getIndex().equals(taskDtoIns.getTask_type())) { + Instruction instruction = instructionService.findByTaskcodeAndStatus(taskDtoIns.getTask_code()); + String interactionJson = taskDtoIns.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDtoIns.getStart_device_code(); + String next_device_code = taskDtoIns.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instruction.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8, map9); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instruction.getInstruction_code() + ",指令起点:" + instruction.getStart_device_code() + + ",指令终点:" + instruction.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; } - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO); - //创建指令后修改任务状态 - taskDto.setTask_status("1"); - taskserver.update(taskDto); - requireSucess = true; + } else { + TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { + String interactionJson = taskDto.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDto.getStart_device_code(); + String next_device_code = taskDto.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } - Map map1 = new HashMap<>(); - List list = new ArrayList(); - map1.put("code", "to_command"); - map1.put("value", 1); - list.add(map1); - Map map2 = new HashMap<>(); - map2.put("code", "to_target"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap<>(); - map3.put("code", "to_onset"); - map3.put("value", start_addr); - list.add(map3); - Map map4 = new HashMap<>(); - map4.put("code", "to_task"); - map4.put("value", instdto.getInstruction_code()); - list.add(map4); - if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { - Map map5 = new HashMap<>(); - map5.put("code", "to_weight"); - map5.put("value", interactionJsonDTO.getWeight()); - list.add(map5); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { - Map map6 = new HashMap<>(); - map6.put("code", "to_length"); - map6.put("value", interactionJsonDTO.getLength()); - list.add(map6); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getHeight())) { - Map map7 = new HashMap<>(); - map7.put("code", "to_height"); - map7.put("value", interactionJsonDTO.getHeight()); - list.add(map7); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getBarcode())) { - Map map8 = new HashMap<>(); - map8.put("code", "to_barcode"); - map8.put("value", interactionJsonDTO.getBarcode()); - list.add(map8); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLayer())) { - Map map9 = new HashMap<>(); - map9.put("code", "to_layer"); - map9.put("value", interactionJsonDTO.getLayer()); - list.add(map9); - } - } + String taskid = taskDto.getTask_id(); + String taskcode = taskDto.getTask_code(); + String start_point_code = taskDto.getStart_point_code(); + String route_plan_code = taskDto.getRoute_plan_code(); + String next_point_code = taskDto.getNext_point_code(); + Instruction instdto = new Instruction(); + packageData(instdto, route_plan_code, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code); - try { - this.writing(list); - } catch (Exception e) { - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + try { + instructionService.create(instdto); + } catch (Exception e) { + notCreateInstMessage = e.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); + return false; + } + //创建指令后修改任务状态 + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); + taskserver.update(taskDto); + requireSucess = true; + + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instdto.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8, map9); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; + } else { + notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } - this.setRequireSucess(true); - return true; - }else{ - notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } } return true; @@ -410,6 +386,64 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } + private void pushPLC(Map map1, Map map2, String next_addr, Map map3, String start_addr, Map map4, String task, InteractionJsonDTO interactionJsonDTO, Map map5, Map map6, Map map7, Map map8, Map map9) { + + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + map4.put("code", "to_task"); + map4.put("value", task); + list.add(map4); + if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { + map5.put("code", "to_weight"); + map5.put("value", interactionJsonDTO.getWeight()); + list.add(map5); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { + map6.put("code", "to_length"); + map6.put("value", interactionJsonDTO.getLength()); + list.add(map6); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getHeight())) { + map7.put("code", "to_height"); + map7.put("value", interactionJsonDTO.getHeight()); + list.add(map7); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getBarcode())) { + map8.put("code", "to_barcode"); + map8.put("value", interactionJsonDTO.getBarcode()); + list.add(map8); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLayer())) { + map9.put("code", "to_layer"); + map9.put("value", interactionJsonDTO.getLayer()); + list.add(map9); + } + } + this.writing(list); + } + + private void packageData(Instruction instdto, String route_plan_code, String taskid, String taskcode, String start_device_code, String next_device_code, String start_point_code, String next_point_code) { + instdto.setInstruction_id(IdUtil.simpleUUID()); + instdto.setRoute_plan_code(route_plan_code); + instdto.setTask_id(taskid); + instdto.setTask_code(taskcode); + instdto.setCreate_by("auto"); + instdto.setStart_device_code(start_device_code); + instdto.setNext_device_code(next_device_code); + instdto.setStart_point_code(start_point_code); + instdto.setNext_point_code(next_point_code); + instdto.setInstruction_status("0"); + instdto.setExecute_device_code(device_code); + } public void writing(List list) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java index 7e0cb7383..e7fc8f369 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_manipulator.return_good_manipulator; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -32,9 +33,11 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; import java.util.*; @@ -296,116 +299,169 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i //找终点为入库输送线工位任务类型为行架的任务 for (int i = 0; i < getDeviceCodeList.size(); i++) { String startDeviceCode = getDeviceCodeList.get(i); - TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); - if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { - String interactionJson = taskDto.getInteraction_json(); - InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); - String start_device_code = taskDto.getStart_device_code(); - String next_device_code = taskDto.getNext_device_code(); - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - String start_addr = startDevice.getExtraValue().get("address").toString(); - String next_addr = nextDevice.getExtraValue().get("address").toString(); - String taskid = taskDto.getTask_id(); - String taskcode = taskDto.getTask_code(); - String start_point_code = taskDto.getStart_point_code(); - String route_plan_code = taskDto.getRoute_plan_code(); - String next_point_code = taskDto.getNext_point_code(); - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(device_code); - - try { - instructionService.create(instdto); - } catch (Exception e) { - notCreateInstMessage = e.getMessage(); - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); - return false; + //先查指令 + List taskDtoInstruction = taskserver.queryTaskByDeviceCodeAndStatus2(startDeviceCode); + if (CollUtil.isNotEmpty(taskDtoInstruction)) { + TaskDto taskDtoIns = taskDtoInstruction.get(0); + if (TaskTypeEnum.Truss_Task.getIndex().equals(taskDtoIns.getTask_type())) { + Instruction instruction = instructionService.findByTaskcodeAndStatus(taskDtoIns.getTask_code()); + String interactionJson = taskDtoIns.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDtoIns.getStart_device_code(); + String next_device_code = taskDtoIns.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instruction.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8, map9); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instruction.getInstruction_code() + ",指令起点:" + instruction.getStart_device_code() + + ",指令终点:" + instruction.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; } - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO); - //创建指令后修改任务状态 - taskDto.setTask_status("1"); - taskserver.update(taskDto); - requireSucess = true; + } else { + TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { + String interactionJson = taskDto.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDto.getStart_device_code(); + String next_device_code = taskDto.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } - Map map1 = new HashMap<>(); - List list = new ArrayList(); - map1.put("code", "to_command"); - map1.put("value", 1); - list.add(map1); - Map map2 = new HashMap<>(); - map2.put("code", "to_target"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap<>(); - map3.put("code", "to_onset"); - map3.put("value", start_addr); - list.add(map3); - Map map4 = new HashMap<>(); - map4.put("code", "to_task"); - map4.put("value", instdto.getInstruction_code()); - list.add(map4); - if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { - Map map5 = new HashMap<>(); - map5.put("code", "to_weight"); - map5.put("value", interactionJsonDTO.getWeight()); - list.add(map5); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { - Map map6 = new HashMap<>(); - map6.put("code", "to_length"); - map6.put("value", interactionJsonDTO.getLength()); - list.add(map6); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getHeight())) { - Map map7 = new HashMap<>(); - map7.put("code", "to_height"); - map7.put("value", interactionJsonDTO.getHeight()); - list.add(map7); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getBarcode())) { - Map map8 = new HashMap<>(); - map8.put("code", "to_barcode"); - map8.put("value", interactionJsonDTO.getBarcode()); - list.add(map8); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getContainerType())) { - Map map9 = new HashMap<>(); - map9.put("code", "to_container_type"); - map9.put("value", interactionJsonDTO.getContainerType()); - list.add(map9); - } - } + String taskid = taskDto.getTask_id(); + String taskcode = taskDto.getTask_code(); + String start_point_code = taskDto.getStart_point_code(); + String route_plan_code = taskDto.getRoute_plan_code(); + String next_point_code = taskDto.getNext_point_code(); + Instruction instdto = new Instruction(); + packageData(instdto, route_plan_code, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code); - try { - this.writing(list); - } catch (Exception e) { - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + try { + instructionService.create(instdto); + } catch (Exception e) { + notCreateInstMessage = e.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); + return false; + } + //创建指令后修改任务状态 + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); + taskserver.update(taskDto); + requireSucess = true; + + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instdto.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8, map9); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; + } else { + notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } - this.setRequireSucess(true); - return true; - }else{ - notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } } return true; } } + private void pushPLC(Map map1, Map map2, String next_addr, Map map3, String start_addr, Map map4, String task, InteractionJsonDTO interactionJsonDTO, Map map5, Map map6, Map map7, Map map8, Map map9) { + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + map4.put("code", "to_task"); + map4.put("value", task); + list.add(map4); + if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { + map5.put("code", "to_weight"); + map5.put("value", interactionJsonDTO.getWeight()); + list.add(map5); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { + map6.put("code", "to_length"); + map6.put("value", interactionJsonDTO.getLength()); + list.add(map6); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getHeight())) { + map7.put("code", "to_height"); + map7.put("value", interactionJsonDTO.getHeight()); + list.add(map7); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getBarcode())) { + map8.put("code", "to_barcode"); + map8.put("value", interactionJsonDTO.getBarcode()); + list.add(map8); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getContainerType())) { + map9.put("code", "to_container_type"); + map9.put("value", interactionJsonDTO.getContainerType()); + list.add(map9); + } + } + + this.writing(list); + } + + private void packageData(Instruction instdto, String route_plan_code, String taskid, String taskcode, String start_device_code, String next_device_code, String start_point_code, String next_point_code) { + instdto.setInstruction_id(IdUtil.simpleUUID()); + instdto.setRoute_plan_code(route_plan_code); + instdto.setTask_id(taskid); + instdto.setTask_code(taskcode); + instdto.setCreate_by("auto"); + instdto.setStart_device_code(start_device_code); + instdto.setNext_device_code(next_device_code); + instdto.setStart_point_code(start_point_code); + instdto.setNext_point_code(next_point_code); + instdto.setInstruction_status("0"); + instdto.setExecute_device_code(device_code); + } + /** * 下发 * @param list diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java index ea180aaea..328042826 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_manipulator.trapped_manipulator; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -30,9 +31,11 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; import java.util.*; @@ -295,116 +298,172 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice //找终点为入库输送线工位任务类型为行架的任务 for (int i = 0; i < getDeviceCodeList.size(); i++) { String startDeviceCode = getDeviceCodeList.get(i); - TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); - if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { - String interactionJson = taskDto.getInteraction_json(); - InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); - String start_device_code = taskDto.getStart_device_code(); - String next_device_code = taskDto.getNext_device_code(); - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - String start_addr = startDevice.getExtraValue().get("address").toString(); - String next_addr = nextDevice.getExtraValue().get("address").toString(); - String taskid = taskDto.getTask_id(); - String taskcode = taskDto.getTask_code(); - String start_point_code = taskDto.getStart_point_code(); - String route_plan_code = taskDto.getRoute_plan_code(); - String next_point_code = taskDto.getNext_point_code(); - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(device_code); + //先查指令 + List taskDtoInstruction = taskserver.queryTaskByDeviceCodeAndStatus2(startDeviceCode); + if (CollUtil.isNotEmpty(taskDtoInstruction)) { + TaskDto taskDtoIns = taskDtoInstruction.get(0); + if (TaskTypeEnum.Truss_Task.getIndex().equals(taskDtoIns.getTask_type())) { + Instruction instruction = instructionService.findByTaskcodeAndStatus(taskDtoIns.getTask_code()); + String interactionJson = taskDtoIns.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDtoIns.getStart_device_code(); + String next_device_code = taskDtoIns.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instruction.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8, map9); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instruction.getInstruction_code() + ",指令起点:" + instruction.getStart_device_code() + + ",指令终点:" + instruction.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; + } + } else { + TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { + String interactionJson = taskDto.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDto.getStart_device_code(); + String next_device_code = taskDto.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } - try { - instructionService.create(instdto); - } catch (Exception e) { - notCreateInstMessage = e.getMessage(); - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); - return false; - } - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO); - //创建指令后修改任务状态 - taskDto.setTask_status("1"); - taskserver.update(taskDto); - requireSucess = true; + String taskid = taskDto.getTask_id(); + String taskcode = taskDto.getTask_code(); + String start_point_code = taskDto.getStart_point_code(); + String route_plan_code = taskDto.getRoute_plan_code(); + String next_point_code = taskDto.getNext_point_code(); + Instruction instdto = new Instruction(); + packageData(instdto, route_plan_code, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code); - Map map1 = new HashMap<>(); - List list = new ArrayList(); - map1.put("code", "to_command"); - map1.put("value", 1); - list.add(map1); - Map map2 = new HashMap<>(); - map2.put("code", "to_target"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap<>(); - map3.put("code", "to_onset"); - map3.put("value", start_addr); - list.add(map3); - Map map4 = new HashMap<>(); - map4.put("code", "to_task"); - map4.put("value", instdto.getInstruction_code()); - list.add(map4); - if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { - Map map5 = new HashMap<>(); - map5.put("code", "to_weight"); - map5.put("value", interactionJsonDTO.getWeight()); - list.add(map5); + try { + instructionService.create(instdto); + } catch (Exception e) { + notCreateInstMessage = e.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); + return false; } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { - Map map6 = new HashMap<>(); - map6.put("code", "to_length"); - map6.put("value", interactionJsonDTO.getLength()); - list.add(map6); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getHeight())) { - Map map7 = new HashMap<>(); - map7.put("code", "to_height"); - map7.put("value", interactionJsonDTO.getHeight()); - list.add(map7); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTemplate())) { - Map map8 = new HashMap<>(); - map8.put("code", "to_template"); - map8.put("value", interactionJsonDTO.getTemplate()); - list.add(map8); - } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTemplate())) { - Map map9 = new HashMap<>(); - map9.put("code", "to_last_one"); - map9.put("value", interactionJsonDTO.getIsLastOne()); - list.add(map9); + //创建指令后修改任务状态 + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); + taskserver.update(taskDto); + requireSucess = true; + + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instdto.getInstruction_code(), interactionJsonDTO, map5, map6, map7, map8, map9); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); } + this.setRequireSucess(true); + return true; + } else { + notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } - try { - this.writing(list); - } catch (Exception e) { - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); - } - this.setRequireSucess(true); - return true; - }else{ - notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } } return true; } - } + + + private void pushPLC(Map map1, Map map2, String next_addr, Map map3, String start_addr, Map map4, String task, InteractionJsonDTO interactionJsonDTO, Map map5, Map map6, Map map7, Map map8, Map map9) { + + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + map4.put("code", "to_task"); + map4.put("value", task); + list.add(map4); + if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { + map5.put("code", "to_weight"); + map5.put("value", interactionJsonDTO.getWeight()); + list.add(map5); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { + map6.put("code", "to_length"); + map6.put("value", interactionJsonDTO.getLength()); + list.add(map6); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getHeight())) { + map7.put("code", "to_height"); + map7.put("value", interactionJsonDTO.getHeight()); + list.add(map7); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTemplate())) { + map8.put("code", "to_template"); + map8.put("value", interactionJsonDTO.getTemplate()); + list.add(map8); + } + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTemplate())) { + map9.put("code", "to_last_one"); + map9.put("value", interactionJsonDTO.getIsLastOne()); + list.add(map9); + } + } + + this.writing(list); + } + + private void packageData(Instruction instdto, String route_plan_code, String taskid, String taskcode, String start_device_code, String next_device_code, String start_point_code, String next_point_code) { + instdto.setInstruction_id(IdUtil.simpleUUID()); + instdto.setRoute_plan_code(route_plan_code); + instdto.setTask_id(taskid); + instdto.setTask_code(taskcode); + instdto.setCreate_by("auto"); + instdto.setStart_device_code(start_device_code); + instdto.setNext_device_code(next_device_code); + instdto.setStart_point_code(start_point_code); + instdto.setNext_point_code(next_point_code); + instdto.setInstruction_status("0"); + instdto.setExecute_device_code(device_code); + } + /** * 完成指令 * @param inst diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorDefination.java index 1c2ae19fb..d951f54be 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorDefination.java @@ -14,17 +14,17 @@ import java.util.List; public class VolumeTwoManipulatorDefination implements OpcDeviceDriverDefination { @Override public String getDriverCode() { - return "trapped_manipulator"; + return "volume_two_manipulator"; } @Override public String getDriverName() { - return "堆叠行架"; + return "二楼到一楼子卷搬运行架行架"; } @Override public String getDriverDescription() { - return "堆叠行架"; + return "二楼到一楼子卷搬运行架行架"; } @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java index 9f1ba4199..1404b130b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_manipulator.volume_two_manipulator; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -30,9 +31,11 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; import java.util.*; @@ -265,10 +268,10 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi } //放货完成 - if ( action == 4 && move == 0) { + if (action == 4 && move == 0) { if (inst != null) { try { - logServer.deviceExecuteLog(this.device_code,"","","放货完成"); + logServer.deviceExecuteLog(this.device_code, "", "", "放货完成"); finish_instruction(inst); Map map1 = new HashMap<>(); List list = new ArrayList(); @@ -282,7 +285,7 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi e.printStackTrace(); } feedMessage = ""; - }else { + } else { feedMessage = "行架机械手:"; if (mode != 3) { feedMessage = feedMessage + "工作模式(mode)不为运行中状态,"; @@ -319,104 +322,96 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi //找终点为入库输送线工位任务类型为行架的任务 for (int i = 0; i < getDeviceCodeList.size(); i++) { String startDeviceCode = getDeviceCodeList.get(i); - TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); - if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { - String start_device_code = taskDto.getStart_device_code(); - String next_device_code = taskDto.getNext_device_code(); - String start_device_code2 = taskDto.getStart_device_code2(); - String next_device_code2 = taskDto.getNext_device_code2(); - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - String start_addr = startDevice.getExtraValue().get("address").toString(); - String next_addr = nextDevice.getExtraValue().get("address").toString(); - - String taskid = taskDto.getTask_id(); - String taskcode = taskDto.getTask_code(); - String start_point_code = taskDto.getStart_point_code(); - String next_point_code = taskDto.getNext_point_code(); - String start_point_code2 = taskDto.getStart_point_code2(); - String next_point_code2 = taskDto.getNext_point_code2(); - String route_plan_code = taskDto.getRoute_plan_code(); - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setStart_device_code2(start_device_code2); - instdto.setNext_device_code2(next_device_code2); - instdto.setStart_point_code2(start_point_code2); - instdto.setNext_point_code2(next_point_code2); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(device_code); - - try { - instructionService.create(instdto); - } catch (Exception e) { - notCreateInstMessage = e.getMessage(); - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); - return false; - } - logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" - + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() ); - //创建指令后修改任务状态 - taskDto.setTask_status("1"); - taskserver.update(taskDto); - requireSucess = true; - - Map map1 = new HashMap<>(); - List list = new ArrayList(); - map1.put("code", "to_command"); - map1.put("value", 1); - list.add(map1); - Map map2 = new HashMap<>(); - map2.put("code", "to_target"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap<>(); - map3.put("code", "to_onset"); - map3.put("value", start_addr); - list.add(map3); - Map map4 = new HashMap<>(); - map4.put("code", "to_task"); - map4.put("value", instdto.getInstruction_code()); - list.add(map4); - String toType = VolumeTwoTypeEnum.TOW.getType(); - if (StrUtil.isNotEmpty(start_device_code2)) { - toType = VolumeTwoTypeEnum.FOUR.getType(); - Device startDevice2 = deviceAppService.findDeviceByCode(start_device_code2); - Device nextDevice2 = deviceAppService.findDeviceByCode(next_device_code2); - String start_addr2 = startDevice2.getExtraValue().get("address").toString(); - String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); + //先查指令 + List taskDtoInstruction = taskserver.queryTaskByDeviceCodeAndStatus2(startDeviceCode); + if (CollUtil.isNotEmpty(taskDtoInstruction)) { + TaskDto taskDtoIns = taskDtoInstruction.get(0); + if (TaskTypeEnum.Truss_Task.getIndex().equals(taskDtoIns.getTask_type())) { + Instruction instruction = instructionService.findByTaskcodeAndStatus(taskDtoIns.getTask_code()); + String interactionJson = taskDtoIns.getInteraction_json(); + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + String start_device_code = taskDtoIns.getStart_device_code(); + String next_device_code = taskDtoIns.getNext_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr)) { + throw new BadRequestException("设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr)) { + throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + } + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); Map map5 = new HashMap<>(); - map5.put("code", "to_target2"); - map5.put("value", next_addr2); - list.add(map5); Map map6 = new HashMap<>(); - map6.put("code", "to_onset2"); - map6.put("value", start_addr2); - list.add(map6); + Map map7 = new HashMap<>(); + + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instruction.getInstruction_code(), map5, map6,map7,taskDtoIns); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instruction.getInstruction_code() + ",指令起点:" + instruction.getStart_device_code() + + ",指令终点:" + instruction.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString() + ",指令执行失败:" + e.getMessage()); + } + this.setRequireSucess(true); + return true; } - Map map7 = new HashMap<>(); - map7.put("code", "to_type"); - map7.put("value", toType); - list.add(map7); - try { - this.writing(list); - } catch (Exception e) { + }else { + TaskDto taskDto = taskserver.findByStartCodeAndReady(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDto) && TaskTypeEnum.Truss_Task.getIndex().equals(taskDto.getTask_type())) { + String start_device_code = taskDto.getStart_device_code(); + String next_device_code = taskDto.getNext_device_code(); + String start_device_code2 = taskDto.getStart_device_code2(); + String next_device_code2 = taskDto.getNext_device_code2(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + String taskid = taskDto.getTask_id(); + String taskcode = taskDto.getTask_code(); + String start_point_code = taskDto.getStart_point_code(); + String next_point_code = taskDto.getNext_point_code(); + String route_plan_code = taskDto.getRoute_plan_code(); + Instruction instdto = new Instruction(); + packageData(instdto, route_plan_code, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code,start_device_code2,next_device_code2); + try { + instructionService.create(instdto); + } catch (Exception e) { + notCreateInstMessage = e.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); + return false; + } logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() - + ",指令终点:" + instdto.getNext_device_code() + ",指令执行失败:" + e.getMessage()); + + ",指令终点:" + instdto.getNext_device_code()); + //创建指令后修改任务状态 + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); + taskserver.update(taskDto); + requireSucess = true; + + this.setRequireSucess(true); + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + try { + pushPLC(map1, map2, next_addr, map3, start_addr, map4, instdto.getInstruction_code(), map5, map6,map7,taskDto); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + + ",指令终点:" + instdto.getNext_device_code() + ",指令执行失败:" + e.getMessage()); + } + return true; + } else { + notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } - this.setRequireSucess(true); - return true; - }else{ - notCreateInstMessage = "未找到关联设备的任务,指令无法创建"; } } return true; @@ -424,8 +419,70 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi } + private void packageData(Instruction instdto, String route_plan_code, String taskid, String taskcode, String start_device_code, String next_device_code, String start_point_code, String next_point_code, String start_device_code2, String next_device_code2) { + instdto.setInstruction_id(IdUtil.simpleUUID()); + instdto.setRoute_plan_code(route_plan_code); + instdto.setTask_id(taskid); + instdto.setTask_code(taskcode); + instdto.setCreate_by("auto"); + instdto.setStart_device_code(start_device_code); + instdto.setNext_device_code(next_device_code); + instdto.setStart_point_code(start_point_code); + instdto.setNext_point_code(next_point_code); + instdto.setStart_device_code2(start_device_code2); + instdto.setNext_device_code2(next_device_code2); + instdto.setStart_point_code2(start_device_code2); + instdto.setNext_point_code2(next_device_code2); + instdto.setInstruction_status("0"); + instdto.setExecute_device_code(device_code); + } + + private void pushPLC(Map map1, Map map2, String next_addr, Map map3, String start_addr, Map map4, String task, Map map5, Map map6, Map map7, TaskDto taskDtoIns) { + + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + map4.put("code", "to_task"); + map4.put("value", task); + list.add(map4); + String toType = VolumeTwoTypeEnum.TOW.getType(); + if (StrUtil.isNotEmpty(taskDtoIns.getStart_device_code2())) { + toType = VolumeTwoTypeEnum.FOUR.getType(); + Device startDevice2 = deviceAppService.findDeviceByCode(taskDtoIns.getStart_device_code2()); + Device nextDevice2 = deviceAppService.findDeviceByCode(taskDtoIns.getNext_device_code2()); + String start_addr2 = startDevice2.getExtraValue().get("address").toString(); + String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); + if (ObjectUtil.isEmpty(start_addr2)) { + throw new BadRequestException("设备:" + startDevice2.getDevice_code() + "未设置电气调度号!"); + } + if (ObjectUtil.isEmpty(next_addr2)) { + throw new BadRequestException("设备:" + nextDevice2.getDevice_code() + "未设置电气调度号!"); + } + map5.put("code", "to_target2"); + map5.put("value", next_addr2); + list.add(map5); + map6.put("code", "to_onset2"); + map6.put("value", start_addr2); + list.add(map6); + } + + map7.put("code", "to_type"); + map7.put("value", toType); + list.add(map7); + + this.writing(list); + } + /** * 完成指令 + * * @param inst * @return * @throws Exception @@ -437,6 +494,7 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi /** * 下发信号 + * * @param list */ public void writing(List list) { @@ -473,6 +531,7 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi public String getToParam() { return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; } + @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java index 36226b70a..e2a9e3a68 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_device2/PaperTubeConveyor2DeviceDriver.java @@ -592,7 +592,7 @@ public class PaperTubeConveyor2DeviceDriver extends AbstractOpcDeviceDriver impl log.error("指令创建失败!{}", e.getMessage()); return false; } - taskdto.setTask_status("1"); + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskserver.update(taskdto); requireSucess = true; Map map = new HashMap(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_pick_site/PaperTubePickSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_pick_site/PaperTubePickSiteDeviceDriver.java index cd0105ac6..91a18ba9d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_pick_site/PaperTubePickSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/paper_tube_pick_site/PaperTubePickSiteDeviceDriver.java @@ -31,7 +31,7 @@ import java.util.List; import java.util.Map; /** - * + * 纸管抓取位 */ @Slf4j @Data diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java index 2df4b6367..384b301bd 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java @@ -66,7 +66,21 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme @Autowired DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - /** + + /** + * 禁止入库 + */ + private boolean prohibitInWarehouse = false; + /** + * 禁止出库 + */ + private boolean prohibitOutWarehouse = false; + /** + * 停止接收任务 + */ + private boolean stopReceiveTask = false; + + /** * 心跳 */ Integer heartbeat = 0; @@ -76,17 +90,17 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme */ Integer item_deviceCode = 0; Integer last_item_deviceCode = 0; - /** + /** * 工作模式 */ Integer mode = 0; Integer last_mode = 0; /** - *作业状态 + * 作业状态 */ Integer command = 0; Integer last_command = 0; - /** + /** * 任务号 */ Integer task = 0; @@ -111,7 +125,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme */ Integer y = 0; Integer last_y = 0; - /** + /** * 行走开关信号 */ Float move = 0F; @@ -121,12 +135,12 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme */ Float cargoMove = 0F; Float last_cargoMove = 0F; - /** + /** * 行走动作信号 */ Float action = 0F; Float last_action = 0F; - /** + /** * 行走激光数值 */ Integer distancex = 0; @@ -137,41 +151,41 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme Integer distancey = 0; Integer last_distancey = 0; /** - *载货台超限信号 + * 载货台超限信号 */ Float cargoError = 0F; Float last_cargoError = 0F; /** - *货叉探货信号 + * 货叉探货信号 */ Float forkCargo = 0F; Float last_forkCargo = 0F; /** - *货叉位置信号 + * 货叉位置信号 */ Float forkLocation = 0F; Float last_forkLocation = 0F; /** - *货叉动作信号 + * 货叉动作信号 */ Float forkAction = 0F; Float last_forkAction = 0F; - /** + /** * 特殊开关量1 */ Float special1 = 0F; Float last_special1 = 0F; - /** + /** * 特殊开关量2 */ Float special2 = 0F; Float last_special2 = 0F; /** - *托盘条码 + * 托盘条码 */ int[] trayCode; int[] last_trayCode; - /** + /** * 水箱和消防缓存位有无货 */ Float storage_cache = 0F; @@ -181,58 +195,58 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme */ Integer stacker_rpm = 0; Integer last_stacker_rpm = 0; - /** + /** * 电流 */ Integer stacker_electricCurrent = 0; Integer last_stacker_electricCurrent = 0; - /** + /** * 轴运行次数 */ Integer stacker_runing_time = 0; Integer last_stacker_runing_time = 0; - /** + /** * 轴工作时间(小时) */ Integer stacker_workingHours = 0; Integer last_stacker_workingHours = 0; /** - *载货台速度(转/分钟) + * 载货台速度(转/分钟) */ Integer cargo_rpm = 0; Integer last_cargo_rpm = 0; /** - *载货台电流 + * 载货台电流 */ Integer cargo_electric_Current = 0; Integer last_cargo_electric_Current = 0; /** - *载货台轴工作小时数 + * 载货台轴工作小时数 */ Integer cargo_workingHour = 0; Integer last_cargo_workingHour = 0; /** - *载货台轴运行次数 + * 载货台轴运行次数 */ Integer cargo_runingTimes = 0; Integer last_cargo_runingTimes = 0; /** - *货叉速度(转/分钟 + * 货叉速度(转/分钟 */ Integer fork_rpm = 0; Integer last_fork_rpm = 0; /** - *货叉电流 + * 货叉电流 */ Integer fork_electric_Current = 0; Integer last_fork_electric_Current = 0; /** - *货叉轴工作时间(小时 + * 货叉轴工作时间(小时 */ Integer fork_workingHours = 0; Integer last_fork_workingHours = 0; /** - *货叉轴运行次数 + * 货叉轴运行次数 */ Integer fork_runingTimes = 0; Integer last_fork_runingTimes = 0; @@ -250,7 +264,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme List getDeviceCodeList = null; List putDeviceCodeList = null; - /** + /** * 请求成功标记 */ Boolean requireSucess = false; @@ -368,7 +382,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("z"))) { Map map = new HashMap(); map.put("code", "to_x"); - map.put("value", nextDevice.getExtraValue().get("z")); + map.put("value", nextDevice.getExtraValue().get("z")); list.add(map); } if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("x"))) { @@ -616,7 +630,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } map.put("to_x", inst.getFrom_y()); } - if(ObjectUtil.isNotEmpty(map)){ + if (ObjectUtil.isNotEmpty(map)) { list.add(map); this.writing(list); } @@ -714,7 +728,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme if (command == 8) { map.put("to_command", 8); } - if(ObjectUtil.isNotEmpty(map)){ + if (ObjectUtil.isNotEmpty(map)) { list.add(map); this.writing(list); } @@ -725,12 +739,43 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme @Override public JSONObject getDeviceStatusName() throws Exception { - return null; + JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("is_click", true); + String requireSucess = "0"; + if (this.requireSucess) { + requireSucess = "1"; + } + jo.put("prohibitInWarehouse", this.prohibitInWarehouse); + jo.put("prohibitOutWarehouse", this.prohibitOutWarehouse); + jo.put("stopReceiveTask", this.stopReceiveTask); + jo.put("requireSucess", requireSucess); + jo.put("driver_type", "standard_stacker"); + return jo; } @Override public void setDeviceStatus(JSONObject data) { - + String requestSucess = data.getString("requireSucess"); + if (StrUtil.equals(requestSucess, "0")) { + this.requireSucess = false; + } else if (StrUtil.equals(requestSucess, CommonFinalParam.ONE)) { + this.requireSucess = true; + } + //监控大屏下发作业命令清警-5、召回-7、急停-8 + Integer toCommand = data.getInteger("toCommand"); + if (toCommand != null) { + Map map = new HashMap<>(); + map.put("to_command", toCommand); + this.writing(map); + } + //ACS监控大屏设置禁止入库、禁止出库、停止接收任务 + Boolean prohibitInWarehouse = data.getBoolean("prohibitInWarehouse"); + this.prohibitInWarehouse = prohibitInWarehouse; + Boolean prohibitOutWarehouse = data.getBoolean("prohibitOutWarehouse"); + this.prohibitOutWarehouse = prohibitOutWarehouse; + Boolean stopReceiveTask = data.getBoolean("stopReceiveTask"); + this.stopReceiveTask = stopReceiveTask; } @@ -759,6 +804,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } } + /** * 完成指令 * @@ -812,7 +858,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } - /** + /** * 将扩展表中的字符串数据转换成集合 */ @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java index abfb2f655..f4fdaa6f6 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java @@ -41,6 +41,8 @@ import org.nl.acs.task.service.dto.TaskDto; import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; import org.nl.config.language.LangProcess; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; import org.springframework.beans.factory.annotation.Autowired; import java.util.*; @@ -69,6 +71,8 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); @Autowired AcsToWmsService acsToWmsService = SpringContextHolder.getBean("acsToWmsServiceImpl"); + @Autowired + LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); //工作模式 int mode = 0; int last_mode = 0; @@ -170,49 +174,6 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem weight = this.itemProtocol.getWeight(); barcode = this.itemProtocol.getBarcode(); - if (to_onset != last_to_onset) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_onset:" + last_to_onset + "->" + to_onset); - } - if (to_command != last_to_command) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + last_to_command + "->" + to_command); - } - if (to_target != last_to_target) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + last_to_target + "->" + to_target); - } - if (to_task != last_to_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); - } - if (weight != last_weight) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号weight:" + last_weight + "->" + weight); - } - if (barcode != last_barcode) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号barcode:" + last_barcode + "->" + barcode); - } - if (mode != last_mode) { - requireSucess = false; - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - if (move != last_move) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); - } - if (action != last_action) { - logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + "->" + action); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (walk_y != last_walk_y) { - logServer.deviceItemValue(this.device_code, "walk_y", String.valueOf(walk_y)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y:" + last_walk_y + "->" + walk_y); - } - if (task != last_task) { - logServer.deviceItemValue(this.device_code, "task", String.valueOf(task)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } // 更新指令状态 if (mode == 3 && task > 0) { @@ -254,17 +215,29 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem if (body.getStatus() == 200) { message = "反馈重量以及收卷轴LMS成功..."; requireSucess = true; - logServer.deviceExecuteLog(this.device_code, "", "", "反馈尺寸成请求成功,响应参数:" + JSON.toJSONString(body)); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("反馈尺寸成请求成功,响应参数:" + JSON.toJSONString(body)) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); Map map = new LinkedHashMap<>(); map.put("to_command", "5"); this.writing(map); } else { message = "反馈重量以及收卷轴LMS失败..."; requireSucess = false; - message = "反馈LMS尺寸失败"; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("反馈重量以及收卷轴LMS失败...") + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } } else { - logServer.deviceExecuteLog(this.device_code, "", "", "当前指令号为空"); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("当前指令号为空") + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } } else { feedMessage = "行架机械手:"; @@ -305,7 +278,11 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem } catch (Exception var17) { var17.printStackTrace(); feedMessage = var17.getMessage(); - logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage() + ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol)); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("读取信号值时出现异常:" + var17.getMessage() + ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol)) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } @@ -469,7 +446,11 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem instructionService.create(instdto); } catch (Exception e) { notCreateInstMessage = e.getMessage(); - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("创建指令时出现异常:" + e.getMessage()) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); return false; } //创建指令后修改任务状态 @@ -481,12 +462,20 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem Device nextDevice = deviceAppService.findDeviceByCode(instdto.getNext_device_code()); if (ObjectUtil.isEmpty(startDevice.getExtraValue().get("address"))) { notCreateInstMessage = "设备:" + startDevice.getDevice_code() + "未设置电气调度号!"; - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "设备:" + startDevice.getDevice_code() + "未设置电气调度号!"); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("设备:" + startDevice.getDevice_code() + "未设置电气调度号!") + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); throw new BadRequestException(LangProcess.msg("device_checkAdd", startDevice.getDevice_code())); } if (ObjectUtil.isEmpty(nextDevice.getExtraValue().get("address"))) { notCreateInstMessage = "设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"; - logServer.deviceExecuteLog(this.getDevice_code(), "", "", "设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!") + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); throw new BadRequestException(LangProcess.msg("device_checkAdd", nextDevice.getDevice_code())); } @@ -533,7 +522,11 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem }); if (ObjectUtil.isNotEmpty(itemMap)) { this.control(itemMap); - logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("下发多个电气信号:" + itemMap) + .build(); + luceneExecuteLogService.deviceExecuteLog(logDto); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java index 86e043824..9a51082be 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java @@ -28,6 +28,7 @@ import org.nl.acs.opc.DeviceAppService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.config.SpringContextHolder; +import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.system.service.param.ISysParamService; import org.springframework.beans.factory.annotation.Autowired; @@ -66,6 +67,8 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); @Autowired AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class); + @Autowired + LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDeviceDriver.java index c8c1536c0..7cf2fa7f2 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDeviceDriver.java @@ -63,40 +63,14 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem public int move = 0; public int action = 0; public int error = 0; - public int door = 0; - public int temperature = 0; - public int countdown = 0; - public int finish = 0; - public int task = 0; - public int error1 = 0; - public int material = 0; - public int consumption = 0; - public int voltageA = 0; - public int voltageB = 0; - public int voltageC = 0; - public int currentA = 0; - public int currentB = 0; - public int currentC = 0; + public String task = ""; public int last_heartbeat = 0; public int last_mode = 0; public int last_move = 0; public int last_action = 0; public int last_error = 0; - public int last_door = 0; - public int last_temperature = 0; - public int last_countdown = 0; - public int last_finish = 0; - public int last_task = 0; - public int last_error1 = 0; - public int last_material = 0; - public int last_consumption = 0; - public int last_voltageA = 0; - public int last_voltageB = 0; - public int last_voltageC = 0; - public int last_currentA = 0; - public int last_currentB = 0; - public int last_currentC = 0; + public String last_task = ""; Boolean isonline = true; @@ -122,23 +96,17 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem @Override public void execute() { String message = null; - device_code = this.getDeviceCode(); + heartbeat = itemProtocol.getItem_heartbeat(); + mode = itemProtocol.getItem_mode(); + move = itemProtocol.getItem_move(); + task = itemProtocol.getItem_task(); + error = itemProtocol.getItem_error(); + action = itemProtocol.getItem_action(); } - public synchronized boolean instruction_apply(String container_code) throws Exception { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); - return false; - } else { - this.instruction_apply_time = date; - requireSucess = true; - return true; - } - } protected void thingToNothing() { this.setRequireSucess(false); @@ -147,8 +115,8 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem public void writing(int command) { String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "." + ItemProtocol.item_to_command; - //String opcservcerid = this.getDevice().getOpc_server_id(); -//Server server = ReadUtil.getServer(opcservcerid); + // String opcservcerid = this.getDevice().getOpc_server_id(); + // Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); this.control(itemMap); @@ -177,12 +145,9 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "." + param; - //String opcservcerid = this.getDevice().getOpc_server_id(); -//Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_param, value); -// itemMap.put(to_param, Integer.parseInt(value)); this.control(itemMap); } @@ -190,15 +155,11 @@ public class HongXiangStationDeviceDriver extends AbstractOpcDeviceDriver implem @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); - String mode = ""; - String action = ""; - String move = ""; jo.put("device_name", this.getDevice().getDevice_name()); - jo.put("mode", "联机"); - jo.put("action", action); + jo.put("mode", mode ==2 ? "待机": "脱机"); + jo.put("action", action == 1 ? "允许取放": "不允许取放"); jo.put("isOnline", true); jo.put("error", this.getError()); - jo.put("isError", this.getIserror()); jo.put("task", this.getTask()); return jo; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/ItemProtocol.java index 72992ccec..59ec84678 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/ItemProtocol.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor; +import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.device_driver.standard_inspect.ItemDto; @@ -11,10 +12,24 @@ import java.util.List; @Data public class ItemProtocol { + public static String item_heartbeat = "heartbeat"; + + public static String item_mode = "mode"; + + public static String item_move = "move"; + public static String item_action = "action"; + public static String item_error = "error"; + + public static String item_task = "task"; + public static String item_to_command = "to_command"; + public static String item_target = "target"; + + public static String item_to_task = "task"; + private HongXiangStationDeviceDriver driver; public ItemProtocol(HongXiangStationDeviceDriver driver) { @@ -22,11 +37,42 @@ public class ItemProtocol { } + public int getItem_heartbeat() { + return this.getOpcIntegerValue(item_heartbeat); + } + + public int getItem_mode() { + return this.getOpcIntegerValue(item_mode); + } + + public int getItem_move() { + return this.getOpcIntegerValue(item_move); + } + + public int getItem_error() { + return this.getOpcIntegerValue(item_error); + } + + public String getItem_task() { + return this.getOpcStringValue(item_task); + } + public int getItem_action() { return this.getOpcIntegerValue(item_action); } - ; + public int getItem_to_command() { + return this.getOpcIntegerValue(item_to_command); + } + + public int getItem_target() { + return this.getOpcIntegerValue(item_target); + } + + public String getItem_to_task() { + return this.getOpcStringValue(item_to_task); + } + Boolean isonline; @@ -42,17 +88,34 @@ public class ItemProtocol { } + public String getOpcStringValue(String protocol) { + String stringValue = this.driver.getStringValue(protocol); + if (StrUtil.isEmpty(stringValue)) { + setIsonline(false); + } else { + setIsonline(true); + return stringValue; + } + return "0"; + + } + public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - - list.add(new ItemDto(item_action, "动作信号", "450")); - + list.add(new ItemDto(item_heartbeat, "心跳", "DB100.10")); + list.add(new ItemDto(item_mode, "模式", "DB100.12")); + list.add(new ItemDto(item_move, "光电信号", "DB100.13")); + list.add(new ItemDto(item_error, "error", "DB100.14")); + list.add(new ItemDto(item_task, "任务号", "DB100.15")); + list.add(new ItemDto(item_action, "取放信号", "DB100.11 ")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发命令", "226")); + list.add(new ItemDto(item_to_command, "下发命令", "DB101.11")); + list.add(new ItemDto(item_target, "下发目标站", "DB101.12")); + list.add(new ItemDto(item_to_task, "下发任务号", "DB101.13")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ItemProtocol.java new file mode 100644 index 000000000..311cf9a33 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ItemProtocol.java @@ -0,0 +1,67 @@ +package org.nl.acs.device_driver.two_conveyor.manipulator_agv_station; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Data +public class ItemProtocol { + public static String item_heartbeat = "heartbeat"; + public static String item_mode = "mode"; + public static String item_action = "action"; + + public static String item_to_command = "to_command"; + + private ManipulatorAgvStationDeviceDriver driver; + + public ItemProtocol(ManipulatorAgvStationDeviceDriver driver){ + this.driver=driver; + } + + public int getItem_heartbeat(){ + return this.getOpcIntegerValue(item_heartbeat); + } ; + public int getItem_mode(){ + return this.getOpcIntegerValue(item_mode); + } + public int getItem_action(){ + return this.getOpcIntegerValue(item_action); + } + + Boolean isonline; + + public int getOpcIntegerValue(String protocol) { + Integer value = this.driver.getIntegeregerValue(protocol); + if (value == null) { + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + + public static List getReadableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_heartbeat, "心跳", "DB19.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB19.B1")); + list.add(new ItemDto(item_action, "取放信号", "DB19.B3")); + return list; + } + + public static List getWriteableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_to_command, "下发命令", "DB20.W0")); + return list; + } + + @Override + public String toString() { + return ""; + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDefination.java new file mode 100644 index 000000000..a6605ec17 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDefination.java @@ -0,0 +1,57 @@ +package org.nl.acs.device_driver.two_conveyor.manipulator_agv_station; + +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device.enums.DeviceType; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; +import org.springframework.stereotype.Service; + + +import java.util.LinkedList; +import java.util.List; + +@Service +public class ManipulatorAgvStationDefination implements OpcDeviceDriverDefination { + @Override + public String getDriverCode() { + return "manipulator_agv_station"; + } + + @Override + public String getDriverName() { + return "行架-agv对接位"; + } + + @Override + public String getDriverDescription() { + return "行架-agv对接位"; + } + + @Override + public DeviceDriver getDriverInstance(Device device) { + return (new ManipulatorAgvStationDeviceDriver()).setDevice(device).setDriverDefination(this); + } + + @Override + public Class getDeviceDriverType() { + return ManipulatorAgvStationDeviceDriver.class; + } + + @Override + public List getFitDeviceTypes() { + List types = new LinkedList(); + types.add(DeviceType.conveyor); + return types; + } + + @Override + public List getReadableItemDtos() { + return ItemProtocol.getReadableItemDtos(); + } + + @Override + public List getWriteableItemDtos() { + return ItemProtocol.getWriteableItemDtos(); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java new file mode 100644 index 000000000..ea0fcff4b --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java @@ -0,0 +1,198 @@ +package org.nl.acs.device_driver.two_conveyor.manipulator_agv_station; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device.service.DeviceExtraService; +import org.nl.acs.device.service.impl.DeviceExtraServiceImpl; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.FeedLmsRealFailed; +import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; +import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.history.service.DeviceErrorLogService; +import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl; +import org.nl.acs.instruction.domain.Instruction; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.acs.monitor.DeviceStageMonitor; +import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.opc.DeviceAppServiceImpl; +import org.nl.acs.route.service.RouteLineService; +import org.nl.acs.route.service.impl.RouteLineServiceImpl; +import org.nl.acs.task.service.TaskService; +import org.nl.config.SpringContextHolder; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +/** + * 行架-agv对接位 + */ +@Slf4j +@Data +@RequiredArgsConstructor +public class ManipulatorAgvStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, FeedLmsRealFailed { + protected ItemProtocol itemProtocol = new ItemProtocol(this); + @Autowired + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + @Autowired + TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); + @Autowired + InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); + @Autowired + DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); + @Autowired + RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineServiceImpl.class); + @Autowired + DeviceExtraService deviceExtraService = SpringContextHolder.getBean(DeviceExtraServiceImpl.class); + @Autowired + DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + + private Date instruction_require_time = new Date(); + private Date instruction_finished_time = new Date(); + private Date instruction_apply_time = new Date(); + private int instruction_require_time_out = 3000; + + //工作模式 + int mode = 0; + int last_mode = 0; + //动作信号 + int action = 0; + int last_action = 0; + int heartbeat = 0; + int last_heartbeat = 0; + + + int to_command = 0; + int last_to_command = 0; + + + Boolean isonline = true; + + Boolean iserror = false; + + /** + * 1-执行任务;2-取货完成;3-放货完成; + */ + int flag; + + String device_code; + + @Override + public Device getDevice() { + return this.device; + } + + /** + * 请求成功标记 + */ + Boolean requireSucess = false; + + @Override + public void execute() { + String message = null; + try { + device_code = this.getDeviceCode(); + mode = this.itemProtocol.getItem_mode(); + action = this.itemProtocol.getItem_action(); + if (mode != last_mode) { + this.setRequireSucess(false); + if (mode == 2) { + this.writing(0); + } + } + } catch (Exception var17) { + return; + } + + if (!this.itemProtocol.getIsonline()) { + this.setIsonline(false); + this.setIserror(true); + message = "信号量同步异常"; + //未联机 + } else if (mode == 0) { + this.setIsonline(false); + this.setIserror(true); + message = "未联机"; + //有报警 + } else { + this.setIsonline(true); + this.setIserror(false); + message = ""; + Instruction instruction = null; + List toInstructions; + switch (mode) { + case 1: + log.debug("设备运转模式:等待工作"); + return; + case 2: + break; + case 3: + break; + default: + break; + } + + switch (flag) { + //取货完成 + case 1: + writing(3); + return; + //放货完成 + case 2: + writing(5); + return; + default: + break; + } + + } + last_mode = mode; + last_action = action; + last_heartbeat = heartbeat; + last_to_command = to_command; + + } + + protected void thingToNothing() { + this.setRequireSucess(false); + } + + public void writing(int command) { + String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.ItemProtocol.item_to_command; + //String opcservcerid = this.getDevice().getOpc_server_id(); +//Server server = ReadUtil.getServer(opcservcerid); + Map itemMap = new HashMap(); + itemMap.put(to_command, command); + this.control(itemMap); + } + + @Override + public JSONObject getDeviceStatusName() { + JSONObject jo = new JSONObject(); + String mode = ""; + String action = ""; + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("mode", "联机"); + jo.put("action", action); + jo.put("isOnline", true); + jo.put("isError", this.getIserror()); + return jo; + } + + @Override + public void setDeviceStatus(JSONObject data) { + + } + + @Override + public JSONObject feedLmsRealFailedInfo() { + return null; + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index d025e19d4..cdd378323 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -348,17 +348,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i String next_device_code = instruction.getNext_device_code(); Device nextdevice = deviceAppService.findDeviceByCode(next_device_code); Device startdevice = deviceAppService.findDeviceByCode(start_device_code); - //PhotoelectricInspectionSiteDeviceDriver photoelectricInspectionSiteDeviceDriver; HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver; -// if (startdevice.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) { -// photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) startdevice.getDeviceDriver(); -// if (photoelectricInspectionSiteDeviceDriver.getMove() != 1) { -// notCreateInstMessage = "手动创建指令未下发电气信号原因->取货位-烘箱对接位:" + photoelectricInspectionSiteDeviceDriver.getDevice_code() + "无货,无法下发指令!指令号:" + instruction.getInstruction_code(); -// return false; -// } -// } if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){ ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver(); standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver(); @@ -485,13 +477,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; OvenInspectSiteDeviceDriver ovenInspectSiteDeviceDriver; -// if (startdevice.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) { -// photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) startdevice.getDeviceDriver(); -// if (photoelectricInspectionSiteDeviceDriver.getMove() != 1) { -// notCreateInstMessage = "就绪任务未创建指令原因->取货位-烘箱对接位:" + photoelectricInspectionSiteDeviceDriver.getDevice_code() + "光电无货,无法生成指令!"; -// return false; -// } -// } if(startdevice.getDeviceDriver() instanceof OvenInspectSiteDeviceDriver && nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver){ ovenInspectSiteDeviceDriver = (OvenInspectSiteDeviceDriver) startdevice.getDeviceDriver(); standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver(); @@ -544,13 +529,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i return false; } } -// if (nextdevice.getDeviceDriver() instanceof PhotoelectricInspectionSiteDeviceDriver) { -// photoelectricInspectionSiteDeviceDriver = (PhotoelectricInspectionSiteDeviceDriver) nextdevice.getDeviceDriver(); -// if (photoelectricInspectionSiteDeviceDriver.getMove() != 0) { -// notCreateInstMessage = "就绪任务未创建指令原因->放货位-烘箱对接位:" + photoelectricInspectionSiteDeviceDriver.getDevice_code() + "光电有货,无法生成指令!"; -// return false; -// } -// } if (nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver(); if (standardInspectSiteDeviceDriver.getMove() != 0) { @@ -699,7 +677,12 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i return flag; } - //判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门 + /** + * 判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门 + * @param start_device_code + * @param next_device_code + * @return + */ public boolean judgeCloseDoor(String start_device_code, String next_device_code) { Boolean isClose = false; try { @@ -774,7 +757,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.instruction_update_time = date; //更改任务状态 if (task > 0) { - //inst_message Instruction inst1 = checkInst(); if (inst1 != null) { if (StrUtil.equals(inst1.getInstruction_status(), "0")) { @@ -794,7 +776,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; if (device.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) device.getDeviceDriver(); - //hongXiangConveyorDeviceDriver.writing("to_open_door", "1"); int mode = hongXiangConveyorDeviceDriver.getMode(); int door = hongXiangConveyorDeviceDriver.getDoor(); int action = hongXiangConveyorDeviceDriver.getAction(); @@ -804,8 +785,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (this.getNow_steps_type() == 2) { this.writing("to_command", "2"); this.setNow_steps_type(3); - } else { - //logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为下发电气信号(now_steps_type!=2)"); } } else { if (this.getNow_steps_type() == 2) { @@ -831,8 +810,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (this.getNow_steps_type() == 2) { this.writing("to_command", "2"); this.setNow_steps_type(3); - } else { - //logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为下发电气信号(now_steps_type!=2)\")"); } } } @@ -868,8 +845,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (this.getNow_steps_type() == 3) { this.writing("to_command", "3"); this.setNow_steps_type(4); - } else { - //logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许取货(now_steps_type!=3)"); } } } else { @@ -899,7 +874,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver(); - //hongXiangConveyorDeviceDriver.writing("to_open_door", "1"); int mode = hongXiangConveyorDeviceDriver.getMode(); int door = hongXiangConveyorDeviceDriver.getDoor(); int action = hongXiangConveyorDeviceDriver.getAction(); @@ -911,7 +885,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.setNow_steps_type(5); } else { feedMessage = "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)"; - //logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)"); } } else { if (this.getNow_steps_type() == 4) { @@ -937,10 +910,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (this.getNow_steps_type() == 4) { this.writing("to_command", "4"); this.setNow_steps_type(5); - } else { - //logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许放货(now_steps_type!=4)"); } - } } else { if (this.getNow_steps_type() == 4) { @@ -965,20 +935,12 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i Instruction inst2 = checkInst(); if (inst2 != null) { if (StrUtil.equals(inst2.getInstruction_status(), "1")) { - TaskDto taskDto = taskserver.findByCode(inst2.getTask_code()); - String next_device_code = inst2.getNext_device_code(); - //String start_device_code = taskDto.getStart_device_code(); - //Device startDevice = deviceAppService.findDeviceByCode(start_device_code); Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; LampThreecolorDeviceDriver lampThreecolorDeviceDriver; -// if (startDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { -// hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startDevice.getDeviceDriver(); -// hongXiangConveyorDeviceDriver.writing("to_close_door", "1"); -// } if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver(); hongXiangConveyorDeviceDriver.writing("to_close_door", "1"); @@ -994,8 +956,6 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (nextDevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) nextDevice.getDeviceDriver(); -// hongXiangConveyorDeviceDriver.writing("to_close_door", "1"); - if (!StrUtil.startWith(taskDto.getTask_code(), "-")) { if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("link_three_lamp"))) { String lamp = nextDevice.getExtraValue().get("link_three_lamp").toString(); @@ -1071,9 +1031,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i move = "有货"; } - String requireSucess = "0"; + String requireSucess = "复位"; if (this.requireSucess) { - requireSucess = "1"; + requireSucess = "未复位"; } jo.put("requireSucess", requireSucess); if (this.getAction() == 1) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java index 36b906812..7b01b42db 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java @@ -130,7 +130,7 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl //当前指令 Instruction inst = null; - /** + /** * 1-执行任务;2-取货完成;3-放货完成; */ int flag; @@ -295,7 +295,7 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl case 8: if (!requireSucess && task > 0) { //缓存线已满,申请行架任务 -// applyTask(); + applyTask(); } break; default: @@ -361,6 +361,10 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl String task_code1 = inst1.getTask_code(); applyPlugPullSiteRequest.setDevice_code(device_code); applyPlugPullSiteRequest.setTask_code(task_code1); + applyPlugPullSiteRequest.setWeight1(String.valueOf(weight1)); + applyPlugPullSiteRequest.setMaterial1(String.valueOf(material1)); + applyPlugPullSiteRequest.setWeight2(String.valueOf(weight2)); + applyPlugPullSiteRequest.setMaterial2(String.valueOf(material2)); applyPlugPullSiteRequest.setType("2"); applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest); if (applyPlugPullSitResponse.getCode() == 200) { @@ -389,6 +393,7 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl String task_code1 = inst1.getTask_code(); applyPlugPullSiteRequest.setDevice_code(device_code); applyPlugPullSiteRequest.setTask_code(task_code1); + applyPlugPullSiteRequest.setBarcode(String.valueOf(barcode)); applyPlugPullSiteRequest.setType("3"); applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest); if (applyPlugPullSitResponse.getCode() == 200) { @@ -406,6 +411,29 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl } } + /** + * 缓存线已满,生成行架任务 + */ + private synchronized void applyTask() { + ApplyPlugPullSiteRequest applyPlugPullSiteRequest = new ApplyPlugPullSiteRequest(); + ApplyPlugPullSitResponse applyPlugPullSitResponse; + Instruction inst1 = instructionService.findByCode(String.valueOf(task)); + String task_code1 = inst1.getTask_code(); + applyPlugPullSiteRequest.setDevice_code(device_code); + applyPlugPullSiteRequest.setTask_code(task_code1); + applyPlugPullSiteRequest.setType("4"); + applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest); + if (applyPlugPullSitResponse.getCode() == 200) { + logServer.deviceExecuteLog(this.device_code, "", "", "申请拔轴,返回参数:" + applyPlugPullSitResponse); + message = "拔轴完成成功"; + } else { + message = applyPlugPullSitResponse.getMessage(); + requireSucess = true; + message = "申请行架任务失败"; + logServer.deviceExecuteLog(this.device_code, "", "", "申请拔轴反馈失败,返回参数:" + applyPlugPullSitResponse); + } + } + /** * 下发电气信号 * @param mode diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index 00f37490d..389447f02 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -24,6 +24,7 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; +import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.common.exception.BadRequestException; @@ -488,7 +489,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl logServer.deviceExecuteLog(device_code, "", instdto.getInstruction_code(), "指令创建失败,原因->" + e.getMessage()); } //创建指令后修改任务状态 - taskDto.setTask_status("1"); + taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); taskDto.setUpdate_time(DateUtil.now()); taskserver.update(taskDto); try { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/ItemProtocol.java new file mode 100644 index 000000000..ddd9a1fb3 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/ItemProtocol.java @@ -0,0 +1,121 @@ +package org.nl.acs.device_driver.two_conveyor.sub_roll_conveyor_site; + + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Data +public class ItemProtocol { + + //心跳 + public static String item_heartbeat = "heartbeat"; + //工作模式 + public static String item_mode = "mode"; + //光电信号 + public static String item_move = "move"; + //动作信号 + public static String item_action = "action"; + //任务号 + public static String item_task = "task"; + //报警 + public static String item_error = "error"; + //载具类型 + public static String item_container_type = "container_type"; + //托盘方向 + public static String item_carrier_direction = "carrier_direction"; + + //下发命令 + public static String item_to_command = "to_command"; + + //下发目标站 + public static String item_to_target = "to_target"; + //下发任务号 + public static String item_to_task = "to_task"; + //下发托盘类型 + public static String item_to_container_type = "to_container_type"; + + private SubRollConveyorSiteDeviceDriver driver; + + public ItemProtocol(SubRollConveyorSiteDeviceDriver driver){ + this.driver=driver; + } + + public int getHeartbeat() { + return this.getOpcIntegerValue(item_heartbeat); + } + + public int getMode() { + return this.getOpcIntegerValue(item_mode); + } + + public int getMove() { + return this.getOpcIntegerValue(item_move); + } + + public int getAction() { + return this.getOpcIntegerValue(item_action); + } + + public int getError() { + return this.getOpcIntegerValue(item_error); + } + + public int getTask() { + return this.getOpcIntegerValue(item_task); + } + + public int getContainer_type(){ + return this.getOpcIntegerValue(item_container_type); + } + + public int getCarrier_direction(){ + return this.getOpcIntegerValue(item_carrier_direction); + } + + Boolean isonline; + + public int getOpcIntegerValue(String protocol) { + Integer value = this.driver.getIntegeregerValue(protocol); + if (value == null) { + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + + public static List getReadableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_heartbeat, "心跳", "DB29.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB29.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB29.B2")); + list.add(new ItemDto(item_action, "动作信号", "DB29.B3")); + list.add(new ItemDto(item_container_type, "载具类型", "DB29.B4")); + list.add(new ItemDto(item_to_container_type, "托盘方向", "DB29.B5")); + list.add(new ItemDto(item_error, "报警信号", "DB29.B9")); + list.add(new ItemDto(item_task, "任务号", "DB29.D10")); + return list; + } + + public static List getWriteableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_to_command, "下发命令", "DB30.W0")); + list.add(new ItemDto(item_to_target, "下发目标站", "DB30.W2")); + list.add(new ItemDto(item_to_task, "下发任务号", "DB30.W4")); + list.add(new ItemDto(item_to_container_type, "下发托盘类型", "DB30.W6")); + return list; + } + + @Override + public String toString() { + return ""; + } + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/SubRollConveyorSiteDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/SubRollConveyorSiteDefination.java new file mode 100644 index 000000000..a52e09e9f --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/SubRollConveyorSiteDefination.java @@ -0,0 +1,62 @@ +package org.nl.acs.device_driver.two_conveyor.sub_roll_conveyor_site; + +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device.enums.DeviceType; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; + +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; + +/** + * 子卷下卷输送线工位 + */ +@Service +public class SubRollConveyorSiteDefination implements OpcDeviceDriverDefination { + + @Override + public String getDriverCode() { + return "sub_roll_conveyor_site"; + } + + @Override + public String getDriverName() { + return "子卷下卷输送线工位"; + } + + @Override + public String getDriverDescription() { + return "子卷下卷输送线工位"; + } + + @Override + public DeviceDriver getDriverInstance(Device device) { + return (new SubRollConveyorSiteDeviceDriver()).setDevice(device).setDriverDefination(this); + } + + @Override + public Class getDeviceDriverType() { + return SubRollConveyorSiteDeviceDriver.class; + } + + @Override + public List getFitDeviceTypes() { + List types = new LinkedList(); + types.add(DeviceType.conveyor); + return types; + } + + @Override + public List getReadableItemDtos() { + return ItemProtocol.getReadableItemDtos(); + } + + @Override + public List getWriteableItemDtos() { + return ItemProtocol.getWriteableItemDtos(); + } + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/SubRollConveyorSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/SubRollConveyorSiteDeviceDriver.java new file mode 100644 index 000000000..2c8dffa93 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_conveyor_site/SubRollConveyorSiteDeviceDriver.java @@ -0,0 +1,271 @@ +package org.nl.acs.device_driver.two_conveyor.sub_roll_conveyor_site; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.agv.server.AgvService; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device.service.DeviceService; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; +import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.service.AcsToWmsService; +import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; +import org.nl.acs.instruction.domain.Instruction; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.acs.monitor.DeviceStageMonitor; +import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.route.service.RouteLineService; +import org.nl.acs.task.service.TaskService; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.*; + +/** + * 子卷下卷输送线工位 + */ +@Slf4j +@Data +@RequiredArgsConstructor +public class SubRollConveyorSiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { + protected ItemProtocol itemProtocol = new ItemProtocol(this); + @Autowired + DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppService.class); + @Autowired + InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class); + @Autowired + DeviceService deviceservice = SpringContextHolder.getBean(DeviceService.class); + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); + @Autowired + RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class); + @Autowired + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); + @Autowired + ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); + @Autowired + DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); + @Autowired + AgvService agvService = SpringContextHolder.getBean(AgvService.class); + + //工作模式 + int mode = 0; + int last_mode = 0; + //光电信号 + int move = 0; + int last_move = 0; + //动作信号 + int action = 0; + int last_action = 0; + + //报警信号 + int error = 0; + int last_error = 0; + //任务号 + int task = 0; + int last_task = 0; + + int heartbeat = 0; + int last_heartbeat = 0; + int to_command = 0; + int last_to_command = 0; + + //载具类型 + int container_type = 0; + int last_container_type = 0; + + //托盘方向 + int carrier_direction = 0; + int last_carrier_direction = 0; + + int to_target = 0; + int last_to_target = 0; + + int to_container_type = 0; + int last_to_container_type = 0; + + int to_task = 0; + int last_to_task = 0; + + + Boolean isonline = true; + + Boolean iserror = false; + //当前指令 + Instruction inst = null; + + /** + * 1-执行任务;2-取货完成;3-放货完成; + */ + int flag; + + String device_code; + + String message = null; + + @Override + public Device getDevice() { + return this.device; + } + + /** + * 请求成功标记 + */ + Boolean requireSucess = false; + String feedMessage = ""; + + @Override + public void execute() { + String message = null; + device_code = this.getDeviceCode(); + mode = this.itemProtocol.getMode(); + move = this.itemProtocol.getMove(); + action = this.itemProtocol.getAction(); + error = this.itemProtocol.getError(); + task = this.itemProtocol.getTask(); + heartbeat = this.itemProtocol.getHeartbeat(); + container_type = this.itemProtocol.getContainer_type(); + carrier_direction = this.itemProtocol.getCarrier_direction(); + + if (mode == 0) { + this.setIsonline(false); + message = "未联机"; + //有报警 + } else if (error != 0) { + this.setIserror(true); + message = "有报警"; + //无报警 + } else { + this.setIsonline(true); + this.setIserror(false); + message = ""; + Instruction instruction = null; + List toInstructions; + + //插拔轴机工位申请任务 + switch (mode) { + case 1: + log.debug("弃用(留作兼容)"); + break; + case 2: + log.info("待机"); + break; + case 3: + //收到行架任务任务号并且有货 + if (task > 0 && move == 1) { + Map map = new LinkedHashMap<>(); + map.put("to_command", 1); + this.writing(map); + } + break; + default: + log.info("未知模式"); + break; + } + } + last_mode = mode; + last_move = move; + last_action = action; + last_error = error; + last_task = task; + last_heartbeat = heartbeat; + last_to_command = to_command; + last_container_type = container_type; + last_carrier_direction = carrier_direction; + } + + public void writing(Map map) { + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + this.control(itemMap); + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + } + } + + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } + + /** + * 将扩展表中的字符串数据转换成集合 + */ + @Override + public List getExtraDeviceCodes(String extraName) { + String extraValue = (String) this.getDevice().getExtraValue().get(extraName); + if (StrUtil.isEmpty(extraValue)) { + return new ArrayList<>(); + } + String devicesString = extraValue.substring(1, extraValue.length() - 1); + List devicesList = new ArrayList<>(); + String[] devices = devicesString.split(","); + for (int i = 0; i < devices.length; i++) { + String s = devices[i].replace("\"", "").replace("\"", ""); + devicesList.add(s); + } + return devicesList; + } + + + @Override + public JSONObject getDeviceStatusName() { + JSONObject jo = new JSONObject(); + String mode = ""; + String action = ""; + String move = ""; + if (this.getMode() == 0) { + mode = "未联机"; + } else if (this.getMode() == 1) { + mode = "单机"; + } else if (this.getMode() == 2) { + mode = "联机"; + } else if (this.getMode() == 3) { + mode = "运行中"; + } + + if (this.getMove() == 0) { + move = "无货"; + jo.put("hasGoods", false); + } else if (this.getMove() == 1) { + move = "有货"; + jo.put("hasGoods", true); + } + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("mode", mode); + jo.put("move", move); + jo.put("action", action); + jo.put("isOnline", this.getIsonline()); + jo.put("isError", this.getIserror()); + return jo; + } + + @Override + public void setDeviceStatus(JSONObject data) { + + } + + public void writing(String param, String value) { + + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + param; + //String opcservcerid = this.getDevice().getOpc_server_id(); +//Server server = ReadUtil.getServer(opcservcerid); + Map itemMap = new HashMap(); + + itemMap.put(to_param, value); +// itemMap.put(to_param, Integer.parseInt(value)); + this.control(itemMap); + } +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/ItemProtocol.java new file mode 100644 index 000000000..22ea96b6b --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/ItemProtocol.java @@ -0,0 +1,4 @@ +package org.nl.acs.device_driver.two_conveyor.sub_roll_manipulator; + +public class ItemProtocol { +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/SubRollManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/SubRollManipulatorDefination.java new file mode 100644 index 000000000..5f4847ce8 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/SubRollManipulatorDefination.java @@ -0,0 +1,4 @@ +package org.nl.acs.device_driver.two_conveyor.sub_roll_manipulator; + +public class SubRollManipulatorDefination { +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/SubRollManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/SubRollManipulatorDeviceDriver.java new file mode 100644 index 000000000..489fcbea0 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/sub_roll_manipulator/SubRollManipulatorDeviceDriver.java @@ -0,0 +1,4 @@ +package org.nl.acs.device_driver.two_conveyor.sub_roll_manipulator; + +public class SubRollManipulatorDeviceDriver { +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/enums/RequestSucessEnum.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/enums/RequestSucessEnum.java new file mode 100644 index 000000000..a25e5b6d2 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/enums/RequestSucessEnum.java @@ -0,0 +1,20 @@ +package org.nl.acs.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum RequestSucessEnum { + YES("1", "是"), + + NO("0", "否"); + /** + * 状态 + */ + private String type; + /** + * 描述 + */ + private String value; +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/AcsUtil.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/AcsUtil.java index b877bcb85..f8736f0e9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/AcsUtil.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/AcsUtil.java @@ -7,8 +7,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.acs.common.base.CommonFinalParam; -import org.nl.acs.log.LokiLog; -import org.nl.acs.log.LokiLogType; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.common.exception.BadRequestException; import org.nl.config.language.LangProcess; @@ -23,7 +21,7 @@ import org.nl.system.service.param.impl.SysParamServiceImpl; public class AcsUtil { - @LokiLog(type = LokiLogType.ACS_TO_LK) + public static String notifyAcs(String api, W requestParam) { DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); ; @@ -35,7 +33,6 @@ public class AcsUtil { } String liKu_wcs_url = paramService.findByCode("liKu_wcs_url").getValue(); try { - logServer.extLog(LokiLogType.ACS_TO_LK.name(), "下发立库任务请求参数:{}" + JSON.toJSONString(requestParam)); log.info("下发立库任务请求参数:{}", JSON.toJSONString(requestParam)); String body = HttpRequest .post(liKu_wcs_url + api).setConnectionTimeout(3000) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java index 0df1f9734..22a1f83b9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java @@ -10,6 +10,7 @@ public class ApplyPlugPullSiteRequest extends BaseRequest { * 1-申请套管 * 2-套管完成 * 3-拔轴完成 + * 4-缓存线已满,生成行架任务 */ private String type; @@ -19,9 +20,25 @@ public class ApplyPlugPullSiteRequest extends BaseRequest { private String task_code; /** - * 重量 + * 纸管1重量 */ - private String weight; + private String weight1; + + /** + * 纸管1规格 + */ + private String material1; + + /** + * 纸管2规格 + */ + private String material2; + + /** + * 纸管2重量 + */ + private String weight2; + /** * 条码 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/ApplyLabelingAndBindingRequest.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/ApplyLabelingAndBindingRequest.java index d058547b1..35f041992 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/ApplyLabelingAndBindingRequest.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/one/ApplyLabelingAndBindingRequest.java @@ -9,7 +9,7 @@ public class ApplyLabelingAndBindingRequest extends BaseRequest { /** * 1:贴标、捆扎申请 * 2:烘箱 - * + * 3:开盖 */ private String type; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 0e3cb2320..c8ffead76 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -28,6 +28,8 @@ import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; import org.nl.system.service.param.ISysParamService; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; @@ -55,6 +57,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Autowired DeviceExecuteLogService logServer; + @Autowired + private LuceneExecuteLogService luceneLogService; + public String token; @@ -92,6 +97,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { type = "error"; } log.info("applyTaskToWms-----输出参数{}", result2.body()); + LuceneLogDto luceneLogDto = new LuceneLogDto("applyTaskToWms", String.valueOf(result2.getStatus()), + JSON.toJSONString(jo), String.valueOf(result2.body()), "ACS向LMS申请生箔按钮任务"); + luceneLogService.interfaceExecuteLog(luceneLogDto); return result2.body(); } finally { @@ -183,6 +191,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { map.put("message", e.getMessage()); return JSONObject.toJavaObject(map, ApplyGreenFoilButtonResponse.class); } + LuceneLogDto luceneLogDto = new LuceneLogDto("ApplyGreenFoilButtonRequest", String.valueOf(applyGreenFoilButtonResponse.getCode()), + JSON.toJSONString(param), String.valueOf(applyGreenFoilButtonResponse.getMessage()), "ACS向LMS申请生箔按钮任务"); + luceneLogService.interfaceExecuteLog(luceneLogDto); } return applyGreenFoilButtonResponse; } finally { @@ -215,6 +226,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { map.put("message", e.getMessage()); return JSONObject.toJavaObject(map, BlankingButtonResponse.class); } + LuceneLogDto luceneLogDto = new LuceneLogDto("BlankingButtonRequest", String.valueOf(blankingButtonResponse.getCode()), + JSON.toJSONString(param), String.valueOf(blankingButtonResponse.getMessage()), "ACS向LMS申请表处下料位按钮任务"); + luceneLogService.interfaceExecuteLog(luceneLogDto); } return blankingButtonResponse; } finally { @@ -248,6 +262,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { map.put("message", e.getMessage()); return JSONObject.toJavaObject(map, ApplyPlugPullSitResponse.class); } + LuceneLogDto luceneLogDto = new LuceneLogDto("ApplyPlugPullSiteRequest", String.valueOf(applyPlugPullSitResponse.getCode()), + JSON.toJSONString(param), String.valueOf(applyPlugPullSitResponse.getMessage()), "ACS向LMS申请套管"); + luceneLogService.interfaceExecuteLog(luceneLogDto); } return applyPlugPullSitResponse; } finally { @@ -281,6 +298,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { map.put("message", e.getMessage()); return JSONObject.toJavaObject(map, ApplyManipulatorActionResponse.class); } + LuceneLogDto luceneLogDto = new LuceneLogDto("ApplyManipulatorActionRequest", String.valueOf(applyManipulatorActionResponse.getCode()), + JSON.toJSONString(param), String.valueOf(applyManipulatorActionResponse), "ACS向LMS申请反馈"); + luceneLogService.interfaceExecuteLog(luceneLogDto); } return applyManipulatorActionResponse; } finally { @@ -303,7 +323,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { .execute() .body(); log.info("gccQueryStationState - 响应参数{}", responseBody); - + JSONObject jsonObject = JSONObject.parseObject(responseBody); + LuceneLogDto luceneLogDto = new LuceneLogDto("gccQueryStationState", String.valueOf(jsonObject.get("code")), + JSON.toJSONString("StartStationCode=" + inst.getStart_point_code() + "&EndStationCode=" + inst.getNext_point_code()), + String.valueOf(jsonObject), "ACS查询站点有无货状态"); + luceneLogService.interfaceExecuteLog(luceneLogDto); return JSONObject.parseObject(responseBody); } catch (Exception e) { JSONObject result = new JSONObject(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 242dc8197..8eb0f533f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import lombok.Builder; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.domain.Device; @@ -28,7 +29,11 @@ import org.nl.acs.ext.wms.service.WmsToAcsService; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.storage_cell.domain.StorageCell; import org.nl.acs.storage_cell.service.mapper.StorageCellMapper; +import org.nl.common.enums.LogTypeEnum; import org.nl.common.exception.BadRequestException; +import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.config.lucene.service.dto.LuceneLogDto; +import org.nl.config.lucene.service.impl.LuceneExecuteLogServiceImpl; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -48,6 +53,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Autowired private DeviceAppService deviceAppService; + @Autowired + private LuceneExecuteLogService luceneExecuteLogService; + private String log_file_type = "log_file_type"; private String log_type = "LMS请求ACS"; @@ -118,6 +126,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { } response.setCode(200); response.setMessage("success"); + LuceneLogDto luceneLogDto = new LuceneLogDto("putAction", String.valueOf(response.getCode()), + jsonObject, String.valueOf(response), "LMS下发动作"); + luceneExecuteLogService.interfaceExecuteLog(luceneLogDto); log.info("putAction--------------:输出参数:" + response); return response; } finally { @@ -156,7 +167,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String parent_device_code = data.getString("device_code"); String device_code = ""; LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(parent_device_code), StorageCell::getParent_storage_code, parent_device_code); + wrapper.in(StringUtils.isNotBlank(parent_device_code), StorageCell::getParent_storage_code, parent_device_code); StorageCell storageCell = storageCellMapper.selectOne(wrapper); final JSONObject device_json = (JSONObject) JSON.toJSON(storageCell); if (!ObjectUtil.isEmpty(device_json)) { @@ -280,6 +291,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { resultJson.put("status", HttpStatus.OK.value()); resultJson.put("message", "操作成功"); resultJson.put("data", backja); + LuceneLogDto luceneLogDto = new LuceneLogDto("queryDevice", String.valueOf(resultJson.get("status")), + jsonObject, String.valueOf(resultJson), "LMS查询设备状态"); + luceneExecuteLogService.interfaceExecuteLog(luceneLogDto); return resultJson; } finally { MDC.remove(log_file_type); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/rest/InstructionController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/rest/InstructionController.java index fa8d507bf..77b8c14df 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/rest/InstructionController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/rest/InstructionController.java @@ -34,31 +34,24 @@ public class InstructionController { @GetMapping @Log("查询指令") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(instructionService.queryAll(whereJson, page), HttpStatus.OK); } @GetMapping("/getAll") @Log("历史查询指令") - - public ResponseEntity get(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(instructionService.getAll(whereJson, page), HttpStatus.OK); } @GetMapping("/unfinish") @Log("查询所有未完成指令") - - public ResponseEntity queryUnFinish() { return new ResponseEntity<>(instructionService.queryAll("instruction_status < 2"), HttpStatus.OK); } @GetMapping("/reload") @Log("数据同步") - - public ResponseEntity reload() { instructionService.reload(); return new ResponseEntity<>(HttpStatus.OK); @@ -66,8 +59,6 @@ public class InstructionController { @PostMapping @Log("新增指令") - - public ResponseEntity create(@Validated @RequestBody Instruction dto) throws Exception { instructionService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); @@ -75,15 +66,12 @@ public class InstructionController { @PutMapping @Log("修改指令") - - public ResponseEntity update(@Validated @RequestBody Instruction dto) { instructionService.update(dto); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Log("删除指令") - @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) throws Exception { instructionService.deleteAll(ids); @@ -91,7 +79,6 @@ public class InstructionController { } @Log("完成指令") - @PostMapping(value = "/finish/{id}") public ResponseEntity finish(@RequestBody String id) throws Exception { instructionService.finish(id); @@ -99,7 +86,6 @@ public class InstructionController { } @Log("取消指令") - @PostMapping(value = "/cancel/{id}") public ResponseEntity cancel(@RequestBody String id) throws Exception { instructionService.cancel(id); @@ -107,7 +93,6 @@ public class InstructionController { } @Log("强制取消指令") - @PostMapping(value = "/forceCancel/{id}") public ResponseEntity forceCancel(@RequestBody String id) throws Exception { instructionService.forceCancel(id); @@ -115,16 +100,13 @@ public class InstructionController { } @Log("导出指令") - @GetMapping(value = "/download") - public void download(HttpServletResponse response, Map whereJson) throws IOException { instructionService.download(instructionService.queryAll(whereJson), response); } @Log("缓存查询指令") - @PostMapping(value = "/findByCodeFromCache/{id}") public ResponseEntity findByCodeFromCache(@RequestBody String id) { return new ResponseEntity<>(instructionService.findByCodeFromCache(id), HttpStatus.OK); @@ -132,21 +114,18 @@ public class InstructionController { @SaIgnore @Log("查询缓存所有指令") - @PostMapping(value = "/findAllInstFromCache") public ResponseEntity findAllInstFromCache() { return new ResponseEntity<>(instructionService.findAllInstFromCache(), HttpStatus.OK); } @Log("查询指定任务的所有指令") - @PostMapping(value = "/queryByTaskId/{taskId}") public ResponseEntity queryByTaskId(@RequestBody String taskId) { return new ResponseEntity<>(instructionService.getByTaskId(taskId), HttpStatus.OK); } @Log("初始化") - @PostMapping(value = "/init/{id}") public ResponseEntity init(@RequestBody String id) throws Exception { instructionService.init(id); @@ -155,8 +134,6 @@ public class InstructionController { @GetMapping("/downloadInstLogging") @Log("导出指令记录") - - public void downloadInstLogging(HttpServletResponse response,@RequestParam Map whereJson) throws IOException { instructionService.downloadInstLogging(instructionService.getInstList(whereJson), response); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 2de58000d..ea19e9757 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -256,6 +256,7 @@ public class InstructionServiceImpl extends CommonServiceImpl insPage = instructionMapper.selectPage(queryPage, wrapper); final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(insPage, InstructionDto.class)); return json; @@ -402,7 +403,6 @@ public class InstructionServiceImpl extends CommonServiceImpl add(@RequestBody JSONObject json) { - return new ResponseEntity<>(limitRegionalService.add(json), HttpStatus.OK); + limitRegionalService.add(json); + return new ResponseEntity<>(HttpStatus.OK); } @@ -56,6 +56,12 @@ public class LimitRegionalController { return new ResponseEntity<>( HttpStatus.OK); } + @GetMapping("selectByRegion") + @Log("查询区域") + public ResponseEntity selectByRegion() { + return new ResponseEntity<>(limitRegionalService.selectByRegion(), HttpStatus.OK); + } + @GetMapping("updateActive") @Log("修改流量限制状态") public ResponseEntity updateStatusById(@RequestParam Map whereJson) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/LimitRegionalService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/LimitRegionalService.java index 35b80d90f..67a6de721 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/LimitRegionalService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/LimitRegionalService.java @@ -1,9 +1,7 @@ package org.nl.acs.limit_regional.server; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.acs.common.base.CommonService; -import org.nl.acs.device.domain.Device; import org.nl.acs.limit_regional.domain.LimitRegional; import org.nl.acs.limit_regional.server.dto.LimitRegionalDto; import org.springframework.data.domain.Pageable; @@ -11,6 +9,7 @@ import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; +import java.util.TreeSet; @Service public interface LimitRegionalService extends CommonService { @@ -36,7 +35,7 @@ public interface LimitRegionalService extends CommonService { * @param json * @return */ - List add(JSONObject json); + void add(JSONObject json); /** @@ -63,4 +62,10 @@ public interface LimitRegionalService extends CommonService { * @param nextRegion */ LimitRegionalDto selectByReging(String startdevice, String nextRegion); + + /** + * 查询区域 + * @return + */ + TreeSet selectByRegion(); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/impl/LimitRegionalServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/impl/LimitRegionalServiceImpl.java index e74b812ba..b4b88e2d2 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/impl/LimitRegionalServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/limit_regional/server/impl/LimitRegionalServiceImpl.java @@ -18,6 +18,7 @@ import org.nl.acs.limit_regional.domain.LimitRegional; import org.nl.acs.limit_regional.server.LimitRegionalService; import org.nl.acs.limit_regional.server.dto.LimitRegionalDto; import org.nl.acs.limit_regional.server.mapper.LimitRegionalMapper; +import org.nl.acs.opc.DeviceAppService; import org.nl.acs.utils.ConvertUtil; import org.nl.acs.utils.PageUtil; import org.nl.common.utils.SecurityUtils; @@ -30,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.*; +import static sun.audio.AudioDevice.device; + @Service @AllArgsConstructor @Slf4j @@ -39,6 +42,9 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl dataList; @@ -74,9 +80,9 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl add(JSONObject json) { + public void add(JSONObject json) { LimitRegional limitRegional = new LimitRegional(); - limitRegional.setId(RandomUtil.randomString(8)); + limitRegional.setId(String.valueOf(RandomUtil.randomInt(8))); limitRegional.setStart_regional(json.getString("start_regional")); limitRegional.setNext_regional(json.getString("next_regional")); limitRegional.setStart_exclude_device(json.getString("startExcludeDevice")); @@ -91,7 +97,6 @@ public class LimitRegionalServiceImpl extends CommonServiceImpl selectByRegion() { + TreeSet integers = deviceAppService.selectRegion(); + integers.remove(0); + return integers; + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLog.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLog.java deleted file mode 100644 index b6a684d60..000000000 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLog.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.nl.acs.log; - -import java.lang.annotation.*; - -/** - * @author: lyd - * @description: 自定义日志注解, 用作LOKI日志分类 - * @Date: 2022/10/10 - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD}) -@Documented -public @interface LokiLog { - LokiLogType type() default LokiLogType.DEFAULT; -} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLogAspect.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLogAspect.java deleted file mode 100644 index 1fac8ab79..000000000 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLogAspect.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.nl.acs.log; - -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.MDC; -import org.springframework.stereotype.Component; - -import java.lang.reflect.Method; - - -/** - * @author: lyd - * @description: 自定义日志切面:https://cloud.tencent.com/developer/article/1655923 - * @Date: 2022/10/10 - */ -@Aspect -@Slf4j -@Component -public class LokiLogAspect { - /** - * 切到所有OperatorLog注解修饰的方法 - */ - @Pointcut("@annotation(org.nl.acs.log.LokiLog)") - public void operatorLog() { - // 空方法 - } - - /** - * 利用@Around环绕增强 - * - * @return - */ - @Around("operatorLog()") - public Object around(ProceedingJoinPoint pjp) throws Throwable { - - Signature signature = pjp.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - LokiLog lokiLog = method.getAnnotation(LokiLog.class); - // 获取描述信息 - LokiLogType logType = lokiLog.type(); - - MDC.put("log_file_type", logType.getDesc()); - log.info("输入参数:" + JSONObject.toJSONString(pjp.getArgs())); - - Object proceed = pjp.proceed(); - - log.info("返回参数:" + JSONObject.toJSONString(proceed)); - MDC.remove("log_file_type"); - return proceed; - - } -} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLogType.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLogType.java deleted file mode 100644 index a20940bf0..000000000 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/log/LokiLogType.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.nl.acs.log; - -/** - * @author: lyd - * @description: - * @Date: 2022/10/11 - */ -public enum LokiLogType { - // 默认 - DEFAULT("默认"), - // AGV接口日志 - AGV("AGV接口日志"), - // ACS请求LMS - ACS_TO_LMS("ACS请求LMS"), - // ACS请求立库 - ACS_TO_LK("ACS请求立库"); - - private String desc; - - LokiLogType(String desc) { - this.desc = desc; - } - - public String getDesc() { - return desc; - } -} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppService.java index c912d0f5b..bc74092b9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppService.java @@ -7,6 +7,7 @@ import org.nl.acs.device_driver.LinewayDeviceDriver; import java.util.List; import java.util.Map; +import java.util.TreeSet; /** * @author 20220102CG\noblelift @@ -123,4 +124,8 @@ public interface DeviceAppService { */ void addDevice(String deviceCode); + /** + * 查找设备区域 + */ + TreeSet selectRegion(); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java index 1077a5976..55fd5088c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceAppServiceImpl.java @@ -400,4 +400,13 @@ public class DeviceAppServiceImpl implements DeviceAppService, ApplicationAutoIn } } + @Override + public TreeSet selectRegion() { + TreeSet set = new TreeSet<>(); + for (Device device : devices) { + set.add(Integer.parseInt(StrUtil.isEmpty(device.getRegion()) ? "0" : device.getRegion())); + } + return set; + } + } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java index 8dcd2e507..0629b1ecb 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java @@ -5,8 +5,6 @@ import org.jinterop.dcom.common.JIException; import org.nl.acs.auto.initial.ApplicationAutoInitial; import org.nl.acs.device_driver.driver.ItemValue; import org.nl.acs.opc.service.dto.OpcServerManageDto; - -import org.nl.common.exception.BadRequestException; import org.openscada.opc.lib.common.NotConnectedException; import org.openscada.opc.lib.da.Group; import org.openscada.opc.lib.da.Server; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java index f24cec9fa..c8248c93e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/OpcUtl.java @@ -24,8 +24,6 @@ import java.util.concurrent.Executors; public class OpcUtl { private static int timeout = 1 * 60 * 1000; private static String key = "rpc.socketTimeout"; - public static int successNum = 0; - public static int errNum = 0; static { checkTimeout(); @@ -226,15 +224,9 @@ public class OpcUtl { server = new Server(getConnection(host, clsid, user, password, domain), Executors.newSingleThreadScheduledExecutor()); server.connect(); - successNum++; return server; } catch (Exception e) { - errNum++; throw new BadRequestException(e.getMessage()); - } finally { - System.out.println("successNum:" + successNum); - System.out.println("errNum:" + errNum); - System.out.println(11); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/rest/OpcController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/rest/OpcController.java index f62e83ce0..fb4a40e39 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/rest/OpcController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/rest/OpcController.java @@ -1,23 +1,19 @@ package org.nl.acs.opc.rest; import com.alibaba.fastjson.JSONObject; -import org.nl.common.logging.annotation.Log; -import org.nl.acs.opc.domain.Opc; +import lombok.RequiredArgsConstructor; import org.nl.acs.opc.service.OpcService; import org.nl.acs.opc.service.dto.OpcDto; -import org.nl.acs.opc.service.dto.OpcQueryParam; +import org.nl.common.logging.annotation.Log; import org.springframework.data.domain.Pageable; -import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; - import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; -import java.util.Set; /** * @author jiaolm diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/OpcPlcService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/OpcPlcService.java index 280f346ba..8cdad9d01 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/OpcPlcService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/OpcPlcService.java @@ -1,8 +1,7 @@ package org.nl.acs.plc.service; -import com.alibaba.fastjson.JSONArray; -import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.CommonService; +import org.nl.acs.common.base.PageInfo; import org.nl.acs.opc.domain.OpcPlc; import org.nl.acs.opc.service.dto.OpcPlcDto; import org.nl.acs.opc.service.dto.OpcPlcQueryParam; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/impl/OpcPlcServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/impl/OpcPlcServiceImpl.java index 857b03171..d969ae14b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/impl/OpcPlcServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/plc/service/impl/OpcPlcServiceImpl.java @@ -1,7 +1,5 @@ package org.nl.acs.plc.service.impl; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; @@ -9,24 +7,21 @@ import org.nl.acs.common.base.CommonFinalParam; import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.QueryHelpMybatisPlus; import org.nl.acs.common.base.impl.CommonServiceImpl; -import org.nl.acs.utils.ConvertUtil; -import org.nl.acs.utils.PageUtil; import org.nl.acs.opc.domain.OpcPlc; -import org.nl.acs.plc.service.OpcPlcService; import org.nl.acs.opc.service.dto.OpcPlcDto; import org.nl.acs.opc.service.dto.OpcPlcQueryParam; import org.nl.acs.opc.service.mapper.OpcPlcMapper; -import org.nl.system.service.logicflow.dao.StageImage; +import org.nl.acs.plc.service.OpcPlcService; +import org.nl.acs.utils.ConvertUtil; +import org.nl.acs.utils.PageUtil; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -// 默认不使用缓存 -//import org.springframework.cache.annotation.CacheConfig; -//import org.springframework.cache.annotation.CacheEvict; -//import org.springframework.cache.annotation.Cacheable; -import org.springframework.data.domain.Pageable; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * @author jiaolm diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLineController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLineController.java index 7a1626272..f45ca7b1b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLineController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLineController.java @@ -33,14 +33,12 @@ public class RouteLineController { @GetMapping @Log("查询路由路线") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(routeLineService.queryAll(whereJson, page), HttpStatus.OK); } @PostMapping @Log("新增路由路线") - //@PreAuthorize("@el.check('routeLine:add')") public ResponseEntity create(@RequestBody Map data) throws SQLException { routeLineService.create(data); @@ -49,8 +47,6 @@ public class RouteLineController { @GetMapping("/reload") @Log("数据同步") - - public ResponseEntity reload() throws SQLException { routeLineService.reload(); return new ResponseEntity<>(HttpStatus.OK); @@ -59,7 +55,6 @@ public class RouteLineController { @PutMapping @Log("修改路由路线") - //@PreAuthorize("@el.check('routeLine:edit')") public ResponseEntity update(@Validated @RequestBody RouteLineDto dto) throws SQLException { routeLineService.update(dto); @@ -68,7 +63,6 @@ public class RouteLineController { @PutMapping("/enabled") @Log("启用禁用路由路线") - //@PreAuthorize("@el.check('routeLine:edit')") public ResponseEntity enabled(@Validated @RequestBody RouteLineDto dto) throws SQLException { routeLineService.enabled(dto.getLine_uuid(), dto.getIs_active()); @@ -77,7 +71,6 @@ public class RouteLineController { @Log("删除路由路线") - //@PreAuthorize("@el.check('routeLine:del')") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) throws SQLException { @@ -86,7 +79,6 @@ public class RouteLineController { } @Log("导出路由路线") - @GetMapping(value = "/download") //@PreAuthorize("@el.check('routeLine:list')") public void download(HttpServletResponse response, Map whereJson) throws IOException { @@ -95,7 +87,6 @@ public class RouteLineController { @Log("查询最优路由路线") - @PostMapping(value = "/getShortPathLines") public ResponseEntity getShortPathLines(String device_code, String next_device_code, String route_plan_code) { return new ResponseEntity<>(routeLineService.getShortPathLines(device_code, next_device_code, route_plan_code), HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLocController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLocController.java index 10546ded2..78f7b6bb7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLocController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RouteLocController.java @@ -32,14 +32,12 @@ public class RouteLocController { @GetMapping @Log("查询路由坐标") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(routeLocService.queryAll(whereJson, page), HttpStatus.OK); } @PostMapping @Log("新增路由坐标") - //@PreAuthorize("@el.check('routeLoc:add')") public ResponseEntity create(@Validated @RequestBody RouteLocDto dto) { routeLocService.create(dto); @@ -48,7 +46,6 @@ public class RouteLocController { @PutMapping @Log("修改路由坐标") - //@PreAuthorize("@el.check('routeLoc:edit')") public ResponseEntity update(@Validated @RequestBody RouteLocDto dto) { routeLocService.update(dto); @@ -56,7 +53,6 @@ public class RouteLocController { } @Log("删除路由坐标") - //@PreAuthorize("@el.check('routeLoc:del')") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { @@ -65,7 +61,6 @@ public class RouteLocController { } @Log("导出路由坐标") - @GetMapping(value = "/download") //@PreAuthorize("@el.check('routeLoc:list')") public void download(HttpServletResponse response, Map whereJson) throws IOException { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RoutePlanController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RoutePlanController.java index f25e84866..a152f83fc 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RoutePlanController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/rest/RoutePlanController.java @@ -32,14 +32,12 @@ public class RoutePlanController { @GetMapping @Log("查询路由方案") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(routePlanService.queryAll(whereJson, page), HttpStatus.OK); } @PostMapping @Log("新增路由方案") - //@PreAuthorize("@el.check('routePlan:add')") public ResponseEntity create(@Validated @RequestBody RoutePlanDto dto) { routePlanService.create(dto); @@ -48,7 +46,6 @@ public class RoutePlanController { @PutMapping @Log("修改路由方案") - //@PreAuthorize("@el.check('routePlan:edit')") public ResponseEntity update(@Validated @RequestBody RoutePlanDto dto) { routePlanService.update(dto); @@ -56,7 +53,6 @@ public class RoutePlanController { } @Log("删除路由方案") - //@PreAuthorize("@el.check('routePlan:del')") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { @@ -65,7 +61,6 @@ public class RoutePlanController { } @Log("导出路由方案") - @GetMapping(value = "/download") //@PreAuthorize("@el.check('routePlan:list')") public void download(HttpServletResponse response, Map whereJson) throws IOException { @@ -74,7 +69,6 @@ public class RoutePlanController { @GetMapping("/selectList") @Log("下拉选路由方案") - //@PreAuthorize("@el.check('routePlan:list')") public ResponseEntity selectList() { return new ResponseEntity<>(routePlanService.selectList(), HttpStatus.OK); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskController.java index 72873f1fb..e6f3ef178 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskController.java @@ -1,26 +1,20 @@ package org.nl.acs.task.rest; -import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaIgnore; -import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; -import org.nl.common.logging.annotation.Log; -import org.nl.acs.task.domain.Task; +import lombok.RequiredArgsConstructor; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; -import org.nl.acs.task.service.dto.TaskQueryParam; +import org.nl.common.logging.annotation.Log; import org.springframework.data.domain.Pageable; -import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; - import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; -import java.util.Set; /** * @author jiaolm @@ -36,16 +30,13 @@ public class TaskController { @GetMapping @Log("查询任务") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(taskService.queryAll(whereJson, page), HttpStatus.OK); } @GetMapping("/reload") @Log("数据同步") - @SaIgnore - public ResponseEntity reload() { taskService.reload(); return new ResponseEntity<>(HttpStatus.OK); @@ -53,8 +44,6 @@ public class TaskController { @GetMapping("/getAll") @Log("历史查询任务") - - public ResponseEntity get(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(taskService.getAll(whereJson, page), HttpStatus.OK); } @@ -69,17 +58,14 @@ public class TaskController { @PostMapping(value = "/adds") @Log("常规任务保存") - //@PreAuthorize("@el.check('task:add')") public ResponseEntity ordinaryTaskCreate(@RequestBody JSONObject json) throws Exception { - taskService.ordinaryTaskCreate(json); return new ResponseEntity<>(HttpStatus.CREATED); } @PostMapping(value = "/addes") @Log("特殊任务保存") - public ResponseEntity specialTaskCreate(@RequestBody JSONObject json) throws Exception { taskService.specialTaskCreate(json); return new ResponseEntity<>(HttpStatus.CREATED); @@ -87,7 +73,6 @@ public class TaskController { @PutMapping @Log("修改任务") - //@PreAuthorize("@el.check('task:edit')") public ResponseEntity update(@Validated @RequestBody TaskDto dto) { taskService.update(dto); @@ -95,7 +80,6 @@ public class TaskController { } @Log("删除任务") - //@PreAuthorize("@el.check('task:del')") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) throws Exception { @@ -104,7 +88,6 @@ public class TaskController { } @Log("完成任务") - @PostMapping(value = "/finish/{id}") public ResponseEntity finish(@RequestBody String id) { taskService.finish(id); @@ -112,7 +95,6 @@ public class TaskController { } @Log("取消任务") - @PostMapping(value = "/cancel/{id}") public ResponseEntity cancel(@RequestBody String id) throws Exception { taskService.cancel(id); @@ -120,7 +102,6 @@ public class TaskController { } @Log("手动创建指令") - @PostMapping(value = "/createInst/{id}") public ResponseEntity createInst(@RequestBody String id) throws Exception { taskService.createInst(id); @@ -128,15 +109,12 @@ public class TaskController { } @Log("导出任务") - @GetMapping(value = "/download") - public void download(HttpServletResponse response, Map whereJson) throws IOException { taskService.download(taskService.queryAll(whereJson), response); } @Log("一体机触发任务") - @PostMapping("/createTaskByClick") //@PreAuthorize("@el.check('task:add')") public ResponseEntity createTaskByClick(@RequestBody JSONObject json) { @@ -146,7 +124,6 @@ public class TaskController { @SaIgnore @Log("查询缓存所有任务") - @PostMapping(value = "/findAllTaskFromCache") public ResponseEntity findAllTaskFromCache() { return new ResponseEntity<>(taskService.findAllTaskFromCache(), HttpStatus.OK); @@ -154,8 +131,6 @@ public class TaskController { @GetMapping("/downloadTaskTreeLogging") @Log("导出任务树形记录") - - public void downloadTaskTreeLogging(HttpServletResponse response,@RequestParam Map whereJson) throws IOException { taskService.downloadTaskTreeLogging(taskService.getTaskAndInst(whereJson), response); } @@ -163,8 +138,6 @@ public class TaskController { @GetMapping("/downloadTaskLogging") @Log("导出任务树形记录") - - public void downloadTaskLogging(HttpServletResponse response,@RequestParam Map whereJson) throws IOException { taskService.downloadTaskLogging(taskService.getTaskList(whereJson), response); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskFeedbackController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskFeedbackController.java index 0e1eb61f8..785d0afda 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskFeedbackController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/rest/TaskFeedbackController.java @@ -1,22 +1,17 @@ package org.nl.acs.task.rest; - import lombok.RequiredArgsConstructor; import org.nl.acs.task.service.TaskFeedbackService; -import org.nl.acs.task.service.dto.TaskFeedbackDto; -import org.nl.acs.task.service.dto.TaskFeedbackQueryParam; import org.nl.common.logging.annotation.Log; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; -import java.util.Set; /** * @author jiaolm diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java index d29f850d9..f53e36461 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java @@ -48,6 +48,13 @@ public interface TaskService extends CommonService { */ Task getById(String id); + /** + * 根据设备号和任务状态查询 + * @param device_code + * @return + */ + List queryTaskByDeviceCodeAndStatus2(String device_code); + /** * 根据ID查询 * @@ -487,4 +494,12 @@ public interface TaskService extends CommonService { * @return 指令终点 B */ String queryAssignedByDeviceCode(String device_code, String task_nextDeice_code); + + /** + * 根据编号查询 + * + * @param task_code + * @return AcsTask + */ + TaskDto findByTaskCode(String task_code); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 9cb91930a..b459750a0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -44,6 +44,7 @@ import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.route.service.mapper.RoutePlanMapper; import org.nl.acs.task.enums.TaskStatusEnum; +import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.dto.TaskFeedbackDto; import org.nl.acs.common.base.PageInfo; @@ -133,6 +134,33 @@ public class TaskServiceImpl extends CommonServiceImpl impleme return taskMapper.selectById(id); } + @Override + public List queryTaskByDeviceCodeAndStatus2(String device_code) { + List list = new ArrayList<>(); + Iterator iterator = tasks.iterator(); + while (iterator.hasNext()) { + TaskDto task = iterator.next(); + if (task.getStart_device_code().equals(device_code) + && StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex())) { + Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); + if (ObjectUtil.isNotEmpty(instruction)) { + list.add(task); + } + } else { + if (StrUtil.equals(task.getTask_type(), TaskTypeEnum.Inner_Truss_Task.getIndex()) && StrUtil.isNotEmpty(task.getPut_device_code())) { + Instruction instruction = instructionService.findByDeviceCodeFromCache(task.getNext_device_code()); + if (ObjectUtil.isNotEmpty(instruction)) { + if (StrUtil.equals(instruction.getStart_device_code(), device_code)) { + list.add(task); + } + } + } + } + } + return list; + } + + @Override public TaskDto findById(String id) { return ConvertUtil.convert(getById(id), TaskDto.class); @@ -209,6 +237,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme String status = (String) whereJson.get("status"); String point_code = (String) whereJson.get("point_code"); String is_over = (String) whereJson.get("is_over"); + String task_type = (String) whereJson.get("task_type"); IPage queryPage = PageUtil.toMybatisPage(page); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -227,6 +256,9 @@ public class TaskServiceImpl extends CommonServiceImpl impleme if (!StrUtil.isEmpty(point_code)) { wrapper.and(task -> task.like(Task::getStart_point_code, point_code).or().like(Task::getNext_point_code, point_code)); } + if(StrUtil.isNotEmpty(task_type)){ + wrapper.eq(Task::getTask_type, task_type); + } if (!StrUtil.isEmpty(is_over)) { if (StrUtil.equals(is_over, CommonFinalParam.ONE)) { wrapper.ge(Task::getTask_status, TaskStatusEnum.FINISHED.getIndex()); @@ -334,6 +366,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme if (!StrUtil.isEmpty(create_time) && !StrUtil.isEmpty(end_time)) { wrapper.between(Task::getCreate_time, create_time, end_time); } + wrapper.orderByDesc(Task::getCreate_time); IPage taskPage = taskMapper.selectPage(queryPage, wrapper); final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(taskPage, TaskDto.class)); JSONArray array = json.getJSONArray("content"); @@ -895,6 +928,28 @@ public class TaskServiceImpl extends CommonServiceImpl impleme instdto.setNext_point_code2(next_point_code2); instdto.setAgv_system_type(agv_system_type); instdto.setAgv_inst_type(CommonFinalParam.ONE); + + if (!StrUtil.equals(agv_system_type, "1")) { + // task_type + // 1、生箔; Itype=1:取空,取满,放空,放满; + // 2、分切 Itype=3取满、取空、放满、放空; + // 3、普通任务 Itype=2:取货、放货; + // 4、叉车任务 + // 5、输送任务 + // 6、行架 + // 7、立库 + if (StrUtil.equals(task_type, "1")) { + instdto.setAgv_inst_type("1"); + } else if (StrUtil.equals(task_type, "3")) { + instdto.setAgv_inst_type("2"); + } else if (StrUtil.equals(task_type, "2")) { + instdto.setAgv_inst_type("3"); + } else if (StrUtil.equals(task_type, "8")) { + instdto.setAgv_inst_type("2"); + } + } else { + instdto.setAgv_inst_type("4"); + } instructionservice.create2(instdto); acsTask.setTask_status(CommonFinalParam.ONE); @@ -1430,6 +1485,20 @@ public class TaskServiceImpl extends CommonServiceImpl impleme return null; } + @Override + public TaskDto findByTaskCode(String task_code) { + + List list = new ArrayList<>(); + Iterator iterator = tasks.iterator(); + while (iterator.hasNext()) { + TaskDto task = iterator.next(); + if (StrUtil.equals(task.getTask_code(), task_code)) { + return task; + } + } + return null; + } + /** * 把多个字符串拼接的inst_nextDevice_code解析成集合 * diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/udw/service/impl/UdwManagerServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/udw/service/impl/UdwManagerServiceImpl.java index 6858976af..c48f89279 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/udw/service/impl/UdwManagerServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/udw/service/impl/UdwManagerServiceImpl.java @@ -2,7 +2,6 @@ package org.nl.acs.udw.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; -import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.udw.UnifiedData; import org.nl.acs.udw.UnifiedDataAccessorFactory; import org.nl.acs.udw.dto.UdwDto; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/annotation/Log.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/annotation/Log.java index 4d8105bd8..afe7f42a2 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/annotation/Log.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/annotation/Log.java @@ -15,6 +15,8 @@ */ package org.nl.common.logging.annotation; +import org.nl.acs.enums.InterfaceLogType; + import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -28,4 +30,34 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) public @interface Log { String value() default ""; + + + /** + * 是否打印到日志文件 + * + * @return + */ + boolean isPrintToLogFile() default false; + + + /** + * 是否插入操作日志表 + * + * @return + */ + boolean isAddLogTable() default true; + + /** + * 是否接口日志 + * + * @return + */ + boolean isInterfaceLog() default false; + + /** + * 接口日志类型 + * + * @return + */ + InterfaceLogType interfaceLogType() default InterfaceLogType.DEFAULT; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/aspect/LogAspect.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/aspect/LogAspect.java index 297b3dd70..228e6c057 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/aspect/LogAspect.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/common/logging/aspect/LogAspect.java @@ -12,12 +12,14 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - *//* + */ package org.nl.common.logging.aspect; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; @@ -31,6 +33,10 @@ import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.StringUtils; import org.nl.common.utils.ThrowableUtil; import org.nl.common.logging.domain.Log; +import org.nl.config.IdUtil; +import org.nl.system.service.logging.ISysLogService; +import org.nl.system.service.logging.dao.SysLog; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -41,79 +47,67 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; import java.lang.reflect.Parameter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; -*/ -/** - * @author Zheng Jie - * @date 2018-11-24 - *//* @Component @Aspect @Slf4j public class LogAspect { - private final LogService logService; + @Autowired + private ISysLogService logService; ThreadLocal currentTime = new ThreadLocal<>(); - public LogAspect(LogService logService) { + public LogAspect(ISysLogService logService) { this.logService = logService; } - */ -/** - * 配置切入点 - *//* + @Pointcut("@annotation(org.nl.common.logging.annotation.Log)") public void logPointcut() { // 该方法无方法体,主要为了让同类中其他方法使用此切入点 } - */ -/** - * 配置环绕通知,使用在方法logPointcut()上注册的切入点 - * - * @param joinPoint join point for advice - *//* - @Around("logPointcut()") public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = attributes.getRequest(); - HttpServletResponse response = attributes.getResponse(); -// HttpServletRequest request = RequestHolder.getHttpServletRequest(); - - + String trackId = UUID.randomUUID().toString(); MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); // 方法路径 String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; - String params=getParameter(method, joinPoint.getArgs()); + String params = getParameter(method, joinPoint.getArgs()); - log.info("请求uri:{}", request.getRequestURI()); - log.info("请求方法:{}",methodName); - log.info("请求方法参数:{}",params); + org.nl.common.logging.annotation.Log logInfo = method.getAnnotation(org.nl.common.logging.annotation.Log.class); + //是否输出到日志文件 + if (logInfo.isPrintToLogFile()) { + log.info("track_id:{},请求方法:{},请求方法参数:{}", trackId, methodName, params); + } + HttpServletRequest request = RequestHolder.getHttpServletRequest(); + String requestIp = StringUtils.getIp(request); Object result; - currentTime.set(System.currentTimeMillis()); - result = joinPoint.proceed(); - Log log = new Log("INFO",System.currentTimeMillis() - currentTime.get()); - currentTime.remove(); - - logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request),joinPoint, log); + long startTime = System.currentTimeMillis(); + try { + result = joinPoint.proceed(); + //是否把日志存到日志表 + if (logInfo.isAddLogTable()) { + SysLog log = new SysLog("INFO", System.currentTimeMillis() - startTime); + logService.save(getUsername(), StringUtils.getBrowser(request), requestIp, joinPoint, log); + } + } catch (Exception ex) { + log.error("track_id:{},error:{}", trackId, ex.getMessage()); + SysLog log = new SysLog("ERROR", System.currentTimeMillis() - startTime); + log.setException_detail(ThrowableUtil.getStackTrace(ex).getBytes()); + logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log); + throw ex; + } return result; } - */ -/** - * 根据方法和传入的参数获取请求参数 - *//* + private String getParameter(Method method, Object[] args) { List argList = new ArrayList<>(); @@ -142,19 +136,13 @@ public class LogAspect { return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); } - */ -/** - * 配置异常通知 - * - * @param joinPoint join point for advice - * @param e exception - *//* + @AfterThrowing(pointcut = "logPointcut()", throwing = "e") public void logAfterThrowing(JoinPoint joinPoint, Throwable e) { - Log log = new Log("ERROR",System.currentTimeMillis() - currentTime.get()); + SysLog log = new SysLog("ERROR",System.currentTimeMillis() - currentTime.get()); currentTime.remove(); - log.setExceptionDetail(ThrowableUtil.getStackTrace(e).getBytes()); + log.setException_detail(ThrowableUtil.getStackTrace(e).getBytes()); HttpServletRequest request = RequestHolder.getHttpServletRequest(); logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint)joinPoint, log); } @@ -167,4 +155,3 @@ public class LogAspect { } } } -*/ diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java index 734537b8d..9e9bdcd1d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/config/LuceneAppender.java @@ -79,7 +79,7 @@ public class LuceneAppender extends AppenderBase { //向document对象中添加域。 Map mdcPropertyMap = event.getMDCPropertyMap(); String traceId = mdcPropertyMap.get("traceId"); - System.out.println("---追踪号---"+traceId); +// System.out.println("---追踪号---"+traceId); if (ObjectUtil.isNotEmpty(traceId)) { document.add(new StringField("trace_id", traceId, Field.Store.YES)); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java index cad7e91ca..560ad4b0c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/dto/LuceneLogDto.java @@ -83,6 +83,17 @@ public class LuceneLogDto { + home; } + public LuceneLogDto(final String method, final String status, + final String requestparam, final String responseparam, final String content) { + super(); + this.content = content; + this.method = method; + this.status_code = status; + this.requestparam = requestparam; + this.responseparam = responseparam; + this.content = content; + } + public LuceneLogDto(final String device_code, final String remark) { super(); this.device_code = device_code; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java index d206ae5a3..a78b89894 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java @@ -10,6 +10,7 @@ import org.nl.common.logging.annotation.Log; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -39,7 +40,7 @@ class SysParamController { @Log("查询系统参数") //@SaCheckPermission("param:list") - public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ return new ResponseEntity<>(TableDataInfo.build(paramService.queryPage(whereJson, page)), HttpStatus.OK); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/ISysLogService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/ISysLogService.java index 5ae003c7f..458f00919 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/ISysLogService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/ISysLogService.java @@ -2,8 +2,10 @@ package org.nl.system.service.logging; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.aspectj.lang.ProceedingJoinPoint; import org.nl.common.domain.query.PageQuery; import org.nl.system.service.logging.dao.SysLog; +import org.springframework.scheduling.annotation.Async; import java.util.Map; @@ -32,6 +34,18 @@ public interface ISysLogService extends IService { */ Object findByErrDetail(String id); + + /** + * 保存日志数据 + * @param username 用户 + * @param browser 浏览器 + * @param ip 请求IP + * @param joinPoint / + * @param log 日志实体 + */ + @Async + void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog log); + /** * 删除所有异常日志 */ diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java index 60673419a..8bdbe11d4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/dao/SysLog.java @@ -6,6 +6,7 @@ import java.time.LocalDateTime; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; /** *

@@ -18,6 +19,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) @TableName("sys_log") +@NoArgsConstructor public class SysLog implements Serializable { private static final long serialVersionUID = 1L; @@ -51,5 +53,8 @@ public class SysLog implements Serializable { private String create_time; - + public SysLog(String logType, Long time) { + this.log_type = logType; + this.time = time; + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java index 9042e2fb3..283604011 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java @@ -1,20 +1,36 @@ package org.nl.system.service.logging.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.reflect.MethodSignature; import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.common.utils.StringUtils; import org.nl.common.utils.ValidationUtil; import org.nl.system.service.logging.ISysLogService; import org.nl.system.service.logging.dao.SysLog; import org.nl.system.service.logging.dao.mapper.SysLogMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import java.lang.reflect.Method; +import java.lang.reflect.Parameter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -62,6 +78,62 @@ public class SysLogServiceImpl extends ServiceImpl impleme return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes())); } + @Override + @Transactional(rollbackFor = Exception.class) + public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog logDto) { + + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + Log aopLog = method.getAnnotation(Log.class); + + // 方法路径 + String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; + + // 描述 + if (logDto != null) { + logDto.setDescription(aopLog.value()); + } + assert logDto != null; + logDto.setRequest_ip(ip); + logDto.setLog_id(RandomUtil.randomString(5)); + logDto.setAddress(StringUtils.getCityInfo(logDto.getRequest_ip())); + logDto.setMethod(methodName); + logDto.setUsername(username); + logDto.setParams(getParameter(method, joinPoint.getArgs())); + logDto.setBrowser(browser); + long currentTimeMillis = System.currentTimeMillis(); + String dateString = DateUtil.date(currentTimeMillis).toString(); + logDto.setCreate_time(dateString); + logMapper.insert(logDto); + } + + private String getParameter(Method method, Object[] args) { + List argList = new ArrayList<>(); + Parameter[] parameters = method.getParameters(); + for (int i = 0; i < parameters.length; i++) { + //将RequestBody注解修饰的参数作为请求参数 + RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); + if (requestBody != null) { + argList.add(args[i]); + } + //将RequestParam注解修饰的参数作为请求参数 + RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); + if (requestParam != null) { + Map map = new HashMap<>(); + String key = parameters[i].getName(); + if (!StrUtil.isEmpty(requestParam.value())) { + key = requestParam.value(); + } + map.put(key, args[i]); + argList.add(map); + } + } + if (argList.size() == 0) { + return ""; + } + return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); + } + @Override public void delAllByError() { logMapper.delete(new LambdaQueryWrapper().eq(SysLog::getLog_type, "ERROR")); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java index 8a2a61a02..9e9107d1b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java @@ -1,9 +1,11 @@ package org.nl.system.service.param; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.system.service.param.dao.Param; +import org.springframework.data.domain.Pageable; import java.util.List; import java.util.Map; @@ -25,7 +27,7 @@ public interface ISysParamService extends IService { * @param page 分页信息 * @return */ - Page queryPage(Map whereJson, PageQuery page); + IPage queryPage(Map whereJson, Pageable page); /** * 创建参数 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java index 87d07c370..d77be167e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java @@ -5,9 +5,12 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.task.domain.Task; +import org.nl.acs.utils.PageUtil; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; @@ -17,6 +20,7 @@ import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.dao.mapper.SysParamMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,11 +43,12 @@ public class SysParamServiceImpl extends ServiceImpl impl private SysParamMapper paramMapper; @Override - public Page queryPage(Map whereJson, PageQuery page) { + public IPage queryPage(Map whereJson, Pageable page) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderBy(true, true, "create_time"); - Page paramPage = paramMapper.selectPage(page.build(), queryWrapper); - return paramPage; + IPage queryPage = PageUtil.toMybatisPage(page); + IPage paramIPage = paramMapper.selectPage(queryPage, queryWrapper); + return paramIPage; } @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/DeleteDeviceErrorLog.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/DeleteDeviceErrorLog.java index 93949becd..b783d0ae3 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/DeleteDeviceErrorLog.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/DeleteDeviceErrorLog.java @@ -4,6 +4,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; import org.nl.acs.history.domain.AcsDeviceErrorLog; import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl; +import org.nl.acs.instruction.domain.InstructionMybatis; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.task.domain.Task; +import org.nl.acs.task.service.TaskService; +import org.nl.system.service.logging.ISysLogService; +import org.nl.system.service.logging.dao.SysLog; +import org.nl.system.service.param.ISysParamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -19,11 +26,37 @@ public class DeleteDeviceErrorLog { @Autowired private DeviceErrorLogServiceImpl errorLogServer; + @Autowired + private TaskService taskService; + + @Autowired + private InstructionService instructionService; + + @Autowired + private ISysLogService sysLogService; + + @Autowired + private ISysParamService paramService; + public void run(){ - log.info("开始删除设备报警记录"); + + int days = Integer.parseInt(paramService.findByCode("logs_day").getValue()); + log.info("开始自动清理日志"); errorLogServer.remove(Wrappers.lambdaQuery(AcsDeviceErrorLog.class) - .lt(AcsDeviceErrorLog::getError_time, LocalDateTime.now().minusDays(15))); + .lt(AcsDeviceErrorLog::getError_time, LocalDateTime.now().minusDays(days))); log.info("已将设备报警记录中超过十五天的删除成功"); + + taskService.remove(Wrappers.lambdaQuery(Task.class) + .lt(Task::getCreate_time, LocalDateTime.now().minusDays(days))); + log.info("已将任务记录中超过三十天的删除成功"); + + instructionService.remove(Wrappers.lambdaQuery(InstructionMybatis.class) + .lt(InstructionMybatis::getCreate_time, LocalDateTime.now().minusDays(days))); + log.info("已将指令记录中超过三十天的删除成功"); + + sysLogService.remove(Wrappers.lambdaQuery(SysLog.class) + .lt(SysLog::getCreate_time, LocalDateTime.now().minusDays(days))); + log.info("已将日志记录中超过三十天的删除成功"); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java index f450af135..aa1154673 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; +import org.nl.acs.common.base.CommonFinalParam; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; @@ -140,8 +141,11 @@ public class SysRoleServiceImpl extends ServiceImpl impl public List getPermissionList(JSONObject userDto) { List permission = new LinkedList<>(); // 查看是否为管理员 - permission.add("admin"); - permission.addAll(sysMenuMapper.getPermissionByUserId(userDto.getString("userId"))); + // 是管理员 + if (userDto.getBooleanValue("is_admin")) { + permission.add("admin"); + } + permission.addAll(sysMenuMapper.getPermissionByUserId(userDto.getString("user_id"))); return permission; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index b335b9386..ae420fba8 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -10,6 +10,7 @@ spring: driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:stand_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true +# url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} # password: ${DB_PWD:Root.123456} password: ${DB_PWD:p@ssw0rd} diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index e15810b10..5e8238e7f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -14,9 +14,6 @@ https://juejin.cn/post/6844903775631572999 - - - diff --git a/acs2/nladmin-ui/package.json b/acs2/nladmin-ui/package.json index 4a758ddde..4e7289587 100644 --- a/acs2/nladmin-ui/package.json +++ b/acs2/nladmin-ui/package.json @@ -59,6 +59,7 @@ "mavon-editor": "^2.9.0", "normalize.css": "7.0.0", "nprogress": "0.2.0", + "particles.js": "^2.0.0", "path-to-regexp": "2.4.0", "qrcodejs2": "0.0.2", "qs": "^6.9.1", @@ -123,6 +124,7 @@ "serve-static": "^1.13.2", "svg-sprite-loader": "4.1.3", "svgo": "1.2.0", + "vue-particles": "^1.0.9", "vue-template-compiler": "2.6.10" }, "engines": { diff --git a/acs2/nladmin-ui/src/App.vue b/acs2/nladmin-ui/src/App.vue index 583814934..0bbe067db 100644 --- a/acs2/nladmin-ui/src/App.vue +++ b/acs2/nladmin-ui/src/App.vue @@ -34,3 +34,4 @@ export default { } } + diff --git a/acs2/nladmin-ui/src/api/acs/regional/acsRegional.js b/acs2/nladmin-ui/src/api/acs/regional/acsRegional.js index 23da64ade..a9c4e9609 100644 --- a/acs2/nladmin-ui/src/api/acs/regional/acsRegional.js +++ b/acs2/nladmin-ui/src/api/acs/regional/acsRegional.js @@ -38,4 +38,11 @@ export function updateOn(id, is_active) { }) } -export default { add, edit, del, updateOn, reload } +export function deviceByRegion() { + return request({ + url: '/api/acsRegional/selectByRegion', + method: 'get' + }) +} + +export default { add, edit, del, updateOn, reload, deviceByRegion } diff --git a/acs2/nladmin-ui/src/i18n/langs/menu/en.js b/acs2/nladmin-ui/src/i18n/langs/menu/en.js index 73b924ced..cf3e4a73d 100644 --- a/acs2/nladmin-ui/src/i18n/langs/menu/en.js +++ b/acs2/nladmin-ui/src/i18n/langs/menu/en.js @@ -18,7 +18,8 @@ export default { 'outside_chain': 'Out Chain', 'cache': 'Cache', 'visible': 'Visible', - 'create_time': 'Create Time' + 'create_time': 'Create Time', + 'SystemParam': 'System Parameters' }, 'dialog': { 'menu_type': 'Menu Type', diff --git a/acs2/nladmin-ui/src/i18n/langs/menu/in.js b/acs2/nladmin-ui/src/i18n/langs/menu/in.js index 25ca975c8..e53aceda1 100644 --- a/acs2/nladmin-ui/src/i18n/langs/menu/in.js +++ b/acs2/nladmin-ui/src/i18n/langs/menu/in.js @@ -18,7 +18,8 @@ export default { 'outside_chain': 'Rantai Luar', 'cache': 'Cache', 'visible': 'Terlihat', - 'create_time': 'Tarikh Penciptaan' + 'create_time': 'Tarikh Penciptaan', + 'SystemParam': 'Parameter Sistem' }, 'dialog': { 'menu_type': 'Jenis Menu', diff --git a/acs2/nladmin-ui/src/i18n/langs/menu/zh.js b/acs2/nladmin-ui/src/i18n/langs/menu/zh.js index e6815aaf3..7a1c0ae35 100644 --- a/acs2/nladmin-ui/src/i18n/langs/menu/zh.js +++ b/acs2/nladmin-ui/src/i18n/langs/menu/zh.js @@ -18,7 +18,8 @@ export default { 'outside_chain': '外链', 'cache': '缓存', 'visible': '可见', - 'create_time': '创建日期' + 'create_time': '创建日期', + 'SystemParam': '系统参数' }, 'dialog': { 'menu_type': '菜单类型', diff --git a/acs2/nladmin-ui/src/i18n/langs/monitor/en.js b/acs2/nladmin-ui/src/i18n/langs/monitor/en.js index 19c9f4eda..661d0bb63 100644 --- a/acs2/nladmin-ui/src/i18n/langs/monitor/en.js +++ b/acs2/nladmin-ui/src/i18n/langs/monitor/en.js @@ -38,6 +38,87 @@ export default { 'the_past_week': 'The Past Week', 'the_past_month': 'The Past Month', 'the_past_three_months': 'The Past Three Months' + }, + 'click': { + 'device_information': 'Device Information', + 'monitor_item': 'Monitor Item', + 'current_value': 'current value', + 'device_setup': 'Device Settings', + 'bar_code': 'Bar code', + 'request_flag': 'Request flag', + 'out_of_stock': 'Out of stock', + 'with_pallets': 'There is a tray', + 'pallets_and_goods': 'There are pallets and goods', + 'material_code': 'Material code', + 'disabled_manipulator': 'Disable manipulator', + 'normal': 'normal', + 'forbidden': 'disable', + 'job_command': 'job command', + 'recall': 'recall', + 'scram': 'crash stop', + 'police_clearance': 'clear the police', + 'keep_out_of_storage': 'Keep out of storag', + 'no_release': 'No export', + 'stop_task': 'Stop task', + 'equipment_number': 'Device number', + 'device_name': 'Device name', + 'exception_message': 'exception message', + 'photoelectric_signal': 'photoelectric signal', + 'mode': 'mode', + 'alarm': 'alarm', + 'ip_address': 'IP', + 'pallet_quantity': 'Pallet quantity', + 'instruction_information': 'instruction information', + 'note_information': 'Remark information', + 'current_instruction_message': 'current instruction information', + 'last_instruction_message': 'last command information', + 'action_signal': 'action signal', + 'clearance_signal': 'allow in and out signal', + 'materiel': 'material', + 'lot': 'batch', + 'request_task': 'Whether to request a task', + 'request_order': 'Whether to request instructions', + 'apply_labeling': 'Whether to apply for labelling', + 'apply_for_bundling': 'Whether to apply for bundling', + 'device_status': 'Device status', + 'weight': 'weight', + 'front_station_photoelectric_signal': 'forward station photoelectric signal', + 'open': 'On', + 'close': 'Off', + 'AGV_phase': 'AGV Interaction Phase', + 'description_of_the_AGV_phase': 'AGV Interaction Phase Description', + 'AGV_action': 'AGV action', + 'AGV_power': 'AGV Power', + 'post-station_photoelectric_signal': 'post-station photoelectric signal', + 'front_station_action_signal': 'forward motion signal', + 'back_station_action_signal': 'post action signal', + 'walk_y': 'walking column', + 'previous_station_task': 'Former station task number', + 'back_station_task': 'station task Back number', + 'task_number': 'task number', + 'disable': 'Whether to disable', + 'current_temperature': 'Current temperature', + 'oven_finish': 'Oven complete', + 'house': 'Constant temperature countdown-house', + 'minutes': 'Constant temperature countdown-minutes', + 'seconds': 'Constant temperature countdown-seconds', + 'gate_state': 'gate state', + 'task_creation_failure': 'Cause of task creation failure', + 'failed_to_create_instruction': 'Cause of instruction creation failure', + 'no_electrical_signal_feedback_cause': 'Cause of no electrical signal feedback', + 'request_success_flag': 'request success flag', + 'delivery_completed': 'Outbound complete', + 'inventory_quantity': 'inventory quantity', + 'angle': 'Angle', + 'electric_quantity': 'electricity', + 'status': 'state', + 'abnormal': 'exception', + 'floor': 'floor', + 'tray': 'tray', + 'loading_or_not': 'loading or not', + 'barcode': 'Vehicle number', + 'barcode_length': 'Vehicle length', + 'last_container': 'Last vehicle number' } } } diff --git a/acs2/nladmin-ui/src/i18n/langs/monitor/in.js b/acs2/nladmin-ui/src/i18n/langs/monitor/in.js index 1a2b9ecee..e453e01cd 100644 --- a/acs2/nladmin-ui/src/i18n/langs/monitor/in.js +++ b/acs2/nladmin-ui/src/i18n/langs/monitor/in.js @@ -38,6 +38,87 @@ export default { 'the_past_week': 'Minggu Terakhir', 'the_past_month': 'Bulan Terakhir', 'the_past_three_months': 'Tiga Bulan Terakhir' + }, + 'click': { + 'device_information': 'Informasi divaiscomment', + 'monitor_item': 'kata', + 'current_value': 'nilai saat ini', + 'device_setup': 'pengaturan perangkat', + 'bar_code': 'Kode bar', + 'request_flag': 'minta tanda', + 'out_of_stock': 'Tidak ada barang', + 'with_pallets': 'Dengan nampan', + 'pallets_and_goods': 'Seorang baki telah tiba', + 'material_code': 'Kode material', + 'disabled_manipulator': 'Matikan mesinnya', + 'normal': 'normal', + 'forbidden': 'nonaktifkan', + 'job_command': 'Perintah untuk pekerjaan rumah', + 'recall': 'Mengingat', + 'scram': 'Berhenti', + 'police_clearance': 'Polisi bersih', + 'keep_out_of_storage': 'Dilarang masuk', + 'no_release': 'Keluarkan uang', + 'stop_task': 'Hentikan misi', + 'equipment_number': 'nomor divais', + 'device_name': 'nama divais', + 'exception_message': 'pesan yang tidak biasa', + 'photoelectric_signal': 'Sinyal fotolistrik', + 'mode': 'pola', + 'alarm': 'polisi', + 'ip_address': 'IP', + 'pallet_quantity': 'Kuantitas baki', + 'instruction_information': 'pesan ke', + 'note_information': 'Catatan informasi', + 'current_instruction_message': 'Pesan perintah saat ini', + 'last_instruction_message': 'Pesan tindakan terakhir', + 'action_signal': 'sinyal aksi', + 'clearance_signal': 'izin untuk masuk dan keluar sinyal', + 'materiel': 'Bahan', + 'lot': 'Batch', + 'request_task': 'Apakah permintaan tugas', + 'request_order': 'Apakah penerapan perintah', + 'apply_labeling': 'Apakah saya memasukkan sebuah stiker', + 'apply_for_bundling': 'Apakah berkas diterapkan', + 'device_status': 'status divais', + 'weight': 'Berat', + 'front_station_photoelectric_signal': 'Bekas tiang listrik', + 'open': 'Buka', + 'close': 'Hilang', + 'AGV_phase': 'Persetujuan AGV', + 'description_of_the_AGV_phase': 'Persetujuan AGV Keterangan', + 'AGV_action': 'Aksi AGV', + 'AGV_power': 'AGV daya', + 'post-station_photoelectric_signal': 'Tiang layar cahaya', + 'front_station_action_signal': 'Mantan sinyal aksi industri', + 'back_station_action_signal': 'Sinyal aksi tertinggal', + 'walk_y': 'Treks', + 'previous_station_task': 'Mantan pegawai stasiun', + 'back_station_task': 'Back star number', + 'task_number': 'Mission no', + 'disable': 'apakah dinonaktifkan', + 'current_temperature': 'Suhu saat ini', + 'oven_finish': 'Oven selesai', + 'house': 'Hitung mundur temperatur-waktu', + 'minutes': 'Hitung mundur temperatur-Membagi', + 'seconds': 'Hitung mundur temperatur-Detik', + 'gate_state': 'status pintu', + 'task_creation_failure': 'Penyebab kegagalan penciptaan', + 'failed_to_create_instruction': 'Penyebab kegagalan penciptaan instruksi', + 'no_electrical_signal_feedback_cause': 'Tidak ada umpan balik penyebab listrik', + 'request_success_flag': 'sukses ditandai', + 'delivery_completed': 'Ekspor-impor selesai', + 'inventory_quantity': 'jumlah persediaan', + 'angle': 'Sudut', + 'electric_quantity': 'Baterai', + 'status': 'Status', + 'abnormal': 'Anomali', + 'floor': 'lantai', + 'tray': 'Nampan', + 'loading_or_not': 'dimuat atau tidak', + 'barcode': 'Angkat tanda', + 'barcode_length': 'Perjalanan panjang', + 'last_container': 'Nomor muatan terakhir' } } } diff --git a/acs2/nladmin-ui/src/i18n/langs/monitor/zh.js b/acs2/nladmin-ui/src/i18n/langs/monitor/zh.js index 0d5af1855..f1d35565a 100644 --- a/acs2/nladmin-ui/src/i18n/langs/monitor/zh.js +++ b/acs2/nladmin-ui/src/i18n/langs/monitor/zh.js @@ -38,6 +38,87 @@ export default { 'the_past_week': '最近一周', 'the_past_month': '最近一个月', 'the_past_three_months': '最近三个月' + }, + 'click': { + 'device_information': '设备信息', + 'monitor_item': '监控项', + 'current_value': '当前值', + 'device_setup': '设备设置', + 'bar_code': '条码', + 'request_flag': '请求标记', + 'out_of_stock': '无货', + 'with_pallets': '有托盘', + 'pallets_and_goods': '有托盘有货', + 'material_code': '物料编码', + 'disabled_manipulator': '禁用机械手', + 'normal': '正常', + 'forbidden': '禁用', + 'job_command': '作业命令', + 'recall': '召回', + 'scram': '急停', + 'police_clearance': '清警', + 'keep_out_of_storage': '禁止入库', + 'no_release': '禁止出库', + 'stop_task': '停止任务', + 'equipment_number': '设备编号', + 'device_name': '设备名称', + 'exception_message': '异常信息', + 'photoelectric_signal': '光电信号', + 'mode': '模式', + 'alarm': '报警', + 'ip_address': 'IP地址', + 'pallet_quantity': '托盘数量', + 'instruction_information': '指令信息', + 'note_information': '备注信息', + 'current_instruction_message': '当前指令信息', + 'last_instruction_message': '上次指令信息', + 'action_signal': '动作信号', + 'clearance_signal': '允许进出信号', + 'materiel': '物料', + 'lot': '批次', + 'request_task': '是否请求任务', + 'request_order': '是否申请指令', + 'apply_labeling': '是否申请贴标', + 'apply_for_bundling': '是否申请捆扎', + 'device_status': '设备状态', + 'weight': '重量', + 'front_station_photoelectric_signal': '前工位光电信号', + 'open': '开', + 'close': '关', + 'AGV_phase': 'AGV交互阶段', + 'description_of_the_AGV_phase': 'AGV交互阶段说明', + 'AGV_action': 'AGV动作', + 'AGV_power': 'AGV电量', + 'post-station_photoelectric_signal': '后工位光电信号', + 'front_station_action_signal': '前工位动作信号', + 'back_station_action_signal': '后工位动作信号', + 'walk_y': '行走列', + 'previous_station_task': '前工位任务号', + 'back_station_task': '后工位任务号', + 'task_number': '任务号', + 'disable': '是否禁用', + 'current_temperature': '当前温度', + 'oven_finish': '烘箱完成', + 'house': '恒温倒计时-时', + 'minutes': '恒温倒计时-分', + 'seconds': '恒温倒计时-秒', + 'gate_state': '门状态', + 'task_creation_failure': '任务创建失败原因', + 'failed_to_create_instruction': '指令创建失败原因', + 'no_electrical_signal_feedback_cause': '未反馈电气信号原因', + 'request_success_flag': '请求成功标记', + 'delivery_completed': '出库完成', + 'inventory_quantity': '库存数量', + 'angle': '角度', + 'electric_quantity': '电量', + 'status': '状态', + 'abnormal': '异常', + 'floor': '楼层', + 'tray': '托盘', + 'loading_or_not': '是否装载', + 'barcode': '载具号', + 'barcode_length': '载具长度', + 'last_container': '上次载具号' } } } diff --git a/acs2/nladmin-ui/src/main.js b/acs2/nladmin-ui/src/main.js index e4e0e81c0..8bce37da6 100644 --- a/acs2/nladmin-ui/src/main.js +++ b/acs2/nladmin-ui/src/main.js @@ -9,6 +9,10 @@ import 'font-awesome/css/font-awesome.css' import mavonEditor from 'mavon-editor' import 'mavon-editor/dist/css/index.css' + +import VueParticles from 'vue-particles' +Vue.use(VueParticles) + // 数据字典 import dict from './components/Dict' diff --git a/acs2/nladmin-ui/src/views/acs/angle/index.vue b/acs2/nladmin-ui/src/views/acs/angle/index.vue index 3240cd309..2a0b13def 100644 --- a/acs2/nladmin-ui/src/views/acs/angle/index.vue +++ b/acs2/nladmin-ui/src/views/acs/angle/index.vue @@ -27,13 +27,41 @@ - + + + - + + + { + this.deviceList = data + }) + routeCurd.selectList().then(data => { + this.routeList = data + }) + getDicts().then(data => { + this.dicts = data + }) + }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { return true }, + showStartStorage(val) { + let obj = {} + obj = this.deviceList.find((item) => { + return item.device_code === val + }) + if (obj.device_type === 'storage') { + this.start_flag = true + let storage_obj = {} + deviceCrud.queryStorageExtra(obj.device_code).then(data => { + storage_obj = data + const n1 = storage_obj.minY + const n2 = storage_obj.maxY + const m1 = storage_obj.minZ + const m2 = storage_obj.maxZ + const from_y = [] + const from_z = [] + for (let i = n1; i <= n2; i++) { + const y = {} + if (i < 10) { + y.id = '0' + i + } else { + y.id = i + } + y.value = i + '列' + from_y.push(y) + } + for (let i = m1; i <= m2; i++) { + const z = {} + if (i < 10) { + z.id = '0' + i + } else { + z.id = i + } + z.value = i + '层' + from_z.push(z) + } + this.fromYList = from_y + this.fromZList = from_z + this.form.from_x = storage_obj.tunnel + }) + } else { + this.start_flag = false + this.form.from_x = '' + this.form.from_y = '' + this.form.from_z = '' + } + this.isDisabled = false + }, updateIsOn(id, is_active) { crudAcsPointAngle.updateOn(id, is_active).then(res => { this.notify('保存成功', 'success') }).catch(err => { console.log(err.response.data.message) }) + }, + showEndStorage(val) { + let obj = {} + obj = this.deviceList.find((item) => { + return item.device_code === val + }) + if (obj.device_type === 'storage') { + this.end_flag = true + let storage_obj = {} + deviceCrud.queryStorageExtra(obj.device_code).then(data => { + storage_obj = data + const n1 = storage_obj.minY + const n2 = storage_obj.maxY + const m1 = storage_obj.minZ + const m2 = storage_obj.maxZ + const to_y = [] + const to_z = [] + for (let i = n1; i <= n2; i++) { + const y = {} + if (i < 10) { + y.id = '0' + i + } else { + y.id = i + } + y.value = i + '列' + to_y.push(y) + } + for (let i = m1; i <= m2; i++) { + const z = {} + if (i < 10) { + z.id = '0' + i + } else { + z.id = i + } + z.value = i + '层' + to_z.push(z) + } + this.toYList = to_y + this.toZList = to_z + this.form.to_x = storage_obj.tunnel + }) + } else { + this.end_flag = false + this.form.to_x = '' + this.form.to_y = '' + this.form.to_z = '' + } + this.isDisabled = false } } } diff --git a/acs2/nladmin-ui/src/views/acs/device/config.vue b/acs2/nladmin-ui/src/views/acs/device/config.vue index 31c7a4d3d..4ee8ce4ef 100644 --- a/acs2/nladmin-ui/src/views/acs/device/config.vue +++ b/acs2/nladmin-ui/src/views/acs/device/config.vue @@ -114,6 +114,7 @@ import pull_head_manipulator from '@/views/acs/device/driver/pull_head_manipulat import pull_tail_manipulator from '@/views/acs/device/driver/pull_tail_manipulator.vue' import green_foil_machine_button from '@/views/acs/device/driver/green_foil_machine_button.vue' import inflatable_shaft_library from '@/views/acs/device/driver/inflatable_shaft_library.vue' +import manipulator_agv_station from '@/views/acs/device/driver/manipulator_agv_station.vue' import subvolume_weighing_station from '@/views/acs/device/driver/subvolume_weighing_station.vue' import waste_foil_weighing_station from '@/views/acs/device/driver/waste_foil_weighing_station.vue' import blank_manipulator from '@/views/acs/device/driver/blank_manipulator.vue' @@ -121,6 +122,7 @@ import trapped_manipulator from '@/views/acs/device/driver/one_manipulator/trapp import box_package_manipulator from '@/views/acs/device/driver/one_manipulator/box_package_manipulator.vue' import box_storage_manipulator from '@/views/acs/device/driver/one_manipulator/box_storage_manipulator.vue' import return_good_manipulator from '@/views/acs/device/driver/one_manipulator/return_good_manipulator.vue' +import volume_two_manipulator from '@/views/acs/device/driver/one_manipulator/volume_two_manipulator.vue' import box_storage_out_conveyor from '@/views/acs/device/driver/one_conveyor/box_storage_out_conveyor.vue' import box_subvolumes_conveyor from '@/views/acs/device/driver/one_conveyor/box_subvolumes_conveyor.vue' import finished_product_out_with_bind_lable_conveyor from '@/views/acs/device/driver/one_conveyor/finished_product_out_with_bind_lable_conveyor.vue' @@ -184,7 +186,9 @@ export default { inflatable_shaft_library, green_foil_machine_button, xg_agv_car, - oven_inspect_site + oven_inspect_site, + manipulator_agv_station, + volume_two_manipulator }, dicts: ['device_type'], mixins: [crud], diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/manipulator_agv_station.vue b/acs2/nladmin-ui/src/views/acs/device/driver/manipulator_agv_station.vue new file mode 100644 index 000000000..b807fccae --- /dev/null +++ b/acs2/nladmin-ui/src/views/acs/device/driver/manipulator_agv_station.vue @@ -0,0 +1,539 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/return_good_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/return_good_manipulator.vue index d553d9a90..eead42460 100644 --- a/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/return_good_manipulator.vue +++ b/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/return_good_manipulator.vue @@ -41,7 +41,43 @@ - + + + + + + + + + + + + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/trapped_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/trapped_manipulator.vue index b71606f9b..d9df1cab2 100644 --- a/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/trapped_manipulator.vue +++ b/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/trapped_manipulator.vue @@ -41,7 +41,43 @@ - + + + + + + + + + + + + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/volume_two_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/volume_two_manipulator.vue new file mode 100644 index 000000000..a2d26dd1f --- /dev/null +++ b/acs2/nladmin-ui/src/views/acs/device/driver/one_manipulator/volume_two_manipulator.vue @@ -0,0 +1,582 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/monitor/device/index.vue b/acs2/nladmin-ui/src/views/acs/monitor/device/index.vue index d800fc2b2..c55970dee 100644 --- a/acs2/nladmin-ui/src/views/acs/monitor/device/index.vue +++ b/acs2/nladmin-ui/src/views/acs/monitor/device/index.vue @@ -240,6 +240,7 @@ export default { dialogFormVisible2: false, dialogFormVisible3: false, dialogFormVisible4: false, + dialogFormVisible5: false, arr2: [], currentItem: '', stageSelectList: [], @@ -283,7 +284,9 @@ export default { this.dialogFormVisible4 = true } else if (clickObj.data.driver_type === 'hailiang_xj_plc_test') { this.$refs.child1.setForm(clickObj) - } else { + } else if (clickObj.data.driver_type === 'standard_stacker') { + this.dialogFormVisible4 = true + }else { this.dialogFormVisible = true } } diff --git a/acs2/nladmin-ui/src/views/acs/regional/index.vue b/acs2/nladmin-ui/src/views/acs/regional/index.vue index c33d1c132..76b9bc1a3 100644 --- a/acs2/nladmin-ui/src/views/acs/regional/index.vue +++ b/acs2/nladmin-ui/src/views/acs/regional/index.vue @@ -40,13 +40,42 @@ :label="$t('regional.table.origin_region')" prop="start_regional" > - + + + + - + + + + { + console.log(res) + this.deviceRegion = res + }) + .catch(err => { + console.log(err.response.data.message) + }) + }, updateIsOn(id, is_active) { var msg = this.$t('regional.table.disabled') if (is_active === '1') { diff --git a/acs2/nladmin-ui/src/views/acs/task/index.vue b/acs2/nladmin-ui/src/views/acs/task/index.vue index bef15b6f9..01e89d96d 100644 --- a/acs2/nladmin-ui/src/views/acs/task/index.vue +++ b/acs2/nladmin-ui/src/views/acs/task/index.vue @@ -91,6 +91,7 @@
- - - - - - - + + + + + + +
@@ -48,54 +49,61 @@ + ref="form" + style="margin-top: 50px;padding-top: 10px" + :model="form" + :rules="rules" + size="small" + label-width="200px" + > - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + -
- +
+ http://127.0.0.1:8014/bigScreen/screen
diff --git a/acs2/nladmin-ui/src/views/system/dept/index.vue b/acs2/nladmin-ui/src/views/system/dept/index.vue index a0806baa0..3da3b5956 100644 --- a/acs2/nladmin-ui/src/views/system/dept/index.vue +++ b/acs2/nladmin-ui/src/views/system/dept/index.vue @@ -10,7 +10,7 @@ label-position="right" label-suffix=":" > - + - + @@ -69,8 +69,8 @@ - {{ $t('common.true') }} - {{ $t('common.false') }} + {{ $t('auto.common.true') }} + {{ $t('auto.common.false') }} @@ -279,7 +279,7 @@ export default { }, // 改变状态 changeEnabled(data, val) { - const satus = this.enabledTypeOptions.find(item => { return item.key == data.is_used }) + const satus = this.enabledTypeOptions.find(item => { return item.key === data.is_used }) debugger this.$confirm('此操作将 "' + satus.display_name + '" ' + data.name + '部门, 是否继续?', '提示', { confirmButtonText: '确定', diff --git a/acs2/nladmin-ui/src/views/system/logicflow/editor/components/node/html/htmlNode.js b/acs2/nladmin-ui/src/views/system/logicflow/editor/components/node/html/htmlNode.js index bbd4d84d9..6f84cbcfc 100644 --- a/acs2/nladmin-ui/src/views/system/logicflow/editor/components/node/html/htmlNode.js +++ b/acs2/nladmin-ui/src/views/system/logicflow/editor/components/node/html/htmlNode.js @@ -26,7 +26,7 @@ class ButtonNode extends HtmlResize.view { // 路径前缀 const baseUrl = api.state.baseApi // 颜色 - let statusColor = '#1a912a' + let statusColor = '#FF0000' // 默认图片 // let imageUrl = baseUrl + '/file/图片/专机-20220722094234555.png' let imageUrl = defaultUrl diff --git a/acs2/nladmin-ui/src/views/system/menu/index.vue b/acs2/nladmin-ui/src/views/system/menu/index.vue index 34735ffa2..47cb7c79f 100644 --- a/acs2/nladmin-ui/src/views/system/menu/index.vue +++ b/acs2/nladmin-ui/src/views/system/menu/index.vue @@ -76,20 +76,20 @@ - {{ $t('common.true') }} - {{ $t('common.false') }} + {{ $t('auto.common.true') }} + {{ $t('auto.common.false') }} - {{ $t('common.true') }} - {{ $t('common.false') }} + {{ $t('auto.common.true') }} + {{ $t('auto.common.false') }} - {{ $t('common.true') }} - {{ $t('common.false') }} + {{ $t('auto.common.true') }} + {{ $t('auto.common.false') }} diff --git a/acs2/nladmin-ui/src/views/system/monitor/device/index.vue b/acs2/nladmin-ui/src/views/system/monitor/device/index.vue index c876040a9..188ef2aa8 100644 --- a/acs2/nladmin-ui/src/views/system/monitor/device/index.vue +++ b/acs2/nladmin-ui/src/views/system/monitor/device/index.vue @@ -6,7 +6,7 @@ - + - + - - - - 禁止进出 - 允许进入 - 允许离开 + + + + + + {{ $t('auto.common.false') }} + {{ $t('auto.common.true') }} - - + - + - + - 无货 - 有托盘 - 有托盘有货 + {{ $t('monitor.click.out_of_stock') }} + {{ $t('monitor.click.with_pallets') }} + {{ $t('monitor.click.pallets_and_goods') }} - + - + - + - + - 正常 - 禁用 + {{ $t('monitor.click.normal') }} + {{ $t('monitor.click.forbidden') }} - + - - + {{ $t('auto.common.false') }} + {{ $t('auto.common.true') }} - + - + - + - - + {{ $t('auto.common.false') }} + {{ $t('auto.common.true') }} - + - + - + - + - - + {{ $t('auto.common.false') }} + {{ $t('auto.common.true') }} - + - + - - + {{ $t('auto.common.false') }} + {{ $t('auto.common.true') }} - - + {{ $t('auto.common.false') }} + {{ $t('auto.common.true') }} - + - + - + - + - + - + - 召回 - 急停 - 清警 + {{ $t('monitor.click.recall') }} + {{ $t('monitor.click.scram') }} + {{ $t('monitor.click.police_clearance') }} - + - + - + @@ -211,7 +211,6 @@