camera_merge
qiushui 4 years ago
parent 0482e9f402
commit 0629937327

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -77,6 +77,8 @@ public class Street {
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@ApiModelProperty("样式 默认0 0:1个铺满 1:上下两个视频 2:2*2 3:3*3 4:4*4 5:5*5 66*6 8:8*8")
private Integer videoStyle;
@ApiModelProperty("样式 行列数量")
private Integer videoStyleRow;
private Integer videoStyleColumn;
}

@ -0,0 +1,30 @@
package com.zhehekeji.web.lib;
import java.lang.reflect.Field;
public class BarCodeScan {
public static native String detectBestBarCode(String filePath);
static
{
try{
String path = System.getProperty("user.dir")+"\\libs\\code_scan";
System.setProperty("java.library.path", path);
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);
System.loadLibrary("opencv_world341");
System.loadLibrary("libiconv");
System.loadLibrary("libnlopt-0");
System.loadLibrary("lpv");
System.loadLibrary("libCyclops");
System.loadLibrary("TestJNI");
}catch(Exception e)
{
System.out.println(e);
}
}
}

@ -69,14 +69,21 @@ public class CaptureRunnable implements Runnable {
stock.setColumn(column);
stock.setRow(row);
stock.setStatus(0);
}
if (orderInfo.getIsPre()) {
stock.setOveroperationPic(path);
stock.setPreoperationPic(path);
} else {
stock.setOveroperationPic(path);
}
stock.setOrderNum(order.getOrderNum());
stockMapper.insert(stock);
}else {
if (orderInfo.getIsPre()) {
stock.setPreoperationPic(path);
} else {
stock.setOveroperationPic(path);
}
stockMapper.updateById(stock);
}
String pics = order.getPicPaths();
if (StringUtils.isEmpty(pics)) {
order.setPicPaths(path);
@ -88,6 +95,8 @@ public class CaptureRunnable implements Runnable {
update.setPicPaths(order.getPicPaths());
log.info(" update order set pics:{},orderNum:{}", update.getPicPaths(), orderInfo.getOrderNum());
orderMapper.updateById(update);
// 盘点历史纪录
}
}

@ -14,7 +14,8 @@ public class RealTime {
private String streetName;
@ApiModelProperty("样式 默认0 0:1个铺满 1:上下两个视频 2:2*2 3:3*3 4:4*4 5:5*5 66*6 8:8*8")
private Integer videoStyle;
private Integer videoStyleRow;
private Integer videoStyleColumn;
private List<Camera> cameras;
}

@ -100,6 +100,7 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
plcService.orderStart(plcOrderInfo, plcId);
} else if ("B2".equals(code)) {
log.info("order end, plcId:{},orderInfo:{}", plcId, plcOrderInfo.toString());
plcService.orderStop(plcId, plcOrderInfo.getOrderNum());
if(b5 == 0 && b6 == 0 && b7 ==0 && b8 == 0) {
log.info("随行模式");
} else {
@ -107,7 +108,7 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
log.info("Verification mode. Code:{}, box number(system):{}, box number(algorithm):{}", barCodeSys, boxNumSys, boxNumAlgo);
plcService.recordStock(plcOrderInfo,plcId,barCodeSys,boxNumSys,boxNumAlgo);
}
plcService.orderStop(plcId, plcOrderInfo.getOrderNum());
}
} else if (type.equals(ACTION)) {
log.info("action code,{} plcId:{},orderInfo:{}", code, plcId, plcOrderInfo.toString());
@ -172,11 +173,4 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder {
return warn;
}
public static void main(String[] args) {
byte tByte = 4;
String tString = Integer.toBinaryString((tByte & 0xFF) + 0x100).substring(1);
System.out.println(tString);
}
}

