蜜雪冰城简单修改

墙修改,代码修改,数据库修改,增加E2
增加返回给上位机的逻辑
焦作-mxbc-北起
LAPTOP-S9HJSOEB\昊天 2 years ago
parent 4228cb1c7b
commit 40b5232811

@ -25,7 +25,7 @@ public class Encryptor {
public static void main(String[] args)
{
String noEncrypt = "BFEBFBFF000A0671AK7211183";
String noEncrypt = "BFEBFBFF000B06710025_38BC_21C3_A29D.";
String encrypt = Encryptor.encryptStr(noEncrypt);
System.out.println(encrypt);
}

@ -37,6 +37,8 @@ public class ConfigProperties {
private ScanCodeMode scanCodeMode;
private String uploadResultsApiUrl;
@Data
public static class CameraConfig{

@ -139,6 +139,8 @@ public class StockController {
return Result.success(stockService.checkCorrect(stockCheck));
}
@ApiOperation(value = "人工复核")
@RequestMapping(value = "/checkByMan", method = RequestMethod.POST)
public Result<Stock> checkByMan(@RequestBody CheckByMan checkByMan) {

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

@ -22,6 +22,10 @@ public class Order {
@ApiModelProperty("订单号")
private String orderNum;
@ApiModelProperty("wms任务号")
@TableField(value = "`task_wms_id`")
private String taskWMSId;
@ApiModelProperty("0:正常 1告警")
private Integer status;
@ -87,14 +91,11 @@ public class Order {
@ApiModelProperty("图片地址,分隔")
private String picPaths;
// @ApiModelProperty("入库照片")
// private String putPath;
//
// @ApiModelProperty("出库照片")
// private String outputPath;
//
// @ApiModelProperty("货位照片")
// private String goodsPath;
private String wmsTrayCode;
private String wmsCode;
private String subtag;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;

@ -29,6 +29,13 @@ public class Stock {
@ApiModelProperty("盘点任务号")
private String checkNum;
@ApiModelProperty("wms任务号")
@TableField(value = "`task_wms_id`")
private String taskWMSId;
@ApiModelProperty("位置")
private String addre;
@ApiModelProperty("盘点批次号")
private String lotnum;
@ -58,8 +65,10 @@ public class Stock {
private Integer streetId;
private Integer direction;
private Integer reply;
private Integer side;
private String subtag;
@TableField(value = "`row`")
@ApiModelProperty("行号")

@ -0,0 +1,12 @@
package com.zhehekeji.web.entity;
import lombok.Data;
@Data
public class UploadCheckResults {
private String wcsTaskId;
private String wmsTaskId;
private String palno;
private String addre;
private Integer flag;
}

@ -444,7 +444,13 @@ public class HikCameraControlModuleImpl implements CameraControlModule {
public void toPtz(Integer ptzId, Integer cameraId)
{
int dwPTZCommand = HCNetSDK.GOTO_PRESET;
Boolean ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), 1, dwPTZCommand, ptzId);
Boolean ok = false;
try {
ok = HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZPreset_Other(CameraConnMap.getConnId(cameraId).intValue(), 1, dwPTZCommand, ptzId);
}catch (NullPointerException e){
log.error("toPtz is not hive:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}
if(!ok){
log.error("toPtz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId);
}

@ -12,8 +12,9 @@ public class HikExceptionCallBack implements HCNetSDK.FExceptionCallBack {
public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser) {
Integer cameraId =CameraConnMap.getCameraIdByLoginId(new NetSDKLib.LLong(lUserID));
if(dwType == 32768){
log.error("hik disconnect,cameraId:{}", cameraId);
if(cameraId != null) {
log.error("hik disconnect,cameraId:{}", cameraId);
}
}else if(dwType == 32791){
log.info("hik reconnect,cameraId:{}", CameraConnMap.getCameraIdByLoginId(new NetSDKLib.LLong(lUserID)));

@ -24,6 +24,7 @@ public enum Cmd {
D2,
E,
E1,
E2,
;
public static Boolean isBaseAction(String code){

@ -13,6 +13,9 @@ public class OrderSearch {
private String orderNum;
private Long streetId;
private String subtag;
private String taskId;
private String trayCode;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTimestamp;

@ -172,21 +172,21 @@ public class CameraService {
* @return
*/
public List<Camera> allCameras1(){
Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn();
//Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn();
Integer count = cameraMapper.selectCount(new QueryWrapper<Camera>());
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit "+num));
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit "+8));
return cameras;
}
public List<Camera> allCameras2(){
Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn();
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit "+num +","+num));
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit 0,4"));
return cameras;
}
public List<Camera> allCameras3(){
Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn();
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit "+num*2+","+num));
List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit 2,4"));
return cameras;
}

@ -15,6 +15,13 @@ public class PlcCmdInfo {
*/
private String taskId;
private String subtag;
private String addre;
private String taskWMSId;
private String wmsTrayCode;
private String trayCode;
/**
* 1 2
*/
@ -55,6 +62,7 @@ public class PlcCmdInfo {
*
*/
private Integer column2;
private Integer reply = 1;
/**
*

@ -130,6 +130,11 @@ public class PlcService {
order.setLeftRight1(plcCmdInfo.getLeftRight1());
order.setColumn1(plcCmdInfo.getColumn1());
order.setRow1(plcCmdInfo.getRow1());
order.setSubtag(plcCmdInfo.getSubtag());
order.setWmsTrayCode(plcCmdInfo.getWmsTrayCode());
order.setTaskWMSId(plcCmdInfo.getTaskWMSId());
order.setWmsCode(plcCmdInfo.getTaskWMSId());
order.setRow1(plcCmdInfo.getRow1());
//todo 昆船的项目 ,取货 放货是独立的
//取货是是不知道放货的位置的所以订单开始的时候只写1位置
//订单结束写2位置
@ -654,10 +659,11 @@ public class PlcService {
Integer cameraIdTop = getCameraByPlcCmd(plcCmdInfo, leftRightTop);
if(plcCmdInfo.getSeparation1() == 1 && configProperties.getScanCodeMode().getTray() == 2){
//内测
String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1) + "-IN";
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);
gyrateCameraByCode(cameraIdTop, cmdCode);
try {
@ -675,17 +681,30 @@ public class PlcService {
} catch (InterruptedException e) {
e.printStackTrace();
}
cameraCapture(cameraIdTop,false,null,path);
//成都蜜雪冰城 只拍照人工核对
String e2 = "E2-" + plcCmdInfo.getLeftRightStr(1) + "-IN";
log.info("camera ptz"+e2);
gyrateCameraByCode(cameraId, e2);
try {
Thread.sleep(configProperties.getCameraConfig().getEDelayCaptureTime());
} catch (InterruptedException e) {
e.printStackTrace();
cameraCapture(cameraIdTop, false, null, path);
//成都蜜雪冰城 只拍照人工核对
String e2 = "E2-" + plcCmdInfo.getLeftRightStr(1) + "-TOP";
log.info("camera ptz"+e2);
gyrateCameraByCode(cameraId, e2);
try {
Thread.sleep(configProperties.getCameraConfig().getEDelayCaptureTime());
} catch (InterruptedException e) {
e.printStackTrace();
}
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());
}
cameraCapture(cameraId,false,null,path+".jpg");
OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode);
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn());
//核对异常
@ -700,9 +719,12 @@ public class PlcService {
.checkNum(plcCmdInfo.getOrderNum())
.lotnum(plcCmdInfo.getLotnum())
.code("")
.addre(plcCmdInfo.getAddre())
.wmsCode(wmsCode)
.subtag(plcCmdInfo.getSubtag())
.wmsCategory(wmsCatagary)
.wmsTrayCode(wmsTrayCode)
.taskWMSId(plcCmdInfo.getTaskWMSId())
.trayCode("")
.streetId(orderInfo.getStreetId())
.direction(orderInfo.getLeftRight())
@ -712,6 +734,7 @@ public class PlcService {
.status(0)
.checkPic(path)
.exportTime(LocalDateTime.now())
.reply(plcCmdInfo.getReply())
.build();
stockMapper.insert(stock);
log.info("stockmapper insert new stock info.");
@ -720,12 +743,17 @@ public class PlcService {
stock.setLotnum(plcCmdInfo.getLotnum());
stock.setExportTime(LocalDateTime.now());
stock.setCheckPic(path);
stock.setAddre(plcCmdInfo.getAddre());
stock.setCheckNum(plcCmdInfo.getOrderNum());
stock.setTaskWMSId(plcCmdInfo.getTaskWMSId());
stock.setSubtag(plcCmdInfo.getSubtag());
//stock.setTrayCode(trayCode);
stock.setWmsTrayCode(wmsTrayCode);
stock.setWmsCategory(wmsCatagary);
stock.setCategory(wmsCatagary);
stock.setCode(wmsTrayCode);
stock.setReply(plcCmdInfo.getReply());
//stock.setCode(scanCode);
stock.setWmsCode(wmsCode);
stockMapper.updateById(stock);
@ -746,6 +774,7 @@ public class PlcService {
checkLog.setStreetId(stock.getStreetId());
checkLog.setDirection(stock.getDirection());
checkLog.setSide(stock.getSide());
checkLog.setSubtag(stock.getSubtag());
checkLog.setCode(stock.getCode());
checkLog.setWmsCode(stock.getWmsCode());
checkLog.setStatus(stock.getStatus());

@ -7,10 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.entity.CheckLog;
import com.zhehekeji.web.entity.StockLog;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.*;
import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.mapper.StockLogMapper;
import com.zhehekeji.web.mapper.StockMapper;
@ -20,9 +18,14 @@ import com.zhehekeji.web.pojo.stock.*;
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.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.client.ResourceAccessException;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
@ -45,6 +48,9 @@ public class StockService {
@Resource
private StreetMapper streetMapper;
@Resource
ConfigProperties configProperties;
public void importExcel(MultipartFile file) {
log.info("import excel stock");
// try {
@ -74,6 +80,7 @@ public class StockService {
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().eq("street_id", streetId).orderByAsc("`direction`", "`side`", "`row`", "`column`"));
return stocks;
}
public List<Stock> list() {
//List<String> shelves = streetService.check(street);
@ -112,11 +119,15 @@ public class StockService {
columnTabStatus.put(column, 0);
}
//获取全部盘点内容
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().select("status", "`row`", "`column`")
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>()
.select("status", "`row`", "`column`", "export_Time")
.eq("`street_id`", rowColumnStatus.getStreetId())
.eq("direction", rowColumnStatus.getDirection())
.eq("side", rowColumnStatus.getSide()));
.eq("side", rowColumnStatus.getSide())
.orderByDesc("export_Time"));
Set<String> seen = new HashSet<>();
Map<Integer, Map<Integer, Stock>> stocksMap = stocks.stream()
.filter(f -> seen.add(f.getRow() + "-" + f.getColumn()))
//修改盘点范围值
.peek(stock -> {
@ -124,11 +135,11 @@ public class StockService {
String[] strings = entry.getKey().split(" - ");
if (stock.getRow() >= Integer.parseInt(strings[0]) && stock.getRow() <= Integer.parseInt(strings[1])) {
//若存在则先绿3
if(entry.getValue() == 0) entry.setValue(3);
if (entry.getValue() == 0) entry.setValue(3);
//存在异常爆红2
if (stock.getStatus() == 1 ) {
if (stock.getStatus() == 1) {
entry.setValue(2);
}else if(entry.getValue() != 2 && stock.getStatus() == 0 ){//存在不爆红且未盘点
} else if (entry.getValue() != 2 && stock.getStatus() == 0) {//存在不爆红且未盘点
entry.setValue(1);
}
}
@ -137,11 +148,11 @@ public class StockService {
String[] strings = entry.getKey().split(" - ");
if (stock.getColumn() >= Integer.parseInt(strings[0]) && stock.getColumn() <= Integer.parseInt(strings[1])) {
//若存在则先绿3
if(entry.getValue() == 0) entry.setValue(3);
if (entry.getValue() == 0) entry.setValue(3);
//存在异常爆红2
if (stock.getStatus() == 1 ) {
if (stock.getStatus() == 1) {
entry.setValue(2);
}else if(entry.getValue() != 2 && stock.getStatus() == 0 ){//存在不爆红且未盘点黄色1
} else if (entry.getValue() != 2 && stock.getStatus() == 0) {//存在不爆红且未盘点黄色1
entry.setValue(1);
}
}
@ -149,9 +160,9 @@ public class StockService {
})
//若未盘点修改为-1
.peek(stock -> {
if (stock.getStatus() == 0){
if (stock.getStatus() == 0) {
stock.setViewStatus(-1);
}else stock.setViewStatus(stock.getStatus());
} else stock.setViewStatus(stock.getStatus());
})
.collect(Collectors.groupingBy(Stock::getColumn, Collectors.toMap(Stock::getRow, v -> v)));
//赋值
@ -165,7 +176,7 @@ public class StockService {
stock.setViewStatus(0);
//stock.setShelveId(shelveId);
stockList.add(stock);
}else stockList.add(stocksMap.get(j).get(i));
} else stockList.add(stocksMap.get(j).get(i));
}
}
@ -174,6 +185,7 @@ public class StockService {
checkStatus.setStocks(stockList);
return checkStatus;
}
public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus) {
CheckStatus checkStatus = new CheckStatus();
checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
@ -473,12 +485,44 @@ public class StockService {
} else {
stock.setStatus(StockStatus.ERROR.getStatus());
}
if (stock.getReply() == 1) {
uploadResultsWMS(stock, stockCheck.getOk());
}
stockMapper.updateById(stock);
checkLog(stock);
return stock;
}
public void uploadResultsWMS(Stock stock, Integer stockStatus) {
ResponseEntity<String> body = null;
RestTemplate restTemplate = new RestTemplate();
String url = configProperties.getUploadResultsApiUrl();
UploadCheckResults uploadCheckResults = new UploadCheckResults();
//String url = "http://127.0.0.1:8083"+"/visionCompute";
uploadCheckResults.setWcsTaskId(stock.getCheckNum().split("_")[1]);
uploadCheckResults.setWmsTaskId(stock.getTaskWMSId());
uploadCheckResults.setPalno(stock.getWmsCode());
uploadCheckResults.setFlag(stockStatus == 1 ? 1 : 0);
uploadCheckResults.setAddre(stock.getAddre());
try {
// String jsonString = gson.toJson(algorithmPojo);
body = restTemplate.postForEntity(url, uploadCheckResults, String.class);
JSONObject.parseObject(body.getBody(), UploadCheckResults.class);
System.out.println(body);
} catch (RestClientException e) {
log.error("上传结果失败", e);
}
}
@Resource
private CheckLogMapper checkLogMapper;
@ -497,12 +541,12 @@ public class StockService {
checkLog.setCode(stock.getCode());
checkLog.setCreateTime(LocalDateTime.now());
checkLog.setExportTime(stock.getExportTime());
checkLogMapper.update(checkLog,new UpdateWrapper<CheckLog>()
.eq("check_num",stock.getCheckNum())
.eq("`column`",stock.getColumn())
.eq("`row`",stock.getRow())
.eq("direction",stock.getDirection())
.eq("side",stock.getSide()));
checkLogMapper.update(checkLog, new UpdateWrapper<CheckLog>()
.eq("check_num", stock.getCheckNum())
.eq("`column`", stock.getColumn())
.eq("`row`", stock.getRow())
.eq("direction", stock.getDirection())
.eq("side", stock.getSide()));
}
/**
@ -532,7 +576,7 @@ public class StockService {
stock.setStatus(3);
List<Stock> stockList = stockMapper.selectList(new QueryWrapper<Stock>().eq("status", "0"));
stockMapper.update(stock, new QueryWrapper<Stock>().eq("status", "0"));
for (Stock s:stockList){
for (Stock s : stockList) {
StockCheck stockCheck = new StockCheck();
stockCheck.setColumn(s.getColumn());
stockCheck.setStreetId(s.getStreetId());

@ -10,6 +10,7 @@ public class KsecDataInfo {
private String cmdName;
private String taskId;
private String taskWMSId;
private Integer fromColumn;
@ -39,6 +40,9 @@ public class KsecDataInfo {
private String trayCode;
private String subtag;
private String addre;
/**
*
*/

@ -28,13 +28,13 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
private static final Logger tcpLogger = LoggerFactory.getLogger("tcp");
public static void setLastLotnum(String lotnum){
public static void setLastLotnum(String lotnum) {
lastLotnum = lotnum;
}
private static String lastLotnum;
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(7,21,30, TimeUnit.MILLISECONDS,new ArrayBlockingQueue<>(20000));
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(7, 21, 30, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(20000));
private PlcService plcService;
@ -46,16 +46,16 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
@Override
protected Object decode(ChannelHandlerContext ctx, ByteBuf in) throws Exception {
in = (ByteBuf) super.decode(ctx, in);
if(in == null){
if (in == null) {
log.debug("no data");
return null;
}
KescRunnable kescRunnable = new KescRunnable(in,ctx,plcService);
KescRunnable kescRunnable = new KescRunnable(in, ctx, plcService);
threadPoolExecutor.execute(kescRunnable);
return null;
}
public static class KescRunnable implements Runnable{
public static class KescRunnable implements Runnable {
private ByteBuf in;
@ -63,7 +63,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
private PlcService plcService;
public KescRunnable(ByteBuf body,ChannelHandlerContext ctx,PlcService plcService){
public KescRunnable(ByteBuf body, ChannelHandlerContext ctx, PlcService plcService) {
this.in = body;
this.ctx = ctx;
this.plcService = plcService;
@ -72,15 +72,15 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
@Override
public void run() {
String body = in.toString(StandardCharsets.UTF_8);
tcpLogger.info("接收数据:"+body);
log.info("接收数据:"+body);
if (body.startsWith("<")){
tcpLogger.info("接收数据:" + body);
log.info("接收数据:" + body);
if (body.startsWith("<")) {
// 去掉首尾标识符
body = body.substring(1, body.length());
KsecInfo ksecInfo = JSONObject.parseObject(body, KsecInfo.class);
if (Cmd.A.name().equals(ksecInfo.getType())) {
in.release();
return ;
return;
}
KsecDataInfo dataInfo = ksecInfo.getData();
LotnumConvert lotnumConvert = new LotnumConvert(dataInfo.getLotnum());
@ -88,13 +88,20 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
dataInfo.setLotnum(lotnum);
ksecInfo.setData(dataInfo);
String ksecInfoStr = "<" + JSONObject.toJSONString(ksecInfo) + ">";
tcpLogger.info("转换后数据: "+ksecInfoStr);
tcpLogger.info("转换后数据: " + ksecInfoStr);
PlcCmdInfo plcCmdInfo = null;
String srmNumber = null;
String cmdName = null;
if(dataInfo != null){
if (dataInfo != null) {
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.setAddre(dataInfo.getAddre());
plcCmdInfo.setWmsTrayCode(dataInfo.getTrayCode());
plcCmdInfo.setTrayCode(dataInfo.getCode());
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);
srmNumber = dataInfo.getSRMNumber();
cmdName = dataInfo.getCmdName();
@ -108,12 +115,12 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
if (Cmd.B1.name().equals(cmdName)) {
//昆船盘点模式下也会发B1 ,但是不会发送B2
//这里判断下,是否存在盘点批次号 若存在既是盘点的B1,无需处理若不存在lotnum则是随行的B1
if(StringUtils.isEmpty(dataInfo.getLotnum())){
if (StringUtils.isEmpty(dataInfo.getLotnum())) {
//任务开始 旋转到原点位
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.gyrateCamera(plcCmdInfo, Cmd.C5.name());
plcService.orderStart(plcCmdInfo);
plcService.openStreetLightSource(plcCmdInfo.getStreetId());
}else {
} else {
log.info("check move");
}
@ -121,14 +128,14 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
//B2 C4 一起发的需要停止等B2
//这里判断是不是双伸
if(plcCmdInfo.getSeparation2() == 2){
if (plcCmdInfo.getSeparation2() == 2) {
//深测货架延迟
try {
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2OutDelayTime());
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
} else {
//浅侧延迟
try {
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2DelayTime());
@ -136,11 +143,12 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
e.printStackTrace();
}
}
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStop(plcCmdInfo);
plcService.closeStreetLightSource(plcCmdInfo.getStreetId());
//重置相机水平方向
plcService.verticalAdjustmentByStreet( dataInfo.getSRMNumber());
plcService.verticalAdjustmentByStreet(dataInfo.getSRMNumber());
plcService.gyrateCamera(plcCmdInfo, Cmd.C5.name());
}
} else if (Cmd.C.name().equals(ksecInfo.getType())) {
@ -159,8 +167,8 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
log.info("other C code :{}",code);
} else {
log.info("other C code :{}", code);
}
} else if (Cmd.D.name().equals(ksecInfo.getType())) {
@ -191,18 +199,23 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
// lastLotnum = lotnum;
// }
//盘点
//转球机到盘点位 然后拍照
if (Cmd.E2.name().equals(cmdName)) {
plcCmdInfo.setReply(0);
}
plcCmdInfo.setTimes(1);
//成都蜜雪冰城 将lotnum当成托盘条码描述
Boolean ok = plcService.check(plcCmdInfo,ksecInfo.getData().getCmdName(), dataInfo.getCode(), dataInfo.getTrayCode(), dataInfo.getLotnum());
Boolean ok = plcService.check(plcCmdInfo, ksecInfo.getData().getCmdName(), dataInfo.getCode(), dataInfo.getTrayCode(), dataInfo.getLotnum());
// Boolean ok = true;
if(ok){
if (ok) {
ksecInfo.getData().setAckStatus(1);
}else {
} else {
ksecInfo.getData().setAckStatus(0);
}
ctx.channel().writeAndFlush(ksecInfo);
log.info("盘点结束:"+ksecInfo.getData().toString());
log.info("盘点结束:" + ksecInfo.getData().toString());
}
//找到该货位的最后一张照片与现在的照片比照
//plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0);

@ -70,6 +70,7 @@ public class KsecNettyClient {
catch (Exception e) {
//关闭当前链接
if(channel!=null) {
channel.disconnect();
channel.close();
}
log.error("reconnect error num:{}", num);

@ -14,7 +14,7 @@ spring:
testWhileIdle: false
timeBetweenEvictionRunsMillis: 60000
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
url: jdbc:mysql://127.0.0.1:3306/lia_duoji_jiazuomx?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号
@ -64,7 +64,7 @@ savePath:
# ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船)
serverMode: 1
ksec:
ip: 192.168.168.11
ip: 127.0.0.1
port: 8001
#断点重连的次数:-1->不断重连
reconnectNum: -1
@ -93,4 +93,6 @@ scanCodeMode:
trayCodeTypes:
- 14
# 照片 視頻保存多久
deleteFileDays: 365
deleteFileDays: 365
uploadResultsApiUrl: http://127.0.0.1:9002/InventoryResult/Ir

@ -7,12 +7,21 @@
from `order` t
<where>
<if test="req.orderNum != null and req.orderNum != ''">
and t.order_num = #{req.orderNum}
and t.order_num like concat('%', #{req.orderNum},'%')
</if>
<if test="req.taskId != null and req.taskId != ''">
and t.task_WMS_Id like concat('%', #{req.taskId},'%')
</if>
<if test="req.subtag != null and req.subtag != ''">
and t.subtag like concat('%', #{req.subtag},'%')
</if>
<if test="req.trayCode != null and req.trayCode != ''">
and t.wms_Code like concat('%', #{req.trayCode},'%')
</if>
<if test="req.startTimestamp != null and req.endTimestamp != null">
and t.start_time >= #{req.startTimestamp} and t.start_time &lt;= #{req.endTimestamp}
</if>
<if test="req.streetId != null and req.streetId != ''">
<if test="req.streetId != null and req.streetId != '' and req.streetId != 0">
and t.street_id = #{req.streetId}
</if>
</where>

Loading…
Cancel
Save