Commit e71444db LN

工单出库和转储单出库挑料规则修改。

1 个父辈 c6b20dfa
...@@ -499,7 +499,6 @@ public class LiteOrderCache implements ITaskListener { ...@@ -499,7 +499,6 @@ public class LiteOrderCache implements ITaskListener {
int targetNum = needNum; int targetNum = needNum;
for (int i=0;i<posList.size();i++ for (int i=0;i<posList.size();i++
) { ) {
StoragePos tempPos = null;
List<StoragePos> forPosList=new ArrayList<>(); List<StoragePos> forPosList=new ArrayList<>();
for (StoragePos pos : for (StoragePos pos :
posList) { posList) {
...@@ -523,9 +522,12 @@ public class LiteOrderCache implements ITaskListener { ...@@ -523,9 +522,12 @@ public class LiteOrderCache implements ITaskListener {
if (isGuizhong || needJieliao) { if (isGuizhong || needJieliao) {
if (pos.getBarcode().getAmount() >= targetNum) { if (pos.getBarcode().getAmount() >= targetNum) {
//一盘刚好满足 //一盘刚好满足
targetNum = 0; targetNum -= pos.getBarcode().getAmount();
itemPosList.add(pos); itemPosList.add(pos);
itemPosNameList.add(pos.getPosName()); itemPosNameList.add(pos.getPosName());
if (targetNum < 0) {
jieliaoPosMap.put(pos.getPosName(), targetNum);
}
break; break;
} else if (isLast) { } else if (isLast) {
//一盘料不足,直接加入 //一盘料不足,直接加入
...@@ -533,7 +535,7 @@ public class LiteOrderCache implements ITaskListener { ...@@ -533,7 +535,7 @@ public class LiteOrderCache implements ITaskListener {
itemPosNameList.add(pos.getPosName()); itemPosNameList.add(pos.getPosName());
targetNum -= pos.getBarcode().getAmount(); targetNum -= pos.getBarcode().getAmount();
if (targetNum < 0) { if (targetNum < 0) {
jieliaoPosMap.put(tempPos.getPosName(), targetNum); jieliaoPosMap.put(pos.getPosName(), targetNum);
} }
break; break;
} }
......
...@@ -238,8 +238,6 @@ public class OutListCache implements ITaskListener { ...@@ -238,8 +238,6 @@ public class OutListCache implements ITaskListener {
continue; continue;
} }
List<StoragePos> itemPosList = new ArrayList<>();
List<String> itemPosNameList = new ArrayList<>();
//查找PN的所有库存,PN=pn,未锁定,qty 从大到小,入库时间正序 //查找PN的所有库存,PN=pn,未锁定,qty 从大到小,入库时间正序
List<StoragePos> posList = storagePosManager.findOrderItemInStorage(availableStorageIds, pn, taskService.excludePosIds()); List<StoragePos> posList = storagePosManager.findOrderItemInStorage(availableStorageIds, pn, taskService.excludePosIds());
...@@ -272,24 +270,60 @@ public class OutListCache implements ITaskListener { ...@@ -272,24 +270,60 @@ public class OutListCache implements ITaskListener {
} }
} }
List<StoragePos> itemPosList = new ArrayList<>();
List<String> itemPosNameList = new ArrayList<>();
//此PN未完成 //此PN未完成
int targetNum = needNum; int targetNum = needNum;
StoragePos tempPos = null;
for (StoragePos pos : for (int i=0;i<posList.size();i++
posList) { ) {
//已经在出库列表 List<StoragePos> forPosList = new ArrayList<>();
if (itemPosNameList.contains(pos.getPosName())) { for (StoragePos pos :
continue; posList) {
if (!needOutPosMap.containsKey(pos.getPosName())) {
forPosList.add(pos);
}
}
//循环剩余的库位,查找
int forIndex = -1;
for (StoragePos pos :
forPosList) {
forIndex++;
boolean isLast = (forIndex == (forPosList.size() - 1));
//不需要截料,也不按照整盘比,按照数量满足或最后一盘来出
if (pos.getBarcode().getAmount() >= targetNum || isLast) {
itemPosList.add(pos);
itemPosNameList.add(pos.getPosName());
targetNum -= pos.getBarcode().getAmount();
break;
}
if (targetNum <= 0) {
break;
}
} }
//不需要截料,也不按照整盘比,直接数量最大的发料
itemPosList.add(pos);
itemPosNameList.add(pos.getPosName());
targetNum -= pos.getBarcode().getAmount();
if (targetNum <= 0) { if (targetNum <= 0) {
break; break;
} }
} }
// StoragePos tempPos = null;
// for (StoragePos pos :
// posList) {
// //已经在出库列表
// if (itemPosNameList.contains(pos.getPosName())) {
// continue;
// }
// //不需要截料,也不按照整盘比,直接数量最大的发料
// itemPosList.add(pos);
// itemPosNameList.add(pos.getPosName());
// targetNum -= pos.getBarcode().getAmount();
//
// if (targetNum <= 0) {
// break;
// }
// }
//判断数量是否满足 //判断数量是否满足
if (targetNum > 0) { if (targetNum > 0) {
int outNum = needNum - targetNum; int outNum = needNum - targetNum;
......
...@@ -589,7 +589,7 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -589,7 +589,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
} }
@Override @Override
public List<StoragePos> findOrderItemInStorage(List<String> storageIdList,String pn, Collection<String> excludePosIds ) { public List<StoragePos> findOrderItemInStorage(List<String> storageIdList,String pn, Collection<String> excludePosIds ) {
Criteria c = Criteria.where("barcode.partNumber").is(pn) Criteria c = Criteria.where("barcode.partNumber").is(pn)
.and("id").nin(excludePosIds) .and("id").nin(excludePosIds)
.and("enabled").is(true)//可用 .and("enabled").is(true)//可用
...@@ -600,7 +600,7 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -600,7 +600,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
} }
Query q = new Query(c); Query q = new Query(c);
//数量从大到小,出库先进先出 //数量从大到小,出库先进先出
Sort sort = Sort.by(Sort.Direction.DESC, "barcode.amount"); Sort sort = Sort.by(Sort.Direction.ASC, "barcode.amount");
sort.and(Sort.by(Sort.Direction.ASC, "canCheckOutTime")); sort.and(Sort.by(Sort.Direction.ASC, "canCheckOutTime"));
q.with(sort); q.with(sort);
List<StoragePos> posList = storagePosDao.findByQuery(q); List<StoragePos> posList = storagePosDao.findByQuery(q);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!