|
|
|
@ -64,25 +64,110 @@ public class StockService {
|
|
|
|
// Map<String, List<Stock>> shelveMap = stocks.stream().collect(Collectors.groupingBy(Stock::getShelveId));
|
|
|
|
// Map<String, List<Stock>> shelveMap = stocks.stream().collect(Collectors.groupingBy(Stock::getShelveId));
|
|
|
|
// return shelveMap;
|
|
|
|
// return shelveMap;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
public List<Stock> list(Integer streetId) {
|
|
|
|
public List<Stock> list(Integer streetId) {
|
|
|
|
Street street = streetService.streetById(streetId);
|
|
|
|
Street street = streetService.streetById(streetId);
|
|
|
|
if(street == null){
|
|
|
|
if (street == null) {
|
|
|
|
return new ArrayList<>();
|
|
|
|
return new ArrayList<>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//List<String> shelves = streetService.check(street);
|
|
|
|
//List<String> shelves = streetService.check(street);
|
|
|
|
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().eq("street_id",streetId).orderByAsc("`direction`", "`side`", "`row`", "`column`"));
|
|
|
|
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().eq("street_id", streetId).orderByAsc("`direction`", "`side`", "`row`", "`column`"));
|
|
|
|
return stocks;
|
|
|
|
return stocks;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public PageInfo<Stock> page(PageSearch pageSearch) {
|
|
|
|
public PageInfo<Stock> page(PageSearch pageSearch) {
|
|
|
|
PageHelper.startPage(pageSearch.getPageNum(), pageSearch.getPageSize());
|
|
|
|
PageHelper.startPage(pageSearch.getPageNum(), pageSearch.getPageSize());
|
|
|
|
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().orderByAsc("`direction`", "`side`","`row`", "`column`"));
|
|
|
|
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().orderByAsc("`direction`", "`side`", "`row`", "`column`"));
|
|
|
|
return new PageInfo<>(stocks);
|
|
|
|
return new PageInfo<>(stocks);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus){
|
|
|
|
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 checkStatus = new CheckStatus();
|
|
|
|
checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
|
|
|
|
checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
|
|
|
|
checkStatus.setColumnEnd(rowColumnStatus.getColumnEnd());
|
|
|
|
checkStatus.setColumnEnd(rowColumnStatus.getColumnEnd());
|
|
|
|
@ -91,64 +176,65 @@ public class StockService {
|
|
|
|
//checkStatus.setShelveId(rowColumnStatus.getShelveId());
|
|
|
|
//checkStatus.setShelveId(rowColumnStatus.getShelveId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Stock>stockList = new ArrayList<>();
|
|
|
|
List<Stock> stockList = new ArrayList<>();
|
|
|
|
//默认全部盘点正确
|
|
|
|
//默认全部盘点正确
|
|
|
|
Map<String,Integer> rowTabStatus = new LinkedHashMap<>();
|
|
|
|
Map<String, Integer> rowTabStatus = new LinkedHashMap<>();
|
|
|
|
int columns = 0;
|
|
|
|
int columns = 0;
|
|
|
|
int rows = 0;
|
|
|
|
int rows = 0;
|
|
|
|
for(String rowTab: rowColumnStatus.getRowTabs()){
|
|
|
|
for (String rowTab : rowColumnStatus.getRowTabs()) {
|
|
|
|
rows = getMax(rowTab,rows);
|
|
|
|
rows = getMax(rowTab, rows);
|
|
|
|
rowTabStatus.put(rowTab,0);
|
|
|
|
rowTabStatus.put(rowTab, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Map<String,Integer> columnTabStatus = new LinkedHashMap<>();
|
|
|
|
Map<String, Integer> columnTabStatus = new LinkedHashMap<>();
|
|
|
|
for(String column:rowColumnStatus.getColumnTabs()){
|
|
|
|
for (String column : rowColumnStatus.getColumnTabs()) {
|
|
|
|
columns = getMax(column,columns);
|
|
|
|
columns = getMax(column, columns);
|
|
|
|
columnTabStatus.put(column,0);
|
|
|
|
columnTabStatus.put(column, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Map<String,Integer> columnTabCorrectCount = new LinkedHashMap<>();
|
|
|
|
|
|
|
|
Map<String,Integer> rowTabCorrectCount = new LinkedHashMap<>();
|
|
|
|
Map<String, Integer> columnTabCorrectCount = 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()));
|
|
|
|
Map<String, Integer> rowTabCorrectCount = new LinkedHashMap<>();
|
|
|
|
if(CollectionUtils.isEmpty(stocks)){
|
|
|
|
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()));
|
|
|
|
stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null,stocks);
|
|
|
|
if (CollectionUtils.isEmpty(stocks)) {
|
|
|
|
|
|
|
|
stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null, stocks);
|
|
|
|
checkStatus.setStocks(stocks);
|
|
|
|
checkStatus.setStocks(stocks);
|
|
|
|
checkStatus.setRowTabStatus(rowTabStatus);
|
|
|
|
checkStatus.setRowTabStatus(rowTabStatus);
|
|
|
|
checkStatus.setColumnTabStatus(columnTabStatus);
|
|
|
|
checkStatus.setColumnTabStatus(columnTabStatus);
|
|
|
|
return checkStatus;
|
|
|
|
return checkStatus;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for(Stock stock: stocks){
|
|
|
|
for (Stock stock : stocks) {
|
|
|
|
if(stock.getStatus() == null){
|
|
|
|
if (stock.getStatus() == null) {
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(stock.getColumn()>= rowColumnStatus.getColumnStart() && stock.getColumn()<= rowColumnStatus.getColumnEnd() && stock.getRow() >= rowColumnStatus.getRowStart() && stock.getRow()<= rowColumnStatus.getRowEnd()){
|
|
|
|
if (stock.getColumn() >= rowColumnStatus.getColumnStart() && stock.getColumn() <= rowColumnStatus.getColumnEnd() && stock.getRow() >= rowColumnStatus.getRowStart() && stock.getRow() <= rowColumnStatus.getRowEnd()) {
|
|
|
|
stockList.add(stock);
|
|
|
|
stockList.add(stock);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!CollectionUtils.isEmpty(rowColumnStatus.getRowTabs())){
|
|
|
|
if (!CollectionUtils.isEmpty(rowColumnStatus.getRowTabs())) {
|
|
|
|
for(String rowTab: rowColumnStatus.getRowTabs()){
|
|
|
|
for (String rowTab : rowColumnStatus.getRowTabs()) {
|
|
|
|
if(isRowColumnInTab(stock,rowTab,true)){
|
|
|
|
if (isRowColumnInTab(stock, rowTab, true)) {
|
|
|
|
tabStatus(stock,rowTabStatus,rowTab);
|
|
|
|
tabStatus(stock, rowTabStatus, rowTab);
|
|
|
|
//盘点正确
|
|
|
|
//盘点正确
|
|
|
|
if(stock.getStatus() != 0 && stock.getStatus() != 1){
|
|
|
|
if (stock.getStatus() != 0 && stock.getStatus() != 1) {
|
|
|
|
if(rowTabCorrectCount.get(rowTab) == null){
|
|
|
|
if (rowTabCorrectCount.get(rowTab) == null) {
|
|
|
|
rowTabCorrectCount.put(rowTab,1);
|
|
|
|
rowTabCorrectCount.put(rowTab, 1);
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
int c = rowTabCorrectCount.get(rowTab);
|
|
|
|
int c = rowTabCorrectCount.get(rowTab);
|
|
|
|
rowTabCorrectCount.put(rowTab,c+1);
|
|
|
|
rowTabCorrectCount.put(rowTab, c + 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!CollectionUtils.isEmpty(rowColumnStatus.getColumnTabs())){
|
|
|
|
if (!CollectionUtils.isEmpty(rowColumnStatus.getColumnTabs())) {
|
|
|
|
for(String columnTab: rowColumnStatus.getColumnTabs()){
|
|
|
|
for (String columnTab : rowColumnStatus.getColumnTabs()) {
|
|
|
|
if(isRowColumnInTab(stock,columnTab,false)){
|
|
|
|
if (isRowColumnInTab(stock, columnTab, false)) {
|
|
|
|
tabStatus(stock,columnTabStatus,columnTab);
|
|
|
|
tabStatus(stock, columnTabStatus, columnTab);
|
|
|
|
if(stock.getStatus() != 0 && stock.getStatus() != 1){
|
|
|
|
if (stock.getStatus() != 0 && stock.getStatus() != 1) {
|
|
|
|
if(columnTabCorrectCount.get(columnTab) == null){
|
|
|
|
if (columnTabCorrectCount.get(columnTab) == null) {
|
|
|
|
columnTabCorrectCount.put(columnTab,1);
|
|
|
|
columnTabCorrectCount.put(columnTab, 1);
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
int c = columnTabCorrectCount.get(columnTab);
|
|
|
|
int c = columnTabCorrectCount.get(columnTab);
|
|
|
|
columnTabCorrectCount.put(columnTab,c+1);
|
|
|
|
columnTabCorrectCount.put(columnTab, c + 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -156,51 +242,33 @@ 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.setColumnTabStatus(columnTabStatus);
|
|
|
|
checkStatus.setRowTabStatus(rowTabStatus);
|
|
|
|
checkStatus.setRowTabStatus(rowTabStatus);
|
|
|
|
checkStatus.setStocks(stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null,stockList));
|
|
|
|
checkStatus.setStocks(stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null, stockList));
|
|
|
|
return checkStatus;
|
|
|
|
return checkStatus;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<Stock> stockInit(Integer rowStart, Integer rowEnd,Integer columnStart,Integer columnEnd,String shelveId,List<Stock> readyList){
|
|
|
|
private List<Stock> stockInit(Integer rowStart, Integer rowEnd, Integer columnStart, Integer columnEnd, String shelveId, List<Stock> readyList) {
|
|
|
|
Map<Integer,Map<Integer,Boolean>> map = new HashMap<>();
|
|
|
|
Map<Integer, Map<Integer, Boolean>> map = new HashMap<>();
|
|
|
|
readyList.forEach(stock -> {
|
|
|
|
readyList.forEach(stock -> {
|
|
|
|
if(map.get(stock.getRow()) == null){
|
|
|
|
if (map.get(stock.getRow()) == null) {
|
|
|
|
Map<Integer,Boolean> columnMap = new HashMap<>();
|
|
|
|
Map<Integer, Boolean> columnMap = new HashMap<>();
|
|
|
|
columnMap.put(stock.getColumn(),true);
|
|
|
|
columnMap.put(stock.getColumn(), true);
|
|
|
|
map.put(stock.getRow(),columnMap);
|
|
|
|
map.put(stock.getRow(), columnMap);
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
Map<Integer,Boolean> columnMap = map.get(stock.getRow());
|
|
|
|
Map<Integer, Boolean> columnMap = map.get(stock.getRow());
|
|
|
|
if(columnMap.get(stock.getColumn()) == null){
|
|
|
|
if (columnMap.get(stock.getColumn()) == null) {
|
|
|
|
columnMap.put(stock.getColumn(),true);
|
|
|
|
columnMap.put(stock.getColumn(), true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
map.put(stock.getRow(),columnMap);
|
|
|
|
map.put(stock.getRow(), columnMap);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
for(int i = rowStart;i<=rowEnd;i++){
|
|
|
|
for (int i = rowStart; i <= rowEnd; i++) {
|
|
|
|
Map<Integer,Boolean> columnMap = map.get(i);
|
|
|
|
Map<Integer, Boolean> columnMap = map.get(i);
|
|
|
|
for(int j = columnStart;j<=columnEnd;j++){
|
|
|
|
for (int j = columnStart; j <= columnEnd; j++) {
|
|
|
|
if(columnMap == null || columnMap.get(j) == null){
|
|
|
|
if (columnMap == null || columnMap.get(j) == null) {
|
|
|
|
Stock stock = new Stock();
|
|
|
|
Stock stock = new Stock();
|
|
|
|
stock.setColumn(j);
|
|
|
|
stock.setColumn(j);
|
|
|
|
stock.setRow(i);
|
|
|
|
stock.setRow(i);
|
|
|
|
@ -219,35 +287,34 @@ public class StockService {
|
|
|
|
// 盘点异常 未盘点 盘点正确
|
|
|
|
// 盘点异常 未盘点 盘点正确
|
|
|
|
// 1000 100 10
|
|
|
|
// 1000 100 10
|
|
|
|
|
|
|
|
|
|
|
|
private void tabStatus(Stock stock,Map<String,Integer> tabStatus,String tab){
|
|
|
|
private void tabStatus(Stock stock, Map<String, Integer> tabStatus, String tab) {
|
|
|
|
if(tabStatus.get(tab) == null){
|
|
|
|
if (tabStatus.get(tab) == null) {
|
|
|
|
tabStatus.put(tab,stock.getStatus());
|
|
|
|
tabStatus.put(tab, stock.getStatus());
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
Integer status = tabStatus.get(tab);
|
|
|
|
Integer status = tabStatus.get(tab);
|
|
|
|
if(stock.getStatus() == 1){
|
|
|
|
if (stock.getStatus() == 1) {
|
|
|
|
//盘点异常为最高
|
|
|
|
//盘点异常为最高
|
|
|
|
tabStatus.put(tab,1);
|
|
|
|
tabStatus.put(tab, 1);
|
|
|
|
}else if(stock.getStatus() == 0 && status != 1) {
|
|
|
|
} else if (stock.getStatus() == 0 && status != 1) {
|
|
|
|
tabStatus.put(tab, 0);
|
|
|
|
tabStatus.put(tab, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Boolean isRowColumnInTab(Stock stock, String tab, Boolean isRow) {
|
|
|
|
private Boolean isRowColumnInTab(Stock stock,String tab,Boolean isRow){
|
|
|
|
String[] strings = tab.split(" - ");
|
|
|
|
String [] strings = tab.split(" - ");
|
|
|
|
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
Integer tabEnd = Integer.valueOf(strings[1]);
|
|
|
|
Integer tabEnd = Integer.valueOf(strings[1]);
|
|
|
|
if(isRow){
|
|
|
|
if (isRow) {
|
|
|
|
return stock.getRow() >= tabStart && stock.getRow() <= tabEnd;
|
|
|
|
return stock.getRow() >= tabStart && stock.getRow() <= tabEnd;
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
return stock.getColumn() >= tabStart && stock.getColumn() <= tabEnd;
|
|
|
|
return stock.getColumn() >= tabStart && stock.getColumn() <= tabEnd;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Integer getMax(String tab,Integer max){
|
|
|
|
public Integer getMax(String tab, Integer max) {
|
|
|
|
String [] strings = tab.split(" - ");
|
|
|
|
String[] strings = tab.split(" - ");
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
Integer tabStart = Integer.valueOf(strings[0]);
|
|
|
|
Integer tabEnd = Integer.valueOf(strings[1]);
|
|
|
|
Integer tabEnd = Integer.valueOf(strings[1]);
|
|
|
|
int a = tabStart > tabEnd ? tabStart : tabEnd;
|
|
|
|
int a = tabStart > tabEnd ? tabStart : tabEnd;
|
|
|
|
@ -288,9 +355,9 @@ public class StockService {
|
|
|
|
public List<StockExportExcel> exportAllExcels() {
|
|
|
|
public List<StockExportExcel> exportAllExcels() {
|
|
|
|
List<Stock> stocks = stockMapper.selectByMap(new HashMap<>());
|
|
|
|
List<Stock> stocks = stockMapper.selectByMap(new HashMap<>());
|
|
|
|
List<Street> streets = streetMapper.selectByMap(new HashMap<>());
|
|
|
|
List<Street> streets = streetMapper.selectByMap(new HashMap<>());
|
|
|
|
Map<Integer,String> streetMap = new HashMap<>();
|
|
|
|
Map<Integer, String> streetMap = new HashMap<>();
|
|
|
|
streets.forEach(street -> {
|
|
|
|
streets.forEach(street -> {
|
|
|
|
streetMap.put(street.getId(),street.getName());
|
|
|
|
streetMap.put(street.getId(), street.getName());
|
|
|
|
});
|
|
|
|
});
|
|
|
|
//Street street = streetService.streetById(streetId);
|
|
|
|
//Street street = streetService.streetById(streetId);
|
|
|
|
List<StockExportExcel> stockExportExcels = new ArrayList<>(stocks.size());
|
|
|
|
List<StockExportExcel> stockExportExcels = new ArrayList<>(stocks.size());
|
|
|
|
@ -319,29 +386,62 @@ public class StockService {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public Stock stockInfo(StockCheck stockCheck) {
|
|
|
|
public Stock stockInfo(StockCheck stockCheck) {
|
|
|
|
|
|
|
|
|
|
|
|
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(stockCheck.getStreetId(),stockCheck.getDirection(),stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn());
|
|
|
|
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(stockCheck.getStreetId(), stockCheck.getDirection(), stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn());
|
|
|
|
if(stock == null){
|
|
|
|
if (stock == null) {
|
|
|
|
stock = new Stock();
|
|
|
|
stock = new Stock();
|
|
|
|
stock.setColumn(stockCheck.getColumn());
|
|
|
|
stock.setColumn(stockCheck.getColumn());
|
|
|
|
stock.setRow(stockCheck.getRow());
|
|
|
|
stock.setRow(stockCheck.getRow());
|
|
|
|
//stock.setShelveId(stockCheck.getShelveId());
|
|
|
|
//stock.setShelveId(stockCheck.getShelveId());
|
|
|
|
stock.setStatus(0);
|
|
|
|
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) {
|
|
|
|
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
|
|
|
|
} else if (stockLogs.size() == 2) {
|
|
|
|
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
|
|
|
|
stock.setPreoperationPic(stockLogs.get(1).getPic());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
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"));
|
|
|
|
return stock;
|
|
|
|
if(stockLogs.size() == 1){
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
}else if(stockLogs.size() == 2){
|
|
|
|
} else if (stockLogs.size() == 2) {
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
stock.setOveroperationPic(stockLogs.get(0).getPic());
|
|
|
|
stock.setPreoperationPic(stockLogs.get(1).getPic());
|
|
|
|
stock.setPreoperationPic(stockLogs.get(1).getPic());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return stock;
|
|
|
|
return stock;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Stock stock(StockCheckSearch stockCheckSearch){
|
|
|
|
public Stock stock(StockCheckSearch stockCheckSearch) {
|
|
|
|
// String shelveId = streetService.getShevelId(stockCheckSearch.getSRMNumber(),stockCheckSearch.getDirection(),stockCheckSearch.getSeparation());
|
|
|
|
// String shelveId = streetService.getShevelId(stockCheckSearch.getSRMNumber(),stockCheckSearch.getDirection(),stockCheckSearch.getSeparation());
|
|
|
|
// Assert.notNull(shelveId,"无该货架信息");
|
|
|
|
// Assert.notNull(shelveId,"无该货架信息");
|
|
|
|
Street street = streetService.getStreetByPlcId(stockCheckSearch.getSRMNumber());
|
|
|
|
Street street = streetService.getStreetByPlcId(stockCheckSearch.getSRMNumber());
|
|
|
|
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(street.getId(),stockCheckSearch.getDirection(),stockCheckSearch.getSeparation(),stockCheckSearch.getRow(),stockCheckSearch.getColumn());
|
|
|
|
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(street.getId(), stockCheckSearch.getDirection(), stockCheckSearch.getSeparation(), stockCheckSearch.getRow(), stockCheckSearch.getColumn());
|
|
|
|
return stock;
|
|
|
|
return stock;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -357,10 +457,10 @@ public class StockService {
|
|
|
|
Integer oldStatus = stock.getStatus();
|
|
|
|
Integer oldStatus = stock.getStatus();
|
|
|
|
//Assert.isTrue(StockStatus.ERROR.getStatus().equals(oldStatus), "无需核对");
|
|
|
|
//Assert.isTrue(StockStatus.ERROR.getStatus().equals(oldStatus), "无需核对");
|
|
|
|
|
|
|
|
|
|
|
|
log.info("check stock correct, street_id:{},direction:{},side:{},row:{},column:{}", stockCheck.getStreetId(),stockCheck.getDirection(),stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn());
|
|
|
|
log.info("check stock correct, street_id:{},direction:{},side:{},row:{},column:{}", stockCheck.getStreetId(), stockCheck.getDirection(), stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn());
|
|
|
|
if(stockCheck.getOk() == 1){
|
|
|
|
if (stockCheck.getOk() == 1) {
|
|
|
|
stock.setStatus(StockStatus.MANUAL.getStatus());
|
|
|
|
stock.setStatus(StockStatus.MANUAL.getStatus());
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
stock.setStatus(StockStatus.ERROR.getStatus());
|
|
|
|
stock.setStatus(StockStatus.ERROR.getStatus());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -372,7 +472,7 @@ public class StockService {
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private CheckLogMapper checkLogMapper;
|
|
|
|
private CheckLogMapper checkLogMapper;
|
|
|
|
|
|
|
|
|
|
|
|
private void checkLog(Stock stock){
|
|
|
|
private void checkLog(Stock stock) {
|
|
|
|
CheckLog checkLog = new CheckLog();
|
|
|
|
CheckLog checkLog = new CheckLog();
|
|
|
|
checkLog.setRow(stock.getRow());
|
|
|
|
checkLog.setRow(stock.getRow());
|
|
|
|
checkLog.setColumn(stock.getColumn());
|
|
|
|
checkLog.setColumn(stock.getColumn());
|
|
|
|
@ -396,7 +496,7 @@ public class StockService {
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public Stock checkByMan(CheckByMan checkByMan) {
|
|
|
|
public Stock checkByMan(CheckByMan checkByMan) {
|
|
|
|
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(checkByMan.getStreetId(),checkByMan.getDirection(),checkByMan.getSide(),checkByMan.getRow(),checkByMan.getColumn());
|
|
|
|
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(checkByMan.getStreetId(), checkByMan.getDirection(), checkByMan.getSide(), checkByMan.getRow(), checkByMan.getColumn());
|
|
|
|
Assert.notNull(stock, "该货位暂时没有记录");
|
|
|
|
Assert.notNull(stock, "该货位暂时没有记录");
|
|
|
|
Boolean same = checkByMan.getCategory().equals(stock.getCategory()) && checkByMan.getCount().equals(stock.getCount());
|
|
|
|
Boolean same = checkByMan.getCategory().equals(stock.getCategory()) && checkByMan.getCount().equals(stock.getCount());
|
|
|
|
Assert.isTrue(!same, "品规和数量与原有记录相同");
|
|
|
|
Assert.isTrue(!same, "品规和数量与原有记录相同");
|
|
|
|
@ -414,7 +514,7 @@ public class StockService {
|
|
|
|
public void allStockCheck() {
|
|
|
|
public void allStockCheck() {
|
|
|
|
Stock stock = new Stock();
|
|
|
|
Stock stock = new Stock();
|
|
|
|
stock.setStatus(3);
|
|
|
|
stock.setStatus(3);
|
|
|
|
stockMapper.update(stock,new QueryWrapper<Stock>().eq("status","0"));
|
|
|
|
stockMapper.update(stock, new QueryWrapper<Stock>().eq("status", "0"));
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -437,5 +537,4 @@ public class StockService {
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|