Commit 5c9e3320 LN

修改:锡膏料仓重复生成出库任务。

1 个父辈 9d8a8a35
......@@ -178,7 +178,6 @@ public class SolderBoxCache {
if(now >= needOutStartTime){
createOutTask(storagePos);
saveSolderLog(storagePos);
}
}
......@@ -196,34 +195,47 @@ public class SolderBoxCache {
* 创建出库任务
* @param storagePos
*/
private void createOutTask(StoragePos storagePos) throws ValidateException {
private boolean createOutTask(StoragePos storagePos) throws ValidateException {
Barcode barcode = storagePos.getBarcode();
Collection<DataLog> queueTasks = taskService.getQueueTasks();
for (DataLog queueTask : queueTasks) {
if(queueTask.getBarcode().equals(barcode.getBarcode())){
if (queueTask.getBarcode().equals(barcode.getBarcode())) {
//已经有任务,返回
return;
return false;
}
}
//如果有刚刚完成的出库任务,也不生成
Collection<DataLog> finishedTasks = taskService.getFinishedTasks();
for (DataLog queueTask : finishedTasks) {
if (queueTask.getBarcode().equals(barcode.getBarcode()) && queueTask.isCheckOutTask() && queueTask.isFinished()) {
//有刚刚完成的出库任务,暂不生成
return false;
}
}
log.info(barcode.getBarcode() + "创建出库任务");
Storage storage = dataCache.getStorageById(storagePos.getStorageId());
DataLog outTask = new DataLog(storage,barcode, storagePos);
DataLog outTask = new DataLog(storage, barcode, storagePos);
outTask.setType(OP.CHECKOUT);
outTask.setMixTime(barcode.getMixTime());
//如果已过期,标记为过期物料出库
if (barcode.getExpireDate() != null && barcode.getExpireDate().before(new Date())) {
// String outMsg = "过期物料出库";
String outMsg= MessageUtils.getText("smfcore.spbox.expireOut",MessageUtils.getDefaultLocal(),"过期物料出库");
outTask.updateAppendData("ngMsg",outMsg);
String outMsg = MessageUtils.getText("smfcore.spbox.expireOut", MessageUtils.getDefaultLocal(), "过期物料出库");
outTask.updateAppendData("ngMsg", outMsg);
}
//outTask = dataLogDao.save(outTask);
taskService.addTaskToExecute(outTask);
//更改状态
// barcode.setSolderStatus(StorageConstants.SOLDER_STATUS.OUTING);
// //更改状态
// barcode.setSolderStatus(SOLDER_STATUS.OUTING.name());
// barcode = barcodeManager.save(barcode);
// storagePos.setBarcode(barcode);
// storagePosManager.save(storagePos);
//
// log.info(barcode.getBarcode() + "创建出库任务完成,更改状态="+barcode.getSolderStatus());
saveSolderLog(storagePos);
return true;
}
/**
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!