diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java deleted file mode 100644 index 8c2d9cd..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ /dev/null @@ -1,409 +0,0 @@ -package org.nl.acs.agv.server.impl; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.AcsConfig; -import org.nl.acs.agv.server.NDCAgvService; -import org.nl.acs.agv.server.dto.AgvDto; -import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun; -import org.nl.acs.device.service.DeviceService; -import org.nl.acs.device.service.impl.DeviceServiceImpl; -import org.nl.acs.ext.wms.service.AcsToWmsService; -import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.LokiLog; -import org.nl.acs.log.LokiLogType; -import org.nl.acs.log.service.DeviceExecuteLogService; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; -import org.nl.modules.system.service.ParamService; -import org.nl.modules.system.util.CodeUtil; -import org.nl.modules.wql.util.SpringContextHolder; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.Map; - -@Slf4j -@Service -@RequiredArgsConstructor -public class NDCAgvServiceImpl implements NDCAgvService { - @Autowired - private DeviceAppService deviceAppService; - @Autowired - private ParamService paramService; - @Autowired - private AcsToWmsService acsToWmsService; - @Autowired - private DeviceExecuteLogService logServer; - - Map AGVDeviceStatus = new HashMap(); - - @LokiLog(type = LokiLogType.AGV) - @Override - public void deleteAgvInstToNDC(Instruction inst) throws Exception { - if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { - int index = Integer.parseInt(inst.getAgv_jobno()); - - byte indexhigh = (byte) IntToHexHigh(index); - byte indexlow = (byte) IntToHexLow(index); - - String str = "十进制下发:"; - String str1 = "十六进制下发:"; - str += "index:" + index; - str1 += "ikey:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF); - System.out.println(str); - System.out.println(str1); - - byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X06, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6E, - (byte) 0X00, (byte) 0X02, - (byte) indexhigh, (byte) indexlow, - }; - log.info("下发删除AGV指令--{}", Bytes2HexString(b)); - - OneNDCSocketConnectionAutoRun.write(b); - System.out.println("下发删除agv指令数据:" + Bytes2HexString(b)); - } - - } - - - @LokiLog(type = LokiLogType.AGV) - @Override - public void sendAgvInstToNDC(String agv_system_type, Instruction inst) { - log.info("sendAgvInstToNDC 指令下发NDC:" + "inst_code:" + inst.getInstruction_code() + ",agv_system_type:" + agv_system_type + ",agv_inst_type:" + inst.getAgv_inst_type() + - ",priority:" + inst.getPriority() + ",startAddress:" + inst.getStart_point_code() + - ",nextAddress:" + inst.getNext_point_code()); - if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { - String instcode = inst.getInstruction_code(); - int type = Integer.parseInt(inst.getAgv_inst_type()); - int priority = Integer.parseInt(inst.getPriority()) + 128; - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class); - int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code()); - int nextAddress = deviceService.queryAddressBynextdeviceCode(inst.getNext_point_code()); - byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode)); - byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode)); - byte typehigh = (byte) IntToHexHigh(type); - byte typelow = (byte) IntToHexLow(type); - byte qhdhigh = (byte) IntToHexHigh(startAddress); - byte qhdlow = (byte) IntToHexLow(startAddress); - byte fhdhigh = (byte) IntToHexHigh(nextAddress); - byte fhdlow = (byte) IntToHexLow(nextAddress); - byte prioritylow = (byte) IntToHexLow(priority); - - - String str = "十进制下发:"; - String str1 = "十六进制下发:"; - if (ObjectUtil.isNotEmpty(inst.getCarno())) { - int carNo = Integer.parseInt(inst.getCarno()); - byte agvnohigh = (byte) IntToHexHigh(carNo); - byte agvnolow = (byte) IntToHexLow(carNo); - str += "agv车号 /carNo:" + (carNo); - str1 += "agv车号 /carNo:" + hexToString(agvnolow & 0xFF); - } - str += "任务号 ikey:" + (Integer.parseInt(instcode)); - str1 += "任务号 ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF); - - str += "指令类型 /type:" + (type); - str1 += "指令类型 /type:" + hexToString(typehigh & 0xFF) + hexToString(typelow & 0xFF); - - str += "取货点 /qhd:" + (startAddress); - str1 += "取货点 /qhd:" + hexToString(qhdhigh & 0xFF) + hexToString(qhdlow & 0xFF); - str += "放货点 /fhd:" + (nextAddress); - str1 += "放货点 /fhd:" + hexToString(fhdhigh & 0xFF) + hexToString(fhdlow & 0xFF); - - str += "优先级 /priority:" + (priority); - str1 += "优先级 /priority:" + hexToString(prioritylow & 0xFF); - - byte[] b = new byte[]{}; - if (ObjectUtil.isNotEmpty(inst.getCarno())) { - int carNo = Integer.parseInt(inst.getCarno()); - byte agvnohigh = (byte) IntToHexHigh(carNo); - byte agvnolow = (byte) IntToHexLow(carNo); - b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X14, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X71, - (byte) 0X00, (byte) 0X10, - (byte) 0X01, prioritylow, - (byte) 0X00, (byte) 0X01, - (byte) ikeyhigh, (byte) ikeylow, - (byte) ikeyhigh, (byte) ikeylow, - (byte) typehigh, (byte) typelow, - (byte) qhdhigh, (byte) qhdlow, - (byte) fhdhigh, (byte) fhdlow, - (byte) agvnohigh, (byte) agvnolow - }; - } else { - b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X12, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X71, - (byte) 0X00, (byte) 0X0E, - (byte) 0X01, prioritylow, - (byte) 0X00, (byte) 0X01, - (byte) ikeyhigh, (byte) ikeylow, - (byte) ikeyhigh, (byte) ikeylow, - (byte) typehigh, (byte) typelow, - (byte) qhdhigh, (byte) qhdlow, - (byte) fhdhigh, (byte) fhdlow - }; - } - log.info("下发AGV作业指令 --{}", str1); - log.info("下发AGV作业指令--{}", str); - log.info("下发agv指令数据--{}", Bytes2HexString(b)); - OneNDCSocketConnectionAutoRun.write(b); - } - } - - @Override - public byte[] sendAgvOneModeInst(int phase, int index, int result) { - if (phase < 0 || index < 0) - return null; - byte indexhigh = (byte) IntToHexHigh(index); - byte indexlow = (byte) IntToHexLow(index); - byte phasehigh = (byte) IntToHexHigh(phase); - byte phaselow = (byte) IntToHexLow(phase); - - byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0A, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X06, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, - (byte) phasehigh, (byte) phaselow - }; - - - log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF)); - - System.out.println("反馈agv动作数据:" + Bytes2HexString(b)); - return b; - - } - - @Override - public byte[] sendAgvOneModeInst(int phase, int index, int result, Instruction inst) { - if (inst.getAgv_inst_type().equals("1")) { - return sendAgvOneModeInst(phase, index, result); - } - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class); - Device startDevice = appService.findDeviceByCode(inst.getStart_point_code()); - Device nextDevice = appService.findDeviceByCode(inst.getNext_point_code()); - String startLinkDeviceCode = ""; - String nextLinkDeviceCode = ""; - int start2Address = 0; - int next2Address = 0; - int startLinkAddress = 0; - int nextLinkAddress = 0; - if (inst.getAgv_inst_type().equals("3")) { - startLinkDeviceCode = String.valueOf(startDevice.getExtraValue().get("link_device_code")); - nextLinkDeviceCode = String.valueOf(nextDevice.getExtraValue().get("link_device_code")); - startLinkAddress = deviceService.queryAddressBydeviceCode(startLinkDeviceCode); - nextLinkAddress = deviceService.queryAddressBynextdeviceCode(nextLinkDeviceCode); - } - int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code()); - int nextAddress = deviceService.queryAddressBynextdeviceCode(inst.getNext_point_code()); - if (!inst.getAgv_inst_type().equals("1")) { - start2Address = deviceService.queryAddressBydeviceCode(inst.getStart_point_code2()); - next2Address = deviceService.queryAddressBynextdeviceCode(inst.getNext_point_code2()); - } - - byte qhdhigh = 0; - byte qhdlow = 0; - byte fhdhigh = 0; - byte fhdlow = 0; - byte addrHigh = 0; - byte addrLow = 0; - if (phase < 0 || index < 0) - return null; - byte indexhigh = (byte) IntToHexHigh(index); - byte indexlow = (byte) IntToHexLow(index); - byte phasehigh = (byte) IntToHexHigh(phase); - byte phaselow = (byte) IntToHexLow(phase); - if (inst.getAgv_inst_type().equals("2")) { - if (phase == 0x09) { - qhdhigh = (byte) IntToHexHigh(start2Address); - qhdlow = (byte) IntToHexLow(start2Address); - addrHigh = qhdhigh; - addrLow = qhdlow; - } else if (phase == 0x0D) { - fhdhigh = (byte) IntToHexHigh(next2Address); - fhdlow = (byte) IntToHexLow(next2Address); - addrHigh = fhdhigh; - addrLow = fhdlow; - } - } else if (inst.getAgv_inst_type().equals("3")) { - if (phase == 0x09) { - qhdhigh = (byte) IntToHexHigh(nextAddress); - qhdlow = (byte) IntToHexLow(nextAddress); - addrHigh = qhdhigh; - addrLow = qhdlow; - } else if (phase == 0x11) { - qhdhigh = (byte) IntToHexHigh(startLinkAddress); - qhdlow = (byte) IntToHexLow(startLinkAddress); - addrHigh = qhdhigh; - addrLow = qhdlow; - } else if (phase == 0x19) { - qhdhigh = (byte) IntToHexHigh(nextLinkAddress); - qhdlow = (byte) IntToHexLow(nextLinkAddress); - addrHigh = qhdhigh; - addrLow = qhdlow; - } else if (phase == 0x0D) { - fhdhigh = (byte) IntToHexHigh(nextLinkAddress); - fhdlow = (byte) IntToHexLow(nextLinkAddress); - addrHigh = fhdhigh; - addrLow = fhdlow; - } else if (phase == 0x15) { - fhdhigh = (byte) IntToHexHigh(start2Address); - fhdlow = (byte) IntToHexLow(start2Address); - addrHigh = fhdhigh; - addrLow = fhdlow; - } else if (phase == 0x1D) { - fhdhigh = (byte) IntToHexHigh(next2Address); - fhdlow = (byte) IntToHexLow(next2Address); - addrHigh = fhdhigh; - addrLow = fhdlow; - } - } - byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0C, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X08, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, - (byte) phasehigh, (byte) phaselow, - (byte) addrHigh, (byte) addrLow, - }; - - - log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF)); - - System.out.println("反馈agv动作数据:" + Bytes2HexString(b)); - return b; - - } - - - @Override - public byte[] sendAgvTwoModeInst(int phase, int index, int result) { - - if (phase < 0 || index < 0) - return null; - byte indexhigh = (byte) IntToHexHigh(index); - byte indexlow = (byte) IntToHexLow(index); - byte phasehigh = (byte) IntToHexHigh(phase); - byte phaselow = (byte) IntToHexLow(phase); - - byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0A, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X6D, - (byte) 0X00, (byte) 0X06, - (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X10, - (byte) phasehigh, (byte) phaselow - }; - - - log.info("反馈agv动作数据--index:" + hexToString(indexhigh & 0xFF) + hexToString(indexlow & 0xFF) + ",phase:" + hexToString(phasehigh & 0xFF) + hexToString(phaselow & 0xFF)); - - System.out.println("反馈agv动作数据:" + Bytes2HexString(b)); - return b; - } - - @Override - public boolean createChargingTaskToNDC(String carno) { - byte carhigh = (byte) IntToHexHigh(Integer.parseInt(carno)); - byte carlow = (byte) IntToHexLow(Integer.parseInt(carno)); - - String instcode = CodeUtil.getNewCode("INSTRUCT_NO"); - byte instcodehigh = (byte) IntToHexHigh(Integer.parseInt(instcode)); - byte instcodelow = (byte) IntToHexLow(Integer.parseInt(instcode)); - - String str = "十进制下发:"; - String str1 = "十六进制下发:"; - str += "carno:" + (Integer.parseInt(carno)); - str1 += "carno:" + hexToString(carhigh & 0xFF) + hexToString(carlow & 0xFF); - - str += "/instcode:" + (instcode); - str1 += "/instcode:" + hexToString(instcodehigh & 0xFF) + hexToString(instcodelow & 0xFF); - - System.out.println(str); - System.out.println(str1); - - byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, - (byte) 0X00, (byte) 0X08, - (byte) 0X00, (byte) 0X0C, - (byte) 0X00, (byte) 0X01, - (byte) 0X00, (byte) 0X71, - (byte) 0X00, (byte) 0X08, - (byte) 0X64, (byte) 0X80, - (byte) 0X00, (byte) 0X01, - (byte) instcodehigh, (byte) instcodelow, - (byte) carhigh, (byte) carlow - }; - log.info("下发AGV充电任务--{}", str1); - - try { - OneNDCSocketConnectionAutoRun.write(b); - } catch (Exception e) { - e.getMessage(); - return false; - } - System.out.println("下发agv充电任务数据:" + Bytes2HexString(b)); - return true; - } - - String hexToString(int i) { - return (i < 16 ? "0" + Integer.toHexString(i) : Integer.toHexString(i)).toUpperCase(); - } - - - public static int IntToHexHigh(int b) { - int big = (b & 0xFF00) >> 8; - return big; - } - - public static int IntToHexLow(int b) { - int little = b & 0xFF; - return little; - } - - - public static String Bytes2HexString(byte[] b) { - String ret = ""; - for (int i = 0; i < b.length; i++) { - String hex = Integer.toHexString(b[i] & 0xFF); - if (hex.length() == 1) { - hex = '0' + hex; - } - ret += hex.toUpperCase(); - } - return ret; - } - - - @LokiLog(type = LokiLogType.AGV) - @Override - public Map findAllAgvFromCache() { - return AGVDeviceStatus; - } - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java deleted file mode 100644 index 4e23a2e..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ /dev/null @@ -1,264 +0,0 @@ -package org.nl.acs.auto.run; - -import cn.hutool.core.util.ObjectUtil; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.AcsConfig; -import org.nl.acs.agv.server.NDCAgvService; -import org.nl.acs.device.service.DeviceService; -import org.nl.acs.device_driver.basedriver.agv.ndcone.AgvNdcOneDeviceDriver; -import org.nl.acs.ext.wms.service.AcsToWmsService; -import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; -import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.instruction.service.impl.InstructionServiceImpl; -import org.nl.acs.log.service.DeviceExecuteLogService; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.modules.system.service.ParamService; -import org.nl.modules.system.service.impl.ParamServiceImpl; -import org.nl.modules.wql.util.SpringContextHolder; -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.Socket; -import java.util.Date; -import java.util.List; - -import static org.nl.acs.agv.server.impl.NDCAgvServiceImpl.Bytes2HexString; - - -@Slf4j -//@Component -public class OneNDCSocketConnectionAutoRun 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 - ParamService paramService; - @Autowired - AutoRunService autoRunService; - - - public OneNDCSocketConnectionAutoRun() { - this.recordTime = new Date((new Date()).getTime() - (long) this.recordTimeOut); - } - - public String getCode() { - return OneNDCSocketConnectionAutoRun.class.getSimpleName(); - } - - public String getName() { - return "1楼NDC在线连接"; - } - - public void autoRun() throws IOException { - System.out.println("1楼NDCAgv链接开始"); - ParamService ParamService = SpringContextHolder.getBean(ParamServiceImpl.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); - ip = paramService.findByCode(AcsConfig.AGVURL).getValue(); - port = Integer.parseInt(paramService.findByCode(AcsConfig.AGVPORT).getValue()); - - - try { - byte[] b = new byte[1024]; - s = new Socket(ip, port); - dos = new DataOutputStream(s.getOutputStream()); - dis = new DataInputStream(s.getInputStream()); - System.out.println("1楼NDCAgv链接成功"); - log.info("1楼NDCAgv链接成功"); - while (bConnected) { - int count = dis.read(b); - - if (count == -1) { - 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 link_inst = null; - Instruction inst = null; - List insts = null; - boolean link_flag = false; - Device agv_device = null; - if (carno != 0) { - agv_device = deviceAppService.findDeviceByCode(String.valueOf(carno)); - } - if (ikey != 0) { - inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); -// if (ObjectUtil.isEmpty(inst)){ -// inst = instructionService.findByCode(String.valueOf(ikey)); -// } - } - if (!ObjectUtil.isEmpty(link_inst)) { - link_flag = true; - } - log.info("接收agv上报信息:" + bs); - log.info("接收agv上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); - Device device = null; - String device_code = null; - - - // - AgvNdcOneDeviceDriver agvNdcOneDeviceDriver; - - //开始任务/上报订单号 - 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.sendAgvOneModeInst(phase, index, 0); - } - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x22) { - - if (!ObjectUtil.isEmpty(inst)) { - if (!ObjectUtil.isEmpty(inst)) { - String agvcar = inst.getCarno(); - Device agvDevice = deviceAppService.findDeviceByCode(agvcar); - if (agvDevice != null) { - if (agvDevice.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) { - agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) agvDevice.getDeviceDriver(); - agvNdcOneDeviceDriver.setInstruction(null); - } - } - instructionService.finish(inst.getInstruction_id()); - } - } - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - - } - //请求删除任务 - //(需要WCS反馈) - else if (phase == 0x30) { - data = NDCAgvService.sendAgvOneModeInst(0x8F, index, 0); - - } - //任务删除确认 - //(需要WCS反馈) - else if (phase == 0xFF) { - - if (!ObjectUtil.isEmpty(inst)) { - if (!ObjectUtil.isEmpty(inst)) { - instructionService.cancelNOSendAgv(inst.getInstruction_id()); - } - } - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - - } 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])); - } - if (ObjectUtil.isNotEmpty(device)) { - if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) { - agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver(); - agvNdcOneDeviceDriver.processSocket(arr); - } - } - - } - if (!ObjectUtil.isEmpty(data)) { - write(data); - } - - } else { - System.out.println("agv上报不是0073类型动作,不处理"); - } - } - - } catch (Exception e) { - System.out.println("OneAgv链接异常"); - log.info("OneAgv链接异常"); - log.error("agv连接出现异常:{}", e); - logServer.deviceExecuteLog("1", "", "", "agv异常" + e.getMessage()); - logServer.deviceExecuteLog("1", "", "", "agv异常" + e); - if (ObjectUtil.isNotEmpty(s)) { - s.close(); - } - System.out.println(e.getMessage()); - e.printStackTrace(); - - } 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 (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/magic_agv/MagicAgvDefination.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/magic_agv/MagicAgvDefination.java deleted file mode 100644 index 50f1fce..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/magic_agv/MagicAgvDefination.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.nl.acs.device_driver.basedriver.agv.magic_agv; - -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceType; -import org.springframework.stereotype.Service; - -import java.util.LinkedList; -import java.util.List; - -/** - * 普通站点定义 - */ -@Service -public class MagicAgvDefination implements DeviceDriverDefination { - @Override - public String getDriverCode() { - return "magic_agv"; - } - - @Override - public String getDriverName() { - return "标准版-MagicAgv"; - } - - @Override - public String getDriverDescription() { - return "标准版-MagicAgv"; - } - - @Override - public DeviceDriver getDriverInstance(Device device) { - return (new MagicAgvDeviceDriver()).setDevice(device).setDriverDefination(this); - - } - - @Override - public Class getDeviceDriverType() { - return MagicAgvDeviceDriver.class; - } - - @Override - public List getFitDeviceTypes() { - List types = new LinkedList(); - types.add(DeviceType.conveyor); - return types; - } -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/magic_agv/MagicAgvDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/magic_agv/MagicAgvDeviceDriver.java deleted file mode 100644 index ae0cd7e..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/magic_agv/MagicAgvDeviceDriver.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.nl.acs.device_driver.basedriver.agv.magic_agv; - -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; -import org.nl.acs.device_driver.driver.AbstractDeviceDriver; -import org.nl.acs.opc.Device; -import org.springframework.stereotype.Service; - -/** - * 普通站点 - */ -@Slf4j -@Service -public class MagicAgvDeviceDriver extends AbstractDeviceDriver implements DeviceDriver { - @Override - public Device getDevice() { - return null; - } - - @Override - public DeviceDriverDefination getDriverDefination() { - return null; - } - - @Override - public DeviceDriver setDriverDefination(DeviceDriverDefination var1) { - return null; - } - - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDefination.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDefination.java deleted file mode 100644 index 7a7ec93..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDefination.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.nl.acs.device_driver.basedriver.agv.ndcone; - -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceType; -import org.springframework.stereotype.Service; - -import java.util.LinkedList; -import java.util.List; - -/** - * NDC单工位AGV - */ -@Service -public class AgvNdcOneDefination implements DeviceDriverDefination { - @Override - public String getDriverCode() { - return "agv_ndc_one"; - } - - @Override - public String getDriverName() { - return "NDC1楼AGV"; - } - - @Override - public String getDriverDescription() { - return "NDC1楼AGV"; - } - - @Override - public DeviceDriver getDriverInstance(Device device) { - return (new AgvNdcOneDeviceDriver()).setDevice(device).setDriverDefination(this); - - } - - @Override - public Class getDeviceDriverType() { - return AgvNdcOneDeviceDriver.class; - } - - @Override - public List getFitDeviceTypes() { - List types = new LinkedList(); - types.add(DeviceType.agv); - return types; - } -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java deleted file mode 100644 index 1026a96..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ /dev/null @@ -1,670 +0,0 @@ -package org.nl.acs.device_driver.basedriver.agv.ndcone; - -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; -import lombok.extern.slf4j.Slf4j; -import net.dreamlu.mica.core.utils.StringUtil; -import org.nl.acs.AcsConfig; -import org.nl.acs.agv.server.NDCAgvService; -import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun; -import org.nl.acs.device.service.DeviceService; -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspectSiteDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; -import org.nl.acs.device_driver.driver.AbstractDeviceDriver; -import org.nl.acs.ext.wms.service.AcsToHJXService; -import org.nl.acs.ext.wms.service.AcsToWmsService; -import org.nl.acs.ext.wms.service.AcsToMesService; -import org.nl.acs.ext.wms.service.AcsToZDWmsService; -import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; -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.service.InstructionService; -import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.instruction.service.impl.InstructionServiceImpl; -import org.nl.acs.log.service.DeviceExecuteLogService; -import org.nl.acs.monitor.DeviceStageMonitor; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceManageDto; -import org.nl.acs.task.service.TaskService; -import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.lucene.service.LuceneExecuteLogService; -import org.nl.modules.lucene.service.dto.LuceneLogDto; -import org.nl.modules.system.service.ParamService; -import org.nl.modules.system.service.impl.ParamServiceImpl; -import org.nl.modules.wql.util.SpringContextHolder; - -import java.util.Map; - -/** - * NDC单工位AGV - */ -@Slf4j -@Data -@RequiredArgsConstructor -public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements DeviceDriver, DeviceStageMonitor { - - ParamService paramService = SpringContextHolder.getBean(ParamServiceImpl.class); - InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.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); - DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); - //外部系统交互 - AcsToZDWmsService acsToZDWmsService = SpringContextHolder.getBean(AcsToZDWmsService.class); - AcsToHJXService acsToHJXService = SpringContextHolder.getBean(AcsToHJXService.class); - AcsToMesService acsToMesService = SpringContextHolder.getBean(AcsToMesService.class); - - int agvaddr = 0; - int agvaddr_copy = 0; - int weight = 0; - String device_code = ""; - int phase = 0; - String error_type = "agv_error_type"; - String error_code = "0"; - int x = 0; //x坐标 - int y = 0; //y坐标 - int angle = 0; //角度 - int electric_qty = 0; //电量 - int status = 0; //三色灯状态 - int error = 0; - int last_error = 0; - String error_message = ""; - boolean flag = false; - - private synchronized void setErrorInfo(int error, String error_code, String error_message) { - this.error = error; - this.error_code = error_code; - this.error_message = error_message; - } - - private Instruction instruction; - - int mode = 2; - - 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]; - //车号 - int carno = arr[20]; - Instruction inst = null; - logServer.deviceExecuteLog(this.device_code, "", "", "接收agv上报信息:" + "phase--" + phase + " index--" + index + " 指令号--" + ikey + " 站点号--" + agvaddr + " 车号--" + carno); - Instruction link_inst = null; - if (ikey != 0) { - if (phase != 0x67 && phase != 0x71 && phase != 0x72 && phase != 0x73 && phase != 0x74 && phase != 0x75) { - inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); - this.instruction = inst; - } - } - Device device = null; - String device_code = null; - - //将车号写入DeviceManageDto - DeviceManageDto deviceManageDto = new DeviceManageDto(); - deviceManageDto.setCarno(carno); - - //分配 车id - //(不需要WCS反馈) - if (phase == 0x02) { - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈车号:" + carno + ",指令号:" + ikey); - //到达取货点 - //(Itype=1/2/3,需要WCS反馈Phase) - } else if (phase == 0x03) { - log.info("==================AGV请求取货=================="); - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令:" + device_code + ikey); - return; - } - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - log.info("{},{}", device_code, "agv地址参数有误,phase:" + phase); - return; - } - device_code = deviceService.queryDeviceCodeByAddress(agvaddr); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - device = deviceAppService.findDeviceByCode(device_code); - TaskService taskService = SpringContextHolder.getBean("taskServiceImpl"); - TaskDto task = taskService.findByCode(inst.getTask_code()); - if ((StrUtil.startWith(task.getTask_code(), "-"))) { - log.info("定点任务下发agv允许取货信号"); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - //WMS MES普通站点不需对接 - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - Object ext_system = device.getExtraValue().get("ext_system"); - //检测站点,安全交互类型为中鼎的 - if (!StringUtil.isEmpty(ext_system)) { - if (ext_system.equals("1")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "applyTake"); - log.info("请求wms取货参数:{}", jo); - HttpResponse result = acsToZDWmsService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.error("请求wms取货失败参数:{}", response); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求wms取货失败参数::"+ response) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - //焊接线 - } else if (ext_system.equals("3")) { - JSONObject jo1 = new JSONObject(); - jo1.put("point", device_code); - jo1.put("type", "1"); - jo1.put("containerCode", task.getVehicle_code()); - Object url = device.getExtraValue().get("address"); - if (StringUtil.isEmpty(ext_system)) { - log.error("请求安全交互失败,未配置焊接线IP" + device_code); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求安全交互失败,未配置焊接线IP" + device_code) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - return; - } - jo1.put("url", url); - HttpResponse result = acsToHJXService.actionRequest(jo1); - JSONObject response = JSONObject.parseObject(result.body()); - int code = response.getInteger("code"); - if (code == 200) { - log.info("请求焊接线成功,申请取货 请求结果{}", code); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求焊接线成功,申请取货 请求结果:"+code) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.error("请求焊接线失败,申请区货 错误信息{}", response); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求焊接线失败,申请区货 错误信息:"+ response) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - } else if (ext_system.equals("2")) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } - } else { - log.error("检测站点未配置检测系统"); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("检测站点未配置检测系统") - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - return; - } - } - } - //取货完毕 - //(Itype=1/2/3,需要WCS反馈Phase) - } else if (phase == 0x05) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - device_code = deviceService.queryDeviceCodeByAddress(agvaddr); - device = deviceAppService.findDeviceByCode(device_code); - - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - logServer.deviceExecuteLog(this.device_code, "", "", "对应设备号为空" + device_code); - return; - } - //校验agv上报站点编号与指令起始点相同 - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到关联编号{}对应的指令", ikey); - logServer.deviceExecuteLog(this.device_code, "", "", "未找到关联编号对应的指令" + ikey); - return; - } - TaskService taskService = SpringContextHolder.getBean("taskServiceImpl"); - TaskDto task = taskService.findByCode(inst.getTask_code()); - - if ((StrUtil.startWith(task.getTask_code(), "-"))) { - log.info("定点任务下发agv允许取货信号"); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - //MES下发需要上报取货完成 - if ("2".equals(task.getCreate_by())) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "takeFinish"); - log.info("请求MES取货完成参数:{}", jo); - HttpResponse result = acsToMesService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode != 0){ - log.error("请求MES取货完成失败参数:{}", response); - return; - } - } - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - Object ext_system = device.getExtraValue().get("ext_system"); - //检测站点,安全交互类型为中鼎的 - if (!StringUtil.isEmpty(ext_system)) { - if (ext_system.equals("1")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "takeFinish"); - log.info("请求wms取货完毕参数:{}", jo); - HttpResponse result = acsToZDWmsService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.error("请求wms取货失败参数:{}", response); - } - //焊接线 - } else if (ext_system.equals("3")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "takeFinish"); - log.info("请求MES取货完成参数:{}", jo); - HttpResponse result = acsToMesService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - log.info("请求MES成功,取货完成 请求结果{}", responseCode); - JSONObject jo1 = new JSONObject(); - jo1.put("point", device_code); - jo1.put("type", "3"); - jo1.put("containerCode", task.getVehicle_code()); - Object url = device.getExtraValue().get("address"); - if (StringUtil.isEmpty(ext_system)) { - log.error("请求焊接线失败,未配置焊接线IP" + device_code); - return; - } - jo1.put("url", url); - HttpResponse result2 = acsToHJXService.actionFinish(jo1); - JSONObject response2 = JSONObject.parseObject(result2.body()); - int code = response2.getInteger("code"); - if (code == 200) { - log.info("请求焊接线成功,申请取货完成 请求结果{}", code); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("请求焊接线失败,申请取货完成 错误信息{}", response2); - } - } else { - log.info("请求MES取货完成失败,取货完成 错误码{}", responseCode); - } - } else if (ext_system.equals("2")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "takeFinish"); - log.info("请求MES取货完成参数:{}", jo); - HttpResponse result = acsToMesService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - } else { - log.error("检测站点未配置检测系统"); - return; - } - } - - if (ObjectUtil.isNotEmpty(data)) { - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + Bytes2HexString(data)); - } - //到达放货点 - //(Itype=1/2/3,需要WCS反馈Phase) - } else if (phase == 0x07) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - device_code = deviceService.queryDeviceCodeByAddress(agvaddr); - - device = deviceAppService.findDeviceByCode(device_code); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - TaskService taskService = SpringContextHolder.getBean("taskServiceImpl"); - TaskDto task = taskService.findByCode(inst.getTask_code()); - if ((StrUtil.startWith(task.getTask_code(), "-"))) { - log.info("定点任务下发agv允许取货信号"); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - Object ext_system = device.getExtraValue().get("ext_system"); - //检测站点,安全交互类型为中鼎的 - if (!StringUtil.isEmpty(ext_system)) { - if (ext_system.equals("1")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "applyPut"); - log.info("请求wms请求放货参数:{}", jo); - HttpResponse result = acsToZDWmsService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.error("请求wms请求放货失败参数:{}", response); - } - //焊接线 - } else if (ext_system.equals("3")) { - JSONObject jo1 = new JSONObject(); - jo1.put("point", device_code); - jo1.put("type", "2"); - jo1.put("containerCode", task.getVehicle_code()); - Object url = device.getExtraValue().get("address"); - if (StringUtil.isEmpty(ext_system)) { - log.error("请求焊接线请求放货,未配置焊接线IP" + device_code); - return; - } - jo1.put("url", url); - HttpResponse result = acsToHJXService.actionRequest(jo1); - JSONObject response = JSONObject.parseObject(result.body()); - int code = response.getInteger("code"); - if (code == 200) { - log.info("请求焊接线放货成功,申请取货 请求结果{}", code); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.error("请求焊接线放货失败,申请区货 错误信息{}", response); - return; - } - } else if (ext_system.equals("2")) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } - } else { - log.error("检测站点未配置检测系统"); - return; - } - } - } - - //校验agv上报站点编号与指令起始点相同 - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到关联编号{}对应的指令", ikey); - return; - } - - if (flag) { - log.info("==================允许AGV放货=================="); - log.info("{},{}", device_code, "允许AGV放货。"); - } - - - //放货完毕 - //(Itype=1/2/3,需要WCS反馈Phase) - } else if (phase == 0x09) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - device_code = deviceService.queryDeviceCodeByAddress(agvaddr); - - device = deviceAppService.findDeviceByCode(device_code); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - //校验agv上报站点编号与指令起始点相同 - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到编号{}对应的指令", ikey); - return; - } - TaskService taskService = SpringContextHolder.getBean("taskServiceImpl"); - TaskDto task = taskService.findByCode(inst.getTask_code()); - if ((StrUtil.startWith(task.getTask_code(), "-"))) { - log.info("定点任务下发agv允许取货信号"); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - //mes下发需要上报放货完成 - if ("2".equals(task.getCreate_by())){ - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "putFinish"); - log.info("请求MES放货完成参数:{}", jo); - HttpResponse result = acsToMesService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode != 0) { - log.error("请求MES放货失败参数:{}", response); - return; - } //wms下发需要上报放货完成 - } else if ("1".equals(task.getCreate_by())){ - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "putFinish"); - log.info("请求WMS放货完成参数:{}", jo); - HttpResponse result = acsToZDWmsService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode != 0) { - log.info("请求WMS放货货完成失败 错误信息{}", responseCode); - return; - } - } - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - Object ext_system = device.getExtraValue().get("ext_system"); - //检测站点,安全交互类型为中鼎的 - if (!StringUtil.isEmpty(ext_system)) { - if (ext_system.equals("1")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "putFinish"); - log.info("请求wms放货完成参数:{}", jo); - HttpResponse result = acsToZDWmsService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.error("请求wms放货失败参数:{}", response); - return; - } - //焊接线 - } else if (ext_system.equals("3")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "putFinish"); - log.info("请求MES放货完成参数:{}", jo); - HttpResponse result = acsToMesService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - JSONObject jo1 = new JSONObject(); - jo1.put("point", device_code); - jo1.put("type", "4"); - jo1.put("containerCode", task.getVehicle_code()); - Object url = device.getExtraValue().get("address"); - if (StringUtil.isEmpty(ext_system)) { - log.error("请求MES放货完成失败,未配置焊接线IP" + device_code); - } - jo1.put("url", url); - HttpResponse result2 = acsToHJXService.actionFinish(jo1); - JSONObject response2 = JSONObject.parseObject(result2.body()); - int code = response2.getInteger("code"); - if (code == 200) { - log.info("请求焊接线放货货完成成功,请求结果{}", code); - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("请求焊接线放货货完成失败 错误信息{}", response2); - return; - } - } else { - log.info("请求MES放货完成失败,错误码{}", responseCode); - return; - } - } else if (ext_system.equals("2")) { - JSONObject jo = new JSONObject(); - jo.put("taskCode", task.getTask_code()); - jo.put("carId", carno); - jo.put("taskType ", task.getTask_type()); - jo.put("feedbackStatus", "putFinish"); - log.info("请求MES放货完成参数:{}", jo); - HttpResponse result = acsToMesService.taskFeedback(jo); - JSONObject response = JSONObject.parseObject(result.body()); - int responseCode = response.getInteger("responseCode"); - if (responseCode == 0) { - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("请求MES放货货完成失败 错误信息{}", responseCode); - return; - } - } - } - } else { - log.error("检测站点未配置检测系统"); - return; - } - } - - } - - //到达位置点 - //(需要WCS反馈) - else if (phase == 0x64) {//param,agv货位id待定 - //1、根据货位id找到对应三工位设备,赋给agv属性地址对应的满料位设备 - agvaddr = arr[18] * 256 + arr[19]; - agvaddr_copy = agvaddr; - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - } else if (phase == 0x67) {//agv异常 - if (ikey == 0) { - this.setErrorInfo(ikey, "0", "正常"); - } else { - Map error = ErrorUtil.getAgvErrorMsg(ikey); - String code = error.get("code"); - String info = error.get("info"); - this.setErrorInfo(ikey, code, info); - } - if (error != last_error) { - DeviceErrorLogDto dto = new DeviceErrorLogDto(); - dto.setDevice_code(this.getDevice().getDevice_code()); - dto.setError_code(String.valueOf(error_code)); - dto.setError_info(error_message); - deviceErrorLogService.create(dto); - } - data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); - last_error = error; - } - if (!ObjectUtil.isEmpty(data)) { - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + Bytes2HexString(data)); - OneNDCSocketConnectionAutoRun.write(data); - } - - } - - public static String Bytes2HexString(byte[] b) { - String ret = ""; - for (int i = 0; i < b.length; i++) { - String hex = Integer.toHexString(b[i] & 0xFF); - if (hex.length() == 1) { - hex = '0' + hex; - } - ret += hex.toUpperCase(); - } - return ret; - } - - - @Override - public JSONObject getDeviceStatusName() { - JSONObject jo = new JSONObject(); - //agv编码 - jo.put("car_no", this.getDevice().getDevice_code()); - //agv名称 - jo.put("device_name", this.getDevice().getDevice_name()); - //x坐标 - jo.put("x", this.getX()); - //y坐标 - jo.put("y", this.getY()); - //角度 - jo.put("angle", this.getAngle()); - //电量 - jo.put("electricity", this.getElectric_qty()); - String status_name = this.status == 1 ? "关机" : this.status == 2 ? "工作中" : this.status == 3 ? "交通管制" : this.status == 4 ? "任务等待" : this.status == 5 ? "充电中" : this.status == 6 ? "故障中" : this.status == 7 ? "电量低" : "正常"; - //agv状态 - jo.put("status_name", status_name); - //任务号 - jo.put("task_code", ObjectUtil.isEmpty(instruction) ? "0" : instruction.getTask_code()); - //异常 - jo.put("fault", this.getError_message()); - return jo; - } - - @Override - public void setDeviceStatus(JSONObject data) { - - } - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDefination.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDefination.java deleted file mode 100644 index c67d99d..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDefination.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.nl.acs.device_driver.basedriver.agv.ndctwo; - -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; -import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceType; -import org.springframework.stereotype.Service; - -import java.util.LinkedList; -import java.util.List; - -/** - * NDC双工位AGV - */ -@Service -public class AgvNdcTwoDefination implements DeviceDriverDefination { - @Override - public String getDriverCode() { - return "agv_ndc_two"; - } - - @Override - public String getDriverName() { - return "NDC双工位AGV"; - } - - @Override - public String getDriverDescription() { - return "NDC双工位AGV"; - } - - @Override - public DeviceDriver getDriverInstance(Device device) { - return (new AgvNdcTwoDeviceDriver()).setDevice(device).setDriverDefination(this); - - } - - @Override - public Class getDeviceDriverType() { - return AgvNdcTwoDeviceDriver.class; - } - - @Override - public List getFitDeviceTypes() { - List types = new LinkedList(); - types.add(DeviceType.agv); - return types; - } -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java deleted file mode 100644 index 8a77cad..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ /dev/null @@ -1,477 +0,0 @@ -package org.nl.acs.device_driver.basedriver.agv.ndctwo; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import lombok.Data; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.agv.server.NDCAgvService; -import org.nl.acs.device.service.DeviceService; -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_storage.StandardStorageDeviceDriver; -import org.nl.acs.device_driver.driver.AbstractDeviceDriver; -import org.nl.acs.ext.wms.service.AcsToWmsService; -import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; -import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.instruction.service.dto.Instruction; -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.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.modules.system.service.ParamService; -import org.nl.modules.wql.util.SpringContextHolder; - - -/** - * NDC双工位AGV - */ -@Slf4j -@Data -@RequiredArgsConstructor -public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements DeviceDriver { - - ParamService ParamService = SpringContextHolder.getBean(ParamService.class); - InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.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); - int agvaddr = 0; - int agvaddr_copy = 0; - int weight = 0; - int agv_power = 0; - String device_code = ""; - int phase = 0; - int region = 0; - - @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]; - //车号 - int carno = arr[20]; - Instruction inst = null; - Device agv_device = null; - if (carno != 0) { - agv_device = deviceAppService.findDeviceByCode(String.valueOf(carno)); - } - if (ikey != 0) { - inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); - } - - - Device device = null; - String old_device_code = null; - String emptyNum = null; - String device_code = null; - - 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); - - //普通站点 - StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; - //货架 - StandardStorageDeviceDriver standardStorageDeviceDriver; - - if (phase == 0x02) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + "反馈:" + data); - } - //到达取货点 - //(Itype=1/2/3,需要WCS反馈Phase) - else if (phase == 0x03) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - device_code = deviceService.queryDeviceCodeByAddress(agvaddr); - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - logServer.deviceExecuteLog(this.device_code, "", "", agvaddr + "对应设备号为空"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - // 取货完毕 - //(Itype=1/2/3,需要WCS反馈Phase) - else if (phase == 0x05) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - logServer.deviceExecuteLog(this.device_code, "", "", "对应设备号为空" + device_code); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - //到达取货点(Itype=1、3,需要WCS反馈) - else if (phase == 0x08) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - String agv_inst_type = inst.getAgv_inst_type(); - if (StrUtil.equals(agv_inst_type, "1") || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - } - // 取货完毕 - //(Itype=1、3,需要WCS反馈) - else if (phase == 0x0A) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - String agv_inst_type = inst.getAgv_inst_type(); - if (StrUtil.equals(agv_inst_type, "1") || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - - } - //(Itype=1,上传称重数据) - else if (phase == 0x64) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - String instruction_type = inst.getInstruction_type(); - //上传称重数据 - if (StrUtil.equals(instruction_type, "1")) { - weight = agvaddr; -// inst.setWeight(String.valueOf(weight)); -// instructionService.update(inst); - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - } - // 到达放货点 - //(Itype=1/2/3,需要WCS反馈) - else if (phase == 0x0C) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - //放货完成 - //(Itype=1/2/3,需要WCS反馈) - else if (phase == 0x0E) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - //到达放货点 - //(Itype=1、3,需要WCS反馈) - else if (phase == 0x10) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - String agv_inst_type = inst.getAgv_inst_type(); - if (StrUtil.equals(agv_inst_type, "1") || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - } - //放货完成 - //(Itype=1、3,需要WCS反馈) - else if (phase == 0x12) { - if (agvaddr == 0) { - agvaddr = agvaddr_copy; - } - if (agvaddr < 1) { - logServer.deviceExecuteLog(this.device_code, "", "", "agv地址参数有误,phase:" + phase); - return; - } - 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); - if (ObjectUtil.isEmpty(device_code)) { - log.info(agvaddr + "对应设备号为空!"); - return; - } - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - String agv_inst_type = inst.getAgv_inst_type(); - if (StrUtil.equals(agv_inst_type, "1") || StrUtil.equals(agv_inst_type, "3")) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - } - //上传AGV电量 - else if (phase == 0x73) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - agv_power = ikey; - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - - } //进入区域(phase值) - else if (phase == 0x50) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - region = agvaddr; - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - - } - //离开区域(phase值) - else if (phase == 0x51) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - region = agvaddr; - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - - } - //上报异常信息 - //(不需要WCS反馈) - else if (phase == 0x67) { - //故障信息 - if (agvaddr == 0) { - - } - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); - } - if (!ObjectUtil.isEmpty(data)) { - logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); -// if (StrUtil.equals(inst.getAgv_system_type(), "2")) { -// TwoNDCSocketConnectionAutoRun.write(data); -// } else if (StrUtil.equals(inst.getAgv_system_type(), "3")) { -// TwoNDC2SocketConnectionAutoRun.write(data); -// } - } - } - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java index b77debf..225d846 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java @@ -14,7 +14,6 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.AcsConfig; -import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -71,8 +70,7 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class); @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); - @Autowired - NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class); + //当前指令 Instruction inst = null; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_ckk/SiemensConveyorCkkDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_ckk/SiemensConveyorCkkDeviceDriver.java index a324f6c..cdaa7a7 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_ckk/SiemensConveyorCkkDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_ckk/SiemensConveyorCkkDeviceDriver.java @@ -13,7 +13,6 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.AcsConfig; -import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; @@ -66,8 +65,6 @@ public class SiemensConveyorCkkDeviceDriver extends AbstractOpcDeviceDriver impl AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class); @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); - @Autowired - NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class); //当前指令 Instruction inst = null; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_labeling/SiemensConveyorLabelingDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_labeling/SiemensConveyorLabelingDeviceDriver.java index b495fd2..dc4369e 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_labeling/SiemensConveyorLabelingDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor_labeling/SiemensConveyorLabelingDeviceDriver.java @@ -11,7 +11,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.AcsConfig; -import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -66,7 +65,6 @@ public class SiemensConveyorLabelingDeviceDriver extends AbstractOpcDeviceDriver @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); - @Autowired NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class); // 当前指令 Instruction inst = null; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java index f20edf4..3be114a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java @@ -156,6 +156,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp public void execute() { try { + Thread.sleep(2000); this.devicecode = this.getDevice().getDevice_code(); if (this.reqTakeRequireSuccess && ObjectUtil.isNotEmpty(this.reqTakeInstCode)) { Instruction instruction = instructionService.findByCodeFromCache(this.reqTakeInstCode); @@ -211,12 +212,6 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp } } else { log.error("请求wms取货失败参数:{}", response); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求wms取货失败参数::" + response) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); } //焊接线 } else if (ext_system.equals("3")) { @@ -227,26 +222,16 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp Object url = device.getExtraValue().get("address"); if (StringUtil.isEmpty(ext_system)) { log.error("请求安全交互失败,未配置焊接线IP" + this.devicecode); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求安全交互失败,未配置焊接线IP" + this.devicecode) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); return; } jo1.put("url", url); HttpResponse result = acsToHJXService.actionRequest(jo1); + if (result==null){ + return; + } JSONObject response = JSONObject.parseObject(result.body()); int code = response.getInteger("code"); if (code == 200) { - log.info("请求焊接线成功,申请取货 请求结果{}", code); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求焊接线成功,申请取货 请求结果:" + code) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); StorageCellDto dto = StorageCellServiceImpl.Storage_Cache_Map.get(instruction.getStart_point_code()); if (dto == null) { log.error(instruction.getStart_point_code()+"Storage_Cache_Map数据不存在"); @@ -260,14 +245,8 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp } else { resetInstTask(agvphase); } - } else { - log.error("请求焊接线失败,申请区货 错误信息{}", response); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("请求焊接线失败,申请区货 错误信息:" + response) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); + }else { + System.out.println("焊接线接口交互异常"); } } else if (ext_system.equals("2")) { StorageCellDto dto = StorageCellServiceImpl.Storage_Cache_Map.get(instruction.getStart_point_code()); @@ -286,12 +265,6 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp } } else { log.error("检测站点未配置检测系统"); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("检测站点未配置检测系统") - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); return; } } @@ -684,7 +657,8 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp } } } - } catch (IOException e) { + } catch (Exception e) { + System.out.println("--交互异常---"); e.printStackTrace(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index c1e49e4..d9371f8 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -8,7 +8,6 @@ import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; -import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.dto.StorageCellDto; import org.nl.acs.device.service.impl.StorageCellServiceImpl; @@ -57,8 +56,6 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); - @Autowired - NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/NdcHttpUtil.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/NdcHttpUtil.java index fae7780..9a5aff4 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/NdcHttpUtil.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/NdcHttpUtil.java @@ -4,7 +4,6 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; import org.nl.acs.AcsConfig; -import org.nl.acs.ext.wms.log.ToOthersInterfaceLog; import org.nl.modules.quartz.CommonFinalParam; import org.nl.modules.system.service.ParamService; import org.springframework.beans.factory.annotation.Autowired; @@ -18,7 +17,6 @@ public class NdcHttpUtil { @Autowired private ParamService paramService; - @ToOthersInterfaceLog("ACS->NDC") public UnifiedResponse sendPostRequest(String path, W requestParam, Class type) { if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_NDC).getValue(), CommonFinalParam.ONE)) { return new UnifiedResponse<>(false, "未开启连接该系统!"); @@ -36,7 +34,6 @@ public class NdcHttpUtil { } } - @ToOthersInterfaceLog("ACS->NDC") public UnifiedResponse sendPostRequest(String path, W requestParam) { if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_NDC).getValue(), CommonFinalParam.ONE)) { return new UnifiedResponse<>(false, "未开启连接该系统!"); @@ -54,7 +51,6 @@ public class NdcHttpUtil { } } - @ToOthersInterfaceLog("ACS->NDC") public UnifiedResponse sendPostRequest(String path, Class type) { if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_NDC).getValue(), CommonFinalParam.ONE)) { return new UnifiedResponse<>(false, "未开启连接该系统!"); @@ -71,7 +67,6 @@ public class NdcHttpUtil { } } - @ToOthersInterfaceLog("ACS->NDC") public UnifiedResponse sendPostRequest(String path) { if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_NDC).getValue(), CommonFinalParam.ONE)) { return new UnifiedResponse<>(false, "未开启连接该系统!"); @@ -88,7 +83,6 @@ public class NdcHttpUtil { } } - @ToOthersInterfaceLog("ACS->NDC") public UnifiedResponse sendGetRequest(String path, Class type) { if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_NDC).getValue(), CommonFinalParam.ONE)) { return new UnifiedResponse<>(false, "未开启连接该系统!"); @@ -105,7 +99,6 @@ public class NdcHttpUtil { } } - @ToOthersInterfaceLog("ACS->NDC") public UnifiedResponse sendGetRequest(String path) { if (!StrUtil.equals(paramService.findByCode(AcsConfig.HAS_NDC).getValue(), CommonFinalParam.ONE)) { return new UnifiedResponse<>(false, "未开启连接该系统!"); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/OtherToInterfaceLogAspect.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/OtherToInterfaceLogAspect.java deleted file mode 100644 index 1fa49de..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/OtherToInterfaceLogAspect.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.nl.acs.ext.wms.log; - -import com.alibaba.fastjson.JSON; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.nl.acs.ext.wms.IpUtil; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.lucene.service.LuceneExecuteLogService; -import org.nl.modules.lucene.service.dto.LuceneLogDto; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.*; - -import java.lang.reflect.Method; - -@Aspect -@Component -public class OtherToInterfaceLogAspect { - @Autowired - private LuceneExecuteLogService logService; - - @Around("@annotation(org.nl.acs.ext.wms.log.OthersToInterfaceLog)") - public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { - long startTime = System.currentTimeMillis(); - - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - - Class targetClass = joinPoint.getTarget().getClass(); - RequestMapping classRequestMapping = targetClass.getAnnotation(RequestMapping.class); - String classUrlValue = classRequestMapping != null ? String.join(",", classRequestMapping.value()) : "No Class Annotation"; - - String methodUrlValue = ""; - if (method.isAnnotationPresent(GetMapping.class)) { - GetMapping getMapping = method.getAnnotation(GetMapping.class); - methodUrlValue = String.join(",", getMapping.value()); - } else if (method.isAnnotationPresent(PostMapping.class)) { - PostMapping postMapping = method.getAnnotation(PostMapping.class); - methodUrlValue = String.join(",", postMapping.value()); - } else if (method.isAnnotationPresent(PutMapping.class)) { - PutMapping putMapping = method.getAnnotation(PutMapping.class); - methodUrlValue = String.join(",", putMapping.value()); - } else if (method.isAnnotationPresent(DeleteMapping.class)) { - DeleteMapping deleteMapping = method.getAnnotation(DeleteMapping.class); - methodUrlValue = String.join(",", deleteMapping.value()); - } else if (method.isAnnotationPresent(RequestMapping.class)) { - RequestMapping methodRequestMapping = method.getAnnotation(RequestMapping.class); - methodUrlValue = String.join(",", methodRequestMapping.value()); - } - String request_direction = ""; - if (method.isAnnotationPresent(OthersToInterfaceLog.class)) { - OthersToInterfaceLog interfaceLog = method.getAnnotation(OthersToInterfaceLog.class); - request_direction = interfaceLog.value(); - } - - String methodName = joinPoint.getSignature().getName(); - Object[] args = joinPoint.getArgs(); - - LuceneLogDto logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(IpUtil.localIP() + classUrlValue + methodUrlValue) - .request_direction(request_direction) - .request_param(JSON.toJSONString(args)) - .method(methodName) - .content("开始请求") - .build(); - logService.interfaceExecuteLog(logDto); - Object result = null; - try { - result = joinPoint.proceed(); - } catch (Exception e) { - logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(IpUtil.localIP() + classUrlValue + methodUrlValue) - .request_direction(request_direction) - .request_param(JSON.toJSONString(args)) - .method(methodName) - .response_param(e.getMessage()) - .executeTime(System.currentTimeMillis() - startTime) - .content("执行异常") - .build(); - logService.interfaceExecuteLog(logDto); - throw new BadRequestException(e.getMessage()); - } - logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(IpUtil.localIP() + classUrlValue + methodUrlValue) - .request_direction(request_direction) - .request_param(JSON.toJSONString(args)) - .method(methodName) - .response_param(JSON.toJSONString(result)) - .executeTime(System.currentTimeMillis() - startTime) - .content("响应请求") - .build(); - logService.interfaceExecuteLog(logDto); - return result; - } -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/OthersToInterfaceLog.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/OthersToInterfaceLog.java deleted file mode 100644 index f7432f2..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/OthersToInterfaceLog.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.nl.acs.ext.wms.log; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface OthersToInterfaceLog { - String value() default ""; -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/ToOtherInterfaceLogAspect.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/ToOtherInterfaceLogAspect.java deleted file mode 100644 index 57b095e..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/ToOtherInterfaceLogAspect.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.nl.acs.ext.wms.log; - -import com.alibaba.fastjson.JSON; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.lucene.service.LuceneExecuteLogService; -import org.nl.modules.lucene.service.dto.LuceneLogDto; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.util.ReflectionUtils; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -@Aspect -@Component -public class ToOtherInterfaceLogAspect { - private static final ConcurrentMap, Field> fieldCache = new ConcurrentHashMap<>(); - private static final ConcurrentMap, Method> methodCache = new ConcurrentHashMap<>(); - - @Autowired - private LuceneExecuteLogService logService; - - @Around("@annotation(org.nl.acs.ext.wms.log.ToOthersInterfaceLog)") - public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { - long startTime = System.currentTimeMillis(); - - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - - - String request_direction = ""; - if (method.isAnnotationPresent(ToOthersInterfaceLog.class)) { - ToOthersInterfaceLog interfaceLog = method.getAnnotation(ToOthersInterfaceLog.class); - request_direction = interfaceLog.value(); - } - String methodName = joinPoint.getSignature().getName(); - Object[] args = joinPoint.getArgs(); - Object url = ""; - Object requesr_param = ""; - if (args.length > 1) { - url = args[0]; - requesr_param = args[1]; - } - - Class targetClass = joinPoint.getTarget().getClass(); - - Object ipPort = ""; - try { - Field requestAdapterField = fieldCache.computeIfAbsent(targetClass, clazz -> { - try { - Field field = clazz.getDeclaredField("REQUEST_ADAPTER"); - ReflectionUtils.makeAccessible(field); - return field; - } catch (NoSuchFieldException e) { - throw new RuntimeException(e); - } - }); - - Object requestAdapterObject = requestAdapterField.get(null); - - Method getUrlMethod = methodCache.computeIfAbsent(requestAdapterObject.getClass(), clazz -> { - try { - Method m = clazz.getDeclaredMethod("getUrl"); - ReflectionUtils.makeAccessible(m); - return m; - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } - }); - - ipPort = getUrlMethod.invoke(requestAdapterObject); - } catch (Exception e) { - LuceneLogDto logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(ipPort + String.valueOf(url)) - .request_direction(request_direction) - .request_param(JSON.toJSONString(requesr_param)) - .method(methodName) - .content("开始请求,获取url失败," + e.getMessage()) - .build(); - logService.interfaceExecuteLog(logDto); - } - - LuceneLogDto logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(ipPort + String.valueOf(url)) - .request_direction(request_direction) - .request_param(JSON.toJSONString(requesr_param)) - .method(methodName) - .content("开始请求") - .build(); - logService.interfaceExecuteLog(logDto); - Object result = null; - try { - result = joinPoint.proceed(); - } catch (Exception e) { - logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(ipPort + String.valueOf(url)) - .request_direction(request_direction) - .request_param(JSON.toJSONString(requesr_param)) - .method(methodName) - .response_param(e.getMessage()) - .executeTime(System.currentTimeMillis() - startTime) - .content("响应请求") - .build(); - logService.interfaceExecuteLog(logDto); - throw new BadRequestException(e.getMessage()); - } - logDto = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(ipPort + String.valueOf(url)) - .request_direction(request_direction) - .request_param(JSON.toJSONString(requesr_param)) - .method(methodName) - .response_param(JSON.toJSONString(result)) - .executeTime(System.currentTimeMillis() - startTime) - .content("响应请求") - .build(); - logService.interfaceExecuteLog(logDto); - return result; - } -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/ToOthersInterfaceLog.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/ToOthersInterfaceLog.java deleted file mode 100644 index 79ad7a8..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/log/ToOthersInterfaceLog.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.nl.acs.ext.wms.log; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface ToOthersInterfaceLog { - String value() default ""; -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java deleted file mode 100644 index 494393c..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java +++ /dev/null @@ -1,114 +0,0 @@ - -package org.nl.acs.ext.wms.rest; - - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.ext.wms.liKuData.*; -import org.nl.acs.ext.wms.service.AcsToLiKuService; -import org.nl.acs.ext.wms.service.AcsToWmsService; -import org.nl.modules.logging.InterfaceLogType; -import org.nl.modules.logging.annotation.Log; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -/** - * @author ludj - * @date 2021-07-21 - **/ -@RestController -@RequiredArgsConstructor -@Api(tags = "立库接口") -@RequestMapping("/api/liku") -@Slf4j -public class AcsToLiKuController { - private final AcsToLiKuService acsToLiKuService; - - @PostMapping("/inStore") - @Log(value = "下发立库入库任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("下发立库物料入库任务") - public ResponseEntity inStore(@RequestBody InStoreRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.inStore(requestParam), HttpStatus.OK); - } - - @PostMapping("/outStore") - @Log(value = "下发立库出库任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("下发立库出库任务") - public ResponseEntity outStore(@RequestBody OutStoreRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.outStore(requestParam), HttpStatus.OK); - } - - @PostMapping("/emptyVehicleOutStore") - @Log(value = "下发立库空盘出库任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("下发立库空盘出库任务") - public ResponseEntity emptyVehicleOutStore(@RequestBody EmptyVehicleOutStoreRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.emptyVehicleOutStore(requestParam), HttpStatus.OK); - } - - @PostMapping("/moveStore") - @Log(value = "下发立库移库任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("下发立库移库任务") - public ResponseEntity moveStore(@RequestBody MoveStoreRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.moveStore(requestParam), HttpStatus.OK); - } - - @PostMapping("/inStoreReset") - @Log(value = "下发立库入库任务调整",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("下发立库入库任务调整") - public ResponseEntity inStoreReset(@RequestBody InStoreResetRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.inStoreReset(requestParam), HttpStatus.OK); - } - - @PostMapping("/moveStoreReset") - @Log(value = "下发立库移库任务调整",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("下发立库移库任务调整") - public ResponseEntity moveStoreReset(@RequestBody MoveStoreResetRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.moveStoreReset(requestParam), HttpStatus.OK); - } - - @PostMapping("/roadWayIsLock") - @Log(value = "下发立库巷道锁定或解锁",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("向立库下发巷道锁定或解锁") - public ResponseEntity roadWayIsLock(@RequestBody RoadWayIsLockRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.roadWayIsLock(requestParam), HttpStatus.OK); - } - - @PostMapping("/cancelTask") - @Log(value = "取消立库任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("取消立库任务") - public ResponseEntity cancelTask(@RequestBody CancelTaskRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.cancelTask(requestParam), HttpStatus.OK); - } - - @PostMapping("/queryCarStatus") - @Log(value = "查询四向车状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("查询四向车状态") - public ResponseEntity queryCarStatus(@RequestBody DeviceStatusRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.queryCarDeviceStatus(requestParam), HttpStatus.OK); - } - - @PostMapping("/queryTsjStatus") - @Log(value = "查询提升机状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("查询提升机状态") - public ResponseEntity queryTsjStatus(@RequestBody DeviceStatusRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.queryTsjDeviceStatus(requestParam), HttpStatus.OK); - } - - @PostMapping("/querySsxStatus") - @Log(value = "查询提升机状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) - @ApiOperation("查询提升机状态") - public ResponseEntity querySsxStatus(@RequestBody DeviceStatusRequest requestParam) { - return new ResponseEntity<>(acsToLiKuService.queryTsjDeviceStatus(requestParam), HttpStatus.OK); - } - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/KitToAcsController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/KitToAcsController.java index 99fabe7..454ce21 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/KitToAcsController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/KitToAcsController.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.acs.ext.wms.log.OthersToInterfaceLog; import org.nl.acs.ext.wms.service.NDCToAcsService; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.logging.annotation.Log; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.CollectionUtils; @@ -28,7 +28,7 @@ public class KitToAcsController { @SaIgnore @PostMapping("/agvCallback") - @OthersToInterfaceLog("kit->ACS") + @Log("kit->ACS") public ResponseEntity agvCallback(@RequestParam Map kitToAcsParam) throws Exception{ JSONObject param = null; if (kitToAcsParam == null || CollectionUtils.isEmpty(kitToAcsParam)){ diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/LiKuToACSController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/LiKuToACSController.java deleted file mode 100644 index 7e5eefe..0000000 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/LiKuToACSController.java +++ /dev/null @@ -1,66 +0,0 @@ - -package org.nl.acs.ext.wms.rest; - - -import cn.dev33.satoken.annotation.SaIgnore; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.ext.wms.liKuData.*; -import org.nl.acs.ext.wms.service.LiKuToAcsService; -import org.nl.modules.logging.InterfaceLogType; -import org.nl.modules.logging.annotation.Log; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author wangs - * @date 2021-07-21 - **/ -@RestController -@RequiredArgsConstructor -@Api(tags = "立库接口") -@RequestMapping("/api/likuToACS") -@Slf4j -public class LiKuToACSController { - private final LiKuToAcsService liKuToAcsService; - - @SaIgnore - @PostMapping("/inStoreReport") - @Log(value = "立库反馈入库任务状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LK_TO_ACS) - @ApiOperation("立库反馈入库任务状态") - public ResponseEntity inStoreReport(@RequestBody InStoreReportRequest requestParam) throws Exception { - return new ResponseEntity<>(liKuToAcsService.inStoreReport(requestParam), HttpStatus.OK); - } - - @SaIgnore - @PostMapping("/outStoreReport") - @Log(value = "立库反馈出库任务状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LK_TO_ACS) - @ApiOperation("立库反馈出库任务状态") - public ResponseEntity outStoreReport(@RequestBody OutStoreReportRequest requestParam) throws Exception { - return new ResponseEntity<>(liKuToAcsService.outStoreReport(requestParam), HttpStatus.OK); - } - - @SaIgnore - @PostMapping("/moveStoreReport") - @Log(value = "立库反馈移库任务状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LK_TO_ACS) - @ApiOperation("立库反馈移库任务状态") - public ResponseEntity moveStoreReport(@RequestBody MoveStoreReportRequest requestParam) throws Exception { - return new ResponseEntity<>(liKuToAcsService.moveStoreReport(requestParam), HttpStatus.OK); - } - - @SaIgnore - @PostMapping("/putEmptyPallet") - @Log(value = "立库请求放空盘",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LK_TO_ACS) - @ApiOperation("立库请求放空盘") - public ResponseEntity putEmptyPallet(@RequestBody putEmptyPalletRequest requestParam) throws Exception { - return new ResponseEntity<>(liKuToAcsService.putEmptyPallet(requestParam), HttpStatus.OK); - } - - -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToHJXService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToHJXService.java index 2af3a03..c1e301a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToHJXService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToHJXService.java @@ -11,12 +11,12 @@ public interface AcsToHJXService { * 动作请求反馈 * @param jsonObject */ - HttpResponse actionRequest(JSONObject jsonObject) throws IOException; + HttpResponse actionRequest(JSONObject jsonObject); /** * 动作完成反馈 * @param jsonObject */ - HttpResponse actionFinish(JSONObject jsonObject) throws IOException; + HttpResponse actionFinish(JSONObject jsonObject); /** * 任务反馈 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToZDWmsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToZDWmsService.java index 12545cc..5217161 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToZDWmsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToZDWmsService.java @@ -14,7 +14,7 @@ public interface AcsToZDWmsService { * * */ - HttpResponse taskFeedback(JSONObject whereJson) throws IOException; + HttpResponse taskFeedback(JSONObject whereJson); /** * 任务取消 @@ -22,7 +22,7 @@ public interface AcsToZDWmsService { * * */ - HttpResponse taskDeprecate(JSONObject whereJson) throws IOException; + HttpResponse taskDeprecate(JSONObject whereJson); /** * 设备状态上传 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToHJXServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToHJXServiceImpl.java index 17e47b1..58891a9 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToHJXServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToHJXServiceImpl.java @@ -1,24 +1,26 @@ package org.nl.acs.ext.wms.service.impl; -import cn.hutool.http.Header; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import io.jsonwebtoken.lang.Assert; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.acs.AcsConfig; import org.nl.acs.device.address.service.AddressService; import org.nl.acs.device.address.service.dto.AddressDto; import org.nl.acs.ext.wms.service.AcsToHJXService; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.system.service.ParamService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; -import java.io.IOException; - @Service @RequiredArgsConstructor @Slf4j @@ -36,102 +38,105 @@ public class AcsToHJXServiceImpl implements AcsToHJXService { public String token; @Override - public HttpResponse actionRequest(JSONObject jsonObject) throws IOException { + public HttpResponse actionRequest(JSONObject jsonObject) { HttpResponse execute = null; + String wmsurl = jsonObject.getString("url"); + String point = jsonObject.getString("point"); + Assert.noNullElements(new Object[]{wmsurl,point,jsonObject.getString("type"),}, "actionRequest请求参数不能为空"); + String type = "1".equals(jsonObject.getString("type")) ? "取货" : "放货"; + AddressDto addressDto = addressService.findByCode("actionRequest"); + String url = wmsurl + addressDto.getMethods_url(); + long start = System.currentTimeMillis(); try { - String wmsurl = jsonObject.getString("url"); - AddressDto addressDto = addressService.findByCode("actionRequest"); - String url = wmsurl + addressDto.getMethods_url(); log.info("actionRequest-----请求路径:{},输入参数{}", url, jsonObject); - try { - execute = HttpRequest.post(url) - .setConnectionTimeout(5000) - .body(JSON.toJSONString(jsonObject)) - .execute(); - } catch (Exception e) { - String msg = e.getMessage(); - log.info("actionRequest-----输出参数{}", msg); - //网络不通 - } - log.info("actionRequest - 动作请求反馈{}", execute); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "actionRequest", String.valueOf(execute.getStatus()), - String.valueOf(jsonObject), - String.valueOf(execute.body()), "向焊接线申请请求" + ("1".equals(jsonObject.getString("type")) ? "取货" : "放货")); - luceneLogService.interfaceExecuteLog(luceneLogDto1); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "actionRequest","焊接线取放请求", JSON.toJSONString(jsonObject),start) + .deviceCode(point) + .content("开始焊接线请求" + type) + .build(); + luceneLogService.interfaceExecuteLog(build); + execute = HttpRequest.post(url) + .setConnectionTimeout(8000) + .body(JSON.toJSONString(jsonObject)) + .execute(); + long endTime = System.currentTimeMillis(); + log.info("actionRequest-----输入参数{}, 动作请求反馈{}",jsonObject, execute); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_HJX) + .request(url, "actionRequest","焊接线取放请求", JSON.toJSONString(jsonObject),start) + .response(execute, HttpStatus.OK,endTime-start) + .deviceCode(point) + .content("焊接线请求完成" + type) + .build(); + luceneLogService.interfaceExecuteLog(end); + } catch (Exception e) { - log.info("actionRequest - 动作请求反馈{}", execute); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "actionRequest", String.valueOf(execute.getStatus()), - String.valueOf(jsonObject), - String.valueOf(execute.body()), "向焊接线申请请求" + ("1".equals(jsonObject.getString("type")) ? "取货" : "放货")); - luceneLogService.interfaceExecuteLog(luceneLogDto1); + log.error("actionRequest-----输入参数{}, 动作请求异常{}",jsonObject, e.getMessage()); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_HJX) + .request(url, "actionRequest","焊接线取放请求", JSON.toJSONString(jsonObject),start) + .response(execute, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .deviceCode(point) + .content(type+"焊接线请求异常:"+e.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); } return execute; } @Override public HttpResponse taskFeedback(JSONObject whereJson) { - String mesUrl = paramService.findByCode(AcsConfig.MESURL).getValue(); - AddressDto addressDto = addressService.findByCode("feedAgvTaskStatus"); - String methods_url = addressDto.getMethods_url(); - String url = mesUrl + methods_url; - HttpResponse result = null; - log.info("feedAgvTaskStatus----请求参数{}", whereJson); - try { - result = HttpRequest.post(url) - .setConnectionTimeout(5000) - .body(JSON.toJSONString(whereJson)) - .execute(); - System.out.println(result); - log.info("feedAgvTaskStatus----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - log.info("错误原因{}", msg); - } - return result; + throw new BadRequestException("焊接线无该方法"); } @Override public HttpResponse taskDeprecate(JSONObject whereJson) { - String mesUrl = paramService.findByCode(AcsConfig.MESURL).getValue(); - AddressDto addressDto = addressService.findByCode("acsCancelBack"); - String methods_url = addressDto.getMethods_url(); - String url = mesUrl + methods_url; - HttpResponse result = null; - log.info("deprecateMesTask----请求参数{}", whereJson); - try { - result = HttpRequest.post(url) - .body(JSON.toJSONString(whereJson)) - .execute(); - System.out.println(result); - log.info("deprecateMesTask----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - //System.out.println(msg); - } - return result; + throw new BadRequestException("焊接线无该方法"); } @Override - public HttpResponse actionFinish(JSONObject whereJson) throws IOException { + public HttpResponse actionFinish(JSONObject whereJson) { String wmsUrl = whereJson.getString("url"); + String type = "3".equals(whereJson.getString("type")) ? "取货完成" : "放货完成"; + String point = whereJson.getString("point"); AddressDto addressDto = addressService.findByCode("actionFinish"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("actionFinish-----请求路径:{},输入参数{}", url, whereJson); + long start = System.currentTimeMillis(); try { + log.info("actionFinish-----输入参数{}, 动作请求{}", whereJson,url); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "actionFinish","焊接线取放完成", JSON.toJSONString(whereJson),start) + .deviceCode(point) + .content("开始取放反馈" + type) + .build(); + luceneLogService.interfaceExecuteLog(build); result = HttpRequest.post(url) .body(JSON.toJSONString(whereJson)) + .setConnectionTimeout(8000) .execute(); - System.out.println(result); - log.info("actionFinish----返回参数{}", result); + log.info("actionFinish-----输入参数{}, 动作请求反馈{}",whereJson, result); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "actionFinish","焊接线取放完成", JSON.toJSONString(whereJson),start) + .response(result, HttpStatus.OK,System.currentTimeMillis()-start) + .deviceCode(point) + .content("取放反馈完成" + type) + .build(); + luceneLogService.interfaceExecuteLog(end); } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - log.info("actionFinish----返回参数{}", msg); - log.info("错误原因{}", msg); + log.error("actionFinish-----输入参数{}, 动作请求异常{}",whereJson, e.getMessage()); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "actionFinish","焊接线取放完成", JSON.toJSONString(whereJson),start) + .response(result, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .deviceCode(point) + .content(type+"取放反馈异常:"+e.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); } return result; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToMesServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToMesServiceImpl.java index d51e9b3..ea1a53e 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToMesServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToMesServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -9,13 +10,17 @@ import org.nl.acs.device.address.service.AddressService; import org.nl.acs.device.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; import org.nl.acs.ext.wms.service.AcsToMesService; -import org.nl.acs.opc.DeviceAppService; import org.nl.config.server.AcsConfigService; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.logging.service.LogService; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.system.service.ParamService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import java.io.IOException; @@ -25,7 +30,6 @@ import java.io.IOException; @Slf4j public class AcsToMesServiceImpl implements AcsToMesService { - private final DeviceAppService deviceAppService; @Autowired ParamService paramService; @@ -45,33 +49,46 @@ public class AcsToMesServiceImpl implements AcsToMesService { //@Value("${acsTowms.token}") public String token; - private String log_file_type="log_file_type"; - private String log_type="ACS请求LMS"; @Override - public HttpResponse taskFeedback(JSONObject whereJson) throws IOException { + public HttpResponse taskFeedback(JSONObject jsonObject){ String wmsUrl = paramService.findByCode("mes_url").getValue(); AddressDto addressDto = addressService.findByCode("feedMesAgvTaskStatus"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("feedAgvTaskStatus----请求参数{}", whereJson); - try { - result = HttpRequest.post(url) - .body(String.valueOf(whereJson)) - .execute(); - System.out.println(result); - log.info("feedAgvTaskStatus----返回参数{}", result); + long start = System.currentTimeMillis(); + try { + log.info("feedMesAgvTaskStatus-----请求路径:{},输入参数{}", url, jsonObject); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "/api/NLWcsTask/AcsCallBack","反馈MES任务状态", JSON.toJSONString(jsonObject),start) + .content("反馈中鼎WMS请求" ) + .build(); + luceneLogService.interfaceExecuteLog(build); + result = HttpRequest.post(url) + .setConnectionTimeout(8000) + .body(String.valueOf(jsonObject)) + .execute(); + log.info("feedMesAgvTaskStatus-----输入参数{}, 动作请求反馈{}",jsonObject, result); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_HJX) + .request(url, "/api/NLWcsTask/AcsCallBack","反馈MES任务状态成功", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.OK,System.currentTimeMillis()-start) + .content("反馈MES任务状态成功") + .build(); + luceneLogService.interfaceExecuteLog(end); } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - log.info("错误原因{}",msg); + log.error("feedMesAgvTaskStatus-----输入参数{}, 动作请求异常{}",jsonObject, e.getMessage()); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_HJX) + .request(url, "/api/NLWcsTask/AcsCallBack","反馈MES任务状态失败", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .content("反馈MES任务状态失败:"+e.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); } - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "feedMesAgvTaskStatus", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); return result; } @@ -85,46 +102,20 @@ public class AcsToMesServiceImpl implements AcsToMesService { log.info("deprecateWmsTask----请求参数{}", whereJson); try { result = HttpRequest.post(url) + .setConnectionTimeout(8000) .body(String.valueOf(whereJson)) .execute(); System.out.println(result); log.info("deprecateWmsTask----返回参数{}", result); } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - //System.out.println(msg); + log.info("deprecateWmsTask----接口异常{}", e.getMessage()); } - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "feedMesAgvTaskStatus", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); return result; } @Override - public HttpResponse deviceStatusUpdate(JSONObject whereJson) throws IOException { - String wmsUrl = paramService.findByCode("mes_url").getValue(); - AddressDto addressDto = addressService.findByCode("deviceStatusUpdate"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("deviceStatusUpdate", whereJson); - try { - result = HttpRequest.post(url) - .body(String.valueOf(whereJson)) - .execute(); - System.out.println(result); - log.info("deviceStatusUpdate----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - //System.out.println(msg); - } - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "deviceStatusUpdate", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); - return result; + public HttpResponse deviceStatusUpdate(JSONObject whereJson) { + throw new BadRequestException("MES无该操作接口"); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToNDCServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToNDCServiceImpl.java index 37da333..7c437e6 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToNDCServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToNDCServiceImpl.java @@ -3,27 +3,29 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.AcsConfig; import org.nl.acs.device.address.service.AddressService; -import org.nl.acs.device.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.impl.DeviceServiceImpl; -import org.nl.acs.ext.wms.IpUtil; -import org.nl.acs.ext.wms.NdcHttpUtil; -import org.nl.acs.ext.wms.UnifiedResponse; import org.nl.acs.ext.wms.service.AcsToNDCService; import org.nl.acs.instruction.service.dto.Instruction; +import org.nl.common.utils.MapOf; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.system.service.ParamService; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import java.util.Map; + @Service @RequiredArgsConstructor @Slf4j @@ -33,6 +35,7 @@ public class AcsToNDCServiceImpl implements AcsToNDCService { private LuceneExecuteLogService luceneExecuteLogService; @Autowired AddressService addressService; + public static Map TYPE_MAP = MapOf.of(3,"下发任务",9,"取消任务",10,"取放货应答"); /** * 生成任务单 @@ -47,6 +50,7 @@ public class AcsToNDCServiceImpl implements AcsToNDCService { jo.put("sender", "ACS"); jo.put("type", type); JSONObject ja = new JSONObject(); + long start = System.currentTimeMillis(); //type 3:下发任务 if (type==3) { ja.put("taskId", Integer.valueOf(instruction.getInstruction_code())); @@ -62,7 +66,7 @@ public class AcsToNDCServiceImpl implements AcsToNDCService { ja.put("priority", 0); jo.put("params", ja); } - //type 9:取消任务 + //34 9:取消任务 else if (type==9){ ja.put("taskId", Integer.valueOf(instruction.getInstruction_code())); jo.put("params", ja); @@ -77,43 +81,42 @@ public class AcsToNDCServiceImpl implements AcsToNDCService { jo.put("params", ja); } String wmsurl = paramService.findByCode(AcsConfig.WCSURL).getValue(); -// AddressDto addressDto = addressService.findByCode(" -// applyTaskToWcs"); String url = wmsurl; + log.info("任务号:{},指令号{},下发agv订单序列下发:{}", instruction.getTask_code(), instruction.getInstruction_code(),JSON.toJSONString(jo)); LuceneLogDto logDto = LuceneLogDto.builder() - .logType("接口日志") - .request_url(wmsurl) - .request_direction("post") - .request_param(JSON.toJSONString(jo)) - .method("/") - .content("开始请求") + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_KIT) + .request(wmsurl,"genAgvSchedulingTask","反馈NDC套件",JSON.toJSONString(jo),start) + .content("开始请求NDC"+TYPE_MAP.get(type)) .build(); luceneExecuteLogService.interfaceExecuteLog(logDto); - System.out.println("-------任务下发----"+JSON.toJSONString(jo)); - long start = System.currentTimeMillis(); - log.info("任务号:{},指令号{},下发agv订单序列下发:{}", instruction.getTask_code(), instruction.getInstruction_code(),JSON.toJSONString(jo)); - HttpResponse result = HttpRequest.post(url) - //表单内容 - .body(String.valueOf(jo)) - //超时,毫秒 - .timeout(20000) - .execute(); - System.out.println("-------任务结果----"+result.body()); - - LuceneLogDto logResult = - LuceneLogDto.builder() - .logType("接口日志") - .request_url(wmsurl) - .request_direction("post") - .request_param(JSON.toJSONString(jo)) - .method("/") - .response_param(JSON.toJSONString(result)) - .executeTime(System.currentTimeMillis() - start) - .content("响应请求") - .build(); - luceneExecuteLogService.deviceExecuteLog(logResult); - log.info("任务号:{},指令号{},状态{},下发agv订单序列反馈:{}", instruction.getTask_code(), instruction.getInstruction_code(), result.getStatus(), result.body()); + HttpResponse result = null; + try { + result = HttpRequest.post(url) + //表单内容 + .body(String.valueOf(jo)) + //超时,毫秒 + .timeout(8000) + .execute(); + LuceneLogDto end = + LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_KIT) + .request(wmsurl,"genAgvSchedulingTask","反馈NDC套件",JSON.toJSONString(jo),start) + .content("NDC请求完成"+TYPE_MAP.get(type)) + .response(result, HttpStatus.OK,System.currentTimeMillis()-start) + .build(); + luceneExecuteLogService.interfaceExecuteLog(end); + log.info("任务号:{},指令号{},状态{},下发agv订单序列反馈:{}", instruction.getTask_code(), instruction.getInstruction_code(), result.getStatus(), result.body()); + }catch (Exception ex){ + LuceneLogDto error = + LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_KIT) + .request(wmsurl,"genAgvSchedulingTask","反馈NDC套件",JSON.toJSONString(jo),start) + .content("NDC请求失败:"+ex.getMessage()) + .response(result, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .build(); + luceneExecuteLogService.interfaceExecuteLog(error); + } return result; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToZDWmsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToZDWmsServiceImpl.java index 249dfa9..7a60e0c 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToZDWmsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToZDWmsServiceImpl.java @@ -2,31 +2,32 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.address.service.AddressService; import org.nl.acs.device.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; -import org.nl.acs.ext.wms.service.AcsToMesService; import org.nl.acs.ext.wms.service.AcsToZDWmsService; -import org.nl.acs.opc.DeviceAppService; import org.nl.config.server.AcsConfigService; import org.nl.modules.logging.service.LogService; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.system.service.ParamService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; -import java.io.IOException; - @Service @RequiredArgsConstructor @Slf4j public class AcsToZDWmsServiceImpl implements AcsToZDWmsService { - private final DeviceAppService deviceAppService; + @Autowired ParamService paramService; @@ -49,84 +50,126 @@ public class AcsToZDWmsServiceImpl implements AcsToZDWmsService { private String log_type="ACS请求LMS"; @Override - public HttpResponse taskFeedback(JSONObject whereJson) throws IOException { + public HttpResponse taskFeedback(JSONObject jsonObject) { //String wmsUrl = "172.30.15.32:30010"; String wmsUrl = paramService.findByCode("wms_url").getValue(); AddressDto addressDto = addressService.findByCode("feedZdAgvTaskStatus"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("feedAgvTaskStatus----请求参数{}", whereJson); + long start =System.currentTimeMillis(); try { + log.info("feedbackStatus-----请求路径:{},输入参数{}", url, jsonObject); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "/wcs/restful/api/v3/system_car/feedbackTask","反馈中鼎任务状态", JSON.toJSONString(jsonObject),start) + .content("反馈中鼎WMS请求" ) + .build(); + luceneLogService.interfaceExecuteLog(build); result = HttpRequest.post(url) - .body(String.valueOf(whereJson)) + .body(String.valueOf(jsonObject)) + .setConnectionTimeout(8000) .execute(); - System.out.println(result); - log.info("feedAgvTaskStatus----返回参数{}", result); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "feedZdAgvTaskStatus", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); + long endTime = System.currentTimeMillis(); + log.info("feedbackStatus-----输入参数{}, 动作请求反馈{}",jsonObject, result); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_HJX) + .request(url, "/wcs/restful/api/v3/system_car/feedbackTask","反馈中鼎任务状态", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.OK,endTime-start) + .content("反馈中鼎WMS请求完成") + .build(); + luceneLogService.interfaceExecuteLog(end); } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - log.info("错误原因{}",msg); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "feedZdAgvTaskStatus", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); + log.error("feedbackStatus-----输入参数{}, 动作请求异常{}",jsonObject, e.getMessage()); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口响应, LogDirectEnum.ACS_TO_HJX) + .request(url, "/wcs/restful/api/v3/system_car/feedbackTask","反馈中鼎任务状态", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .content("反馈中鼎WMS请求失败:"+e.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); } return result; } @Override - public HttpResponse taskDeprecate(JSONObject whereJson) throws IOException{ + public HttpResponse taskDeprecate(JSONObject jsonObject){ String wmsUrl = paramService.findByCode("wms_url").getValue(); AddressDto addressDto = addressService.findByCode("acsCancelBack"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("deprecateWmsTask----请求参数{}", whereJson); + long start =System.currentTimeMillis(); try { + log.info("taskDeprecate-----请求路径:{},输入参数{}", url, jsonObject); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "acsCancelBack","反馈中鼎任务删除", JSON.toJSONString(jsonObject),start) + .content("反馈中鼎WMS任务取消请求" ) + .build(); + luceneLogService.interfaceExecuteLog(build); result = HttpRequest.post(url) - .body(String.valueOf(whereJson)) + .setConnectionTimeout(8000) + .body(String.valueOf(jsonObject)) .execute(); - System.out.println(result); - log.info("deprecateWmsTask----返回参数{}", result); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "acsCancelBack", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); + log.info("ZDtaskDeprecate-----输入参数{}, 动作请求反馈{}",jsonObject, result); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "acsCancelBack", "反馈中鼎任务删除", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.OK,System.currentTimeMillis()-start) + .content("反馈中鼎WMS任务取消完成") + .build(); + luceneLogService.interfaceExecuteLog(end); } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - //System.out.println(msg); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "acsCancelBack", String.valueOf(result.getStatus()), - String.valueOf(whereJson), - String.valueOf(result.body()), addressDto.getMethods_name()); - luceneLogService.interfaceExecuteLog(luceneLogDto1); + log.error("ZDtaskDeprecate-----输入参数{}, 动作请求异常{}",jsonObject, e.getMessage()); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "acsCancelBack", "反馈中鼎任务删除", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .content("反馈中鼎WMS任务取消失败:"+e.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); } return result; } @Override - public HttpResponse deviceStatusUpdate(JSONObject whereJson) { + public HttpResponse deviceStatusUpdate(JSONObject jsonObject) { String wmsUrl = paramService.findByCode("wms_url").getValue(); AddressDto addressDto = addressService.findByCode("deviceStatusUpdate"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("deviceStatusUpdate", whereJson); + long start =System.currentTimeMillis(); try { + log.info("ZDdeviceStatusUpdate-----请求路径:{},输入参数{}", url, jsonObject); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "ZDdeviceStatusUpdate","反馈中鼎设备状态", JSON.toJSONString(jsonObject),start) + .content("反馈中鼎WMS任务取消请求" ) + .build(); + luceneLogService.interfaceExecuteLog(build); result = HttpRequest.post(url) - .body(String.valueOf(whereJson)) + .setConnectionTimeout(8000) + .body(String.valueOf(jsonObject)) .execute(); - System.out.println(result); - log.info("deviceStatusUpdate----返回参数{}", result); + log.info("ZDdeviceStatusUpdate-----输入参数{}, 动作请求反馈{}",jsonObject, result); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "ZDdeviceStatusUpdate","反馈中鼎设备状态", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.OK,System.currentTimeMillis()-start) + .content("反馈中鼎WMS任务取消完成") + .build(); + luceneLogService.interfaceExecuteLog(end); } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - //System.out.println(msg); + log.error("ZDdeviceStatusUpdate-----输入参数{}, 动作请求异常{}",jsonObject, e.getMessage()); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口请求, LogDirectEnum.ACS_TO_HJX) + .request(url, "ZDdeviceStatusUpdate", "反馈中鼎设备状态", JSON.toJSONString(jsonObject),start) + .response(result, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-start) + .content("反馈中鼎WMS任务取消失败:"+e.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); } return result; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/MesToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/MesToAcsServiceImpl.java index a7fe13e..075be09 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/MesToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/MesToAcsServiceImpl.java @@ -43,10 +43,6 @@ public class MesToAcsServiceImpl implements MesToAcsService { public Map taskCreate(JSONObject whereJson) throws IOException { Map map = new HashMap<>(); log.info("taskCreate--------------:输入参数:" + whereJson.toString()); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "taskMESCreate", null, - String.valueOf(whereJson), - "", "接收mes任务"); - luceneLogService.interfaceExecuteLog(luceneLogDto1); //获取甲方wcs传过来的参数 JSONObject params = whereJson.getJSONObject("params"); String locationFrom = whereJson.getString("locationFrom"); @@ -114,31 +110,6 @@ public class MesToAcsServiceImpl implements MesToAcsService { if (ObjectUtil.isEmpty(taskCode)) { taskCode = CodeUtil.getNewCode("TASK_NO"); } -// if (ObjectUtil.isEmpty(taskCreateDateTime)) { -// map.put("status", "400"); -// map.put("message", "任务创建时间不能为空"); -// map.put("data", null); -// return map; -// } -// if (ObjectUtil.isEmpty(taskType)) { -// map.put("status", "400"); -// map.put("message", "任务类型不能为空"); -// map.put("data", null); -// return map; -// } -// if (ObjectUtil.isEmpty(containerCode)) { -// map.put("status", "400"); -// map.put("message", "载具编码不能为空"); -// map.put("data", null); -// return map; -// } -// if (ObjectUtil.isEmpty(containerType)) { -// map.put("status", "400"); -// map.put("message", "载具类型不能为空"); -// map.put("data", null); -// return map; -// } - String start_device_code = ""; String next_device_code = ""; @@ -165,41 +136,9 @@ public class MesToAcsServiceImpl implements MesToAcsService { next_device_code2 = (String) next_device_json2.get("parent_storage_code") == null ? next_device_code2 : (String) next_device_json2.get("storage_code"); } - -// if (start_point_code.indexOf("-") > 0) { -// String str[] = start_point_code.split("-"); -// start_device_code = str[0]; -// } else { -// start_device_code = locationFrom; -// } - -// if (next_point_code.indexOf("-") > 0) { -// String str[] = next_point_code.split("-"); -// next_device_code = str[0]; -// } else { -// next_device_code = locationTo; -// } - if (actionType.equals("2")) { -// start_device_code2 = locationFrom2; -// next_device_code2 = locationTo2; - } -// //查询wcs传过来的起点终点路由 -// List list = routeLineService.getShortPathLines(start_device_code, next_device_code, "normal"); -// if (ObjectUtil.isEmpty(list)) { -// map.put("responseCode", 1); -// map.put("responseMessage", "路由不通!"); -// return map; -// } - //查询任务编码是否重复 -// TaskDto taskDto = taskService.findByCodeFromCache(taskCode); -// if (taskDto != null) { -// map.put("status", "400"); -// map.put("message", "不能存在相同的任务号"); -// map.put("data", null); -// return map; -// } + } //判断载具编码是否相同 if (!StrUtil.isEmpty(containerCode)) { TaskDto vehicle_dto = taskService.findByContainer(containerCode); @@ -271,10 +210,6 @@ public class MesToAcsServiceImpl implements MesToAcsService { public Map taskOperation(JSONObject whereJson) throws IOException { Map map = new HashMap<>(); log.info("taskOperation--------------:输入参数:" + whereJson.toString()); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "mesTaskOperation", null, - String.valueOf(whereJson), - "", "MES发起任务操作"); - luceneLogService.interfaceExecuteLog(luceneLogDto1); String wmsTaskCode = whereJson.getString("wmsTaskCode"); String operation = whereJson.getString("operation"); if (ObjectUtil.isEmpty(wmsTaskCode)) { @@ -310,10 +245,6 @@ public class MesToAcsServiceImpl implements MesToAcsService { public Map taskStatus(JSONObject whereJson) throws IOException { Map map = new HashMap<>(); log.info("taskStatus--------------:输入参数:" + whereJson.toString()); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "mesTaskStatus", null, - String.valueOf(whereJson), - "", "MES查询任务状态"); - luceneLogService.interfaceExecuteLog(luceneLogDto1); String taskCode = whereJson.getString("taskCode"); if (ObjectUtil.isEmpty(taskCode)) { map.put("status", "400"); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsZDToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsZDToAcsServiceImpl.java index b879fc3..39e39fe 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsZDToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsZDToAcsServiceImpl.java @@ -43,10 +43,6 @@ public class WmsZDToAcsServiceImpl implements WmsZDToAcsService { @Override public Map taskCreate(JSONObject whereJson) throws IOException { - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "taskWMSCreate", null, - String.valueOf(whereJson), - "", "接收wms任务"); - luceneLogService.interfaceExecuteLog(luceneLogDto1); Map map = new HashMap<>(); log.info("taskCreate--------------:输入参数:" + whereJson.toString()); //获取甲方wcs传过来的参数 @@ -119,32 +115,6 @@ public class WmsZDToAcsServiceImpl implements WmsZDToAcsService { map.put("data", null); return map; } -// if (ObjectUtil.isEmpty(taskCreateDateTime)){ -// map.put("status", "400"); -// map.put("message", "任务创建时间不能为空"); -// map.put("data", null); -// return map; -// } -// if (ObjectUtil.isEmpty(taskType)){ -// map.put("status", "400"); -// map.put("message", "任务类型不能为空"); -// map.put("data", null); -// return map; -// } -// if (ObjectUtil.isEmpty(containerCode)){ -// map.put("status", "400"); -// map.put("message", "载具编码不能为空"); -// map.put("data", null); -// return map; -// } -// if (ObjectUtil.isEmpty(containerType)){ -// map.put("status", "400"); -// map.put("message", "载具类型不能为空"); -// map.put("data", null); -// return map; -// } - - String start_device_code = ""; String next_device_code = ""; String start_device_code2 = ""; @@ -168,34 +138,9 @@ public class WmsZDToAcsServiceImpl implements WmsZDToAcsService { if (!ObjectUtil.isEmpty(next_device_json2)) { next_device_code2 = (String) next_device_json2.get("parent_storage_code") == null ? next_device_code2 : (String) next_device_json2.get("storage_code"); } - - -// if (start_point_code.indexOf("-") > 0) { -// String str[] = start_point_code.split("-"); -// start_device_code = str[0]; -// } else { - //start_device_code = locationFrom; -// } - -// if (next_point_code.indexOf("-") > 0) { -// String str[] = next_point_code.split("-"); -// next_device_code = str[0]; -// } else { - //next_device_code = locationTo; -// } - if (actionType.equals("2")) { - //start_device_code2 = locationFrom2; -// next_device_code2 = locationTo2; - } -// //查询wcs传过来的起点终点路由 -// List list = routeLineService.getShortPathLines(start_device_code, next_device_code, "normal"); -// if (ObjectUtil.isEmpty(list)) { -// map.put("responseCode", 1); -// map.put("responseMessage", "路由不通!"); -// return map; -// } + } //查询任务编码是否重复 TaskDto taskDto = taskService.findByCodeFromCache(taskCode); if (taskDto != null) { @@ -274,10 +219,6 @@ public class WmsZDToAcsServiceImpl implements WmsZDToAcsService { public Map taskOperation(JSONObject whereJson) throws IOException { Map map = new HashMap<>(); log.info("taskOperation--------------:输入参数:" + whereJson.toString()); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "wmsTaskOperation", null, - String.valueOf(whereJson), - "", "wms发起任务操作"); - luceneLogService.interfaceExecuteLog(luceneLogDto1); String wmsTaskCode = whereJson.getString("wmsTaskCode"); String operation = whereJson.getString("operation"); if (ObjectUtil.isEmpty(wmsTaskCode)) { @@ -310,13 +251,9 @@ public class WmsZDToAcsServiceImpl implements WmsZDToAcsService { } @Override - public Map taskStatus(JSONObject whereJson) throws IOException { + public Map taskStatus(JSONObject whereJson){ Map map = new HashMap<>(); log.info("taskStatus--------------:输入参数:" + whereJson.toString()); - LuceneLogDto luceneLogDto1 = new LuceneLogDto(4, "wmsTaskStatus", null, - String.valueOf(whereJson), - "", "wms查询任务状态"); - luceneLogService.interfaceExecuteLog(luceneLogDto1); String taskCode = whereJson.getString("taskCode"); if (ObjectUtil.isEmpty(taskCode)) { map.put("status", "400"); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java index c92c7b5..420bbb8 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -103,7 +103,6 @@ public interface InstructionService { */ void create(Instruction dto) throws Exception; - void create2(Instruction dto) throws Exception; /** * 再次创建 * diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index b411202..e9d983a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.AcsConfig; import org.nl.acs.agv.server.MagicAgvService; -import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.agv.server.XianGongAgvService; import org.nl.acs.agv.server.ZheDaAgvService; import org.nl.acs.auto.initial.ApplicationAutoInitial; @@ -77,8 +76,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Autowired DeviceAppService deviceAppService; @Autowired - NDCAgvService ndcAgvService; - @Autowired ParamService paramService; @Autowired RouteLineService routeLineService; @@ -368,109 +365,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } - @Override - public void create2(Instruction dto) throws Exception { - dto = foramte(dto); - String task_code = dto.getTask_code(); - TaskDto task = taskService.findByCodeFromCache(task_code); - - WQLObject instwo = WQLObject.getWQLObject("acs_instruction"); - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - if (StrUtil.isEmpty(dto.getRoute_plan_code())) { - dto.setRoute_plan_code(task.getRoute_plan_code()); - } - if (StrUtil.isEmpty(dto.getPriority())) { - dto.setPriority(task.getPriority()); - } - if (StrUtil.isEmpty(dto.getInstruction_code())) { - dto.setInstruction_code(CodeUtil.getNewCode("INSTRUCT_NO")); - } - if (StrUtil.isEmpty(dto.getInstruction_id())) { - dto.setInstruction_id(IdUtil.simpleUUID()); - } - if (StrUtil.isEmpty(dto.getIs_send())) { - dto.setIs_send(task.getIs_send()); - } - if (StrUtil.isEmpty(dto.getLink_num())) { - dto.setIs_send(task.getLink_num()); - } - if (task.getTask_type().equals("1") || task.getTask_type().equals("2")) { - dto.setInstruction_type(task.getTask_type()); - } else if (false) { - - } else { - dto.setInstruction_type("3"); - } - - // 起点设备与终点设备相同则为初始指令 - if (StrUtil.equals(task.getStart_device_code(), dto.getStart_device_code())) { - if (!StrUtil.equals(dto.getCompound_inst(), "0") - && StrUtil.equals(task.getCompound_task(), "1")) { - dto.setCompound_inst("1"); - dto.setCompound_inst_data(task.getCompound_task_data()); - } - } - - dto.setCreate_by(currentUsername); - dto.setUpdate_by(currentUsername); - dto.setUpdate_time(now); - dto.setCreate_time(now); - dto.setStart_parent_code(task.getStart_parent_code()); - dto.setNext_parent_code(task.getNext_parent_code()); - - if (ObjectUtil.isNotEmpty(task.getTask_type())) { - dto.setInstruction_type(task.getTask_type()); - } - - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device startdevice = appService.findDeviceByCode(dto.getStart_device_code()); - Device nextdevice = appService.findDeviceByCode(dto.getNext_device_code()); - - HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; - StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver; - - if (startdevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { - hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startdevice.getDeviceDriver(); - hongXiangConveyorDeviceDriver.writing(3, Integer.valueOf(dto.getInstruction_code())); - } - - try { - String start_device_code = dto.getStart_device_code(); - String next_device_code = dto.getNext_device_code(); - String route_plan_code = task.getRoute_plan_code(); - List shortPathsList = - routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); - RouteLineDto route = null; - for (int i = 0; i < shortPathsList.size(); i++) { - RouteLineDto routeLineDto = shortPathsList.get(i); - String route_device = routeLineDto.getDevice_code(); - String route_next_device = routeLineDto.getNext_device_code(); - if (route_device.equals(dto.getStart_device_code()) - && route_next_device.equals(dto.getNext_device_code())) { - route = routeLineDto; - break; - } - } - if (ObjectUtil.isEmpty(route)) { - throw new BadRequestException("未查询到相关路由!"); - } - if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { - NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); - ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto); - } - } catch (Exception e) { - dto.setSend_status("2"); - e.printStackTrace(); - } - - WQLObject wo = WQLObject.getWQLObject("acs_instruction"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); - - wo.insert(json); - instructions.add(dto); - } - @Override public void createAgain(Instruction dto) throws Exception { String task_code = dto.getTask_code(); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java index 4c0f5d0..3a979a3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExecuteAutoRun.java @@ -74,18 +74,8 @@ public class DeviceExecuteAutoRun extends AbstractAutoRunnable { @Override public void autoRun() throws Exception { - for (int i = 0; !OpcStartTag.is_run; ++i) { - log.info("设备执行线程等待opc同步线程..."); - Thread.sleep(500L); - if (i > 10) { - log.info("设备执行线程放弃等待opc同步线程..."); - break; - } - } - Thread.sleep(10000L); log.info("设备执行线程开始..."); - while (true) { Thread.sleep((long) this.loop_time_millions); List deviceDrivers = this.deviceAppService.findDeviceDriver(ExecutableDeviceDriver.class); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/socket/SocketListenerAutoRun.java b/acs/nladmin-system/src/main/java/org/nl/acs/socket/SocketListenerAutoRun.java index d7e1c96..fdbc0d3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/socket/SocketListenerAutoRun.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/socket/SocketListenerAutoRun.java @@ -15,7 +15,7 @@ import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -@Component +//@Component public class SocketListenerAutoRun extends AbstractAutoRunnable implements SocketService { private static final Logger log = LoggerFactory.getLogger(SocketListenerAutoRun.class); private ServerSocket serverSocket = null; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java index 30f9457..2921ce2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java @@ -180,7 +180,7 @@ public interface TaskService { */ void finish(String ids); //强制完成任务并调用外部系统 - void forchFinich(String code); + void forchCancel(String code); /** * 完成任务 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 d205d7b..239efc4 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 @@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.nl.acs.AcsConfig; import org.nl.acs.agv.server.XianGongAgvService; import org.nl.acs.auto.initial.ApplicationAutoInitial; @@ -34,6 +35,7 @@ import org.nl.acs.task.TaskInstructionLock; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.utils.MapOf; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.SecurityUtils; @@ -780,20 +782,14 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { // } // } } - public void forchFinich(String taskCode) { - TaskDto entity = this.findByCode(taskCode); - if (entity == null) throw new BadRequestException("任务不存在"); - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - entity.setUpdate_time(now); - entity.setUpdate_by(currentUsername); - entity.setTask_status("2"); - WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = (JSONObject) JSONObject.toJSON(entity); - wo.update(json); - removeByCodeFromCache(entity.getTask_code()); - // 判断是否为WMS下发的任务,如果是反馈任务状态给WMS - String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); + @Override + public void forchCancel(String taskCode) { + if (StringUtils.isNotEmpty(taskCode)){ + HashMap of = MapOf.of("update_time", DateUtil.now() + , "update_by", SecurityUtils.getCurrentUsername() + , "task_status", "3"); + WQLObject.getWQLObject("acs_task").update(of,"task_code = '"+taskCode+"'"); + } } @@ -1279,12 +1275,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { @Override public Instruction createInst(Instruction inst) throws Exception { - - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); - - instructionservice.create2(inst); - return inst; + throw new BadRequestException("createInst该方法不可用"); } @Override diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java b/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java index 0cdb820..07f119d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/rest/PadController.java @@ -5,14 +5,18 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.utils.MapOf; import org.nl.common.utils.TableDataInfo; import org.nl.hand.service.PadService; import org.nl.hand.service.dto.TaskPad; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.logging.annotation.Log; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.Map; @RestController @@ -72,4 +76,26 @@ public class PadController { padService.signalInteract(taskPad); return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); } + + @PostMapping("/mqtt") + @Log("测试") + @ApiOperation("任务列表") + public ResponseEntity mqtt(@RequestBody Map whereJson) { + return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); + } + @PostMapping("/slj") + @Log("三联件配送") + public ResponseEntity sendSLJ(@RequestBody TaskPad taskPad) { + HashMap mapping = MapOf.of("E504020-04", "E504021-04", "E504021-04", "E504020-04", + "E504020-02", "E504022-04", "E504020-02", "E504022-04"); + String point = taskPad.getPoint(); + String endPoint = mapping.get(point); + if (StringUtils.isEmpty(endPoint)){ + throw new BadRequestException(point+"当前点位没有对应映射点"); + } + taskPad.setStart(point); + taskPad.setEnd(endPoint); + padService.callTask(taskPad); + return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java index 4ba4d6f..2470320 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/service/impl/PadServiceImpl.java @@ -1,19 +1,26 @@ package org.nl.hand.service.impl; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.nl.acs.device.service.dto.StorageCellDto; +import org.nl.acs.device.service.impl.StorageCellServiceImpl; +import org.nl.acs.ext.wms.service.AcsToHJXService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; +import org.nl.common.utils.MapOf; import org.nl.hand.service.PadService; import org.nl.hand.service.dto.TaskPad; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +41,9 @@ public class PadServiceImpl implements PadService { private InstructionService instructionService; @Autowired private DeviceAppService deviceAppService; + @Autowired + private AcsToHJXService acsToHJXService; + @Override public Map tasks(Map whereJson) { @@ -148,7 +158,7 @@ public class PadServiceImpl implements PadService { throw new BadRequestException("指令不存在"); } instructionService.cancel(instId); - taskService.forchFinich(entity.getTask_code()); + taskService.forchCancel(entity.getTask_code()); } else if (operation.equals("2")) { instructionService.finish(instId); }else if (operation.equals("3")) { @@ -189,6 +199,42 @@ public class PadServiceImpl implements PadService { @Override public void signalInteract(TaskPad pad) { - //焊接线安全交互 + String 安全交互位 = pad.getPoint(); + String 载具号 = pad.getVehicle_code(); + String 交互类型 = pad.getType(); + Device device = deviceAppService.findDeviceByCode(安全交互位); + if (device ==null){ + throw new BadRequestException("当前安全交互位未配置驱动信息"+安全交互位); + } + Object url = device.getExtraValue().get("address"); + if (url == null) { + throw new BadRequestException("当前安全交互位未配置交互地址"+安全交互位); + } + HashMap of = MapOf.of("point", 安全交互位 + , "type", 交互类型 + , "containerCode", 载具号 + , "url", url); + //1.请求取货2取货完成3请求放货4放货完成 + HttpResponse result = null; + switch (交互类型){ + case "1": + case "3": + result = acsToHJXService.actionRequest(new JSONObject(of)); + break; + case "2": + case "4": + result = acsToHJXService.actionFinish(new JSONObject(of)); + break; + default: + throw new BadRequestException(result+"当前交互类型不存在"); + } + if (result == null){ + throw new BadRequestException("交互异常"); + } + JSONObject response = JSONObject.parseObject(result.body()); + int code = response.getInteger("code"); + if (code != 200) { + throw new BadRequestException("交互异常"); + } } } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/dto/CurrentUser.java b/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/dto/CurrentUser.java index bbf7bdf..87bdd72 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/dto/CurrentUser.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/common/utils/dto/CurrentUser.java @@ -20,7 +20,7 @@ public class CurrentUser implements Serializable { private Long id; //账号 - private String username; + private String username = "default"; //姓名 private String nickName; diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index 04b0ec7..132d9ab 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -15,23 +15,23 @@ */ package org.nl.modules.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.ProceedingJoinPoint; 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.nl.common.utils.IdUtil; import org.nl.modules.common.utils.RequestHolder; import org.nl.modules.common.utils.StringUtils; -import org.nl.modules.common.utils.ThrowableUtil; -import org.nl.modules.logging.domain.Log; -import org.nl.modules.logging.service.LogService; -import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -50,11 +50,9 @@ import java.util.*; @Slf4j public class LogAspect { - private final LogService logService; + @Autowired + private LuceneExecuteLogService luceneLogService; - public LogAspect(LogService logService) { - this.logService = logService; - } /** * 配置切入点 @@ -77,52 +75,52 @@ public class LogAspect { // 方法路径 String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; String params = getParameter(method, joinPoint.getArgs()); - org.nl.modules.logging.annotation.Log logInfo = method.getAnnotation(org.nl.modules.logging.annotation.Log.class); - //是否输出到日志文件 - if (logInfo.isPrintToLogFile()) { - log.info("track_id:{},请求方法:{},请求方法参数:{}", trackId, methodName, params); - } + log.info("接口请求日志----请求方法:{},请求方法参数:{}",methodName, params); + HttpServletRequest request = RequestHolder.getHttpServletRequest(); String requestIp = StringUtils.getIp(request); + String url = request.getRequestURI(); Object result; long startTime = System.currentTimeMillis(); try { + log.info("[--request--][请求接口:{}][请求参数:{}]",url,params); + LuceneLogDto build = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口请求, LogDirectEnum.TO_ACS) + .request(url, methodName,methodName, params,startTime) + .content("接口请求日志" ) + .build(); + luceneLogService.interfaceExecuteLog(build); result = joinPoint.proceed(); - //是否把日志存到日志表 - if (logInfo.isAddLogTable()) { - Log log = new Log("INFO", System.currentTimeMillis() - startTime); - logService.save("", StringUtils.getBrowser(request), requestIp, joinPoint, log); - } - if (logInfo.isInterfaceLog()) { - try { - WQLObject interfaceLog = WQLObject.getWQLObject("sys_interface_log"); - JSONObject json = new JSONObject(); - json.put("log_id", IdUtil.getStringId()); - json.put("description", logInfo.value()); - json.put("log_type", logInfo.interfaceLogType().getDesc()); - json.put("log_level", "1"); - json.put("method", methodName); - json.put("params", getParameter(method, joinPoint.getArgs())); - json.put("request_ip", StringUtils.getIp(request)); - json.put("time", System.currentTimeMillis() - startTime); - json.put("username", ""); - json.put("address", StringUtils.getCityInfo(requestIp)); - json.put("browser", StringUtils.getBrowser(request)); - json.put("exception_detail", IdUtil.getStringId()); - json.put("create_time", DateUtil.now()); - json.put("return_result", result.toString()); - interfaceLog.insert(json); - } catch (Exception e) { - e.printStackTrace(); + log.info("[--response--][请求接口:{} 执行结果:{}][耗时:{}s]",url,result,(System.currentTimeMillis() - startTime)/1000); + LuceneLogDto end = LuceneLogDto.builder() + .log(LogLevelEnum.INFO, LogTypeEnum.接口响应, LogDirectEnum.TO_ACS) + .request(url, methodName,methodName, params,startTime) + .response(result, HttpStatus.OK,System.currentTimeMillis()-startTime) + .content("接口请求成功") + .build(); + luceneLogService.interfaceExecuteLog(end); + } catch (Exception ex) { + StringBuffer errorStack = new StringBuffer(); + errorStack.append("
【异常堆栈:"); + String errorMsg = ex.getMessage(); + int x = 0; + StackTraceElement[] stackTrace = ex.getStackTrace(); + if (stackTrace!=null && stackTrace.length>0){ + for (StackTraceElement stack : stackTrace) { + x++;errorStack.append(stack.toString().replaceAll("<",">")).append("
"); + if (x>5){ break; } } } - } catch (Exception ex) { - log.error("track_id:{},error:{}", trackId, ex.getMessage()); - Log log = new Log("ERROR", System.currentTimeMillis() - startTime); - log.setExceptionDetail(ThrowableUtil.getStackTrace(ex).getBytes()); - logService.save("", StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log); + log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}] {}", url,errorMsg,params, errorStack.append("】")); + LuceneLogDto error = LuceneLogDto.builder() + .log(LogLevelEnum.ERROR, LogTypeEnum.接口响应, LogDirectEnum.TO_ACS) + .request(url, methodName,methodName, params,startTime) + .response(null, HttpStatus.BAD_REQUEST,System.currentTimeMillis()-startTime) + .content("接口请求异常:"+ex.getMessage()) + .build(); + luceneLogService.interfaceExecuteLog(error); throw ex; } return result; @@ -158,11 +156,4 @@ public class LogAspect { return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); } -// public String getUsername() { -// try { -// return SecurityUtils.getCurrentUsername(); -// } catch (Exception e) { -// return ""; -// } -// } } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java index 140c96e..8213e17 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/common/Searcher.java @@ -2,10 +2,13 @@ package org.nl.modules.lucene.common; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.lucene.document.Document; +import org.apache.lucene.document.IntPoint; +import org.apache.lucene.document.LongPoint; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; @@ -13,12 +16,11 @@ import org.apache.lucene.search.*; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.BytesRef; +import org.nl.modules.lucene.service.dto.LuceneLogDto; +import org.nl.modules.lucene.service.dto.LuceneQuery; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import java.util.Map; +import java.util.*; /** * lucene查询器 @@ -125,7 +127,172 @@ public class Searcher { jo.put("totalElements", docs.totalHits.value); return jo; } + public static Map search(String indexDir, LuceneQuery query){ + Map result = new HashMap<>(); + IndexReader indexReader = null; + try { + // 获取IndexReader + Directory dir = FSDirectory.open(Paths.get(indexDir)); + indexReader = DirectoryReader.open(dir); + IndexSearcher indexSearcher = new IndexSearcher(indexReader); + // 构建查询条件 + BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); + // 设备编号查询 + if (ObjectUtil.isNotEmpty(query.getDeviceCode())) { + booleanQueryBuilder.add(new TermQuery(new Term("deviceCode", query.getDeviceCode())), + BooleanClause.Occur.MUST); + } + // 内容查询 + if (ObjectUtil.isNotEmpty(query.getContent())) { + booleanQueryBuilder.add(new TermQuery(new Term("content", query.getContent())), + BooleanClause.Occur.MUST); + } + // 方法查询 + if (ObjectUtil.isNotEmpty(query.getMethod())) { + booleanQueryBuilder.add(new TermQuery(new Term("method", query.getMethod())), + BooleanClause.Occur.MUST); + } + // 方法查询 + if (ObjectUtil.isNotEmpty(query.getRequestDirection())) { + booleanQueryBuilder.add(new TermQuery(new Term("requestDirection", query.getRequestDirection())), + BooleanClause.Occur.MUST); + } + // 请求URL查询 + if (ObjectUtil.isNotEmpty(query.getRequestUrl())) { + booleanQueryBuilder.add(new TermQuery(new Term("url", query.getRequestUrl())), + BooleanClause.Occur.MUST); + } + // 状态码查询 + if (ObjectUtil.isNotEmpty(query.getStatus())) { + booleanQueryBuilder.add(new TermQuery(new Term("status", query.getStatus())), + BooleanClause.Occur.MUST); + } + // 日志类型查询 + if (ObjectUtil.isNotEmpty(query.getLogType())) { + booleanQueryBuilder.add(new TermQuery(new Term("logType", query.getLogType())), + BooleanClause.Occur.MUST); + } + // 日志级别查询 + if (ObjectUtil.isNotEmpty(query.getLogLevel())) { + booleanQueryBuilder.add(IntPoint.newExactQuery("logLevel", query.getLogLevel()), + BooleanClause.Occur.MUST); + } + // 时间范围查询 + if (ObjectUtil.isNotEmpty(query.getBegin_time()) || ObjectUtil.isNotEmpty(query.getEnd_time())) { + long minTime = query.getBegin_time() != null ? query.getBegin_time() : Long.MIN_VALUE; + long maxTime = query.getEnd_time() != null ? query.getEnd_time() : Long.MAX_VALUE; + booleanQueryBuilder.add(LongPoint.newRangeQuery("logTime", minTime, maxTime), + BooleanClause.Occur.MUST); + } + + BooleanQuery booleanQuery = booleanQueryBuilder.build(); + // 按时间倒序排序 + Sort sort = new Sort(new SortField("logTime", SortField.Type.LONG, true)); + // 分页参数,page从1开始,如果传0或null则默认为1 + int page = (query.getPage() != null && query.getPage() > 0) ? query.getPage() : 1; + int size = (query.getSize() != null && query.getSize() > 0) ? query.getSize() : 10; + int start = (page - 1) * size; + // 执行查询,numHits必须大于0 + int numHits = start + size; + TopDocs topDocs = indexSearcher.search(booleanQuery, numHits, sort); + long totalHits = topDocs.totalHits.value; + + List dataList = new ArrayList<>(); + ScoreDoc[] scoreDocs = topDocs.scoreDocs; + + int actualStart = Math.min(start, scoreDocs.length); + int actualEnd = Math.min(start + size, scoreDocs.length); + + for (int i = actualStart; i < actualEnd; i++) { + Document doc = indexSearcher.doc(scoreDocs[i].doc); + LuceneLogDto dto = convertDocumentToDto(doc); + dataList.add(dto); + } + + // 封装返回结果 + result.put("total", totalHits); + result.put("page", page); + result.put("size", size); + result.put("data", dataList); + result.put("totalPages", (totalHits + size - 1) / size); + + } catch (Exception e) { + log.error("查询Lucene索引失败: {}", e.getMessage(), e); + result.put("error", e.getMessage()); + } finally { + if (indexReader != null) { + try { + indexReader.close(); + } catch (Exception e) { + log.error("关闭IndexReader失败: {}", e.getMessage(), e); + } + } + } + return result; + } + private static LuceneLogDto convertDocumentToDto(Document doc) { + LuceneLogDto dto = new LuceneLogDto(); + + // 基本字段 + String deviceCode = doc.get("deviceCode"); + if (deviceCode != null) { + dto.setDeviceCode(deviceCode); + } + + String content = doc.get("content"); + if (content != null) { + dto.setContent(content); + } + + String method = doc.get("method"); + if (method != null) { + dto.setMethod(method); + } + + String url = doc.get("url"); + if (url != null) { + dto.setRequestUrl(url); + } + + String status = doc.get("status"); + if (status != null) { + dto.setStatusName(status); + } + + String requestParam = doc.get("requestParam"); + if (requestParam != null) { + dto.setRequestParam(requestParam); + } + + String responseParam = doc.get("responseParam"); + if (responseParam != null) { + dto.setResponseParam(responseParam); + } + + String logType = doc.get("logType"); + if (logType != null) { + // 根据desc反查枚举,需要在LogTypeEnum中实现 + dto.setLogTypeName(logType); + } + + // 数值字段从StoredField获取 + String logLevelStr = doc.get("logLevel"); + if (logLevelStr != null) { + dto.setLogLevelName(logLevelStr); + } + String requestDirection = doc.get("requestDirection"); + if (logLevelStr != null) { + dto.setRequestDirectionName(requestDirection); + } + + String logTimeStr = doc.get("logTime"); + if (logTimeStr != null) { + dto.setStartTime(Long.parseLong(logTimeStr)); + } + + return dto; + } public static void main(String[] args) { String indexDir = "D:\\lucene\\index"; //查询这个字符串 diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogDirectEnum.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogDirectEnum.java new file mode 100644 index 0000000..e139c51 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogDirectEnum.java @@ -0,0 +1,15 @@ +package org.nl.modules.lucene.enums; + +import lombok.Getter; + +@Getter +public enum LogDirectEnum { + MES_TO_ACS, + WMS_TO_ACS, + KIT_TO_ACS, + TO_ACS, + ACS_TO_HJX, + ACS_TO_MES, + ACS_TO_KIT, + ACS_TO_WMS; +} diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogLevelEnum.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogLevelEnum.java new file mode 100644 index 0000000..1b25e59 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogLevelEnum.java @@ -0,0 +1,16 @@ +package org.nl.modules.lucene.enums; + +import lombok.Getter; + +@Getter +public enum LogLevelEnum { + INFO(1), + WARN(2), + ERROR(3); + + private Integer code; + + LogLevelEnum(Integer i) { + this.code=i; + } +} diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogTypeEnum.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogTypeEnum.java index 96b2d23..bc4c345 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogTypeEnum.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/enums/LogTypeEnum.java @@ -1,9 +1,11 @@ package org.nl.modules.lucene.enums; public enum LogTypeEnum { - DEVICE_LOG("设备日志"), - INTERFACE_LOG("接口日志"); - + 设备日志("设备日志"), + 系统日志("系统日志"), + 接口请求("接口请求"), + 接口响应("接口响应"), +; private String desc; LogTypeEnum(String desc) { diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java index edbe436..2d3d3fc 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/rest/LuceneController.java @@ -16,16 +16,14 @@ import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.BytesRef; import org.nl.modules.logging.annotation.Log; import org.nl.modules.lucene.service.LuceneService; +import org.nl.modules.lucene.service.dto.LuceneQuery; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.nio.file.Paths; import java.util.*; @@ -40,25 +38,9 @@ public class LuceneController { private final LuceneService luceneService; - @GetMapping("/labels/values") - @ApiOperation("获取标签") - public ResponseEntity labelsValues() { - return new ResponseEntity<>(luceneService.getLabelsValues(), HttpStatus.OK); - } - - - @GetMapping("/getAll") - @Log("日志检索") - @ApiOperation("日志检索") + @PostMapping("/getAddressLog") //@PreAuthorize("@el.check('task:list')") - public ResponseEntity get(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(luceneService.getAll(whereJson, page), HttpStatus.OK); - } - - @GetMapping("/getAddressLog") - @Log("接口日志检索") - //@PreAuthorize("@el.check('task:list')") - public ResponseEntity getAddressLog(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(luceneService.getAddressLog(whereJson, page), HttpStatus.OK); + public ResponseEntity getAddressLog(@RequestBody LuceneQuery query) { + return new ResponseEntity<>(luceneService.luceneSearch(query), HttpStatus.OK); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/LuceneService.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/LuceneService.java index 86d325f..cedb22d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/LuceneService.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/LuceneService.java @@ -1,26 +1,12 @@ package org.nl.modules.lucene.service; import com.alibaba.fastjson.JSONArray; +import org.nl.modules.lucene.service.dto.LuceneQuery; import org.springframework.data.domain.Pageable; import java.util.Map; public interface LuceneService { - /** - * 获取labels和values树 - * @return - */ - JSONArray getLabelsValues(); - - /** - * 获取数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map getAll(Map whereJson, Pageable page); - - Map getAddressLog(Map whereJson, Pageable page); + Map luceneSearch(LuceneQuery query); } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java index c04b6e3..ad44d01 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java @@ -1,142 +1,147 @@ package org.nl.modules.lucene.service.dto; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; +import org.springframework.beans.BeanUtils; +import org.springframework.http.HttpStatus; @Data -@Builder -@NoArgsConstructor -@AllArgsConstructor public class LuceneLogDto { - - /* 日志标识 */ - private String log_uuid; - /*日志类型*/ - private String logType; - /*设备编号*/ - private String device_code; - /*内容详情*/ - private String content; - - /* 任务编码 */ - private String task_code; - - /* 指令编码 */ - private String instruct_code; - - /* 任务标识 */ - private String task_id; - - /* 载具号 */ - private String vehicle_code; - - /* 备注 */ - private String remark; - - /* 日志类型 */ - private String log_type; - /** * 日志级别 */ - private Integer log_level; - + private LogLevelEnum logLevel; + private String logLevelName; + /*日志类型*/ + private LogTypeEnum logType; + private String logTypeName; + /*设备编号*/ + private String deviceCode; + /* 请求地址 */ + private String requestUrl; /* 方法 */ private String method; - + private String methodName; + /*内容详情*/ + private String content; /* 请求参数 */ - private String requestparam; - + private String requestParam; /* 响应参数 */ - private String responseparam; - - /* 请求地址 */ - private String requesturl; - - /** - * 请求参数 - */ - private String request_param; - - /** - * 响应参数 - */ - private String response_param; - - /** - * 请求路径 - */ - private String request_url; - + private String responseParam; /* 状态码 */ - private String status_code; - - /* 是否删除 1:是;0:否 */ - private String is_delete; - - /* 创建者 */ - private String create_by; - - /* 创建时间 YYYY-MM-DD hh:mm:ss */ - private String create_time; - - /* 修改者 */ - private String update_by; - - /* 修改时间 */ - private String update_time; - + private HttpStatus status; + private String statusName; /** * 请求方向 */ - private String request_direction; - + private LogDirectEnum requestDirection; + private String requestDirectionName; /** * 执行时间 */ - private long executeTime; + private Long executeTime; + private Long startTime; - public LuceneLogDto(final String opc_server_code, final String opc_plc_code, - final String device_code, final String to_home, final String last_home, - final String home) { - super(); - this.device_code = device_code; - this.content = "信号 [" - + opc_server_code + "." - + opc_plc_code + "." - + device_code + "." - + to_home + "] 发生变更 " - + last_home + " -> " - + home; + public static StartBuilder builder() { + return new StartBuilder(); } - public LuceneLogDto(final Integer log_level, final String requestparam, final String content) { - super(); - this.log_level = log_level; - this.requestparam = requestparam; - this.content = content; + public static class StartBuilder{ + /** + * 日志级别 + */ + private LogLevelEnum logLevel; + /*日志类型*/ + private LogTypeEnum logType; + /*设备编号*/ + private String deviceCode; + /* 请求地址 */ + private String requestUrl; + /* 方法 */ + private String method; + private String methodName; + /*内容详情*/ + private String content; + /* 请求参数 */ + private String requestParam; + /* 响应参数 */ + private String responseParam; + /* 状态码 */ + private HttpStatus status; + /** + * 请求方向 + */ + private LogDirectEnum requestDirection; + /** + * 执行时间 + */ + private Long executeTime; + /** + * 开始时间 + */ + private Long startTime; + public StartBuilder log(LogLevelEnum logLevel,LogTypeEnum logType,LogDirectEnum requestDirection){ + this.logLevel=logLevel; + this.logType=logType; + this.requestDirection=requestDirection; + return this; + } + public StartBuilder deviceCode(String deviceCode){ + this.deviceCode=deviceCode; + return this; + } + public StartBuilder content(String content){ + this.content=content; + return this; + } + public StartBuilder request(String requestUrl,String method,String methodName,String requestParam,long startTime){ + this.requestUrl=requestUrl; + this.method=method; + this.methodName=methodName; + this.requestParam = requestParam; + this.startTime=startTime; + return this; + } + public StartBuilder response(HttpResponse responseParam, HttpStatus status, long executeTime){ + if (responseParam!=null){ + this.responseParam=responseParam.body(); + } + this.status=status; + this.executeTime=executeTime; + return this; + } + public StartBuilder response(Object responseParam, HttpStatus status, long executeTime){ + if (responseParam!=null){ + this.requestParam = JSONObject.toJSONString(responseParam); + } + this.status=status; + this.executeTime=executeTime; + return this; + } + public LuceneLogDto build(){ + LuceneLogDto dto = new LuceneLogDto(); + dto.setLogLevel(this.logLevel); + dto.setLogType(this.logType); + dto.setDeviceCode(this.deviceCode); + dto.setRequestUrl(this.requestUrl); + dto.setMethod(this.method); + dto.setMethodName(this.methodName); + dto.setContent(this.content); + dto.setRequestParam(this.requestParam); + dto.setResponseParam(this.responseParam); + dto.setStatus(this.status); + dto.setRequestDirection(this.requestDirection); + dto.setStartTime(this.startTime); + dto.setExecuteTime(this.executeTime); + return dto; + } } - - public LuceneLogDto(final String device_code, final String remark) { - super(); - this.device_code = device_code; - this.content = "设备 [" - + device_code - + "] : " - + remark; - } - - public LuceneLogDto(final Integer log_level,final String method, final String status, - final String requestparam, final String responseparam, final String content) { - super(); - this.log_level = log_level; - this.method =method; - this.requestparam = requestparam; - this.responseparam = responseparam; - this.content = content; - } - } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneQuery.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneQuery.java new file mode 100644 index 0000000..4b0f468 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneQuery.java @@ -0,0 +1,49 @@ +package org.nl.modules.lucene.service.dto; + +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import org.nl.modules.lucene.enums.LogDirectEnum; +import org.nl.modules.lucene.enums.LogLevelEnum; +import org.nl.modules.lucene.enums.LogTypeEnum; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.http.HttpStatus; + +import java.util.Date; + +@Data +public class LuceneQuery { + /** + * 日志级别 + */ + private Integer logLevel; + /*日志类型*/ + private String logType; + /*设备编号*/ + private String deviceCode; + /* 请求地址 */ + private String requestUrl; + /* 方法 */ + private String method; + private String methodName; + /*内容详情*/ + private String content; + /* 请求参数 */ + private String requestParam; + /* 响应参数 */ + private String responseParam; + /* 状态码 */ + private String status; + /** + * 请求方向 + */ + private String requestDirection; + /** + * 执行时间 + */ + private Long begin_time; + private Long end_time; + + private Integer page; + private Integer size; +} diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java index 3f152b4..68322ab 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneExecuteLogServiceImpl.java @@ -6,9 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.document.StringField; +import org.apache.lucene.document.*; import org.apache.lucene.index.IndexWriter; import org.nl.modules.lucene.common.LuceneIndexWriter; import org.nl.modules.lucene.enums.LogTypeEnum; @@ -17,8 +15,6 @@ import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.slf4j.MDC; import org.springframework.stereotype.Service; -import java.io.IOException; - /** * @author jlm * @description 服务实现 @@ -37,13 +33,11 @@ public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { @SneakyThrows @Override public void deviceExecuteLog(LuceneLogDto luceneLogDto) { - luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); addIndex(luceneLogDto); } @Override public void interfaceExecuteLog(LuceneLogDto luceneLogDto) { - luceneLogDto.setLogType(LogTypeEnum.INTERFACE_LOG.getDesc()); addIndex(luceneLogDto); } @@ -52,40 +46,43 @@ public class LuceneExecuteLogServiceImpl implements LuceneExecuteLogService { //创建一个Document对象 Document document = new Document(); try { - //记录索引开始时间 - long startTime = System.currentTimeMillis(); //向document对象中添加域。 - if (ObjectUtil.isNotEmpty(luceneLogDto.getDevice_code())) { - document.add(new StringField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); -// document.add(new TextField("device_code", luceneLogDto.getDevice_code(), Field.Store.YES)); + if (ObjectUtil.isNotEmpty(luceneLogDto.getDeviceCode())) { + document.add(new StringField("deviceCode", luceneLogDto.getDeviceCode(), Field.Store.YES)); } if (ObjectUtil.isNotEmpty(luceneLogDto.getContent())) { - document.add(new StringField("fieldContent", luceneLogDto.getContent(), Field.Store.YES)); + document.add(new StringField("content", luceneLogDto.getContent(), Field.Store.YES)); } if (ObjectUtil.isNotEmpty(luceneLogDto.getMethod())) { document.add(new StringField("method", luceneLogDto.getMethod(), Field.Store.YES)); } - - if (ObjectUtil.isNotEmpty(luceneLogDto.getRequest_url())) { - document.add(new StringField("url", luceneLogDto.getRequest_url(), Field.Store.YES)); + if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestUrl())) { + document.add(new StringField("url", luceneLogDto.getRequestUrl(), Field.Store.YES)); } - if (ObjectUtil.isNotEmpty(luceneLogDto.getStatus_code())) { - document.add(new StringField("status_code", luceneLogDto.getStatus_code(), Field.Store.YES)); + if (ObjectUtil.isNotEmpty(luceneLogDto.getStatus())) { + document.add(new StringField("status", String.valueOf(luceneLogDto.getStatus().value()), Field.Store.YES)); } - if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestparam())) { - document.add(new StringField("requestparam", luceneLogDto.getRequestparam(), Field.Store.YES)); + if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestParam())) { + document.add(new StringField("requestParam", luceneLogDto.getRequestParam(), Field.Store.YES)); } - if (ObjectUtil.isNotEmpty(luceneLogDto.getResponseparam())) { - document.add(new StringField("responseparam", luceneLogDto.getResponseparam(), Field.Store.YES)); + if (ObjectUtil.isNotEmpty(luceneLogDto.getResponseParam())) { + document.add(new StringField("responseParam", luceneLogDto.getResponseParam(), Field.Store.YES)); } - document.add(new StringField("logType", luceneLogDto.getLogType(), Field.Store.YES)); - document.add(new StringField("logTime", DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS"), Field.Store.YES)); + if (ObjectUtil.isNotEmpty(luceneLogDto.getExecuteTime())) { + document.add(new StringField("executeTime", String.valueOf(luceneLogDto.getExecuteTime()), Field.Store.YES)); + } + if (ObjectUtil.isNotEmpty(luceneLogDto.getRequestDirection())) { + document.add(new StringField("requestDirection", luceneLogDto.getRequestDirection().name(),Field.Store.YES)); + } + document.add(new StringField("logType", luceneLogDto.getLogType().getDesc(), Field.Store.YES)); + document.add(new IntPoint("logLevel", luceneLogDto.getLogLevel().getCode())); + document.add(new StoredField("logLevel",luceneLogDto.getLogLevel().getCode())); + document.add(new LongPoint("logTime", luceneLogDto.getStartTime())); + document.add(new StoredField("logTime", luceneLogDto.getStartTime())); + document.add(new NumericDocValuesField("logTime", luceneLogDto.getStartTime())); indexWriter.addDocument(document); //记录索引结束时间 - long endTime = System.currentTimeMillis(); - log.info("建立索引共耗时{}毫秒", endTime - startTime); indexWriter.commit(); - MDC.put("DEVICECODE", luceneLogDto.getDevice_code()); } catch (Exception e) { log.error(e.getMessage(), e); } diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneServiceImpl.java index 955d3be..110045d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/lucene/service/impl/LuceneServiceImpl.java @@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; +import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; import org.apache.lucene.search.*; import org.apache.lucene.store.FSDirectory; @@ -18,6 +19,7 @@ import org.apache.lucene.util.BytesRef; import org.nl.modules.lucene.common.LuceneIndexWriter; import org.nl.modules.lucene.common.Searcher; import org.nl.modules.lucene.service.LuceneService; +import org.nl.modules.lucene.service.dto.LuceneQuery; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.core.io.ClassPathResource; @@ -46,82 +48,9 @@ public class LuceneServiceImpl implements LuceneService { @Value("${lucene.index.path}") private String luceneUrl; - /** - * 获取labels和values树 - * - * @return - */ - @Override - public JSONArray getLabelsValues() { - JSONArray result = new JSONArray(); - // 获取所有标签 - String labelString = HttpUtil.get(lokiUrl + "/labels", CharsetUtil.CHARSET_UTF_8); - JSONObject parse = (JSONObject) JSONObject.parse(labelString); - JSONArray labels = parse.getJSONArray("data"); - for (int i=0; i getAll(Map whereJson, Pageable page) { - JSONObject jo = new JSONObject(); - try { - JSONObject jsonObject = (JSONObject) Searcher.search(luceneUrl, "", whereJson); - JSONArray array = jsonObject.getJSONArray("content"); - int totalElements = Integer.parseInt(jsonObject.get("totalElements").toString()); - jo.put("content", array); - jo.put("totalElements", totalElements); - } catch (Exception e) { - log.error("索引查询为空", e); - throw new NullPointerException("索引查询为空"); - } - - return jo; + public Map luceneSearch(LuceneQuery query) { + return Searcher.search(luceneUrl,query); } - - - @Override - public Map getAddressLog(Map whereJson, Pageable page) { - - JSONObject jo = new JSONObject(); - try { - JSONObject jsonObject = (JSONObject) Searcher.search(luceneUrl, "", whereJson); - JSONArray array = jsonObject.getJSONArray("content"); - int totalElements = Integer.parseInt(jsonObject.get("totalElements").toString()); - jo.put("content", array); - jo.put("totalElements", totalElements); - } catch (Exception e) { - log.error("索引查询为空", e); - throw new NullPointerException("索引查询为空"); - } - - return jo; - } - - public static String getDate(String timeString) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 - Date date = sdf.parse(timeString); - timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间 - return timeString; - } - } diff --git a/acs/nladmin-ui/src/api/acs/lucene/log.js b/acs/nladmin-ui/src/api/acs/lucene/log.js index 0b7ef0a..b099769 100644 --- a/acs/nladmin-ui/src/api/acs/lucene/log.js +++ b/acs/nladmin-ui/src/api/acs/lucene/log.js @@ -1,5 +1,13 @@ import request from '@/utils/request' +export function getAddressLog(data) { + return request({ + url: 'api/lucene/getAddressLog', + method: 'post', + data + }) +} + export function delAll(id) { return request({ url: 'api/lucene/' + id, @@ -7,4 +15,4 @@ export function delAll(id) { }) } -export default { delAll } +export default { getAddressLog, delAll } diff --git a/acs/nladmin-ui/src/views/monitor/logQuery/index.vue b/acs/nladmin-ui/src/views/monitor/logQuery/index.vue index ddd8c03..80c3626 100644 --- a/acs/nladmin-ui/src/views/monitor/logQuery/index.vue +++ b/acs/nladmin-ui/src/views/monitor/logQuery/index.vue @@ -1,148 +1,443 @@ diff --git a/acs/nladmin-ui/src/views/monitor/logQuery/search.vue b/acs/nladmin-ui/src/views/monitor/logQuery/search.vue index 3ceda08..bd613b7 100644 --- a/acs/nladmin-ui/src/views/monitor/logQuery/search.vue +++ b/acs/nladmin-ui/src/views/monitor/logQuery/search.vue @@ -1,62 +1,134 @@ @@ -99,9 +171,7 @@ export default { picker.$emit('pick', [start, end]) } }] - }, - value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)], - value2: '' + } } }, created() { @@ -113,13 +183,18 @@ export default {