焦作-mxbc-北起
LAPTOP-S9HJSOEB\昊天 2 years ago
parent 40b5232811
commit 2d10ca8ae3

@ -47,7 +47,7 @@ public class CameraControlController {
log.info("相机登录 cameraId:{}",cameraId); log.info("相机登录 cameraId:{}",cameraId);
Camera camera = cameraMapper.selectById(cameraId); Camera camera = cameraMapper.selectById(cameraId);
Assert.notNull(camera,"球机不存在"); 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; return lLong;
} }
@ -335,6 +335,11 @@ public class CameraControlController {
private void checkLogin(Integer cameraId) { private void checkLogin(Integer cameraId) {
if (CameraConnMap.getConnId(cameraId) != null) { if (CameraConnMap.getConnId(cameraId) != null) {
Camera camera = cameraMapper.selectById(cameraId);
if (CameraConnMap.getConnId(cameraId)!=null){
cameraService.cameraLogin(camera);
}
Boolean ok = false; Boolean ok = false;
if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) { if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) {
ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId).intValue()); ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId).intValue());
@ -344,7 +349,6 @@ public class CameraControlController {
if (!ok) { if (!ok) {
{ {
CameraConnMap.disConn(cameraId); CameraConnMap.disConn(cameraId);
Camera camera = cameraMapper.selectById(cameraId);
cameraService.cameraLogin(camera); cameraService.cameraLogin(camera);
} }
} }

@ -46,6 +46,7 @@ public class CheckLog {
private Integer status; private Integer status;
private String subtag;; private String subtag;;
private String taskId;
private String pic; private String pic;

@ -8,5 +8,5 @@ public class UploadCheckResults {
private String wmsTaskId; private String wmsTaskId;
private String palno; private String palno;
private String addre; private String addre;
private Integer flag; private String flag;
} }

@ -1,5 +1,6 @@
package com.zhehekeji.web.lib; package com.zhehekeji.web.lib;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.lib.joyware.NetSDKLib; import com.zhehekeji.web.lib.joyware.NetSDKLib;
import java.util.HashMap; import java.util.HashMap;
@ -15,6 +16,11 @@ public class CameraConnMap {
* value: loginId * value: loginId
*/ */
public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>(); public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>();
/**
* key :cameraId
* value: loginId
*/
public static Map<Integer, Camera> cameraByIdMap = new HashMap<>();
/** /**
* key:loginId * key:loginId
@ -23,10 +29,9 @@ public class CameraConnMap {
public static Map<NetSDKLib.LLong,Integer> loginMap = new HashMap<>(); public static Map<NetSDKLib.LLong,Integer> loginMap = new HashMap<>();
public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){ public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){
synchronized (cameraId.toString().intern()){
cameraMap.put(cameraId,handlerId); cameraMap.put(cameraId,handlerId);
loginMap.put(handlerId,cameraId); loginMap.put(handlerId,cameraId);
}
} }

@ -4,6 +4,6 @@ import com.zhehekeji.web.lib.joyware.NetSDKLib;
public interface CameraControlLoginModule { 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);
} }

@ -120,7 +120,7 @@ public interface CameraControlModule {
boolean pic(Integer cameraId, int channel, String realPath); 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);
/** /**
* *

@ -1,14 +1,19 @@
package com.zhehekeji.web.lib; package com.zhehekeji.web.lib;
import com.zhehekeji.common.util.SpringContextUtil; import com.zhehekeji.common.util.SpringContextUtil;
import com.zhehekeji.web.service.CameraService;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.concurrent.DelayQueue; import java.util.concurrent.DelayQueue;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import static com.zhehekeji.web.lib.CameraConnMap.cameraMap;
public class TaskDelayExecutor { public class TaskDelayExecutor {
private static ExecutorService exec = Executors.newFixedThreadPool(1); private static ExecutorService exec = Executors.newFixedThreadPool(1);
private static DelayQueue<CameraDelayTask> queue = new DelayQueue<>(); private static DelayQueue<CameraDelayTask> queue = new DelayQueue<>();
@ -28,8 +33,9 @@ public class TaskDelayExecutor {
cameraDelayTask.setPtzId(ptzId); cameraDelayTask.setPtzId(ptzId);
queue.add(cameraDelayTask); queue.add(cameraDelayTask);
} }
private static CameraService cameraService = SpringContextUtil.getBean(CameraService.class);
public static void runMp4DownloadExecutor(){ public static void runMp4DownloadExecutor(){
exec.execute(new Consumer()); exec.execute(new Consumer());
} }
@ -44,10 +50,21 @@ public class TaskDelayExecutor {
if(cameraDelayTask != null){ if(cameraDelayTask != null){
if(cameraDelayTask.getType() == 0){ if(cameraDelayTask.getType() == 0){
for(int i = 0; i < 3; i++) {
cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); if(cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime())){
break;
}else {
cameraService.cameraConnect( cameraDelayTask.getCameraId());
}
}
}else if(cameraDelayTask.getType() == 1){ }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){ }else if(cameraDelayTask.getType() == 2){
cameraControlModule.toPtz(cameraDelayTask.getPtzId(),cameraDelayTask.getCameraId()); cameraControlModule.toPtz(cameraDelayTask.getPtzId(),cameraDelayTask.getCameraId());
} }

@ -306,7 +306,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule {
return picResult; 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); PathUtil.checkDirc(path);
HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME(); 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 lUserID = CameraConnMap.getConnId(cameraId).intValue();
int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime(lUserID, 1, startTime, endTime, path); int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime(lUserID, 1, startTime, endTime, path);
if (result == -1) { if (result == -1) {
log.error("downloadMp4 error code:{},cameraId:{},path:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId,path); log.error("downloadMp4 error code:{},cameraId:{},path:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId,path);
return false;
} else { } else {
HikLoginModuleImpl.hcNetsdk.NET_DVR_PlayBackControl(result, HikLoginModuleImpl.hcNetsdk.NET_DVR_PLAYSTART,0,null); HikLoginModuleImpl.hcNetsdk.NET_DVR_PlayBackControl(result, HikLoginModuleImpl.hcNetsdk.NET_DVR_PLAYSTART,0,null);
Timer downloadtimer = new Timer(); Timer downloadtimer = new Timer();
downloadtimer.schedule(new DownloadTask(result,downloadtimer,path,cameraId), 0, 5000); downloadtimer.schedule(new DownloadTask(result,downloadtimer,path,cameraId), 0, 5000);
return true;
} }
} }

@ -1,6 +1,7 @@
package com.zhehekeji.web.lib.hik; package com.zhehekeji.web.lib.hik;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.CameraControlLoginModule; import com.zhehekeji.web.lib.CameraControlLoginModule;
import com.zhehekeji.web.lib.joyware.NetSDKLib; import com.zhehekeji.web.lib.joyware.NetSDKLib;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -69,7 +70,7 @@ public class HikLoginModuleImpl implements CameraControlLoginModule {
* *
* \endif * \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(); init();
HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();//设备登录信息 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();//设备信息 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(); m_strLoginInfo.write();
HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo30 = new HCNetSDK.NET_DVR_DEVICEINFO_V30();//设备信息 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 m_lUserID = hcNetsdk.NET_DVR_Login_V40(m_strLoginInfo,m_strDeviceInfo);
int lChannel = 2; int lChannel = 2;
//byStartDChan为IP通道起始通道号, 预览回放NVR的IP通道时需要根据起始通道号进行取值 //byStartDChan为IP通道起始通道号, 预览回放NVR的IP通道时需要根据起始通道号进行取值

@ -288,7 +288,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
return ok; 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); PathUtil.checkDirc(path);
NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME(); 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); 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){ if(l.longValue() != 0){
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{},status:{},cameraId:{}", path, start, end, LocalDateTime.now(),l.longValue(),cameraId); 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); log.error("download mp4 error:{},startTime:{} ,endTime:{},cameraId:{}",ToolKits.getErrorCodePrint(),start,end,cameraId);
return false;
} }
} }

@ -117,7 +117,7 @@ public class JoywareLoginModuleImpl implements CameraControlLoginModule {
* *
* \endif * \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); //IntByReference nError = new IntByReference(0);
//入参 //入参
init(disConnectCallBack,haveReConnect); init(disConnectCallBack,haveReConnect);

@ -11,6 +11,7 @@ import java.time.LocalDateTime;
public class CheckLogSearch { public class CheckLogSearch {
private String lotnum; private String lotnum;
private String taskId;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTimestamp; private LocalDateTime startTimestamp;

@ -14,6 +14,7 @@ public class StockCheck {
// private String shelveId; // private String shelveId;
private Integer streetId; private Integer streetId;
private Integer streetPlc;
private Integer direction; private Integer direction;

@ -186,7 +186,7 @@ public class CameraService {
public List<Camera> allCameras3(){ public List<Camera> allCameras3(){
Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn(); Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn();
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit 2,4")); List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit 4,4"));
return cameras; 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){ 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){ if(lLong != null){
log.info("camera login success,cameraId:{},ip:{}",camera.getId(),camera.getIp()); log.info("camera login success,cameraId:{},ip:{}",camera.getId(),camera.getIp());
CameraConnMap.conn(camera.getId(),lLong); CameraConnMap.conn(camera.getId(),lLong);
} }
}
} }

@ -52,6 +52,7 @@ public class CheckLogService {
if(search.getStreetId() != null && search.getStreetId() != 0){ if(search.getStreetId() != null && search.getStreetId() != 0){
wrapper.eq("`street_id`",search.getStreetId()); wrapper.eq("`street_id`",search.getStreetId());
} }
wrapper.like(search.getTaskId()!= null && !search.getTaskId().equals(""), "`task_id`",search.getTaskId());
wrapper.orderByDesc("create_Time"); wrapper.orderByDesc("create_Time");
List<CheckLog>stockChecks = checkLogMapper.selectList(wrapper); List<CheckLog>stockChecks = checkLogMapper.selectList(wrapper);
stockChecks.forEach(l->{ stockChecks.forEach(l->{

@ -117,6 +117,9 @@ public class CronTab {
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<>()); List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<>());
for (Camera camera : cameras){ for (Camera camera : cameras){
Boolean ok = false; Boolean ok = false;
if (CameraConnMap.getConnId(camera.getId()) !=null){
cameraService.cameraLogin(camera);
}
if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA ){ if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA ){
ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue()); ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue());
}else { }else {

@ -25,6 +25,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* *
@ -84,6 +85,7 @@ public class InitService implements ApplicationRunner {
cameras.forEach(camera -> { cameras.forEach(camera -> {
LoginThread loginThread = new LoginThread(camera); LoginThread loginThread = new LoginThread(camera);
loginThread.start(); loginThread.start();
CameraConnMap.cameraByIdMap.put(camera.getId(),camera);
}); });
LPLicense.createLicKeyIfNotExist(); LPLicense.createLicKeyIfNotExist();
//plc连接 //plc连接

@ -142,6 +142,7 @@ public class PlcService {
OrderRealtime.startOrder(street.getId(), plcCmdInfo.getOrderNum()); OrderRealtime.startOrder(street.getId(), plcCmdInfo.getOrderNum());
} }
} }
public boolean openStreetLightSource(Integer streetId) { public boolean openStreetLightSource(Integer streetId) {
List<LightSource> lightSources = lightSourceService.getLightSourceByStreetId(streetId); List<LightSource> lightSources = lightSourceService.getLightSourceByStreetId(streetId);
lightSources.forEach(lightSource -> { lightSources.forEach(lightSource -> {
@ -176,29 +177,22 @@ public class PlcService {
verticalAdjustment(street.getCamera2Id()); verticalAdjustment(street.getCamera2Id());
} }
} }
public void verticalAdjustment(Integer cameraId) { public void verticalAdjustment(Integer cameraId) {
log.info("球机" + cameraId + "重置垂直方向开始"); log.info("球机" + cameraId + "重置垂直方向开始");
Double origin = null; Double origin = null;
int i = 10 ;
while (i >=0){
i-- ;
CameraPtzPojo cameraPtzPojo = cameraControlModule.ptzGetDVRConfig(cameraId); CameraPtzPojo cameraPtzPojo = cameraControlModule.ptzGetDVRConfig(cameraId);
if (cameraPtzPojo.isGetSuccess()) { if (cameraPtzPojo.isGetSuccess()) {
cameraControlModule.ptzControlDownStart(cameraId, 0, 0, 1); cameraControlModule.ptzControlDownStart(cameraId, 0, 0, 1);
log.info("球机控制向下"); log.info("球机控制向下");
System.out.println("获取的垂直位置" + cameraPtzPojo.getWTiltPos()); System.out.println("获取的垂直位置" + cameraPtzPojo.getWTiltPos());
if (origin == null) {
origin = cameraPtzPojo.getWTiltPos();
} else if (cameraPtzPojo.getWTiltPos() <= origin) {
break;
}
} }
try { try {
Thread.sleep(500); //预设5秒回到原点位
Thread.sleep(5000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}
log.info("球机" + cameraId + "重置垂直方向成功"); log.info("球机" + cameraId + "重置垂直方向成功");
cameraControlModule.ptzControlDownEnd(cameraId, 0); cameraControlModule.ptzControlDownEnd(cameraId, 0);
gyrateCameraByCode(cameraId, "C1"); gyrateCameraByCode(cameraId, "C1");
@ -221,6 +215,7 @@ public class PlcService {
return true; return true;
} }
/** /**
* *
* *
@ -767,6 +762,7 @@ public class PlcService {
log.info("time:{}millisecond", s); log.info("time:{}millisecond", s);
return true; return true;
} }
public void checkLog(Stock stock) { public void checkLog(Stock stock) {
CheckLog checkLog = new CheckLog(); CheckLog checkLog = new CheckLog();
checkLog.setCheckNum(stock.getCheckNum()); checkLog.setCheckNum(stock.getCheckNum());
@ -776,6 +772,7 @@ public class PlcService {
checkLog.setSide(stock.getSide()); checkLog.setSide(stock.getSide());
checkLog.setSubtag(stock.getSubtag()); checkLog.setSubtag(stock.getSubtag());
checkLog.setCode(stock.getCode()); checkLog.setCode(stock.getCode());
checkLog.setTaskId(stock.getTaskWMSId());
checkLog.setWmsCode(stock.getWmsCode()); checkLog.setWmsCode(stock.getWmsCode());
checkLog.setStatus(stock.getStatus()); checkLog.setStatus(stock.getStatus());
checkLog.setRow(stock.getRow()); checkLog.setRow(stock.getRow());
@ -788,6 +785,7 @@ public class PlcService {
checkLogMapper.insert(checkLog); checkLogMapper.insert(checkLog);
log.info("checklogmapper insert new checklog info finished."); log.info("checklogmapper insert new checklog info finished.");
} }
public void truncateStock() { public void truncateStock() {
stockMapper.truncate(); stockMapper.truncate();
} }
@ -821,6 +819,7 @@ public class PlcService {
} }
return tags; return tags;
} }
public ConfigProperties getConfigProperties() { public ConfigProperties getConfigProperties() {
return configProperties; return configProperties;
} }

@ -1,6 +1,7 @@
package com.zhehekeji.web.service; package com.zhehekeji.web.service;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@ -19,6 +20,9 @@ import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Configuration; 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.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -407,17 +411,25 @@ public class StockService {
*/ */
public Stock stockInfo(StockCheck stockCheck) { 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<Street>()
.eq(stockCheck.getStreetPlc()!=null,"plc_Id", stockCheck.getStreetPlc())
.eq(stockCheck.getStreetId()!=null,"id", stockCheck.getStreetId()));
Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().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) { if (stock == null) {
stock = new Stock(); stock = new Stock();
stock.setColumn(stockCheck.getColumn()); stock.setColumn(stockCheck.getColumn());
stock.setRow(stockCheck.getRow()); stock.setRow(stockCheck.getRow());
//stock.setShelveId(stockCheck.getShelveId()); //stock.setShelveId(stockCheck.getShelveId());
stock.setStatus(0); stock.setStatus(0);
Street street = streetMapper.selectById(stockCheck.getStreetId());
stock.setStreetName(street.getName()); stock.setStreetName(street.getName());
} else { } else {
Street street = streetMapper.selectById(stock.getStreetId());
stock.setStreetName(street.getName()); stock.setStreetName(street.getName());
List<StockLog> stockLogs = stockLogMapper.selectList(new QueryWrapper<StockLog>().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")); List<StockLog> stockLogs = stockLogMapper.selectList(new QueryWrapper<StockLog>().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) { public void uploadResultsWMS(Stock stock, Integer stockStatus) {
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
ResponseEntity<String> body = null; ResponseEntity<String> body = null;
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
String url = configProperties.getUploadResultsApiUrl(); String url = configProperties.getUploadResultsApiUrl();
@ -507,14 +522,17 @@ public class StockService {
uploadCheckResults.setWcsTaskId(stock.getCheckNum().split("_")[1]); uploadCheckResults.setWcsTaskId(stock.getCheckNum().split("_")[1]);
uploadCheckResults.setWmsTaskId(stock.getTaskWMSId()); uploadCheckResults.setWmsTaskId(stock.getTaskWMSId());
uploadCheckResults.setPalno(stock.getWmsCode()); uploadCheckResults.setPalno(stock.getWmsCode());
uploadCheckResults.setFlag(stockStatus == 1 ? 1 : 0); uploadCheckResults.setFlag(stockStatus == 1 ? "1" : "0");
uploadCheckResults.setAddre(stock.getAddre()); uploadCheckResults.setAddre(stock.getAddre());
List<UploadCheckResults> list = new ArrayList<>();
list.add(uploadCheckResults);
HttpEntity<List<UploadCheckResults>> requestEntity = new HttpEntity<>(list, requestHeaders);
try { try {
// String jsonString = gson.toJson(algorithmPojo); // String jsonString = gson.toJson(algorithmPojo);
body = restTemplate.postForEntity(url, uploadCheckResults, String.class); System.out.println("上传信息:"+ JSON.toJSONString(list));
JSONObject.parseObject(body.getBody(), UploadCheckResults.class); body = restTemplate.postForEntity(url, list, String.class);
System.out.println(body); System.out.println(body);
} catch (RestClientException e) { } 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<UploadCheckResults> list = new ArrayList<>();
list.add(uploadCheckResults);
System.out.println(JSON.toJSONString(list));
}
@Resource @Resource
private CheckLogMapper checkLogMapper; private CheckLogMapper checkLogMapper;

@ -10,7 +10,7 @@ public class KsecDataInfo {
private String cmdName; private String cmdName;
private String taskId; private String taskId;
private String taskWMSId; private String taskWMSTaskId;
private Integer fromColumn; private Integer fromColumn;

@ -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 = 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.setSubtag(dataInfo.getSubtag());
plcCmdInfo.setAddre(dataInfo.getAddre()); plcCmdInfo.setAddre(dataInfo.getAddre());
plcCmdInfo.setTaskWMSId(dataInfo.getTaskWMSId()); plcCmdInfo.setTaskWMSId(dataInfo.getTaskWMSTaskId());
plcCmdInfo.setAddre(dataInfo.getAddre()); plcCmdInfo.setAddre(dataInfo.getAddre());
plcCmdInfo.setWmsTrayCode(dataInfo.getTrayCode()); plcCmdInfo.setWmsTrayCode(dataInfo.getTrayCode());
plcCmdInfo.setTrayCode(dataInfo.getCode()); plcCmdInfo.setTrayCode(dataInfo.getCode());

@ -50,6 +50,10 @@ public class KsecNettyClient {
* @param upId * @param upId
*/ */
public void reconnect(Integer upId) { public void reconnect(Integer upId) {
if(channel!=null){
channel.disconnect();
channel.close();
}
Boolean isConnected = false; Boolean isConnected = false;
int num = 0; int num = 0;
ConfigProperties.KSEC ksec = configProperties.getKsec(); ConfigProperties.KSEC ksec = configProperties.getKsec();

Loading…
Cancel
Save