1.下一个盘点

2.重写盘点信息
3.全部盘点接口
4.将随行带动的盘点屏蔽
chengdu-mxbc-qsl
LAPTOP-S9HJSOEB\昊天 3 years ago
parent dffb14daa7
commit 5af3a415ce

@ -67,7 +67,7 @@ public class StockController {
@PostMapping("/statusByRowColumn")
@ApiOperation(value = "行列的盘点状态")
public Result<CheckStatus>checkStatus(@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<Stock> nextOne(@RequestBody Stock stock) {
return Result.success(stockService.nextOne(stock.getId()));
}
@ApiOperation(value = "获取盘点信息")
@RequestMapping(value = "/checkInfo", method = RequestMethod.POST)
public Result<Stock> checkInfo(@RequestBody StockCheckSearch stockCheck) {

@ -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;
}

@ -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 {

@ -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);

@ -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 {
// }
}

@ -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

Loading…
Cancel
Save