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 3e61686..57392a0 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StockController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StockController.java @@ -6,13 +6,12 @@ import com.zhehekeji.common.util.ValidatorUtil; import com.zhehekeji.core.pojo.Result; import com.zhehekeji.web.entity.Stock; import com.zhehekeji.web.pojo.category.PageSearch; -import com.zhehekeji.web.pojo.stock.CheckByMan; -import com.zhehekeji.web.pojo.stock.StockCheck; -import com.zhehekeji.web.pojo.stock.StockExportExcel; +import com.zhehekeji.web.pojo.stock.*; import com.zhehekeji.web.service.StockService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.core.io.ClassPathResource; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -64,6 +63,12 @@ public class StockController { } + @PostMapping("/statusByRowColumn") + @ApiOperation(value = "行列的库存状态") + public ResultcheckStatus(@Validated @RequestBody RowColumnStatus rowColumnStatus){ + return Result.success(stockService.statusByRowColumn(rowColumnStatus)); + } + @GetMapping("/list") @ApiOperation(value = "盘点页面 返回map key:货架号 value:库存信息") public Result>> stockByStreet(@RequestParam(required = true) Integer streetId) { 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 1760105..1c7c661 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Stock.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Stock.java @@ -36,6 +36,7 @@ public class Stock { private Integer wmsCount; @ApiModelProperty("货架号") + @TableField(value = "`shelve_id`") private String shelveId; @TableField(value = "`row`") diff --git a/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckStatus.java b/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckStatus.java new file mode 100644 index 0000000..c5f1266 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/pojo/stock/CheckStatus.java @@ -0,0 +1,28 @@ +package com.zhehekeji.web.pojo.stock; + +import com.zhehekeji.web.entity.Stock; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class CheckStatus { + + private List stocks; + + private Integer columnStart; + + private Integer columnEnd; + + private Integer rowStart; + + private Integer rowEnd; + + private String shelveId; + + private Map rowTabStatus; + + private Map columnTabStatus; + +} diff --git a/web/src/main/java/com/zhehekeji/web/pojo/stock/RowColumnStatus.java b/web/src/main/java/com/zhehekeji/web/pojo/stock/RowColumnStatus.java new file mode 100644 index 0000000..afb87d7 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/pojo/stock/RowColumnStatus.java @@ -0,0 +1,31 @@ +package com.zhehekeji.web.pojo.stock; + +import lombok.Data; +import lombok.NonNull; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class RowColumnStatus { + + @NotNull(message = "column is null") + private Integer columnStart; + + @NotNull(message = "column is null") + private Integer columnEnd; + + @NotNull(message = "row is null") + private Integer rowStart; + + @NotNull(message = "row is null") + private Integer rowEnd; + + @NotEmpty(message = "shelveId is empty") + private String shelveId; + + private List rowTabs; + + private List columnTabs; +} 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 9faa02d..be061b6 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -90,6 +90,90 @@ public class StockService { } + public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus){ + CheckStatus checkStatus = new CheckStatus(); + checkStatus.setColumnStart(rowColumnStatus.getColumnStart()); + checkStatus.setColumnEnd(rowColumnStatus.getColumnEnd()); + checkStatus.setRowStart(rowColumnStatus.getRowStart()); + checkStatus.setRowEnd(rowColumnStatus.getRowEnd()); + checkStatus.setShelveId(rowColumnStatus.getShelveId()); + + List stocks = stockMapper.selectList(new QueryWrapper().select("status","`row`","`column`","`shelve_id`").eq("`shelve_id`",rowColumnStatus.getShelveId())); + if(CollectionUtils.isEmpty(stocks)){ + return checkStatus; + } + ListstockList = new ArrayList<>(); + Map rowTabStatus = new LinkedHashMap<>(); + for(String rowTab: rowColumnStatus.getRowTabs()){ + rowTabStatus.put(rowTab,0); + } + Map columnTabStatus = new LinkedHashMap<>(); + for(String column:rowColumnStatus.getColumnTabs()){ + columnTabStatus.put(column,0); + } + + for(Stock stock: stocks){ + if(stock.getStatus() == null){ + continue; + } + if(stock.getRow()>= rowColumnStatus.getColumnStart() && stock.getRow()<= rowColumnStatus.getColumnEnd() && stock.getColumn() >= rowColumnStatus.getColumnStart() && stock.getColumn()<= rowColumnStatus.getColumnEnd()){ + 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.getColumnTabs())){ + for(String columnTab: rowColumnStatus.getColumnTabs()){ + if(isRowColumnInTab(stock,columnTab,false)){ + tabStatus(stock,columnTabStatus,columnTab); + } + } + } + } + checkStatus.setColumnTabStatus(columnTabStatus); + checkStatus.setRowTabStatus(rowTabStatus); + checkStatus.setStocks(stockList); + return checkStatus; + } + + //0 : 未盘点 1:盘点异常 2:盘点正确 + + 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(status == 1 || stock.getStatus() == 1){ + //盘点异常为最高 + tabStatus.put(tab,1); + }else if(status == 0 || stock.getStatus() == 0) { + tabStatus.put(tab, 0); + }else if(status == 2 || stock.getStatus() == 2){ + tabStatus.put(tab,2); + } + } + } + + public static void main(String[] args) { + Map ss = new HashMap<>(); + + } + + 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){ + return stock.getRow() >= tabStart && stock.getRow() <= tabEnd; + }else { + return stock.getColumn() >= tabStart && stock.getColumn() <= tabEnd; + } + } + /** * 导出巷道格子信息 * diff --git a/web/src/main/java/com/zhehekeji/web/service/StreetService.java b/web/src/main/java/com/zhehekeji/web/service/StreetService.java index 276b563..e70ef66 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StreetService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StreetService.java @@ -127,8 +127,8 @@ public class StreetService { @Caching( evict = { - @CacheEvict(key="#street.id"), - @CacheEvict(key="#street.plcId"), + @CacheEvict(value = "street",key="#street.id"), + @CacheEvict(value = "streetByPlcId",key="#street.plcId"), } ) public void edit(Street street) { diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml index 5fe5cc2..589c81c 100644 --- a/web/src/main/resources/application-dev.yml +++ b/web/src/main/resources/application-dev.yml @@ -45,7 +45,7 @@ ksec: port: 3000 # ------------ 实时视频流 全部页面的格式 行列数量 videoStyleConfig: - videoStyleRow: 2 + videoStyleRow: 1 videoStyleColumn: 2 # ------------球机m3u8默认地址 %d是球机数据库id,如果数据库没有,就使用此默认值 mediaServer: http://127.0.0.1:9080/hls/camera%d.m3u8