Commit 16ae736b LN

库位出库功能更新

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