Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit eafaf694
由
LN
编写于
2021-09-02 16:54:32 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.库位增加坐标。2.库位上传修改。3.csv读取修改。
1 个父辈
258d0897
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
248 行增加
和
58 行删除
src/main/java/com/neotel/smfcore/common/csv/CsvReader.java
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/common/utils/PointUtil.java
src/main/java/com/neotel/smfcore/common/utils/UserCodeUtil.java
src/main/java/com/neotel/smfcore/core/barcode/rest/BarcodeController.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StorageController.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
src/main/java/com/neotel/smfcore/core/storage/service/po/StoragePos.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/security/rest/UserController.java
src/main/java/com/neotel/smfcore/security/service/manager/impl/MenuManagerImpl.java
src/main/java/com/neotel/smfcore/security/service/po/Menu.java
src/main/java/com/neotel/smfcore/common/csv/CsvReader.java
查看文件 @
eafaf69
...
@@ -34,6 +34,25 @@ import java.util.HashMap;
...
@@ -34,6 +34,25 @@ import java.util.HashMap;
*/
*/
@Slf4j
@Slf4j
public
class
CsvReader
{
public
class
CsvReader
{
public
static
CsvReader
newReader
(
String
fileURL
,
String
titleName
,
String
titleNameEn
)
throws
IOException
{
String
reloadEncodeing
=
"GBK"
;
CsvReader
csvRead
=
new
CsvReader
(
fileURL
);
csvRead
.
setSkipEmptyRecords
(
true
);
csvRead
.
setTrimWhitespace
(
true
);
csvRead
.
readHeaders
();
int
index
=
csvRead
.
getIndex
(
titleName
,
titleNameEn
);
//未找到列,重新读取
if
(
index
==
-
1
)
{
log
.
info
(
"文件未包含列["
+
titleName
+
"]["
+
titleNameEn
+
"],改为"
+
reloadEncodeing
+
"重新读取"
);
csvRead
=
new
CsvReader
(
fileURL
,
CsvReader
.
Letters
.
COMMA
,
Charset
.
forName
(
reloadEncodeing
));
csvRead
.
setSkipEmptyRecords
(
true
);
csvRead
.
setTrimWhitespace
(
true
);
csvRead
.
readHeaders
();
}
return
csvRead
;
}
private
Reader
inputStream
=
null
;
private
Reader
inputStream
=
null
;
private
String
fileName
=
null
;
private
String
fileName
=
null
;
...
@@ -1226,6 +1245,7 @@ public class CsvReader {
...
@@ -1226,6 +1245,7 @@ public class CsvReader {
dataBuffer
.
ColumnStart
=
0
;
dataBuffer
.
ColumnStart
=
0
;
}
}
/**
/**
* Read the first record of data as column headers.
* Read the first record of data as column headers.
*
*
...
@@ -1699,7 +1719,7 @@ public class CsvReader {
...
@@ -1699,7 +1719,7 @@ public class CsvReader {
}
}
}
}
p
rivate
class
Letters
{
p
ublic
class
Letters
{
public
static
final
char
LF
=
'\n'
;
public
static
final
char
LF
=
'\n'
;
public
static
final
char
CR
=
'\r'
;
public
static
final
char
CR
=
'\r'
;
...
...
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
eafaf69
...
@@ -19,6 +19,8 @@ import com.neotel.smfcore.security.service.po.Role;
...
@@ -19,6 +19,8 @@ import com.neotel.smfcore.security.service.po.Role;
import
com.neotel.smfcore.security.service.po.User
;
import
com.neotel.smfcore.security.service.po.User
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
...
@@ -76,6 +78,15 @@ public class DataInitManager {
...
@@ -76,6 +78,15 @@ public class DataInitManager {
log
.
info
(
"初始化环境完成..."
);
log
.
info
(
"初始化环境完成..."
);
}
}
List
<
Menu
>
menus
=
menuManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"path"
).
ne
(
""
)));
for
(
Menu
me:
menus
)
{
if
(
me
.
getTitleKey
()==
null
||
me
.
getTitleKey
()==
""
){
me
.
setTitleKey
(
me
.
getPath
());
menuManager
.
saveMenu
(
me
);
}
}
initTask
();
initTask
();
}
catch
(
Exception
exception
)
{
}
catch
(
Exception
exception
)
{
...
@@ -133,26 +144,26 @@ public class DataInitManager {
...
@@ -133,26 +144,26 @@ public class DataInitManager {
private
List
<
Menu
>
createSubPerMenus
(
Menu
menu
)
{
private
List
<
Menu
>
createSubPerMenus
(
Menu
menu
)
{
List
<
Menu
>
list
=
new
ArrayList
<>();
List
<
Menu
>
list
=
new
ArrayList
<>();
//如果是list结尾的,默认增加其他的权限菜单
//
//如果是list结尾的,默认增加其他的权限菜单
Map
<
String
,
String
[]>
defaultMenus
=
new
HashMap
<>();
//
Map<String, String[]> defaultMenus = new HashMap<>();
defaultMenus
.
put
(
"menu"
,
new
String
[]{
"menu:edit"
,
"menu:del"
,
"menu:add"
});
//
defaultMenus.put("menu", new String[]{"menu:edit", "menu:del", "menu:add"});
defaultMenus
.
put
(
"user"
,
new
String
[]{});
//
defaultMenus.put("user",new String[]{});
defaultMenus
.
put
(
"role"
,
new
String
[]{});
//
defaultMenus.put("role",new String[]{});
//
String
per
=
menu
.
getPermission
().
replace
(
":list"
,
""
);
//
String per = menu.getPermission().replace(":list", "");
String
menuName
=
menu
.
getTitle
().
replace
(
"管理"
,
""
);
//
String menuName = menu.getTitle().replace("管理", "");
if
(!
defaultMenus
.
containsKey
(
per
))
{
//
if (!defaultMenus.containsKey(per)) {
return
list
;
//
return list;
}
//
}
String
[]
subPers
=
defaultMenus
.
get
(
per
);
//
String[] subPers = defaultMenus.get(per);
if
(
subPers
.
length
<=
0
)
{
//
if (subPers.length <= 0) {
subPers
=
new
String
[]{
per
+
":edit"
,
per
+
":del"
,
per
+
":add"
};
//
subPers = new String[]{per + ":edit", per + ":del", per + ":add"};
}
//
}
for
(
String
subPer
:
//
for (String subPer :
subPers
)
{
//
subPers) {
Menu
subperMenu
=
menuManager
.
save
(
Menu
.
CreatePerMenu
(
subPer
,
menuName
+
"_"
+
subPer
,
menu
.
getId
()));
//
Menu subperMenu = menuManager.save(Menu.CreatePerMenu(subPer, menuName + "_" + subPer, menu.getId()));
list
.
add
(
subperMenu
);
//
list.add(subperMenu);
}
//
}
return
list
;
return
list
;
}
}
...
...
src/main/java/com/neotel/smfcore/common/utils/PointUtil.java
0 → 100644
查看文件 @
eafaf69
package
com
.
neotel
.
smfcore
.
common
.
utils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.data.geo.Point
;
@Slf4j
public
class
PointUtil
{
public
static
Point
getPosPoint
(
String
posId
)
{
return
getPosPoint
(
posId
,
true
);
}
/**
* 获取坐标
* @param posId 库位号
* @param isUpdatePos true=更新库位坐标。false=查询使用
* @return
*/
public
static
Point
getPosPoint
(
String
posId
,
boolean
isUpdatePos
)
{
// 库位号格式:
// 例:05AA03040102
// 05:表示料仓编号,01-08
// AA:存储机构A面或B面,AA或者BB
// 03:表示抽屉在第几行
// 04:表示抽屉在第几列
// 01:表示在抽屉中的第几行
// 02:表示在抽屉中的第几列
Point
p
=
new
Point
(
0
,
0
);
try
{
if
(
posId
.
length
()
==
12
&&((
posId
.
contains
(
"AA"
)||
posId
.
contains
(
"BB"
))))
{
double
storageNum
=
0
;
int
storage
=
Integer
.
parseInt
(
posId
.
substring
(
0
,
2
));
String
typeStr
=
posId
.
substring
(
2
,
4
);
if
(
typeStr
.
equals
(
"AA"
))
{
if
(
isUpdatePos
){
storageNum
=
storage
*
10
+
1
;
}
else
{
storageNum
=
storage
*
10
+
2
;
}
}
else
{
if
(
isUpdatePos
){
storageNum
=
storage
*
10
+
2
;
}
else
{
storageNum
=
storage
*
10
+
1
;
}
}
double
row
=
Integer
.
parseInt
(
posId
.
substring
(
4
,
6
));
double
column
=
Integer
.
parseInt
(
posId
.
substring
(
6
,
8
));
double
x
=
storageNum
+
column
/
100
;
double
y
=
storageNum
+
row
/
1000
;
double
drawerRow
=
1
;
double
drawerColumn
=
1
;
if
(
isUpdatePos
)
{
drawerRow
=
Integer
.
parseInt
(
posId
.
substring
(
8
,
10
));
drawerColumn
=
Integer
.
parseInt
(
posId
.
substring
(
10
,
12
));
}
x
+=
drawerColumn
/
100
/
1000
;
y
+=
+
drawerRow
/
1000
/
100
;
p
=
new
Point
(
x
,
y
);
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析库位["
+
posId
+
"]的坐标出错:"
+
ex
);
}
// log.info("解析库位[" + posId + "]的坐标结果:" + p.toString());
return
p
;
}
}
src/main/java/com/neotel/smfcore/common/utils/UserCodeUtil.java
查看文件 @
eafaf69
...
@@ -61,10 +61,8 @@ public class UserCodeUtil {
...
@@ -61,10 +61,8 @@ public class UserCodeUtil {
protected
static
List
<
User
>
ReadFile
(
String
fileURL
)
throws
Exception
protected
static
List
<
User
>
ReadFile
(
String
fileURL
)
throws
Exception
{
{
List
<
User
>
list
=
new
ArrayList
<
User
>();
List
<
User
>
list
=
new
ArrayList
<
User
>();
CsvReader
csvRead
=
new
CsvReader
(
fileURL
);
csvRead
.
setSkipEmptyRecords
(
true
);
//忽略空行
CsvReader
csvRead
=
CsvReader
.
newReader
(
fileURL
,
"用户ID"
,
"ID"
);
csvRead
.
setTrimWhitespace
(
true
);
//去除空格
csvRead
.
readHeaders
();
int
idIndex
=
getCsvIndex
(
csvRead
,
"用户ID"
,
"ID"
);
int
idIndex
=
getCsvIndex
(
csvRead
,
"用户ID"
,
"ID"
);
int
usernameIndex
=
getCsvIndex
(
csvRead
,
"用户名"
,
"UserName"
);
int
usernameIndex
=
getCsvIndex
(
csvRead
,
"用户名"
,
"UserName"
);
...
...
src/main/java/com/neotel/smfcore/core/barcode/rest/BarcodeController.java
查看文件 @
eafaf69
...
@@ -156,10 +156,7 @@ public class BarcodeController {
...
@@ -156,10 +156,7 @@ public class BarcodeController {
protected
String
handleBarcode
(
String
fileURL
)
throws
Exception
{
protected
String
handleBarcode
(
String
fileURL
)
throws
Exception
{
log
.
info
(
"开始读取文件:"
+
fileURL
);
log
.
info
(
"开始读取文件:"
+
fileURL
);
CsvReader
csvRead
=
new
CsvReader
(
fileURL
);
CsvReader
csvRead
=
CsvReader
.
newReader
(
fileURL
,
"条码"
,
"RI"
);
csvRead
.
setSkipEmptyRecords
(
true
);
//忽略空行
csvRead
.
setTrimWhitespace
(
true
);
//去除空格
csvRead
.
readHeaders
();
int
riIndex
=
csvRead
.
getIndex
(
"条码"
,
"RI"
);
int
riIndex
=
csvRead
.
getIndex
(
"条码"
,
"RI"
);
int
pnIndex
=
csvRead
.
getIndex
(
"物编"
,
"PN"
);
int
pnIndex
=
csvRead
.
getIndex
(
"物编"
,
"PN"
);
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
eafaf69
...
@@ -184,10 +184,8 @@ public class OrderController {
...
@@ -184,10 +184,8 @@ public class OrderController {
log
.
info
(
"开始更解析上传的工单"
);
log
.
info
(
"开始更解析上传的工单"
);
List
<
LiteOrderItem
>
items
=
Lists
.
newArrayList
();
List
<
LiteOrderItem
>
items
=
Lists
.
newArrayList
();
CsvReader
csvRead
=
new
CsvReader
(
fileURL
);
csvRead
.
setSkipEmptyRecords
(
true
);
//忽略空行
CsvReader
csvRead
=
CsvReader
.
newReader
(
fileURL
,
"PN"
,
"PN"
);
csvRead
.
setTrimWhitespace
(
true
);
//去除空格
csvRead
.
readHeaders
();
int
partNumberIndex
=
csvRead
.
getIndex
(
"PN"
,
"PN"
);
int
partNumberIndex
=
csvRead
.
getIndex
(
"PN"
,
"PN"
);
int
qtyIndex
=
csvRead
.
getIndex
(
"NUM"
,
"QTY"
);
int
qtyIndex
=
csvRead
.
getIndex
(
"NUM"
,
"QTY"
);
int
feederIndex
=
csvRead
.
getIndex
(
"FEEDER"
,
"FEEDER"
);
int
feederIndex
=
csvRead
.
getIndex
(
"FEEDER"
,
"FEEDER"
);
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StorageController.java
查看文件 @
eafaf69
...
@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.bean.ResultBean;
...
@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.bean.ResultBean;
import
com.neotel.smfcore.common.csv.CsvReader
;
import
com.neotel.smfcore.common.csv.CsvReader
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.PointUtil
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.storage.rest.dto.StorageDto
;
import
com.neotel.smfcore.core.storage.rest.dto.StorageDto
;
...
@@ -26,6 +27,7 @@ import lombok.RequiredArgsConstructor;
...
@@ -26,6 +27,7 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.geo.Point
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
...
@@ -37,6 +39,7 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -37,6 +39,7 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.File
;
import
java.nio.charset.Charset
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -225,10 +228,8 @@ public class StorageController {
...
@@ -225,10 +228,8 @@ public class StorageController {
}
}
CsvReader
csvRead
=
new
CsvReader
(
fileURL
);
CsvReader
csvRead
=
CsvReader
.
newReader
(
fileURL
,
"位置"
,
"pos"
)
;
csvRead
.
setSkipEmptyRecords
(
true
);
//忽略空行
csvRead
.
setTrimWhitespace
(
true
);
//去除空格
csvRead
.
readHeaders
();
int
posIndex
=
csvRead
.
getCsvIndex
(
"位置"
,
"pos"
);
int
posIndex
=
csvRead
.
getCsvIndex
(
"位置"
,
"pos"
);
int
priIndex
=
csvRead
.
getCsvIndex
(
"优先级"
,
"pri"
);
int
priIndex
=
csvRead
.
getCsvIndex
(
"优先级"
,
"pri"
);
int
hIndex
=
csvRead
.
getCsvIndex
(
"高度"
,
"h"
);
int
hIndex
=
csvRead
.
getCsvIndex
(
"高度"
,
"h"
);
...
@@ -236,38 +237,96 @@ public class StorageController {
...
@@ -236,38 +237,96 @@ public class StorageController {
int
row
=
1
;
int
row
=
1
;
int
newRowCount
=
0
;
int
newRowCount
=
0
;
int
existRowCount
=
0
;
int
updateRowCount
=
0
;
int
updateRowCount
=
0
;
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByStorage
(
storage
.
getId
());
List
<
StoragePos
>
newList
=
new
ArrayList
<>();
while
(
csvRead
.
readRecord
()){
while
(
csvRead
.
readRecord
()){
row
++;
row
++;
String
[]
lineValues
=
csvRead
.
getValues
();
String
[]
lineValues
=
csvRead
.
getValues
();
String
posName
=
lineValues
[
posIndex
];
String
posName
=
lineValues
[
posIndex
];
String
priorityStr
=
lineValues
[
priIndex
];
Integer
priority
=
0
;
String
hStr
=
lineValues
[
hIndex
];
Integer
height
=
0
;
String
wStr
=
lineValues
[
wIndex
];
Integer
width
=
0
;
if
(
posName
.
isEmpty
()
||
hStr
.
isEmpty
()
||
wStr
.
isEmpty
()){
try
{
priority
=
Integer
.
parseInt
(
lineValues
[
priIndex
])
;
height
=
Integer
.
parseInt
(
lineValues
[
hIndex
]);
width
=
Integer
.
parseInt
(
lineValues
[
wIndex
]);
}
catch
(
Exception
ex
){
log
.
warn
(
"第"
+
row
+
"行中有空白内容,此行忽略"
);
continue
;
}
if
(
posName
.
isEmpty
()
){
log
.
warn
(
"第"
+
row
+
"行中有空白内容,此行忽略"
);
log
.
warn
(
"第"
+
row
+
"行中有空白内容,此行忽略"
);
continue
;
continue
;
}
}
StoragePos
posInfo
=
storagePosManager
.
getByPosName
(
posName
);
// StoragePos posInfo = storagePosManager.getByPosName(posName);
StoragePos
posInfo
=
findFormList
(
storagePosList
,
posName
);
if
(
posInfo
==
null
){
if
(
posInfo
==
null
){
posInfo
=
new
StoragePos
();
posInfo
=
new
StoragePos
();
posInfo
.
setPosName
(
posName
);
posInfo
.
setPosName
(
posName
);
posInfo
.
setStorageId
(
storageId
);
posInfo
.
setStorageId
(
storageId
);
posInfo
.
setH
(
height
);
posInfo
.
setW
(
width
);
posInfo
.
setPriority
(
priority
);
Point
point
=
PointUtil
.
getPosPoint
(
posName
);
posInfo
.
setCoordinate
(
new
double
[]{
point
.
getX
(),
point
.
getY
()});
newRowCount
++;
newRowCount
++;
newList
.
add
(
posInfo
);
}
else
{
}
else
{
updateRowCount
++;
boolean
needUpdate
=
false
;
}
if
(!
posInfo
.
getPosName
().
equals
(
posName
)){
posInfo
.
setH
(
Integer
.
valueOf
(
hStr
));
needUpdate
=
true
;
posInfo
.
setW
(
Integer
.
valueOf
(
wStr
));
posInfo
.
setPosName
(
posName
);
}
if
(!
Strings
.
isNullOrEmpty
(
priorityStr
)){
if
(!
posInfo
.
getStorageId
().
equals
(
storageId
)){
posInfo
.
setPriority
(
Double
.
valueOf
(
priorityStr
));
needUpdate
=
true
;
posInfo
.
setStorageId
(
storageId
);
}
if
(
posInfo
.
getH
()!=
height
){
needUpdate
=
true
;
posInfo
.
setH
(
height
);
}
if
(
posInfo
.
getW
()!=
width
){
needUpdate
=
true
;
posInfo
.
setW
(
width
);
}
if
(
posInfo
.
getPriority
()!=
priority
){
needUpdate
=
true
;
posInfo
.
setPriority
(
priority
);
}
Point
point
=
PointUtil
.
getPosPoint
(
posInfo
.
getPosName
());
if
(
posInfo
.
getCoordinate
()==
null
||
posInfo
.
getCoordinate
().
length
!=
2
||
(
posInfo
.
getCoordinate
()[
0
]!=
point
.
getX
())
||(
posInfo
.
getCoordinate
()[
1
]!=
point
.
getY
())){
needUpdate
=
true
;
posInfo
.
setCoordinate
(
new
double
[]{
point
.
getX
(),
point
.
getY
()});
}
if
(
needUpdate
){
updateRowCount
++;
storagePosManager
.
save
(
posInfo
);
}
else
{
existRowCount
++;
}
}
}
storagePosManager
.
save
(
posInfo
);
}
if
(
newList
.
size
()>
0
){
storagePosManager
.
insertAll
(
newList
);
}
}
dataCache
.
reloadStorage
(
storage
);
dataCache
.
reloadStorage
(
storage
);
String
msg
=
"读取到["
+
row
+
"]行数据:新增【"
+
newRowCount
+
"】更新【"
+
updateRowCount
+
"】"
;
String
msg
=
"读取到["
+
row
+
"]行数据:新增【"
+
newRowCount
+
"】
,已存在【"
+
existRowCount
+
"】,
更新【"
+
updateRowCount
+
"】"
;
log
.
info
(
msg
);
log
.
info
(
msg
);
return
msg
;
return
msg
;
}
}
private
StoragePos
findFormList
(
List
<
StoragePos
>
list
,
String
posName
)
{
for
(
StoragePos
pos
:
list
)
{
if
(
pos
.
getPosName
().
equals
(
posName
)){
return
pos
;
}
}
return
null
;
}
}
}
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
查看文件 @
eafaf69
...
@@ -35,4 +35,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
...
@@ -35,4 +35,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos
getEmptyPosByStorage
(
Storage
storage
,
Barcode
barcode
,
Collection
<
String
>
excludePosIds
)
throws
ValidateException
;
StoragePos
getEmptyPosByStorage
(
Storage
storage
,
Barcode
barcode
,
Collection
<
String
>
excludePosIds
)
throws
ValidateException
;
List
<
StoragePos
>
findNotEmpty
();
List
<
StoragePos
>
findNotEmpty
();
List
<
StoragePos
>
findByStorage
(
String
storageId
);
void
insertAll
(
List
<
StoragePos
>
posList
);
}
}
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
eafaf69
...
@@ -248,7 +248,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -248,7 +248,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
@Override
@Override
public
List
<
StoragePos
>
findByQuery
(
Query
query
)
{
public
List
<
StoragePos
>
findByQuery
(
Query
query
)
{
return
storagePosDao
.
find
One
(
query
);
return
storagePosDao
.
find
ByQuery
(
query
);
}
}
...
@@ -318,4 +318,14 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -318,4 +318,14 @@ public class StoragePosManagerImpl implements IStoragePosManager {
public
List
<
StoragePos
>
findNotEmpty
(){
public
List
<
StoragePos
>
findNotEmpty
(){
return
findNotEmptyByStorageId
(
null
);
return
findNotEmptyByStorageId
(
null
);
}
}
@Override
public
List
<
StoragePos
>
findByStorage
(
String
storageId
)
{
return
storagePosDao
.
findListByCondition
(
new
String
[]{
"storageId"
},
new
String
[]{
storageId
});
}
@Override
public
void
insertAll
(
List
<
StoragePos
>
posList
)
{
storagePosDao
.
insertAll
(
posList
);
}
}
}
src/main/java/com/neotel/smfcore/core/storage/service/po/StoragePos.java
查看文件 @
eafaf69
...
@@ -4,16 +4,23 @@ import com.google.common.base.Strings;
...
@@ -4,16 +4,23 @@ import com.google.common.base.Strings;
import
com.neotel.smfcore.common.base.BasePo
;
import
com.neotel.smfcore.common.base.BasePo
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
lombok.Data
;
import
lombok.Data
;
import
org.springframework.data.mongodb.core.index.GeoSpatialIndexType
;
import
org.springframework.data.mongodb.core.index.GeoSpatialIndexed
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
@Data
@Data
@Document
public
class
StoragePos
extends
BasePo
implements
Serializable
{
public
class
StoragePos
extends
BasePo
implements
Serializable
{
private
String
storageId
;
private
String
storageId
;
private
Barcode
barcode
;
private
Barcode
barcode
;
private
String
posName
;
private
String
posName
;
@GeoSpatialIndexed
(
type
=
GeoSpatialIndexType
.
GEO_2DSPHERE
)
private
double
[]
coordinate
;
/**
/**
* 扩展库位的主库位
* 扩展库位的主库位
*/
*/
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
eafaf69
...
@@ -151,6 +151,14 @@ public class DataLog extends BasePo implements Serializable {
...
@@ -151,6 +151,14 @@ public class DataLog extends BasePo implements Serializable {
* 亮灯料架颜色
* 亮灯料架颜色
*/
*/
private
String
lightColor
=
"FF0000"
;
private
String
lightColor
=
"FF0000"
;
/**
* 出入库执行时间,秒
*/
private
int
executeTime
=
0
;
/**
* 出库时记录此料在库时长 ,分钟
*/
private
long
inStoreTime
=
0
l
;
public
String
getBarcode
()
{
public
String
getBarcode
()
{
if
(
barcode
==
null
){
if
(
barcode
==
null
){
...
...
src/main/java/com/neotel/smfcore/security/rest/UserController.java
查看文件 @
eafaf69
...
@@ -256,11 +256,7 @@ public class UserController {
...
@@ -256,11 +256,7 @@ public class UserController {
{
{
log
.
info
(
"开始更新用户列表"
);
log
.
info
(
"开始更新用户列表"
);
CsvReader
csvRead
=
new
CsvReader
(
fileURL
);
CsvReader
csvRead
=
CsvReader
.
newReader
(
fileURL
,
"用户ID"
,
"ID"
);
csvRead
.
setSkipEmptyRecords
(
true
);
//忽略空行
csvRead
.
setTrimWhitespace
(
true
);
//去除空格
csvRead
.
readHeaders
();
int
idIndex
=
csvRead
.
getCsvIndex
(
"用户ID"
,
"ID"
);
int
idIndex
=
csvRead
.
getCsvIndex
(
"用户ID"
,
"ID"
);
int
usernameIndex
=
csvRead
.
getCsvIndex
(
"用户名"
,
"UserName"
);
int
usernameIndex
=
csvRead
.
getCsvIndex
(
"用户名"
,
"UserName"
);
int
codeIndex
=
csvRead
.
getCsvIndex
(
"启用码"
,
"CheckCode"
);
int
codeIndex
=
csvRead
.
getCsvIndex
(
"启用码"
,
"CheckCode"
);
...
...
src/main/java/com/neotel/smfcore/security/service/manager/impl/MenuManagerImpl.java
查看文件 @
eafaf69
...
@@ -194,7 +194,10 @@ public class MenuManagerImpl implements IMenuManager {
...
@@ -194,7 +194,10 @@ public class MenuManagerImpl implements IMenuManager {
@Override
@Override
public
List
<
Menu
>
getSuperior
(
Menu
menu
,
List
<
Menu
>
menus
)
{
public
List
<
Menu
>
getSuperior
(
Menu
menu
,
List
<
Menu
>
menus
)
{
if
(
menu
!=
null
&&
menu
.
getPid
().
equals
(
""
)){
if
(
menu
==
null
||
menu
.
getPid
()
==
null
)
{
return
menus
;
}
if
(
menu
.
getPid
().
equals
(
""
))
{
menus
.
addAll
(
menuDao
.
findByPid
(
menu
.
getPid
()));
menus
.
addAll
(
menuDao
.
findByPid
(
menu
.
getPid
()));
return
menus
;
return
menus
;
}
}
...
...
src/main/java/com/neotel/smfcore/security/service/po/Menu.java
查看文件 @
eafaf69
...
@@ -169,6 +169,11 @@ public class Menu extends BasePo implements Serializable {
...
@@ -169,6 +169,11 @@ public class Menu extends BasePo implements Serializable {
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
0
,
""
,
title
,
menuSort
,
path
,
""
,
""
,
subCount
,
false
,
false
,
false
,
title
,
icon
,
titleKey
);
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
0
,
""
,
title
,
menuSort
,
path
,
""
,
""
,
subCount
,
false
,
false
,
false
,
title
,
icon
,
titleKey
);
return
menu
;
return
menu
;
}
}
/**
* 服务器使用的key
* @return
*/
public
String
GetMsgKey
()
{
public
String
GetMsgKey
()
{
String
titleKey
=
(
ObjectUtil
.
isNotEmpty
(
getTitleKey
())?
getTitleKey
():
getPath
());
String
titleKey
=
(
ObjectUtil
.
isNotEmpty
(
getTitleKey
())?
getTitleKey
():
getPath
());
if
(!
titleKey
.
startsWith
(
"smfcore."
)){
if
(!
titleKey
.
startsWith
(
"smfcore."
)){
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论