|
@@ -24,7 +24,6 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import sun.security.krb5.internal.crypto.Des;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
@@ -82,7 +81,7 @@ public class TsTaskServiceImpl implements ITsTaskService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public synchronized TsTaskStateResponse confirmAnalysis(String tsOrder,String reqType, String agvNo) {
|
|
|
+ public synchronized TsTaskStateResponse confirmAnalysis(String tsOrder,String reqType, String agvNo) throws InterruptedException {
|
|
|
|
|
|
|
|
|
log.info("TS-天目取卸货申请------------->:TS任务号-{},状态-{},车号-{}",tsOrder,reqType,agvNo);
|
|
@@ -94,18 +93,24 @@ public class TsTaskServiceImpl implements ITsTaskService {
|
|
|
}
|
|
|
|
|
|
//取卸货编号 (1:取货申请 2:卸货申请)
|
|
|
- boolean b = true;
|
|
|
- /*if("1".equals(reqType)){
|
|
|
+ boolean b = false;
|
|
|
|
|
|
- b = plcConnectServiceRunner.getPlcServer(PLCConnectNameEnum.PACKING_MACHINE_1.getMetadata())
|
|
|
- .readBoolean(PLCEnum.PACKING_BLANK_1.getMetadata());
|
|
|
+ if("1".equals(reqType)){
|
|
|
+
|
|
|
+ //开启取货 是否允许
|
|
|
+ writePlcState(PLCEnum.PACKING_BLANK_2.getMetadata(), true);
|
|
|
+ Thread.sleep(500);
|
|
|
+ b = readPlcState(PLCEnum.PACKING_BLANK_3.getMetadata());
|
|
|
}else{
|
|
|
|
|
|
- b = plcConnectServiceRunner.getPlcServer(PLCConnectNameEnum.PACKING_MACHINE_1.getMetadata())
|
|
|
- .readBoolean(PLCEnum.PACKING_CALL_EMPTY_1.getMetadata());
|
|
|
- }*/
|
|
|
+ //开启卸货 是否允许
|
|
|
+ writePlcState(PLCEnum.PACKING_CALL_EMPTY_2.getMetadata(), true);
|
|
|
+ Thread.sleep(500);
|
|
|
+ b = readPlcState(PLCEnum.PACKING_CALL_EMPTY_3.getMetadata());
|
|
|
+ }
|
|
|
log.info("TsTaskServiceImpl---confirmAnalysis:申请PLC取卸货-" + JSON.toJSONString(b));
|
|
|
|
|
|
+
|
|
|
if(b){
|
|
|
return TsTaskStateResponse.success("申请PLC取卸货-可执行取卸货","");
|
|
|
}else{
|
|
@@ -180,10 +185,6 @@ public class TsTaskServiceImpl implements ITsTaskService {
|
|
|
wcsTask.setRemark("任务取货申请中!");
|
|
|
break;
|
|
|
case 4:
|
|
|
- if (wcsTask.getState() == 4) {
|
|
|
- log.info("不能重复取货!" + wcsTask.getTaskNo());
|
|
|
- return TsTaskStateResponse.error("不能重复取货!","");
|
|
|
- }
|
|
|
// 解锁起始库位
|
|
|
baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom()), Constant.WAREHOUSE_ID, "TS-TM");
|
|
|
// 将起始点库存移动到中间缓存位
|
|
@@ -192,25 +193,25 @@ public class TsTaskServiceImpl implements ITsTaskService {
|
|
|
if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()), wcsTask.getLocationFrom());
|
|
|
}
|
|
|
+
|
|
|
+ //关闭下料 任务生成和取货申请状态
|
|
|
+ if (wcsTask.getTaskType().equals(Constant.FLOW_CONFIG_ID.PM_XL.name())){
|
|
|
+ writePlcState(PLCEnum.PACKING_BLANK_1.getMetadata(), false);
|
|
|
+ Thread.sleep(500);
|
|
|
+ writePlcState(PLCEnum.PACKING_BLANK_2.getMetadata(), false);
|
|
|
+ }
|
|
|
//下料 取货完成后 写PLC
|
|
|
- /*if (wcsTask.getTaskType().equals(Constant.FLOW_CONFIG_ID.PM_XL.name())) {
|
|
|
- plcConnectServiceRunner.getPlcServer(PLCConnectNameEnum.PACKING_MACHINE_1.getMetadata())
|
|
|
- .writeBoolean(PLCEnum.PACKING_BLANK_2.getMetadata(), true);
|
|
|
- }*/
|
|
|
+ if (wcsTask.getTaskType().equals(Constant.FLOW_CONFIG_ID.PM_XL.name())) {
|
|
|
+ writePlcState(PLCEnum.PICK_UP_SEND.getMetadata(), true);
|
|
|
+ Thread.sleep(1000);
|
|
|
+ writePlcState(PLCEnum.PICK_UP_SEND.getMetadata(), false);
|
|
|
+ }
|
|
|
wcsTask.setRemark("任务取货完成!");
|
|
|
break;
|
|
|
case 5:
|
|
|
wcsTask.setRemark("任务卸货申请中!");
|
|
|
break;
|
|
|
case 6:
|
|
|
- if (wcsTask.getState() != 4) {
|
|
|
- log.info("任务未取货,不能直接卸货!" + wcsTask.getTaskNo());
|
|
|
- return TsTaskStateResponse.error("任务未取货,不能直接卸货!","");
|
|
|
- }
|
|
|
- if (wcsTask.getState() == 6) {
|
|
|
- log.info("不能重复卸货!" + wcsTask.getTaskNo());
|
|
|
- return TsTaskStateResponse.error("不能重复卸货!","");
|
|
|
- }
|
|
|
// 解锁终点库位
|
|
|
baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo()), Constant.WAREHOUSE_ID, "TS-TM");
|
|
|
// 将中间缓存位库存移动到终点
|
|
@@ -219,11 +220,20 @@ public class TsTaskServiceImpl implements ITsTaskService {
|
|
|
if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
}
|
|
|
- // 添加空托 卸货完成后 写PLC
|
|
|
- /*if (wcsTask.getTaskType().equals(Constant.FLOW_CONFIG_ID.PM_SK.name())) {
|
|
|
- plcConnectServiceRunner.getPlcServer(PLCConnectNameEnum.PACKING_MACHINE_1.getMetadata())
|
|
|
- .writeBoolean(PLCEnum.PACKING_CALL_EMPTY_2.getMetadata(), true);
|
|
|
- }*/
|
|
|
+
|
|
|
+ //关闭上空 任务生成和卸货申请状态
|
|
|
+ if (wcsTask.getTaskType().equals(Constant.FLOW_CONFIG_ID.PM_SK.name())) {
|
|
|
+ writePlcState(PLCEnum.PACKING_CALL_EMPTY_1.getMetadata(), false);
|
|
|
+ Thread.sleep(500);
|
|
|
+ writePlcState(PLCEnum.PACKING_CALL_EMPTY_2.getMetadata(), false);
|
|
|
+ }
|
|
|
+ // 上空任务完成 写PLC
|
|
|
+ if (wcsTask.getTaskType().equals(Constant.FLOW_CONFIG_ID.PM_SK.name())) {
|
|
|
+ writePlcState(PLCEnum.UNLOAD_SEND.getMetadata(), true);
|
|
|
+ Thread.sleep(1000);
|
|
|
+ writePlcState(PLCEnum.UNLOAD_SEND.getMetadata(), false);
|
|
|
+ }
|
|
|
+
|
|
|
wcsTask.setRemark("任务卸货完成!");
|
|
|
break;
|
|
|
case 7:
|
|
@@ -550,4 +560,20 @@ public class TsTaskServiceImpl implements ITsTaskService {
|
|
|
return new TsDataResponse();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean readPlcState(String address) {
|
|
|
+ log.info("------读取PLC状态,PLC地址:" + address );
|
|
|
+ boolean b = plcConnectServiceRunner.getPlcServer(PLCConnectNameEnum.PACKING_MACHINE_1.getMetadata())
|
|
|
+ .readBoolean(address);
|
|
|
+ return b;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void writePlcState(String address,boolean falg) {
|
|
|
+ log.info("------写入PLC状态,PLC地址:" + address +",状态:"+falg);
|
|
|
+ plcConnectServiceRunner.getPlcServer(PLCConnectNameEnum.PACKING_MACHINE_1.getMetadata())
|
|
|
+ .writeBoolean(address, falg);
|
|
|
+ }
|
|
|
}
|