1.设置http连接时间

2、识别3d接口
3、图片位置调整
4、修改品规名称
滁州-烟草
LAPTOP-S9HJSOEB\昊天 2 years ago
parent 9504a620d0
commit c9ad330b7c

@ -24,8 +24,8 @@ public class FusionDesignApplication {
// 使用RestTemplateBuilder来实例化RestTemplate对象spring默认已经注入了RestTemplateBuilder实例 // 使用RestTemplateBuilder来实例化RestTemplate对象spring默认已经注入了RestTemplateBuilder实例
@Bean @Bean
public RestTemplate restTemplate() { public RestTemplate restTemplate() {
return builder.setConnectTimeout(Duration.ofSeconds(10)) // 设置连接超时时间,单位毫秒 return builder.setConnectTimeout(Duration.ofSeconds(20)) // 设置连接超时时间,单位毫秒
.setReadTimeout(Duration.ofSeconds(10)) // 设置读取超时时间,单位毫秒 .setReadTimeout(Duration.ofSeconds(20)) // 设置读取超时时间,单位毫秒
.build(); .build();
} }
} }

@ -13,9 +13,12 @@ import com.zhehekeji.web.service.IndustrialCamera.LxPointCloudSaveImage;
import com.zhehekeji.web.service.StreetService; import com.zhehekeji.web.service.StreetService;
import com.zhehekeji.web.service.algorithm.FeatureMatchingExample; import com.zhehekeji.web.service.algorithm.FeatureMatchingExample;
import com.zhehekeji.web.service.algorithm.InventoryService; import com.zhehekeji.web.service.algorithm.InventoryService;
import com.zhehekeji.web.service.algorithm.PcdPojo;
import com.zhehekeji.web.service.algorithm.PointCloudProcessor;
import com.zhehekeji.web.service.client.TransmissionPojo; import com.zhehekeji.web.service.client.TransmissionPojo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.opencv.core.Mat; import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgcodecs.Imgcodecs;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -24,10 +27,13 @@ import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.nio.file.*; import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.UUID; import java.util.UUID;
import static com.zhehekeji.web.service.algorithm.FeatureMatchingExample.base642Mat; import static com.zhehekeji.web.service.algorithm.FeatureMatchingExample.base642Mat;
@Slf4j
@Api(tags = "工业相机") @Api(tags = "工业相机")
@RequestMapping("/industrialCamera") @RequestMapping("/industrialCamera")
@RestController @RestController
@ -76,7 +82,48 @@ public class IndustrialCameraController {
@ApiOperation("识别3D") @ApiOperation("识别3D")
@PostMapping("Macth3D") @PostMapping("Macth3D")
public Result<String> Macth3D(@RequestBody IndustrialCameraVO industrialCameraVo){ public Result<String> Macth3D(@RequestBody IndustrialCameraVO industrialCameraVo){
return null; Street street = streetService.getStreetByPlcId(industrialCameraVo.getStreetId());
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//盘点地址
String pcdPath1 =configProperties.getSavePath().getMediaPath() + street.getLeft3D()+ "/"+currentDate.format(formatter)+"/"+industrialCameraVo.getPcdPath()+".pcd";
String pcdPath2 =configProperties.getSavePath().getMediaPath() + street.getRight3D()+ "/"+ currentDate.format(formatter)+"/"+industrialCameraVo.getPcdPath()+".pcd";
//随行地址
String pcdPath3 =configProperties.getSavePath().getMediaPath() + street.getLeft3D()+"/000/"
+"/"+industrialCameraVo.getPcdPath()+"-L"+".pcd";
String pcdPath4 =configProperties.getSavePath().getMediaPath() + street.getRight3D()+"/000/"
+"/"+industrialCameraVo.getPcdPath()+"-R"+".pcd";
//拍照
log.info("3D拍照 左侧pcd "+street.getLeft3D()+" 右侧pcd: "+pcdPath1);
LxPointCloudSaveImage.saveImage(street.getLeft3D(), pcdPath1,1);
LxPointCloudSaveImage.saveImage(street.getRight3D(), pcdPath2,2);
//左侧比较
PcdPojo pojo = new PcdPojo();
pojo.setPcd1(pcdPath1);
pojo.setPcd2(pcdPath3);
pojo.setConfigPath("D://config//3DConfig/"+street.getLeft3D()+".json");
double leftScore = PointCloudProcessor.similarity(pojo,10);
log.info("3D leftScore"+leftScore);
//右侧比较
pojo.setPcd1(pcdPath2);
pojo.setPcd2(pcdPath4);
pojo.setConfigPath("D://config//3DConfig/"+street.getRight3D()+".json");
double rightScore = PointCloudProcessor.similarity( pojo,10);
log.info("3D rightScore"+rightScore);
if(leftScore<0.9||rightScore<0.9){
}
return Result.success(leftScore +" "+ rightScore);
} }
@Resource @Resource
@ -106,7 +153,6 @@ public class IndustrialCameraController {
+transmissionPojo.getRow()+"-"+transmissionPojo.getColumn()+"-"+transmissionPojo.getDirection()+"-R"+".pcd"; +transmissionPojo.getRow()+"-"+transmissionPojo.getColumn()+"-"+transmissionPojo.getDirection()+"-R"+".pcd";
//拍照 //拍照
System.out.println(street.getLeft3D()+" 111211 "+ pcdPath1); System.out.println(street.getLeft3D()+" 111211 "+ pcdPath1);
System.out.println((System.getProperty("user.dir"))+"\\libs\\plc\\cameraapi");
LxPointCloudSaveImage lxPointCloudSaveImage = new LxPointCloudSaveImage(); LxPointCloudSaveImage lxPointCloudSaveImage = new LxPointCloudSaveImage();
lxPointCloudSaveImage.saveImage(street.getLeft3D(), pcdPath1,1); lxPointCloudSaveImage.saveImage(street.getLeft3D(), pcdPath1,1);

@ -1,9 +1,11 @@
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;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* camera login handler * camera login handler
@ -14,13 +16,14 @@ public class CameraConnMap {
* key :cameraId * key :cameraId
* value: loginId * value: loginId
*/ */
public static Map<Integer, NetSDKLib.LLong> cameraMap = new HashMap<>(); public static Map<Integer, NetSDKLib.LLong> cameraMap = new ConcurrentHashMap<>();
public static Map<Integer, Camera> cameraInfoMap = new ConcurrentHashMap<>();
/** /**
* key:loginId * key:loginId
* value: cameraId * value: cameraId
*/ */
public static Map<NetSDKLib.LLong,Integer> loginMap = new HashMap<>(); public static Map<NetSDKLib.LLong,Integer> loginMap = new ConcurrentHashMap<>();
public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){ public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){
synchronized (cameraId.toString().intern()){ synchronized (cameraId.toString().intern()){

@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Timer; import java.util.Timer;
import static com.zhehekeji.web.lib.CameraConnMap.cameraInfoMap;
import static com.zhehekeji.web.lib.hik.HCNetSDK.NET_DVR_GET_PTZPOS; import static com.zhehekeji.web.lib.hik.HCNetSDK.NET_DVR_GET_PTZPOS;
/** /**
@ -42,6 +43,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule {
public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int dwPTZCommand,int dwStop) public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int dwPTZCommand,int dwStop)
{ {
int lUserId = CameraConnMap.getConnId(cameraId).intValue(); int lUserId = CameraConnMap.getConnId(cameraId).intValue();
return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.TILT_UP, 0); return HikLoginModuleImpl.hcNetsdk.NET_DVR_PTZControl_Other(lUserId, 1, HCNetSDK.TILT_UP, 0);
} }

@ -10,6 +10,8 @@ public class IndustrialCameraVO {
private String picImg; private String picImg;
private String typeMacth; private String typeMacth;
private List<ImgFile> fileList; private List<ImgFile> fileList;
private String pcdPath;
private String streetId; private String streetId;
} }

@ -28,6 +28,8 @@ import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import static com.zhehekeji.web.lib.CameraConnMap.cameraInfoMap;
/** /**
* *
* plc * plc
@ -139,6 +141,7 @@ public class InitService implements ApplicationRunner {
@Override @Override
public void run() { public void run() {
cameraService.cameraLogin(camera); cameraService.cameraLogin(camera);
cameraInfoMap.put(camera.getId(),camera);
} }
} }

@ -36,7 +36,9 @@ import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -342,11 +344,14 @@ public class PlcService {
} catch (Exception e) { } catch (Exception e) {
log.error("cameraId error:{}", cameraId); log.error("cameraId error:{}", cameraId);
} }
Boolean delay = true;
Integer row = 0;
Integer column = 0;
Integer sep = 0;
long delayTime = 0;
if (needCapture) { if (needCapture) {
Boolean delay = true;
Integer row = 0;
Integer column = 0;
Integer sep = 0;
if (times <= 2) { if (times <= 2) {
row = plcCmdInfo.getRow1(); row = plcCmdInfo.getRow1();
column = plcCmdInfo.getColumn1(); column = plcCmdInfo.getColumn1();
@ -356,7 +361,6 @@ public class PlcService {
column = plcCmdInfo.getColumn2(); column = plcCmdInfo.getColumn2();
sep = plcCmdInfo.getSeparation2(); sep = plcCmdInfo.getSeparation2();
} }
long delayTime = 0;
if (code.startsWith("C1")) { if (code.startsWith("C1")) {
@ -367,26 +371,7 @@ public class PlcService {
} else { } else {
delayTime = configProperties.getCameraConfig().getC2OutDelayCaptureTime(); delayTime = configProperties.getCameraConfig().getC2OutDelayCaptureTime();
} }
try {
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/json");
headers.set("User-Agent", "Mozilla/5.0");
TransmissionPojo scTransmission = new TransmissionPojo(street, plcCmdInfo.getRow2(), plcCmdInfo.getColumn2(), plcCmdInfo.getLeftRight2(), plcCmdInfo.getTaskId());
// 创建 HttpEntity 对象
HttpEntity<TransmissionPojo> entity = new HttpEntity<>(scTransmission, headers);
// 发送 POST 请求
ResponseEntity<Boolean> response = restTemplate.exchange(
"http://" + street.getPlcIp() + ":8099" + "/api/industrialCamera/actionType",
HttpMethod.POST,
entity,
Boolean.class
);
} catch (Exception e) {
log.error("3D get pcd error", e);
}
} else if (code.startsWith("C3")) { } else if (code.startsWith("C3")) {
delayTime = configProperties.getCameraConfig().getC3DelayCaptureTime(); delayTime = configProperties.getCameraConfig().getC3DelayCaptureTime();
@ -415,6 +400,32 @@ public class PlcService {
gyrateCameraByCodeTimeLater(street.getCamera1Id(), "C5", configProperties.getCameraConfig().getC2OutDelayCaptureTime() + 500); gyrateCameraByCodeTimeLater(street.getCamera1Id(), "C5", configProperties.getCameraConfig().getC2OutDelayCaptureTime() + 500);
} }
} }
if (code.startsWith("C2")) {
//延迟后拍照
try {
Thread.sleep(delayTime);
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/json");
headers.set("User-Agent", "Mozilla/5.0");
TransmissionPojo scTransmission = new TransmissionPojo(street, plcCmdInfo.getRow2(), plcCmdInfo.getColumn2(), plcCmdInfo.getLeftRight2(), plcCmdInfo.getTaskId());
// 创建 HttpEntity 对象
HttpEntity<TransmissionPojo> entity = new HttpEntity<>(scTransmission, headers);
// 发送 POST 请求
ResponseEntity<Boolean> response = restTemplate.exchange(
"http://" + street.getPlcIp() + ":8099" + "/api/industrialCamera/actionType",
HttpMethod.POST,
entity,
Boolean.class
);
} catch (Exception e) {
log.error("3D get pcd error", e);
}
}
} }
public void gyrateCamera(PlcCmdInfo plcCmdInfo, String code) { public void gyrateCamera(PlcCmdInfo plcCmdInfo, String code) {
@ -773,19 +784,19 @@ public class PlcService {
} catch (ExecutionException e) { } catch (ExecutionException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
String path2D = "http://" + street.getPlcIp() + ":8099/api/"
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String path2D = "http://" + street.getPlcIp() + ":9007/api/pic/"
+ "industrialCamera/" + "industrialCamera/"
+ street.getPlcId() + "/" + street.getPlcId() + "/"
+ checkLog.getLotnum() + "/" + currentDate.format(formatter) + "/"
+ checkLog.getId() + "/" + checkLog.getRow() + "-"
+ checkLog.getRow() + "/" + checkLog.getColumn() + "-"
+ checkLog.getColumn() + "/"
+ checkLog.getDirection().toString() + "/"; + checkLog.getDirection().toString() + "/";
//结果 //结果
String filePath = path2D + street.getIndustrialCamera() + ".jpeg"; String filePath = path2D + street.getIndustrialCamera() + ".jpeg";
OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, 1, cmdCode); OrderInfo orderInfo = new OrderInfo(street, plcCmdInfo, 1, cmdCode);
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(), plcCmdInfo.getLeftRight1(), orderInfo.getSeparation(), orderInfo.getRow(), orderInfo.getColumn());
String scanCode = null; String scanCode = null;
//货物使用球机扫码 //货物使用球机扫码
@ -799,6 +810,8 @@ public class PlcService {
} }
checkLog.setStatus(status); checkLog.setStatus(status);
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(), plcCmdInfo.getLeftRight1(), orderInfo.getSeparation(), orderInfo.getRow(), orderInfo.getColumn());
checkLogMapper.updateById(checkLog); checkLogMapper.updateById(checkLog);
if (stock == null) { if (stock == null) {
stock = Stock.builder() stock = Stock.builder()
@ -816,9 +829,7 @@ public class PlcService {
.status(status) .status(status)
.checkPic(path) .checkPic(path)
.preoperationPic(filePath) .preoperationPic(filePath)
.statusVision(checkLog.getStatusVision())
.count(checkLog.getCount())
.category(checkLog.getCategory())
.exportTime(LocalDateTime.now()).build(); .exportTime(LocalDateTime.now()).build();
stockMapper.insert(stock); stockMapper.insert(stock);
} else { } else {
@ -827,9 +838,6 @@ public class PlcService {
stock.setExportTime(LocalDateTime.now()); stock.setExportTime(LocalDateTime.now());
stock.setCheckPic(path); stock.setCheckPic(path);
stock.setStatusVision(checkLog.getStatusVision());
stock.setCount(checkLog.getCount());
stock.setCategory(checkLog.getCategory());
stock.setCheckNum(plcCmdInfo.getOrderNum()); stock.setCheckNum(plcCmdInfo.getOrderNum());
stock.setTrayCode(checkLog.getTrayCode()); stock.setTrayCode(checkLog.getTrayCode());
stock.setWmsTrayCode(wmsTrayCode); stock.setWmsTrayCode(wmsTrayCode);
@ -927,27 +935,8 @@ public class PlcService {
} }
} else if (type == 4) { } else if (type == 4) {
TransmissionPojo transmissionPojo = new TransmissionPojo(checkLog, street); TransmissionPojo transmissionPojo = new TransmissionPojo(checkLog, street);
if (ClientChanel.get(plcCmdInfo.getPlcId()) != null) {
ClientChanel.get(plcCmdInfo.getPlcId()).writeAndFlush(transmissionPojo.toString(TransmissionType.ST));
} else {
log.error("未找到对应plc" + transmissionPojo.toString());
}
//取货完成进行拍照 //取货完成进行拍照
try { getPhotoDelayExecutor.communicationFactory(street.getPlcId(), transmissionPojo.toString(TransmissionType.GPS), configProperties.getQueueSpanTime(), transmissionPojo, checkLog);
Thread.sleep(50L);
//不为其他状态进入队列
if (lock.tryLock()) {
//
getPhotoDelayExecutor.communicationFactory(street.getPlcId(), transmissionPojo.toString(TransmissionType.GPS), configProperties.getQueueSpanTime(), transmissionPojo, checkLog);
}
} catch (InterruptedException e) {
log.error("取图命令 error", e);
} finally {
lock.unlock();
log.info("盘点完成");
}
} }
if (checkLog.getTrayCode() != null && !"".equals(checkLog.getTrayCode())) { if (checkLog.getTrayCode() != null && !"".equals(checkLog.getTrayCode())) {

@ -26,7 +26,9 @@ import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -408,21 +410,30 @@ public class StockService {
Street street = streetMapper.selectById(stock.getStreetId()); 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")); LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
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 1"));
if (stockLogs.size() == 1) { if (stockLogs.size() == 1) {
stock.setOveroperationPic(stockLogs.get(0).getPic()); stock.setOveroperationPic(stockLogs.get(0).getPic());
} else if (stockLogs.size() == 2) {
stock.setOveroperationPic(stockLogs.get(0).getPic());
} }
String path2D = "http://" + street.getPlcIp() + ":8099/api/"
currentDate =stock.getExportTime().toLocalDate();
String path2D = "http://" + street.getPlcIp() + ":9007/api/pic/"
+ "industrialCamera/" + "industrialCamera/"
+ street.getPlcId() + "/" + street.getPlcId() + "/"
+ stock.getLotnum() + "/" + currentDate.format(formatter) + "/"
+ stock.getId() + "/" + stock.getRow() + "-"
+ stock.getRow() + "/" + stock.getColumn() + "-"
+ stock.getColumn() + "/" + stock.getDirection().toString() + "-";
+ stock.getDirection().toString() + "/";
//结果 //结果
String filePath = path2D + street.getIndustrialCamera() + ".jpeg"; String filePath = path2D + street.getIndustrialCamera() + ".jpeg";
stock.setPreoperationPic(filePath); stock.setPreoperationPic(filePath);
@ -437,6 +448,18 @@ public class StockService {
return stock; return stock;
} }
public static void main(String[] args) {
;
String currentDate = "2024-09-11 12:38:53";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 解析字符串为 LocalDateTime
LocalDateTime dateTime = LocalDateTime.parse(currentDate, formatter);
System.out.println( dateTime.format(formatter1));
}
public Stock nextOne(Long id) { public Stock nextOne(Long id) {
QueryWrapper<Stock> stockQueryWrapper = new QueryWrapper<>(); QueryWrapper<Stock> stockQueryWrapper = new QueryWrapper<>();

File diff suppressed because one or more lines are too long

@ -16,8 +16,8 @@ public class PointCloudProcessor {
public static void main(String[] args) { public static void main(String[] args) {
PcdPojo pojo = new PcdPojo(); PcdPojo pojo = new PcdPojo();
pojo.setPcd1("E:\\127.pcd"); pojo.setPcd1("D:\\WeChet\\WeChat Files\\wxid_ttkf0xgmyihv22\\FileStorage\\File\\2024-09\\8-6-2-L.pcd");
pojo.setPcd2("E:\\1-8-2-R.pcd"); pojo.setPcd2("D:\\WeChet\\WeChat Files\\wxid_ttkf0xgmyihv22\\FileStorage\\File\\2024-09\\369.pcd");
pojo.setConfigPath("E:\\D91FCF1FAB3568DB.json"); pojo.setConfigPath("E:\\D91FCF1FAB3568DB.json");
double i = similarity(pojo,10); double i = similarity(pojo,10);
System.out.println("111 "+i); System.out.println("111 "+i);

@ -41,8 +41,9 @@ public class GetPhotoDelayExecutor {
//GetPhotoDelayExecutor.addCameraDelayTask( plcId, getPhotoCommand, time, transmissionPojo); //GetPhotoDelayExecutor.addCameraDelayTask( plcId, getPhotoCommand, time, transmissionPojo);
//视觉 //视觉
//保存数据 //保存数据
log.info("视觉请求:"+transmissionPojo.toString());
transmissionPojo = plcService.visualInventoryHttp(transmissionPojo); transmissionPojo = plcService.visualInventoryHttp(transmissionPojo);
plcService.visualCalculationResults(transmissionPojo,checkLog); //plcService.visualCalculationResults(transmissionPojo,checkLog);
//发送给上位机 //发送给上位机
KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E"); KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E");
ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); ksecInfo.getData().setTypeNum(transmissionPojo.getCategory());

@ -42,6 +42,8 @@ public class KsecDataInfo {
private String typeNum; private String typeNum;
private String matid;
private Integer quantity; private Integer quantity;
private Integer checkRlt; private Integer checkRlt;

@ -100,6 +100,9 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
if(dataInfo.getToDirection()!=null){ if(dataInfo.getToDirection()!=null){
dataInfo.setToDirection(dataInfo.getToDirection()==1?2:1); dataInfo.setToDirection(dataInfo.getToDirection()==1?2:1);
} }
if(dataInfo.getMatid() != null){
dataInfo.setTypeNum(dataInfo.getMatid());
}
LotnumConvert lotnumConvert = new LotnumConvert(dataInfo.getLotnum()); LotnumConvert lotnumConvert = new LotnumConvert(dataInfo.getLotnum());
String lotnum = lotnumConvert.getLotnum(); String lotnum = lotnumConvert.getLotnum();
dataInfo.setLotnum(lotnum); dataInfo.setLotnum(lotnum);

Loading…
Cancel
Save