Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4e2e6051
由
LN
编写于
2021-10-15 17:32:19 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
物料分组功能
1 个父辈
06ca2d2c
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
105 行增加
和
29 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/core/storage/rest/LabelController.java
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/LabelDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StoragePosDto.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/common/init/DataInitManager.java
查看文件 @
4e2e605
...
@@ -216,8 +216,8 @@ public class DataInitManager {
...
@@ -216,8 +216,8 @@ public class DataInitManager {
Menu
menuStoragePos
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"storagePos:list"
,
"库位管理"
,
1
,
"storagePos"
,
"storagePos/storagePos/index"
,
""
,
0
,
"tree-table"
);
Menu
menuStoragePos
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"storagePos:list"
,
"库位管理"
,
1
,
"storagePos"
,
"storagePos/storagePos/index"
,
""
,
0
,
"tree-table"
);
Menu
menuMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"menu:list"
,
"菜单管理"
,
1
,
"menu"
,
"system/menu/index"
,
""
,
0
,
"menu"
);
Menu
menuMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"menu:list"
,
"菜单管理"
,
1
,
"menu"
,
"system/menu/index"
,
""
,
0
,
"menu"
);
Menu
sysSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"barcode"
,
"条码设置"
,
1
,
"barcodeSetting"
,
"system/barcodeSetting/index"
,
""
,
0
,
"database"
);
Menu
sysSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"barcode"
,
"条码设置"
,
1
,
"barcodeSetting"
,
"system/barcodeSetting/index"
,
""
,
0
,
"database"
);
Menu
outSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"outSetting"
,
"出库策略"
,
1
,
"outSetting"
,
"system/outSetting/index"
,
""
,
0
,
"outSet
ting
"
);
Menu
outSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"outSetting"
,
"出库策略"
,
1
,
"outSetting"
,
"system/outSetting/index"
,
""
,
0
,
"outSet"
);
Menu
sysSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"sysSetting"
,
"系统设置"
,
1
,
"sysSetting"
,
"system/sysSetting/index"
,
""
,
0
,
"sysSet
ting
"
);
Menu
sysSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"sysSetting"
,
"系统设置"
,
1
,
"sysSetting"
,
"system/sysSetting/index"
,
""
,
0
,
"sysSet"
);
menuMenu
.
setHidden
(
true
);
menuMenu
.
setHidden
(
true
);
outSet
.
setHidden
(
true
);
outSet
.
setHidden
(
true
);
sysSet
.
setHidden
(
true
);
sysSet
.
setHidden
(
true
);
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/LabelController.java
查看文件 @
4e2e605
...
@@ -87,7 +87,7 @@ public class LabelController {
...
@@ -87,7 +87,7 @@ public class LabelController {
}
}
//查找组下是否有设备
//查找组下是否有设备
Query
query
=
new
Query
(
Criteria
.
where
(
"label"
).
is
(
id
));
Query
query
=
new
Query
(
Criteria
.
where
(
"label
Id
"
).
is
(
id
));
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByQuery
(
query
);
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByQuery
(
query
);
if
(
storagePosList
!=
null
&&
storagePosList
.
size
()
>=
1
)
{
if
(
storagePosList
!=
null
&&
storagePosList
.
size
()
>=
1
)
{
throw
new
ValidateException
(
"smfcode.labelWithStoragePos"
,
"标签[{0}]已和库位关联"
,
new
String
[]{
label
.
getLabelName
()});
throw
new
ValidateException
(
"smfcode.labelWithStoragePos"
,
"标签[{0}]已和库位关联"
,
new
String
[]{
label
.
getLabelName
()});
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
查看文件 @
4e2e605
package
com
.
neotel
.
smfcore
.
core
.
storage
.
rest
;
package
com
.
neotel
.
smfcore
.
core
.
storage
.
rest
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.PageData
;
...
@@ -18,8 +19,10 @@ import com.neotel.smfcore.core.storage.rest.mapstruct.InventoryItemMapper;
...
@@ -18,8 +19,10 @@ import com.neotel.smfcore.core.storage.rest.mapstruct.InventoryItemMapper;
import
com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper
;
import
com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper
;
import
com.neotel.smfcore.core.storage.rest.query.InventoryQueryCriteria
;
import
com.neotel.smfcore.core.storage.rest.query.InventoryQueryCriteria
;
import
com.neotel.smfcore.core.storage.rest.query.StoragePosFindCriteria
;
import
com.neotel.smfcore.core.storage.rest.query.StoragePosFindCriteria
;
import
com.neotel.smfcore.core.storage.service.manager.ILabelManager
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Label
;
import
com.neotel.smfcore.core.storage.service.po.Label
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -61,6 +64,9 @@ public class MaterialController {
...
@@ -61,6 +64,9 @@ public class MaterialController {
@Autowired
@Autowired
private
final
IStoragePosManager
storagePosManager
;
private
final
IStoragePosManager
storagePosManager
;
@Autowired
private
final
ILabelManager
labelManager
;
@ApiOperation
(
"策略出库获取库存列表"
)
@ApiOperation
(
"策略出库获取库存列表"
)
@GetMapping
(
value
=
"/inventory"
)
@GetMapping
(
value
=
"/inventory"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
...
@@ -73,20 +79,20 @@ public class MaterialController {
...
@@ -73,20 +79,20 @@ public class MaterialController {
}
}
@ApiOperation
(
"策略出库"
)
@ApiOperation
(
"策略出库"
)
@
Ge
tMapping
(
value
=
"/tacticsOuput"
)
@
Pos
tMapping
(
value
=
"/tacticsOuput"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
public
ResultBean
tacticsOuput
(
@RequestBody
Set
<
TacticsOutDto
>
outDtoSet
)
{
public
ResultBean
tacticsOuput
(
@RequestBody
Set
<
TacticsOutDto
>
outDtoSet
)
{
if
(
outDtoSet
==
null
)
{
if
(
outDtoSet
==
null
)
{
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"PN"
}
);
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"PN"
}
);
}
}
for
(
TacticsOutDto
dto
:
for
(
TacticsOutDto
dto
:
outDtoSet
)
{
outDtoSet
)
{
if
(
dto
.
getPartNumber
()==
null
)
{
if
(
dto
.
getPartNumber
()
==
null
)
{
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"PN"
}
);
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"PN"
}
);
}
else
if
(
dto
.
getPlateNumber
()==
null
)
{
}
else
if
(
dto
.
getPlateNumber
()
==
null
)
{
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"Num"
}
);
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"Num"
}
);
}
}
}
}
...
@@ -98,22 +104,22 @@ public class MaterialController {
...
@@ -98,22 +104,22 @@ public class MaterialController {
@ApiOperation
(
"物料分组界面"
)
@ApiOperation
(
"物料分组界面"
)
@GetMapping
(
"/labelOuput"
)
@GetMapping
(
"/labelOuput"
)
@PreAuthorize
(
"@el.check('labelOuput')"
)
@PreAuthorize
(
"@el.check('labelOuput')"
)
public
PageData
<
StoragePosDto
>
storagePosFind
(
StoragePosFindCriteria
criteria
,
Pageable
pageable
,
HttpServletRequest
request
){
public
PageData
<
StoragePosDto
>
storagePosFind
(
StoragePosFindCriteria
criteria
,
Pageable
pageable
,
HttpServletRequest
request
)
{
if
(
criteria
.
getStorageId
()!=
null
&&
criteria
.
getStorageId
().
equals
(
"0"
))
{
if
(
criteria
.
getStorageId
()
!=
null
&&
criteria
.
getStorageId
().
equals
(
"0"
))
{
criteria
.
setStorageId
(
null
);
criteria
.
setStorageId
(
null
);
}
}
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
Criteria
baseCriteria
=
Criteria
.
where
(
"used"
).
is
(
true
);
Criteria
baseCriteria
=
Criteria
.
where
(
"used"
).
is
(
true
);
int
componentType
=
criteria
.
getType
();
int
componentType
=
criteria
.
getType
();
String
name
=
""
;
String
name
=
""
;
if
(
componentType
!=
-
1
)
{
if
(
componentType
!=
-
1
)
{
int
type
=
componentType
;
int
type
=
componentType
;
request
.
setAttribute
(
"type"
,
componentType
);
request
.
setAttribute
(
"type"
,
componentType
);
if
(
componentType
==
41
)
{
//锡膏夹具
if
(
componentType
==
41
)
{
//锡膏夹具
type
=
COMPONENT_TYPE
.
FIXTURE
;
type
=
COMPONENT_TYPE
.
FIXTURE
;
name
=
StorageConstants
.
PACKAGE_TYPE
.
SOLDER_FIXTURE
.
getCode
();
name
=
StorageConstants
.
PACKAGE_TYPE
.
SOLDER_FIXTURE
.
getCode
();
}
else
if
(
componentType
==
42
)
{
//PCB夹具
}
else
if
(
componentType
==
42
)
{
//PCB夹具
type
=
COMPONENT_TYPE
.
FIXTURE
;
type
=
COMPONENT_TYPE
.
FIXTURE
;
name
=
StorageConstants
.
PACKAGE_TYPE
.
PCB_FIXTURE
.
getCode
();
name
=
StorageConstants
.
PACKAGE_TYPE
.
PCB_FIXTURE
.
getCode
();
}
}
...
@@ -122,20 +128,78 @@ public class MaterialController {
...
@@ -122,20 +128,78 @@ public class MaterialController {
String
expire
=
criteria
.
getExpire
();
String
expire
=
criteria
.
getExpire
();
if
(!
Strings
.
isNullOrEmpty
(
expire
))
{
if
(!
Strings
.
isNullOrEmpty
(
expire
))
{
if
(
"solder"
.
equalsIgnoreCase
(
expire
))
{
if
(
"solder"
.
equalsIgnoreCase
(
expire
))
{
baseCriteria
.
and
(
"barcode.expTime"
).
lte
(
new
Date
());
baseCriteria
.
and
(
"barcode.expTime"
).
lte
(
new
Date
());
}
else
if
(
"pcb"
.
equalsIgnoreCase
(
expire
))
{
}
else
if
(
"pcb"
.
equalsIgnoreCase
(
expire
))
{
baseCriteria
.
and
(
"barcode.expireDate"
).
lte
(
new
Date
());
baseCriteria
.
and
(
"barcode.expireDate"
).
lte
(
new
Date
());
}
}
request
.
setAttribute
(
"expire"
,
expire
);
request
.
setAttribute
(
"expire"
,
expire
);
}
}
query
.
addCriteria
(
baseCriteria
);
query
.
addCriteria
(
baseCriteria
);
PageData
<
StoragePos
>
pages
=
storagePosManager
.
findByPage
(
query
,
pageable
);
PageData
<
StoragePos
>
pages
=
storagePosManager
.
findByPage
(
query
,
pageable
);
List
<
StoragePosDto
>
StoragePosDtos
=
storagePosMapper
.
toDto
(
pages
.
getContent
());
List
<
StoragePosDto
>
StoragePosDtos
=
storagePosMapper
.
toDto
(
pages
.
getContent
());
return
new
PageData
(
StoragePosDtos
,
pages
.
getTotalElements
());
for
(
StoragePosDto
dto
:
StoragePosDtos
)
{
if
(
dto
.
getLabelId
()
!=
null
)
{
Label
label
=
labelManager
.
get
(
dto
.
getLabelId
());
if
(
label
!=
null
)
{
dto
.
setLabelName
(
label
.
getLabelName
());
}
}
}
return
new
PageData
(
StoragePosDtos
,
pages
.
getTotalElements
());
}
@ApiOperation
(
"物料分组界面选择出库"
)
@PostMapping
(
value
=
"/labelOuput"
)
@PreAuthorize
(
"@el.check('labelOuput')"
)
public
ResultBean
labelOuput
(
@RequestBody
Set
<
String
>
posSet
)
{
if
(
posSet
==
null
)
{
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"PN"
});
}
for
(
String
posId:
posSet
){
StoragePos
pos
=
storagePosManager
.
get
(
posId
);
if
(
pos
==
null
)
{
throw
new
ValidateException
(
"smfcode.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"posId"
,
posId
});
}
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
if
(
storage
==
null
)
{
throw
new
ValidateException
(
"smfcode.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"storageId"
,
pos
.
getStorageId
()});
}
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
true
);
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
throw
new
ValidateException
(
"smfcode.error"
,
outResult
);
}
}
return
ResultBean
.
newOkResult
(
"ok"
);
}
@ApiOperation
(
"批量修改库位分组"
)
@PostMapping
(
value
=
"/updatePosLabel"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
public
ResultBean
updatePosLabel
(
@RequestBody
Map
<
String
,
Object
>
params
)
{
Set
<
String
>
posIds
=
(
Set
<
String
>)
params
.
get
(
"posIds"
);
String
labelId
=
params
.
get
(
"labelId"
).
toString
();
if
(
posIds
==
null
||
posIds
.
size
()<=
0
){
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"ID"
});
}
if
(
ObjectUtil
.
isEmpty
(
labelId
)){
labelId
=
""
;
}
storagePosManager
.
updatePosLabel
(
posIds
,
labelId
);
return
ResultBean
.
newOkResult
(
""
);
}
}
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/dto/LabelDto.java
查看文件 @
4e2e605
...
@@ -12,8 +12,4 @@ public class LabelDto implements Serializable {
...
@@ -12,8 +12,4 @@ public class LabelDto implements Serializable {
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"标签名称"
)
@ApiModelProperty
(
value
=
"标签名称"
)
private
String
labelName
;
private
String
labelName
;
public
String
getLabel
()
{
return
labelName
;
}
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StoragePosDto.java
查看文件 @
4e2e605
...
@@ -54,4 +54,12 @@ public class StoragePosDto implements Serializable {
...
@@ -54,4 +54,12 @@ public class StoragePosDto implements Serializable {
@ApiModelProperty
(
"并联的其他库位,合并入主库位的库位"
)
@ApiModelProperty
(
"并联的其他库位,合并入主库位的库位"
)
private
List
<
String
>
mergePosList
;
private
List
<
String
>
mergePosList
;
@ApiModelProperty
(
"标签ID"
)
private
String
labelId
=
""
;
@ApiModelProperty
(
"标签名称"
)
private
String
labelName
;
}
}
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
查看文件 @
4e2e605
...
@@ -47,4 +47,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
...
@@ -47,4 +47,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos
getByBarcodeId
(
String
barcodeId
);
StoragePos
getByBarcodeId
(
String
barcodeId
);
void
clearStoragePosLabel
(
String
id
);
void
clearStoragePosLabel
(
String
id
);
void
updatePosLabel
(
Set
<
String
>
posIds
,
String
labelId
);
}
}
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
4e2e605
...
@@ -382,4 +382,10 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -382,4 +382,10 @@ public class StoragePosManagerImpl implements IStoragePosManager {
storagePosDao
.
updateMulti
(
query
,
Update
.
update
(
"labelId"
,
""
));
storagePosDao
.
updateMulti
(
query
,
Update
.
update
(
"labelId"
,
""
));
}
}
@Override
public
void
updatePosLabel
(
Set
<
String
>
posIds
,
String
labelId
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
"id"
).
in
(
posIds
));
storagePosDao
.
updateMulti
(
query
,
Update
.
update
(
"labelId"
,
""
));
}
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论