Commit f8f41587 zshaohui

1.缺料导出修改

2.uid出库,库位被禁用了,不允许出库
1 个父辈 a1e75e91
...@@ -198,7 +198,7 @@ public class DeviceController { ...@@ -198,7 +198,7 @@ public class DeviceController {
} }
//料号为335S00571不允许入库 //料号为335S00571不允许入库
if ("335S00571".equals(barcode.getPartNumber()) || "155S00462".equals(barcode.getPartNumber())){ if ("335S00571".equals(barcode.getPartNumber()) || "155S00462".equals(barcode.getPartNumber())){
throw new ValidateException("", "335S00571的料号不允许入到智能仓"); throw new ValidateException("", "335S00571/155S00462的料号不允许入到智能仓");
} }
......
...@@ -380,7 +380,7 @@ public class KafkaService { ...@@ -380,7 +380,7 @@ public class KafkaService {
for (LastStatusInfo lastStatusInfo : lastStatusInfoList) { for (LastStatusInfo lastStatusInfo : lastStatusInfoList) {
if (errorText.equals(lastStatusInfo.getErrorText())) { if (errorText.equals(lastStatusInfo.getErrorText())) {
//超过1个小时,重新统计 //超过1个小时,重新统计
if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() >= 1000 * 60 * 30) { if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() < 1000 * 60 * 10) {
hasSameStatus = true; hasSameStatus = true;
break; break;
} }
...@@ -390,9 +390,9 @@ public class KafkaService { ...@@ -390,9 +390,9 @@ public class KafkaService {
LastStatusInfo lastStatusInfo = new LastStatusInfo(machineId, errorCode, errorText, System.currentTimeMillis()); LastStatusInfo lastStatusInfo = new LastStatusInfo(machineId, errorCode, errorText, System.currentTimeMillis());
lastStatusInfoList.add(lastStatusInfo); lastStatusInfoList.add(lastStatusInfo);
} }
//清理超过个小时的 //清理超过个小时的
lastStatusInfoList = lastStatusInfoList.stream() lastStatusInfoList = lastStatusInfoList.stream()
.filter(lastStatusInfo -> System.currentTimeMillis()- lastStatusInfo.getLastSaveTime() >= 1000 * 60 * 30) .filter(lastStatusInfo -> System.currentTimeMillis()- lastStatusInfo.getLastSaveTime() < 1000 * 60 * 10)
.collect(Collectors.toList()); .collect(Collectors.toList());
lastStatusInfoMap.put(machineId,lastStatusInfoList); lastStatusInfoMap.put(machineId,lastStatusInfoList);
} }
...@@ -406,7 +406,7 @@ public class KafkaService { ...@@ -406,7 +406,7 @@ public class KafkaService {
for (LastStatusInfo lastStatusInfo : lastStatusInfoList) { for (LastStatusInfo lastStatusInfo : lastStatusInfoList) {
if (errorText.equals(lastStatusInfo.getErrorText())) { if (errorText.equals(lastStatusInfo.getErrorText())) {
//超过1个小时,重新统计 //超过1个小时,重新统计
if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() >= 1000 * 60 * 30) { if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() < 1000 * 60 * 10) {
log.info(machineId+"的报错信息和上一次相同,跳过"); log.info(machineId+"的报错信息和上一次相同,跳过");
hasSameStatus = true; hasSameStatus = true;
break; break;
......
...@@ -98,14 +98,39 @@ public class InnerReportController { ...@@ -98,14 +98,39 @@ public class InnerReportController {
public PageData lackPicking(ReportQueryCondition queryCondition, Pageable pageable) { public PageData lackPicking(ReportQueryCondition queryCondition, Pageable pageable) {
List<OrderItemDto> dtoList = new ArrayList<>(); List<OrderItemDto> dtoList = new ArrayList<>();
String floor = dataCache.getCache(Constants.CACHE_floor); String floor = dataCache.getCache(Constants.CACHE_floor);
List<LiteOrderItem> lackItems = getLackItems(liteOrderCache.getAllLiteOrder(), queryCondition);
List<LiteOrderItem> resultLackItems = new ArrayList<>();
String line = queryCondition.getLine();
String orderNo = queryCondition.getOrderNo();
String pn = queryCondition.getPn();
List<LiteOrderItem> lackItems = liteOrderCache.getLackItems(liteOrderCache.getAllLiteOrder());
for (LiteOrderItem orderItem : lackItems) { for (LiteOrderItem orderItem : lackItems) {
if (StringUtils.isNotBlank(line)) {
if (!orderItem.getLine().contains(line)) {
continue;
}
}
if (StringUtils.isNotBlank(orderNo)) {
if (!orderItem.getOrderNo().contains(orderNo)) {
continue;
}
}
if (StringUtils.isNotBlank(pn)) {
if (!orderItem.getPn().contains(pn)) {
continue;
}
}
orderItem.setFloor(floor); orderItem.setFloor(floor);
orderItem.setLackReel(1); orderItem.setLackReel(1);
orderItem.setLackNum(1); orderItem.setLackNum(1);
orderItem.setPreWarningTime(DateUtil.between(orderItem.getCreateDate(), new Date(), DateUnit.MINUTE)); orderItem.setPreWarningTime(DateUtil.between(orderItem.getCreateDate(), new Date(), DateUnit.MINUTE));
resultLackItems.add(orderItem);
} }
dtoList.addAll(orderItemMapper.toDto(lackItems)); dtoList.addAll(orderItemMapper.toDto(resultLackItems));
return new PageData(dtoList, dtoList.size()); return new PageData(dtoList, dtoList.size());
} }
...@@ -134,8 +159,33 @@ public class InnerReportController { ...@@ -134,8 +159,33 @@ public class InnerReportController {
headers.add(Arrays.asList("累计预警时间(分钟)")); headers.add(Arrays.asList("累计预警时间(分钟)"));
List<List<Object>> datas = new ArrayList<>(); List<List<Object>> datas = new ArrayList<>();
List<LiteOrderItem> orderItems = getLackItems(liteOrderCache.getAllLiteOrder(), queryCondition);
List<LiteOrderItem> resultLackItems = new ArrayList<>();
String line = queryCondition.getLine();
String orderNo = queryCondition.getOrderNo();
String pn = queryCondition.getPn();
List<LiteOrderItem> orderItems = liteOrderCache.getLackItems(liteOrderCache.getAllLiteOrder());
for (LiteOrderItem orderItem : orderItems) { for (LiteOrderItem orderItem : orderItems) {
if (StringUtils.isNotBlank(line)) {
if (!orderItem.getLine().contains(line)) {
continue;
}
}
if (StringUtils.isNotBlank(orderNo)) {
if (!orderItem.getOrderNo().contains(orderNo)) {
continue;
}
}
if (StringUtils.isNotBlank(pn)) {
if (!orderItem.getPn().contains(pn)) {
continue;
}
}
resultLackItems.add(orderItem);
}
for (LiteOrderItem orderItem : resultLackItems) {
List<Object> dataList = new ArrayList<>(); List<Object> dataList = new ArrayList<>();
dataList.add(floor); dataList.add(floor);
dataList.add(orderItem.getLine()); dataList.add(orderItem.getLine());
...@@ -157,64 +207,6 @@ public class InnerReportController { ...@@ -157,64 +207,6 @@ public class InnerReportController {
FileUtil.downloadExcel(headers, datas, response); FileUtil.downloadExcel(headers, datas, response);
} }
private List<LiteOrderItem> getLackItems(Collection<LiteOrder> liteOrders, ReportQueryCondition queryCondition) {
List<LiteOrderItem> lackItems = new ArrayList<>();
//排除虚拟仓的
List<String> storageIds = new ArrayList<>();
for (Storage storage : dataCache.getAllStorage().values()) {
//if (!storage.isVirtual()) {
storageIds.add(storage.getId());
//}
}
//得到库存信息
Map<String, InventoryItem> inventoryMap = dataCache.getAllInventory(storageIds, null);
if (inventoryMap != null) {
for (LiteOrder liteOrder : liteOrders) {
//状态是未关闭的,未出库的
if (!liteOrder.isClosed()) {
List<LiteOrderItem> items = liteOrder.getOrderItems();
for (LiteOrderItem orderItem : items) {
if (orderItem.getOutReelCount() < orderItem.getNeedReelCount()) {
//判断线别是否相等
String line = queryCondition.getLine();
if (StringUtils.isNotBlank(line)) {
if (!orderItem.getLine().contains(line)) {
continue;
}
}
//判断工单号是否一致
String orderNo = queryCondition.getOrderNo();
if (StringUtils.isNotBlank(orderNo)) {
if (!orderItem.getOrderNo().contains(orderNo)) {
continue;
}
}
//判断料号是否一致
String pn = queryCondition.getPn();
if (StringUtils.isNotBlank(pn)) {
if (!orderItem.getPn().contains(pn)) {
continue;
}
}
InventoryItem inventoryItem = inventoryMap.get(orderItem.getPn());
if (inventoryItem != null) {
if (inventoryItem.getStockReel() /*- inventoryItem.getLockReel()*/ - inventoryItem.getBindReel() > 0) {
inventoryItem.setBindReel(inventoryItem.getBindReel() + 1);
} else {
lackItems.add(orderItem);
}
inventoryMap.put(orderItem.getPn(), inventoryItem);
} else {
lackItems.add(orderItem);
}
}
}
}
}
}
return lackItems;
}
private Object getData(Object data) { private Object getData(Object data) {
return data == null ? "" : data; return data == null ? "" : data;
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!