调试修改

main
judy 2 years ago
parent efdfab4f2b
commit d51cf00c07
  1. 115
      shkj-wms/src/main/java/com/shkj/wcs/plc/PlcEventTask.java
  2. 18
      shkj-wms/src/main/java/com/shkj/wcs/plc/PlcInit.java
  3. 64
      shkj-wms/src/main/java/com/shkj/wcs/third/stacker/StkCallUtil.java
  4. 2
      shkj-wms/src/main/java/com/shkj/wms/service/impl/BusinOutInPlanServiceImpl.java
  5. 2
      shkj-wms/src/main/java/com/shkj/wms/service/impl/SysThirdExceptionRequestServiceImpl.java
  6. 2
      shkj-wms/src/main/java/com/shkj/wms/vo/PlanOrderLocationVo.java
  7. 1
      shkj-wms/src/main/resources/mapper/wms/BaseContainerMapper.xml

@ -97,7 +97,7 @@ public class PlcEventTask {
@Autowired @Autowired
PlcInit plcInit; PlcInit plcInit;
// @Scheduled(fixedDelay = 8000) @Scheduled(fixedDelay = 8000)
public void init() { public void init() {
//查询需要连接的PLC,初始化连接对象 //查询需要连接的PLC,初始化连接对象
List<WcsPlcConnectVo> plcList = iWcsPlcConnectService.selectWcsPlcConnectList(new WcsPlcConnect().setIsActive("1")); List<WcsPlcConnectVo> plcList = iWcsPlcConnectService.selectWcsPlcConnectList(new WcsPlcConnect().setIsActive("1"));
@ -107,11 +107,11 @@ public class PlcEventTask {
} }
for (WcsPlcConnectVo conn : plcList) { for (WcsPlcConnectVo conn : plcList) {
if (conn.getPlcIp().contains("150.154")){ if (conn.getPlcIp().contains("1.20")){
plcTask(plcInit.getPlcOperate_stk(), conn, conn.getPointTables()); plcTask(plcInit.getPlcOperate_stk(), conn, conn.getPointTables());
} }
if (conn.getPlcIp().contains("150.150")){ if (conn.getPlcIp().contains("1.10")){
plcTask(plcInit.getPlcOperate_dps(), conn, conn.getPointTables()); plcTask(plcInit.getPlcOperate_dps(), conn, conn.getPointTables());
} }
} }
@ -119,7 +119,7 @@ public class PlcEventTask {
// @Scheduled(fixedDelay = 4000) @Scheduled(fixedDelay = 4000)
public void writePlcheartbeat(){ public void writePlcheartbeat(){
//根据连接的plcId获取属性 //根据连接的plcId获取属性
PlcOperate plcOperate = plcInit.getPlcOperate_dps(); PlcOperate plcOperate = plcInit.getPlcOperate_dps();
@ -350,7 +350,7 @@ public class PlcEventTask {
twoAllotAddress = plcProperty.getAddress(); twoAllotAddress = plcProperty.getAddress();
} else if (pointType.equals("oneAllotTask")) { } else if (pointType.equals("oneAllotTask")) {
oneAllotTaskId = plcProperty.getAddress(); oneAllotTaskId = plcProperty.getAddress();
oneAllotTaskId = plcProperty.getValueType(); oneAllotTaskIdVt = plcProperty.getValueType();
} else if (pointType.equals("twoAllotTask")) { } else if (pointType.equals("twoAllotTask")) {
twoAllotTaskId = plcProperty.getAddress(); twoAllotTaskId = plcProperty.getAddress();
twoAllotTaskIdVt = plcProperty.getValueType(); twoAllotTaskIdVt = plcProperty.getValueType();
@ -423,7 +423,7 @@ public class PlcEventTask {
cargoHeight = data.getType();//获取托盘或模具类型 cargoHeight = data.getType();//获取托盘或模具类型
}else { }else {
redisTemplate.opsForValue().set(RedisConstant.redisPutInExeMsg+orderResult.getMsg(),orderResult.getMsg()); redisTemplate.opsForValue().set(RedisConstant.redisPutInExeMsg+orderResult.getMsg(),orderResult.getMsg());
log.error("获取任务信息失败:"+orderResult.getMsg()+"托盘条码:"+barcodeValue); log.info("获取任务信息失败:"+orderResult.getMsg()+"托盘条码:"+barcodeValue);
//回填任务号 //回填任务号
Map<String, Boolean> writeMap = new HashMap<>(1); Map<String, Boolean> writeMap = new HashMap<>(1);
writeMap.put(oneEcsErrExitVT, true); writeMap.put(oneEcsErrExitVT, true);
@ -508,7 +508,7 @@ public class PlcEventTask {
Map<String, Long> writeMap = new HashMap<>(1); Map<String, Long> writeMap = new HashMap<>(1);
writeMap.put(twoAllotTaskIdVt, taskId); writeMap.put(twoAllotTaskIdVt, taskId);
Map<String, Object> allMap = new HashMap<>(1); Map<String, Object> allMap = new HashMap<>(1);
allMap.put(oneAllotTaskId, writeMap); allMap.put(twoAllotTaskId, writeMap);
Map<String, String> cargoHeightMap = new HashMap<>(1); Map<String, String> cargoHeightMap = new HashMap<>(1);
cargoHeightMap.put(twoHignTypeVT, cargoHeight); cargoHeightMap.put(twoHignTypeVT, cargoHeight);
@ -649,7 +649,7 @@ public class PlcEventTask {
return; return;
} }
//执行dps任务,给堆垛机下发命令 //执行dps任务,给堆垛机下发命令
dpsTask(taskId) ; dpsTask(taskId,1) ;
} }
//2楼是否请求入库 //2楼是否请求入库
if (pointMap.containsKey(twoReqPutin) && Boolean.valueOf(pointMap.get(twoReqPutin).toString())) { if (pointMap.containsKey(twoReqPutin) && Boolean.valueOf(pointMap.get(twoReqPutin).toString())) {
@ -661,7 +661,7 @@ public class PlcEventTask {
return; return;
} }
//执行dps任务,给堆垛机下发命令 //执行dps任务,给堆垛机下发命令
dpsTask(taskId) ; dpsTask(taskId,2) ;
} }
} }
}catch (Exception e){ }catch (Exception e){
@ -694,7 +694,7 @@ public class PlcEventTask {
for (WcsPlcProperty wcsPlcProperty : propertyList) { for (WcsPlcProperty wcsPlcProperty : propertyList) {
if (wcsPlcProperty.getPointType().equals("4")) { if (wcsPlcProperty.getPointType().equals("4")) {
readfinishPoint = wcsPlcProperty.getAddress(); readfinishPoint = wcsPlcProperty.getAddress();
} else if (wcsPlcProperty.getPointType().equals("101")) { } else if (wcsPlcProperty.getPointType().equals("111")) {
readTaskPoint = wcsPlcProperty.getAddress(); readTaskPoint = wcsPlcProperty.getAddress();
} }
} }
@ -764,7 +764,7 @@ public class PlcEventTask {
* @param taskId * @param taskId
* @return * @return
*/ */
public Boolean dpsTask(Long taskId){ public Boolean dpsTask(Long taskId,Integer reqLayer){
//下发任务时,先查询是否有正在执行的入库任务或出库任务,如果有,则不下发入库任务 //下发任务时,先查询是否有正在执行的入库任务或出库任务,如果有,则不下发入库任务
Object taskInId = redisTemplate.opsForValue().get(RedisConstant.redisTaskIn); Object taskInId = redisTemplate.opsForValue().get(RedisConstant.redisTaskIn);
@ -773,6 +773,8 @@ public class PlcEventTask {
return false; return false;
} }
Object taskOutId = redisTemplate.opsForValue().get(RedisConstant.redisTaskOut); Object taskOutId = redisTemplate.opsForValue().get(RedisConstant.redisTaskOut);
if (taskOutId !=null ){ if (taskOutId !=null ){
log.info("有出库任务在执行,无法下发入库任务:"+taskOutId); log.info("有出库任务在执行,无法下发入库任务:"+taskOutId);
@ -808,16 +810,17 @@ public class PlcEventTask {
String toLayerValueType=""; String toLayerValueType="";
String plcFromRow = ""; String plcFromRow = "";
String FromRowValueType=""; String fromRowValueType="";
String plcFromColumn = ""; String plcFromColumn = "";
String FromColumnValueType = ""; String fromColumnValueType = "";
String plcFromLayer = ""; String plcFromLayer = "";
String FromLayerValueType=""; String fromLayerValueType="";
String plcPlatform="";
String plcPlatformValueType="";
String plcOrderType = ""; String plcOrderType = "";
String plcOrderTypeValue = ""; String plcOrderTypeValue = "";
//启动设备
String plcStartEq = "";
String plcStartEqValueType = "";
//堆垛机完成状态 //堆垛机完成状态
String readfinish =""; String readfinish ="";
@ -835,13 +838,16 @@ public class PlcEventTask {
taskIdvalueType = stkProperty.getValueType(); taskIdvalueType = stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("104")) { } else if (stkProperty.getPointType().equals("104")) {
plcFromRow = stkProperty.getAddress(); plcFromRow = stkProperty.getAddress();
FromRowValueType = stkProperty.getValueType(); fromRowValueType = stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("103")) {
plcPlatform = stkProperty.getAddress();
plcPlatformValueType = stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("105")) { } else if (stkProperty.getPointType().equals("105")) {
plcFromColumn = stkProperty.getAddress(); plcFromColumn = stkProperty.getAddress();
FromColumnValueType=stkProperty.getValueType(); fromColumnValueType=stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("106")) { } else if (stkProperty.getPointType().equals("106")) {
plcFromLayer = stkProperty.getAddress(); plcFromLayer = stkProperty.getAddress();
FromLayerValueType=stkProperty.getValueType(); fromLayerValueType=stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("108")) { } else if (stkProperty.getPointType().equals("108")) {
plcToRow = stkProperty.getAddress(); plcToRow = stkProperty.getAddress();
toRowValueType = stkProperty.getValueType(); toRowValueType = stkProperty.getValueType();
@ -854,9 +860,6 @@ public class PlcEventTask {
} else if (stkProperty.getPointType().equals("102")) { } else if (stkProperty.getPointType().equals("102")) {
plcOrderType = stkProperty.getAddress(); plcOrderType = stkProperty.getAddress();
plcOrderTypeValue=stkProperty.getValueType(); plcOrderTypeValue=stkProperty.getValueType();
}else if (stkProperty.getPointType().equals(PlcPropertyEnum.twentythree.getValue())){
plcStartEq=stkProperty.getAddress();
plcStartEqValueType=stkProperty.getValueType();
}else if (stkProperty.getPointType().equals("4")) { }else if (stkProperty.getPointType().equals("4")) {
readfinish = stkProperty.getAddress(); readfinish = stkProperty.getAddress();
readfinishValueType=stkProperty.getValueType(); readfinishValueType=stkProperty.getValueType();
@ -876,49 +879,49 @@ public class PlcEventTask {
} }
} }
Integer stkRunV = 0; Boolean stkRunV = false;
if (pointMap.containsKey(stkRun)) { if (pointMap.containsKey(stkRun)) {
stkRunV = Integer.valueOf(pointMap.get(stkRun).toString()); stkRunV = Boolean.valueOf(pointMap.get(stkRun).toString());
} }
log.info("堆垛机运行状态:"+stkRunV); log.info("堆垛机运行状态:"+stkRunV);
if (stkRunV!=1){ if (!stkRunV){
log.info("请求入库时,堆垛机尚未运行"); log.info(taskId+"请求入库时,堆垛机尚未运行");
return false; return false;
} }
Integer stkAutoManualV=0; Boolean stkAutoManualV=null;
if (pointMap.containsKey(stkAutoManual)) { if (pointMap.containsKey(stkAutoManual)) {
stkAutoManualV = Integer.valueOf(pointMap.get(stkAutoManual).toString()); stkAutoManualV = Boolean.valueOf(pointMap.get(stkAutoManual).toString());
} }
log.info("堆垛机自动状态:"+stkAutoManualV); log.info(taskId+"堆垛机自动状态:"+stkAutoManualV);
if(stkAutoManualV ==0 ){ if(!stkAutoManualV ){
log.info("请求入库时,堆垛机手动状态"); log.info(taskId+"请求入库时,堆垛机手动状态");
return false; return false;
} }
Integer stkGroundV= 0; Boolean stkGroundV= false;
if (pointMap.containsKey(stkGround)) { if (pointMap.containsKey(stkGround)) {
stkGroundV = Integer.valueOf(pointMap.get(stkGround).toString()); stkGroundV = Boolean.valueOf(pointMap.get(stkGround).toString());
} }
log.info("地面柜自动状态:"+stkGroundV); log.info(taskId+"地面柜自动状态:"+stkGroundV);
if(stkGroundV==0){ if(!stkGroundV){
log.info("请求入库时,堆垛机地面柜手动状态"); log.info(taskId+"请求入库时,堆垛机地面柜手动状态");
return false; return false;
} }
Integer stkidleV = 0; Boolean stkidleV = false;
if (pointMap.containsKey(stkidle)) { if (pointMap.containsKey(stkidle)) {
stkidleV = Integer.valueOf(pointMap.get(stkidle).toString()); stkidleV = Boolean.valueOf(pointMap.get(stkidle).toString());
} }
log.info("堆垛机是状态:"+stkidleV); log.info(taskId+"堆垛机是状态:"+stkidleV);
//1空闲 0繁忙 //1空闲 0繁忙
if(stkidleV==0){ if(!stkidleV){
log.info("请求入库时,堆垛机繁忙"); log.info(taskId+"请求入库时,堆垛机繁忙");
return false; return false;
} }
//给堆垛机写命令 //给堆垛机写命令
Map<String, Object> allMap = new HashMap<>(1); Map<String, Object> allMap = new HashMap<>(1);
Map<String, Object> plcTaskIdMap = new HashMap<>(1); Map<String, Object> plcTaskIdMap = new HashMap<>(1);
plcTaskIdMap.put(taskIdvalueType, taskId); plcTaskIdMap.put(taskIdvalueType, taskId);
@ -936,37 +939,37 @@ public class PlcEventTask {
Map<String, Object> plcOrderTypeMap = new HashMap<>(1); Map<String, Object> plcOrderTypeMap = new HashMap<>(1);
plcOrderTypeMap.put(plcOrderTypeValue, 1); plcOrderTypeMap.put(plcOrderTypeValue, 1);
allMap.put(plcOrderType, plcOrderTypeMap); allMap.put(plcOrderType, plcOrderTypeMap);
Map<String, Object> plcFromRowMap = new HashMap<>(1); /* Map<String, Object> plcFromRowMap = new HashMap<>(1);
plcFromRowMap.put(FromRowValueType, "1"); plcFromRowMap.put(fromRowValueType, fromRow);
allMap.put(plcFromRow, plcFromRowMap); allMap.put(plcFromRow, plcFromRowMap);
Map<String, Object> plcFromColumnMap = new HashMap<>(1); Map<String, Object> plcFromColumnMap = new HashMap<>(1);
plcFromColumnMap.put(FromColumnValueType, "22"); plcFromColumnMap.put(fromColumnValueType, fromColumn);
allMap.put(plcFromColumn, plcFromColumnMap); allMap.put(plcFromColumn, plcFromColumnMap);
Map<String, Object> plcFromLayerMap = new HashMap<>(1); Map<String, Object> plcFromLayerMap = new HashMap<>(1);
plcFromLayerMap.put(FromLayerValueType, "1"); plcFromLayerMap.put(fromLayerValueType, fromLayer);
allMap.put(plcFromLayer, plcFromLayerMap); allMap.put(plcFromLayer, plcFromLayerMap);*/
//启动设备
Map<String, Object> plcStartEqMap = new HashMap<>(1);
plcStartEqMap.put(plcStartEqValueType, true);
allMap.put(plcStartEq, plcStartEqMap);
//入库起始站台
Map<String, Object> plcPlatformMap = new HashMap<>(1);
plcPlatformMap.put(plcPlatformValueType,reqLayer);
allMap.put(plcPlatform,plcPlatformMap);
//堆垛机完成状态,下命令时写入0,未完成状态 //堆垛机完成状态,下命令时写入0,未完成状态
Map<String, Object> readfinishMap = new HashMap<>(1); Map<String, Object> readfinishMap = new HashMap<>(1);
readfinishMap.put(readfinishValueType, 0); readfinishMap.put(readfinishValueType, 0);
allMap.put(readfinish, readfinishMap); allMap.put(readfinish, readfinishMap);
log.info("请求入库:任务下发之前"+JsonUtil.toJSONString(allMap));
log.info(taskId+"请求入库:任务下发之前"+JsonUtil.toJSONString(allMap));
if (plcReadAndWrite.execWrite(stkOperate, JsonUtil.toJSONString(allMap))) { if (plcReadAndWrite.execWrite(stkOperate, JsonUtil.toJSONString(allMap))) {
log.info("请求入库,任务下发成功:"+taskId); log.info(taskId+"请求入库,任务下发成功:");
//请求成功,记录已下发 //请求成功,记录已下发
redisTemplate.opsForValue().set(RedisConstant.redisReqWare + taskId, taskId,24,TimeUnit.HOURS); redisTemplate.opsForValue().set(RedisConstant.redisReqWare + taskId, taskId,24,TimeUnit.HOURS);
//请求分配任务ID dps //请求分配任务ID dps
redisTemplate.delete(RedisConstant.redisContainer+taskId); redisTemplate.delete(RedisConstant.redisContainer+taskId);
return true; return true;
}else { }else {
log.info("请求入库任务下发失败"); log.info(taskId+"请求入库任务下发失败");
return false; return false;
} }
} }
} }

@ -32,7 +32,7 @@ public class PlcInit {
RedisTemplate redisTemplate; RedisTemplate redisTemplate;
private ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); private ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
//@PostConstruct @PostConstruct
public void init(){ public void init(){
log.info("初始化连接对象"); log.info("初始化连接对象");
executorService.scheduleWithFixedDelay( executorService.scheduleWithFixedDelay(
@ -50,23 +50,23 @@ public class PlcInit {
for (WcsPlcConnectVo conn : plcList) { for (WcsPlcConnectVo conn : plcList) {
redisTemplate.opsForValue().set(RedisConstant.redisPlcConnect+conn.getDevCode(),conn); redisTemplate.opsForValue().set(RedisConstant.redisPlcConnect+conn.getDevCode(),conn);
PlcHelper plc = new PlcHelper(conn.getPlcType(), conn.getPlcIp(), conn.getPlcFactory(), conn.getPort()); PlcHelper plc = new PlcHelper(conn.getPlcType(), conn.getPlcIp(), conn.getPlcFactory(), conn.getPort());
if (conn.getPlcIp().contains("150.154")){ if (conn.getPlcIp().contains("1.20")){
plcOperate_stk = plc.getAutomation(); plcOperate_stk = plc.getAutomation();
OperateResult connect = plcOperate_stk.connect(); OperateResult connect = plcOperate_stk.connect();
if (connect.IsSuccess){ if (connect.IsSuccess){
log.info(conn.getPlcIp()+"stk初始化成功"); log.info(conn.getPlcIp()+"stk连接成功");
}else { }else {
log.info(conn.getPlcIp()+"stk初始化失败"); log.info(conn.getPlcIp()+"stk连接失败");
} }
} }
if (conn.getPlcIp().contains("150.150")){ if (conn.getPlcIp().contains("1.10")){
plcOperate_dps = plc.getAutomation(); plcOperate_dps = plc.getAutomation();
OperateResult connect = plcOperate_dps.connect(); OperateResult connect = plcOperate_dps.connect();
if (connect.IsSuccess){ if (connect.IsSuccess){
log.info(conn.getPlcIp()+"dps初始化成功"); log.info(conn.getPlcIp()+"dps连接成功");
}else { }else {
log.info(conn.getPlcIp()+"dps初始化失败"); log.info(conn.getPlcIp()+"dps连接失败");
} }
} }
} }
@ -90,10 +90,10 @@ public class PlcInit {
public PlcOperate getPlcOperateByIp(String plcIp){ public PlcOperate getPlcOperateByIp(String plcIp){
if (plcIp.contains("150.154")){ if (plcIp.contains("1.20")){
return plcOperate_stk; return plcOperate_stk;
} }
if (plcIp.contains("150.150")){ if (plcIp.contains("1.10")){
return plcOperate_dps; return plcOperate_dps;
} }
return null; return null;

@ -70,13 +70,13 @@ public class StkCallUtil {
//下发任务时,先查询是否有正在执行的入库任务,如果有,则不下发出库任务 //下发任务时,先查询是否有正在执行的入库任务,如果有,则不下发出库任务
Object taskInId = redisTemplate.opsForValue().get(RedisConstant.redisTaskIn); Object taskInId = redisTemplate.opsForValue().get(RedisConstant.redisTaskIn);
if (taskInId !=null ){ if (taskInId !=null ){
log.error("有入库任务在执行,无法下发出库任务:"+taskInId); log.info("有入库任务在执行,无法下发出库任务:"+taskInId);
return Result.err().msg("有入库任务在执行,无法下发出库任务"); return Result.err().msg("有入库任务在执行,无法下发出库任务");
} }
Object taskOutId = redisTemplate.opsForValue().get(RedisConstant.redisTaskOut); Object taskOutId = redisTemplate.opsForValue().get(RedisConstant.redisTaskOut);
if (taskOutId !=null ){ if (taskOutId !=null ){
log.error("有出库任务在执行,无法下发出库任务:"+taskOutId); log.info("有出库任务在执行,无法下发出库任务:"+taskOutId);
return Result.err().msg("有出库任务在执行,无法下发出库任"); return Result.err().msg("有出库任务在执行,无法下发出库任");
} }
SysThirdExceptionRequest one = sysThirdExceptionRequestService.getOneByOrderNo(stkMoveBo.getTaskId().toString()); SysThirdExceptionRequest one = sysThirdExceptionRequestService.getOneByOrderNo(stkMoveBo.getTaskId().toString());
@ -90,7 +90,7 @@ public class StkCallUtil {
String fromLayer = stkMoveBo.getFromLayer(); String fromLayer = stkMoveBo.getFromLayer();
String fromColumn = stkMoveBo.getFromColumn(); String fromColumn = stkMoveBo.getFromColumn();
String fromRow = stkMoveBo.getFromRow(); String fromRow = stkMoveBo.getFromRow();
log.info("出库对应的排层列:"+fromRow+fromLayer+fromColumn); log.info(stkMoveBo.getTaskId()+"出库对应的排层列:"+fromRow+fromLayer+fromColumn);
//获取堆垛机 //获取堆垛机
WcsPlcConnectQueryBo plcConnect = new WcsPlcConnectQueryBo(); WcsPlcConnectQueryBo plcConnect = new WcsPlcConnectQueryBo();
plcConnect.setDevType("1"); plcConnect.setDevType("1");
@ -142,7 +142,7 @@ public class StkCallUtil {
log.info("1楼是否允许出库::"+oneDpsidle+" 出库的值:"+oneDpsidleV); log.info("1楼是否允许出库::"+oneDpsidle+" 出库的值:"+oneDpsidleV);
log.info("2楼是否允许出库::"+twoDpsidle+" 出库的值:"+twoDpsidleV); log.info("2楼是否允许出库::"+twoDpsidle+" 出库的值:"+twoDpsidleV);
Integer layer = one.getLayer(); Integer layer = 1;
if (layer==1){ if (layer==1){
//false不允许出库 //false不允许出库
if (!Boolean.valueOf(oneDpsidleV)){ if (!Boolean.valueOf(oneDpsidleV)){
@ -179,6 +179,10 @@ public class StkCallUtil {
String finishPoint=""; String finishPoint="";
String finishPointVT=""; String finishPointVT="";
//站台
String plcPlatform="";
String plcPlatformValueType="";
String stkAutoManual="", stkGround="",stkidle="", stkRun=""; String stkAutoManual="", stkGround="",stkidle="", stkRun="";
for (WcsPlcProperty stkProperty : propertyList) { for (WcsPlcProperty stkProperty : propertyList) {
//获取要堆垛机要写入的点位 //获取要堆垛机要写入的点位
@ -194,6 +198,9 @@ public class StkCallUtil {
} else if (stkProperty.getPointType().equals("106")) { } else if (stkProperty.getPointType().equals("106")) {
plcFromLayer = stkProperty.getAddress(); plcFromLayer = stkProperty.getAddress();
FromLayerValueType=stkProperty.getValueType(); FromLayerValueType=stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("107")) {
plcPlatform = stkProperty.getAddress();
plcPlatformValueType = stkProperty.getValueType();
} else if (stkProperty.getPointType().equals("108")) { } else if (stkProperty.getPointType().equals("108")) {
plcToRow = stkProperty.getAddress(); plcToRow = stkProperty.getAddress();
toRowValueType = stkProperty.getValueType(); toRowValueType = stkProperty.getValueType();
@ -229,45 +236,47 @@ public class StkCallUtil {
Thread.sleep(2000); Thread.sleep(2000);
Integer stkRunV = 0; Boolean stkRunV = false;
if (stkPointMap.containsKey(stkRun)) { if (stkPointMap.containsKey(stkRun)) {
stkRunV = Integer.valueOf(stkPointMap.get(stkRun).toString()); stkRunV = Boolean.valueOf(stkPointMap.get(stkRun).toString());
} }
log.info("堆垛机运行状态:"+stkRunV); log.info("堆垛机运行状态:"+stkRunV);
if (stkRunV!=1){ if (!stkRunV){
log.info("堆垛机尚未运行:"+stkRunV);
return Result.err().msg("堆垛机尚未运行"); return Result.err().msg("堆垛机尚未运行");
} }
Integer stkAutoManualV=0; Boolean stkAutoManualV=false;
if (stkPointMap.containsKey(stkAutoManual)) { if (stkPointMap.containsKey(stkAutoManual)) {
stkAutoManualV = Integer.valueOf(stkPointMap.get(stkAutoManual).toString()); stkAutoManualV = Boolean.valueOf(stkPointMap.get(stkAutoManual).toString());
} }
log.info("堆垛机自动状态:"+stkAutoManualV); log.info("堆垛机自动状态:"+stkAutoManualV);
if(stkAutoManualV ==0 ){ if(!stkAutoManualV ){
log.info("堆垛机手动状态:"+stkAutoManualV);
return Result.err().msg("堆垛机手动状态"); return Result.err().msg("堆垛机手动状态");
} }
Integer stkGroundV= 0; Boolean stkGroundV= false;
if (stkPointMap.containsKey(stkGround)) { if (stkPointMap.containsKey(stkGround)) {
stkGroundV = Integer.valueOf(stkPointMap.get(stkGround).toString()); stkGroundV = Boolean.valueOf(stkPointMap.get(stkGround).toString());
} }
log.info("地面柜自动状态:"+stkGroundV); log.info("地面柜自动状态:"+stkGroundV);
if(stkGroundV==0){ if(!stkGroundV){
log.info("堆垛机地面柜手动状态:"+stkGroundV);
return Result.err().msg("堆垛机地面柜手动状态"); return Result.err().msg("堆垛机地面柜手动状态");
} }
Integer stkidleV = 0; Boolean stkidleV = false;
if (stkPointMap.containsKey(stkidle)) { if (stkPointMap.containsKey(stkidle)) {
stkidleV = Integer.valueOf(stkPointMap.get(stkidle).toString()); stkidleV = Boolean.valueOf(stkPointMap.get(stkidle).toString());
} }
log.info("堆垛机是状态:"+stkidleV); if(!stkidleV){
//1空闲 0繁忙 log.info("堆垛机繁忙:"+stkidleV);
if(stkidleV==0){
return Result.err().msg("堆垛机繁忙"); return Result.err().msg("堆垛机繁忙");
} }
if((!Boolean.valueOf(oneDpsidleV) || !Boolean.valueOf(twoDpsidleV)) && stkidleV == 0){ if((!Boolean.valueOf(oneDpsidleV) || !Boolean.valueOf(twoDpsidleV)) && !stkidleV){
return Result.err().msg("出库状态与堆垛机的状态都不可出库"); return Result.err().msg("出库状态与堆垛机的状态都不可出库");
}else{ }else{
log.info("出库状态与堆垛机的状态可出库one: "+Boolean.valueOf(oneDpsidleV)+" two:"+twoDpsidleV+" --"+stkidleV); log.info("出库状态与堆垛机的状态可出库one: "+Boolean.valueOf(oneDpsidleV)+" two:"+twoDpsidleV+" --"+stkidleV);
@ -277,15 +286,11 @@ public class StkCallUtil {
Map<String, Object> plcTaskIdMap = new HashMap<>(1); Map<String, Object> plcTaskIdMap = new HashMap<>(1);
plcTaskIdMap.put(taskIdvalueType, stkMoveBo.getTaskId()); plcTaskIdMap.put(taskIdvalueType, stkMoveBo.getTaskId());
allMap.put(plcTaskId, plcTaskIdMap); allMap.put(plcTaskId, plcTaskIdMap);
Map<String, Object> plcToRowMap = new HashMap<>(1);
plcToRowMap.put(toRowValueType, "1"); //出库目标站台
allMap.put(plcToRow, plcToRowMap); Map<String, Object> plcPlatformMap = new HashMap<>(1);
Map<String, Object> plcToColumnMap = new HashMap<>(1); plcPlatformMap.put(plcPlatformValueType,layer);
plcToColumnMap.put(toColumnValueType, "22"); allMap.put(plcPlatform,plcPlatformMap);
allMap.put(plcToColumn, plcToColumnMap);
Map<String, Object> plcToLayerMap = new HashMap<>(1);
plcToLayerMap.put(toLayerValueType, "1");
allMap.put(plcToLayer, plcToLayerMap);
Map<String, Object> plcOrderTypeMap = new HashMap<>(1); Map<String, Object> plcOrderTypeMap = new HashMap<>(1);
plcOrderTypeMap.put(plcOrderTypeValue, 2); plcOrderTypeMap.put(plcOrderTypeValue, 2);
@ -300,9 +305,6 @@ public class StkCallUtil {
plcFromLayerMap.put(FromLayerValueType, fromLayer); plcFromLayerMap.put(FromLayerValueType, fromLayer);
allMap.put(plcFromLayer, plcFromLayerMap); allMap.put(plcFromLayer, plcFromLayerMap);
Map<String, Object> plcStartEqMap = new HashMap<>(1);
plcStartEqMap.put(plcStartEqValueType, true);
allMap.put(plcStartEq, plcStartEqMap);
//堆垛机完成入库状态 //堆垛机完成入库状态
Map<String, Object> finishPointMap = new HashMap<>(1); Map<String, Object> finishPointMap = new HashMap<>(1);
finishPointMap.put(finishPointVT, 0); finishPointMap.put(finishPointVT, 0);

@ -1376,7 +1376,7 @@ public class BusinOutInPlanServiceImpl extends ServiceImpl<BusinOutInPlanMapper,
//堆垛机非自动完成状态后,把redis中的ID删除,代表此任务已经完成 //堆垛机非自动完成状态后,把redis中的ID删除,代表此任务已经完成
Object taskInId = redisTemplate.opsForValue().get(RedisConstant.redisTaskIn); Object taskInId = redisTemplate.opsForValue().get(RedisConstant.redisTaskIn);
if (taskInId !=null && String.valueOf(taskInId).equals(orderNo.toString())){ if (taskInId !=null && String.valueOf(taskInId).equals(orderNo.toString())){
log.error("手动处理入库时判断redis中的数据是否还存在,存在则删除,删除redis中的出库任务状态记录:",orderNo); log.info("手动处理入库时判断redis中的数据是否还存在,存在则删除,删除redis中的出库任务状态记录:",orderNo);
redisTemplate.delete(RedisConstant.redisTaskIn); redisTemplate.delete(RedisConstant.redisTaskIn);
} }

@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -191,6 +192,7 @@ public class SysThirdExceptionRequestServiceImpl extends ServiceImpl<SysThirdExc
* 做任务 定时任务 * 做任务 定时任务
*/ */
@Override @Override
@Scheduled(fixedDelay = 10000)
public void doTask() { public void doTask() {
LambdaQueryWrapper<SysThirdExceptionRequest> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysThirdExceptionRequest> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysThirdExceptionRequest::getStatus, ThirdApiStatusEnum.fail.getValue()); wrapper.eq(SysThirdExceptionRequest::getStatus, ThirdApiStatusEnum.fail.getValue());

@ -14,7 +14,7 @@ public class PlanOrderLocationVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 类型 1空托盘2货位3高货位 * 类型 1空托盘2货位7103货位910 4 货位1110
*/ */
private String type; private String type;

@ -73,6 +73,7 @@
<if test="containerCode != null and containerCode != ''"> <if test="containerCode != null and containerCode != ''">
AND ( AND (
LOWER(bc.container_code) LIKE LOWER(CONCAT('%',#{containerCode},'%')) LOWER(bc.container_code) LIKE LOWER(CONCAT('%',#{containerCode},'%'))
or LOWER(bc.container_name) LIKE LOWER(CONCAT('%',#{containerCode},'%'))
) )
</if> </if>
<if test="containerType != null"> <if test="containerType != null">

Loading…
Cancel
Save