Commit 16ae736b LN

库位出库功能更新

1 个父辈 03bead4c
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
<name>smf-core</name> <name>smf-core</name>
<description>SMF project for Spring Boot</description> <description>SMF project for Spring Boot</description>
<properties> <properties>
<maven.build.timestamp.format>MM.dd.HHmmss</maven.build.timestamp.format> <maven.build.timestamp.format>M.ddHHmm</maven.build.timestamp.format>
<main.version>1.${maven.build.timestamp}</main.version> <main.version>1.2${maven.build.timestamp}</main.version>
<app.version>${main.version}</app.version> <app.version>${main.version}</app.version>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<jjwt.version>0.11.1</jjwt.version> <jjwt.version>0.11.1</jjwt.version>
......
package com.neotel.smfcore.core.haman.rest; package com.neotel.smfcore.core.haman.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.csv.CsvReader; import com.neotel.smfcore.common.csv.CsvReader;
...@@ -30,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -30,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.File; import java.io.File;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
@Slf4j @Slf4j
...@@ -50,8 +52,6 @@ public class PosOutputController { ...@@ -50,8 +52,6 @@ public class PosOutputController {
@Autowired @Autowired
private TokenProvider tokenProvider; private TokenProvider tokenProvider;
// Map<String,List<BINPosInfo>> operageMap=new HashMap<>();
private List<BINPosInfo> posInfoList = new ArrayList<>(); private List<BINPosInfo> posInfoList = new ArrayList<>();
@ApiOperation("上传库位") @ApiOperation("上传库位")
...@@ -69,6 +69,7 @@ public class PosOutputController { ...@@ -69,6 +69,7 @@ public class PosOutputController {
File localFile = FileUtil.upload(orderFile, folder.getAbsolutePath()); File localFile = FileUtil.upload(orderFile, folder.getAbsolutePath());
List<String> itemList = readFile(fileName, localFile.getAbsolutePath()); List<String> itemList = readFile(fileName, localFile.getAbsolutePath());
String posStr="";
if (itemList == null || itemList.size() <= 0) { if (itemList == null || itemList.size() <= 0) {
throw new ValidateException("smfcore.fileError", "文件解析失败"); throw new ValidateException("smfcore.fileError", "文件解析失败");
} else { } else {
...@@ -77,20 +78,29 @@ public class PosOutputController { ...@@ -77,20 +78,29 @@ public class PosOutputController {
posInfoList) { posInfoList) {
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
DevicesStatusUtil.appendOp(storage.getCid(), "close", pos.getPosName() + "="); DevicesStatusUtil.appendOp(storage.getCid(), "close", pos.getPosName() + "=");
log.info("上传文件时关闭上次的灯,关灯:" + pos.getPosName()); posStr+="["+pos.getPosName()+"]";
} }
posInfoList = new ArrayList<>(); posInfoList = new ArrayList<>();
} }
if(ObjectUtil.isNotEmpty(posStr)){
log.info("上传文件时关闭上次的灯,关灯:" + posStr);
}
String token = tokenProvider.getToken(request); String token = tokenProvider.getToken(request);
String ptoken = token.substring(token.length() - 10); String ptoken = token.substring(token.length() - 10);
String lightOnString="";
String color = "green"; String color = "green";
for (String bin : itemList for (String bin : itemList
) { ) {
String posName = bin; String posName = bin;
StoragePos pos = storagePosManager.getByPosName(posName); StoragePos pos = storagePosManager.getByPosName(posName);
if (pos == null) { if (pos == null) {
continue; //转换为Pos
posName = convertToPos(bin);
pos = storagePosManager.getByPosName(posName);
if (pos == null) {
continue;
}
} }
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
if (storage == null) { if (storage == null) {
...@@ -102,11 +112,9 @@ public class PosOutputController { ...@@ -102,11 +112,9 @@ public class PosOutputController {
String lightOnStr = pos.getPosName() + "=" + color; String lightOnStr = pos.getPosName() + "=" + color;
DevicesStatusUtil.appendOp(storage.getCid(), "open", lightOnStr); DevicesStatusUtil.appendOp(storage.getCid(), "open", lightOnStr);
log.info("[" + ptoken + "]上传出库库位,点亮库位:" + lightOnStr); lightOnString+="["+lightOnStr+"]";
} }
// operageMap.put(token,posInfos); log.info("[" + ptoken + "]上传[" + posInfoList.size() + "]条出库库位信息,点亮库位:" + lightOnString);
log.info("[" + ptoken + "]上传[" + posInfoList.size() + "]条库位信息");
List<BINPosDto> results = binPosMapper.toDto(posInfoList); List<BINPosDto> results = binPosMapper.toDto(posInfoList);
return results; return results;
} }
...@@ -118,7 +126,7 @@ public class PosOutputController { ...@@ -118,7 +126,7 @@ public class PosOutputController {
String token = tokenProvider.getToken(request); String token = tokenProvider.getToken(request);
String ptoken = token.substring(token.length() - 10); String ptoken = token.substring(token.length() - 10);
// List<BINPosInfo> posInfos=operageMap.get(token); // List<BINPosInfo> posInfos=operageMap.get(token);
String posStr="";
if (posInfoList == null || posInfoList.size() <= 0) { if (posInfoList == null || posInfoList.size() <= 0) {
throw new ValidateException("smfcore.posOutput.noFile", "请先上传出库文件"); throw new ValidateException("smfcore.posOutput.noFile", "请先上传出库文件");
} }
...@@ -126,20 +134,45 @@ public class PosOutputController { ...@@ -126,20 +134,45 @@ public class PosOutputController {
posInfoList) { posInfoList) {
Storage storage = dataCache.getStorageById(pos.getStorageId()); Storage storage = dataCache.getStorageById(pos.getStorageId());
DevicesStatusUtil.appendOp(storage.getCid(), "close", pos.getPosName() + "="); DevicesStatusUtil.appendOp(storage.getCid(), "close", pos.getPosName() + "=");
log.info("[" + ptoken + "]点击全部灭灯,关灯:" + pos.getPosName()); posStr+="["+pos.getPosName()+"]";
} }
log.info("[" + ptoken + "]点击全部灭灯["+posInfoList.size()+"],关灯:" + posStr);
posInfoList = new ArrayList<>(); posInfoList = new ArrayList<>();
return ResultBean.newOkResult("操作成功"); return ResultBean.newOkResult("操作成功");
} }
public List<String> readFile(String fileName, String fileURL) { private String convertToPos(String binStr) {
// 002-01-002
// S1-01-01
if (binStr.startsWith("S")) {
String[] array = binStr.substring(1, binStr.length()).split("-");
if (array.length == 3) {
try {
DecimalFormat format3 = new DecimalFormat("000");
DecimalFormat format2 = new DecimalFormat("00");
String shelf = format3.format(Integer.parseInt(array[0]));
String hang = format2.format(Integer.parseInt(array[1]));
String num = format3.format(Integer.parseInt(array[2]));
String pos = shelf + "-" + hang+ "-" + num;
return pos;
} catch (Exception exception) {
log.info("convertToPos["+binStr+"] error:"+exception.toString());
}
}
}
return binStr;
}
private List<String> readFile(String fileName, String fileURL) {
List<String> items = Lists.newArrayList(); List<String> items = Lists.newArrayList();
try { try {
fileName = fileName.replace(".csv", ""); fileName = fileName.replace(".csv", "");
log.info("开始解析新上传的库位文件"); log.info("开始解析新上传的库位文件");
CsvReader csvRead = CsvReader.newReader(fileURL, "BIN", "库位"); String title="Dest.Storage Bin";
int binIndex = csvRead.getIndex("BIN", "库位"); CsvReader csvRead = CsvReader.newReader(fileURL, title, title);
int binIndex = csvRead.getIndex(title, title);
int row = 1; int row = 1;
while (csvRead.readRecord()) { while (csvRead.readRecord()) {
row++; row++;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!