Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4ac70fd1
由
LN
编写于
2022-02-17 17:06:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
海拉修改:1.标签出库增加设备分组,设备,入库时间过滤。2.orderMaterialExt根据设备分组和标签名称过滤。3.getInventory料架名改为设备组名。
1 个父辈
cc9c50f7
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
174 行增加
和
52 行删除
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StorageController.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StorageDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StoragePosDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StorageSearchDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosFindCriteria.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/ILabelManager.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/LabelManagerImpl.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
4ac70fd
...
@@ -566,6 +566,26 @@ public class DataCache {
...
@@ -566,6 +566,26 @@ public class DataCache {
}
}
return
cidList
;
return
cidList
;
}
}
public
List
<
String
>
getStorageIdsByGroupId
(
String
groupId
,
boolean
nullReturnAll
){
if
(
groupId
!=
null
&&
groupId
.
equals
(
"-1"
)){
groupId
=
""
;
}
List
<
String
>
storageIds
=
Lists
.
newArrayList
();
for
(
Storage
storage
:
getAllStorage
().
values
())
{
if
(
groupId
!=
null
)
{
if
(
storage
.
IsRightGroup
(
groupId
)){
storageIds
.
add
(
storage
.
getId
());
}
}
else
if
(
nullReturnAll
){
storageIds
.
add
(
storage
.
getId
());
}
}
return
storageIds
;
}
public
List
<
String
>
getAvailableStorageIds
(){
public
List
<
String
>
getAvailableStorageIds
(){
List
<
String
>
availableStorageIds
=
new
ArrayList
<>();
List
<
String
>
availableStorageIds
=
new
ArrayList
<>();
for
(
Storage
storage
:
getAllStorage
().
values
())
{
for
(
Storage
storage
:
getAllStorage
().
values
())
{
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
查看文件 @
4ac70fd
...
@@ -25,6 +25,8 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
...
@@ -25,6 +25,8 @@ 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.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.po.Group
;
import
com.neotel.smfcore.security.service.po.User
;
import
com.neotel.smfcore.security.service.po.User
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -69,6 +71,9 @@ public class MaterialController {
...
@@ -69,6 +71,9 @@ public class MaterialController {
@Autowired
@Autowired
private
final
IBarcodeManager
barcodeManager
;
private
final
IBarcodeManager
barcodeManager
;
@Autowired
private
final
IGroupManager
groupManager
;
@ApiOperation
(
"导出库存列表"
)
@ApiOperation
(
"导出库存列表"
)
@GetMapping
(
value
=
"/inventory/download"
)
@GetMapping
(
value
=
"/inventory/download"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
...
@@ -135,14 +140,25 @@ public class MaterialController {
...
@@ -135,14 +140,25 @@ public class MaterialController {
@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
(
ObjectUtil
.
isEmpty
(
criteria
.
getStorageId
())
||
criteria
.
getStorageId
().
equals
(
"0"
)
)
{
criteria
.
setStorageId
(
null
);
criteria
.
setStorageId
(
null
);
}
}
boolean
noLabelSearch
=
false
;
boolean
noLabelSearch
=
false
;
if
(
ObjectUtil
.
isNull
(
criteria
.
getLabelId
())){
criteria
.
setLabelId
(
null
);
}
if
(
criteria
.
getLabelId
()!=
null
&&
criteria
.
getLabelId
().
equals
(
"0"
)){
if
(
criteria
.
getLabelId
()!=
null
&&
criteria
.
getLabelId
().
equals
(
"0"
)){
criteria
.
setLabelId
(
""
);
criteria
.
setLabelId
(
""
);
noLabelSearch
=
true
;
noLabelSearch
=
true
;
}
}
if
(
criteria
.
getStorageId
()==
null
&&
criteria
.
getGroupId
()!=
null
){
if
(
criteria
.
getGroupId
().
equals
(
"0"
)||
criteria
.
getGroupId
().
equals
(
""
)){
criteria
.
setGroupId
(
null
);
}
else
{
criteria
.
setStorageIdList
(
dataCache
.
getStorageIdsByGroupId
(
criteria
.
getGroupId
(),
false
));
}
}
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
Criteria
baseCriteria
=
Criteria
.
where
(
"used"
).
is
(
true
);
Criteria
baseCriteria
=
Criteria
.
where
(
"used"
).
is
(
true
);
...
@@ -181,13 +197,24 @@ public class MaterialController {
...
@@ -181,13 +197,24 @@ public class MaterialController {
List
<
StoragePosDto
>
StoragePosDtos
=
storagePosMapper
.
toDto
(
pages
.
getContent
());
List
<
StoragePosDto
>
StoragePosDtos
=
storagePosMapper
.
toDto
(
pages
.
getContent
());
for
(
StoragePosDto
dto
:
StoragePosDtos
for
(
StoragePosDto
dto
:
StoragePosDtos
)
{
)
{
if
(
dto
.
getLabelId
()
!=
null
)
{
if
(
ObjectUtil
.
isNotEmpty
(
dto
.
getLabelId
())
)
{
Label
label
=
labelManager
.
get
(
dto
.
getLabelId
());
Label
label
=
labelManager
.
get
(
dto
.
getLabelId
());
if
(
label
!=
null
)
{
if
(
label
!=
null
)
{
dto
.
setLabelName
(
label
.
getLabelName
());
dto
.
setLabelName
(
label
.
getLabelName
());
}
}
}
}
Storage
storage
=
dataCache
.
getStorageById
(
dto
.
getStorageId
());
if
(
storage
!=
null
){
dto
.
setStorageName
(
storage
.
getName
());
if
(
ObjectUtil
.
isNotEmpty
(
storage
.
getGroupId
())){
Group
group
=
groupManager
.
get
(
storage
.
getGroupId
());
if
(
group
!=
null
){
dto
.
setGroupId
(
group
.
getId
());
dto
.
setGroupName
(
group
.
getGroupName
());
}
}
}
}
}
return
new
PageData
(
StoragePosDtos
,
pages
.
getTotalElements
());
return
new
PageData
(
StoragePosDtos
,
pages
.
getTotalElements
());
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StorageController.java
查看文件 @
4ac70fd
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.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
...
@@ -116,17 +117,25 @@ public class StorageController {
...
@@ -116,17 +117,25 @@ public class StorageController {
@ApiOperation
(
"根据组权限返回所有料仓"
)
@ApiOperation
(
"根据组权限返回所有料仓"
)
@GetMapping
(
value
=
"/all"
)
@GetMapping
(
value
=
"/all"
)
// @PreAuthorize("@el.check('storage:list')")
// @PreAuthorize("@el.check('storage:list')")
public
List
<
StorageSearchDto
>
query
()
{
public
List
<
StorageSearchDto
>
query
(
String
groupId
)
{
String
userId
=
SecurityUtils
.
getCurrentUserId
();
// String userId = SecurityUtils.getCurrentUserId();
User
user
=
userManager
.
get
(
userId
);
// User user = userManager.get(userId);
Set
<
String
>
mygroups
=
user
.
getGroups
();
Set
<
String
>
mygroups
=
new
HashSet
<>();
if
(
ObjectUtil
.
isNotEmpty
(
groupId
))
{
mygroups
=
new
HashSet
<>();
mygroups
.
add
(
groupId
);
}
else
{
String
userId
=
SecurityUtils
.
getCurrentUserId
();
User
user
=
userManager
.
get
(
userId
);
mygroups
=
user
.
getGroups
();
}
mygroups
.
add
(
""
);
mygroups
.
add
(
""
);
List
<
Storage
>
allStorages
=
storageManager
.
findAll
();
List
<
Storage
>
allStorages
=
storageManager
.
findAll
();
List
<
Storage
>
myStorages
=
new
ArrayList
<>();
List
<
Storage
>
myStorages
=
new
ArrayList
<>();
for
(
Storage
s
:
allStorages
for
(
Storage
s
:
allStorages
)
{
)
{
if
(
mygroups
.
contains
(
s
.
getGroupId
()))
{
if
(
mygroups
.
contains
(
s
.
getGroupId
()))
{
myStorages
.
add
(
s
);
myStorages
.
add
(
s
);
}
}
}
}
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StorageDto.java
查看文件 @
4ac70fd
...
@@ -49,7 +49,7 @@ public class StorageDto implements Serializable {
...
@@ -49,7 +49,7 @@ public class StorageDto implements Serializable {
@ApiModelProperty
(
"是否可用"
)
@ApiModelProperty
(
"是否可用"
)
private
boolean
available
=
true
;
private
boolean
available
=
true
;
@ApiModelProperty
(
"分组"
)
@ApiModelProperty
(
"分组
ID
"
)
private
String
groupId
=
""
;
private
String
groupId
=
""
;
@ApiModelProperty
(
"组名称"
)
@ApiModelProperty
(
"组名称"
)
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StoragePosDto.java
查看文件 @
4ac70fd
...
@@ -72,4 +72,9 @@ public class StoragePosDto implements Serializable {
...
@@ -72,4 +72,9 @@ public class StoragePosDto implements Serializable {
@ApiModelProperty
(
"设备名称"
)
@ApiModelProperty
(
"设备名称"
)
private
String
storageName
;
private
String
storageName
;
@ApiModelProperty
(
"分组"
)
private
String
groupId
=
""
;
@ApiModelProperty
(
"组名称"
)
private
String
groupName
=
""
;
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StorageSearchDto.java
查看文件 @
4ac70fd
...
@@ -15,4 +15,7 @@ public class StorageSearchDto implements Serializable {
...
@@ -15,4 +15,7 @@ public class StorageSearchDto implements Serializable {
@ApiModelProperty
(
"料仓CID"
)
@ApiModelProperty
(
"料仓CID"
)
private
String
cid
;
private
String
cid
;
@ApiModelProperty
(
"分组ID"
)
private
String
groupId
=
""
;
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosFindCriteria.java
查看文件 @
4ac70fd
...
@@ -19,6 +19,10 @@ public class StoragePosFindCriteria {
...
@@ -19,6 +19,10 @@ public class StoragePosFindCriteria {
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
BetweenData
<
Date
>
updateDate
;
private
BetweenData
<
Date
>
updateDate
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"barcode.putInDate"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
BetweenData
<
Date
>
putInDate
;
@QueryCondition
@QueryCondition
@ApiModelProperty
(
"料仓ID"
)
@ApiModelProperty
(
"料仓ID"
)
private
String
storageId
;
private
String
storageId
;
...
@@ -39,6 +43,9 @@ public class StoragePosFindCriteria {
...
@@ -39,6 +43,9 @@ public class StoragePosFindCriteria {
@ApiModelProperty
(
"标签ID"
)
@ApiModelProperty
(
"标签ID"
)
private
String
labelId
;
private
String
labelId
;
@ApiModelProperty
(
"分组"
)
private
String
groupId
=
""
;
@ApiModelProperty
(
"类型"
)
@ApiModelProperty
(
"类型"
)
private
int
type
=-
1
;
private
int
type
=-
1
;
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/ILabelManager.java
查看文件 @
4ac70fd
...
@@ -10,4 +10,6 @@ public interface ILabelManager extends IBaseManager<Label> {
...
@@ -10,4 +10,6 @@ public interface ILabelManager extends IBaseManager<Label> {
List
<
Label
>
findAll
();
List
<
Label
>
findAll
();
Label
saveLabel
(
Label
resources
);
Label
saveLabel
(
Label
resources
);
Label
getBylabelName
(
String
labelName
);
}
}
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStoragePosManager.java
查看文件 @
4ac70fd
...
@@ -29,6 +29,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
...
@@ -29,6 +29,8 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
labelId
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
);
void
removePosByStorageId
(
String
storageId
);
void
removePosByStorageId
(
String
storageId
);
void
deletePoss
(
Set
<
String
>
ids
);
void
deletePoss
(
Set
<
String
>
ids
);
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/LabelManagerImpl.java
查看文件 @
4ac70fd
...
@@ -46,6 +46,12 @@ public class LabelManagerImpl implements ILabelManager {
...
@@ -46,6 +46,12 @@ public class LabelManagerImpl implements ILabelManager {
}
}
@Override
@Override
public
Label
getBylabelName
(
String
labelName
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
"labelName"
).
is
(
labelName
));
return
labelDao
.
findOne
(
query
);
}
@Override
public
Label
get
(
String
id
)
{
public
Label
get
(
String
id
)
{
return
labelDao
.
findOneById
(
id
);
return
labelDao
.
findOneById
(
id
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
4ac70fd
...
@@ -213,26 +213,32 @@ public class StoragePosManagerImpl implements IStoragePosManager {
...
@@ -213,26 +213,32 @@ public class StoragePosManagerImpl implements IStoragePosManager {
@Override
@Override
public
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
)
{
public
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
)
{
return
findPartNumberInStorages
(
storageIdList
,
""
,
pn
,
excludePosIds
,
checkOutType
);
}
@Override
public
StoragePos
findPartNumberInStorages
(
List
<
String
>
storageIdList
,
String
labelId
,
String
pn
,
Collection
<
String
>
excludePosIds
,
CHECKOUT_TYPE
checkOutType
)
{
Criteria
c
=
Criteria
.
where
(
"barcode.partNumber"
).
is
(
pn
)
Criteria
c
=
Criteria
.
where
(
"barcode.partNumber"
).
is
(
pn
)
.
and
(
"id"
).
nin
(
excludePosIds
)
.
and
(
"id"
).
nin
(
excludePosIds
)
.
and
(
"enabled"
).
is
(
true
)
//可用
.
and
(
"enabled"
).
is
(
true
)
//可用
.
and
(
"barcode.lockId"
).
is
(
null
);
//没有被锁定的仓位;
.
and
(
"barcode.lockId"
).
is
(
null
);
//没有被锁定的仓位;
if
(
storageIdList
!=
null
)
{
if
(
storageIdList
!=
null
)
{
c
=
c
.
and
(
"storageId"
).
in
(
storageIdList
);
c
=
c
.
and
(
"storageId"
).
in
(
storageIdList
);
}
}
if
(
ObjectUtil
.
isNotEmpty
(
labelId
))
{
c
.
and
(
"labelId"
).
is
(
labelId
);
}
Query
q
=
new
Query
(
c
);
Query
q
=
new
Query
(
c
);
Sort
sort
=
getSortByCheckOutType
(
checkOutType
);
Sort
sort
=
getSortByCheckOutType
(
checkOutType
);
q
.
with
(
sort
);
q
.
with
(
sort
);
StoragePos
pos
=
storagePosDao
.
findOne
(
q
);
StoragePos
pos
=
storagePosDao
.
findOne
(
q
);
if
(
pos
==
null
)
{
if
(
pos
==
null
)
{
log
.
info
(
"使用"
+
checkOutType
+
" 策略出库 partNumber="
+
pn
+
",未找到可以出库的物料 "
);
log
.
info
(
"使用"
+
checkOutType
+
" 策略出库 partNumber="
+
pn
+
",未找到可以出库的物料 "
);
}
else
{
}
else
{
log
.
info
(
"使用"
+
checkOutType
+
" 策略出库 partNumber="
+
pn
+
",找到出仓位置【"
+
pos
.
getPosName
()+
"】,RI【"
+
pos
.
getBarcode
().
getBarcode
()+
"】 "
);
log
.
info
(
"使用"
+
checkOutType
+
" 策略出库 partNumber="
+
pn
+
",找到出仓位置【"
+
pos
.
getPosName
()
+
"】,RI【"
+
pos
.
getBarcode
().
getBarcode
()
+
"】 "
);
}
}
return
pos
;
return
pos
;
}
}
/**
/**
* 根据出库方式获取不同的 Sort
* 根据出库方式获取不同的 Sort
*/
*/
...
...
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
查看文件 @
4ac70fd
...
@@ -19,7 +19,9 @@ import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
...
@@ -19,7 +19,9 @@ import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE
;
import
com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE
;
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.Storage
;
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.listener.ITaskListener
;
import
com.neotel.smfcore.core.system.listener.ITaskListener
;
...
@@ -81,6 +83,9 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -81,6 +83,9 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
private
IGroupManager
groupManager
;
private
IGroupManager
groupManager
;
@Autowired
@Autowired
private
ILabelManager
labelManager
;
@Autowired
private
CodeResolve
codeResolve
;
private
CodeResolve
codeResolve
;
protected
final
static
Logger
log
=
LogManager
.
getLogger
();
protected
final
static
Logger
log
=
LogManager
.
getLogger
();
...
@@ -232,46 +237,64 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -232,46 +237,64 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
handleOrderMaterialExtCmd
(
session
,
resposArr
);
handleOrderMaterialExtCmd
(
session
,
resposArr
);
}
else
if
(
respCommand
.
isGetInventoryCmd
()){
}
else
if
(
respCommand
.
isGetInventoryCmd
()){
//<STX>getInventory;eventId;shelfNumber<CR><LF>
//<STX>getInventory;eventId;shelfNumber<CR><LF>
String
shelfNumber
=
resposArr
[
2
];
//20220217修改: <STX>getInventory;eventId;lineNumber<CR><LF>
Storage
shelf
=
null
;
// String shelfNumber = resposArr[2];
if
(
ObjectUtil
.
isNotEmpty
(
shelfNumber
))
{
// Storage shelf = null;
Collection
<
Storage
>
allStorages
=
dataCache
.
getAllStorage
().
values
();
// if(ObjectUtil.isNotEmpty(shelfNumber)) {
for
(
Storage
storage
:
allStorages
)
{
// Collection<Storage> allStorages = dataCache.getAllStorage().values();
if
(
storage
.
getName
().
equals
(
shelfNumber
))
{
// for (Storage storage : allStorages) {
shelf
=
storage
;
// if (storage.getName().equals(shelfNumber)) {
}
// shelf = storage;
// }
// }
// }
String
lineNumber
=
resposArr
[
2
];
List
<
String
>
shelfIds
=
new
ArrayList
<>();
if
(
ObjectUtil
.
isNotEmpty
(
lineNumber
)){
Group
group
=
groupManager
.
getByGroupName
(
lineNumber
);
if
(
group
!=
null
){
shelfIds
=
dataCache
.
getStorageIdsByGroupId
(
group
.
getId
(),
false
);
}
}
}
}
String
resultCode
=
"0"
;
String
resultCode
=
"0"
;
String
resultMsg
=
"OK"
;
String
resultMsg
=
"OK"
;
String
dataStr
=
""
;
String
dataStr
=
""
;
if
(
ObjectUtil
.
isNotEmpty
(
shelfNumber
)&&
shelf
==
null
){
// if(ObjectUtil.isNotEmpty(shelfNumber)&&shelf == null){
if
(
ObjectUtil
.
isNotEmpty
(
lineNumber
)&&
shelfIds
.
size
()<=
0
){
//<STX>getInventoryResp;eventId;returnCode;messageText;numberofResults;partNumber1;containerNumber;remainQuantity;MSL;lightClass;SelfPosition;reserved;…;partNumberN;containerNumberN;remainQuantityN;MSLN;lightClassN;SelfPositionN;reservedN;<CR><LF>
//<STX>getInventoryResp;eventId;returnCode;messageText;numberofResults;partNumber1;containerNumber;remainQuantity;MSL;lightClass;SelfPosition;reserved;…;partNumberN;containerNumberN;remainQuantityN;MSLN;lightClassN;SelfPositionN;reservedN;<CR><LF>
resultCode
=
"-1"
;
resultCode
=
"-1"
;
resultMsg
=
"Shelf is not found"
;
resultMsg
=
"Shelf is not found"
;
dataStr
=
"0"
;
dataStr
=
"0"
;
}
else
{
}
else
{
String
shelfId
=
""
;
// String shelfId="";
if
(!(
shelf
==
null
)){
// if(!(shelf==null)){
shelfId
=
shelf
.
getId
();
// shelfId=shelf.getId();
// }
if
(
shelfIds
.
size
()<=
0
){
shelfIds
.
add
(
""
);
}
}
List
<
StoragePos
>
posList
=
storagePosManager
.
findNotEmptyByStorageId
(
shelfId
);
for
(
String
shelfId
:
int
numberOfResult
=
posList
.
size
();
shelfIds
)
{
dataStr
=
""
+
numberOfResult
;
List
<
StoragePos
>
posList
=
storagePosManager
.
findNotEmptyByStorageId
(
shelfId
);
for
(
StoragePos
storagePos
:
posList
)
{
int
numberOfResult
=
posList
.
size
();
Barcode
barcode
=
storagePos
.
getBarcode
();
dataStr
=
""
+
numberOfResult
;
String
pn
=
barcode
.
getPartNumber
();
for
(
StoragePos
storagePos
:
posList
)
{
String
reelId
=
barcode
.
getBarcode
();
Barcode
barcode
=
storagePos
.
getBarcode
();
int
qty
=
barcode
.
getAmount
();
String
pn
=
barcode
.
getPartNumber
();
String
msl
=
barcode
.
getMsl
();
String
reelId
=
barcode
.
getBarcode
();
String
lightClass
=
barcode
.
getBatch
();
int
qty
=
barcode
.
getAmount
();
String
posName
=
storagePos
.
getPosName
();
String
msl
=
barcode
.
getMsl
();
String
reserved
=
"0"
;
String
lightClass
=
barcode
.
getBatch
();
if
(
Strings
.
isNotBlank
(
barcode
.
getLockId
())){
String
posName
=
storagePos
.
getPosName
();
reserved
=
"1"
;
String
reserved
=
"0"
;
if
(
Strings
.
isNotBlank
(
barcode
.
getLockId
()))
{
reserved
=
"1"
;
}
dataStr
=
dataStr
+
";"
+
pn
+
";"
+
reelId
+
";"
+
qty
+
";"
+
msl
+
";"
+
lightClass
+
";"
+
posName
+
";"
+
reserved
;
}
}
dataStr
=
dataStr
+
";"
+
pn
+
";"
+
reelId
+
";"
+
qty
+
";"
+
msl
+
";"
+
lightClass
+
";"
+
posName
+
";"
+
reserved
;
}
}
}
}
...
@@ -409,21 +432,23 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -409,21 +432,23 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
private
void
handleOrderMaterialExtCmd
(
IoSession
session
,
String
[]
resposArr
)
throws
ValidateException
{
private
void
handleOrderMaterialExtCmd
(
IoSession
session
,
String
[]
resposArr
)
throws
ValidateException
{
//工单出库
//工单出库
//<STX>orderMaterialExt;eventId;lineNumber;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;numberofReels;…;partNumberN;numberofReels<CR><LF>
//<STX>orderMaterialExt;eventId;lineNumber;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;numberofReels;…;partNumberN;numberofReels<CR><LF>
//20220217 修改工单出库参数
//<STX>orderMaterialExt;eventId;lineNumber;CRPNumber;currentWorkorderflag;productGroup;numberofPartnumbers;partNumber1;numberofReels;…;partNumberN;numberofReels<CR><LF>
String
responseEventId
=
resposArr
[
1
];
String
responseEventId
=
resposArr
[
1
];
String
groupName
=
resposArr
[
2
];
String
groupName
=
resposArr
[
2
];
//设备组名称
String
workorderNumber
=
resposArr
[
3
];
String
workorderNumber
=
resposArr
[
3
];
// workorderNumber=responseEventId;
// workorderNumber=responseEventId;
//currentWorkorderflag 0 for current workorder; 1 for next workorder
//currentWorkorderflag 0 for current workorder; 1 for next workorder
String
currentWorkorderflag
=
resposArr
[
4
];
String
currentWorkorderflag
=
resposArr
[
4
];
String
reflowgroupNumber
=
resposArr
[
5
];
// String reflowgroupNumber = resposArr[5];
String
labelName
=
resposArr
[
5
];
//标签名称
String
numberofPartnumbers
=
resposArr
[
6
];
String
numberofPartnumbers
=
resposArr
[
6
];
LiteOrder
liteOrder
=
liteOrderManager
.
findByOrderNo
(
workorderNumber
);
LiteOrder
liteOrder
=
liteOrderManager
.
findByOrderNo
(
workorderNumber
);
if
(
liteOrder
!=
null
){
if
(
liteOrder
!=
null
){
log
.
info
(
"数据库中已存在工单号为["
+
workorderNumber
+
"]的工单,忽略"
);
log
.
info
(
"数据库中已存在工单号为["
+
workorderNumber
+
"]的工单,忽略"
);
int
resultCode
=-
1
;
int
resultCode
=-
1
;
String
resultMsg
=
"workorderNumber ["
+
workorderNumber
+
"] already exists"
;
String
resultMsg
=
"workorderNumber ["
+
workorderNumber
+
"] already exists"
;
String
respMsg
=
"orderMaterialExtResp;"
+
responseEventId
+
";"
+
resultCode
+
";"
+
resultMsg
+
";"
+
workorderNumber
+
";"
+
currentWorkorderflag
+
";"
+
reflowgroupNumber
+
";"
+
numberofPartnumbers
;
String
respMsg
=
"orderMaterialExtResp;"
+
responseEventId
+
";"
+
resultCode
+
";"
+
resultMsg
+
";"
+
workorderNumber
+
";"
+
currentWorkorderflag
+
";"
+
labelName
+
";"
+
numberofPartnumbers
;
HellaTcpClient
.
sendMsg
(
respMsg
,
session
);
HellaTcpClient
.
sendMsg
(
respMsg
,
session
);
}
else
{
}
else
{
...
@@ -440,7 +465,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -440,7 +465,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
}
}
liteOrder
=
new
LiteOrder
(
workorderNumber
,
items
);
liteOrder
=
new
LiteOrder
(
workorderNumber
,
items
);
liteOrder
.
setSource
(
groupName
);
liteOrder
.
setSource
(
groupName
);
log
.
info
(
"新增加订单:"
+
liteOrder
.
getOrderNo
());
log
.
info
(
"新增加订单:"
+
liteOrder
.
getOrderNo
()
+
",设备组名称["
+
groupName
+
"],标签名称["
+
labelName
+
"]"
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
//对工单进行锁定
//对工单进行锁定
...
@@ -457,6 +482,16 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -457,6 +482,16 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
}
}
}
}
//增加标签过滤
String
labelId
=
""
;
if
(
ObjectUtil
.
isNotEmpty
(
labelName
)){
Label
label
=
labelManager
.
getBylabelName
(
labelName
);
if
(
label
!=
null
){
labelId
=
label
.
getId
()
;
}
}
CHECKOUT_TYPE
checkOutType
=
dataCache
.
getCheckOutType
();
CHECKOUT_TYPE
checkOutType
=
dataCache
.
getCheckOutType
();
Collection
<
String
>
excludePosIds
=
new
ArrayList
<>();
Collection
<
String
>
excludePosIds
=
new
ArrayList
<>();
...
@@ -468,7 +503,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -468,7 +503,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
String
pn
=
liteOrderItem
.
getPn
();
String
pn
=
liteOrderItem
.
getPn
();
int
lockCount
=
0
;
int
lockCount
=
0
;
while
(
lockCount
<
reelCount
){
while
(
lockCount
<
reelCount
){
StoragePos
pos
=
storagePosManager
.
findPartNumberInStorages
(
storageIdList
,
pn
,
excludePosIds
,
checkOutType
);
StoragePos
pos
=
storagePosManager
.
findPartNumberInStorages
(
storageIdList
,
labelId
,
pn
,
excludePosIds
,
checkOutType
);
if
(
pos
==
null
){
if
(
pos
==
null
){
break
;
break
;
}
else
{
}
else
{
...
@@ -506,7 +541,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -506,7 +541,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
//<STX>orderMaterialExtResp;1;0;OK;61598;1;325.618-01;3;790.130-13;abcde;3000; 790.131-01;abcdf;5000;790.131-01;abcdg;2580<CR><LF>
//<STX>orderMaterialExtResp;1;0;OK;61598;1;325.618-01;3;790.130-13;abcde;3000; 790.131-01;abcdf;5000;790.131-01;abcdg;2580<CR><LF>
//orderMaterialExtResp;0;-1;Some material not on the shelf;1408;1;325.618-01;1;;791.704-06NOT_FOUND;0
//orderMaterialExtResp;0;-1;Some material not on the shelf;1408;1;325.618-01;1;;791.704-06NOT_FOUND;0
//<STX>orderMaterialExtResp;eventId;returnCode;messageText;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;containerNumber;quantity;…;partNumberN;containerNumberN;quantityN<CR><LF>
//<STX>orderMaterialExtResp;eventId;returnCode;messageText;workorderNumber;currentWorkorderflag;reflowgroupNumber;numberofPartnumbers;partNumber1;containerNumber;quantity;…;partNumberN;containerNumberN;quantityN<CR><LF>
String
respMsg
=
"orderMaterialExtResp;"
+
responseEventId
+
";"
+
resultCode
+
";"
+
resultMsg
+
";"
+
workorderNumber
+
";"
+
currentWorkorderflag
+
";"
+
reflowgroupNumber
+
";"
+
numberofPartnumbers
+
resultDataStr
;
String
respMsg
=
"orderMaterialExtResp;"
+
responseEventId
+
";"
+
resultCode
+
";"
+
resultMsg
+
";"
+
workorderNumber
+
";"
+
currentWorkorderflag
+
";"
+
labelName
+
";"
+
numberofPartnumbers
+
resultDataStr
;
// log.info("工单结果:" + respMsg);
// log.info("工单结果:" + respMsg);
// session.write("\02"+respMsg);
// session.write("\02"+respMsg);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论