Commit f8f41587 zshaohui

1.缺料导出修改

2.uid出库,库位被禁用了,不允许出库
1 个父辈 a1e75e91
......@@ -198,7 +198,7 @@ public class DeviceController {
}
//料号为335S00571不允许入库
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 {
for (LastStatusInfo lastStatusInfo : lastStatusInfoList) {
if (errorText.equals(lastStatusInfo.getErrorText())) {
//超过1个小时,重新统计
if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() >= 1000 * 60 * 30) {
if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() < 1000 * 60 * 10) {
hasSameStatus = true;
break;
}
......@@ -390,9 +390,9 @@ public class KafkaService {
LastStatusInfo lastStatusInfo = new LastStatusInfo(machineId, errorCode, errorText, System.currentTimeMillis());
lastStatusInfoList.add(lastStatusInfo);
}
//清理超过个小时的
//清理超过个小时的
lastStatusInfoList = lastStatusInfoList.stream()
.filter(lastStatusInfo -> System.currentTimeMillis()- lastStatusInfo.getLastSaveTime() >= 1000 * 60 * 30)
.filter(lastStatusInfo -> System.currentTimeMillis()- lastStatusInfo.getLastSaveTime() < 1000 * 60 * 10)
.collect(Collectors.toList());
lastStatusInfoMap.put(machineId,lastStatusInfoList);
}
......@@ -406,7 +406,7 @@ public class KafkaService {
for (LastStatusInfo lastStatusInfo : lastStatusInfoList) {
if (errorText.equals(lastStatusInfo.getErrorText())) {
//超过1个小时,重新统计
if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() >= 1000 * 60 * 30) {
if (System.currentTimeMillis() - lastStatusInfo.getLastSaveTime() < 1000 * 60 * 10) {
log.info(machineId+"的报错信息和上一次相同,跳过");
hasSameStatus = true;
break;
......
......@@ -98,14 +98,39 @@ public class InnerReportController {
public PageData lackPicking(ReportQueryCondition queryCondition, Pageable pageable) {
List<OrderItemDto> dtoList = new ArrayList<>();
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) {
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.setLackReel(1);
orderItem.setLackNum(1);
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());
}
......@@ -134,8 +159,33 @@ public class InnerReportController {
headers.add(Arrays.asList("累计预警时间(分钟)"));
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) {
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<>();
dataList.add(floor);
dataList.add(orderItem.getLine());
......@@ -157,64 +207,6 @@ public class InnerReportController {
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) {
return data == null ? "" : data;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!