diff --git a/web/src/main/java/com/zhehekeji/web/controller/CameraController.java b/web/src/main/java/com/zhehekeji/web/controller/CameraController.java index 340f29a..e9dc9f9 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/CameraController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/CameraController.java @@ -197,4 +197,30 @@ public class CameraController { return Result.success(); } + + @GetMapping("/rtcConfig") + @ApiOperation(value = "获取rtcConfig") + public Result rtcConfig(String rtcServer) { + List cameraList = cameraService.getCamerasByRtcServer(rtcServer); + JSONObject jsonObject = new JSONObject(); + JSONObject server = new JSONObject(); + server.put("http_port",":8083"); + String [] strings = new String[1]; + strings[0] = "stun:stun.l.google.com:19302"; + server.put("ice_servers",strings); + server.put("ice_username",""); + server.put("ice_credential",""); + jsonObject.put("server",server); + JSONObject streams = new JSONObject(); + cameraList.forEach(camera -> { + JSONObject obj = new JSONObject(); + obj.put("on_demand",true); + obj.put("disable_audio",true); + obj.put("url",camera.getRtsp()); + streams.put("camera"+camera.getId(),obj); + }); + jsonObject.put("streams",streams); + + return Result.success(jsonObject.toJSONString()); + } } diff --git a/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java b/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java index 5fd8d84..5a55cb3 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/RealTimeController.java @@ -33,11 +33,25 @@ public class RealTimeController { return Result.success(realTimeService.realTimes()); } - @GetMapping("/allCameras") + @GetMapping("/allCameras1") @ApiOperation(value = "全部球机") //@SessionHandler - public Result> allCameras() { - return Result.success(cameraService.allCameras()); + public Result> allCameras1() { + return Result.success(cameraService.allCameras(0)); + } + + @GetMapping("/allCameras2") + @ApiOperation(value = "全部球机") + //@SessionHandler + public Result> allCameras2() { + return Result.success(cameraService.allCameras(1)); + } + + @GetMapping("/allCameras3") + @ApiOperation(value = "全部球机") + //@SessionHandler + public Result> allCameras3() { + return Result.success(cameraService.allCameras(2)); } @GetMapping("/wallStyle") diff --git a/web/src/main/java/com/zhehekeji/web/controller/VideoccController.java b/web/src/main/java/com/zhehekeji/web/controller/VideoccController.java index 6ff590e..be1c38d 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/VideoccController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/VideoccController.java @@ -6,6 +6,7 @@ import com.zhehekeji.web.mapper.CheckLogMapper; import com.zhehekeji.web.mapper.RFIDMapper; import com.zhehekeji.web.mapper.StreetMapper; import com.zhehekeji.web.service.CheckLogService; +import com.zhehekeji.web.service.PlcService; import com.zhehekeji.web.service.interfaces.RfidLogService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,10 +28,12 @@ public class VideoccController { private CheckLogMapper checkLogMapper; @Resource private StreetMapper streetMapper; + @Resource + PlcService plcService; @PostMapping("/xiddata") @ApiOperation(value = "库存信息") - public VideoccResponse xiddata(@RequestBody Videocc videocc ){ - + public VideoccResponse xiddata1(@RequestBody Videocc videocc ){ + String orderNum = videocc.getLoc().substring(0,3)+ "_"+videocc.getJobNum(); Set list = new HashSet<>(); if(videocc.getDetails()!=null && videocc.getDetails().size()>0){ for(String detail:videocc.getDetails().keySet()){ @@ -38,33 +41,14 @@ public class VideoccController { list.addAll(videocc.getDetails().get(detail)); } } + plcService.wmsTrayCodeMapByTask.put(orderNum,list); VideoccResponse videoccResponse = new VideoccResponse(); - videoccResponse.setMsg("失败"); - videoccResponse.setIsSuccess(0);RfidLog rfidLog = rfidLogService.getOne(new QueryWrapper().eq("task_id",videocc.getJobNum()).orderByDesc("create_time")); - - Street street = streetMapper.selectById(rfidLog.getStreet_id()); - - CheckLog checkLog = checkLogMapper.selectOne(new QueryWrapper().eq("check_Num",street.getPlcId()+"_"+videocc.getJobNum()).orderByDesc("create_time")); - - if(rfidLog!=null){ - Set codes = rfidLog.getRfidTrayCode().split(",").length>0?new HashSet<>(Arrays.asList(rfidLog.getRfidTrayCode().split(","))):new HashSet<>(); - if(codes.containsAll(list)){ - checkLog.setStatus(2); - videoccResponse.setMsg("成功"); - videoccResponse.setIsSuccess(1); - }else { - - checkLog.setStatus(1); - videoccResponse.setMsg("扫码错误,请检查货物"); - videoccResponse.setIsSuccess(0); - } - checkLogMapper.updateById(checkLog); - }else { - videoccResponse.setMsg("rfid扫码未完成,请稍后重试"); - videoccResponse.setIsSuccess(0); - } + videoccResponse.setMsg("成功"); + videoccResponse.setIsSuccess(1); return videoccResponse; } + + } diff --git a/web/src/main/java/com/zhehekeji/web/entity/Videocc.java b/web/src/main/java/com/zhehekeji/web/entity/Videocc.java index e109d0e..08a809b 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Videocc.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Videocc.java @@ -13,6 +13,8 @@ public class Videocc { private String taskKey; @JsonProperty(value = "JOBNUM") private String jobNum; + @JsonProperty(value = "SRMNumber") + private String SRMNumber; @JsonProperty(value = "PLTNUM") private String pltNum; @JsonProperty(value = "LOC") diff --git a/web/src/main/java/com/zhehekeji/web/service/CameraService.java b/web/src/main/java/com/zhehekeji/web/service/CameraService.java index 982e811..1b9b78d 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -1,6 +1,7 @@ package com.zhehekeji.web.service; import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zhehekeji.core.util.Assert; @@ -124,6 +125,14 @@ public class CameraService { return new PageInfo<>(cameras); } + + public List getCamerasByRtcServer(String rtcServer){ + if(StringUtils.isEmpty(rtcServer)){ + rtcServer = "127.0.0.1"; + } + return cameraMapper.selectList(new QueryWrapper().eq("rtc_server",rtcServer)); + } + public class StatusThread extends Thread{ private Camera camera; private CountDownLatch latch; @@ -159,8 +168,14 @@ public class CameraService { return cameraMapper.selectById(id); } + public List allCameras(int i){ + int count = (configProperties.getVideoStyleConfig().getVideoStyleColumn()) * (configProperties.getVideoStyleConfig().getVideoStyleRow()); + int i1 = count * i; + return cameraMapper.selectList(new QueryWrapper().last("limit "+i1+" ,"+count)); + } + public List allCameras(){ - return cameraMapper.selectByMap(new HashMap<>()); + return cameraMapper.selectList(new QueryWrapper()); } /** diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index 5b42882..92163f3 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -98,6 +98,8 @@ public class PlcService { @Resource private RfidLiveService rfidLiveService; + public static Map> wmsTrayCodeMapByTask = new HashMap<>(); + private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 8, 200, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100000)); public void setCameraControlModule(CameraControlModule cameraControlModule) { @@ -714,9 +716,17 @@ public class PlcService { } if (tags != null && tags.size() > 0 ) { + if(tags.containsAll(wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()))) { + - trayCode = "未盘点"; - trayCheck = Boolean.TRUE; + trayCode = "盘点正常"; + trayCheck = Boolean.TRUE; + }else { + + trayCode = "盘点失败"; + trayCheck = Boolean.FALSE; + } + wmsTrayCodeMapByTask.remove(plcCmdInfo.getOrderNum()); RFID rfid = rfidMapper.selectOne(new QueryWrapper().eq("street_id", street.getId())); if(! rfidLiveService.getRfidLive(plcCmdInfo,street,wmsTrayCode)){ rfidLiveService.rfidRemoveLive(plcCmdInfo,street,rfid); @@ -816,6 +826,7 @@ public class PlcService { } + public void checkLog(Stock stock) { CheckLog checkLog = new CheckLog(); checkLog.setCheckNum(stock.getCheckNum()); diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index 19f69dd..98f532e 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -198,36 +198,12 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { // } } else if (Cmd.E.name().equals(ksecInfo.getType()) ) { - //盘点 - //转球机到盘点位 然后拍照 - -// if(!StringUtils.isEmpty(lotnum) && !lotnum.equals(lastLotnum)){ -// //需要把stock表truncate -// FileUtil.save(lotnum,"lastLotnum"); -// tcpLogger.info("truncate table ,last lotnum:{},new lotnum:{}",lastLotnum,lotnum); -// plcService.truncateStock(); -// lastLotnum = lotnum; -// } -// plcCmdInfo.setTimes(1); -// Boolean ok = plcService.check(plcCmdInfo,ksecInfo.getData().getCmdName(), dataInfo.getCode(), dataInfo.getTrayCode()); -// if(ok){ -// ksecInfo.getData().setAckStatus(1); -// }else { -// ksecInfo.getData().setAckStatus(0); -// } -// ctx.channel().writeAndFlush(ksecInfo); //rfid的逻辑 String code = dataInfo.getCmdName(); log.info("盘点指令:{}", ksecInfo); plcService.check(plcCmdInfo,ksecInfo.getType(),dataInfo.getCode(),dataInfo.getTrayCode()); ksecInfo.getData().setAckStatus(1); - /* - if("E1".equals(code)){ - plcService.RFIDCheck(plcCmdInfo); - }else { - plcService.RFIDStop(plcCmdInfo); - }*/ ctx.channel().writeAndFlush(ksecInfo); log.info("盘点完成"); }