Commit 4a1baf9a sunke

接口推送到MES时放入线程处理

出库状态增加END处理
1 个父辈 f7d9a30b
...@@ -16,15 +16,18 @@ import org.springframework.stereotype.Service; ...@@ -16,15 +16,18 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Service @Service
@Slf4j @Slf4j
public class SmfApi { public class SmfApi {
ExecutorService threadPool = Executors.newCachedThreadPool();
@Autowired @Autowired
protected DataCache dataCache; protected DataCache dataCache;
/** /**
* 入库验证 * 入库验证
*/ */
...@@ -73,6 +76,8 @@ public class SmfApi { ...@@ -73,6 +76,8 @@ public class SmfApi {
orderNotifyUrl = dataCache.getConfigCache("api.orderNotifyUrl",orderNotifyUrl); orderNotifyUrl = dataCache.getConfigCache("api.orderNotifyUrl",orderNotifyUrl);
fetchInListUrl = dataCache.getConfigCache("api.fetchInListUrl",fetchInListUrl); fetchInListUrl = dataCache.getConfigCache("api.fetchInListUrl",fetchInListUrl);
fetchOrderUrl = dataCache.getConfigCache("api.fetchOrderUrl",fetchOrderUrl); fetchOrderUrl = dataCache.getConfigCache("api.fetchOrderUrl",fetchOrderUrl);
} }
/** /**
...@@ -87,28 +92,38 @@ public class SmfApi { ...@@ -87,28 +92,38 @@ public class SmfApi {
} }
public void onTaskStatusChange(DataLog task) { public void onTaskStatusChange(DataLog task) {
for (ISmfApiListener apiListener : apiListenerList) { threadPool.execute(new Runnable() {
if(apiListener.isForThisApi(apiName)){ @Override
if(task.isPutInTask()){ public void run() {
if(isUrlExist(inNotifyUrl)){ for (ISmfApiListener apiListener : apiListenerList) {
apiListener.inTaskStatusChange(inNotifyUrl,task); if(apiListener.isForThisApi(apiName)){
} if(task.isPutInTask()){
}else{ if(isUrlExist(inNotifyUrl)){
if(isUrlExist(outNotifyUrl)){ apiListener.inTaskStatusChange(inNotifyUrl,task);
apiListener.outTaskStatusChange(outNotifyUrl,task); }
}else{
if(isUrlExist(outNotifyUrl)){
apiListener.outTaskStatusChange(outNotifyUrl,task);
}
}
} }
} }
} }
} });
} }
public void onOrderStatusChange(LiteOrder liteOrder){ public void onOrderStatusChange(LiteOrder liteOrder){
if(isUrlExist(orderNotifyUrl)){ if(isUrlExist(orderNotifyUrl)){
for (ISmfApiListener apiListener : apiListenerList) { threadPool.execute(new Runnable() {
if(apiListener.isForThisApi(apiName)){ @Override
apiListener.onOrderStatusChange(orderNotifyUrl,liteOrder); public void run() {
for (ISmfApiListener apiListener : apiListenerList) {
if(apiListener.isForThisApi(apiName)){
apiListener.onOrderStatusChange(orderNotifyUrl,liteOrder);
}
}
} }
} });
} }
} }
......
...@@ -253,12 +253,6 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -253,12 +253,6 @@ public class BaseDeviceHandler implements IDeviceHandler {
} }
//本地难条码是否可以入库 //本地难条码是否可以入库
verifyBarcodePutIn(Lists.<Storage>newArrayList(storage), barcodeSave); verifyBarcodePutIn(Lists.<Storage>newArrayList(storage), barcodeSave);
//从API验证
Barcode barcodeFromApi = smfApi.canPutInAfterResolve(barcodeSave);
if (barcodeFromApi != null) {
barcodeSave = barcodeFromApi;
}
// //西门子接口验证 // //西门子接口验证
// boolean result=SiemensApi.getMaterialLot(1, storage.getId(),storage.getName(),barcodeSave.getBarcode()); // boolean result=SiemensApi.getMaterialLot(1, storage.getId(),storage.getName(),barcodeSave.getBarcode());
...@@ -408,7 +402,7 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -408,7 +402,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成 } else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(),posName,executeTime); finishedOutPos(statusBean.getCid(),posName,executeTime);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口 } else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
//暂不处理 endTask(statusBean.getCid(),posName);
} }
// else if (BOX_STATUS.REWARM_TAKING_END == status) { // else if (BOX_STATUS.REWARM_TAKING_END == status) {
// //回温取料完成, 将库位清空 // //回温取料完成, 将库位清空
...@@ -532,6 +526,14 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -532,6 +526,14 @@ public class BaseDeviceHandler implements IDeviceHandler {
protected void finishedOutPos(String cid, String posName) throws ValidateException { protected void finishedOutPos(String cid, String posName) throws ValidateException {
finishedOutPos(cid,posName,-1); finishedOutPos(cid,posName,-1);
} }
protected void endTask(String cid, String posName){
DataLog task = taskService.findFinishedTask(cid, posName);
if(task != null){
task.setStatus(OP_STATUS.END.name());
taskService.updateFinishedTask(task);
}
}
/** /**
* 出仓位完成处理 * 出仓位完成处理
* @param cid * @param cid
...@@ -817,13 +819,11 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -817,13 +819,11 @@ public class BaseDeviceHandler implements IDeviceHandler {
return dataLogs; return dataLogs;
} }
//先查找正在执行中的发过去 //先查找正在执行中的发过去
for (String sourceId : for (String sourceId : outMap.keySet()) {
outMap.keySet()) {
List<DataLog> dataLogList = outMap.get(sourceId); List<DataLog> dataLogList = outMap.get(sourceId);
boolean isFind = false; boolean isFind = false;
for (DataLog dataLog : dataLogList for (DataLog dataLog : dataLogList) {
) {
if (dataLog.getStatus().equals(OP_STATUS.EXECUTING)) { if (dataLog.getStatus().equals(OP_STATUS.EXECUTING)) {
dataLogs.add(dataLog); dataLogs.add(dataLog);
isFind = true; isFind = true;
...@@ -839,10 +839,8 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -839,10 +839,8 @@ public class BaseDeviceHandler implements IDeviceHandler {
log.error("ACCSHELF: sourceId=" + sourceId + "的工单号未找到"); log.error("ACCSHELF: sourceId=" + sourceId + "的工单号未找到");
break; break;
} }
for (LiteOrderItem item : order.getOrderItems() for (LiteOrderItem item : order.getOrderItems()) {
) { for (DataLog dataLog : dataLogList) {
for (DataLog dataLog : dataLogList
) {
if (dataLog.getStatus().equals(OP_STATUS.WAIT)) { if (dataLog.getStatus().equals(OP_STATUS.WAIT)) {
if ((ObjectUtil.isNotEmpty(item.getPn()) && item.getPn().equals(dataLog.getPartNumber())) || if ((ObjectUtil.isNotEmpty(item.getPn()) && item.getPn().equals(dataLog.getPartNumber())) ||
(ObjectUtil.isNotEmpty(item.getRi()) && item.getRi().equals(dataLog.getBarcode())) (ObjectUtil.isNotEmpty(item.getRi()) && item.getRi().equals(dataLog.getBarcode()))
......
...@@ -520,6 +520,7 @@ public class NLPShelfHandler extends BaseDeviceHandler { ...@@ -520,6 +520,7 @@ public class NLPShelfHandler extends BaseDeviceHandler {
// if(lightPosCidList.contains(cid)){ // if(lightPosCidList.contains(cid)){
// hasReelPosColor = ORDER_COLOR.LIGHTBLUE.name(); // hasReelPosColor = ORDER_COLOR.LIGHTBLUE.name();
// } // }
hasReelPosColor = "off";
Map<String, Object> dataMap = new HashMap<>(); Map<String, Object> dataMap = new HashMap<>();
dataMap.put("hasReelPosList", posList); dataMap.put("hasReelPosList", posList);
dataMap.put("hasReelPosColor", hasReelPosColor); dataMap.put("hasReelPosColor", hasReelPosColor);
......
...@@ -272,6 +272,7 @@ public class SpBoxHandler extends BaseDeviceHandler { ...@@ -272,6 +272,7 @@ public class SpBoxHandler extends BaseDeviceHandler {
return DeviceType.SOLDERPASTE; return DeviceType.SOLDERPASTE;
} }
@Override
protected StatusBean handleInOutFinished(StatusBean statusBean) { protected StatusBean handleInOutFinished(StatusBean statusBean) {
Map<String, BoxStatusBean> statusOfBoxes = statusBean.getBoxStatus(); Map<String, BoxStatusBean> statusOfBoxes = statusBean.getBoxStatus();
if (statusOfBoxes != null) { if (statusOfBoxes != null) {
......
...@@ -295,7 +295,7 @@ public class DataLog extends BasePo implements Serializable { ...@@ -295,7 +295,7 @@ public class DataLog extends BasePo implements Serializable {
* 超过5分钟的已完成,已取消的任务都不再 * 超过5分钟的已完成,已取消的任务都不再
*/ */
public boolean needRemoveFromCache(){ public boolean needRemoveFromCache(){
if(isFinished() || isCancel()){ if(isFinished() || isCancel() || isEnd()){
if(System.currentTimeMillis() - super.getUpdateDate().getTime() > 5 * 60 * 1000){ if(System.currentTimeMillis() - super.getUpdateDate().getTime() > 5 * 60 * 1000){
return true; return true;
} }
......
...@@ -74,9 +74,9 @@ public class TianTongApi extends BaseSmfApiListener { ...@@ -74,9 +74,9 @@ public class TianTongApi extends BaseSmfApiListener {
*/ */
@Override @Override
public void outTaskStatusChange(String outNotifyUrl, DataLog task) { public void outTaskStatusChange(String outNotifyUrl, DataLog task) {
if (task.isStatus(OP_STATUS.OUT_BOX)) { if (task.isFinished()) {
outBoxNotify(task); outBoxNotify(task);
}else if(task.isFinished()) { }else if(task.isEnd()) {
outFinishedNotify(outNotifyUrl,task); outFinishedNotify(outNotifyUrl,task);
} }
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!