盘点时无货物的情况

merge-requests/5/merge
yiming 4 years ago
parent 5f8823cc11
commit 66cf9819b5

@ -13,4 +13,12 @@ public class StreetVO extends Street {
private String lightSourceIp; private String lightSourceIp;
private Integer lightSourcePort; private Integer lightSourcePort;
private String leftSensorGunIp;
private Integer leftSensorGunPort;
private String rightSensorGunIp;
private Integer rightSensorGunPort;
} }

@ -489,6 +489,7 @@ public class PlcService {
if(configProperties.getScanCodeMode().getTray() == 2){ if(configProperties.getScanCodeMode().getTray() == 2){
//托盘使用sick扫码枪 //托盘使用sick扫码枪
if(configProperties.getSensor().getType() == 1){ if(configProperties.getSensor().getType() == 1){
SensorGun sensorGun = sensorService.getSensorByPlc(street.getId(),plcCmdInfo.getLeftRight1()); SensorGun sensorGun = sensorService.getSensorByPlc(street.getId(),plcCmdInfo.getLeftRight1());
if(sensorGun == null){ if(sensorGun == null){
trayCode = "识别异常"; trayCode = "识别异常";
@ -497,6 +498,18 @@ public class PlcService {
}else { }else {
trayCode = SickSocket.readOCR(sensorGun.getIp(),sensorGun.getPort()); trayCode = SickSocket.readOCR(sensorGun.getIp(),sensorGun.getPort());
log.info("sensor tray code:{}",trayCode); log.info("sensor tray code:{}",trayCode);
if("".equals(wmsTrayCode)){
//托盘码为空,无货物
//只要扫码枪未识别出条码,即认为盘点正确
if(StringUtils.isEmpty(trayCode) || trayCode.equals("NoRead")){
trayCode = "";
trayCheck = Boolean.TRUE;
}else {
trayCode = "识别异常";
trayCheck = Boolean.FALSE;
log.warn("sick ocr error:{}",trayCode);
}
}else {
if(StringUtils.isEmpty(trayCode) || trayCode.equals("NoRead")){ if(StringUtils.isEmpty(trayCode) || trayCode.equals("NoRead")){
trayCode = "识别异常"; trayCode = "识别异常";
trayCheck = Boolean.FALSE; trayCheck = Boolean.FALSE;
@ -505,6 +518,8 @@ public class PlcService {
trayCheck = wmsTrayCode.equals(trayCode); trayCheck = wmsTrayCode.equals(trayCode);
} }
} }
}
} }
} }
StockCheckRunnable stockCheckRunnable = new StockCheckRunnable(street,plcCmdInfo,cmdCode,stockMapper,path,checkLogMapper,configProperties.getScanCodeMode().getGoods(),wmsCode,wmsTrayCode,trayCode,trayCheck,configProperties); StockCheckRunnable stockCheckRunnable = new StockCheckRunnable(street,plcCmdInfo,cmdCode,stockMapper,path,checkLogMapper,configProperties.getScanCodeMode().getGoods(),wmsCode,wmsTrayCode,trayCode,trayCheck,configProperties);

@ -58,6 +58,17 @@ public class StockCheckRunnable implements Runnable {
Boolean codeCheck = Boolean.TRUE; Boolean codeCheck = Boolean.TRUE;
//货物使用球机扫码 //货物使用球机扫码
if(goodsScanCodeMode == 1){ if(goodsScanCodeMode == 1){
if("".equals(wmsCode)){
//空货物的处理
//如果系统货物为空,则只要扫码识别未出结果,就认为无货物
scanCode = BarcodeDetector.detectBestCodeUntilOK(configProperties.getSavePath().getMediaPath()+path,configProperties.getScanCodeMode().getGoodsCodeTypes());
if(StringUtils.isEmpty(scanCode)|| scanCode.equals("Unrecognized")){
codeCheck = Boolean.TRUE;
scanCode = "";
}else {
codeCheck = wmsCode.equals(scanCode);
}
}else {
scanCode = BarcodeDetector.detectBestCodeUntilOK(configProperties.getSavePath().getMediaPath()+path,configProperties.getScanCodeMode().getGoodsCodeTypes()); scanCode = BarcodeDetector.detectBestCodeUntilOK(configProperties.getSavePath().getMediaPath()+path,configProperties.getScanCodeMode().getGoodsCodeTypes());
if(StringUtils.isEmpty(scanCode)){ if(StringUtils.isEmpty(scanCode)){
log.error("row:{},cloumn:{}",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1()); log.error("row:{},cloumn:{}",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1());
@ -69,6 +80,8 @@ public class StockCheckRunnable implements Runnable {
} }
} }
}
log.info("code:{}",scanCode); log.info("code:{}",scanCode);
//核对异常 //核对异常

@ -5,9 +5,12 @@ 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.config.ConfigProperties;
import com.zhehekeji.web.entity.LightSource; import com.zhehekeji.web.entity.LightSource;
import com.zhehekeji.web.entity.SensorGun;
import com.zhehekeji.web.entity.Street; import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.LightSourceMapper; import com.zhehekeji.web.mapper.LightSourceMapper;
import com.zhehekeji.web.mapper.SensorGunMapper;
import com.zhehekeji.web.mapper.StreetMapper; import com.zhehekeji.web.mapper.StreetMapper;
import com.zhehekeji.web.pojo.street.StreetSearch; import com.zhehekeji.web.pojo.street.StreetSearch;
import com.zhehekeji.web.pojo.street.StreetType; import com.zhehekeji.web.pojo.street.StreetType;
@ -43,6 +46,10 @@ public class StreetService {
private LightSourceMapper lightSourceMapper; private LightSourceMapper lightSourceMapper;
@Resource @Resource
private StockService stockService; private StockService stockService;
@Resource
private ConfigProperties configProperties;
@Resource
private SensorGunMapper sensorGunMapper;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -76,6 +83,7 @@ public class StreetService {
} catch (DuplicateKeyException e) { } catch (DuplicateKeyException e) {
Assert.isTrue(false, "PLC ID已存在"); Assert.isTrue(false, "PLC ID已存在");
} }
if(configProperties.getServerMode().equals(0)){
StreetConn.init(street.getId(), street.getPlcId()); StreetConn.init(street.getId(), street.getPlcId());
Thread thread = new Thread(new Runnable() { Thread thread = new Thread(new Runnable() {
@Override @Override
@ -89,6 +97,7 @@ public class StreetService {
} }
}); });
thread.start(); thread.start();
}
if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null && streetVO.getLightSourcePort() != 0){ if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null && streetVO.getLightSourcePort() != 0){
LightSource lightSource = new LightSource(); LightSource lightSource = new LightSource();
lightSource.setStreetId(street.getId()); lightSource.setStreetId(street.getId());
@ -97,6 +106,7 @@ public class StreetService {
lightSourceMapper.insert(lightSource); lightSourceMapper.insert(lightSource);
} }
streetVO.setId(street.getId()); streetVO.setId(street.getId());
sensorGunConfig(streetVO,street.getId());
Thread thread2 = new Thread(new Runnable() { Thread thread2 = new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -216,6 +226,7 @@ public class StreetService {
lightSource.setIp(streetVO.getLightSourceIp()); lightSource.setIp(streetVO.getLightSourceIp());
lightSourceMapper.update(lightSource,new UpdateWrapper<LightSource>().eq("street_id",street.getId())); lightSourceMapper.update(lightSource,new UpdateWrapper<LightSource>().eq("street_id",street.getId()));
} }
sensorGunConfig(streetVO,street.getId());
Thread thread2 = new Thread(new Runnable() { Thread thread2 = new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -253,4 +264,26 @@ public class StreetService {
return streetMapper.list(); return streetMapper.list();
} }
public void sensorGunConfig(StreetVO streetVO,Integer streetId){
Map<String,Object> map = new HashMap<>();
map.put("street_id",streetId);
sensorGunMapper.deleteByMap(map);
if(!StringUtils.isEmpty(streetVO.getLeftSensorGunIp()) && streetVO.getLeftSensorGunPort() != null){
SensorGun sensorGun = new SensorGun();
sensorGun.setStreetId(streetId);
sensorGun.setDirection(1);
sensorGun.setIp(streetVO.getLeftSensorGunIp());
sensorGun.setPort(streetVO.getLeftSensorGunPort());
sensorGunMapper.insert(sensorGun);
}
if(!StringUtils.isEmpty(streetVO.getRightSensorGunIp()) && streetVO.getRightSensorGunPort() != null){
SensorGun sensorGun = new SensorGun();
sensorGun.setStreetId(streetId);
sensorGun.setDirection(2);
sensorGun.setIp(streetVO.getRightSensorGunIp());
sensorGun.setPort(streetVO.getRightSensorGunPort());
sensorGunMapper.insert(sensorGun);
}
}
} }

@ -19,7 +19,7 @@ spring:
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号
server: server:
port: 8100 port: 8099
#-------------- #--------------
# ------用户中心地址 # ------用户中心地址
userUrl: http://115.236.65.98:11001 userUrl: http://115.236.65.98:11001
@ -27,7 +27,7 @@ userUrl: http://115.236.65.98:11001
# ----默认摄像头的连接信息 # ----默认摄像头的连接信息
cameraConfig: cameraConfig:
# ------------球機選擇--- 0:利珀 1海康 # ------------球機選擇--- 0:利珀 1海康
cameraType: 0 cameraType: 1
cameraPassword: a1234567 cameraPassword: a1234567
cameraUser: admin cameraUser: admin
cameraPort: 8000 cameraPort: 8000
@ -68,7 +68,7 @@ sensor:
# -----goods 货物 # -----goods 货物
# 扫码模式 1球机扫码 2扫码枪 # 扫码模式 1球机扫码 2扫码枪
scanCodeMode: scanCodeMode:
tray: 0 tray: 2
goods: 1 goods: 1
goodsCodeTypes: goodsCodeTypes:
- 14 - 14

@ -19,7 +19,7 @@ spring:
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号
server: server:
port: 8100 port: 8099
#-------------- #--------------
# ------用户中心地址 # ------用户中心地址
userUrl: http://115.236.65.98:11001 userUrl: http://115.236.65.98:11001
@ -68,7 +68,7 @@ sensor:
# -----goods 货物 # -----goods 货物
# 扫码模式 1球机扫码 2扫码枪 # 扫码模式 1球机扫码 2扫码枪
scanCodeMode: scanCodeMode:
tray: 0 tray: 2
goods: 1 goods: 1
goodsCodeTypes: goodsCodeTypes:
- 14 - 14

@ -19,7 +19,7 @@ spring:
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号
server: server:
port: 8100 port: 8099
#-------------- #--------------
# ------用户中心地址 # ------用户中心地址
userUrl: http://115.236.65.98:11001 userUrl: http://115.236.65.98:11001

@ -3,11 +3,15 @@
<mapper namespace="com.zhehekeji.web.mapper.StreetMapper"> <mapper namespace="com.zhehekeji.web.mapper.StreetMapper">
<select id="list" parameterType="com.zhehekeji.web.pojo.street.StreetSearch" resultType="com.zhehekeji.web.pojo.street.StreetVO"> <select id="list" parameterType="com.zhehekeji.web.pojo.street.StreetSearch" resultType="com.zhehekeji.web.pojo.street.StreetVO">
select t.*,c1.name as camera1Name,c2.name as camera2Name,l.ip as lightSourceIp,l.port as lightSourcePort select t.*,c1.name as camera1Name,c2.name as camera2Name,l.ip as lightSourceIp,l.port as lightSourcePort,
s1.ip as leftSensorGunIp ,s1.port as leftSensorGunPort,
s2.ip as rightSensorGunIp ,s2.port as rightSensorGunPort
from street t from street t
left join light_source l on l.street_id = t.id left join light_source l on l.street_id = t.id
left join camera c1 on t.camera1_id = c1.id left join camera c1 on t.camera1_id = c1.id
left join camera c2 on t.camera2_id = c2.id left join camera c2 on t.camera2_id = c2.id
left join sensor_gun s1 on s1.street_id = t.id and s1.direction = 1
left join sensor_gun s2 on s2.street_id = t.id and s2.direction = 2
order by t.id desc order by t.id desc
</select> </select>

Loading…
Cancel
Save