@ -64,10 +64,10 @@ public class OrderService {
String[] pics = orderVO.getPicPaths().split(",");
orderVO.setPics(pics);
}
if(cameraType == 1 && StringUtils.isEmpty(orderVO.getVideoPath1())){
if(cameraType == 1 && !StringUtils.isEmpty(orderVO.getVideoPath1())){
orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath1());
}
if(cameraType == 1 && StringUtils.isEmpty(orderVO.getVideoPath2())){
if(cameraType == 1 && !StringUtils.isEmpty(orderVO.getVideoPath2())){
orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath2());
}
orderVO.setGoodsLocation(location(orderVO,streetMap.get(orderVO.getStreetId())));

@ -44,6 +44,9 @@ public class PlcService {
@Value("${mp4Path}")
private String mp4Path;
@Value("${mediaPath}")
private String mediaPath;
@Resource
private StreetService streetService;
@Resource
@ -334,7 +337,14 @@ public class PlcService {
}
}
/**
*
* @param plcOrderInfo
* @param plcId
* @param barCodeSys
* @param boxNumSys
* @param boxNumAlgo
*/
public void recordStock(PlcOrderInfo plcOrderInfo, String plcId, String barCodeSys, int boxNumSys, int boxNumAlgo)
{
Street street = streetService.getStreetByPlcId(plcId);
@ -353,6 +363,9 @@ public class PlcService {
if(stock != null) {
stock.setCategory(barCodeSys);
stock.setCount(boxNumSys);
String prevFile = mediaPath+stock.getPreoperationPic();
String overFile = mediaPath+stock.getOveroperationPic();
String code = BarCodeScan.detectBestBarCode(overFile);
if(boxNumSys == boxNumAlgo) {
stock.setStatus(StockStatus.SUCCESS.getStatus());
log.info("核对正确");
@ -361,14 +374,9 @@ public class PlcService {
log.info("核对失败");
stock.setStatus(StockStatus.ERROR.getStatus());
stockMapper.updateById(stock);
CheckByMan checkByMan = new CheckByMan();
checkByMan.setShelveId(shelveId);
checkByMan.setRow(plcOrderInfo.getRow2());
checkByMan.setColumn(plcOrderInfo.getColumn2());
checkByMan.setCategory(barCodeSys);
checkByMan.setCount(boxNumAlgo);
stockService.checkByMan(checkByMan);
}
//核对记录
}
}
}

@ -1,6 +1,5 @@
package com.zhehekeji.web.service;
import com.baomidou.mybatisplus.extension.api.R;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.CameraMapper;
@ -23,8 +22,11 @@ public class RealTimeService {
@Resource
private CameraMapper cameraMapper;
@Value("${videoStyleAll}")
private Integer videoStyleAll;
@Value("${videoStyleRow}")
private Integer videoStyleRow;
@Value("${videoStyleColumn}")
private Integer videoStyleColumn;
public List<RealTime> realTimes(){
List<Street> streets = streetMapper.selectByMap(new HashMap<>(0));
@ -38,7 +40,8 @@ public class RealTimeService {
RealTime realTime = new RealTime();
realTime.setStreetId(street.getId());
realTime.setStreetName(street.getName());
realTime.setVideoStyle(street.getVideoStyle());
realTime.setVideoStyleColumn(street.getVideoStyleColumn());
realTime.setVideoStyleRow(street.getVideoStyleRow());
List<Camera> cameraList = new ArrayList<>(2);
if(cameraMap.get(street.getCamera1Id()) != null){
cameraList.add(cameraMap.get(street.getCamera1Id()));
@ -53,7 +56,8 @@ public class RealTimeService {
all.setStreetId(0);
all.setStreetName("全部");
all.setCameras(cameras);
all.setVideoStyle(videoStyleAll);
all.setVideoStyleRow(videoStyleRow);
all.setVideoStyleColumn(videoStyleColumn);
realTimes.add(all);
return realTimes;

@ -32,7 +32,8 @@ public class StreetService {
List<String> shelves = check(street);
street.setCreateTime(LocalDateTime.now());
street.setUpdateTime(LocalDateTime.now());
street.setVideoStyle(0);
street.setVideoStyleRow(1);
street.setVideoStyleColumn(1);
try {
streetMapper.insert(street);
} catch (DuplicateKeyException e) {

@ -34,10 +34,10 @@ public class WarnService {
int remainingSeconds = seconds.intValue() % 60;
String timeLength = String.format("%02d:%02d", minutes,remainingSeconds);
warnVO.setTimeLength(timeLength);
if(cameraType == 1 && StringUtils.isEmpty(warnVO.getVideoPath1())){
if(cameraType == 1 && !StringUtils.isEmpty(warnVO.getVideoPath1())){
warnVO.setCmd1(" VSPlayer "+ warnVO.getVideoPath1());
}
if(cameraType == 1 && StringUtils.isEmpty(warnVO.getVideoPath2())){
if(cameraType == 1 && !StringUtils.isEmpty(warnVO.getVideoPath2())){
warnVO.setCmd1(" VSPlayer "+ warnVO.getVideoPath2());
}
}

@ -48,6 +48,6 @@ mp4Path: d:\\data\mp4\
cameraType: 1
# ------------服务端类型 0TCP 1:JSON
serverMode: 1
# ------------ 实时视频流 全部页面的格式
# --------------默认0 0:1个铺满 1:上下两个视频 2:2*2 3:3*3 4:4*4 5:5*5 66*6 8:8*8
videoStyleAll : 2
# ------------ 实时视频流 全部页面的格式 行列数量
videoStyleRow : 2
videoStyleColumn : 2

@ -12,15 +12,15 @@ spring:
maxWait: 60000
minEvictableIdleTimeMillis: 300000
minIdle: 15
password: lipoLiPo
password: Leaper@123
poolPreparedStatements: true
testOnBorrow: true
testOnReturn: false
testWhileIdle: false
timeBetweenEvictionRunsMillis: 60000
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://47.99.98.250:33306/lipo_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: lipo
url: jdbc:mysql://115.236.65.98:12004/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
validationQuery: SELECT 1 FROM DUAL
zhehe:
common:
@ -44,4 +44,10 @@ cameraPort: 37777
# -----图片 mp4下载地址
mediaPath: d:\\data\media\
mp4Path: d:\\data\mp4\
# ------------
# ------------球機選擇--- 0:中威 1海康
cameraType: 1
# ------------服务端类型 0TCP 1:JSON
serverMode: 1
# ------------ 实时视频流 全部页面的格式
# --------------默认0 0:1个铺满 1:上下两个视频 2:2*2 3:3*3 4:4*4 5:5*5 66*6 8:8*8
videoStyleAll : 2

@ -12,15 +12,15 @@ spring:
maxWait: 60000
minEvictableIdleTimeMillis: 300000
minIdle: 15
password: lipoLiPo
password: Leaper@123
poolPreparedStatements: true
testOnBorrow: true
testOnReturn: false
testWhileIdle: false
timeBetweenEvictionRunsMillis: 60000
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://47.98.255.48:8008/lipo_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: lipo
url: jdbc:mysql://115.236.65.98:12004/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
validationQuery: SELECT 1 FROM DUAL
zhehe:
common:
@ -41,7 +41,13 @@ cameraPassword: admin123
cameraUser: admin
cameraPort: 37777
# ------------
# -----图片 mp4下载地址 谨慎修改
# -----图片 mp4下载地址
mediaPath: d:\\data\media\
mp4Path: d:\\data\mp4\
# ------------
# ------------球機選擇--- 0:中威 1海康
cameraType: 1
# ------------服务端类型 0TCP 1:JSON
serverMode: 1
# ------------ 实时视频流 全部页面的格式
# --------------默认0 0:1个铺满 1:上下两个视频 2:2*2 3:3*3 4:4*4 5:5*5 66*6 8:8*8
videoStyleAll : 2
Loading…
Cancel
Save