Commit 74643c1d zshaohui

1.回库功能优化

2.agv获取料仓,返回库位具体的使用数
1 个父辈 4992dcb0
......@@ -175,6 +175,7 @@ public class Barcode extends BasePo implements Serializable {
*/
private int checkingAmount = 0;
private String orderId = "";
private String orderNo = "";
......
......@@ -1018,9 +1018,11 @@ public class LiteOrderCache {
//物料数量-已经发出的数量 = 点料数量
if (barcode.getAmount() - checkingAmount > 0) {
barcode.setCheckingAmount(checkingAmount);
barcode.setOrderId(cacheOrder.getId());
barcode.setOrderNo(orderNo);
} else {
barcode.setCheckingAmount(barcode.getAmount());
barcode.setOrderId(cacheOrder.getId());
barcode.setOrderNo(orderNo);
}
barcodeManager.save(barcode);
......
......@@ -160,6 +160,7 @@ public class JkemController {
if (checkingAmount > 0 || StringUtils.isNotEmpty(barcode.getOrderNo())){
log.info(barcode.getBarcode()+"为治具盒,点料数量为:"+checkingAmount+"需要清空");
barcode.setCheckingAmount(0);
barcode.setOrderId("");
barcode.setOrderNo("");
barcodeManager.save(barcode);
}
......@@ -209,7 +210,7 @@ public class JkemController {
throw new ValidateException("smfcore.noValidStorage", "[{0}]料仓列表中未找到可用的料仓",new String[]{barcode.getBarcode()});
}
for (DataLog dataLog : taskService.getQueueTasks()) {
for (DataLog dataLog : taskService.getAllTasks()) {
// if(!dataLog.isPackageReel()){
//已经在任务当中,返回对应的信息
if (dataLog.getBarcode().equals(barcode.getBarcode()) && !dataLog.isCancel() && !dataLog.isFinished()) {
......@@ -598,6 +599,7 @@ public class JkemController {
dataLog.setNum(checkingAmount);
dataLog.setType(OP.CHECKOUT);
dataLog.setStatus(OP_STATUS.FINISHED.name());
dataLog.setSourceId(barcode.getOrderId());
dataLog.setSourceName(barcode.getOrderNo());
dataLogManager.save(dataLog);
return ResultBean.newOkResult("");
......
......@@ -92,9 +92,9 @@ public class StackerController {
if (!bindStacker) {
return ResultBean.newErrorResult(-1, "smfcore.valueNotFind", "未找到{0}[{1}]", new String[]{"stacker", stacker});
}
List<String> availableStorageList = getAvailableStorage(stacker,storageCid);
List<StackerAvailableStorage> availableStorageList = getAvailableStorage(stacker,storageCid);
List<String> resultList = new ArrayList<>();
/*List<String> resultList = new ArrayList<>();
if (availableStorageList != null && !availableStorageList.isEmpty()){
for (String cid : availableStorageList) {
Storage storage = dataCache.getStorage(cid);
......@@ -107,13 +107,13 @@ public class StackerController {
resultList.add(cid);
}
resultList = resultList.stream().distinct().collect(Collectors.toList());
}
return ResultBean.newOkResult(resultList);
}*/
return ResultBean.newOkResult(availableStorageList);
}
private static final List<String> msdCidList = Arrays.asList("XLR4A","XLR4B","XLR5A","XLR5B","XLR6A","XLR6B");
private List<String> getAvailableStorage(String stacker,String storageCid) {
private List<StackerAvailableStorage> getAvailableStorage(String stacker,String storageCid) {
List<StackerCache> stackerCacheList = StackerUtil.getDetailByStacker(stacker);
//Msd和非Msd列表
List<StackerCache> msdList = new ArrayList<>();
......@@ -123,18 +123,22 @@ public class StackerController {
}
}
if (msdList != null && !msdList.isEmpty()) {
List<String> resultList = new ArrayList<>();
List<Storage> storageList = new ArrayList<>();
for (String msdCid : msdCidList) {
if (StringUtils.isNotEmpty(storageCid)){
if (msdCid.startsWith(storageCid)) {
continue;
}
}
resultList.add(msdCid);
Storage storage = dataCache.getStorage(msdCid);
storageList.add(storage);
}
log.info("料串[{}]的msd不为空,信息为[{}],直接返回Msd列表", stacker, JSON.toJSONString(resultList));
return resultList;
log.info("料串[{}]的msd不为空,信息为[{}],直接返回Msd列表", stacker, JSON.toJSONString(storageList));
List<StackerAvailableStorage> availableStorage = getAvailableStorage(stacker, storageList, stackerCacheList);
if (availableStorage != null && !availableStorage.isEmpty()){
return availableStorage;
}
}
//不是msd的料仓
List<Storage> noMsdStorageList = new ArrayList<>();
......@@ -148,7 +152,7 @@ public class StackerController {
noMsdStorageList.add(storage);
}
}
List<String> noMsdAvailableStorageList = getAvailableStorage(stacker,noMsdStorageList, stackerCacheList);
List<StackerAvailableStorage> noMsdAvailableStorageList = getAvailableStorage(stacker,noMsdStorageList, stackerCacheList);
if (noMsdAvailableStorageList != null && !noMsdAvailableStorageList.isEmpty()) {
return noMsdAvailableStorageList;
}
......@@ -164,15 +168,14 @@ public class StackerController {
msdStorageList.add(storage);
}
}
List<String> msdAvailableStorageList = getAvailableStorage(stacker,msdStorageList, stackerCacheList);
List<StackerAvailableStorage> msdAvailableStorageList = getAvailableStorage(stacker,msdStorageList, stackerCacheList);
if (msdAvailableStorageList != null && !msdAvailableStorageList.isEmpty()) {
return msdAvailableStorageList;
}
return new ArrayList<>();
}
private List<String> getAvailableStorage(String stacker, List<Storage> storageList, List<StackerCache> stackerList) {
List<String> availableStorageList = new ArrayList<>();
private List<StackerAvailableStorage> getAvailableStorage(String stacker, List<Storage> storageList, List<StackerCache> stackerList) {
List<StackerAvailableStorage> stackerAvailableStorageList = new ArrayList<>();
//按数量最多的进行排序
stackerList = stackerList.stream().sorted(Comparator.comparing(StackerCache::getCount).reversed()).collect(Collectors.toList());
......@@ -217,7 +220,7 @@ public class StackerController {
}
//按空库位进行排序
if (stackerAvailableStorageList != null && !stackerAvailableStorageList.isEmpty()){
/*if (stackerAvailableStorageList != null && !stackerAvailableStorageList.isEmpty()){
stackerAvailableStorageList = stackerAvailableStorageList.stream().sorted(Comparator.comparing(StackerAvailableStorage :: getCount).reversed()
.thenComparing(Comparator.comparing(StackerAvailableStorage::getEmptyCount).reversed())).collect(Collectors.toList());
log.info(JSON.toJSONString(stackerAvailableStorageList));
......@@ -225,8 +228,8 @@ public class StackerController {
availableStorageList.add(stackerAvailableStorage.getStorageName());
}
availableStorageList = availableStorageList.stream().distinct().collect(Collectors.toList());
}
return availableStorageList;
}*/
return stackerAvailableStorageList;
}
}
......@@ -77,7 +77,11 @@ public class ReturnStorageManagerImpl implements IReturnStorageManager {
public void saveOrUpdateReturnStorage(DataLog task) {
//找到最后一个任务
DataLog dataLog = dataLogManager.findOne(new Query(Criteria.where("barcode").is(task.getBarcode()).and("type").is(OP.CHECKOUT)).with(Sort.by(Sort.Direction.DESC,"updateDate")));
DataLog dataLog = dataLogManager.findOne(new Query(
Criteria.where("barcode").is(task.getBarcode())
.and("type").is(OP.CHECKOUT)
.and("posName").exists(true).ne("")
).with(Sort.by(Sort.Direction.DESC,"updateDate")));
if (dataLog != null) {
log.info(dataLog.getBarcode() + "找到上一个任务,对应的工单号为:" + dataLog.getStorageName() + "任务状态为:" + dataLog.getStatus() + ",上次出库的任务数量为:" + dataLog.getNum());
if (dataLog.isCheckOutTask() && dataLog.isFinished()) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!