Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 6915816d
由
zshaohui
编写于
2024-07-02 16:46:44 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
手动抛送缺料预警修改
1 个父辈
7e26e143
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
71 行增加
和
36 行删除
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenController.java → src/main/java/com/neotel/smfcore/custom/lizhen/wcs/LizhenController.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/ManualTower.java
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
查看文件 @
6915816
...
@@ -190,12 +190,11 @@ public class DeviceController {
...
@@ -190,12 +190,11 @@ public class DeviceController {
}
}
//判断库别是否为空
//判断库别是否为空
/*
Barcode barcode1F = lizhenApi.getBarcode(barcode.getBarcode());
Barcode
barcode1F
=
lizhenApi
.
getBarcode
(
barcode
.
getBarcode
());
if
(
barcode1F
==
null
||
StringUtils
.
isEmpty
(
barcode1F
.
getWarehouseCode
())){
if
(
barcode1F
==
null
||
StringUtils
.
isEmpty
(
barcode1F
.
getWarehouseCode
())){
throw
new
ValidateException
(
""
,
barcode
.
getBarcode
()+
"未找到对应的库别信息"
);
throw
new
ValidateException
(
""
,
barcode
.
getBarcode
()+
"未找到对应的库别信息"
);
}
}
String warhouseCode = barcode1F.getWarehouseCode();*/
String
warhouseCode
=
barcode1F
.
getWarehouseCode
();
String
warhouseCode
=
""
;
//判断虚拟仓有没有存在,如果有,把虚拟仓库位置空
//判断虚拟仓有没有存在,如果有,把虚拟仓库位置空
StoragePos
storagePos
=
storagePosManager
.
getByBarcode
(
barcode
.
getBarcode
());
StoragePos
storagePos
=
storagePosManager
.
getByBarcode
(
barcode
.
getBarcode
());
...
@@ -319,7 +318,7 @@ public class DeviceController {
...
@@ -319,7 +318,7 @@ public class DeviceController {
Storage
theStorage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
Storage
theStorage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
//
lizhenApi.backToWarehouse(warhouseCode,theStorage.getName(),barcode.getBarcode());
lizhenApi
.
backToWarehouse
(
warhouseCode
,
theStorage
.
getName
(),
barcode
.
getBarcode
());
barcode
.
setWarehouseCode
(
warhouseCode
);
barcode
.
setWarehouseCode
(
warhouseCode
);
barcode
.
setAskPutIn
(
true
);
barcode
.
setAskPutIn
(
true
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenController.java
→
src/main/java/com/neotel/smfcore/custom/lizhen/
wcs/
LizhenController.java
查看文件 @
6915816
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
;
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
wcs
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
...
@@ -27,6 +27,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache;
...
@@ -27,6 +27,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache;
import
com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil
;
import
com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil
;
import
com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBox
;
import
com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBox
;
import
com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBoxList
;
import
com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBoxList
;
import
com.neotel.smfcore.custom.lizhen.wcs.bean.ManualTower
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -321,7 +322,7 @@ public class LizhenController {
...
@@ -321,7 +322,7 @@ public class LizhenController {
@ApiOperation
(
"Tower接收手动发料信息"
)
@ApiOperation
(
"Tower接收手动发料信息"
)
@RequestMapping
(
"/manualTower"
)
@RequestMapping
(
"/manualTower"
)
@AnonymousAccess
@AnonymousAccess
public
Map
<
String
,
String
>
manualTower
(
@RequestBody
List
<
AskReelBoxList
>
itemList
)
{
public
Map
<
String
,
String
>
manualTower
(
@RequestBody
List
<
ManualTower
>
itemList
)
{
log
.
info
(
"收到WMS手动发料数据为:"
+
JSON
.
toJSONString
(
itemList
));
log
.
info
(
"收到WMS手动发料数据为:"
+
JSON
.
toJSONString
(
itemList
));
createManualOrder
(
itemList
);
createManualOrder
(
itemList
);
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
...
@@ -329,47 +330,52 @@ public class LizhenController {
...
@@ -329,47 +330,52 @@ public class LizhenController {
resultMap
.
put
(
"MSGTX"
,
"接收成功"
);
resultMap
.
put
(
"MSGTX"
,
"接收成功"
);
return
resultMap
;
return
resultMap
;
}
}
private
String
createManualOrder
(
List
<
AskReelBoxList
>
itemList
)
{
private
String
createManualOrder
(
List
<
ManualTower
>
itemList
)
{
Map
<
String
,
LiteOrder
>
orderMap
=
new
HashMap
<>();
Map
<
String
,
LiteOrder
>
orderMap
=
new
HashMap
<>();
for
(
AskReelBoxList
askItem
:
itemList
)
{
for
(
ManualTower
manualTower
:
itemList
)
{
String
orderNo
=
askItem
.
getWORKORDERNO
();
String
orderNo
=
manualTower
.
getPICKING_ID
();
LiteOrder
order
=
orderMap
.
get
(
orderNo
);
LiteOrder
order
=
orderMap
.
get
(
orderNo
);
if
(
order
==
null
){
if
(
order
==
null
){
order
=
new
LiteOrder
();
order
=
new
LiteOrder
();
order
.
setOrderNo
(
askItem
.
getWORKORDERNO
());
order
.
setOrderNo
(
manualTower
.
getPICKING_ID
());
order
.
setLine
(
askItem
.
getLINE
());
order
.
setLine
(
manualTower
.
getLINE
());
order
=
liteOrderManager
.
save
(
order
);
}
}
LiteOrderItem
orderItem
=
new
LiteOrderItem
();
LiteOrderItem
orderItem
=
new
LiteOrderItem
();
orderItem
.
setLine
(
askItem
.
getLINE
());
orderItem
.
setPickingId
(
orderNo
);
orderItem
.
setWarningItemId
(
askItem
.
getID
());
orderItem
.
setPlantCode
(
manualTower
.
getPLANT_CODE
());
orderItem
.
setMo
(
askItem
.
getWORKORDERNO
());
orderItem
.
setPn
(
manualTower
.
getMATERIAL_CODE
());
int
needReelCount
=
NumberUtil
.
parseInt
(
askItem
.
getREQ_REEL
());
orderItem
.
setLine
(
manualTower
.
getLINE
());
orderItem
.
setNeedReelCount
(
needReelCount
);
orderItem
.
setMachineName
(
manualTower
.
getMACHINE_NAME
());
int
needNum
=
NumberUtil
.
parseInt
(
askItem
.
getREQ_QTY
());
orderItem
.
setSide
(
manualTower
.
getFACE
());
orderItem
.
setNeedNum
(
needNum
);
orderItem
.
setSlot
(
manualTower
.
getSLOT
());
orderItem
.
setMachineName
(
askItem
.
getMACHINENAME
());
orderItem
.
setSubSlot
(
manualTower
.
getSUBSLOT
());
orderItem
.
setPn
(
askItem
.
getPARTNUMBER
());
orderItem
.
setMo
(
manualTower
.
getMO
());
orderItem
.
setSide
(
askItem
.
getSIDE
());
//设置面别
orderItem
.
setBrand
(
manualTower
.
getBRAND
());
orderItem
.
setSlot
(
askItem
.
getSLOT
());
//站位
orderItem
.
setBatchCode
(
manualTower
.
getBATCH_CODE
());
orderItem
.
setSubSlot
(
askItem
.
getSUBSLOT
());
orderItem
.
setPriority
(
manualTower
.
getPRIORITY
());
orderItem
.
setTableNo
(
askItem
.
getSTATION
());
orderItem
.
setNeedReelCount
(
manualTower
.
getREQ_REEL
());
orderItem
.
setOrderNo
(
order
.
getOrderNo
());
orderItem
.
setNeedNum
(
manualTower
.
getREQ_QTY
());
orderItem
.
setOrderId
(
order
.
getId
());
orderItem
.
setMachineName
(
askItem
.
getMACHINENAME
());
List
<
LiteOrderItem
>
orderItems
=
order
.
getOrderItems
();
orderItem
.
setReel
(
askItem
.
getREEL
());
if
(
orderItems
==
null
){
orderItem
.
setBrand
(
askItem
.
getVENDOR
());
orderItems
=
new
ArrayList
<>();
orderItem
.
setWidth
(
askItem
.
getWidth
());
}
orderItem
.
setDia
(
askItem
.
getDia
());
orderItems
.
add
(
orderItem
);
order
.
updateOrderItems
(
orderItem
);
order
.
setOrderItems
(
orderItems
);
orderMap
.
put
(
orderNo
,
order
);
}
}
for
(
LiteOrder
liteOrder
:
orderMap
.
values
())
{
for
(
LiteOrder
liteOrder
:
orderMap
.
values
())
{
liteOrderManager
.
save
(
liteOrder
);
LiteOrder
dbOrder
=
liteOrderManager
.
findByOrderNo
(
liteOrder
.
getOrderNo
());
liteOrderCache
.
addOrderToMap
(
liteOrder
);
if
(
dbOrder
!=
null
){
log
.
info
(
"工单["
+
liteOrder
.
getOrderNo
()+
"]已创建完成"
);
continue
;
}
LiteOrder
newOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderManager
.
save
(
newOrder
);
liteOrderCache
.
addOrderToMap
(
newOrder
);
log
.
info
(
"工单["
+
newOrder
.
getOrderNo
()+
"]已创建完成"
);
}
}
return
"OK"
;
return
"OK"
;
}
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/ManualTower.java
0 → 100644
查看文件 @
6915816
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
wcs
.
bean
;
import
lombok.Data
;
@Data
public
class
ManualTower
{
private
String
PLANT_CODE
;
// 厂区
private
String
PICKING_ID
;
// 挑料编码
private
String
MATERIAL_CODE
;
// 料号
private
String
LINE
;
// 线别
private
String
MACHINE_NAME
;
// 机台名
private
String
MACHINE
;
// 原为MACHINE,但为避免与机台名冲突,改为机台类型
private
String
FACE
;
// 面别
private
String
SLOT
;
// 料站
private
String
SUBSLOT
;
// 左右料站
private
String
MO
;
// 工单
private
String
BRAND
;
// 制造商
private
String
BATCH_CODE
;
// 批次号
private
int
LEFT_QTY
;
// 剩余数量,假设为浮点数,根据需要可改为Integer
private
int
LEFT_PCBS
;
// 剩余板数
private
int
LEFT_TIMES
;
// 剩余时间,假设为浮点数,根据需要可改为其他类型
private
int
PRIORITY
;
// 优先级
private
int
PRODUCT_BOARDS
;
// 主板数
private
int
STATUS
;
// 状态
private
String
RECIEVE_TYPE
;
// 接收类型
private
String
PITCH
;
// 摊位
private
int
TAP_LENGTH
;
// 料盘长度,假设为浮点数
private
int
REQ_REEL
;
// 需求卷数
private
int
REQ_QTY
;
// 需求数量
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论