Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 03c2eac8
由
LN
编写于
2024-08-09 10:20:38 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
出库单,入库单,退库单增加分页查询接口
1 个父辈
6d6187b8
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
425 行增加
和
147 行删除
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/bean/query/ListQueryCondition.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpBoxCheckOutController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpReturnInventoryController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpSpareNoController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpUnclaimedController.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/IUnclaimedManager.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/impl/ReturnManagerImpl.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/impl/UnclaimedManagerImpl.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/OrderNoCache.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/ReturnNoCache.java
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/SpareNoCache.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
03c2eac
...
...
@@ -470,6 +470,9 @@ public class DataCache {
Map
<
String
,
InventoryItem
>
resultMap
=
new
HashMap
<>();
for
(
InventoryItem
item
:
map
.
values
())
{
boolean
add
=
true
;
if
(
ObjectUtil
.
isEmpty
(
item
.
getPartNumber
())){
continue
;
}
if
(
ObjectUtil
.
isNotEmpty
(
blurry
))
{
if
(
item
.
getPartNumber
().
contains
(
blurry
)||
item
.
getWareHouseCode
().
contains
(
blurry
)||
item
.
getPartname
().
contains
(
blurry
))
{
...
...
@@ -478,13 +481,13 @@ public class DataCache {
}
}
if
(
ObjectUtil
.
isNotEmpty
(
pn
)){
if
(
ObjectUtil
.
isNotEmpty
(
pn
)
&&
ObjectUtil
.
isNotEmpty
(
item
.
getPartNumber
())
){
if
(!
item
.
getPartNumber
().
contains
(
pn
)){
add
=
false
;
}
}
if
(
ObjectUtil
.
isNotEmpty
(
wCode
)){
if
(
ObjectUtil
.
isNotEmpty
(
wCode
)
&&
ObjectUtil
.
isNotEmpty
(
item
.
getWareHouseCode
())
){
if
(!
item
.
getWareHouseCode
().
contains
(
wCode
)){
add
=
false
;
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/bean/query/ListQueryCondition.java
0 → 100644
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
bean
.
query
;
import
com.neotel.smfcore.common.annotation.QueryCondition
;
import
com.neotel.smfcore.common.bean.BetweenData
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
ListQueryCondition
{
@QueryCondition
(
blurry
=
"orderNo,no"
)
private
String
blurry
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
private
BetweenData
<
Date
>
createDate
;
//状态,0=所有,1=已关闭,2=未关闭
private
Integer
status
;
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpBoxCheckOutController.java
查看文件 @
03c2eac
...
...
@@ -23,25 +23,14 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.lizhen.agvBox.bean.Station
;
import
com.neotel.smfcore.custom.lizhen.agvBox.util.StationCacheUtil
;
import
com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.SpareInHourseRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.SpareInHourseDetail
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.*
;
import
com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.ISpareNoManager
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IUnclaimedManager
;
import
com.neotel.smfcore.custom.luxsan_sp.util.CodeUtil
;
import
com.neotel.smfcore.custom.luxsan_sp.util.OrderNoCache
;
import
com.neotel.smfcore.custom.luxsan_sp.util.SpBoxUtil
;
import
com.neotel.smfcore.custom.luxsan_sp.util.SpareNoCache
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
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.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpReturnInventoryController.java
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
controller
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.GetReturnInventoryRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetReturnInventoryResult
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.ReturnInventoryNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.query.ListQueryCondition
;
import
com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IReturnNoManager
;
import
com.neotel.smfcore.custom.luxsan_sp.util.ReturnNoCache
;
...
...
@@ -15,6 +19,9 @@ import com.neotel.smfcore.security.annotation.AnonymousAccess;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -69,6 +76,39 @@ public class SpReturnInventoryController {
}
@ApiOperation
(
"获取退库单列表"
)
@RequestMapping
(
"/getList"
)
@AnonymousAccess
public
PageData
<
ReturnInventoryNo
>
getList
(
ListQueryCondition
criteria
,
Pageable
pageable
)
{
returnNoCache
.
LoadFromAPI
();
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
//已关闭 状态=3 或者状态=2已确认
Criteria
c
=
new
Criteria
();
c
.
orOperator
(
Criteria
.
where
(
"status"
).
is
(
"3"
),
Criteria
.
where
(
"status"
).
is
(
"2"
).
and
(
"isConfirmed"
).
is
(
true
)
);
query
.
addCriteria
(
c
);
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
//未关闭 状态=0,1,或者状态=2未确认
Criteria
c
=
new
Criteria
();
c
.
orOperator
(
Criteria
.
where
(
"status"
).
is
(
"0"
),
Criteria
.
where
(
"status"
).
is
(
"1"
),
Criteria
.
where
(
"status"
).
is
(
"2"
).
and
(
"isConfirmed"
).
is
(
false
)
);
query
.
addCriteria
(
c
);
}
}
PageData
<
ReturnInventoryNo
>
resultList
=
returnNoManager
.
findByPage
(
query
,
pageable
);
return
resultList
;
}
@ApiOperation
(
"选中退库单"
)
@RequestMapping
(
"/checkReturnNo"
)
@AnonymousAccess
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpSpareNoController.java
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
controller
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
...
...
@@ -14,6 +16,7 @@ import com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetSpareNoResult;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.SpareInHourseDetail
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.SpareNoDetail
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.query.ListQueryCondition
;
import
com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.ISpareNoManager
;
import
com.neotel.smfcore.custom.luxsan_sp.util.ReturnNoCache
;
...
...
@@ -22,10 +25,14 @@ import com.neotel.smfcore.security.annotation.AnonymousAccess;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -61,7 +68,6 @@ public class SpSpareNoController {
return
ResultBean
.
newOkResult
(
results
);
}
@ApiOperation
(
"获取入库单"
)
@RequestMapping
(
"/getAllSpareNo"
)
@AnonymousAccess
...
...
@@ -89,6 +95,40 @@ public class SpSpareNoController {
}
@ApiOperation
(
"获取入库单列表"
)
@RequestMapping
(
"/getList"
)
@AnonymousAccess
public
PageData
<
SpareNo
>
getList
(
ListQueryCondition
criteria
,
Pageable
pageable
)
{
spareNoCache
.
LoadFromAPI
();
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
//已关闭 状态=3 或者状态=2已确认
Criteria
c
=
new
Criteria
();
c
.
orOperator
(
Criteria
.
where
(
"status"
).
is
(
"3"
),
Criteria
.
where
(
"status"
).
is
(
"2"
).
and
(
"isConfirmed"
).
is
(
true
)
);
// query.addCriteria(Criteria.where("status").is("3").orOperator(Criteria.where("status").is("2").and("isConfirmed").is(true)));
query
.
addCriteria
(
c
);
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
//未关闭 状态=0,1,或者状态=2未确认
Criteria
c
=
new
Criteria
();
c
.
orOperator
(
Criteria
.
where
(
"status"
).
is
(
"0"
),
Criteria
.
where
(
"status"
).
is
(
"1"
),
Criteria
.
where
(
"status"
).
is
(
"2"
).
and
(
"isConfirmed"
).
is
(
false
)
);
query
.
addCriteria
(
c
);
}
}
PageData
<
SpareNo
>
resultList
=
spareNoManager
.
findByPage
(
query
,
pageable
);
return
resultList
;
}
@ApiOperation
(
"选中入库单"
)
@RequestMapping
(
"/checkSpareNo"
)
@AnonymousAccess
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/controller/SpUnclaimedController.java
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
controller
;
import
com.neotel.smfcore.common.base.BasePo
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.utils.CodeResolve
;
...
...
@@ -16,15 +18,19 @@ import com.neotel.smfcore.core.system.util.TaskService;
import
com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.GetUnclaimedRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetUnclaimedResult
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.SpareNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.Unclaimed
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.UnclaimedDetail
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.query.ListQueryCondition
;
import
com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IUnclaimedManager
;
import
com.neotel.smfcore.custom.luxsan_sp.util.OrderNoCache
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -39,20 +45,20 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping
(
"/unclaimed"
)
public
class
SpUnclaimedController
{
@Autowired
private
CodeResolve
codeResolve
;
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
IBarcodeManager
barcodeManager
;
//
@Autowired
//
private CodeResolve codeResolve;
//
//
@Autowired
//
private IStoragePosManager storagePosManager;
//
//
@Autowired
//
private IBarcodeManager barcodeManager;
@Autowired
private
OrderNoCache
orderNoCache
;
@Autowired
private
IUnclaimedManager
unclaimedManager
;
//
@Autowired
//
private IUnclaimedManager unclaimedManager;
@Autowired
private
ILiteOrderManager
liteOrderManager
;
...
...
@@ -70,7 +76,14 @@ public class SpUnclaimedController {
@AnonymousAccess
public
ResultBean
getActiveOrderNo
()
{
List
<
Unclaimed
>
results
=
new
ArrayList
<>();
results
.
add
(
orderNoCache
.
getExecutingOrderNo
());
LiteOrder
order
=
liteOrderCache
.
getExecutingOrder
();
Unclaimed
u
=
null
;
if
(
order
==
null
){
u
=
null
;
}
else
{
u
=
OrderToUnclaimed
(
order
);
}
results
.
add
(
u
);
return
ResultBean
.
newOkResult
(
results
);
}
...
...
@@ -146,6 +159,48 @@ public class SpUnclaimedController {
return
ResultBean
.
newOkResult
(
resultLiteOrder
);
}
@ApiOperation
(
"获取入库单列表"
)
@RequestMapping
(
"/getList"
)
@AnonymousAccess
public
PageData
<
Unclaimed
>
getList
(
ListQueryCondition
criteria
,
Pageable
pageable
)
{
orderNoCache
.
LoadFromAPI
();
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
//已关闭 状态=3 或者状态=2已确认
Criteria
c
=
new
Criteria
();
c
.
orOperator
(
Criteria
.
where
(
"status"
).
is
(
"3"
),
Criteria
.
where
(
"status"
).
is
(
"2"
).
and
(
"isConfirmed"
).
is
(
true
)
);
// query.addCriteria(Criteria.where("status").is("3").orOperator(Criteria.where("status").is("2").and("isConfirmed").is(true)));
query
.
addCriteria
(
c
);
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
//未关闭 状态=0,1,或者状态=2未确认
Criteria
c
=
new
Criteria
();
c
.
orOperator
(
Criteria
.
where
(
"status"
).
is
(
"0"
),
Criteria
.
where
(
"status"
).
is
(
"1"
),
Criteria
.
where
(
"status"
).
is
(
"2"
).
and
(
"isConfirmed"
).
is
(
false
)
);
query
.
addCriteria
(
c
);
}
}
PageData
<
LiteOrder
>
resultList
=
liteOrderManager
.
findByPage
(
query
,
pageable
);
PageData
<
Unclaimed
>
data
=
new
PageData
<
Unclaimed
>();
data
.
setTotalElements
(
resultList
.
getTotalElements
());
List
<
Unclaimed
>
list
=
new
ArrayList
<>();
for
(
LiteOrder
order
:
resultList
.
getContent
()
)
{
list
.
add
(
OrderToUnclaimed
(
order
));
}
data
.
setContent
(
list
);
return
data
;
}
private
Unclaimed
OrderToUnclaimed
(
LiteOrder
liteOrder
){
Unclaimed
unclaimed
=
new
Unclaimed
();
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/IUnclaimedManager.java
查看文件 @
03c2eac
...
...
@@ -5,9 +5,9 @@ import com.neotel.smfcore.custom.luxsan_sp.bean.Unclaimed;
import
java.util.List
;
public
interface
IUnclaimedManager
extends
IBaseManager
<
Unclaimed
>
{
Unclaimed
getByOrderNo
(
String
OrderNo
);
List
<
Unclaimed
>
findAll
();
}
//
public interface IUnclaimedManager extends IBaseManager<Unclaimed> {
//
Unclaimed getByOrderNo(String OrderNo);
//
//
List<Unclaimed> findAll();
//
//
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/impl/ReturnManagerImpl.java
查看文件 @
03c2eac
...
...
@@ -3,11 +3,8 @@ package com.neotel.smfcore.custom.luxsan_sp.service.manager.impl;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.ReturnInventoryNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.Unclaimed
;
import
com.neotel.smfcore.custom.luxsan_sp.service.dao.ReturnDao
;
import
com.neotel.smfcore.custom.luxsan_sp.service.dao.UnclaimedDao
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IReturnNoManager
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IUnclaimedManager
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/service/manager/impl/UnclaimedManagerImpl.java
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
service
.
manager
.
impl
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.Unclaimed
;
import
com.neotel.smfcore.custom.luxsan_sp.service.dao.UnclaimedDao
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IUnclaimedManager
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.util.Collections
;
import
java.util.List
;
@Slf4j
@Service
public
class
UnclaimedManagerImpl
implements
IUnclaimedManager
{
@Autowired
private
UnclaimedDao
unclaimedDao
;
@Override
public
Unclaimed
get
(
String
id
)
{
return
null
;
}
@Override
public
Unclaimed
save
(
Unclaimed
object
)
throws
ValidateException
{
return
unclaimedDao
.
save
(
object
);
}
@Override
public
void
delete
(
Unclaimed
object
)
throws
ValidateException
{
}
@Override
public
PageData
<
Unclaimed
>
findByPage
(
Query
query
,
Pageable
pageable
)
{
return
null
;
}
@Override
public
List
<
Unclaimed
>
findByQuery
(
Query
query
)
{
return
Collections
.
emptyList
();
}
@Override
public
Unclaimed
getByOrderNo
(
String
orderNo
)
{
return
unclaimedDao
.
findOne
(
new
Query
(
Criteria
.
where
(
"orderNo"
).
is
(
orderNo
)));
}
@Override
public
List
<
Unclaimed
>
findAll
()
{
return
unclaimedDao
.
findAll
();
}
}
//
package com.neotel.smfcore.custom.luxsan_sp.service.manager.impl;
//
//
import com.neotel.smfcore.common.bean.PageData;
//
import com.neotel.smfcore.common.exception.ValidateException;
//
import com.neotel.smfcore.custom.luxsan_sp.bean.Unclaimed;
//
import com.neotel.smfcore.custom.luxsan_sp.service.dao.UnclaimedDao;
//
import com.neotel.smfcore.custom.luxsan_sp.service.manager.IUnclaimedManager;
//
import lombok.extern.slf4j.Slf4j;
//
import org.springframework.beans.factory.annotation.Autowired;
//
import org.springframework.data.domain.Pageable;
//
import org.springframework.data.mongodb.core.query.Criteria;
//
import org.springframework.data.mongodb.core.query.Query;
//
import org.springframework.stereotype.Service;
//
//
import java.util.Collections;
//
import java.util.List;
//
@Slf4j
//
@Service
//
public class UnclaimedManagerImpl implements IUnclaimedManager {
//
@Autowired
//
private UnclaimedDao unclaimedDao;
//
//
@Override
//
public Unclaimed get(String id) {
//
return null;
//
}
//
//
@Override
//
public Unclaimed save(Unclaimed object) throws ValidateException {
//
return unclaimedDao.save(object);
//
}
//
//
@Override
//
public void delete(Unclaimed object) throws ValidateException {
//
//
}
//
//
@Override
//
public PageData<Unclaimed> findByPage(Query query, Pageable pageable) {
//
return null;
//
}
//
//
@Override
//
public List<Unclaimed> findByQuery(Query query) {
//
return Collections.emptyList();
//
}
//
//
@Override
//
public Unclaimed getByOrderNo(String orderNo) {
//
return unclaimedDao.findOne(new Query(Criteria.where("orderNo").is(orderNo)));
//
}
//
//
@Override
//
public List<Unclaimed> findAll() {
//
return unclaimedDao.findAll();
//
}
//
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/OrderNoCache.java
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
util
;
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.LiteOrderItem
;
import
com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.GetUnclaimedRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetUnclaimedResult
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.ReturnInventoryNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.Unclaimed
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.UnclaimedDetail
;
import
com.neotel.smfcore.custom.luxsan_sp.enums.SpareNostatus
;
import
com.neotel.smfcore.custom.luxsan_sp.service.manager.IUnclaimedManager
;
import
lombok.extern.slf4j.Slf4j
;
import
org.ehcache.impl.internal.concurrent.ConcurrentHashMap
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Consumer
;
import
java.util.stream.Collectors
;
@Service
@Slf4j
public
class
OrderNoCache
{
public
OrderNoCache
(
ApplicationContext
applicationContext
)
{
IUnclaimedManager
unclaimedManager
=
applicationContext
.
getBean
(
IUnclaimedManager
.
class
);
// 刷新缓存
unclaimedManager
.
findAll
().
forEach
(
unclaimed
->
cacheMap
.
put
(
unclaimed
.
getOrderNo
(),
unclaimed
));
}
//
public OrderNoCache(ApplicationContext applicationContext) {
//
IUnclaimedManager unclaimedManager = applicationContext.getBean(IUnclaimedManager.class);
//
// 刷新缓存
//
unclaimedManager.findAll().forEach(
//
unclaimed -> cacheMap.put(unclaimed.getOrderNo(), unclaimed));
//
}
@Autowired
private
IUnclaimedManager
unclaimedManager
;
//
@Autowired
//
private IUnclaimedManager unclaimedManager;
Map
<
String
,
Unclaimed
>
cacheMap
=
new
ConcurrentHashMap
<>();
public
void
addToMap
(
Unclaimed
unclaimed
){
cacheMap
.
put
(
unclaimed
.
getOrderNo
(),
unclaimed
);
}
private
Long
lasLoadTime
=
0L
;
public
Unclaimed
getByOrderNo
(
String
orderNo
)
{
Unclaimed
unclaimed
=
cacheMap
.
get
(
orderNo
);
if
(
unclaimed
==
null
){
unclaimed
=
unclaimedManager
.
getByOrderNo
(
orderNo
);
if
(
unclaimed
!=
null
){
cacheMap
.
put
(
unclaimed
.
getOrderNo
(),
unclaimed
);
}
private
boolean
NeedReLoad
(){
//1分钟加载一次?
long
timeSpan
=(
new
Date
().
getTime
())-
lasLoadTime
;
if
(
timeSpan
<
1
*
60
*
1000
){
return
false
;
}
return
unclaimed
;
return
true
;
}
@Autowired
private
ILiteOrderManager
liteOrderManager
;
public
String
getExecutingOrderNoStr
(){
for
(
String
orderNo
:
cacheMap
.
keySet
())
{
Unclaimed
unclaimed
=
cacheMap
.
get
(
orderNo
);
if
(
unclaimed
.
getUnclaimedStatus
()
==
SpareNostatus
.
EXECUTING_STATUS
){
return
orderNo
;
public
void
LoadFromAPI
()
{
if
(!
NeedReLoad
())
{
return
;
}
lasLoadTime
=
new
Date
().
getTime
();
List
<
GetUnclaimedResult
>
resultList
=
LuxsanSpApi
.
getUnclaimedDetails
(
new
GetUnclaimedRequest
(
SpareNostatus
.
FORMAL_DEPT_ID
,
SpareNostatus
.
FUNCTION_DEPT
));
List
<
String
>
newNos
=
resultList
.
stream
().
map
(
GetUnclaimedResult:
:
getOrderNo
).
collect
(
Collectors
.
toList
());
Criteria
criteria
=
Criteria
.
where
(
"orderNo"
).
in
(
newNos
.
toArray
());
List
<
LiteOrder
>
existList
=
liteOrderManager
.
findByQuery
(
new
Query
(
criteria
));
for
(
GetUnclaimedResult
unclaimed
:
resultList
)
{
List
<
LiteOrder
>
hasList
=
existList
.
stream
()
.
filter
(
order
->
unclaimed
.
getOrderNo
().
equals
(
order
.
getOrderNo
()))
.
collect
(
Collectors
.
toList
());
if
(
hasList
.
size
()
<=
0
)
{
// Unclaimed unclaimed = orderNoCache.getOrderNoResultToUnclaimed(unclaimedResult);
// orderNoCache.addToMap(unclaimed);
LiteOrder
liteOrder
=
new
LiteOrder
();
liteOrder
.
setOrderNo
(
unclaimed
.
getOrderNo
());
liteOrder
.
setCreateDate
(
unclaimed
.
getCreateTime
());
liteOrder
.
setSource
(
unclaimed
.
getFunctionDept
());
List
<
LiteOrderItem
>
liteOrderItems
=
new
ArrayList
<>();
for
(
UnclaimedDetail
unclaimedDetail
:
unclaimed
.
getSpareApplyDetail
())
{
LiteOrderItem
liteOrderItem
=
new
LiteOrderItem
();
liteOrderItem
.
setLine
(
"s1"
);
liteOrderItem
.
setPn
(
unclaimedDetail
.
getPartno
());
liteOrderItem
.
setNeedNum
(
unclaimedDetail
.
getApplyQty
());
liteOrderItem
.
setPartname
(
unclaimedDetail
.
getPartname
());
liteOrderItems
.
add
(
liteOrderItem
);
}
return
null
;
log
.
info
(
"创建出库单:"
+
liteOrder
.
getOrderNo
());
liteOrder
.
setOrderItems
(
liteOrderItems
);
liteOrderManager
.
createWithItems
(
liteOrder
);
// resultLiteOrder.add(unclaimed);
}
public
Unclaimed
getExecutingOrderNo
(){
for
(
String
orderNo
:
cacheMap
.
keySet
())
{
Unclaimed
unclaimed
=
cacheMap
.
get
(
orderNo
);
if
(
Integer
.
parseInt
(
unclaimed
.
getStatus
())
==
SpareNostatus
.
EXECUTING_STATUS
){
return
unclaimed
;
}
}
return
null
;
public
void
addToMap
(
Unclaimed
unclaimed
){
cacheMap
.
put
(
unclaimed
.
getOrderNo
(),
unclaimed
);
}
// public Unclaimed getByOrderNo(String orderNo) {
// Unclaimed unclaimed = cacheMap.get(orderNo);
// if (unclaimed == null){
// unclaimed = unclaimedManager.getByOrderNo(orderNo);
// if (unclaimed != null){
// cacheMap.put(unclaimed.getOrderNo(), unclaimed);
// }
// }
// return unclaimed;
// }
//
//
// public String getExecutingOrderNoStr(){
// for (String orderNo : cacheMap.keySet()) {
// Unclaimed unclaimed = cacheMap.get(orderNo);
// if (unclaimed.getUnclaimedStatus() == SpareNostatus.EXECUTING_STATUS){
// return orderNo;
// }
// }
// return null;
// }
// public Unclaimed getExecutingOrderNo(){
// for (String orderNo : cacheMap.keySet()) {
// Unclaimed unclaimed = cacheMap.get(orderNo);
// if (Integer.parseInt(unclaimed.getStatus()) == SpareNostatus.EXECUTING_STATUS){
// return unclaimed;
// }
// }
// return null;
// }
public
Unclaimed
getOrderNoResultToUnclaimed
(
GetUnclaimedResult
result
)
{
Unclaimed
unclaimed
=
new
Unclaimed
();
...
...
@@ -92,8 +155,8 @@ public class OrderNoCache {
return
unclaimed
;
}
public
void
updateCacheAndDB
(
String
orderNo
,
Unclaimed
unclaimed
)
{
cacheMap
.
put
(
orderNo
,
unclaimed
);
unclaimedManager
.
save
(
unclaimed
);
}
//
public void updateCacheAndDB(String orderNo, Unclaimed unclaimed) {
//
cacheMap.put(orderNo, unclaimed);
//
unclaimedManager.save(unclaimed);
//
}
}
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/ReturnNoCache.java
查看文件 @
03c2eac
package
com
.
neotel
.
smfcore
.
custom
.
luxsan_sp
.
util
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.GetReturnInventoryRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetReturnInventoryResult
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.ReturnInventoryNo
;
import
com.neotel.smfcore.custom.luxsan_sp.bean.SpareNoDetail
;
...
...
@@ -23,9 +13,12 @@ import org.ehcache.impl.internal.concurrent.ConcurrentHashMap;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
@Slf4j
...
...
@@ -43,6 +36,40 @@ public class ReturnNoCache {
Map
<
String
,
ReturnInventoryNo
>
cacheMap
=
new
ConcurrentHashMap
<>();
private
Long
lasLoadTime
=
0L
;
private
boolean
NeedReLoad
(){
//三分钟加载一次?
long
timeSpan
=(
new
Date
().
getTime
())-
lasLoadTime
;
if
(
timeSpan
<
1
*
60
*
1000
){
return
false
;
}
return
true
;
}
public
void
LoadFromAPI
(){
if
(!
NeedReLoad
()){
return
;
}
List
<
GetReturnInventoryResult
>
resultList
=
LuxsanSpApi
.
getReturnInventory
(
new
GetReturnInventoryRequest
(
SpareNostatus
.
FUNCTION_DEPT
,
SpareNostatus
.
FORMAL_DEPT_ID
));
lasLoadTime
=
new
Date
().
getTime
();
List
<
String
>
newSpNo
=
resultList
.
stream
().
map
(
GetReturnInventoryResult:
:
getOrderNo
).
collect
(
Collectors
.
toList
());
Criteria
criteria
=
Criteria
.
where
(
"spareNo"
).
in
(
newSpNo
.
toArray
());
List
<
ReturnInventoryNo
>
existList
=
returnNoManager
.
findByQuery
(
new
Query
(
criteria
));
for
(
GetReturnInventoryResult
returnObj
:
resultList
)
{
List
<
ReturnInventoryNo
>
hasList
=
existList
.
stream
()
.
filter
(
obj
->
returnObj
.
getOrderNo
().
equals
(
obj
.
getNo
()))
.
collect
(
Collectors
.
toList
());
if
(
hasList
.
size
()<=
0
){
ReturnInventoryNo
newObj
=
getOrderNoResultToReturnInventoryNo
(
returnObj
);
newObj
=
returnNoManager
.
save
(
newObj
);
log
.
info
(
"创建退库单:"
+
newObj
.
getOrderNo
()+
" ,"
+
newObj
.
getPartno
());
addToMap
(
newObj
);
}
}
}
public
void
addToMap
(
ReturnInventoryNo
returnInventoryNo
)
{
cacheMap
.
put
(
returnInventoryNo
.
getOrderNo
(),
returnInventoryNo
);
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan_sp/util/SpareNoCache.java
查看文件 @
03c2eac
...
...
@@ -14,6 +14,7 @@ import com.neotel.smfcore.core.storage.service.po.StoragePos;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.luxsan_sp.api.LuxsanSpApi
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.GetSpareNoRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.request.SpareInHourseRequest
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetSpareNoDetail
;
import
com.neotel.smfcore.custom.luxsan_sp.api.bean.result.GetSpareNoResult
;
...
...
@@ -29,9 +30,12 @@ import lombok.extern.slf4j.Slf4j;
import
org.ehcache.impl.internal.concurrent.ConcurrentHashMap
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
@Slf4j
...
...
@@ -44,6 +48,41 @@ public class SpareNoCache {
spareNo
->
cacheMap
.
put
(
spareNo
.
getSpareNo
(),
spareNo
));
}
private
Long
lasLoadTime
=
0L
;
private
boolean
NeedReLoad
(){
//三分钟加载一次?
long
timeSpan
=(
new
Date
().
getTime
())-
lasLoadTime
;
if
(
timeSpan
<
1
*
60
*
1000
){
return
false
;
}
return
true
;
}
public
void
LoadFromAPI
(){
if
(!
NeedReLoad
()){
return
;
}
List
<
GetSpareNoResult
>
resultList
=
LuxsanSpApi
.
getSpareNo
(
new
GetSpareNoRequest
(
SpareNostatus
.
FORMAL_DEPT_ID
,
SpareNostatus
.
FUNCTION_DEPT
));
lasLoadTime
=
new
Date
().
getTime
();
List
<
String
>
newSpNo
=
resultList
.
stream
().
map
(
GetSpareNoResult:
:
getSpareNo
).
collect
(
Collectors
.
toList
());
Criteria
criteria
=
Criteria
.
where
(
"spareNo"
).
in
(
newSpNo
.
toArray
());
List
<
SpareNo
>
existList
=
spareNoManager
.
findByQuery
(
new
Query
(
criteria
));
for
(
GetSpareNoResult
spareNoResult
:
resultList
)
{
List
<
SpareNo
>
hasList
=
existList
.
stream
()
.
filter
(
spareNo
->
spareNoResult
.
getSpareNo
().
equals
(
spareNo
.
getNo
()))
.
collect
(
Collectors
.
toList
());
if
(
hasList
.
size
()<=
0
){
SpareNo
newSpareNo
=
getSpareNoResultToSpareNo
(
spareNoResult
);
newSpareNo
=
spareNoManager
.
save
(
newSpareNo
);
log
.
info
(
"创建入库单:"
+
newSpareNo
.
getSpareNo
());
addToMap
(
newSpareNo
);
}
}
}
@Autowired
private
ISpareNoManager
spareNoManager
;
...
...
@@ -116,10 +155,10 @@ public class SpareNoCache {
return
spareNo
;
}
public
void
updateCacheAndDB
(
String
spareNoStr
,
SpareNo
spareNo
)
{
cacheMap
.
put
(
spareNoStr
,
spareNo
);
spareNoManager
.
save
(
spareNo
);
}
//
public void updateCacheAndDB(String spareNoStr, SpareNo spareNo) {
//
cacheMap.put(spareNoStr, spareNo);
//
spareNoManager.save(spareNo);
//
}
@Autowired
...
...
@@ -208,6 +247,9 @@ public class SpareNoCache {
for
(
Barcode
subBarcode
:
boxBarcode
.
getSubCodeList
())
{
if
(
subBarcode
.
getPartNumber
().
equals
(
pn
))
{
if
(
ObjectUtil
.
isNotEmpty
(
detail
.
getPartname
()))
{
subBarcode
.
setPn
(
detail
.
getPartname
());
}
subBarcode
.
setOut
(
false
);
subBarcode
.
updateNeedInNum
(
detail
.
getInQty
()
);
log
.
info
(
"入库单"
+
orderNo
+
", Pn="
+
pn
+
",查找到库位号="
+
pos
.
getPosName
()
+
",料箱号="
+
boxBarcode
.
getBarcode
()
+
",格口号="
+
subBarcode
.
getBarcode
()
+
",需要入库数量="
+
detail
.
getInQty
());
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论