普洱修改

just-order-普洱
LAPTOP-S9HJSOEB\昊天 3 months ago
parent 00a70cda62
commit d6e7f25a1f

@ -35,6 +35,7 @@ public class CheckLog {
private Integer count;
private String wmsCategory;
private String wmsCategoryName;
private Integer wmsCount;
@ -58,6 +59,8 @@ public class CheckLog {
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@TableField(exist=false)
private String streetName;

@ -1,10 +1,12 @@
package com.zhehekeji.web.pojo.stock;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ -33,5 +35,11 @@ public class RowColumnStatus {
private List<String> rowTabs;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTimestamp;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTimestamp;
private List<String> columnTabs;
}

@ -33,7 +33,7 @@ public class CheckLogService {
PageHelper.startPage(search.getPageNum(), search.getPageSize());
QueryWrapper<CheckLog> wrapper = new QueryWrapper<>();
wrapper.eq(!StringUtils.isEmpty(search.getLotnum()), "lotnum", search.getLotnum())
wrapper.like(!StringUtils.isEmpty(search.getLotnum()), "task_id", search.getLotnum())
.ge(search.getStartTimestamp() != null, "create_time", search.getStartTimestamp())
.le(search.getEndTimestamp() != null, "create_time", search.getEndTimestamp())
.eq(search.getLeftRight() != null && search.getLeftRight() > 0, "`direction`", search.getLeftRight())

@ -713,34 +713,35 @@ public class PlcService {
stock.setCategory(dataInfo.getTypeNum());
stock.setCount(dataInfo.getQuantity());
stock.setWmsCategoryName(dataInfo.getCategoryName());
checkLog.setWmsCategoryName(dataInfo.getCategoryName());
stock.setTaskId((dataInfo.getTaskId()));
//默认未盘点
if(stock.getCategory().length() == 6) {
if (stock.getCategory().length() == 6) {
stock.setStatus(StockStatus.PENDING.getStatus());
}
//进行品规识别,完成进行拍照
if( stock.getCategory() != null && "20".equals(stock.getCategory())) {
if (stock.getCategory() != null && "20".equals(stock.getCategory())) {
checkLog.setStatus(StockStatus.OTHER.getStatus());
stock.setStatus(StockStatus.OTHER.getStatus());
}
AlgorithmPojo algorithmPojo = sendHttp(street,stock.getDirection(),dataInfo.getTypeNum());
if (algorithmPojo!=null){
if (algorithmPojo.getResult()){
AlgorithmPojo algorithmPojo = sendHttp(street, stock.getDirection(), dataInfo.getTypeNum());
if (algorithmPojo != null) {
if (algorithmPojo.getResult()) {
checkLog.setStatus(StockStatus.SUCCESS.getStatus());
stock.setStatus(StockStatus.SUCCESS.getStatus());
stock.setCategory(dataInfo.getTypeNum());
checkLog.setCategory(dataInfo.getTypeNum());
}else {
} else {
checkLog.setStatus(StockStatus.CATEGORY_ERROR.getStatus());
stock.setStatus(StockStatus.CATEGORY_ERROR.getStatus());
}
checkLog.setPic("http://"+street.getPlcIp()+":9007/pic/"+algorithmPojo.getDeterminePath());
stock.setCheckPic("http://"+street.getPlcIp()+":9007/pic/"+algorithmPojo.getDeterminePath());
}else {
checkLog.setPic("http://" + street.getPlcIp() + ":9007/pic/" + algorithmPojo.getDeterminePath());
stock.setCheckPic("http://" + street.getPlcIp() + ":9007/pic/" + algorithmPojo.getDeterminePath());
} else {
checkLog.setStatus(StockStatus.CATEGORY_ERROR.getStatus());
stock.setStatus(StockStatus.CATEGORY_ERROR.getStatus());
}
@ -753,7 +754,7 @@ public class PlcService {
} else stockMapper.updateById(stock);
if (algorithmPojo != null) {
return algorithmPojo.getResult();
}else {
} else {
return false;
}
// try {
@ -788,13 +789,12 @@ public class PlcService {
}
public void visualCalculationResults(TransmissionPojo transmissionPojo) {
CheckLog checkLog = checkLogMapper.selectById(transmissionPojo.getCheckId());
Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("check_Num", checkLog.getId()));
Street street = streetService.getStreetByPlcId(transmissionPojo.getStreetNumber());
if( stock.getCategory() != null && "20".equals(stock.getCategory())) {
if (stock.getCategory() != null && "20".equals(stock.getCategory())) {
checkLog.setStatus(StockStatus.OTHER.getStatus());
stock.setStatus(StockStatus.OTHER.getStatus());
}
@ -817,14 +817,14 @@ public class PlcService {
}
public static AlgorithmPojo sendHttp(Street street,Integer direction , String category ){
public static AlgorithmPojo sendHttp(Street street, Integer direction, String category) {
// 创建RestTemplate实例
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(10000); // 5 seconds
factory.setReadTimeout(10000); // 5 seconds
RestTemplate restTemplate = new RestTemplate(factory);
// 定义请求URL
String url = "http://"+street.getPlcIp()+":8097/hik/distinguish?streetNumber={streetNumber}&direction={direction}&category={category}";
String url = "http://" + street.getPlcIp() + ":8097/hik/distinguish?streetNumber={streetNumber}&direction={direction}&category={category}";
// 定义请求参数
// 替换为实际的category
@ -832,7 +832,7 @@ public class PlcService {
// 发送GET请求并获取响应
try {
ResponseEntity<AlgorithmPojo> response = restTemplate.getForEntity(url, AlgorithmPojo.class, street.getPlcId(),direction, category);
ResponseEntity<AlgorithmPojo> response = restTemplate.getForEntity(url, AlgorithmPojo.class, street.getPlcId(), direction, category);
// 输出响应结果
if (response.getStatusCode().is2xxSuccessful()) {
log.info("Distinguish result: " + Objects.requireNonNull(response.getBody()).toString());
@ -841,15 +841,15 @@ public class PlcService {
System.out.println("Failed to get response. Status code: " + response.getStatusCode());
return null;
}
}catch (Exception e){
log.error("sendHttp error",e);
} catch (Exception e) {
log.error("sendHttp error", e);
return null;
}
}
public static AlgorithmPojo sendHttp(Street street,Integer direction ){
public static AlgorithmPojo sendHttp(Street street, Integer direction) {
// 创建RestTemplate实例
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(10000); // 5 seconds
@ -857,7 +857,7 @@ public class PlcService {
RestTemplate restTemplate = new RestTemplate(factory);
// 定义请求URL
String url = "http://"+street.getPlcIp()+":8097/hik/calibration?direction={direction}";
String url = "http://" + street.getPlcIp() + ":8097/hik/calibration?direction={direction}";
// 定义请求参数
// 替换为实际的category
@ -878,15 +878,15 @@ public class PlcService {
return null;
}
}catch (Exception e){
log.error("sendHttp error",e);
} catch (Exception e) {
log.error("sendHttp error", e);
return null;
}
}
public int sendHttp(String streetNumber,PlcCmdInfo plcCmdInfo, KsecDataInfo dataInfo){
public int sendHttp(String streetNumber, PlcCmdInfo plcCmdInfo, KsecDataInfo dataInfo) {
Street street = streetService.getStreetByPlcId(streetNumber);
// 创建RestTemplate实例
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
@ -894,44 +894,44 @@ public class PlcService {
factory.setReadTimeout(10000); // 5 seconds
RestTemplate restTemplate = new RestTemplate(factory);
// 定义 URL
String url = "http://"+street.getPlcIp()+":8097/category/getBoxCountByCategory?streetId={streetNumber}&category={category}";
String url = "http://" + street.getPlcIp() + ":8097/category/getBoxCountByCategory?streetId={streetNumber}&category={category}";
boolean flag = false;
int count = 0;
try {
// 发起 GET 请求
ResponseEntity<Integer> response = restTemplate.getForEntity(url, Integer.class,streetNumber,plcCmdInfo.getCategoryName());
ResponseEntity<Integer> response = restTemplate.getForEntity(url, Integer.class, streetNumber, plcCmdInfo.getCategoryName());
count = response.getBody();
flag = true;
dataInfo.setQuantity(count);
log.info("category/getBoxCountByCategory:{}",count);
log.info("category/getBoxCountByCategory:{}", count);
// 输出响应状态码和响应体
System.out.println("Status Code: " + response.getStatusCode());
}catch (Exception e){
} catch (Exception e) {
}
CheckLog checkLog = checkLogMapper.selectOne(new QueryWrapper<CheckLog>().eq("task_id",plcCmdInfo.getTaskId()).orderByDesc("create_Time").last("limit 1"));
CheckLog checkLog = checkLogMapper.selectOne(new QueryWrapper<CheckLog>().eq("task_id", plcCmdInfo.getTaskId()).orderByDesc("create_Time").last("limit 1"));
Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("check_Num", checkLog.getId()));
checkLog.setCount(count);
stock.setCount(count);
if(flag && checkLog.getWmsCount()==count&& checkLog.getWmsCategory().equals(checkLog.getCategory())){
if (flag && checkLog.getWmsCount() == count && checkLog.getWmsCategory().equals(checkLog.getCategory())) {
checkLog.setStatus(StockStatus.SUCCESS.getStatus());
stock.setStatus(StockStatus.SUCCESS.getStatus());
}else {
} else {
checkLog.setStatus(StockStatus.COUNT_ERROR.getStatus());
stock.setStatus(StockStatus.COUNT_ERROR.getStatus());
}
stock.setEndTime( LocalDateTime.now());
stock.setEndTime(LocalDateTime.now());
checkLog.setEndTime(stock.getEndTime());
checkLogMapper.updateById(checkLog);
stockMapper.updateById(stock);
return checkLog.getStatus()>2?1:0;
return checkLog.getStatus() > 2 ? 1 : 0;
}
public static String join(String[] array, String separator) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length; i++) {
@ -946,7 +946,7 @@ public class PlcService {
public KsecInfo getKsecDataInfo(TransmissionPojo transmissionPojo, String type) {
KsecDataInfo ksecDataInfo = new KsecDataInfo();
CheckLog checkLog = checkLogMapper.selectById(transmissionPojo.getCheckId());
if(checkLog!=null) {
if (checkLog != null) {
ksecDataInfo.setLotnum(checkLog.getLotnum());
ksecDataInfo.setSRMNumber(transmissionPojo.getStreetNumber());
ksecDataInfo.setCmdName(type);
@ -960,7 +960,6 @@ public class PlcService {
ksecDataInfo.setLotnum(checkLog.getLotnum());
}
KsecInfo ksecInfo = new KsecInfo("KC", "E", ksecDataInfo);

@ -66,24 +66,23 @@ 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){
if (street == null) {
return new ArrayList<>();
}
//List<String> shelves = streetService.check(street);
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().eq("street_id",streetId).orderByAsc("street_id", "`row`", "`column`"));
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().eq("street_id", streetId).orderByAsc("street_id", "`row`", "`column`"));
return stocks;
}
public PageInfo<Stock> page(PageSearch pageSearch) {
PageHelper.startPage(pageSearch.getPageNum(), pageSearch.getPageSize());
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().orderByAsc( "`row`", "`column`"));
List<Stock> stocks = stockMapper.selectList(new QueryWrapper<Stock>().orderByAsc("`row`", "`column`"));
return new PageInfo<>(stocks);
}
public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus){
public CheckStatus statusByRowColumn(RowColumnStatus rowColumnStatus) {
CheckStatus checkStatus = new CheckStatus();
checkStatus.setColumnStart(rowColumnStatus.getColumnStart());
checkStatus.setColumnEnd(rowColumnStatus.getColumnEnd());
@ -92,68 +91,70 @@ public class StockService {
//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 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<String,Integer> columnTabStatus = new LinkedHashMap<>();
for(String column:rowColumnStatus.getColumnTabs()){
columns = getMax(column,columns);
columnTabStatus.put(column,0);
Map<String, Integer> columnTabStatus = new LinkedHashMap<>();
for (String column : rowColumnStatus.getColumnTabs()) {
columns = getMax(column, columns);
columnTabStatus.put(column, 0);
}
Map<String,Integer> columnTabCorrectCount = new LinkedHashMap<>();
Map<String,Integer> rowTabCorrectCount = new LinkedHashMap<>();
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()));
if(CollectionUtils.isEmpty(stocks)){
stockInit(rowColumnStatus.getRowStart(), rowColumnStatus.getRowEnd(), rowColumnStatus.getColumnStart(), rowColumnStatus.getColumnEnd(), null,stocks);
.select("status", "`row`", "`column`")
.eq("`street_id`", rowColumnStatus.getStreetId())
.eq("direction", rowColumnStatus.getDirection())
.eq("side", rowColumnStatus.getSide())
.ge(rowColumnStatus.getStartTimestamp() != null, "export_Time", rowColumnStatus.getStartTimestamp())
.le(rowColumnStatus.getEndTimestamp() != null, "export_Time", rowColumnStatus.getEndTimestamp()));
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);
}
}
}
@ -161,51 +162,51 @@ public class StockService {
}
}
for(Map.Entry<String,Integer> entry: rowTabCorrectCount.entrySet()){
String [] strings = entry.getKey().split(" - ");
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);
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(" - ");
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);
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<Stock> stockInit(Integer rowStart, Integer rowEnd,Integer columnStart,Integer columnEnd,String shelveId,List<Stock> readyList){
Map<Integer,Map<Integer,Boolean>> map = new HashMap<>();
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<>();
readyList.forEach(stock -> {
if(map.get(stock.getRow()) == null){
Map<Integer,Boolean> columnMap = new HashMap<>();
columnMap.put(stock.getColumn(),true);
map.put(stock.getRow(),columnMap);
}else {
Map<Integer,Boolean> columnMap = map.get(stock.getRow());
if(columnMap.get(stock.getColumn()) == null){
columnMap.put(stock.getColumn(),true);
if (map.get(stock.getRow()) == null) {
Map<Integer, Boolean> columnMap = new HashMap<>();
columnMap.put(stock.getColumn(), true);
map.put(stock.getRow(), columnMap);
} else {
Map<Integer, Boolean> 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<Integer,Boolean> 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<Integer, Boolean> 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);
@ -224,35 +225,34 @@ public class StockService {
// 盘点异常 未盘点 盘点正确
// 1000 100 10
private void tabStatus(Stock stock,Map<String,Integer> tabStatus,String tab){
if(tabStatus.get(tab) == null){
tabStatus.put(tab,stock.getStatus());
}else {
private void tabStatus(Stock stock, Map<String, Integer> 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;
@ -268,7 +268,7 @@ public class StockService {
*/
public List<StockExportExcel> exportExcels(Integer streetId) {
Map<String,String> map = getCategoryList();
Map<String, String> map = getCategoryList();
List<Stock> stocks = list(streetId);
Street street = streetService.streetById(streetId);
List<StockExportExcel> stockExportExcels = new ArrayList<>(stocks.size());
@ -277,7 +277,7 @@ public class StockService {
stockExportExcel.setCount(stock.getCount());
stockExportExcel.setLotnum(stock.getLotnum());
stockExportExcel.setColumn(stock.getColumn());
stockExportExcel.setCategory(getName(map,stock.getCategory()));
stockExportExcel.setCategory(getName(map, stock.getCategory()));
//stockExportExcel.setCount(stock.getCount());
stockExportExcel.setRow(stock.getRow());
stockExportExcel.setStreetName(street.getName());
@ -294,18 +294,18 @@ public class StockService {
public List<StockExportExcel> exportAllExcels() {
Map<String,String> map = getCategoryList();
Map<String, String> map = getCategoryList();
List<Stock> stocks = stockMapper.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 -> {
streetMap.put(street.getId(),street.getName());
streetMap.put(street.getId(), street.getName());
});
//Street street = streetService.streetById(streetId);
List<StockExportExcel> stockExportExcels = new ArrayList<>(stocks.size());
stocks.forEach(stock -> {
StockExportExcel stockExportExcel = new StockExportExcel();
stockExportExcel.setCategory(getName(map,stock.getCategory()));
stockExportExcel.setCategory(getName(map, stock.getCategory()));
stockExportExcel.setCount(stock.getCount());
stockExportExcel.setLotnum(stock.getLotnum());
stockExportExcel.setColumn(stock.getColumn());
@ -329,39 +329,40 @@ public class StockService {
*/
public Stock stockInfo(StockCheck stockCheck) {
Map<String,String> map = getCategoryList();
Map<String, String> map = getCategoryList();
Street street = streetService.streetById(stockCheck.getStreetId());
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);
}else {
} else {
stock.setWmsCategoryName(map.get(stock.getWmsCategory()));
stock.setOveroperationPic("http://" + street.getPlcIp() + ":8007" + "/storeData/" + street.getPlcId() + "/" + stock.getRow() + "/" + stock.getColumn() + "/" + (stock.getDirection() + 2) + ".PNG");
stock.setPreoperationPic("http://" + street.getPlcIp() + ":8007" + "/storeData/" + street.getPlcId() + "/" + stock.getRow() + "/" + stock.getColumn() + "/" + (stock.getDirection() ) + ".PNG");
stock.setPreoperationPic("http://" + street.getPlcIp() + ":8007" + "/storeData/" + street.getPlcId() + "/" + stock.getRow() + "/" + stock.getColumn() + "/" + (stock.getDirection()) + ".PNG");
}
return stock;
}
String getName(Map<String,String> map,String category){
String getName(Map<String, String> map, String category) {
String name = category;
if (category !=null && !"".equals(category) && map.get(category) !=null){
name =category+"-"+ map.get(category);
if (category != null && !"".equals(category) && map.get(category) != null) {
name = category + "-" + map.get(category);
}
return name;
}
public Stock stock(StockCheckSearch stockCheckSearch){
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(),1,stockCheckSearch.getRow(),stockCheckSearch.getColumn());
if(stock != null && stock.getCheckPic()!=null){
Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(street.getId(), stockCheckSearch.getDirection(), 1, stockCheckSearch.getRow(), stockCheckSearch.getColumn());
if (stock != null && stock.getCheckPic() != null) {
stock.setCheckPics(stock.getCheckPic().split(";"));
}
return stock;
@ -376,7 +377,7 @@ public class StockService {
public Stock checkCorrect(StockCheck stockCheck) {
Stock stock = stockInfo(stockCheck);
Assert.isTrue(stock != null && stock.getId() != null, "该货位暂时没有记录");
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());
stock.setStatus(StockStatus.MANUAL.getStatus());
stock.setCount(stockCheck.getCount());
stock.setCategory(stockCheck.getCategory());
@ -385,6 +386,7 @@ public class StockService {
checkLog(stock);
return stock;
}
/**
*
*
@ -395,7 +397,7 @@ public class StockService {
Stock stock = stockInfo(stockCheck);
Assert.isTrue(stock != null && stock.getId() != null, "该货位暂时没有记录");
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());
stock.setStatus(StockStatus.ERROR.getStatus());
stockMapper.updateById(stock);
checkLog(stock);
@ -405,9 +407,9 @@ public class StockService {
@Resource
private CheckLogMapper checkLogMapper;
private void checkLog(Stock stock){
private void checkLog(Stock stock) {
CheckLog checkLog = checkLogMapper.selectOne(new QueryWrapper<CheckLog>()
.eq("id",stock.getCheckNum())
.eq("id", stock.getCheckNum())
.last("limit 1"));
checkLog.setRow(stock.getRow());
checkLog.setStreetId(stock.getStreetId());
@ -430,7 +432,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, "品规和数量与原有记录相同");
@ -448,31 +450,32 @@ public class StockService {
public Stock nextOne(Long id) {
QueryWrapper<Stock> stockQueryWrapper = new QueryWrapper<>();
stockQueryWrapper.eq("status","0").or().eq("status","1")
.ne(id != null,"id",id)
stockQueryWrapper.eq("status", "0").or().eq("status", "1")
.ne(id != null, "id", id)
.orderByDesc("export_time").last("limit 1");
Stock stock =stockMapper.selectOne(stockQueryWrapper);
Stock stock = stockMapper.selectOne(stockQueryWrapper);
Order order = orderMapper.selectOne(new QueryWrapper<Order>()
.eq("street_Id",stock.getStreetId())
.eq("left_right1",stock.getDirection())
.eq("column1",stock.getColumn())
.eq("row1",stock.getRow())
.eq("street_Id", stock.getStreetId())
.eq("left_right1", stock.getDirection())
.eq("column1", stock.getColumn())
.eq("row1", stock.getRow())
.orderByDesc("into_Stock_Over_Time")
.last("limit 1"));
if(order != null){
if (order != null) {
stock.setOveroperationPic(order.getIntoStockOverPic());
}
return stock;
}
@Resource
CategoryMapper categoryMapper;
public Map<String,String> getCategoryList() {
public Map<String, String> getCategoryList() {
List<Category> category = categoryMapper.selectList(new QueryWrapper<Category>());
Map<String,String> map = new HashMap<>();
Map<String, String> map = new HashMap<>();
for (Category c : category)
map.put(c.getCode(),c.getName());
map.put(c.getCode(), c.getName());
return map;
}
@ -481,16 +484,16 @@ public class StockService {
}
public Map<String,Object> overview() {
public Map<String, Object> overview() {
List<Stock> list = stockMapper.selectList(new QueryWrapper<Stock>());
Map<String,Object> map = new HashMap<>();
final LocalDateTime[] start = {null,null};
Map<String, Object> map = new HashMap<>();
final LocalDateTime[] start = {null, null};
if(list != null && list.size() > 0){
Map<String ,Long > statusMap = list.stream()
.filter(s -> s.getStatus()!=null)
.collect(Collectors.groupingBy(s -> "type"+s.getStatus().toString(),Collectors.counting()));
if (list != null && list.size() > 0) {
Map<String, Long> statusMap = list.stream()
.filter(s -> s.getStatus() != null)
.collect(Collectors.groupingBy(s -> "type" + s.getStatus().toString(), Collectors.counting()));
Stock earliest = list.stream()
.min(Comparator.comparing(Stock::getExportTime)).get();
@ -498,48 +501,48 @@ public class StockService {
.max(Comparator.comparing(Stock::getExportTime)).get();
Duration maxDuration = Duration.between(earliest.getExportTime(),latest.getExportTime());
Duration maxDuration = Duration.between(earliest.getExportTime(), latest.getExportTime());
String time = "";
long days = maxDuration.toDays();
if(days > 0){
time = days+"天";
if (days > 0) {
time = days + "天";
}
long hours = maxDuration.toHoursPart();
if(hours > 0){
time = time + hours+"小时";
if (hours > 0) {
time = time + hours + "小时";
}
long minutes = maxDuration.toMinutesPart();
if(minutes > 0){
time = time + minutes+"分钟";
if (minutes > 0) {
time = time + minutes + "分钟";
}
map.put("time",time);
for(int i = 0 ; i<4 ; i++){
if(!statusMap.containsKey("type"+String.valueOf(i))){
statusMap.put("type"+String.valueOf(i),0L);
map.put("time", time);
for (int i = 0; i < 4; i++) {
if (!statusMap.containsKey("type" + String.valueOf(i))) {
statusMap.put("type" + String.valueOf(i), 0L);
}
}
int sizeCategory = list.stream()
.filter(s -> s.getWmsCategory()!=null)
.filter(s -> s.getStatus()!=null)
.filter(s -> s.getWmsCategory() != null)
.filter(s -> s.getStatus() != null)
.collect(Collectors.groupingBy(Stock::getWmsCategory))
.keySet()
.size();
map.put("sizeCategory",sizeCategory);
map.put("size",String.valueOf(list.size()));
map.put("lotnum",list.get(0).getLotnum());
map.put("sizeCategory", sizeCategory);
map.put("size", String.valueOf(list.size()));
map.put("lotnum", list.get(0).getLotnum());
map.putAll(statusMap);
//共盘点{}个货位,{}个品规,{}个其他货物,其中{}个盘点成功,{}个盘点异常,{}个人工盘点
return map;
}else return null;
} else return null;
}
public void allStockCheck() {
List<Stock> list = stockMapper.selectList(new QueryWrapper<Stock>());
for(Stock stock : list) {
for (Stock stock : list) {
stock.setStatus(StockStatus.MANUAL.getStatus());
stockMapper.updateById(stock);
stock = stockMapper.selectById(stock.getId());

Loading…
Cancel
Save