From 5af3a415cef2add463f995d95dfd37e968e25203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Wed, 19 Apr 2023 16:26:11 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=B8=8B=E4=B8=80=E4=B8=AA=E7=9B=98=E7=82=B9?= =?UTF-8?q?=202.=E9=87=8D=E5=86=99=E7=9B=98=E7=82=B9=E4=BF=A1=E6=81=AF=203?= =?UTF-8?q?.=E5=85=A8=E9=83=A8=E7=9B=98=E7=82=B9=E6=8E=A5=E5=8F=A3=204.?= =?UTF-8?q?=E5=B0=86=E9=9A=8F=E8=A1=8C=E5=B8=A6=E5=8A=A8=E7=9A=84=E7=9B=98?= =?UTF-8?q?=E7=82=B9=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/StockController.java | 8 +- .../java/com/zhehekeji/web/entity/Stock.java | 8 + .../com/zhehekeji/web/service/PlcService.java | 24 +- .../web/service/StockCheckRunnable.java | 17 +- .../zhehekeji/web/service/StockService.java | 307 ++++++++++++------ .../web/service/ksec/KsecDecoder.java | 2 +- 6 files changed, 258 insertions(+), 108 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/controller/StockController.java b/web/src/main/java/com/zhehekeji/web/controller/StockController.java index 9b6058d..59ac460 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StockController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StockController.java @@ -67,7 +67,7 @@ public class StockController { @PostMapping("/statusByRowColumn") @ApiOperation(value = "行列的盘点状态") public ResultcheckStatus(@Validated @RequestBody RowColumnStatus rowColumnStatus){ - return Result.success(stockService.statusByRowColumn(rowColumnStatus)); + return Result.success(stockService.statusByRowColumnNew(rowColumnStatus)); } // @GetMapping("/list") @@ -113,6 +113,12 @@ public class StockController { return Result.success(stockService.stockInfo(stockCheck)); } + @ApiOperation(value = "下一个盘点信息") + @RequestMapping(value = "/nextOne", method = RequestMethod.POST) + public Result nextOne(@RequestBody Stock stock) { + return Result.success(stockService.nextOne(stock.getId())); + } + @ApiOperation(value = "获取盘点信息") @RequestMapping(value = "/checkInfo", method = RequestMethod.POST) public Result checkInfo(@RequestBody StockCheckSearch stockCheck) { diff --git a/web/src/main/java/com/zhehekeji/web/entity/Stock.java b/web/src/main/java/com/zhehekeji/web/entity/Stock.java index 9d53521..85994e8 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Stock.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Stock.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @@ -16,6 +17,7 @@ import java.time.LocalDateTime; @TableName("`stock`") @NoArgsConstructor @AllArgsConstructor +@Builder public class Stock { @TableId(type = IdType.AUTO) @@ -70,6 +72,9 @@ public class Stock { @ApiModelProperty("0:未盘点 1:盘点异常 2:核对正确") private Integer status; + @TableField(exist = false) + private Integer viewStatus; + @ApiModelProperty("操作前的图片") private String preoperationPic; @@ -82,5 +87,8 @@ public class Stock { @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime exportTime; + @TableField(exist = false) + private String streetName; + } diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index 88036df..0dc1f1d 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -603,7 +603,29 @@ public class PlcService { Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn()); //核对异常 if(stock == null){ - stock = new Stock(null,null,plcCmdInfo.getOrderNum(),plcCmdInfo.getLotnum(),"", null,null,wmsCode,wmsCatagary,null,wmsTrayCode,"",orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn(),0,null,null,path, LocalDateTime.now()); + /* stock = new Stock(null,null,plcCmdInfo.getOrderNum(),plcCmdInfo.getLotnum() + ,"", null,null,wmsCode,wmsCatagary,null, + wmsTrayCode,"",orderInfo.getStreetId(), + orderInfo.getLeftRight(),orderInfo.getSeparation(), + orderInfo.getRow(),orderInfo.getColumn(),0,null,null, + path, LocalDateTime.now(),null);*/ + stock = Stock.builder() + .checkNum(plcCmdInfo.getOrderNum()) + .lotnum(plcCmdInfo.getLotnum()) + .code("") + .wmsCode(wmsCode) + .wmsCategory(wmsCatagary) + .wmsTrayCode(wmsTrayCode) + .trayCode("") + .streetId(orderInfo.getStreetId()) + .direction(orderInfo.getLeftRight()) + .side(orderInfo.getSeparation()) + .row(orderInfo.getRow()) + .column(orderInfo.getColumn()) + .status(0) + .checkPic(path) + .exportTime(LocalDateTime.now()) + .build(); stockMapper.insert(stock); log.info("stockmapper insert new stock info."); }else { diff --git a/web/src/main/java/com/zhehekeji/web/service/StockCheckRunnable.java b/web/src/main/java/com/zhehekeji/web/service/StockCheckRunnable.java index b588608..09d479f 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockCheckRunnable.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockCheckRunnable.java @@ -97,7 +97,22 @@ public class StockCheckRunnable implements Runnable { status = 2; } if(stock == null){ - stock = new Stock(null,null,plcCmdInfo.getOrderNum(),plcCmdInfo.getLotnum(),scanCode, null,null,wmsCode,null,null,wmsTrayCode,trayCode,orderInfo.getStreetId(),orderInfo.getLeftRight(),orderInfo.getSeparation(),orderInfo.getRow(),orderInfo.getColumn(),status,null,null,path, LocalDateTime.now()); + stock = Stock.builder() + .checkNum(plcCmdInfo.getOrderNum()) + .lotnum(plcCmdInfo.getLotnum()) + .code(scanCode) + .wmsCode(wmsCode) + .wmsTrayCode(wmsTrayCode) + .trayCode(trayCode) + .streetId(orderInfo.getStreetId()) + .direction(orderInfo.getLeftRight()) + .side(orderInfo.getSeparation()) + .row(orderInfo.getRow()) + .column(orderInfo.getColumn()) + .status(status) + .checkPic(path) + .exportTime(LocalDateTime.now()) + .build(); stockMapper.insert(stock); }else { stock.setStatus(status); diff --git a/web/src/main/java/com/zhehekeji/web/service/StockService.java b/web/src/main/java/com/zhehekeji/web/service/StockService.java index f68a24d..159caca 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -64,25 +64,110 @@ public class StockService { // Map> shelveMap = stocks.stream().collect(Collectors.groupingBy(Stock::getShelveId)); // return shelveMap; // } - public List list(Integer streetId) { Street street = streetService.streetById(streetId); - if(street == null){ + if (street == null) { return new ArrayList<>(); } //List shelves = streetService.check(street); - List stocks = stockMapper.selectList(new QueryWrapper().eq("street_id",streetId).orderByAsc("`direction`", "`side`", "`row`", "`column`")); + List stocks = stockMapper.selectList(new QueryWrapper().eq("street_id", streetId).orderByAsc("`direction`", "`side`", "`row`", "`column`")); return stocks; } public PageInfo page(PageSearch pageSearch) { PageHelper.startPage(pageSearch.getPageNum(), pageSearch.getPageSize()); - List stocks = stockMapper.selectList(new QueryWrapper().orderByAsc("`direction`", "`side`","`row`", "`column`")); + List stocks = stockMapper.selectList(new QueryWrapper().orderByAsc("`direction`", "`side`", "`row`", "`column`")); 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 stockList = new ArrayList<>(); + //默认全部盘点正确 + Map rowTabStatus = new LinkedHashMap<>(); + int columns = 0; + int rows = 0; + for (String rowTab : rowColumnStatus.getRowTabs()) { + rows = getMax(rowTab, rows); + rowTabStatus.put(rowTab, 0); + } + Map columnTabStatus = new LinkedHashMap<>(); + for (String column : rowColumnStatus.getColumnTabs()) { + columns = getMax(column, columns); + columnTabStatus.put(column, 0); + } + //获取全部盘点内容 + List stocks = stockMapper.selectList(new QueryWrapper().select("status", "`row`", "`column`") + .eq("`street_id`", rowColumnStatus.getStreetId()) + .eq("direction", rowColumnStatus.getDirection()) + .eq("side", rowColumnStatus.getSide())); + Map> stocksMap = stocks.stream() + //修改盘点范围值 + .peek(stock -> { + + for (Map.Entry 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 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()); checkStatus.setColumnEnd(rowColumnStatus.getColumnEnd()); @@ -91,64 +176,65 @@ public class StockService { //checkStatus.setShelveId(rowColumnStatus.getShelveId()); - ListstockList = new ArrayList<>(); + List stockList = new ArrayList<>(); //默认全部盘点正确 - Map rowTabStatus = new LinkedHashMap<>(); + Map rowTabStatus = new LinkedHashMap<>(); int columns = 0; int rows = 0; - for(String rowTab: rowColumnStatus.getRowTabs()){ - rows = getMax(rowTab,rows); - rowTabStatus.put(rowTab,0); + for (String rowTab : rowColumnStatus.getRowTabs()) { + rows = getMax(rowTab, rows); + rowTabStatus.put(rowTab, 0); } - Map columnTabStatus = new LinkedHashMap<>(); - for(String column:rowColumnStatus.getColumnTabs()){ - columns = getMax(column,columns); - columnTabStatus.put(column,0); + Map columnTabStatus = new LinkedHashMap<>(); + for (String column : rowColumnStatus.getColumnTabs()) { + columns = getMax(column, columns); + columnTabStatus.put(column, 0); } - Map columnTabCorrectCount = new LinkedHashMap<>(); - Map rowTabCorrectCount = new LinkedHashMap<>(); - List stocks = stockMapper.selectList(new QueryWrapper().select("status","`row`","`column`").eq("`street_id`",rowColumnStatus.getStreetId()).eq("direction",rowColumnStatus.getDirection()).eq("side",rowColumnStatus.getSide())); - if(CollectionUtils.isEmpty(stocks)){ - stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null,stocks); + + Map columnTabCorrectCount = new LinkedHashMap<>(); + Map rowTabCorrectCount = new LinkedHashMap<>(); + List stocks = stockMapper.selectList(new QueryWrapper().select("status", "`row`", "`column`").eq("`street_id`", rowColumnStatus.getStreetId()).eq("direction", rowColumnStatus.getDirection()).eq("side", rowColumnStatus.getSide())); + if (CollectionUtils.isEmpty(stocks)) { + stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null, stocks); checkStatus.setStocks(stocks); checkStatus.setRowTabStatus(rowTabStatus); checkStatus.setColumnTabStatus(columnTabStatus); return checkStatus; } - for(Stock stock: stocks){ - if(stock.getStatus() == null){ + for (Stock stock : stocks) { + if (stock.getStatus() == null) { 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); } - if(!CollectionUtils.isEmpty(rowColumnStatus.getRowTabs())){ - for(String rowTab: rowColumnStatus.getRowTabs()){ - if(isRowColumnInTab(stock,rowTab,true)){ - tabStatus(stock,rowTabStatus,rowTab); + if (!CollectionUtils.isEmpty(rowColumnStatus.getRowTabs())) { + for (String rowTab : rowColumnStatus.getRowTabs()) { + if (isRowColumnInTab(stock, rowTab, true)) { + tabStatus(stock, rowTabStatus, rowTab); //盘点正确 - if(stock.getStatus() != 0 && stock.getStatus() != 1){ - if(rowTabCorrectCount.get(rowTab) == null){ - rowTabCorrectCount.put(rowTab,1); - }else { + if (stock.getStatus() != 0 && stock.getStatus() != 1) { + if (rowTabCorrectCount.get(rowTab) == null) { + rowTabCorrectCount.put(rowTab, 1); + } else { int c = rowTabCorrectCount.get(rowTab); - rowTabCorrectCount.put(rowTab,c+1); + rowTabCorrectCount.put(rowTab, c + 1); } } } } } - if(!CollectionUtils.isEmpty(rowColumnStatus.getColumnTabs())){ - for(String columnTab: rowColumnStatus.getColumnTabs()){ - if(isRowColumnInTab(stock,columnTab,false)){ - tabStatus(stock,columnTabStatus,columnTab); - if(stock.getStatus() != 0 && stock.getStatus() != 1){ - if(columnTabCorrectCount.get(columnTab) == null){ - columnTabCorrectCount.put(columnTab,1); - }else { + if (!CollectionUtils.isEmpty(rowColumnStatus.getColumnTabs())) { + for (String columnTab : rowColumnStatus.getColumnTabs()) { + if (isRowColumnInTab(stock, columnTab, false)) { + tabStatus(stock, columnTabStatus, columnTab); + if (stock.getStatus() != 0 && stock.getStatus() != 1) { + if (columnTabCorrectCount.get(columnTab) == null) { + columnTabCorrectCount.put(columnTab, 1); + } else { 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 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 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); - 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; } - private List stockInit(Integer rowStart, Integer rowEnd,Integer columnStart,Integer columnEnd,String shelveId,List readyList){ - Map> map = new HashMap<>(); + private List stockInit(Integer rowStart, Integer rowEnd, Integer columnStart, Integer columnEnd, String shelveId, List readyList) { + Map> map = new HashMap<>(); readyList.forEach(stock -> { - if(map.get(stock.getRow()) == null){ - Map columnMap = new HashMap<>(); - columnMap.put(stock.getColumn(),true); - map.put(stock.getRow(),columnMap); - }else { - Map columnMap = map.get(stock.getRow()); - if(columnMap.get(stock.getColumn()) == null){ - columnMap.put(stock.getColumn(),true); + if (map.get(stock.getRow()) == null) { + Map columnMap = new HashMap<>(); + columnMap.put(stock.getColumn(), true); + map.put(stock.getRow(), columnMap); + } else { + Map columnMap = map.get(stock.getRow()); + if (columnMap.get(stock.getColumn()) == null) { + columnMap.put(stock.getColumn(), true); } - map.put(stock.getRow(),columnMap); + map.put(stock.getRow(), columnMap); } }); - for(int i = rowStart;i<=rowEnd;i++){ - Map columnMap = map.get(i); - for(int j = columnStart;j<=columnEnd;j++){ - if(columnMap == null || columnMap.get(j) == null){ + for (int i = rowStart; i <= rowEnd; i++) { + Map columnMap = map.get(i); + for (int j = columnStart; j <= columnEnd; j++) { + if (columnMap == null || columnMap.get(j) == null) { Stock stock = new Stock(); stock.setColumn(j); stock.setRow(i); @@ -219,35 +287,34 @@ public class StockService { // 盘点异常 未盘点 盘点正确 // 1000 100 10 - private void tabStatus(Stock stock,Map tabStatus,String tab){ - if(tabStatus.get(tab) == null){ - tabStatus.put(tab,stock.getStatus()); - }else { + private void tabStatus(Stock stock, Map tabStatus, String tab) { + if (tabStatus.get(tab) == null) { + tabStatus.put(tab, stock.getStatus()); + } else { Integer status = tabStatus.get(tab); - if(stock.getStatus() == 1){ + if (stock.getStatus() == 1) { //盘点异常为最高 - tabStatus.put(tab,1); - }else if(stock.getStatus() == 0 && status != 1) { + tabStatus.put(tab, 1); + } else if (stock.getStatus() == 0 && status != 1) { tabStatus.put(tab, 0); } } } - - private Boolean isRowColumnInTab(Stock stock,String tab,Boolean isRow){ - String [] strings = tab.split(" - "); + private Boolean isRowColumnInTab(Stock stock, String tab, Boolean isRow) { + String[] strings = tab.split(" - "); Integer tabStart = Integer.valueOf(strings[0]); Integer tabEnd = Integer.valueOf(strings[1]); - if(isRow){ + if (isRow) { return stock.getRow() >= tabStart && stock.getRow() <= tabEnd; - }else { + } else { return stock.getColumn() >= tabStart && stock.getColumn() <= tabEnd; } } - public Integer getMax(String tab,Integer max){ - String [] strings = tab.split(" - "); + public Integer getMax(String tab, Integer max) { + String[] strings = tab.split(" - "); Integer tabStart = Integer.valueOf(strings[0]); Integer tabEnd = Integer.valueOf(strings[1]); int a = tabStart > tabEnd ? tabStart : tabEnd; @@ -288,9 +355,9 @@ public class StockService { public List exportAllExcels() { List stocks = stockMapper.selectByMap(new HashMap<>()); List streets = streetMapper.selectByMap(new HashMap<>()); - Map streetMap = new HashMap<>(); + Map streetMap = new HashMap<>(); streets.forEach(street -> { - streetMap.put(street.getId(),street.getName()); + streetMap.put(street.getId(), street.getName()); }); //Street street = streetService.streetById(streetId); List stockExportExcels = new ArrayList<>(stocks.size()); @@ -319,29 +386,62 @@ public class StockService { */ public Stock stockInfo(StockCheck stockCheck) { - Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(stockCheck.getStreetId(),stockCheck.getDirection(),stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn()); - if(stock == null){ + Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(stockCheck.getStreetId(), stockCheck.getDirection(), stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn()); + if (stock == null) { stock = new Stock(); stock.setColumn(stockCheck.getColumn()); 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 stockLogs = stockLogMapper.selectList(new QueryWrapper().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){ + List stockLogs = stockLogMapper.selectList(new QueryWrapper().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){ + } else if (stockLogs.size() == 2) { stock.setOveroperationPic(stockLogs.get(0).getPic()); stock.setPreoperationPic(stockLogs.get(1).getPic()); } return stock; } - public Stock stock(StockCheckSearch stockCheckSearch){ + public Stock nextOne(Long id) { + QueryWrapper 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 stockLogs = stockLogMapper.selectList(new QueryWrapper() + .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,"无该货架信息"); 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; } @@ -357,10 +457,10 @@ public class StockService { Integer oldStatus = stock.getStatus(); //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()); - if(stockCheck.getOk() == 1){ + 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) { stock.setStatus(StockStatus.MANUAL.getStatus()); - }else { + } else { stock.setStatus(StockStatus.ERROR.getStatus()); } @@ -372,7 +472,7 @@ public class StockService { @Resource private CheckLogMapper checkLogMapper; - private void checkLog(Stock stock){ + private void checkLog(Stock stock) { CheckLog checkLog = new CheckLog(); checkLog.setRow(stock.getRow()); checkLog.setColumn(stock.getColumn()); @@ -396,7 +496,7 @@ public class StockService { * @return */ 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, "该货位暂时没有记录"); Boolean same = checkByMan.getCategory().equals(stock.getCategory()) && checkByMan.getCount().equals(stock.getCount()); Assert.isTrue(!same, "品规和数量与原有记录相同"); @@ -414,7 +514,7 @@ public class StockService { public void allStockCheck() { Stock stock = new Stock(); stock.setStatus(3); - stockMapper.update(stock,new QueryWrapper().eq("status","0")); + stockMapper.update(stock, new QueryWrapper().eq("status", "0")); } @@ -437,5 +537,4 @@ public class StockService { // } - } diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index f8df4b9..25aa0dc 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -174,7 +174,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { // }else { // log.info("other D code :{}",code); // } - } else if (Cmd.E.name().equals(ksecInfo.getType())) { + } else if (Cmd.E.name().equals(ksecInfo.getType()) && !StringUtils.isEmpty(lotnum) && "1".equals(lotnum)) { //成都蜜雪冰城 没有盘点批次号,把这一块注释 lotnum // if(!StringUtils.isEmpty(lotnum) && !lotnum.equals(lastLotnum)){ // //需要把stock表truncate