|
|
|
|
@ -64,7 +64,6 @@ public class StockService {
|
|
|
|
|
// Map<String, List<Stock>> shelveMap = stocks.stream().collect(Collectors.groupingBy(Stock::getShelveId));
|
|
|
|
|
// return shelveMap;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
public List<Stock> list(Integer streetId) {
|
|
|
|
|
Street street = streetService.streetById(streetId);
|
|
|
|
|
if (street == null) {
|
|
|
|
|
@ -82,6 +81,92 @@ public class StockService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public CheckStatus statusByRowColumnNew(RowColumnStatus rowColumnStatus) {
|
|
|
|
|
CheckStatus checkStatus = new CheckStatus();
|
|
|
|
|
//开始和结束行列
|
|
|
|
|
checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
|
|
|
|
|
checkStatus.setColumnEnd(rowColumnStatus.getColumnEnd());
|
|
|
|
|
checkStatus.setRowStart(rowColumnStatus.getRowStart());
|
|
|
|
|
checkStatus.setRowEnd(rowColumnStatus.getRowEnd());
|
|
|
|
|
|
|
|
|
|
//返回全部stock
|
|
|
|
|
List<Stock> stockList = new ArrayList<>();
|
|
|
|
|
//默认全部盘点正确
|
|
|
|
|
Map<String, Integer> rowTabStatus = new LinkedHashMap<>();
|
|
|
|
|
int columns = 0;
|
|
|
|
|
int rows = 0;
|
|
|
|
|
for (String rowTab : rowColumnStatus.getRowTabs()) {
|
|
|
|
|
rows = getMax(rowTab, rows);
|
|
|
|
|
rowTabStatus.put(rowTab, 0);
|
|
|
|
|
}
|
|
|
|
|
Map<String, Integer> columnTabStatus = new LinkedHashMap<>();
|
|
|
|
|
for (String column : rowColumnStatus.getColumnTabs()) {
|
|
|
|
|
columns = getMax(column, columns);
|
|
|
|
|
columnTabStatus.put(column, 0);
|
|
|
|
|
}
|
|
|
|
|
//获取全部盘点内容
|
|
|
|
|
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().select("status", "`row`", "`column`")
|
|
|
|
|
.eq("`street_id`", rowColumnStatus.getStreetId())
|
|
|
|
|
.eq("direction", rowColumnStatus.getDirection())
|
|
|
|
|
.eq("side", rowColumnStatus.getSide()));
|
|
|
|
|
Map<Integer, Map<Integer, Stock>> stocksMap = stocks.stream()
|
|
|
|
|
//修改盘点范围值
|
|
|
|
|
.peek(stock -> {
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, Integer> entry : rowTabStatus.entrySet()) {
|
|
|
|
|
String[] strings = entry.getKey().split(" - ");
|
|
|
|
|
if (stock.getRow() >= Integer.parseInt(strings[0]) && stock.getRow() <= Integer.parseInt(strings[1])) {
|
|
|
|
|
//若存在则先绿3
|
|
|
|
|
if(entry.getValue() == 0) entry.setValue(3);
|
|
|
|
|
//存在异常爆红2
|
|
|
|
|
if (stock.getStatus() == 1 ) {
|
|
|
|
|
entry.setValue(2);
|
|
|
|
|
}else if(entry.getValue() != 2 && stock.getStatus() == 0 ){//存在不爆红且未盘点
|
|
|
|
|
entry.setValue(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (Map.Entry<String, Integer> entry : columnTabStatus.entrySet()) {
|
|
|
|
|
String[] strings = entry.getKey().split(" - ");
|
|
|
|
|
if (stock.getColumn() >= Integer.parseInt(strings[0]) && stock.getColumn() <= Integer.parseInt(strings[1])) {
|
|
|
|
|
//若存在则先绿3
|
|
|
|
|
if(entry.getValue() == 0) entry.setValue(3);
|
|
|
|
|
//存在异常爆红2
|
|
|
|
|
if (stock.getStatus() == 1 ) {
|
|
|
|
|
entry.setValue(2);
|
|
|
|
|
}else if(entry.getValue() != 2 && stock.getStatus() == 0 ){//存在不爆红且未盘点黄色1
|
|
|
|
|
entry.setValue(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
//若未盘点修改为-1
|
|
|
|
|
.peek(stock -> {
|
|
|
|
|
if (stock.getStatus() == 0){
|
|
|
|
|
stock.setViewStatus(-1);
|
|
|
|
|
}else stock.setViewStatus(stock.getStatus());
|
|
|
|
|
})
|
|
|
|
|
.collect(Collectors.groupingBy(Stock::getColumn, Collectors.toMap(Stock::getRow, v -> v)));
|
|
|
|
|
//赋值
|
|
|
|
|
for (int j = rowColumnStatus.getColumnStart(); j <= rowColumnStatus.getColumnEnd(); j++) {
|
|
|
|
|
for (int i = rowColumnStatus.getRowStart(); i <= rowColumnStatus.getRowEnd(); i++) {
|
|
|
|
|
if (stocksMap.get(j) == null || stocksMap.get(j).get(i) == null) {
|
|
|
|
|
Stock stock = new Stock();
|
|
|
|
|
stock.setColumn(j);
|
|
|
|
|
stock.setRow(i);
|
|
|
|
|
stock.setStatus(0);
|
|
|
|
|
stock.setViewStatus(0);
|
|
|
|
|
//stock.setShelveId(shelveId);
|
|
|
|
|
stockList.add(stock);
|
|
|
|
|
}else stockList.add(stocksMap.get(j).get(i));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkStatus.setColumnTabStatus(columnTabStatus);
|
|
|
|
|
checkStatus.setRowTabStatus(rowTabStatus);
|
|
|
|
|
checkStatus.setStocks(stockList);
|
|
|
|
|
return checkStatus;
|
|
|
|
|
}
|
|
|
|
|
public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus) {
|
|
|
|
|
CheckStatus checkStatus = new CheckStatus();
|
|
|
|
|
checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
|
|
|
|
|
@ -105,6 +190,7 @@ public class StockService {
|
|
|
|
|
columns = getMax(column, columns);
|
|
|
|
|
columnTabStatus.put(column, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, Integer> columnTabCorrectCount = new LinkedHashMap<>();
|
|
|
|
|
Map<String, Integer> rowTabCorrectCount = new LinkedHashMap<>();
|
|
|
|
|
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().select("status", "`row`", "`column`").eq("`street_id`", rowColumnStatus.getStreetId()).eq("direction", rowColumnStatus.getDirection()).eq("side", rowColumnStatus.getSide()));
|
|
|
|
|
@ -156,24 +242,6 @@ public class StockService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for(Map.Entry<String,Integer> entry: rowTabCorrectCount.entrySet()){
|
|
|
|
|
String [] strings = entry.getKey().split(" - ");
|
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
|
Integer tabEnd = Integer.valueOf(strings[1]);
|
|
|
|
|
int counts = (tabEnd- tabStart + 1) * rows;
|
|
|
|
|
if(counts == entry.getValue()){
|
|
|
|
|
rowTabStatus.put(entry.getKey(),2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for(Map.Entry<String,Integer> entry: columnTabCorrectCount.entrySet()){
|
|
|
|
|
String [] strings = entry.getKey().split(" - ");
|
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
|
Integer tabEnd = Integer.valueOf(strings[1]);
|
|
|
|
|
int counts = (tabEnd- tabStart + 1) * rows;
|
|
|
|
|
if(counts == entry.getValue()){
|
|
|
|
|
columnTabStatus.put(entry.getKey(),2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkStatus.setColumnTabStatus(columnTabStatus);
|
|
|
|
|
checkStatus.setRowTabStatus(rowTabStatus);
|
|
|
|
|
@ -234,7 +302,6 @@ public class StockService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Boolean isRowColumnInTab(Stock stock, String tab, Boolean isRow) {
|
|
|
|
|
String[] strings = tab.split(" - ");
|
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
|
@ -326,6 +393,11 @@ public class StockService {
|
|
|
|
|
stock.setRow(stockCheck.getRow());
|
|
|
|
|
//stock.setShelveId(stockCheck.getShelveId());
|
|
|
|
|
stock.setStatus(0);
|
|
|
|
|
Street street = streetMapper.selectById(stockCheck.getStreetId());
|
|
|
|
|
stock.setStreetName(street.getName());
|
|
|
|
|
} else {
|
|
|
|
|
Street street = streetMapper.selectById(stock.getStreetId());
|
|
|
|
|
stock.setStreetName(street.getName());
|
|
|
|
|
}
|
|
|
|
|
List<StockLog> stockLogs = stockLogMapper.selectList(new QueryWrapper<StockLog>().eq("`row`", stockCheck.getRow()).eq("`column`", stockCheck.getColumn()).eq("street_id", stockCheck.getStreetId()).eq("direction", stockCheck.getDirection()).eq("side", stockCheck.getSide()).orderByDesc("create_time").last(" limit 2"));
|
|
|
|
|
if (stockLogs.size() == 1) {
|
|
|
|
|
@ -337,6 +409,34 @@ public class StockService {
|
|
|
|
|
return stock;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Stock nextOne(Long id) {
|
|
|
|
|
QueryWrapper<Stock> stockQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
|
|
stockQueryWrapper.eq("status", "0")
|
|
|
|
|
.ne(id != null, "id", id)
|
|
|
|
|
.orderByDesc("export_time").last("limit 1");
|
|
|
|
|
Stock stock = stockMapper.selectOne(stockQueryWrapper);
|
|
|
|
|
if (stock != null) {
|
|
|
|
|
Street street = streetMapper.selectById(stock.getStreetId());
|
|
|
|
|
stock.setStreetName(street.getName());
|
|
|
|
|
List<StockLog> stockLogs = stockLogMapper.selectList(new QueryWrapper<StockLog>()
|
|
|
|
|
.eq("`row`", stock.getRow())
|
|
|
|
|
.eq("`column`", stock.getColumn())
|
|
|
|
|
.eq("street_id", stock.getStreetId())
|
|
|
|
|
.eq("direction", stock.getDirection())
|
|
|
|
|
.eq("side", stock.getSide())
|
|
|
|
|
.orderByDesc("create_time").last(" limit 2"));
|
|
|
|
|
if (stockLogs.size() == 1) {
|
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
|
} else if (stockLogs.size() == 2) {
|
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
|
stock.setPreoperationPic(stockLogs.get(1).getPic());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return stock;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Stock stock(StockCheckSearch stockCheckSearch) {
|
|
|
|
|
// String shelveId = streetService.getShevelId(stockCheckSearch.getSRMNumber(),stockCheckSearch.getDirection(),stockCheckSearch.getSeparation());
|
|
|
|
|
// Assert.notNull(shelveId,"无该货架信息");
|
|
|
|
|
@ -437,5 +537,4 @@ public class StockService {
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|