蜜雪冰城简单修改

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

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

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

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

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

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

@ -29,6 +29,13 @@ public class Stock {
@ApiModelProperty("盘点任务号") @ApiModelProperty("盘点任务号")
private String checkNum; private String checkNum;
@ApiModelProperty("wms任务号")
@TableField(value = "`task_wms_id`")
private String taskWMSId;
@ApiModelProperty("位置")
private String addre;
@ApiModelProperty("盘点批次号") @ApiModelProperty("盘点批次号")
private String lotnum; private String lotnum;
@ -58,8 +65,10 @@ public class Stock {
private Integer streetId; private Integer streetId;
private Integer direction; private Integer direction;
private Integer reply;
private Integer side; private Integer side;
private String subtag;
@TableField(value = "`row`") @TableField(value = "`row`")
@ApiModelProperty("行号") @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) public void toPtz(Integer ptzId, Integer cameraId)
{ {
int dwPTZCommand = HCNetSDK.GOTO_PRESET; 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){ if(!ok){
log.error("toPtz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); 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) { public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser) {
Integer cameraId =CameraConnMap.getCameraIdByLoginId(new NetSDKLib.LLong(lUserID)); Integer cameraId =CameraConnMap.getCameraIdByLoginId(new NetSDKLib.LLong(lUserID));
if(dwType == 32768){ if(dwType == 32768){
if(cameraId != null) {
log.error("hik disconnect,cameraId:{}", cameraId); log.error("hik disconnect,cameraId:{}", cameraId);
}
}else if(dwType == 32791){ }else if(dwType == 32791){
log.info("hik reconnect,cameraId:{}", CameraConnMap.getCameraIdByLoginId(new NetSDKLib.LLong(lUserID))); log.info("hik reconnect,cameraId:{}", CameraConnMap.getCameraIdByLoginId(new NetSDKLib.LLong(lUserID)));

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

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

@ -172,21 +172,21 @@ public class CameraService {
* @return * @return
*/ */
public List<Camera> allCameras1(){ 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>()); 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; return cameras;
} }
public List<Camera> allCameras2(){ public List<Camera> allCameras2(){
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 "+num +","+num)); List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit 0,4"));
return cameras; return cameras;
} }
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 "+num*2+","+num)); List<Camera> cameras = cameraMapper.selectList(new QueryWrapper<Camera>().last("limit 2,4"));
return cameras; return cameras;
} }

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

@ -130,6 +130,11 @@ public class PlcService {
order.setLeftRight1(plcCmdInfo.getLeftRight1()); order.setLeftRight1(plcCmdInfo.getLeftRight1());
order.setColumn1(plcCmdInfo.getColumn1()); order.setColumn1(plcCmdInfo.getColumn1());
order.setRow1(plcCmdInfo.getRow1()); 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 昆船的项目 ,取货 放货是独立的 //todo 昆船的项目 ,取货 放货是独立的
//取货是是不知道放货的位置的所以订单开始的时候只写1位置 //取货是是不知道放货的位置的所以订单开始的时候只写1位置
//订单结束写2位置 //订单结束写2位置
@ -654,10 +659,11 @@ public class PlcService {
Integer cameraIdTop = getCameraByPlcCmd(plcCmdInfo, leftRightTop); 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) + "-IN"; String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1) ;
log.info("camera ptz"+c); log.info("camera ptz"+c);
gyrateCameraByCode(cameraIdTop, c); gyrateCameraByCode(cameraIdTop, c);
}else { }else {
String c = cmdCode + "-" + plcCmdInfo.getLeftRightStr(1) ;
log.info("camera ptz"+cmdCode); log.info("camera ptz"+cmdCode);
gyrateCameraByCode(cameraIdTop, cmdCode); gyrateCameraByCode(cameraIdTop, cmdCode);
try { try {
@ -675,17 +681,30 @@ public class PlcService {
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
try {
cameraCapture(cameraIdTop, false, null, path); cameraCapture(cameraIdTop, false, null, path);
//成都蜜雪冰城 只拍照人工核对 //成都蜜雪冰城 只拍照人工核对
String e2 = "E2-" + plcCmdInfo.getLeftRightStr(1) + "-IN"; String e2 = "E2-" + plcCmdInfo.getLeftRightStr(1) + "-TOP";
log.info("camera ptz"+e2); log.info("camera ptz"+e2);
gyrateCameraByCode(cameraId, e2); gyrateCameraByCode(cameraId, e2);
try { try {
Thread.sleep(configProperties.getCameraConfig().getEDelayCaptureTime()); Thread.sleep(configProperties.getCameraConfig().getEDelayCaptureTime());
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); 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());
}
OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode); OrderInfo orderInfo = new OrderInfo(street,plcCmdInfo,1,cmdCode);
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn()); Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn());
//核对异常 //核对异常
@ -700,9 +719,12 @@ public class PlcService {
.checkNum(plcCmdInfo.getOrderNum()) .checkNum(plcCmdInfo.getOrderNum())
.lotnum(plcCmdInfo.getLotnum()) .lotnum(plcCmdInfo.getLotnum())
.code("") .code("")
.addre(plcCmdInfo.getAddre())
.wmsCode(wmsCode) .wmsCode(wmsCode)
.subtag(plcCmdInfo.getSubtag())
.wmsCategory(wmsCatagary) .wmsCategory(wmsCatagary)
.wmsTrayCode(wmsTrayCode) .wmsTrayCode(wmsTrayCode)
.taskWMSId(plcCmdInfo.getTaskWMSId())
.trayCode("") .trayCode("")
.streetId(orderInfo.getStreetId()) .streetId(orderInfo.getStreetId())
.direction(orderInfo.getLeftRight()) .direction(orderInfo.getLeftRight())
@ -712,6 +734,7 @@ public class PlcService {
.status(0) .status(0)
.checkPic(path) .checkPic(path)
.exportTime(LocalDateTime.now()) .exportTime(LocalDateTime.now())
.reply(plcCmdInfo.getReply())
.build(); .build();
stockMapper.insert(stock); stockMapper.insert(stock);
log.info("stockmapper insert new stock info."); log.info("stockmapper insert new stock info.");
@ -720,12 +743,17 @@ public class PlcService {
stock.setLotnum(plcCmdInfo.getLotnum()); stock.setLotnum(plcCmdInfo.getLotnum());
stock.setExportTime(LocalDateTime.now()); stock.setExportTime(LocalDateTime.now());
stock.setCheckPic(path); stock.setCheckPic(path);
stock.setAddre(plcCmdInfo.getAddre());
stock.setCheckNum(plcCmdInfo.getOrderNum()); stock.setCheckNum(plcCmdInfo.getOrderNum());
stock.setTaskWMSId(plcCmdInfo.getTaskWMSId());
stock.setSubtag(plcCmdInfo.getSubtag());
//stock.setTrayCode(trayCode); //stock.setTrayCode(trayCode);
stock.setWmsTrayCode(wmsTrayCode); stock.setWmsTrayCode(wmsTrayCode);
stock.setWmsCategory(wmsCatagary); stock.setWmsCategory(wmsCatagary);
stock.setCategory(wmsCatagary); stock.setCategory(wmsCatagary);
stock.setCode(wmsTrayCode); stock.setCode(wmsTrayCode);
stock.setReply(plcCmdInfo.getReply());
//stock.setCode(scanCode); //stock.setCode(scanCode);
stock.setWmsCode(wmsCode); stock.setWmsCode(wmsCode);
stockMapper.updateById(stock); stockMapper.updateById(stock);
@ -746,6 +774,7 @@ public class PlcService {
checkLog.setStreetId(stock.getStreetId()); checkLog.setStreetId(stock.getStreetId());
checkLog.setDirection(stock.getDirection()); checkLog.setDirection(stock.getDirection());
checkLog.setSide(stock.getSide()); checkLog.setSide(stock.getSide());
checkLog.setSubtag(stock.getSubtag());
checkLog.setCode(stock.getCode()); checkLog.setCode(stock.getCode());
checkLog.setWmsCode(stock.getWmsCode()); checkLog.setWmsCode(stock.getWmsCode());
checkLog.setStatus(stock.getStatus()); 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.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.zhehekeji.core.util.Assert; import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.entity.Stock; import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.CheckLog; import com.zhehekeji.web.entity.*;
import com.zhehekeji.web.entity.StockLog;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.CheckLogMapper; import com.zhehekeji.web.mapper.CheckLogMapper;
import com.zhehekeji.web.mapper.StockLogMapper; import com.zhehekeji.web.mapper.StockLogMapper;
import com.zhehekeji.web.mapper.StockMapper; import com.zhehekeji.web.mapper.StockMapper;
@ -20,9 +18,14 @@ import com.zhehekeji.web.pojo.stock.*;
import io.swagger.models.auth.In; 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.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; 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 org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -45,6 +48,9 @@ public class StockService {
@Resource @Resource
private StreetMapper streetMapper; private StreetMapper streetMapper;
@Resource
ConfigProperties configProperties;
public void importExcel(MultipartFile file) { public void importExcel(MultipartFile file) {
log.info("import excel stock"); log.info("import excel stock");
// try { // 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`")); List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().eq("street_id", streetId).orderByAsc("`direction`", "`side`", "`row`", "`column`"));
return stocks; return stocks;
} }
public List<Stock> list() { public List<Stock> list() {
//List<String> shelves = streetService.check(street); //List<String> shelves = streetService.check(street);
@ -112,11 +119,15 @@ public class StockService {
columnTabStatus.put(column, 0); 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("`street_id`", rowColumnStatus.getStreetId())
.eq("direction", rowColumnStatus.getDirection()) .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() Map<Integer, Map<Integer, Stock>> stocksMap = stocks.stream()
.filter(f -> seen.add(f.getRow() + "-" + f.getColumn()))
//修改盘点范围值 //修改盘点范围值
.peek(stock -> { .peek(stock -> {
@ -174,6 +185,7 @@ public class StockService {
checkStatus.setStocks(stockList); checkStatus.setStocks(stockList);
return checkStatus; return checkStatus;
} }
public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus) { public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus) {
CheckStatus checkStatus = new CheckStatus(); CheckStatus checkStatus = new CheckStatus();
checkStatus.setColumnStart(rowColumnStatus.getColumnStart()); checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
@ -473,12 +485,44 @@ public class StockService {
} else { } else {
stock.setStatus(StockStatus.ERROR.getStatus()); stock.setStatus(StockStatus.ERROR.getStatus());
} }
if (stock.getReply() == 1) {
uploadResultsWMS(stock, stockCheck.getOk());
}
stockMapper.updateById(stock); stockMapper.updateById(stock);
checkLog(stock); checkLog(stock);
return 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 @Resource
private CheckLogMapper checkLogMapper; private CheckLogMapper checkLogMapper;

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

@ -95,6 +95,13 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
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 = 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());
srmNumber = dataInfo.getSRMNumber(); srmNumber = dataInfo.getSRMNumber();
cmdName = dataInfo.getCmdName(); cmdName = dataInfo.getCmdName();
@ -136,12 +143,13 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
e.printStackTrace(); e.printStackTrace();
} }
} }
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStop(plcCmdInfo); plcService.orderStop(plcCmdInfo);
plcService.closeStreetLightSource(plcCmdInfo.getStreetId()); 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())) { } else if (Cmd.C.name().equals(ksecInfo.getType())) {
@ -191,7 +199,11 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
// lastLotnum = lotnum; // lastLotnum = lotnum;
// } // }
//盘点 //盘点
//转球机到盘点位 然后拍照 //转球机到盘点位 然后拍照
if (Cmd.E2.name().equals(cmdName)) {
plcCmdInfo.setReply(0);
}
plcCmdInfo.setTimes(1); plcCmdInfo.setTimes(1);
//成都蜜雪冰城 将lotnum当成托盘条码描述 //成都蜜雪冰城 将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());
@ -203,6 +215,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
} }
ctx.channel().writeAndFlush(ksecInfo); ctx.channel().writeAndFlush(ksecInfo);
log.info("盘点结束:" + ksecInfo.getData().toString()); log.info("盘点结束:" + ksecInfo.getData().toString());
} }
//找到该货位的最后一张照片与现在的照片比照 //找到该货位的最后一张照片与现在的照片比照
//plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0); //plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0);

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

@ -14,7 +14,7 @@ spring:
testWhileIdle: false testWhileIdle: false
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
type: com.alibaba.druid.pool.DruidDataSource 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 username: root
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号
@ -64,7 +64,7 @@ savePath:
# ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船) # ------------服务端类型 0TCP(罗伯泰克) 1:KSEC(JSON)(昆船)
serverMode: 1 serverMode: 1
ksec: ksec:
ip: 192.168.168.11 ip: 127.0.0.1
port: 8001 port: 8001
#断点重连的次数:-1->不断重连 #断点重连的次数:-1->不断重连
reconnectNum: -1 reconnectNum: -1
@ -94,3 +94,5 @@ scanCodeMode:
- 14 - 14
# 照片 視頻保存多久 # 照片 視頻保存多久
deleteFileDays: 365 deleteFileDays: 365
uploadResultsApiUrl: http://127.0.0.1:9002/InventoryResult/Ir

@ -7,12 +7,21 @@
from `order` t from `order` t
<where> <where>
<if test="req.orderNum != null and req.orderNum != ''"> <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>
<if test="req.startTimestamp != null and req.endTimestamp != null"> <if test="req.startTimestamp != null and req.endTimestamp != null">
and t.start_time >= #{req.startTimestamp} and t.start_time &lt;= #{req.endTimestamp} and t.start_time >= #{req.startTimestamp} and t.start_time &lt;= #{req.endTimestamp}
</if> </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} and t.street_id = #{req.streetId}
</if> </if>
</where> </where>

Loading…
Cancel
Save