Commit 0eebc292 zshaohui

盘点出库优化

1 个父辈 8fe89ed5
...@@ -115,10 +115,12 @@ public class InventoryController { ...@@ -115,10 +115,12 @@ public class InventoryController {
int count = storagePosManager.countByQuery(new Query(Criteria.where("storageId").is(storageId))); int count = storagePosManager.countByQuery(new Query(Criteria.where("storageId").is(storageId)));
String inventoryBatch = dataCache.getCache(INVENTORY_DATA) + ""; String inventoryBatch = dataCache.getCache(INVENTORY_DATA) + "";
if (StringUtils.isNotBlank(inventoryBatch) && !"-1".equals(inventoryBatch)) { if (StringUtils.isNotBlank(inventoryBatch) && !"-1".equals(inventoryBatch)) {
List<InventoryData> dataList = inventoryDataManager.findByQuery(new Query(Criteria.where("inventoryBatch").is(inventoryBatch).and("status").is(InventoryStatus.FINISHED.name()))); List<InventoryData> dataList = inventoryDataManager.findByQuery(new Query(Criteria.where("inventoryBatch").is(inventoryBatch)/*.and("status").is(InventoryStatus.FINISHED.name())*/));
if (dataList != null && !dataList.isEmpty()) { if (dataList != null && !dataList.isEmpty()) {
List<String> posNameList = new ArrayList<>(); List<String> posNameList = new ArrayList<>();
for (InventoryData data : dataList) { for (InventoryData data : dataList) {
boolean isFinished = isInventoryDataFinshed(data.getPosName(),dataList);
if (isFinished) {
if (posNameList.isEmpty()) { if (posNameList.isEmpty()) {
posNameList.add(data.getPosName()); posNameList.add(data.getPosName());
} else { } else {
...@@ -127,9 +129,10 @@ public class InventoryController { ...@@ -127,9 +129,10 @@ public class InventoryController {
} }
} }
} }
}
inventoryCount = posNameList.size(); inventoryCount = posNameList.size();
} }
finishInventory = getFinishInventoryPosName(inventoryBatch); finishInventory = getFinishInventoryPosName(inventoryBatch,dataList);
} }
resultMap.put("inventoryCount", inventoryCount); resultMap.put("inventoryCount", inventoryCount);
resultMap.put("count", count); resultMap.put("count", count);
...@@ -138,27 +141,18 @@ public class InventoryController { ...@@ -138,27 +141,18 @@ public class InventoryController {
return ResultBean.newOkResult(resultMap); return ResultBean.newOkResult(resultMap);
} }
private List<String> getFinishInventoryPosName(String inventoryBatch) { private boolean isInventoryDataFinshed(String posName, List<InventoryData> dataList) {
List<String> finishPosName = new ArrayList<>();
List<InventoryData> dataList = inventoryDataManager.findByQuery(new Query(Criteria.where("inventoryBatch").is(inventoryBatch)));
//获取原始库位
List<String> oriPosNameList = dataList.stream().map(InventoryData::getOriPosName).collect(Collectors.toList());
oriPosNameList = oriPosNameList.stream().distinct().collect(Collectors.toList());
for (String oriPosName : oriPosNameList) {
boolean isFinished = true; boolean isFinished = true;
for (InventoryData data : dataList) { for (InventoryData data : dataList) {
if (data.getOriPosName().equals(oriPosName)){ if (posName.equals(data.getPosName())){
if (!data.getStatus().equals(InventoryStatus.FINISHED.name())){ if (!data.getStatus().equals(InventoryStatus.FINISHED.name())){
isFinished = false; isFinished = false;
break; break;
} }
} }
} }
if (isFinished) {
finishPosName.add(oriPosName); return isFinished;
}
}
return finishPosName;
} }
...@@ -189,6 +183,7 @@ public class InventoryController { ...@@ -189,6 +183,7 @@ public class InventoryController {
@RequestMapping("/inventoryEnd") @RequestMapping("/inventoryEnd")
@AnonymousAccess @AnonymousAccess
public ResultBean inventoryEnd(int type) { public ResultBean inventoryEnd(int type) {
log.info(SecurityUtils.getCurrentUsername() + "盘点结束,type为:" + type);
String inventoryBatch = dataCache.getCache(INVENTORY_DATA) + ""; String inventoryBatch = dataCache.getCache(INVENTORY_DATA) + "";
if (StringUtils.isBlank(inventoryBatch) || "-1".equals(inventoryBatch)) { if (StringUtils.isBlank(inventoryBatch) || "-1".equals(inventoryBatch)) {
return ResultBean.newErrorResult(-1, "", "当前没有要盘点的批次"); return ResultBean.newErrorResult(-1, "", "当前没有要盘点的批次");
...@@ -221,7 +216,7 @@ public class InventoryController { ...@@ -221,7 +216,7 @@ public class InventoryController {
} }
} }
} }
dataCache.updateCache(INVENTORY_DATA, -1l); dataCache.updateCache(INVENTORY_DATA, "");
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
...@@ -301,8 +296,10 @@ public class InventoryController { ...@@ -301,8 +296,10 @@ public class InventoryController {
} }
for (StoragePos pos : storagePosList) { for (StoragePos pos : storagePosList) {
log.info("盘点出库的库位为:"+pos.getPosName());
Barcode barcode = pos.getBarcode(); Barcode barcode = pos.getBarcode();
if (barcode != null) { if (barcode != null) {
log.info("盘点出库的物料为:"+barcode.getBarcode());
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
barcode.setInventory(true); barcode.setInventory(true);
barcode = barcodeManager.save(barcode); barcode = barcodeManager.save(barcode);
...@@ -390,6 +387,7 @@ public class InventoryController { ...@@ -390,6 +387,7 @@ public class InventoryController {
public ResultBean inventoryReel(@RequestBody Map<String, String> paramMap) { public ResultBean inventoryReel(@RequestBody Map<String, String> paramMap) {
String name = paramMap.get("name"); String name = paramMap.get("name");
String bacodeStr = paramMap.get("bacodeStr"); String bacodeStr = paramMap.get("bacodeStr");
log.info("盘点人:" + SecurityUtils.getCurrentUsername() + ",工位为:" + name + ",物料编码为:" + bacodeStr);
Station station = StationCacheUtil.getStation(name); Station station = StationCacheUtil.getStation(name);
if (station == null) { if (station == null) {
return ResultBean.newErrorResult(-1, "", name + "工位信息未上传成功,请重试"); return ResultBean.newErrorResult(-1, "", name + "工位信息未上传成功,请重试");
...@@ -509,7 +507,7 @@ public class InventoryController { ...@@ -509,7 +507,7 @@ public class InventoryController {
DataLog task = new DataLog(storage, barcode, pos); DataLog task = new DataLog(storage, barcode, pos);
task.setType(type); task.setType(type);
task.setStatus(status); task.setStatus(status);
//task.setOperator(SecurityUtils.getCurrentUsername()); task.setOperator(SecurityUtils.getCurrentUsername());
task.setExtendType(extendType); task.setExtendType(extendType);
task.setBoxPosName(pos.getPosName()); task.setBoxPosName(pos.getPosName());
taskService.addTaskToExecute(task); taskService.addTaskToExecute(task);
...@@ -689,4 +687,27 @@ public class InventoryController { ...@@ -689,4 +687,27 @@ public class InventoryController {
//query.fields().include("barcode", "updateDate", "storageId","posName"); //query.fields().include("barcode", "updateDate", "storageId","posName");
return query; return query;
} }
private List<String> getFinishInventoryPosName(String inventoryBatch,List<InventoryData> dataList) {
List<String> finishPosName = new ArrayList<>();
//List<InventoryData> dataList = inventoryDataManager.findByQuery(new Query(Criteria.where("inventoryBatch").is(inventoryBatch)));
//获取原始库位
List<String> oriPosNameList = dataList.stream().map(InventoryData::getOriPosName).collect(Collectors.toList());
oriPosNameList = oriPosNameList.stream().distinct().collect(Collectors.toList());
for (String oriPosName : oriPosNameList) {
boolean isFinished = true;
for (InventoryData data : dataList) {
if (data.getOriPosName().equals(oriPosName)){
if (!data.getStatus().equals(InventoryStatus.FINISHED.name())){
isFinished = false;
break;
}
}
}
if (isFinished) {
finishPosName.add(oriPosName);
}
}
return finishPosName;
}
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!