Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 16ae736b
由
LN
编写于
2022-01-12 16:54:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
库位出库功能更新
1 个父辈
03bead4c
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
47 行增加
和
14 行删除
pom.xml
src/main/java/com/neotel/smfcore/core/haman/rest/PosOutputController.java
pom.xml
查看文件 @
16ae736
...
@@ -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>
M
M.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>
...
...
src/main/java/com/neotel/smfcore/core/haman/rest/PosOutputController.java
查看文件 @
16ae736
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,21 +78,30 @@ public class PosOutputController {
...
@@ -77,21 +78,30 @@ 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
)
{
//转换为Pos
posName
=
convertToPos
(
bin
);
pos
=
storagePosManager
.
getByPosName
(
posName
);
if
(
pos
==
null
)
{
continue
;
continue
;
}
}
}
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
if
(
storage
==
null
)
{
if
(
storage
==
null
)
{
log
.
info
(
"上传库位出库文件时,库位["
+
pos
.
getId
()
+
"]["
+
pos
.
getPosName
()
+
"],storageId=["
+
pos
.
getStorageId
()
+
"]未找到料仓"
);
log
.
info
(
"上传库位出库文件时,库位["
+
pos
.
getId
()
+
"]["
+
pos
.
getPosName
()
+
"],storageId=["
+
pos
.
getStorageId
()
+
"]未找到料仓"
);
...
@@ -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!
Cancel
请
注册
或
登录
后发表评论