diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java index 7c124a3..680ffe4 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java @@ -133,4 +133,5 @@ public interface CameraControlModule { void toPtzSlow(Integer cameraId, Integer x); + boolean setCameraTime(Integer id); } diff --git a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java index 0155e3c..3a446b7 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java @@ -20,6 +20,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Timer; +import static com.zhehekeji.web.lib.hik.HCNetSDK.NET_DVR_SET_TIMECFG; + /** * 云台控制接口实现 * 主要有 :八个方向控制、变倍、变焦、光圈功能 @@ -435,4 +437,13 @@ public class HikCameraControlModuleImpl implements CameraControlModule { } } + public boolean setCameraTime(Integer cameraId) { + int lUserId = CameraConnMap.getConnId(cameraId).intValue(); + HCNetSDK.NET_DVR_TIME time = new HCNetSDK.NET_DVR_TIME(); + LocalDateTime localDateTime = LocalDateTime.now(); + time.setTime(localDateTime.getYear(),localDateTime.getMonthValue(),localDateTime.getDayOfMonth(),localDateTime.getHour(),localDateTime.getMinute(),localDateTime.getSecond()); + time.write(); + return HikLoginModuleImpl.hcNetsdk.NET_DVR_SetDVRConfig(lUserId, NET_DVR_SET_TIMECFG, 0,time.getPointer(), time.size()); + + } } diff --git a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java index 76c36c9..67236f4 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java @@ -352,6 +352,9 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule { log.error("toPtzSlow cameraId:{},error:{}", cameraId,ToolKits.getErrorCodePrint()); } } + public boolean setCameraTime(Integer cameraId) { + return false; + } /** * 旋转360度 diff --git a/web/src/main/java/com/zhehekeji/web/mapper/StockMapper.java b/web/src/main/java/com/zhehekeji/web/mapper/StockMapper.java index ed54dd1..2526be0 100644 --- a/web/src/main/java/com/zhehekeji/web/mapper/StockMapper.java +++ b/web/src/main/java/com/zhehekeji/web/mapper/StockMapper.java @@ -13,7 +13,7 @@ public interface StockMapper extends BaseMapper { void insertOrUpdate(@Param("req") Stock stock); - @Select("select * from stock where `street_id` = #{streetId} and `direction` = #{direction} and `side` = #{side} and `row` = #{row} and `column` = #{column} limit 1") + @Select("select * from stock where `street_id` = #{streetId} and `direction` = #{direction} and `side` = #{side} and `row` = #{row} and `column` = #{column} order by export_time desc limit 1") Stock getByStreetAndDirectionAndSideAndRowColumn(@Param("streetId") Integer streetId,@Param("direction") Integer direction,@Param("side") Integer side,@Param("row") Integer row,@Param("column") Integer column); void truncate(); diff --git a/web/src/main/java/com/zhehekeji/web/pojo/OrderSearch.java b/web/src/main/java/com/zhehekeji/web/pojo/OrderSearch.java index c70d7e3..d3ad39e 100644 --- a/web/src/main/java/com/zhehekeji/web/pojo/OrderSearch.java +++ b/web/src/main/java/com/zhehekeji/web/pojo/OrderSearch.java @@ -17,6 +17,7 @@ public class OrderSearch { @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime endTimestamp; + private Integer streetId; private Integer pageSize; diff --git a/web/src/main/java/com/zhehekeji/web/service/CronTab.java b/web/src/main/java/com/zhehekeji/web/service/CronTab.java index 702d55f..6a0614f 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CronTab.java +++ b/web/src/main/java/com/zhehekeji/web/service/CronTab.java @@ -3,7 +3,13 @@ package com.zhehekeji.web.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.controller.StreetController; +import com.zhehekeji.web.entity.Camera; import com.zhehekeji.web.entity.LightSource; +import com.zhehekeji.web.lib.CameraConnMap; +import com.zhehekeji.web.lib.CameraControlModule; +import com.zhehekeji.web.lib.hik.HikLoginModuleImpl; +import com.zhehekeji.web.lib.joyware.JoywareLoginModuleImpl; +import com.zhehekeji.web.mapper.CameraMapper; import com.zhehekeji.web.mapper.LightSourceMapper; import com.zhehekeji.web.service.damLightSource.JYDAMEquip; import com.zhehekeji.web.service.damLightSource.JYDamHelper; @@ -73,6 +79,39 @@ public class CronTab { lightTimeMap.put(streetId,System.currentTimeMillis()); } + + @Resource + private CameraMapper cameraMapper; + + @Resource + private CameraService cameraService; + + @Resource + private CameraControlModule cameraControlModule; + + @Scheduled(cron = "${cameraConfig.cameraTimeUpdateCron}") + public void cameraTimeUpdate() { + log.info(" cameraTimeUpdate"); + long timeStamp = System.currentTimeMillis(); + List cameras = cameraMapper.selectList(new QueryWrapper<>()); + for (Camera camera : cameras){ + Boolean ok = false; + if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){ + ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue()); + }else { + ok = JoywareLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId())); + } + + if(ok){ + cameraControlModule.setCameraTime(camera.getId()); + }else { + CameraConnMap.disConn(camera.getId()); + camera.setStatus("未连接"); + cameraService.cameraLogin(camera); + } + } + } + @Scheduled(cron = "0 0/1 * * * ?") public void lightStatus() { log.debug(" lightStatus"); @@ -102,7 +141,7 @@ public class CronTab { } - @Scheduled(cron = "0 0 0 * * ? ") + @Scheduled(cron = "0 4 0 * * ? ") public void lightCloseAll() { streetController.closeLightSource(); } diff --git a/web/src/main/java/com/zhehekeji/web/service/InitService.java b/web/src/main/java/com/zhehekeji/web/service/InitService.java index 3e7d194..f1c66e3 100644 --- a/web/src/main/java/com/zhehekeji/web/service/InitService.java +++ b/web/src/main/java/com/zhehekeji/web/service/InitService.java @@ -66,7 +66,7 @@ public class InitService implements ApplicationRunner { cameraService.setCameraLoginModule(cameraControlLoginModule); return cameraControlLoginModule; } - + CameraControlModule cameraControlModule; @Bean public CameraControlModule cameraControlModule(ConfigProperties configProperties){ CameraControlModule cameraControlModule = null; @@ -77,6 +77,7 @@ public class InitService implements ApplicationRunner { } plcService.setCameraControlModule(cameraControlModule); cameraService.setCameraControlModule(cameraControlModule); + this.cameraControlModule = cameraControlModule; return cameraControlModule; } @@ -84,6 +85,7 @@ public class InitService implements ApplicationRunner { public void run(ApplicationArguments args) throws Exception { //球机登录 List cameras = cameraMapper.selectByMap(new HashMap<>(0)); + cameras.forEach(camera -> { LoginThread loginThread = new LoginThread(camera); loginThread.start(); @@ -121,6 +123,8 @@ public class InitService implements ApplicationRunner { } }else if(configProperties.getServerMode() == 3){} TaskDelayExecutor.runMp4DownloadExecutor(); + + streetController.closeLightSource(); } @@ -134,7 +138,9 @@ public class InitService implements ApplicationRunner { @Override public void run() { + cameraService.cameraLogin(camera); + cameraControlModule.setCameraTime(camera.getId()); } } 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 edaf1b1..09317db 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -204,6 +204,7 @@ public class PlcService { LocalDateTime endTime = LocalDateTime.now(); Order order = orderMapper.getOneByOrderNum(plcCmdInfo.getOrderNum()); + order.setEndTime(endTime); if (order == null) { log.error("订单结束信号,订单不存在,orderNum:{}", plcCmdInfo.getOrderNum()); return; @@ -354,7 +355,6 @@ public class PlcService { long delayTime = 0; if (code.startsWith("C1")) { - delayTime = configProperties.getCameraConfig().getC1DelayCaptureTime(); } else if (code.startsWith("C2")) { if (sep == 1) { @@ -362,7 +362,7 @@ public class PlcService { } else { delayTime = configProperties.getCameraConfig().getC2OutDelayCaptureTime(); } - if (configProperties.getOrderTest() == 1 && plcCmdInfo.getFromAround() == 2) { + if (configProperties.getOrderTest() == 1) { checkTest(plcCmdInfo); } } else if (code.startsWith("C3")) { @@ -829,8 +829,8 @@ public class PlcService { //古井贡酒没有side使用双伸单伸Separation代替全部side plcCmdInfo = new PlcCmdInfo(dataInfo.getSRMNumber(), dataInfo.getTaskId(), dataInfo.getFromSeparation(), dataInfo.getFromDirection(), dataInfo.getFromColumn(), - dataInfo.getFromRow(), dataInfo.getFromSeparation(), dataInfo.getToSeparation(), - dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToRow(), + dataInfo.getFromStorey(), dataInfo.getFromSeparation(), dataInfo.getToSeparation(), + dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToStorey(), dataInfo.getToSeparation(), lotnum); plcCmdInfo.setFromDirection(dataInfo.getFromDirection()); plcCmdInfo.setToDirection(dataInfo.getToDirection()); @@ -882,10 +882,6 @@ public class PlcService { } else if (Cmd.B2.name().equals(cmdName)) { - - //B2 C4 一起发的,需要停止等B2 - - orderStop(plcCmdInfo); } } else if (Cmd.C.name().equals(ksecInfo.getType())) { diff --git a/web/src/main/java/com/zhehekeji/web/service/StockService.java b/web/src/main/java/com/zhehekeji/web/service/StockService.java index 9e0dc4c..1abaf48 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -112,7 +112,11 @@ public class StockService { } Map columnTabCorrectCount = new LinkedHashMap<>(); Map rowTabCorrectCount = new LinkedHashMap<>(); - List stocks = stockMapper.selectList(new QueryWrapper().select("status","`row`","`column`").eq("`street_id`",rowColumnStatus.getStreetId()).eq("direction",rowColumnStatus.getDirection()).eq("side",rowColumnStatus.getSide())); + List stocks = stockMapper.selectList(new QueryWrapper() + .select("status","`row`","`column`") + .eq("`street_id`",rowColumnStatus.getStreetId()) + .eq("direction",rowColumnStatus.getDirection()) + .eq("side",rowColumnStatus.getSide())); if(CollectionUtils.isEmpty(stocks)){ stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null,stocks); checkStatus.setStocks(stocks); @@ -437,7 +441,7 @@ public class StockService { public Stock nextOne(Long id) { QueryWrapper stockQueryWrapper = new QueryWrapper<>(); - stockQueryWrapper.eq("status","0") + stockQueryWrapper.eq("status","0").or().eq("status","1") .ne(ToolUtil.isNotEmpty(id),"id",id) .orderByDesc("export_time").last("limit 1"); Stock stock =stockMapper.selectOne(stockQueryWrapper); diff --git a/web/src/main/java/com/zhehekeji/web/service/algorithm/AlgorithmService.java b/web/src/main/java/com/zhehekeji/web/service/algorithm/AlgorithmService.java index 492ab1d..8a12ed9 100644 --- a/web/src/main/java/com/zhehekeji/web/service/algorithm/AlgorithmService.java +++ b/web/src/main/java/com/zhehekeji/web/service/algorithm/AlgorithmService.java @@ -2,6 +2,7 @@ package com.zhehekeji.web.service.algorithm; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.entity.AlgorithmPojo; import com.zhehekeji.web.entity.Street; @@ -24,16 +25,33 @@ public class AlgorithmService { @Resource ConfigProperties configProperties; + public static void main(String[] args) { + AlgorithmPojo algorithmPojo= new AlgorithmPojo(); + algorithmPojo.setGoodsTypeResult("qqq"); + algorithmPojo.setIp("12"); + algorithmPojo.setPort(8083); + + AlgorithmService algorithmService = new AlgorithmService(); + algorithmService.getGoodResult(algorithmPojo); + } + public AlgorithmPojo getGoodResult(AlgorithmPojo algorithmPojo) { - String url = "http://"+algorithmPojo.getIp()+":"+algorithmPojo.getPort()+configProperties.getVisualSense().getUrl(); + //String url = "http://"+algorithmPojo.getIp()+":"+algorithmPojo.getPort()+configProperties.getVisualSense().getUrl(); + + RestTemplate restTemplate =new RestTemplate(); - //url = "http://127.0.0.1:8083"+configProperties.getVisualSense().getUrl(); + + + String url = "http://127.0.0.1:8083"+"/visionCompute"; ResponseEntity body = null; try { System.out.println(algorithmPojo); + + Gson gson = new Gson(); + // String jsonString = gson.toJson(algorithmPojo); body = restTemplate.postForEntity(url, algorithmPojo, String.class); algorithmPojo = JSONObject.parseObject(body.getBody(), AlgorithmPojo.class); diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDataInfo.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDataInfo.java index 1e0b5ea..08080d2 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDataInfo.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDataInfo.java @@ -16,6 +16,7 @@ public class KsecDataInfo { private Integer fromColumn; private Integer fromRow; + private Integer fromStorey; private Integer fromDirection; @@ -27,6 +28,8 @@ public class KsecDataInfo { private Integer toRow; + private Integer toStorey; + private Integer toDirection; private Integer toSide; diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index 5bfe0fd..95f5a19 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -26,6 +26,7 @@ userUrl: http://115.236.65.98:11001 # ----------- # ----默认摄像头的连接信息 cameraConfig: + cameraTimeUpdateCron: 0 0/1 * * * ? # ------------球機選擇--- 0:利珀 1:海康 cameraType: 1 cameraPassword: a1234567 diff --git a/web/src/main/resources/mapper/OrderMapper.xml b/web/src/main/resources/mapper/OrderMapper.xml index e1e103b..1b1b283 100644 --- a/web/src/main/resources/mapper/OrderMapper.xml +++ b/web/src/main/resources/mapper/OrderMapper.xml @@ -12,6 +12,9 @@ and t.start_time >= #{req.startTimestamp} and t.start_time <= #{req.endTimestamp} + + and t.street_id = #{req.streetId} + order by t.id desc