diff --git a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java index 907779a..31c4acd 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java @@ -47,7 +47,7 @@ public class CameraControlController { log.info("相机登录 cameraId:{}",cameraId); Camera camera = cameraMapper.selectById(cameraId); Assert.notNull(camera,"球机不存在"); - NetSDKLib.LLong lLong = loginControlModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); + NetSDKLib.LLong lLong = loginControlModule.login(cameraId,camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); return lLong; } @@ -335,6 +335,11 @@ public class CameraControlController { private void checkLogin(Integer cameraId) { if (CameraConnMap.getConnId(cameraId) != null) { + + Camera camera = cameraMapper.selectById(cameraId); + if (CameraConnMap.getConnId(cameraId)!=null){ + cameraService.cameraLogin(camera); + } Boolean ok = false; if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) { ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId).intValue()); @@ -344,7 +349,6 @@ public class CameraControlController { if (!ok) { { CameraConnMap.disConn(cameraId); - Camera camera = cameraMapper.selectById(cameraId); cameraService.cameraLogin(camera); } } diff --git a/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java b/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java index 85134b2..76bea25 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java +++ b/web/src/main/java/com/zhehekeji/web/entity/CheckLog.java @@ -46,6 +46,7 @@ public class CheckLog { private Integer status; private String subtag;; + private String taskId; private String pic; diff --git a/web/src/main/java/com/zhehekeji/web/entity/UploadCheckResults.java b/web/src/main/java/com/zhehekeji/web/entity/UploadCheckResults.java index 31e67dd..acec914 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/UploadCheckResults.java +++ b/web/src/main/java/com/zhehekeji/web/entity/UploadCheckResults.java @@ -8,5 +8,5 @@ public class UploadCheckResults { private String wmsTaskId; private String palno; private String addre; - private Integer flag; + private String flag; } diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java b/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java index 0700b29..bdd5a3b 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java @@ -1,5 +1,6 @@ package com.zhehekeji.web.lib; +import com.zhehekeji.web.entity.Camera; import com.zhehekeji.web.lib.joyware.NetSDKLib; import java.util.HashMap; @@ -15,6 +16,11 @@ public class CameraConnMap { * value: loginId */ public static Map cameraMap = new HashMap<>(); + /** + * key :cameraId + * value: loginId + */ + public static Map cameraByIdMap = new HashMap<>(); /** * key:loginId @@ -23,10 +29,9 @@ public class CameraConnMap { public static Map loginMap = new HashMap<>(); public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){ - synchronized (cameraId.toString().intern()){ + cameraMap.put(cameraId,handlerId); loginMap.put(handlerId,cameraId); - } } diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraControlLoginModule.java b/web/src/main/java/com/zhehekeji/web/lib/CameraControlLoginModule.java index 49d198e..ba97678 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraControlLoginModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraControlLoginModule.java @@ -4,6 +4,6 @@ import com.zhehekeji.web.lib.joyware.NetSDKLib; public interface CameraControlLoginModule { - NetSDKLib.LLong login(String ip, int port, String user, String password); + NetSDKLib.LLong login(Integer cameraId,String ip, int port, String user, String password); } 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 00c6a0c..567d701 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java @@ -120,7 +120,7 @@ public interface CameraControlModule { boolean pic(Integer cameraId, int channel, String realPath); - void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end); + boolean downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end); /** * 设置预置点 diff --git a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java index f37e459..379d263 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java +++ b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java @@ -1,14 +1,19 @@ package com.zhehekeji.web.lib; import com.zhehekeji.common.util.SpringContextUtil; +import com.zhehekeji.web.service.CameraService; import java.time.LocalDateTime; import java.util.concurrent.DelayQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import static com.zhehekeji.web.lib.CameraConnMap.cameraMap; + public class TaskDelayExecutor { + + private static ExecutorService exec = Executors.newFixedThreadPool(1); private static DelayQueue queue = new DelayQueue<>(); @@ -28,8 +33,9 @@ public class TaskDelayExecutor { cameraDelayTask.setPtzId(ptzId); queue.add(cameraDelayTask); } - + private static CameraService cameraService = SpringContextUtil.getBean(CameraService.class); public static void runMp4DownloadExecutor(){ + exec.execute(new Consumer()); } @@ -44,10 +50,21 @@ public class TaskDelayExecutor { if(cameraDelayTask != null){ if(cameraDelayTask.getType() == 0){ - - cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); + for(int i = 0; i < 3; i++) { + if(cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime())){ + break; + }else { + cameraService.cameraConnect( cameraDelayTask.getCameraId()); + } + } }else if(cameraDelayTask.getType() == 1){ - cameraControlModule.pic(cameraDelayTask.getCameraId(),0, cameraDelayTask.getPath()); + for(int i = 0; i < 10; i++) { + if(cameraControlModule.pic(cameraDelayTask.getCameraId(), 0, cameraDelayTask.getPath())){ + break; + }else { + cameraService.cameraConnect( cameraDelayTask.getCameraId()); + } + } }else if(cameraDelayTask.getType() == 2){ cameraControlModule.toPtz(cameraDelayTask.getPtzId(),cameraDelayTask.getCameraId()); } 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 0121d1d..060aa20 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 @@ -306,7 +306,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule { return picResult; } - public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) { + public boolean downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) { PathUtil.checkDirc(path); HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME(); @@ -318,12 +318,15 @@ public class HikCameraControlModuleImpl implements CameraControlModule { int lUserID = CameraConnMap.getConnId(cameraId).intValue(); int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime(lUserID, 1, startTime, endTime, path); + if (result == -1) { log.error("downloadMp4 error code:{},cameraId:{},path:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId,path); + return false; } else { HikLoginModuleImpl.hcNetsdk.NET_DVR_PlayBackControl(result, HikLoginModuleImpl.hcNetsdk.NET_DVR_PLAYSTART,0,null); Timer downloadtimer = new Timer(); downloadtimer.schedule(new DownloadTask(result,downloadtimer,path,cameraId), 0, 5000); + return true; } } diff --git a/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java index e0b81b1..06976de 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java @@ -1,6 +1,7 @@ package com.zhehekeji.web.lib.hik; import com.sun.jna.Pointer; +import com.zhehekeji.web.lib.CameraConnMap; import com.zhehekeji.web.lib.CameraControlLoginModule; import com.zhehekeji.web.lib.joyware.NetSDKLib; import lombok.extern.slf4j.Slf4j; @@ -69,7 +70,7 @@ public class HikLoginModuleImpl implements CameraControlLoginModule { * 登录设备 * \endif */ - public NetSDKLib.LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) { + public NetSDKLib.LLong login(Integer cameraId,String m_strIp, int m_nPort, String m_strUser, String m_strPassword) { init(); HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();//设备登录信息 HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();//设备信息 @@ -89,6 +90,17 @@ public class HikLoginModuleImpl implements CameraControlLoginModule { m_strLoginInfo.write(); HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo30 = new HCNetSDK.NET_DVR_DEVICEINFO_V30();//设备信息 + ////先注销,在登录 + if (CameraConnMap.getConnId(cameraId) !=null ) { + + if(hcNetsdk.NET_DVR_Logout_V30(CameraConnMap.getConnId(cameraId).intValue())) { + + log.error("hik logout error,ip:{},port:{},errorCode:{}", m_strIp, m_nPort, hcNetsdk.NET_DVR_GetLastError()); + }else { + CameraConnMap.disConn(cameraId); + } + } + int m_lUserID = hcNetsdk.NET_DVR_Login_V40(m_strLoginInfo,m_strDeviceInfo); int lChannel = 2; //byStartDChan为IP通道起始通道号, 预览回放NVR的IP通道时需要根据起始通道号进行取值 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 b741d0b..f528790 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 @@ -288,7 +288,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule { return ok; } - public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) { + public boolean downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) { PathUtil.checkDirc(path); NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME(); @@ -311,9 +311,11 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule { NetSDKLib.LLong l = JoywareLoginModuleImpl.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId), download_by_data_type.getPointer(), net_out_download_by_data_type.getPointer(), 8000); if(l.longValue() != 0){ log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{},status:{},cameraId:{}", path, start, end, LocalDateTime.now(),l.longValue(),cameraId); - }else { + return true; + }else { log.error("download mp4 error:{},startTime:{} ,endTime:{},cameraId:{}",ToolKits.getErrorCodePrint(),start,end,cameraId); + return false; } } diff --git a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareLoginModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareLoginModuleImpl.java index 1a201db..a28380e 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareLoginModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareLoginModuleImpl.java @@ -117,7 +117,7 @@ public class JoywareLoginModuleImpl implements CameraControlLoginModule { * 登录设备 * \endif */ - public LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) { + public LLong login(Integer cameraId,String m_strIp, int m_nPort, String m_strUser, String m_strPassword) { //IntByReference nError = new IntByReference(0); //入参 init(disConnectCallBack,haveReConnect); diff --git a/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckLogSearch.java b/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckLogSearch.java index 356c0e7..a652e29 100644 --- a/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckLogSearch.java +++ b/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckLogSearch.java @@ -11,6 +11,7 @@ import java.time.LocalDateTime; public class CheckLogSearch { private String lotnum; + private String taskId; @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime startTimestamp; diff --git a/web/src/main/java/com/zhehekeji/web/pojo/stock/StockCheck.java b/web/src/main/java/com/zhehekeji/web/pojo/stock/StockCheck.java index 2f1fc0b..6e8267c 100644 --- a/web/src/main/java/com/zhehekeji/web/pojo/stock/StockCheck.java +++ b/web/src/main/java/com/zhehekeji/web/pojo/stock/StockCheck.java @@ -14,6 +14,7 @@ public class StockCheck { // private String shelveId; private Integer streetId; + private Integer streetPlc; private Integer direction; 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 8e6d735..f91b8e4 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -186,7 +186,7 @@ public class CameraService { public List allCameras3(){ Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn(); - List cameras = cameraMapper.selectList(new QueryWrapper().last("limit 2,4")); + List cameras = cameraMapper.selectList(new QueryWrapper().last("limit 4,4")); return cameras; } @@ -344,12 +344,23 @@ public class CameraService { } } + public void cameraConnect(Integer cameraId){ + + log.error("camera unconnected,cameraId:{}",cameraId); + Camera camera = cameraMapper.selectById(cameraId); + cameraLogin(camera); + } + public void cameraLogin(Camera camera){ - NetSDKLib.LLong lLong = cameraControlLoginModule.login(camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); + + synchronized (camera.getId().toString().intern()){ + NetSDKLib.LLong lLong = cameraControlLoginModule.login(camera.getId(),camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); if(lLong != null){ log.info("camera login success,cameraId:{},ip:{}",camera.getId(),camera.getIp()); CameraConnMap.conn(camera.getId(),lLong); } + + } } diff --git a/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java b/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java index 09cecfd..8945eca 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CheckLogService.java @@ -52,6 +52,7 @@ public class CheckLogService { if(search.getStreetId() != null && search.getStreetId() != 0){ wrapper.eq("`street_id`",search.getStreetId()); } + wrapper.like(search.getTaskId()!= null && !search.getTaskId().equals(""), "`task_id`",search.getTaskId()); wrapper.orderByDesc("create_Time"); ListstockChecks = checkLogMapper.selectList(wrapper); stockChecks.forEach(l->{ 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 4f98f7b..9b926d0 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CronTab.java +++ b/web/src/main/java/com/zhehekeji/web/service/CronTab.java @@ -117,7 +117,10 @@ public class CronTab { List cameras = cameraMapper.selectList(new QueryWrapper<>()); for (Camera camera : cameras){ Boolean ok = false; - if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){ + if (CameraConnMap.getConnId(camera.getId()) !=null){ + cameraService.cameraLogin(camera); + } + if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA ){ ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue()); }else { ok = JoywareLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId())); 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 307609d..487aca2 100644 --- a/web/src/main/java/com/zhehekeji/web/service/InitService.java +++ b/web/src/main/java/com/zhehekeji/web/service/InitService.java @@ -25,6 +25,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 服务初始化 @@ -84,6 +85,7 @@ public class InitService implements ApplicationRunner { cameras.forEach(camera -> { LoginThread loginThread = new LoginThread(camera); loginThread.start(); + CameraConnMap.cameraByIdMap.put(camera.getId(),camera); }); LPLicense.createLicKeyIfNotExist(); //plc连接 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 63e3c26..9f52a1c 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -79,9 +79,9 @@ public class PlcService { @Resource private CheckLogMapper checkLogMapper; - private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1,8,200,TimeUnit.MINUTES,new ArrayBlockingQueue<>(100000)); + private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 8, 200, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100000)); - public void setCameraControlModule(CameraControlModule cameraControlModule){ + public void setCameraControlModule(CameraControlModule cameraControlModule) { this.cameraControlModule = cameraControlModule; } @@ -92,7 +92,7 @@ public class PlcService { public Integer plcStatus() { Integer count = 1; - if(configProperties.getServerMode() == 0){ + if (configProperties.getServerMode() == 0) { count = streetMapper.selectCount(new QueryWrapper<>()); } @@ -109,14 +109,14 @@ public class PlcService { Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); if (street != null) { - if(plcCmdInfo.getLeftRight1() == 1){ - if(plcCmdInfo.getRow1()>street.getLeftRow() && plcCmdInfo.getColumn1() > street.getLeftColumn()){ - log.error("row:{},column:{},error in streetId:{} left",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1(),street.getId()); + if (plcCmdInfo.getLeftRight1() == 1) { + if (plcCmdInfo.getRow1() > street.getLeftRow() && plcCmdInfo.getColumn1() > street.getLeftColumn()) { + log.error("row:{},column:{},error in streetId:{} left", plcCmdInfo.getRow1(), plcCmdInfo.getColumn1(), street.getId()); return; } - }else { - if(plcCmdInfo.getRow1()>street.getRightRow() && plcCmdInfo.getColumn1() > street.getRightColumn()){ - log.error("row:{},column:{},error in streetId:{} right",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1(),street.getId()); + } else { + if (plcCmdInfo.getRow1() > street.getRightRow() && plcCmdInfo.getColumn1() > street.getRightColumn()) { + log.error("row:{},column:{},error in streetId:{} right", plcCmdInfo.getRow1(), plcCmdInfo.getColumn1(), street.getId()); return; } } @@ -142,17 +142,18 @@ public class PlcService { OrderRealtime.startOrder(street.getId(), plcCmdInfo.getOrderNum()); } } - public boolean openStreetLightSource( Integer streetId){ + + public boolean openStreetLightSource(Integer streetId) { List lightSources = lightSourceService.getLightSourceByStreetId(streetId); lightSources.forEach(lightSource -> { - if(configProperties.getLightSource().getType() == 1){ - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.openDO(equip,configProperties.getLightSource().getIndex()); - Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex()); - log.info("ip:{},status:{}",lightSource.getIp(),status); + if (configProperties.getLightSource().getType() == 1) { + JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(), lightSource.getPort()); + JYDamHelper.openDO(equip, configProperties.getLightSource().getIndex()); + Integer status = JYDamHelper.ReadStatus(equip, configProperties.getLightSource().getNum(), configProperties.getLightSource().getIndex()); + log.info("ip:{},status:{}", lightSource.getIp(), status); equip.DisConnect(); - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),1); + } else if (configProperties.getLightSource().getType() == 2) { + HikControlSocket.openLight(lightSource.getIp(), lightSource.getPort(), configProperties.getLightSource().getIndex(), 1); } }); @@ -160,67 +161,61 @@ public class PlcService { return true; } - public void verticalAdjustmentByStreet(String SRMNumber){ + public void verticalAdjustmentByStreet(String SRMNumber) { Street street = streetService.getStreetByPlcId(SRMNumber); try { - Thread.sleep(configProperties.getCameraConfig().getVerticalAdjustmentTime()*1000); + Thread.sleep(configProperties.getCameraConfig().getVerticalAdjustmentTime() * 1000); } catch (InterruptedException e) { throw new RuntimeException(e); } - if(street.getCamera1Id()!=null){ + if (street.getCamera1Id() != null) { //重置垂直方向球机 verticalAdjustment(street.getCamera1Id()); } - if(street.getCamera2Id()!=null){ + if (street.getCamera2Id() != null) { //重置垂直方向球机 verticalAdjustment(street.getCamera2Id()); } } - public void verticalAdjustment(Integer cameraId){ - log.info("球机"+cameraId+"重置垂直方向开始"); + + public void verticalAdjustment(Integer cameraId) { + log.info("球机" + cameraId + "重置垂直方向开始"); Double origin = null; - int i = 10 ; - while (i >=0){ - i-- ; - CameraPtzPojo cameraPtzPojo = cameraControlModule.ptzGetDVRConfig(cameraId); - if(cameraPtzPojo.isGetSuccess()) { - cameraControlModule.ptzControlDownStart(cameraId, 0, 0, 1); - log.info("球机控制向下"); - System.out.println("获取的垂直位置"+cameraPtzPojo.getWTiltPos()); - if (origin == null) { - origin = cameraPtzPojo.getWTiltPos(); - } else if (cameraPtzPojo.getWTiltPos() <= origin) { - break; - } - } - try { - Thread.sleep(500); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + CameraPtzPojo cameraPtzPojo = cameraControlModule.ptzGetDVRConfig(cameraId); + if (cameraPtzPojo.isGetSuccess()) { + cameraControlModule.ptzControlDownStart(cameraId, 0, 0, 1); + log.info("球机控制向下"); + System.out.println("获取的垂直位置" + cameraPtzPojo.getWTiltPos()); + } + try { + //预设5秒回到原点位 + Thread.sleep(5000); + } catch (InterruptedException e) { + throw new RuntimeException(e); } - log.info("球机"+cameraId+"重置垂直方向成功"); - cameraControlModule.ptzControlDownEnd(cameraId,0); - gyrateCameraByCode(cameraId,"C1"); + log.info("球机" + cameraId + "重置垂直方向成功"); + cameraControlModule.ptzControlDownEnd(cameraId, 0); + gyrateCameraByCode(cameraId, "C1"); } - public boolean closeStreetLightSource( Integer streetId){ + public boolean closeStreetLightSource(Integer streetId) { List lightSources = lightSourceService.getLightSourceByStreetId(streetId); lightSources.forEach(lightSource -> { - if(configProperties.getLightSource().getType() == 1){ - JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort()); - JYDamHelper.closeDO(equip,configProperties.getLightSource().getIndex()); - Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex()); - log.info("ip:{},status:{}",lightSource.getIp(),status); + if (configProperties.getLightSource().getType() == 1) { + JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(), lightSource.getPort()); + JYDamHelper.closeDO(equip, configProperties.getLightSource().getIndex()); + Integer status = JYDamHelper.ReadStatus(equip, configProperties.getLightSource().getNum(), configProperties.getLightSource().getIndex()); + log.info("ip:{},status:{}", lightSource.getIp(), status); equip.DisConnect(); - }else if(configProperties.getLightSource().getType() == 2){ - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),0); + } else if (configProperties.getLightSource().getType() == 2) { + HikControlSocket.openLight(lightSource.getIp(), lightSource.getPort(), configProperties.getLightSource().getIndex(), 0); } }); return true; } + /** * 工单结束信息 * 判断有没有告警,有告警的不做处理 @@ -249,17 +244,17 @@ public class PlcService { update.setColumn2(plcCmdInfo.getColumn2()); update.setRow2(plcCmdInfo.getRow2()); LocalDateTime endDownLoadTime = endTime.plusSeconds(10); - Duration duration = Duration.between(order.getStartTime(),endDownLoadTime); + Duration duration = Duration.between(order.getStartTime(), endDownLoadTime); - if(duration.toMinutes() > 50){ + if (duration.toMinutes() > 50) { endDownLoadTime = order.getStartTime().plusMinutes(50); } if (street.getCamera1Id() != null) { - String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endDownLoadTime); + String path = cameraVideo(street.getCamera1Id(), order.getStartTime(), endDownLoadTime); update.setVideoPath1(path); } if (street.getCamera2Id() != null) { - String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endDownLoadTime); + String path = cameraVideo(street.getCamera2Id(), order.getStartTime(), endDownLoadTime); update.setVideoPath2(path); } orderMapper.updateById(update); @@ -281,12 +276,12 @@ public class PlcService { } public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) { - String path = PathUtil.createFileName("mp4",cameraId); + String path = PathUtil.createFileName("mp4", cameraId); Thread thread = new Thread(new Runnable() { @Override public void run() { String realPath = configProperties.getSavePath().getMp4Path() + path; - TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,configProperties.getCameraConfig().getDelayDownloadMp4()); + TaskDelayExecutor.addMp4DelayTask(cameraId, realPath, startTime, endTime, configProperties.getCameraConfig().getDelayDownloadMp4()); } }); thread.start(); @@ -320,83 +315,83 @@ public class PlcService { * 右侧转camera2 * 没有就不管了 */ - Integer cameraId = getCameraByPlcCmd(plcCmdInfo,orderInfo.getLeftRight()); - gyrateCameraByCode(cameraId,orderInfo.getCmdCode()); - if(needCapture){ + Integer cameraId = getCameraByPlcCmd(plcCmdInfo, orderInfo.getLeftRight()); + gyrateCameraByCode(cameraId, orderInfo.getCmdCode()); + if (needCapture) { Boolean delay = true; Integer row = 0; Integer column = 0; Integer sep = 0; - if(times<=2){ + if (times <= 2) { row = plcCmdInfo.getRow1(); column = plcCmdInfo.getColumn1(); sep = plcCmdInfo.getSeparation1(); - }else { + } else { row = plcCmdInfo.getRow2(); column = plcCmdInfo.getColumn2(); sep = plcCmdInfo.getSeparation2(); } long delayTime = 0; - if(code.startsWith("C1")){ + if (code.startsWith("C1")) { delayTime = configProperties.getCameraConfig().getC1DelayCaptureTime(); - }else if(code.startsWith("C2")){ - if(sep == 1){ + } else if (code.startsWith("C2")) { + if (sep == 1) { delayTime = configProperties.getCameraConfig().getC2DelayCaptureTime(); - }else { + } else { delayTime = configProperties.getCameraConfig().getC2OutDelayCaptureTime(); } - }else if(code.startsWith("C3")){ + } else if (code.startsWith("C3")) { delayTime = configProperties.getCameraConfig().getC3DelayCaptureTime(); - }else if(code.startsWith("C4")){ - if(sep == 1){ + } else if (code.startsWith("C4")) { + if (sep == 1) { delayTime = configProperties.getCameraConfig().getC4DelayCaptureTime(); - }else { + } else { delayTime = configProperties.getCameraConfig().getC4OutDelayCaptureTime(); } } - path = PathUtil.createFileNameByRowColumn("jpg",cameraId,row,column); - path = cameraCapture(cameraId,delay,delayTime,path); + path = PathUtil.createFileNameByRowColumn("jpg", cameraId, row, column); + path = cameraCapture(cameraId, delay, delayTime, path); } //update order info after capture if (path != null && needCapture) { captureUpdateOrderAndStock(orderInfo, path); } //转向原点位 - if(times == 2){ + if (times == 2) { - if(street.getCamera2Id() != null){ - gyrateCameraByCodeTimeLater(street.getCamera2Id(),"C5",configProperties.getCameraConfig().getC2OutDelayCaptureTime()+500); + if (street.getCamera2Id() != null) { + gyrateCameraByCodeTimeLater(street.getCamera2Id(), "C5", configProperties.getCameraConfig().getC2OutDelayCaptureTime() + 500); } - if(street.getCamera1Id() != null){ - gyrateCameraByCodeTimeLater(street.getCamera1Id(),"C5",configProperties.getCameraConfig().getC2OutDelayCaptureTime()+500); + if (street.getCamera1Id() != null) { + gyrateCameraByCodeTimeLater(street.getCamera1Id(), "C5", configProperties.getCameraConfig().getC2OutDelayCaptureTime() + 500); } } } - public void gyrateCamera(PlcCmdInfo plcCmdInfo,String code){ + public void gyrateCamera(PlcCmdInfo plcCmdInfo, String code) { Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); - if(street == null){ + if (street == null) { return; } - if(street.getCamera1Id() != null){ - gyrateCameraByCode(street.getCamera1Id(),code); + if (street.getCamera1Id() != null) { + gyrateCameraByCode(street.getCamera1Id(), code); } - if(street.getCamera2Id() != null){ - gyrateCameraByCode(street.getCamera2Id(),code); + if (street.getCamera2Id() != null) { + gyrateCameraByCode(street.getCamera2Id(), code); } } - public void warnAction(PlcCmdInfo plcCmdInfo,String warnCode){ + public void warnAction(PlcCmdInfo plcCmdInfo, String warnCode) { Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); - if(street.getCamera1Id() != null){ - gyrateCameraByCode(street.getCamera1Id(),warnCode); + if (street.getCamera1Id() != null) { + gyrateCameraByCode(street.getCamera1Id(), warnCode); } - if(street.getCamera2Id() != null){ - gyrateCameraByCode(street.getCamera2Id(),warnCode); + if (street.getCamera2Id() != null) { + gyrateCameraByCode(street.getCamera2Id(), warnCode); } } @@ -419,13 +414,13 @@ public class PlcService { * * @Return pic address */ - public String cameraCapture(Integer cameraId,Boolean delay,Long delayTime,String path) { + public String cameraCapture(Integer cameraId, Boolean delay, Long delayTime, String path) { //String path = PathUtil.createFileName("jpg",cameraId); String realPath = configProperties.getSavePath().getMediaPath() + path; - if(delay){ - TaskDelayExecutor.addPicDelayTask(cameraId,realPath,delayTime); - }else { - cameraControlModule.pic(cameraId,0,realPath); + if (delay) { + TaskDelayExecutor.addPicDelayTask(cameraId, realPath, delayTime); + } else { + cameraControlModule.pic(cameraId, 0, realPath); log.info("cameraID: {} capture photo :{}", cameraId, path); } return path; @@ -441,17 +436,17 @@ public class PlcService { Integer ptzId = cameraService.getPtzIdByCodeAndCameraId(code, cameraId); if (ptzId != null && ptzId >= 0) { log.info("gyrate camera by code, code:{},cameraId:{},ptId:{}", code, cameraId, ptzId); - cameraControlModule.toPtz(ptzId,cameraId); + cameraControlModule.toPtz(ptzId, cameraId); } else { log.error("ptz not found ,code:{},cameraId:{}", code, cameraId); } } - public void gyrateCameraByCodeTimeLater(Integer cameraId, String code,long times) { + public void gyrateCameraByCodeTimeLater(Integer cameraId, String code, long times) { Integer ptzId = cameraService.getPtzIdByCodeAndCameraId(code, cameraId); if (ptzId != null && ptzId >= 0) { log.info("gyrate camera by code, code:{},cameraId:{},ptId:{}", code, cameraId, ptzId); - TaskDelayExecutor.addGyrateCameraTask(cameraId,times,ptzId); + TaskDelayExecutor.addGyrateCameraTask(cameraId, times, ptzId); //cameraControlModule.toPtz(ptzId,cameraId); } else { log.error("ptz not found ,code:{},cameraId:{}", code, cameraId); @@ -489,7 +484,7 @@ public class PlcService { Order order = orderMapper.getOneByOrderNum(orderNum); if (order != null) { //stop the order - log.debug("plcId:{},warn start and stop the order",plcId); + log.debug("plcId:{},warn start and stop the order", plcId); orderStopByWarn(orderNum); OrderVO orderVO = new OrderVO(); BeanUtils.copyProperties(order, orderVO); @@ -528,11 +523,11 @@ public class PlcService { //结束该告警,并录像 warn.setEndTime(LocalDateTime.now()); if (street.getCamera1Id() != null) { - String path = cameraVideo(street.getCamera1Id(),warn.getStartTime(),LocalDateTime.now()); + String path = cameraVideo(street.getCamera1Id(), warn.getStartTime(), LocalDateTime.now()); warn.setVideoPath1(path); } if (street.getCamera2Id() != null) { - String path = cameraVideo(street.getCamera2Id(),warn.getStartTime(),LocalDateTime.now()); + String path = cameraVideo(street.getCamera2Id(), warn.getStartTime(), LocalDateTime.now()); warn.setVideoPath2(path); } warnMapper.updateById(warn); @@ -552,7 +547,7 @@ public class PlcService { Order order = orderMapper.getOneByOrderNum(orderInfo.getOrderNum()); if (order != null) { //update picPath in stock if code is C2/C4 - if(orderInfo.getCode().startsWith("C2") || orderInfo.getCode().startsWith("C4")){ + if (orderInfo.getCode().startsWith("C2") || orderInfo.getCode().startsWith("C4")) { StockLog stockLog = new StockLog(); stockLog.setStreetId(orderInfo.getStreetId()); stockLog.setDirection(orderInfo.getLeftRight()); @@ -560,7 +555,7 @@ public class PlcService { stockLog.setRow(orderInfo.getRow()); stockLog.setColumn(orderInfo.getColumn()); stockLog.setPic(path); - String type = orderInfo.getCode().substring(1,2); + String type = orderInfo.getCode().substring(1, 2); stockLog.setType(Integer.valueOf(type)); stockLog.setOrderNum(orderInfo.getOrderNum()); stockLog.setCreateTime(LocalDateTime.now()); @@ -601,16 +596,16 @@ public class PlcService { } } - public Integer getCameraByPlcCmd(PlcCmdInfo plcCmdInfo,Integer leftRight){ + public Integer getCameraByPlcCmd(PlcCmdInfo plcCmdInfo, Integer leftRight) { Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); //判断单双伸 type=0 单伸 1为双伸 Integer type; - if(leftRight == 1){ + if (leftRight == 1) { type = street.getLeftType(); - }else { + } else { type = street.getRightType(); } - if(type == 0){ + if (type == 0) { //单伸 if (street.getCamera1Id() != null && street.getCamera2Id() != null && street.getCamera1Id() != 0 && street.getCamera2Id() != 0) { if (leftRight == 1) { @@ -622,13 +617,13 @@ public class PlcService { Integer cameraId = street.getCamera1Id() != null && street.getCamera1Id() != 0 ? street.getCamera1Id() : street.getCamera2Id(); return cameraId; } - }else { + } else { if (street.getCamera1Id() != null && street.getCamera2Id() != null && street.getCamera1Id() != 0 && street.getCamera2Id() != 0) { //双伸 todo 这个因项目而异,看现场的情况 //默认是 左侧返回camera2 右侧返回camera1 - if(plcCmdInfo.getLeftRight1() == 1){ + if (plcCmdInfo.getLeftRight1() == 1) { return street.getCamera2Id(); - }else { + } else { return street.getCamera1Id(); } } else { @@ -643,28 +638,28 @@ public class PlcService { @Resource private LightSourceMapper lightSourceMapper; - public Boolean check(PlcCmdInfo plcCmdInfo,String cmdCode,String wmsCode,String wmsTrayCode,String wmsCatagary){ + public Boolean check(PlcCmdInfo plcCmdInfo, String cmdCode, String wmsCode, String wmsTrayCode, String wmsCatagary) { long startTime = System.currentTimeMillis(); Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); CronTab.putTime(street.getId()); - List lightSources = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",street.getId())); + List lightSources = lightSourceMapper.selectList(new QueryWrapper().eq("street_id", street.getId())); lightSources.forEach(lightSource -> { - HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),1); + HikControlSocket.openLight(lightSource.getIp(), lightSource.getPort(), configProperties.getLightSource().getIndex(), 1); }); - Integer cameraId = getCameraByPlcCmd(plcCmdInfo,plcCmdInfo.getLeftRight1()); + Integer cameraId = getCameraByPlcCmd(plcCmdInfo, plcCmdInfo.getLeftRight1()); //蜜雪冰城拍摄货物顶部时用同侧相机 Integer leftRightTop = plcCmdInfo.getLeftRight1() == 1 ? 2 : 1; Integer cameraIdTop = getCameraByPlcCmd(plcCmdInfo, leftRightTop); - if(plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2){ + if (plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2) { //内测 - String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1) ; - log.info("camera ptz"+c); + String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1); + log.info("camera ptz" + c); gyrateCameraByCode(cameraIdTop, c); - }else { - String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1) ; - log.info("camera ptz"+cmdCode); + } else { + String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1); + log.info("camera ptz" + cmdCode); gyrateCameraByCode(cameraIdTop, cmdCode); try { Thread.sleep(configProperties.getCameraConfig().getDelayCaptureTime()); @@ -674,7 +669,7 @@ public class PlcService { } - String path = PathUtil.createFileNameByRowColumn("jpg",cameraId,plcCmdInfo.getRow1(),plcCmdInfo.getColumn1()); + String path = PathUtil.createFileNameByRowColumn("jpg", cameraId, plcCmdInfo.getRow1(), plcCmdInfo.getColumn1()); //拍照暂停1s再拍 try { Thread.sleep(configProperties.getCameraConfig().getEDelayCaptureTime()); @@ -685,8 +680,8 @@ public class PlcService { cameraCapture(cameraIdTop, false, null, path); //成都蜜雪冰城 只拍照人工核对 - String e2 = "E2-" + plcCmdInfo.getLeftRightStr(1) + "-TOP"; - log.info("camera ptz"+e2); + String e2 = "E2-" + plcCmdInfo.getLeftRightStr(1) + "-TOP"; + log.info("camera ptz" + e2); gyrateCameraByCode(cameraId, e2); try { @@ -694,21 +689,21 @@ public class PlcService { } catch (InterruptedException e) { e.printStackTrace(); } - cameraCapture(cameraId,false,null,path+".jpg"); + cameraCapture(cameraId, false, null, path + ".jpg"); try { Thread.sleep(configProperties.getCameraConfig().getEDelayCaptureTime()); } catch (InterruptedException e) { e.printStackTrace(); } - }catch (Exception e){ - log.error("camera capture error:{}",e.getMessage()); + } catch (Exception e) { + log.error("camera capture error:{}", e.getMessage()); } - OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode); - Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn()); + OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, 1, cmdCode); + Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(), orderInfo.getLeftRight(), orderInfo.getSeparation(), orderInfo.getRow(), orderInfo.getColumn()); //核对异常 - if(stock == null){ + if (stock == null) { /* stock = new Stock(null,null,plcCmdInfo.getOrderNum(),plcCmdInfo.getLotnum() ,"", null,null,wmsCode,wmsCatagary,null, wmsTrayCode,"",orderInfo.getStreetId(), @@ -738,7 +733,7 @@ public class PlcService { .build(); stockMapper.insert(stock); log.info("stockmapper insert new stock info."); - }else { + } else { stock.setStatus(0); stock.setLotnum(plcCmdInfo.getLotnum()); stock.setExportTime(LocalDateTime.now()); @@ -764,10 +759,11 @@ public class PlcService { // threadPoolExecutor.execute(stockCheckRunnable); long end = System.currentTimeMillis(); long s = end - startTime; - log.info("time:{}millisecond",s); + log.info("time:{}millisecond", s); return true; } - public void checkLog(Stock stock){ + + public void checkLog(Stock stock) { CheckLog checkLog = new CheckLog(); checkLog.setCheckNum(stock.getCheckNum()); checkLog.setPic(stock.getCheckPic()); @@ -776,6 +772,7 @@ public class PlcService { checkLog.setSide(stock.getSide()); checkLog.setSubtag(stock.getSubtag()); checkLog.setCode(stock.getCode()); + checkLog.setTaskId(stock.getTaskWMSId()); checkLog.setWmsCode(stock.getWmsCode()); checkLog.setStatus(stock.getStatus()); checkLog.setRow(stock.getRow()); @@ -788,16 +785,17 @@ public class PlcService { checkLogMapper.insert(checkLog); log.info("checklogmapper insert new checklog info finished."); } - public void truncateStock(){ + + public void truncateStock() { stockMapper.truncate(); } - public void RFIDCheck(PlcCmdInfo plcCmdInfo){ + public void RFIDCheck(PlcCmdInfo plcCmdInfo) { Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); - if(street != null){ + if (street != null) { RFID rfid = rfidService.getRFIDByPlc(street.getId()); - if(rfid != null){ - RFIDStart(rfid.getIp(),rfid.getPort(),street.getId(),1); + if (rfid != null) { + RFIDStart(rfid.getIp(), rfid.getPort(), street.getId(), 1); } } } @@ -821,7 +819,8 @@ public class PlcService { } return tags; } - public ConfigProperties getConfigProperties(){ + + public ConfigProperties getConfigProperties() { return configProperties; } 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 b84f2d0..dd651cb 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -1,6 +1,7 @@ package com.zhehekeji.web.service; import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -19,6 +20,9 @@ import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -407,17 +411,25 @@ public class StockService { */ public Stock stockInfo(StockCheck stockCheck) { - Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(stockCheck.getStreetId(), stockCheck.getDirection(), stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn()); + Street street = streetMapper.selectOne(new QueryWrapper() + .eq(stockCheck.getStreetPlc()!=null,"plc_Id", stockCheck.getStreetPlc()) + .eq(stockCheck.getStreetId()!=null,"id", stockCheck.getStreetId())); + + Stock stock = stockMapper.selectOne(new QueryWrapper().eq("`row`", stockCheck.getRow()) + .eq("`column`", stockCheck.getColumn()) + .eq("`direction`", stockCheck.getDirection()) + .eq("`side`", stockCheck.getSide()) + .eq(stockCheck.getStreetId()!=null,"`street_id`", stockCheck.getStreetId()) + .eq(stockCheck.getStreetPlc()!=null,"`street_id`", stockCheck.getStreetPlc())); if (stock == null) { stock = new Stock(); stock.setColumn(stockCheck.getColumn()); stock.setRow(stockCheck.getRow()); //stock.setShelveId(stockCheck.getShelveId()); stock.setStatus(0); - Street street = streetMapper.selectById(stockCheck.getStreetId()); + stock.setStreetName(street.getName()); } else { - Street street = streetMapper.selectById(stock.getStreetId()); stock.setStreetName(street.getName()); List stockLogs = stockLogMapper.selectList(new QueryWrapper().eq("`row`", stockCheck.getRow()).eq("`column`", stockCheck.getColumn()).eq("street_id", stockCheck.getStreetId()).eq("direction", stockCheck.getDirection()).eq("side", stockCheck.getSide()).orderByDesc("create_time").last(" limit 2")); @@ -495,6 +507,9 @@ public class StockService { public void uploadResultsWMS(Stock stock, Integer stockStatus) { + + HttpHeaders requestHeaders = new HttpHeaders(); + requestHeaders.setContentType(MediaType.APPLICATION_JSON); ResponseEntity body = null; RestTemplate restTemplate = new RestTemplate(); String url = configProperties.getUploadResultsApiUrl(); @@ -507,14 +522,17 @@ public class StockService { uploadCheckResults.setWcsTaskId(stock.getCheckNum().split("_")[1]); uploadCheckResults.setWmsTaskId(stock.getTaskWMSId()); uploadCheckResults.setPalno(stock.getWmsCode()); - uploadCheckResults.setFlag(stockStatus == 1 ? 1 : 0); + uploadCheckResults.setFlag(stockStatus == 1 ? "1" : "0"); uploadCheckResults.setAddre(stock.getAddre()); + List list = new ArrayList<>(); + list.add(uploadCheckResults); + HttpEntity> requestEntity = new HttpEntity<>(list, requestHeaders); try { // String jsonString = gson.toJson(algorithmPojo); - body = restTemplate.postForEntity(url, uploadCheckResults, String.class); - JSONObject.parseObject(body.getBody(), UploadCheckResults.class); + System.out.println("上传信息:"+ JSON.toJSONString(list)); + body = restTemplate.postForEntity(url, list, String.class); System.out.println(body); } catch (RestClientException e) { @@ -523,6 +541,24 @@ public class StockService { } } + public static void main(String[] args) { + + UploadCheckResults uploadCheckResults = new UploadCheckResults(); + + + //String url = "http://127.0.0.1:8083"+"/visionCompute"; + + uploadCheckResults.setWcsTaskId("1111"); + uploadCheckResults.setWmsTaskId("stock.getTaskWMSId()"); + uploadCheckResults.setPalno("stock.getWmsCode()"); + uploadCheckResults.setFlag(1 == 1 ? "1" : "0"); + uploadCheckResults.setAddre("stock.getAddre()"); + List list = new ArrayList<>(); + list.add(uploadCheckResults); + System.out.println(JSON.toJSONString(list)); + + } + @Resource private CheckLogMapper checkLogMapper; 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 f15fc07..253c90b 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 @@ -10,7 +10,7 @@ public class KsecDataInfo { private String cmdName; private String taskId; - private String taskWMSId; + private String taskWMSTaskId; private Integer fromColumn; 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 ef4851e..cae9e59 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 @@ -97,7 +97,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { plcCmdInfo = new PlcCmdInfo(dataInfo.getSRMNumber(), dataInfo.getTaskId(), dataInfo.getFromSide(), dataInfo.getFromDirection(), dataInfo.getFromColumn(), dataInfo.getFromRow(), dataInfo.getFromSeparation(), dataInfo.getToSide(), dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToRow(), dataInfo.getToSeparation(), lotnum); plcCmdInfo.setSubtag(dataInfo.getSubtag()); plcCmdInfo.setAddre(dataInfo.getAddre()); - plcCmdInfo.setTaskWMSId(dataInfo.getTaskWMSId()); + plcCmdInfo.setTaskWMSId(dataInfo.getTaskWMSTaskId()); plcCmdInfo.setAddre(dataInfo.getAddre()); plcCmdInfo.setWmsTrayCode(dataInfo.getTrayCode()); plcCmdInfo.setTrayCode(dataInfo.getCode()); diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecNettyClient.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecNettyClient.java index ad0290c..8b24209 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecNettyClient.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecNettyClient.java @@ -50,6 +50,10 @@ public class KsecNettyClient { * @param upId */ public void reconnect(Integer upId) { + if(channel!=null){ + channel.disconnect(); + channel.close(); + } Boolean isConnected = false; int num = 0; ConfigProperties.KSEC ksec = configProperties.getKsec();