Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 171f4f68
由
zshaohui
编写于
2024-10-15 10:02:00 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.增加迈征缺料预警转发
2.库位,物料日志 导出 增加字段信息
1 个父辈
b0a3ac6e
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
403 行增加
和
10 行删除
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
src/main/java/com/neotel/smfcore/core/system/rest/TaskController.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/InnerReportController.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/bean/query/ReportQueryCondition.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/LizhenController.java
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
查看文件 @
171f4f6
...
@@ -196,6 +196,11 @@ public class DeviceController {
...
@@ -196,6 +196,11 @@ public class DeviceController {
throw
new
ValidateException
(
"smfcore.error.barcode.expired"
,
"物料已过期,无法入库."
);
throw
new
ValidateException
(
"smfcore.error.barcode.expired"
,
"物料已过期,无法入库."
);
}
}
}
}
//料号为335S00571不允许入库
if
(
"335S00571"
.
equals
(
barcode
.
getPartNumber
())){
throw
new
ValidateException
(
""
,
"335S00571的料号不允许入到智能仓"
);
}
//判断库别是否为空
//判断库别是否为空
/*Barcode reelBarcode = lizhenApi.fetchReel(barcode);
/*Barcode reelBarcode = lizhenApi.fetchReel(barcode);
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
171f4f6
...
@@ -347,15 +347,21 @@ public class StoragePosController {
...
@@ -347,15 +347,21 @@ public class StoragePosController {
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
map
.
put
(
"设备名称"
,
storage
.
getName
());
map
.
put
(
"设备名称"
,
storage
.
getName
());
map
.
put
(
"库位号"
,
pos
.
getPosName
());
map
.
put
(
"库位号"
,
pos
.
getPosName
());
map
.
put
(
"库位(宽)"
,
pos
.
getW
());
map
.
put
(
"库位(高)"
,
pos
.
getH
());
map
.
put
(
"是否可用"
,
pos
.
isEnabled
()
?
"是"
:
"否"
);
map
.
put
(
"是否可用"
,
pos
.
isEnabled
()
?
"是"
:
"否"
);
map
.
put
(
"条码"
,
null
);
map
.
put
(
"条码"
,
null
);
map
.
put
(
"料件编号"
,
null
);
map
.
put
(
"料件编号"
,
null
);
map
.
put
(
"物料(宽)"
,
null
);
map
.
put
(
"物料(高)"
,
null
);
boolean
isLock
=
ReelLockPosUtil
.
posIsLock
(
pos
.
getPosName
());
boolean
isLock
=
ReelLockPosUtil
.
posIsLock
(
pos
.
getPosName
());
map
.
put
(
"是否锁定"
,
isLock
?
"是"
:
"否"
);
map
.
put
(
"是否锁定"
,
isLock
?
"是"
:
"否"
);
Barcode
barcode
=
pos
.
getBarcode
();
Barcode
barcode
=
pos
.
getBarcode
();
if
(
barcode
!=
null
)
{
if
(
barcode
!=
null
)
{
map
.
put
(
"条码"
,
barcode
.
getBarcode
());
map
.
put
(
"条码"
,
barcode
.
getBarcode
());
map
.
put
(
"料件编号"
,
barcode
.
getPartNumber
());
map
.
put
(
"料件编号"
,
barcode
.
getPartNumber
());
map
.
put
(
"物料(宽)"
,
barcode
.
getPlateSize
());
map
.
put
(
"物料(高)"
,
barcode
.
getHeight
());
}
}
list
.
add
(
map
);
list
.
add
(
map
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/system/rest/TaskController.java
查看文件 @
171f4f6
...
@@ -120,6 +120,7 @@ public class TaskController {
...
@@ -120,6 +120,7 @@ public class TaskController {
headerList
.
add
(
Lists
.
newArrayList
(
"Slot"
));
headerList
.
add
(
Lists
.
newArrayList
(
"Slot"
));
headerList
.
add
(
Lists
.
newArrayList
(
"Subslot"
));
headerList
.
add
(
Lists
.
newArrayList
(
"Subslot"
));
headerList
.
add
(
Lists
.
newArrayList
(
"面别"
));
headerList
.
add
(
Lists
.
newArrayList
(
"面别"
));
headerList
.
add
(
Lists
.
newArrayList
(
"出料口"
));
headerList
.
add
(
Lists
.
newArrayList
(
"状态"
));
headerList
.
add
(
Lists
.
newArrayList
(
"状态"
));
headerList
.
add
(
Lists
.
newArrayList
(
"操作人"
));
headerList
.
add
(
Lists
.
newArrayList
(
"操作人"
));
headerList
.
add
(
Lists
.
newArrayList
(
"创建时间"
));
headerList
.
add
(
Lists
.
newArrayList
(
"创建时间"
));
...
@@ -145,8 +146,9 @@ public class TaskController {
...
@@ -145,8 +146,9 @@ public class TaskController {
result
.
add
(
dataLog
.
getSlot
());
result
.
add
(
dataLog
.
getSlot
());
result
.
add
(
dataLog
.
getSubSlot
());
result
.
add
(
dataLog
.
getSubSlot
());
result
.
add
(
dataLog
.
getSide
());
result
.
add
(
dataLog
.
getSide
());
result
.
add
(
dataLog
.
getExport
());
result
.
add
(
dataLog
.
getStatus
());
result
.
add
(
dataLog
.
getStatus
());
result
.
add
(
dataLog
.
get
Cre
ator
());
result
.
add
(
dataLog
.
get
Oper
ator
());
result
.
add
(
dataLog
.
getCreateDate
());
result
.
add
(
dataLog
.
getCreateDate
());
result
.
add
(
dataLog
.
getUpdateDate
());
result
.
add
(
dataLog
.
getUpdateDate
());
dataList
.
add
(
result
);
dataList
.
add
(
result
);
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
171f4f6
...
@@ -533,11 +533,11 @@ public class TaskService {
...
@@ -533,11 +533,11 @@ public class TaskService {
}
}
//8.如果其他仓没有大盘料,则优先出T面
//8.如果其他仓没有大盘料,则优先出T面
else
{
else
{
log
.
info
(
outTask
.
getSourceName
()+
"当前工单中,其他料仓没有大盘料,
优先出T面料
"
);
log
.
info
(
outTask
.
getSourceName
()+
"当前工单中,其他料仓没有大盘料,
出最早的任务
"
);
task
=
getOutTaskBySide
(
allTasks
,
cid
,
"
T
"
);
task
=
getOutTaskBySide
(
allTasks
,
cid
,
""
);
if
(
task
==
null
)
{
if
(
task
==
null
)
{
log
.
info
(
outTask
.
getSourceName
()+
"当前工单中,其他料仓没有大盘料,T面料没有,出B面料"
);
//
log.info(outTask.getSourceName()+"当前工单中,其他料仓没有大盘料,T面料没有,出B面料");
task
=
getOutTaskBySide
(
allTasks
,
cid
,
"
B
"
);
task
=
getOutTaskBySide
(
allTasks
,
cid
,
""
);
}
}
}
}
if
(
task
!=
null
)
{
if
(
task
!=
null
)
{
...
@@ -552,9 +552,9 @@ public class TaskService {
...
@@ -552,9 +552,9 @@ public class TaskService {
if
(
outTask
!=
null
)
{
if
(
outTask
!=
null
)
{
log
.
info
(
outTask
.
getSourceName
()+
"barcode为:"
+
outTask
.
getBarcode
()+
"面别为:"
+
outTask
.
getSide
());
log
.
info
(
outTask
.
getSourceName
()+
"barcode为:"
+
outTask
.
getBarcode
()+
"面别为:"
+
outTask
.
getSide
()
+
"出料口为:"
+
outTask
.
getExport
()
);
if
(
StringUtils
.
isNotBlank
(
outTask
.
get
Side
()))
{
if
(
StringUtils
.
isNotBlank
(
outTask
.
get
Export
()))
{
exportMap
.
put
(
cid
,
outTask
.
getExport
());
exportMap
.
put
(
cid
,
outTask
.
getExport
());
}
}
}
}
...
@@ -901,14 +901,14 @@ public class TaskService {
...
@@ -901,14 +901,14 @@ public class TaskService {
throw
new
ValidateException
(
"smfcore.noValidStorage"
,
"料仓列表中未找到可用的料仓"
);
throw
new
ValidateException
(
"smfcore.noValidStorage"
,
"料仓列表中未找到可用的料仓"
);
}
}
availbleStorageList
.
sort
(
new
Comparator
<
Storage
>()
{
/*
availbleStorageList.sort(new Comparator<Storage>() {
@Override
@Override
public int compare(Storage o1, Storage o2) {
public int compare(Storage o1, Storage o2) {
Integer taskCount1 = storageTaskCountMap.get(o1.getId());
Integer taskCount1 = storageTaskCountMap.get(o1.getId());
Integer taskCount2 = storageTaskCountMap.get(o2.getId());
Integer taskCount2 = storageTaskCountMap.get(o2.getId());
return taskCount1.compareTo(taskCount2);
return taskCount1.compareTo(taskCount2);
}
}
});
});
*/
return
findEmptyPosInStorages
(
barcode
,
availbleStorageList
,
storageTaskCountMap
,
lastPosId
);
return
findEmptyPosInStorages
(
barcode
,
availbleStorageList
,
storageTaskCountMap
,
lastPosId
);
}
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
查看文件 @
171f4f6
...
@@ -581,7 +581,7 @@ public class InnerBoxRestController {
...
@@ -581,7 +581,7 @@ public class InnerBoxRestController {
}
}
//2.如果当前出料口的数量不等于0
//2.如果当前出料口的数量不等于0
if
(
remainTaskCount
>
0
)
{
if
(
remainTaskCount
>
0
&&
!
export
.
equals
(
StorageExportUtil
.
getMaizhengExport
())
)
{
//3.判断是否要补工单
//3.判断是否要补工单
Integer
ordrRemainingQty
=
dataCache
.
getCache
(
Constants
.
CACHE_ordrRemainingQty
);
Integer
ordrRemainingQty
=
dataCache
.
getCache
(
Constants
.
CACHE_ordrRemainingQty
);
if
(
ordrRemainingQty
==
null
)
{
if
(
ordrRemainingQty
==
null
)
{
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/report/InnerReportController.java
0 → 100644
查看文件 @
171f4f6
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
report
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.utils.CodeResolve
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.rest.bean.dto.OrderItemDto
;
import
com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderItemMapper
;
import
com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderMapper
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
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.core.storage.bean.InventoryItem
;
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.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.custom.lizhen.innerBox.service.manager.IVirImportLogManager
;
import
com.neotel.smfcore.custom.lizhen.report.bean.query.ReportQueryCondition
;
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.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
@Slf4j
@ApiOperation
(
"内仓报表"
)
@RequestMapping
(
"/inner/report"
)
@RestController
public
class
InnerReportController
{
@Value
(
"${lizhen.F2.name}"
)
private
String
F2
;
@Value
(
"${lizhen.F3.name}"
)
private
String
F3
;
@Value
(
"${lizhen.F5.name}"
)
private
String
F5
;
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@Autowired
private
ILiteOrderItemManager
liteOrderItemManager
;
@Autowired
private
OrderItemMapper
orderItemMapper
;
@Autowired
private
OrderMapper
orderMapper
;
@Autowired
private
DataCache
dataCache
;
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
StoragePosMapper
storagePosMapper
;
@Autowired
private
IDataLogManager
dataLogManager
;
@Autowired
private
LiteOrderCache
liteOrderCache
;
@Autowired
private
IBarcodeManager
barcodeManager
;
@Autowired
private
BarcodeMapper
barcodeMapper
;
@Autowired
private
CodeResolve
codeResolve
;
@Autowired
private
IVirImportLogManager
virImportLogManager
;
@ApiOperation
(
"缺料"
)
@RequestMapping
(
"/lackPicking"
)
@AnonymousAccess
public
PageData
lackPicking
(
ReportQueryCondition
queryCondition
,
Pageable
pageable
)
{
List
<
OrderItemDto
>
dtoList
=
new
ArrayList
<>();
String
floor
=
dataCache
.
getCache
(
Constants
.
CACHE_floor
);
List
<
LiteOrderItem
>
lackItems
=
getLackItems
(
liteOrderCache
.
getAllLiteOrder
(),
queryCondition
);
for
(
LiteOrderItem
orderItem
:
lackItems
)
{
orderItem
.
setFloor
(
floor
);
orderItem
.
setLackReel
(
1
);
orderItem
.
setLackNum
(
1
);
orderItem
.
setPreWarningTime
(
DateUtil
.
between
(
orderItem
.
getCreateDate
(),
new
Date
(),
DateUnit
.
MINUTE
));
}
dtoList
.
addAll
(
orderItemMapper
.
toDto
(
lackItems
));
return
new
PageData
(
dtoList
,
dtoList
.
size
());
}
@ApiOperation
(
"缺料导出"
)
@RequestMapping
(
"/lackPicking/download"
)
@AnonymousAccess
public
void
lackPickingDownload
(
ReportQueryCondition
queryCondition
,
Pageable
pageable
,
HttpServletResponse
response
)
throws
IOException
{
String
floor
=
dataCache
.
getCache
(
Constants
.
CACHE_floor
);
List
<
List
<
String
>>
headers
=
new
ArrayList
<>();
headers
.
add
(
Arrays
.
asList
(
"楼层"
));
headers
.
add
(
Arrays
.
asList
(
"线别"
));
headers
.
add
(
Arrays
.
asList
(
"料号"
));
headers
.
add
(
Arrays
.
asList
(
"机台"
));
headers
.
add
(
Arrays
.
asList
(
"面别"
));
headers
.
add
(
Arrays
.
asList
(
"需求站位"
));
headers
.
add
(
Arrays
.
asList
(
"需求数量"
));
headers
.
add
(
Arrays
.
asList
(
"需求卷数"
));
headers
.
add
(
Arrays
.
asList
(
"需求时间"
));
headers
.
add
(
Arrays
.
asList
(
"发料数量"
));
headers
.
add
(
Arrays
.
asList
(
"发料卷数"
));
headers
.
add
(
Arrays
.
asList
(
"发料时间"
));
headers
.
add
(
Arrays
.
asList
(
"缺料数量"
));
headers
.
add
(
Arrays
.
asList
(
"缺料卷数"
));
headers
.
add
(
Arrays
.
asList
(
"累计预警时间(分钟)"
));
List
<
List
<
Object
>>
datas
=
new
ArrayList
<>();
List
<
LiteOrderItem
>
orderItems
=
getLackItems
(
liteOrderCache
.
getAllLiteOrder
(),
queryCondition
);
for
(
LiteOrderItem
orderItem
:
orderItems
)
{
List
<
Object
>
dataList
=
new
ArrayList
<>();
dataList
.
add
(
floor
);
dataList
.
add
(
orderItem
.
getLine
());
dataList
.
add
(
orderItem
.
getPn
());
dataList
.
add
(
orderItem
.
getMachineName
());
dataList
.
add
(
orderItem
.
getSide
());
dataList
.
add
(
orderItem
.
getSlot
());
dataList
.
add
(
orderItem
.
getNeedNum
());
dataList
.
add
(
orderItem
.
getNeedReelCount
());
dataList
.
add
(
orderItem
.
getCreateDate
());
dataList
.
add
(
0
);
dataList
.
add
(
0
);
dataList
.
add
(
""
);
dataList
.
add
(
orderItem
.
getNeedNum
());
dataList
.
add
(
orderItem
.
getNeedReelCount
());
dataList
.
add
(
DateUtil
.
between
(
orderItem
.
getCreateDate
(),
new
Date
(),
DateUnit
.
MINUTE
));
datas
.
add
(
dataList
);
}
FileUtil
.
downloadExcel
(
headers
,
datas
,
response
);
}
private
List
<
LiteOrderItem
>
getLackItems
(
Collection
<
LiteOrder
>
liteOrders
,
ReportQueryCondition
queryCondition
)
{
List
<
LiteOrderItem
>
lackItems
=
new
ArrayList
<>();
//排除虚拟仓的
List
<
String
>
storageIds
=
new
ArrayList
<>();
for
(
Storage
storage
:
dataCache
.
getAllStorage
().
values
())
{
//if (!storage.isVirtual()) {
storageIds
.
add
(
storage
.
getId
());
//}
}
//得到库存信息
Map
<
String
,
InventoryItem
>
inventoryMap
=
dataCache
.
getAllInventory
(
storageIds
,
null
);
if
(
inventoryMap
!=
null
)
{
for
(
LiteOrder
liteOrder
:
liteOrders
)
{
//状态是未关闭的,未出库的
if
(!
liteOrder
.
isClosed
())
{
List
<
LiteOrderItem
>
items
=
liteOrder
.
getOrderItems
();
for
(
LiteOrderItem
orderItem
:
items
)
{
if
(
orderItem
.
getOutReelCount
()
<
orderItem
.
getNeedReelCount
())
{
//判断线别是否相等
String
line
=
queryCondition
.
getLine
();
if
(
StringUtils
.
isNotBlank
(
line
))
{
if
(!
orderItem
.
getLine
().
contains
(
line
))
{
continue
;
}
}
//判断工单号是否一致
String
orderNo
=
queryCondition
.
getOrderNo
();
if
(
StringUtils
.
isNotBlank
(
orderNo
))
{
if
(!
orderItem
.
getOrderNo
().
contains
(
orderNo
))
{
continue
;
}
}
//判断料号是否一致
String
pn
=
queryCondition
.
getPn
();
if
(
StringUtils
.
isNotBlank
(
pn
))
{
if
(!
orderItem
.
getPn
().
contains
(
pn
))
{
continue
;
}
}
InventoryItem
inventoryItem
=
inventoryMap
.
get
(
orderItem
.
getPn
());
if
(
inventoryItem
!=
null
)
{
if
(
inventoryItem
.
getStockReel
()
/*- inventoryItem.getLockReel()*/
-
inventoryItem
.
getBindReel
()
>
0
)
{
inventoryItem
.
setBindReel
(
inventoryItem
.
getBindReel
()
+
1
);
}
else
{
lackItems
.
add
(
orderItem
);
}
inventoryMap
.
put
(
orderItem
.
getPn
(),
inventoryItem
);
}
else
{
lackItems
.
add
(
orderItem
);
}
}
}
}
}
}
return
lackItems
;
}
private
Object
getData
(
Object
data
)
{
return
data
==
null
?
""
:
data
;
}
}
src/main/java/com/neotel/smfcore/custom/lizhen/report/bean/query/ReportQueryCondition.java
0 → 100644
查看文件 @
171f4f6
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
report
.
bean
.
query
;
import
com.neotel.smfcore.common.annotation.QueryCondition
;
import
com.neotel.smfcore.common.bean.BetweenData
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
@Data
@ApiModel
(
"查询条件"
)
public
class
ReportQueryCondition
{
@QueryCondition
(
blurry
=
"pn,partNumber,barcode.partNumber"
)
@ApiModelProperty
(
"料号"
)
private
String
pn
;
@QueryCondition
(
blurry
=
"pn,partNumber,barcode.partNumber"
)
@ApiModelProperty
(
"料号"
)
private
String
partNumber
;
@QueryCondition
(
blurry
=
"orderNo,sourceName"
)
@ApiModelProperty
(
"挑料单号"
)
private
String
orderNo
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
IN
,
propName
=
"orderNo"
)
@ApiModelProperty
(
"挑料单号集合"
)
private
List
<
String
>
orderNoList
;
@QueryCondition
(
propName
=
"mo"
)
@ApiModelProperty
(
"工单号"
)
private
String
mo
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"updateDate"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
BetweenData
<
Date
>
updateDate
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"updateDate"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm"
)
private
BetweenData
<
Date
>
updateDateHHmm
;
@QueryCondition
@ApiModelProperty
(
"厂别"
)
private
String
plantCode
;
@QueryCondition
@ApiModelProperty
(
"库别"
)
private
String
warehouse
;
@ApiModelProperty
(
"唯一码"
)
@QueryCondition
(
blurry
=
"barcode.barcode,barcode"
)
private
String
barcode
;
@QueryCondition
(
blurry
=
"posName"
)
@ApiModelProperty
(
"库位"
)
private
String
posName
;
@QueryCondition
(
blurry
=
"batch"
)
@ApiModelProperty
(
"批次"
)
private
String
batch
;
@ApiModelProperty
(
"线别"
)
@QueryCondition
(
propName
=
"line"
)
private
String
line
;
@ApiModelProperty
(
"厂商"
)
@QueryCondition
(
blurry
=
"barcode.provider,provider"
)
private
String
provider
;
@ApiModelProperty
(
"日期代码"
)
@QueryCondition
(
blurry
=
"dateCode"
)
private
String
dateCode
;
@ApiModelProperty
(
"料仓id"
)
@QueryCondition
(
type
=
QueryCondition
.
Type
.
IN
,
propName
=
"storageId"
)
private
List
<
String
>
storageIdList
;
@ApiModelProperty
(
"库别"
)
@QueryCondition
(
blurry
=
"warehouseCode"
)
private
String
warehouseCode
;
@ApiModelProperty
(
"储位"
)
@QueryCondition
(
blurry
=
"posName"
)
private
String
storagePosName
;
@ApiModelProperty
(
"隔口"
)
@QueryCondition
(
blurry
=
"boxPartition"
)
private
String
boxPartition
;
@ApiModelProperty
(
"是否匹配"
)
@QueryCondition
(
type
=
QueryCondition
.
Type
.
EQ
,
propName
=
"isMatch"
)
private
Boolean
match
;
@ApiModelProperty
(
"状态"
)
@QueryCondition
(
blurry
=
"status"
)
private
String
status
;
@ApiModelProperty
(
"盘点批次"
)
@QueryCondition
(
blurry
=
"inventoryBatch"
)
private
String
inventoryBatch
;
//楼层
private
String
floor
;
//过期状态
private
String
expireStatus
;
private
int
page
;
private
int
size
;
private
String
sort
;
}
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/LizhenController.java
查看文件 @
171f4f6
...
@@ -230,6 +230,46 @@ public class LizhenController {
...
@@ -230,6 +230,46 @@ public class LizhenController {
}
}
//机台叫料转发的地址
@PostMapping
(
"/maiZhengMachineCallMaterial"
)
@AnonymousAccess
public
ResultBean
maiZhengMachineCallMaterial
(
@RequestBody
List
<
Map
<
String
,
String
>>
dataList
)
{
boolean
startJob
=
dataCache
.
getCache
(
Constants
.
CACHE_StartJob
);
if
(!
startJob
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"定时任务未开启"
,
new
String
[]{},
false
);
}
log
.
info
(
"收到迈征缺料预警信息---"
+
JSONObject
.
toJSONString
(
dataList
));
for
(
Map
<
String
,
String
>
data
:
dataList
)
{
PreWarningItem
item
=
new
PreWarningItem
();
item
.
setMachinename
(
data
.
get
(
"MACHINENAME"
));
item
.
setStation
(
data
.
get
(
"STATION"
));
item
.
setSide
(
data
.
get
(
"SIDE"
));
item
.
setSlot
(
data
.
get
(
"SLOT"
));
item
.
setSubslot
(
data
.
get
(
"SUBSLOT"
));
item
.
setPartnumber
(
data
.
get
(
"PARTNUMBER"
));
item
.
setLine
(
data
.
get
(
"LINE"
));
item
.
setItemId
(
data
.
get
(
"ID"
));
item
.
setPickingId
(
data
.
get
(
"PICKING_ID"
));
try
{
item
.
setItemNo
(
Integer
.
valueOf
(
data
.
get
(
"ITEM_NO"
)));
item
.
setPriority
(
Integer
.
valueOf
(
data
.
get
(
"PRIORITY"
)));
}
catch
(
NumberFormatException
e
)
{
e
.
printStackTrace
();
item
.
setPriority
(
0
);
item
.
setItemNo
(
1
);
}
item
.
setReel
(
data
.
get
(
"REEL"
));
String
brand
=
data
.
get
(
"VENDOR"
);
item
.
setBrand
(
brand
);
if
(
StringUtils
.
isBlank
(
item
.
getSide
())){
log
.
info
(
"缺料预警id:"
+
item
.
getItemId
()+
"面别为空,忽略"
);
//return ResultBean.newErrorResult(-1,"","side为空");
}
PreWarningItemCache
.
addItems
(
Arrays
.
asList
(
item
));
}
return
ResultBean
.
newOkResult
(
""
);
}
/**
/**
* 根据唯一码,查找最近的一次工单信息
* 根据唯一码,查找最近的一次工单信息
*
*
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论