Commit d9e1f2de LN

锡膏出库任务重复问题修改

1 个父辈 66a0239c
...@@ -203,11 +203,10 @@ public class SolderBoxCache { ...@@ -203,11 +203,10 @@ public class SolderBoxCache {
} }
} }
/** private boolean CanCreateTask(StoragePos storagePos) {
* 创建出库任务
* @param storagePos try {
*/
private boolean createOutTask(StoragePos storagePos) throws ValidateException {
Barcode barcode = storagePos.getBarcode(); Barcode barcode = storagePos.getBarcode();
Collection<DataLog> queueTasks = taskService.getQueueTasks(); Collection<DataLog> queueTasks = taskService.getQueueTasks();
for (DataLog queueTask : queueTasks) { for (DataLog queueTask : queueTasks) {
...@@ -225,6 +224,39 @@ public class SolderBoxCache { ...@@ -225,6 +224,39 @@ public class SolderBoxCache {
return false; return false;
} }
} }
} catch (Exception exception) {
log.error("CanCreateTask 出错:" + exception.toString());
}
return true;
}
/**
* 创建出库任务
* @param storagePos
*/
private boolean createOutTask(StoragePos storagePos) throws ValidateException {
try {
if (!CanCreateTask(storagePos)) {
return false;
}
//等待1000后再次判断,防止正在处理出库任务过程中
Thread.sleep(500);
if (!CanCreateTask(storagePos)) {
log.error("createOutTask 库位号"+storagePos.getPosName()+" 再次验证时发现已有任务,暂不创建出库任务");
return false;
}
//重新查找库位
storagePos=storagePosManager.getByPosName(storagePos.getPosName());
if(storagePos.getBarcode()==null){
log.error("createOutTask 库位号"+storagePos.getPosName()+" 再次验证时发现库位已空,暂不创建出库任务");
return false;
}
Barcode barcode = storagePos.getBarcode();
// TimeUnit.SECONDS.sleep(1);
log.info(barcode.getBarcode() + "创建出库任务"); log.info(barcode.getBarcode() + "创建出库任务");
Storage storage = dataCache.getStorageById(storagePos.getStorageId()); Storage storage = dataCache.getStorageById(storagePos.getStorageId());
DataLog outTask = new DataLog(storage, barcode, storagePos); DataLog outTask = new DataLog(storage, barcode, storagePos);
...@@ -246,6 +278,13 @@ public class SolderBoxCache { ...@@ -246,6 +278,13 @@ public class SolderBoxCache {
// //
// log.info(barcode.getBarcode() + "创建出库任务完成,更改状态="+barcode.getSolderStatus()); // log.info(barcode.getBarcode() + "创建出库任务完成,更改状态="+barcode.getSolderStatus());
saveSolderLog(storagePos); saveSolderLog(storagePos);
} catch (ValidateException ex) {
log.error("createOutTask error " + ex.toString());
throw ex;
} catch (Exception ex1) {
log.error("createOutTask error " + ex1.toString());
}
return true; return true;
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!