Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f85456ab
由
zshaohui
编写于
2023-03-01 16:06:35 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
功能优化
1 个父辈
ad159f97
隐藏空白字符变更
内嵌
并排
正在显示
27 个修改的文件
包含
381 行增加
和
114 行删除
src/main/java/com/neotel/smfcore/common/utils/ReelLockPosUtil.java
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
src/main/java/com/neotel/smfcore/core/barcode/utils/CodeResolve.java
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderItemDto.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
src/main/java/com/neotel/smfcore/core/order/service/manager/ILiteOrderItemManager.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderItemManagerImpl.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.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/util/TaskService.java
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/bean/dto/InventoryDto.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/WareHouseCodeController.java → src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/CodeController.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/InventoryController.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/OutLineStorageController.java → src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/OutLineController.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/TaskRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/OutWarehouseController.java → src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/WarehouseController.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/OutWarehouseExtController.java → src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/WarehouseExtController.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/enums/ExtendType.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/VirtualRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/kanban/utils/AgvStatusCache.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/inner/InnerReportController.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/outer/OuterReportController.java
src/main/java/com/neotel/smfcore/common/utils/ReelLockPosUtil.java
查看文件 @
f85456a
...
...
@@ -116,4 +116,8 @@ public class ReelLockPosUtil {
}
return
lockPosIds
;
}
public
static
Collection
<
ReelLockPosInfo
>
getAllReelLockPosInfo
(){
return
reelLocKPosMap
.
values
();
}
}
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
查看文件 @
f85456a
...
...
@@ -289,6 +289,12 @@ public class Barcode extends BasePo implements Serializable {
*/
private
String
storageId
;
/**
* 是否盘点
*/
private
boolean
isInventory
=
false
;
/**
* 添加相关联条码
*
...
...
src/main/java/com/neotel/smfcore/core/barcode/utils/CodeResolve.java
查看文件 @
f85456a
...
...
@@ -99,14 +99,16 @@ public class CodeResolve {
codeBeanFromRule
.
setReelHeight
(
component
.
getHeight
());
if
(
barcode
.
getHeight
()
!=
component
.
getHeight
()
||
barcode
.
getPlateSize
()
!=
component
.
getPlateSize
())
{
try
{
log
.
warn
(
"重新设置尺寸["
+
barcode
.
getPlateSize
()
+
"x"
+
barcode
.
getHeight
()
+
"]为["
+
component
.
getPlateSize
()
+
"x"
+
component
.
getHeight
()
+
"]"
);
barcode
.
setPlateSize
(
component
.
getPlateSize
());
barcode
.
setHeight
(
component
.
getHeight
());
barcode
=
barcodeManager
.
save
(
barcode
);
}
catch
(
Exception
ve
)
{
log
.
error
(
"重设尺寸出错"
,
ve
);
if
(
component
.
getHeight
()
!=
1
&&
component
.
getPlateSize
()
!=
1
)
{
try
{
log
.
warn
(
"重新设置尺寸["
+
barcode
.
getPlateSize
()
+
"x"
+
barcode
.
getHeight
()
+
"]为["
+
component
.
getPlateSize
()
+
"x"
+
component
.
getHeight
()
+
"]"
);
barcode
.
setPlateSize
(
component
.
getPlateSize
());
barcode
.
setHeight
(
component
.
getHeight
());
barcode
=
barcodeManager
.
save
(
barcode
);
}
catch
(
Exception
ve
)
{
log
.
error
(
"重设尺寸出错"
,
ve
);
}
}
}
setSize
=
true
;
...
...
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
查看文件 @
f85456a
...
...
@@ -130,6 +130,15 @@ public class DeviceController {
lineMsg
=
""
;
log
.
info
(
"流水线["
+
cids
+
"]获取["
+
rfid
+
"]["
+
code
+
"]的入库库位"
);
//判断锁定库位,是否超过5分钟,如果超过,则解绑
/*Collection<ReelLockPosInfo> allReelLockPosInfo = ReelLockPosUtil.getAllReelLockPosInfo();
for (ReelLockPosInfo lockPosInfo : allReelLockPosInfo) {
if (new Date().getTime() - lockPosInfo.getCreateDate().getTime() >= 1000 * 60 * 5) {
ReelLockPosUtil.removeReelLockPosInfo(lockPosInfo.getBarcode());
}
}*/
Map
<
String
,
Object
>
resultMap
=
Maps
.
newHashMap
();
if
(
dataCache
.
getCache
(
Constants
.
CACHE_StopOut
))
{
...
...
@@ -185,12 +194,12 @@ public class DeviceController {
taskService
.
removeFinishedTask
(
dataLog
);
log
.
info
(
"智能仓储入库,虚拟仓出库:"
+
barcode
.
getBarcode
()
+
",库位名称为:"
+
storagePos
.
getPosName
());
storagePos
.
setBarcode
(
null
);
//dataCache.updateInventory(storagePos, barcode);
barcode
.
setPosName
(
null
);
barcode
=
barcodeManager
.
save
(
barcode
);
//进行库位更改
storagePos
.
setUsed
(
false
);
storagePosManager
.
save
(
storagePos
);
dataCache
.
updateInventory
(
storagePos
,
barcode
);
}
Barcode
barcodeCanPutIn
=
smfApi
.
canPutInAfterResolve
(
barcode
);
...
...
@@ -349,7 +358,7 @@ public class DeviceController {
DeviceMessageUtil
.
updateLineMsg
(
lineMsg
,
code
,
cids
,
""
,
""
,
null
);
}
else
{
lineMsg
=
okMsg
;
}
}
;
return
resultMap
;
}
...
...
@@ -421,6 +430,7 @@ public class DeviceController {
public
ResultBean
disabledPos
(
HttpServletRequest
request
)
{
String
posId
=
request
.
getParameter
(
"posId"
);
String
barcode
=
request
.
getParameter
(
"barcode"
);
String
msg
=
request
.
getParameter
(
"msg"
);
if
(
ObjectUtil
.
isEmpty
(
posId
))
{
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"posId"
});
}
...
...
@@ -432,6 +442,7 @@ public class DeviceController {
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.valueNotFind"
,
"未找到{0}[{1}]"
,
new
String
[]{
"PosId"
,
posId
});
}
pos
.
setEnabled
(
false
);
pos
.
setMsg
(
msg
);
storagePosManager
.
save
(
pos
);
log
.
info
(
"屏蔽库位:库位号["
+
pos
.
getId
()
+
"]["
+
pos
.
getPosName
()
+
"]barcode["
+
barcode
+
"]"
);
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
f85456a
...
...
@@ -12,6 +12,8 @@ import com.neotel.smfcore.common.utils.StringUtils;
import
com.neotel.smfcore.core.api.SmfApi
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.BOX_STATUS
;
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
;
...
...
@@ -29,6 +31,7 @@ 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.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType
;
import
com.sun.org.apache.regexp.internal.RE
;
...
...
@@ -410,6 +413,11 @@ public class LiteOrderCache {
if
(!
storage
.
isType
(
new
DeviceType
[]{
DeviceType
.
SMD_XLR
}))
{
continue
;
}
//判断当前料仓,状态是否正常
StatusBean
statusBean
=
DevicesStatusUtil
.
getStatusBean
(
storage
.
getCid
());
if
(
statusBean
==
null
||
statusBean
.
getStatus
()
!=
BOX_STATUS
.
READY
)
{
continue
;
}
List
<
DataLog
>
allTasksByCid
=
taskService
.
getAllTasksByCid
(
storage
.
getCid
());
for
(
DataLog
task
:
allTasksByCid
)
{
/*if (!task.isFinished()
...
...
@@ -430,11 +438,11 @@ public class LiteOrderCache {
}
if
(
freeStorageIds
==
null
||
freeStorageIds
.
isEmpty
())
{
return
orderNo
+
"
前面已有出库任务,执行完继续执行
"
;
return
orderNo
+
"
没有可用料仓
"
;
}
//判断当前工单的任务数,是否大于2
int
executingCount
=
0
;
/*
int executingCount = 0;
if (liteOrderMap != null){
for (LiteOrder order : liteOrderMap.values()) {
if (order.isOutTails()){
...
...
@@ -444,7 +452,7 @@ public class LiteOrderCache {
}
if (executingCount >= 2){
return "正在执行的工单超过2个,跳过";
}
}
*/
LiteOrder
cacheOrder
=
liteOrderMap
.
get
(
orderNo
);
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
f85456a
...
...
@@ -293,17 +293,33 @@ public class OrderController {
criteria
.
setExcludeSourceList
(
excludeSources
);
}
}
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
is
(
LITEORDER_STATUS
.
CLOSED
));
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
ne
(
LITEORDER_STATUS
.
CLOSED
));
if
(
StringUtils
.
isBlank
(
criteria
.
getWarningItemId
()))
{
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
is
(
LITEORDER_STATUS
.
CLOSED
));
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
ne
(
LITEORDER_STATUS
.
CLOSED
));
}
}
PageData
<
LiteOrder
>
orderList
=
liteOrderManager
.
findByPage
(
query
,
pageable
);
PageData
<
OrderDto
>
resultList
=
orderMapper
.
toDto
(
orderList
);
return
resultList
;
}
else
{
PageData
<
OrderDto
>
resultList
=
new
PageData
<>();
resultList
.
setContent
(
new
ArrayList
<>());
resultList
.
setTotalElements
(
0
);
LiteOrderItem
item
=
liteOrderItemManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"warningItemId"
).
is
(
criteria
.
getWarningItemId
())));
if
(
item
!=
null
){
String
orderId
=
item
.
getOrderId
();
LiteOrder
liteOrder
=
liteOrderManager
.
get
(
orderId
);
if
(
liteOrder
!=
null
){
resultList
.
setContent
(
Arrays
.
asList
(
orderMapper
.
toDto
(
liteOrder
)));
resultList
.
setTotalElements
(
1
);
}
}
return
resultList
;
}
PageData
<
LiteOrder
>
orderList
=
liteOrderManager
.
findByPage
(
query
,
pageable
);
PageData
<
OrderDto
>
resultList
=
orderMapper
.
toDto
(
orderList
);
return
resultList
;
}
...
...
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderItemDto.java
查看文件 @
f85456a
...
...
@@ -116,4 +116,7 @@ public class OrderItemDto {
@ApiModelProperty
(
"厂区"
)
private
String
factory
;
@ApiModelProperty
(
"缺料预警ID"
)
private
String
warningItemId
;
}
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
查看文件 @
f85456a
...
...
@@ -24,6 +24,9 @@ public class OrderQueryCondition {
//状态,0=所有,1=已关闭,2=未关闭
private
Integer
status
;
//缺料预警id
private
String
warningItemId
;
//
// @QueryCondition(type=QueryCondition.Type.IN,propName = "status")
// private List<Integer> statusList ;
...
...
src/main/java/com/neotel/smfcore/core/order/service/manager/ILiteOrderItemManager.java
查看文件 @
f85456a
...
...
@@ -12,4 +12,6 @@ public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
LiteOrderItem
getOrderItemByBarcode
(
String
barcode
);
int
countByQuery
(
Query
q
);
LiteOrderItem
findOne
(
Query
query
);
}
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderItemManagerImpl.java
查看文件 @
f85456a
...
...
@@ -37,6 +37,11 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
}
@Override
public
LiteOrderItem
findOne
(
Query
query
)
{
return
liteOrderItemDao
.
findOne
(
query
);
}
@Override
public
LiteOrderItem
get
(
String
id
)
{
return
liteOrderItemDao
.
findOneById
(
id
);
}
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
f85456a
...
...
@@ -105,7 +105,7 @@ public class StoragePosController {
criteria
.
setBlurry
(
blurry
);
}
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
//query.addCriteria(Criteria.where("showStatus").ne("0").exists(fals
e));
query
.
addCriteria
(
Criteria
.
where
(
"posName"
).
ne
(
""
).
exists
(
tru
e
));
PageData
<
StoragePos
>
pages
=
storagePosManager
.
findByPage
(
query
,
pageable
);
List
<
StoragePosDto
>
StoragePosDtos
=
storagePosMapper
.
toDto
(
pages
.
getContent
());
...
...
@@ -202,6 +202,9 @@ public class StoragePosController {
Barcode
barcode
=
storagePos
.
getBarcode
();
if
(
barcode
!=
null
)
{
barcode
=
barcodeManager
.
findByBarcode
(
barcode
.
getBarcode
());
if
(
barcode
==
null
){
barcode
=
storagePos
.
getBarcode
();
}
log
.
info
(
"清理库位["
+
storagePos
.
getPosName
()
+
"]中的库存"
+
barcode
.
getBarcode
());
String
opUser
=
SecurityUtils
.
getCurrentUsername
();
log
.
info
(
opUser
+
"清理库位["
+
storagePos
.
getPosName
()
+
"]中的库存"
+
barcode
.
getBarcode
());
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
f85456a
...
...
@@ -19,6 +19,7 @@ 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
lombok.extern.slf4j.Slf4j
;
import
net.bytebuddy.asm.Advice
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
...
...
@@ -321,7 +322,8 @@ public class StoragePosManagerImpl implements IStoragePosManager {
c
.
and
(
"labelId"
).
is
(
labelId
);
}
Query
q
=
new
Query
(
c
);
Sort
sort
=
getSortByCheckOutType
(
checkOutType
);
//Sort sort = getSortByCheckOutType(checkOutType);
Sort
sort
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"barcode.amount"
,
"barcode.putInDate"
);
q
.
with
(
sort
);
StoragePos
pos
=
storagePosDao
.
findOne
(
q
);
if
(
pos
==
null
)
{
...
...
@@ -353,7 +355,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
c
.
and
(
"barcode.subCodeList.isOut"
).
is
(
isOut
);
}
//Sort sort = getSortByCheckOutType(checkOutType);
Sort
sort
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"barcode.subCodeList.
createDate"
,
"
createDate"
/*,"canCheckOutTime", "barcode.usedCount"*/
);
Sort
sort
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"barcode.subCodeList.
amount"
,
"barcode.subCodeList.
createDate"
/*,"canCheckOutTime", "barcode.usedCount"*/
);
Query
q
=
new
Query
(
c
);
q
.
with
(
sort
);
StoragePos
pos
=
storagePosDao
.
findOne
(
q
);
...
...
src/main/java/com/neotel/smfcore/core/storage/service/po/StoragePos.java
查看文件 @
f85456a
...
...
@@ -127,6 +127,10 @@ public class StoragePos extends BasePo implements Serializable {
*/
private
String
partNumber
;
/**
* 信息
*/
private
String
msg
;
public
String
getLabelStr
(){
String
posNameLabel
=
posName
;
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
f85456a
...
...
@@ -269,12 +269,13 @@ public class TaskService {
log
.
info
(
"任务["
+
task
.
getId
()
+
"] posName["
+
task
.
getPosName
()
+
"] Reel Id["
+
task
.
getBarcode
()
+
"]取消成功"
);
//同时进行库位屏蔽
if
(
task
.
isPutInTask
()
&&
!
task
.
isFinished
()){
if
(
/*task.isPutInTask() &&*/
!
task
.
isFinished
()){
String
posName
=
task
.
getPosName
();
if
(
StringUtils
.
isNotBlank
(
posName
)){
StoragePos
pos
=
storagePosManager
.
getByPosName
(
posName
);
if
(
pos
!=
null
){
pos
.
setEnabled
(
false
);
pos
.
setMsg
(
"任务取消,屏蔽库位"
);
storagePosManager
.
save
(
pos
);
log
.
info
(
"任务取消,屏蔽库位:库位号["
+
pos
.
getId
()
+
"]["
+
pos
.
getPosName
()
+
"]barcode["
+
task
.
getBarcode
()
+
"]"
);
DeviceMessageUtil
.
addEnabledPosMessage
(
pos
,
SecurityUtils
.
getCurrentUsername
());
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
查看文件 @
f85456a
...
...
@@ -163,7 +163,7 @@ public class LizhenApi extends DefaultSmfApiListener {
if
(
status
!=
null
)
{
if
(
status
==
200
)
{
JSONObject
dataJson
=
resultJson
.
getJSONObject
(
"data"
);
//
String reelID = dataJson.get("reelID") == null ? "" : dataJson.get("reelID").toString();
String
reelID
=
dataJson
.
get
(
"reelID"
)
==
null
?
""
:
dataJson
.
get
(
"reelID"
).
toString
();
//String partNum = dataJson.get("partNum") == null ? "" : dataJson.get("partNum").toString();
String
partSpec
=
dataJson
.
get
(
"partSpec"
)
==
null
?
""
:
dataJson
.
get
(
"partSpec"
).
toString
();
int
qty
=
dataJson
.
get
(
"qty"
)
==
null
?
0
:
Integer
.
valueOf
(
dataJson
.
get
(
"qty"
).
toString
());
...
...
@@ -180,9 +180,11 @@ public class LizhenApi extends DefaultSmfApiListener {
if (StringUtils.isNotBlank(partNum)){
barcode.setPartNumber(partNum);
}*/
barcode
.
setAmount
(
qty
);
if
(
StringUtils
.
isNotBlank
(
reelID
))
{
if
(
qty
!=
0
)
{
barcode
.
setAmount
(
qty
);
}
}
/*if (StringUtils.isNotBlank(vendor)){
barcode.setProvider(vendor);
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/bean/dto/InventoryDto.java
0 → 100644
查看文件 @
f85456a
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
agvBox
.
bean
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
InventoryDto
{
@ApiModelProperty
(
"箱子尺寸"
)
private
int
platsize
;
@ApiModelProperty
(
"提示信息"
)
private
String
msg
;
@ApiModelProperty
(
"当前箱子号"
)
private
String
currentRfid
;
@ApiModelProperty
(
"pn和数量"
)
private
List
<
Map
<
String
,
Integer
>>
pnCountList
=
new
ArrayList
<>();
}
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/
WareHouse
CodeController.java
→
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/CodeController.java
查看文件 @
f85456a
...
...
@@ -33,7 +33,7 @@ import java.util.Set;
@Slf4j
@RestController
@RequestMapping
(
"/api/wareHouseCode"
)
public
class
WareHouse
CodeController
{
public
class
CodeController
{
@Autowired
private
WareHouseCodeManager
codeManager
;
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/InventoryController.java
0 → 100644
查看文件 @
f85456a
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
agvBox
.
rest
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
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.rest.dto.StoragePosDto
;
import
com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper
;
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.lizhen.agvBox.bean.Station
;
import
com.neotel.smfcore.custom.lizhen.agvBox.bean.dto.InventoryDto
;
import
com.neotel.smfcore.custom.lizhen.agvBox.util.StationCacheUtil
;
import
com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
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
;
import
java.util.*
;
/**
* 盘点
*/
@RestController
@RequestMapping
(
"/inventory"
)
public
class
InventoryController
{
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
StoragePosMapper
storagePosMapper
;
@Autowired
private
DataCache
dataCache
;
@Autowired
private
IBarcodeManager
barcodeManager
;
@Autowired
private
TaskService
taskService
;
/**
* 获取盘点数据
*
* @return
*/
@RequestMapping
(
"/getInventoryData"
)
@AnonymousAccess
public
Map
<
String
,
List
<
StoragePosDto
>>
getInventoryData
()
{
Map
<
String
,
List
<
StoragePosDto
>>
resultMap
=
new
HashMap
<>();
List
<
Storage
>
storageList
=
new
ArrayList
<>();
for
(
Storage
storage
:
dataCache
.
getAllStorage
().
values
())
{
if
(!
storage
.
isVirtual
())
{
storageList
.
add
(
storage
);
}
}
//获取所有库位信息
for
(
Storage
storage
:
storageList
)
{
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByQuery
(
inventoryQuery
(
storage
.
getId
(),
null
));
resultMap
.
put
(
storage
.
getName
(),
storagePosMapper
.
toDto
(
storagePosList
));
}
return
resultMap
;
}
/**
* 盘点数据出库
*
* @param storagePosIdList
* @return
*/
@RequestMapping
(
"/inventoryOut"
)
@AnonymousAccess
public
ResultBean
inventoryOut
(
@RequestBody
List
<
String
>
storagePosIdList
)
{
if
(
storagePosIdList
==
null
||
storagePosIdList
.
isEmpty
())
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"ID"
});
}
if
(
storagePosIdList
!=
null
&&
!
storagePosIdList
.
isEmpty
())
{
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByQuery
(
inventoryQuery
(
null
,
storagePosIdList
));
if
(
storagePosList
==
null
||
storagePosList
.
isEmpty
())
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.label.noReel"
,
"未找到可出库的物料"
);
}
for
(
StoragePos
pos
:
storagePosList
)
{
Barcode
barcode
=
pos
.
getBarcode
();
if
(
barcode
!=
null
)
{
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
barcode
.
setInventory
(
true
);
barcodeManager
.
save
(
barcode
);
//生成出库任务
DataLog
dataLog
=
new
DataLog
(
storage
,
barcode
,
pos
);
dataLog
.
setType
(
OP
.
CHECKOUT
);
dataLog
.
setCreator
(
SecurityUtils
.
getCurrentUsername
());
dataLog
.
setExtendType
(
ExtendType
.
INVENTORY_CHECKOUT
);
//盘点出库
taskService
.
updateQueueTask
(
dataLog
);
}
}
}
return
ResultBean
.
newOkResult
(
""
);
}
/**
* 获取工位上料箱信息
*
* @param name
* @return
*/
@RequestMapping
(
"/getInventoryBoxInfo"
)
@AnonymousAccess
public
ResultBean
getInventoryBoxInfo
(
String
name
)
{
//判断工位信息是否为空
Station
station
=
StationCacheUtil
.
getStation
(
name
);
if
(
station
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
name
+
"工位信息未上传成功,请重试"
,
new
String
[]{});
}
//当前料箱的信息
String
currentRfid
=
station
.
getCurrentRfid
();
if
(
StringUtils
.
isBlank
(
currentRfid
))
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
name
+
"当前工位料箱信息未上传成功,请重试"
,
new
String
[]{});
}
//返回结果
String
boxStr
=
currentRfid
.
substring
(
0
,
currentRfid
.
length
()
-
1
);
InventoryDto
dto
=
new
InventoryDto
();
dto
.
setCurrentRfid
(
currentRfid
);
dto
.
setPlatsize
(
currentRfid
.
startsWith
(
"CS"
)
?
7
:
15
);
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
boxStr
);
//
return
ResultBean
.
newOkResult
(
dto
);
}
private
Query
inventoryQuery
(
String
storageId
,
List
<
String
>
storageIdList
)
{
Query
query
=
new
Query
();
if
(
storageIdList
!=
null
&&
!
storageIdList
.
isEmpty
())
{
query
.
addCriteria
(
Criteria
.
where
(
"id"
).
in
(
storageIdList
));
}
if
(
StringUtils
.
isNotBlank
(
storageId
))
{
query
.
addCriteria
(
Criteria
.
where
(
"storageId"
).
is
(
storageId
).
and
(
"used"
).
is
(
true
));
}
query
.
fields
().
include
(
"barcode.barcode"
,
"barcode.amount"
,
"barcode.posName"
,
"barcode.reelAmount"
,
"updateDate"
);
return
query
;
}
}
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/OutLine
Storage
Controller.java
→
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/OutLineController.java
查看文件 @
f85456a
...
...
@@ -21,6 +21,7 @@ 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.LizhenApi
;
import
com.neotel.smfcore.custom.lizhen.agvBox.bean.Station
;
import
com.neotel.smfcore.custom.lizhen.agvBox.enums.CHANGE_TYPE
;
import
com.neotel.smfcore.custom.lizhen.agvBox.enums.INOUT_TYPE
;
...
...
@@ -45,7 +46,7 @@ import java.util.stream.Collectors;
@Slf4j
@RestController
@RequestMapping
(
"/outLine"
)
public
class
OutLine
Storage
Controller
{
public
class
OutLineController
{
@Autowired
private
SmfApi
smfApi
;
...
...
@@ -68,6 +69,9 @@ public class OutLineStorageController {
@Autowired
private
ILiteOrderItemManager
liteOrderItemManager
;
@Autowired
private
LizhenApi
lizhenApi
;
/*
* key为工位信息,value为上一个隔口信息
...
...
@@ -223,6 +227,11 @@ public class OutLineStorageController {
return
ResultBean
.
newErrorResult
(-
2
,
""
,
e
.
getMessage
());
}
}
//获取mes数量
Barcode
barcodeInfo
=
lizhenApi
.
barcodeInfo
(
barcode
);
if
(
barcodeInfo
!=
null
){
barcode
=
barcodeInfo
;
}
barcode
.
setReelAmount
(
1
);
barcode
.
setWarehouseCode
(
warehouseCode
);
barcode
.
setPosName
(
boxPartition
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/TaskRestController.java
查看文件 @
f85456a
...
...
@@ -9,6 +9,7 @@ import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
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.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
...
...
@@ -55,11 +56,30 @@ public class TaskRestController {
Criteria
c
=
Criteria
.
where
(
"putInTime"
).
is
(-
1
);
List
<
Barcode
>
barcodeList
=
barcodeManager
.
findByQuery
(
new
Query
(
c
));
for
(
Barcode
barcode
:
barcodeList
)
{
Date
date
=
new
Date
();
barcode
.
setPutInTime
(
d
ate
.
getTime
());
barcode
.
setPutInDate
(
d
ate
);
Date
createDate
=
barcode
.
getCreate
Date
();
barcode
.
setPutInTime
(
createD
ate
.
getTime
());
barcode
.
setPutInDate
(
createD
ate
);
barcodeManager
.
save
(
barcode
);
}
//再更改库存报表的信息
Criteria
criteria
=
Criteria
.
where
(
"barcode.subCodeList.putInTime"
).
is
(-
1
);
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByQuery
(
new
Query
(
criteria
));
for
(
StoragePos
pos
:
storagePosList
)
{
Barcode
barcode
=
pos
.
getBarcode
();
if
(
barcode
!=
null
){
List
<
Barcode
>
subCodeList
=
barcode
.
getSubCodeList
();
for
(
Barcode
subCode
:
subCodeList
)
{
if
(
subCode
.
getPutInTime
()
==
-
1
){
Date
createDate
=
subCode
.
getCreateDate
();
subCode
.
setPutInDate
(
createDate
);
subCode
.
setPutInTime
(
createDate
.
getTime
());
}
}
barcode
.
setSubCodeList
(
subCodeList
);
}
pos
.
setBarcode
(
barcode
);
storagePosManager
.
save
(
pos
);
}
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/
Out
WarehouseController.java
→
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/WarehouseController.java
查看文件 @
f85456a
...
...
@@ -51,7 +51,7 @@ import java.util.stream.Collectors;
*/
@Slf4j
@RestController
public
class
Out
WarehouseController
{
public
class
WarehouseController
{
@Autowired
private
IBarcodeManager
barcodeManager
;
...
...
@@ -395,6 +395,11 @@ public class OutWarehouseController {
label
.
setRemainingAmount
(
remainingAmount
-
barcode
.
getAmount
());
grLabelManager
.
save
(
label
);
}
//获取mes数量
Barcode
barcodeInfo
=
lizhenApi
.
barcodeInfo
(
barcode
);
if
(
barcodeInfo
!=
null
){
barcode
=
barcodeInfo
;
}
//当前已扫描的料卷数量+1
int
reelCurrentNum
=
station
.
getReelCurrentNum
();
station
.
setReelCurrentNum
(
reelCurrentNum
+
1
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/
Out
WarehouseExtController.java
→
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/WarehouseExtController.java
查看文件 @
f85456a
...
...
@@ -15,7 +15,7 @@ import java.util.List;
*/
@RestController
@RequestMapping
(
"/ext"
)
public
class
Out
WarehouseExtController
{
public
class
WarehouseExtController
{
@Autowired
private
IDataLogManager
dataLogManager
;
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/enums/ExtendType.java
查看文件 @
f85456a
...
...
@@ -48,4 +48,9 @@ public class ExtendType {
* 料架出库
*/
public
final
static
int
NLSHELF_CHECKOUT
=
8
;
/**
* 盘点出库
*/
public
final
static
int
INVENTORY_CHECKOUT
=
9
;
}
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/VirtualRestController.java
查看文件 @
f85456a
...
...
@@ -74,12 +74,12 @@ public class VirtualRestController {
@ApiOperation
(
"虚拟入库"
)
@RequestMapping
(
"/virtual/putIn"
)
public
ResultBean
putIn
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
public
synchronized
ResultBean
putIn
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
posName
=
paramMap
.
get
(
"posName"
);
String
code
=
paramMap
.
get
(
"code"
);
String
newCode
=
code
.
toUpperCase
();
//开始解析code
CodeBean
codeBean
=
codeResolve
.
resolveSingleCode
(
"=
1x1
="
+
newCode
);
CodeBean
codeBean
=
codeResolve
.
resolveSingleCode
(
"=
7x8
="
+
newCode
);
if
(!
codeBean
.
isValid
())
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.error.barcode.noValidCode"
,
"无效的条码"
);
}
...
...
@@ -304,6 +304,7 @@ public class VirtualRestController {
pos
=
storagePosManager
.
save
(
pos
);
DataLog
dataLog
=
generateTask
(
storage
,
barcode
,
pos
,
OP
.
PUT_IN
,
OP_STATUS
.
FINISHED
.
name
(),
null
);
dataLog
.
setExtendType
(
ExtendType
.
VIRTUAL_PUTIN
);
//虚拟入库
taskService
.
addTaskToExecute
(
dataLog
);
taskService
.
moveTaskToFinished
(
dataLog
);
taskService
.
removeFinishedTask
(
dataLog
);
//更改缓存信息
...
...
@@ -319,7 +320,6 @@ public class VirtualRestController {
task
.
setLoc
(
loc
);
//task.setOperator(SecurityUtils.getCurrentUsername());
task
.
setBoxPosName
(
pos
.
getPosName
());
taskService
.
addTaskToExecute
(
task
);
return
task
;
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/kanban/utils/AgvStatusCache.java
查看文件 @
f85456a
...
...
@@ -40,7 +40,22 @@ public class AgvStatusCache {
@RequestMapping
(
"/service/store/agvStatus/agvInfo"
)
@AnonymousAccess
public
ResultBean
agvInfo
(
@RequestBody
List
<
AgvInfo
>
infoList
)
{
agvInfoCacheList
=
infoList
;
AgvInfo
agvInfo
=
infoList
.
get
(
0
);
boolean
hasAgvInfo
=
false
;
if
(
agvInfoCacheList
!=
null
&&
!
agvInfoCacheList
.
isEmpty
())
{
for
(
AgvInfo
info
:
agvInfoCacheList
)
{
if
(
info
.
getName
().
equals
(
agvInfo
.
getName
()))
{
info
=
agvInfo
;
hasAgvInfo
=
true
;
}
}
}
else
{
agvInfoCacheList
=
infoList
;
hasAgvInfo
=
true
;
}
if
(!
hasAgvInfo
){
agvInfoCacheList
.
addAll
(
infoList
);
}
return
ResultBean
.
newOkResult
(
null
);
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/report/inner/InnerReportController.java
查看文件 @
f85456a
...
...
@@ -146,7 +146,7 @@ public class InnerReportController {
@ApiOperation
(
"根据工单id获取工单详情"
)
@RequestMapping
(
"/getItemsByOrderId"
)
//@AnonymousAccess
public
ResultBean
getItemsByOrderId
(
String
orderId
,
String
partNumber
)
{
public
ResultBean
getItemsByOrderId
(
String
orderId
,
String
partNumber
)
{
LiteOrder
liteOrder
=
liteOrderManager
.
get
(
orderId
);
List
<
LiteOrderItem
>
orderItems
=
liteOrderItemManager
.
findOrderItems
(
orderId
);
List
<
LiteOrderItem
>
newOrderItems
=
new
ArrayList
<>();
...
...
@@ -508,7 +508,6 @@ public class InnerReportController {
}
@ApiOperation
(
"禁限用导出"
)
@RequestMapping
(
"/disable/download"
)
@AnonymousAccess
...
...
@@ -545,87 +544,62 @@ public class InnerReportController {
public
ResultBean
getInAndOutCount
(
ReportQueryCondition
queryCondition
)
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
List
<
String
>
titleList
=
new
ArrayList
();
String
[]
title
=
{
"全部入库"
,
"
全部出库"
,
"智能仓入库"
,
"智能仓出库"
,
"虚拟仓入库"
,
"虚拟仓出库"
,
"手动清空库位"
,
"手动喂料"
,
"手动出库"
,
"料架入库"
,
"料架出库"
};
String
[]
title
=
{
"全部入库"
,
"
智能仓入库"
,
"虚拟仓入库"
,
"料架入库"
,
"全部出库"
,
"智能仓出库"
,
"虚拟仓出库"
,
"手动清空库位"
,
"手动喂料"
,
"手动出库"
,
"料架出库"
};
titleList
.
addAll
(
Arrays
.
asList
(
title
));
List
<
Integer
>
countList
=
new
ArrayList
();
/*resultMap.put("inCount", 0);
resultMap.put("outCount", 0);
resultMap.put("storageInCount",0);
resultMap.put("storageOutCount",0);
resultMap.put("virtualInCount",0);
resultMap.put("virtualOutCount",0);
resultMap.put("clearCount",0);
resultMap.put("feedingCount",0);
resultMap.put("manualCheckOutCount",0);*/
//开始时间
Date
startDate
=
queryCondition
.
getUpdateDateHHmm
().
getFrom
();
//结束时间
Date
endDate
=
queryCondition
.
getUpdateDateHHmm
().
getTo
();
//全部入库
int
inCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
PUT_IN
,
queryCondition
.
getPartNumber
(),
-
1
,
""
);
int
inCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
PUT_IN
,
queryCondition
.
getPartNumber
(),
-
1
,
""
);
countList
.
add
(
inCount
);
//resultMap.put("inCount", inCount);
//全部出库
int
outCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
-
1
,
""
);
countList
.
add
(
outCount
);
//resultMap.put("outCount", outCount);
//智能仓入库
int
storageInCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
PUT_IN
,
queryCondition
.
getPartNumber
(),
ExtendType
.
STORAGE_PUTIN
,
""
);
int
storageInCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
PUT_IN
,
queryCondition
.
getPartNumber
(),
ExtendType
.
STORAGE_PUTIN
,
""
);
countList
.
add
(
storageInCount
);
//resultMap.put("storageInCount",storageInCount);
//智能仓出库
int
storageOutCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
STORAGE_CHECKOUT
,
""
);
countList
.
add
(
storageOutCount
);
// resultMap.put("storageOutCount",storageOutCount);
//虚拟仓入库
int
virtualInCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
PUT_IN
,
queryCondition
.
getPartNumber
(),
ExtendType
.
VIRTUAL_PUTIN
,
""
);
int
virtualInCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
PUT_IN
,
queryCondition
.
getPartNumber
(),
ExtendType
.
VIRTUAL_PUTIN
,
""
);
countList
.
add
(
virtualInCount
);
//resultMap.put("virtualInCount",virtualInCount);
//料架入库
int
nlShelfPutInCount
=
inCount
-
storageInCount
-
virtualInCount
;
countList
.
add
(
nlShelfPutInCount
);
//全部出库
int
outCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
-
1
,
""
);
countList
.
add
(
outCount
);
//智能仓出库
int
storageOutCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
STORAGE_CHECKOUT
,
""
);
countList
.
add
(
storageOutCount
);
//虚拟仓出库
int
virtualOutCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
VIRTUAL_CHECKOUT
,
""
);
int
virtualOutCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
VIRTUAL_CHECKOUT
,
""
);
countList
.
add
(
virtualOutCount
);
//resultMap.put("virtualOutCount",virtualOutCount);
//手动清空库位
int
clearCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
CLEAR_POS
,
""
);
int
clearCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
CLEAR_POS
,
""
);
countList
.
add
(
clearCount
);
//resultMap.put("clearCount",clearCount);
//手动喂料
int
feedingCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
MANUAL_FEEDING
,
""
);
int
feedingCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
MANUAL_FEEDING
,
""
);
countList
.
add
(
feedingCount
);
//resultMap.put("feedingCount",feedingCount);
//手动出库
int
manualCheckOutCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
MANUAL_CHECKOUT
,
""
);
int
manualCheckOutCount
=
dataLogManager
.
getInOutData
(
startDate
,
endDate
,
OP
.
CHECKOUT
,
queryCondition
.
getPartNumber
(),
ExtendType
.
MANUAL_CHECKOUT
,
""
);
countList
.
add
(
manualCheckOutCount
);
//料架入库
int
nlShelfPutInCount
=
inCount
-
storageInCount
-
virtualInCount
;
countList
.
add
(
nlShelfPutInCount
);
/*log.info(inCount + "");
log.info((storageInCount + virtualInCount) + "");
log.info(outCount + "");
log.info((storageOutCount + virtualOutCount + clearCount + feedingCount + manualCheckOutCount) + "");*/
//料架出库
int
nlShelfCheckOutCount
=
outCount
-
storageOutCount
-
virtualOutCount
-
clearCount
-
feedingCount
-
manualCheckOutCount
;
countList
.
add
(
nlShelfCheckOutCount
);
//resultMap.put("manualCheckOutCount",manualCheckOutCount);
resultMap
.
put
(
"title"
,
titleList
);
resultMap
.
put
(
"count"
,
countList
);
resultMap
.
put
(
"title"
,
titleList
);
resultMap
.
put
(
"count"
,
countList
);
return
ResultBean
.
newOkResult
(
resultMap
);
}
...
...
@@ -634,22 +608,6 @@ public class InnerReportController {
@RequestMapping
(
"/getInAndOutCount/download"
)
@AnonymousAccess
public
void
getInAndOutCountDownload
(
ReportQueryCondition
queryCondition
,
HttpServletResponse
response
)
{
/*ResultBean bean = getInAndOutCount(queryCondition);
Map<String, Object> map = (Map<String, Object>) bean.getData();
List<String> titleList = (List<String>) map.get("title");
List<Integer> countList = (List<Integer>) map.get("count");
List<Map<String, Object>> results = new ArrayList<>();
Map<String, Object> resultMap = new LinkedHashMap<>();
for (int i = 0; i < titleList.size(); i++) {
resultMap.put(titleList.get(i),countList.get(i));
}
results.add(resultMap);
try {
FileUtil.downloadCSV(results,titleList, response);
} catch (Exception e) {
e.printStackTrace();
}*/
ResultBean
bean
=
getInAndOutCount
(
queryCondition
);
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
bean
.
getData
();
List
<
String
>
titleList
=
(
List
<
String
>)
map
.
get
(
"title"
);
...
...
@@ -688,22 +646,22 @@ public class InnerReportController {
if
(
orderItem
.
getOutReelCount
()
<
orderItem
.
getNeedReelCount
())
{
//判断线别是否相等
String
line
=
queryCondition
.
getLine
();
if
(
StringUtils
.
isNotBlank
(
line
)){
if
(!
orderItem
.
getLine
().
contains
(
line
)){
if
(
StringUtils
.
isNotBlank
(
line
))
{
if
(!
orderItem
.
getLine
().
contains
(
line
))
{
continue
;
}
}
//判断工单号是否一致
String
orderNo
=
queryCondition
.
getOrderNo
();
if
(
StringUtils
.
isNotBlank
(
orderNo
)){
if
(!
orderItem
.
getOrderNo
().
contains
(
orderNo
)){
if
(
StringUtils
.
isNotBlank
(
orderNo
))
{
if
(!
orderItem
.
getOrderNo
().
contains
(
orderNo
))
{
continue
;
}
}
//判断料号是否一致
String
pn
=
queryCondition
.
getPn
();
if
(
StringUtils
.
isNotBlank
(
pn
)){
if
(!
orderItem
.
getPn
().
contains
(
pn
)){
if
(
StringUtils
.
isNotBlank
(
pn
))
{
if
(!
orderItem
.
getPn
().
contains
(
pn
))
{
continue
;
}
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/report/outer/OuterReportController.java
查看文件 @
f85456a
...
...
@@ -472,8 +472,10 @@ public class OuterReportController {
//log.info("处理数量--" + count);
InventoryDto
dto
=
new
InventoryDto
();
String
posName
=
barcode
.
getPosName
();
String
newPosName
=
posName
.
substring
(
0
,
posName
.
indexOf
(
"-"
));
String
newPosName
=
""
;
if
(
posName
.
indexOf
(
"-"
)
!=
-
1
){
newPosName
=
posName
.
substring
(
0
,
posName
.
indexOf
(
"-"
));
}
//根据posName取库位信息
StoragePos
pos
=
null
;
if
(
posMap
.
get
(
newPosName
)
!=
null
)
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论