|
|
|
@ -32,6 +32,8 @@ import java.util.*;
|
|
|
|
import java.util.concurrent.ArrayBlockingQueue;
|
|
|
|
import java.util.concurrent.ArrayBlockingQueue;
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
import java.util.concurrent.locks.Lock;
|
|
|
|
|
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -122,6 +124,7 @@ public class PlcService {
|
|
|
|
public void orderStopByWarn(String orderNum) {
|
|
|
|
public void orderStopByWarn(String orderNum) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void verticalAdjustment(Integer cameraId) {
|
|
|
|
public void verticalAdjustment(Integer cameraId) {
|
|
|
|
log.info("球机" + cameraId + "重置垂直方向开始");
|
|
|
|
log.info("球机" + cameraId + "重置垂直方向开始");
|
|
|
|
Double origin = null;
|
|
|
|
Double origin = null;
|
|
|
|
@ -165,9 +168,6 @@ public class PlcService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
|
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() {
|
|
|
|
Thread thread = new Thread(new Runnable() {
|
|
|
|
@ -497,6 +497,7 @@ public class PlcService {
|
|
|
|
checkLogMapper.insert(checkLog);
|
|
|
|
checkLogMapper.insert(checkLog);
|
|
|
|
log.info("checkLogMapper insert");
|
|
|
|
log.info("checkLogMapper insert");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void truncateStock() {
|
|
|
|
public void truncateStock() {
|
|
|
|
stockMapper.truncate();
|
|
|
|
stockMapper.truncate();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -530,6 +531,7 @@ public class PlcService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return tags;
|
|
|
|
return tags;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ConfigProperties getConfigProperties() {
|
|
|
|
public ConfigProperties getConfigProperties() {
|
|
|
|
return configProperties;
|
|
|
|
return configProperties;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -537,6 +539,7 @@ public class PlcService {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 相机转动,拍照,并返回图片地址
|
|
|
|
* 相机转动,拍照,并返回图片地址
|
|
|
|
* 顶部拍照 C1
|
|
|
|
* 顶部拍照 C1
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param SRMNumber
|
|
|
|
* @param SRMNumber
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@ -573,10 +576,9 @@ public class PlcService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 相机转动,拍照,并返回图片地址
|
|
|
|
* 相机转动,拍照,并返回图片地址
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param SRMNumber
|
|
|
|
* @param SRMNumber
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@ -614,11 +616,12 @@ public class PlcService {
|
|
|
|
return configProperties.getIP() + ":9007/api/pic/" + path;
|
|
|
|
return configProperties.getIP() + ":9007/api/pic/" + path;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lock lock = new ReentrantLock();
|
|
|
|
|
|
|
|
|
|
|
|
public void check(PlcCmdInfo plcCmdInfo, KsecDataInfo dataInfo) {
|
|
|
|
public void check(PlcCmdInfo plcCmdInfo, KsecDataInfo dataInfo) {
|
|
|
|
Street street = streetService.getStreetByPlcId(dataInfo.getSRMNumber());
|
|
|
|
Street street = streetService.getStreetByPlcId(dataInfo.getSRMNumber());
|
|
|
|
|
|
|
|
|
|
|
|
//开始盘点具体货位
|
|
|
|
//开始盘点具体货位
|
|
|
|
if(dataInfo.getCmdName().equals("SC01")){
|
|
|
|
|
|
|
|
CheckLog checkLog = new CheckLog();
|
|
|
|
CheckLog checkLog = new CheckLog();
|
|
|
|
checkLog.setStreetId(street.getId());
|
|
|
|
checkLog.setStreetId(street.getId());
|
|
|
|
checkLog.setLotnum(dataInfo.getLotnum());
|
|
|
|
checkLog.setLotnum(dataInfo.getLotnum());
|
|
|
|
@ -656,26 +659,25 @@ public class PlcService {
|
|
|
|
} else stockMapper.updateById(stock);
|
|
|
|
} else stockMapper.updateById(stock);
|
|
|
|
TransmissionPojo transmissionPojo = new TransmissionPojo(checkLog, street);
|
|
|
|
TransmissionPojo transmissionPojo = new TransmissionPojo(checkLog, street);
|
|
|
|
ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.ST));
|
|
|
|
ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.ST));
|
|
|
|
}
|
|
|
|
|
|
|
|
//取货完成进行拍照
|
|
|
|
//取货完成进行拍照
|
|
|
|
else if(dataInfo.getCmdName().equals("SC02")){
|
|
|
|
try {
|
|
|
|
CheckLog checkLog = checkLogMapper.selectOne(new QueryWrapper<CheckLog>()
|
|
|
|
if (lock.tryLock()) {
|
|
|
|
.eq("direction",dataInfo.getFromDirection())
|
|
|
|
|
|
|
|
.eq("street_id",street.getId())
|
|
|
|
|
|
|
|
.orderByDesc("id").last("limit 1"));
|
|
|
|
|
|
|
|
TransmissionPojo transmissionPojo = new TransmissionPojo( checkLog,street );
|
|
|
|
|
|
|
|
if(GetPhotoDelayExecutor.cameraDelayTasks.size()==0){
|
|
|
|
|
|
|
|
//队列中没有任务,发送取图指令
|
|
|
|
//队列中没有任务,发送取图指令
|
|
|
|
ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.GPS));
|
|
|
|
ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.GPS));
|
|
|
|
|
|
|
|
Thread.sleep(50L);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
//将取图指令放入队列等待上条取图结束,或队列超时调用
|
|
|
|
//将取图指令放入队列等待上条取图结束,或队列超时调用
|
|
|
|
GetPhotoDelayExecutor.addCameraDelayTask(street.getPlcId(),transmissionPojo.toString(TransmissionType.GPS),2000L);
|
|
|
|
GetPhotoDelayExecutor.addCameraDelayTask(street.getPlcId(), transmissionPojo.toString(TransmissionType.GPS), configProperties.getQueueSpanTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
|
|
|
log.error("取图命令 error", e);
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
lock.unlock();
|
|
|
|
|
|
|
|
}
|
|
|
|
// ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush();
|
|
|
|
// ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void visualCalculationResults(TransmissionPojo transmissionPojo) {
|
|
|
|
public void visualCalculationResults(TransmissionPojo transmissionPojo) {
|
|
|
|
@ -688,11 +690,13 @@ public class PlcService {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
checkLog.setStatus(StockStatus.ERROR.getStatus());
|
|
|
|
checkLog.setStatus(StockStatus.ERROR.getStatus());
|
|
|
|
stock.setStatus(StockStatus.ERROR.getStatus());
|
|
|
|
stock.setStatus(StockStatus.ERROR.getStatus());
|
|
|
|
|
|
|
|
stock.setCount(transmissionPojo.getCount());
|
|
|
|
|
|
|
|
stock.setCategory(transmissionPojo.getCategory());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (transmissionPojo.getPicsPath() != null && transmissionPojo.getPicsPath().length > 0) {
|
|
|
|
if (transmissionPojo.getPicsPath() != null && transmissionPojo.getPicsPath().length > 0) {
|
|
|
|
|
|
|
|
|
|
|
|
String pics = Arrays.stream(transmissionPojo.getPicsPath()).map(v -> {
|
|
|
|
String pics = Arrays.stream(transmissionPojo.getPicsPath()).map(v -> {
|
|
|
|
return street.getPlcIp() + ":8007" + v;
|
|
|
|
return "http://" + street.getPlcIp() + ":8007" + v;
|
|
|
|
}).collect(Collectors.joining(";"));
|
|
|
|
}).collect(Collectors.joining(";"));
|
|
|
|
checkLog.setPic(pics);
|
|
|
|
checkLog.setPic(pics);
|
|
|
|
stock.setCheckPic(pics);
|
|
|
|
stock.setCheckPic(pics);
|
|
|
|
|