Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit bf7c6d36
由
zshaohui
编写于
2024-07-31 19:44:48 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
人工接收手动tower预警 修改
1 个父辈
328d68a9
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
78 行增加
和
28 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.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/order/LiteOrderCache.java
查看文件 @
bf7c6d3
...
...
@@ -594,6 +594,8 @@ public class LiteOrderCache {
task
.
setKeeperCode
(
pos
.
getBarcode
().
getKeeperCode
());
task
.
setExport
(
exportStr
);
task
.
setPickingId
(
orderItem
.
getPickingId
());
task
.
setItemNo
(
orderItem
.
getItemNo
());
task
.
setModel
(
orderItem
.
getModel
());
//先调用tower发料
String
result
=
lizhenApi
.
towerIssue
(
task
);
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
查看文件 @
bf7c6d3
...
...
@@ -243,6 +243,11 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private
String
pickingId
;
private
String
model
;
private
String
rowId
;
private
int
itemNo
;
public
void
setOutReelList
(
String
reel
)
{
if
(
outReelList
==
null
){
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
bf7c6d3
...
...
@@ -373,6 +373,10 @@ public class DataLog extends BasePo implements Serializable {
*/
private
String
pickingId
;
private
String
model
=
""
;
private
int
itemNo
=
1
;
public
String
getBarcode
()
{
if
(
barcode
==
null
){
return
""
;
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
查看文件 @
bf7c6d3
...
...
@@ -291,11 +291,13 @@ public class LizhenApi extends DefaultSmfApiListener {
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"PLANT_CODE"
,
CommonUtil
.
plantCode
);
paramMap
.
put
(
"PICKING_ID"
,
"SMFT"
+
System
.
currentTimeMillis
());
paramMap
.
put
(
"ITEM_NO"
,
1
);
paramMap
.
put
(
"MATERIAL_CODE"
,
task
.
getPartNumber
());
paramMap
.
put
(
"WAREHOUSE_CODE"
,
task
.
getWarehouseCode
());
paramMap
.
put
(
"BRAND"
,
task
.
getProvider
());
paramMap
.
put
(
"FACE"
,
""
);
paramMap
.
put
(
"BATCH_CODE"
,
task
.
getBatchInfo
());
paramMap
.
put
(
"MODEL"
,
""
);
paramMap
.
put
(
"REEL_LIST"
,
Arrays
.
asList
(
task
.
getBarcode
()));
log
.
info
(
task
.
getBarcode
()
+
"出库通知,调用Tower发料,请求参数为:"
+
JSON
.
toJSONString
(
paramMap
));
try
{
...
...
@@ -320,11 +322,13 @@ public class LizhenApi extends DefaultSmfApiListener {
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"PLANT_CODE"
,
CommonUtil
.
plantCode
);
paramMap
.
put
(
"PICKING_ID"
,
task
.
getPickingId
());
paramMap
.
put
(
"ITEM_NO"
,
task
.
getItemNo
());
paramMap
.
put
(
"MATERIAL_CODE"
,
task
.
getPartNumber
());
paramMap
.
put
(
"WAREHOUSE_CODE"
,
task
.
getWarehouseCode
());
paramMap
.
put
(
"BRAND"
,
task
.
getProvider
());
paramMap
.
put
(
"FACE"
,
task
.
getSide
());
paramMap
.
put
(
"BATCH_CODE"
,
task
.
getBatchInfo
());
paramMap
.
put
(
"MODEL"
,
task
.
getModel
());
paramMap
.
put
(
"REEL_LIST"
,
Arrays
.
asList
(
task
.
getBarcode
()));
log
.
info
(
task
.
getBarcode
()
+
"出库通知,调用Tower发料,请求参数为:"
+
JSON
.
toJSONString
(
paramMap
));
try
{
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/LizhenController.java
查看文件 @
bf7c6d3
...
...
@@ -2,6 +2,7 @@ package com.neotel.smfcore.custom.lizhen.wcs;
import
cn.hutool.core.util.NumberUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Maps
;
import
com.neotel.smfcore.common.bean.ResultBean
;
...
...
@@ -322,30 +323,61 @@ public class LizhenController {
@ApiOperation
(
"Tower接收手动发料信息"
)
@RequestMapping
(
"/manualTower"
)
@AnonymousAccess
public
Map
<
String
,
String
>
manualTower
(
@RequestBody
List
<
ManualTower
>
itemList
)
{
log
.
info
(
"收到WMS手动发料数据为:"
+
JSON
.
toJSONString
(
itemList
));
//createManualOrder(itemList);
for
(
ManualTower
tower
:
itemList
)
{
PreWarningItem
item
=
new
PreWarningItem
();
item
.
setMachinename
(
tower
.
getMACHINE_NAME
());
item
.
setStation
(
tower
.
getMACHINE
());
item
.
setSide
(
tower
.
getFACE
());
item
.
setSlot
(
tower
.
getSLOT
());
item
.
setSubslot
(
tower
.
getSUBSLOT
());
item
.
setPartnumber
(
tower
.
getMATERIAL_CODE
());
item
.
setLine
(
tower
.
getLINE
());
item
.
setItemId
(
tower
.
getPICKING_ID
());
item
.
setPickingId
(
tower
.
getPICKING_ID
());
item
.
setPriority
(
0
);
item
.
setBrand
(
tower
.
getBRAND
());
PreWarningItemCache
.
addItems
(
Arrays
.
asList
(
item
));
}
public
Map
<
String
,
String
>
manualTower
(
@RequestBody
JSONObject
jsonObject
)
{
log
.
info
(
"收到WMS手动发料数据为:"
+
JSON
.
toJSONString
(
jsonObject
));
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
String
pickingId
=
jsonObject
.
getString
(
"PICKING_ID"
);
String
data
=
jsonObject
.
getString
(
"DATA"
);
List
<
ManualTower
>
manualTowerList
=
JSONArray
.
parseArray
(
data
,
ManualTower
.
class
);
LiteOrder
liteOrder
=
liteOrderManager
.
findByOrderNo
(
pickingId
);
if
(
liteOrder
==
null
){
String
line
=
""
;
List
<
LiteOrderItem
>
itemList
=
new
ArrayList
<>();
for
(
ManualTower
manualTower
:
manualTowerList
)
{
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setPn
(
manualTower
.
getMATERIAL_CODE
());
item
.
setNeedReelCount
(
manualTower
.
getREQ_REEL
()
==
0
?
1
:
manualTower
.
getREQ_REEL
());
item
.
setNeedNum
(
manualTower
.
getREQ_QTY
());
item
.
setSide
(
manualTower
.
getFACE
());
item
.
setBrand
(
manualTower
.
getBRAND
());
item
.
setLine
(
manualTower
.
getLINE
());
if
(
StringUtils
.
isEmpty
(
line
)){
line
=
manualTower
.
getLINE
();
}
item
.
setPickingId
(
pickingId
);
item
.
setRowId
(
manualTower
.
getROW_ID
());
item
.
setItemNo
(
manualTower
.
getITEM_NO
());
item
.
setStation
(
manualTower
.
getMACHINE
());
item
.
setMo
(
manualTower
.
getMO
());
item
.
setSlot
(
manualTower
.
getSLOT
());
item
.
setSubSlot
(
manualTower
.
getSUBSLOT
());
item
.
setBatchCode
(
manualTower
.
getBATCH_CODE
());
item
.
setModel
(
manualTower
.
getMODEL
());
itemList
.
add
(
item
);
}
liteOrder
=
new
LiteOrder
();
liteOrder
.
setOrderNo
(
pickingId
);
liteOrder
.
setLine
(
line
);
liteOrder
.
setOrderItems
(
itemList
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
resultMap
.
put
(
"MSGTY"
,
"S"
);
resultMap
.
put
(
"MSGTX"
,
"接收成功"
);
}
else
{
resultMap
.
put
(
"MSGTY"
,
"E"
);
resultMap
.
put
(
"MSGTX"
,
pickingId
+
"已经存在"
);
}
return
resultMap
;
}
private
String
createManualOrder
(
List
<
ManualTower
>
itemList
)
{
/*
private String createManualOrder(List<ManualTower> itemList) {
Map<String, LiteOrder> orderMap = new HashMap<>();
for (ManualTower manualTower : itemList) {
...
...
@@ -393,7 +425,7 @@ public class LizhenController {
log.info("工单["+newOrder.getOrderNo()+"]已创建完成");
}
return "OK";
}
}
*/
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/ManualTower.java
查看文件 @
bf7c6d3
...
...
@@ -4,27 +4,30 @@ import lombok.Data;
@Data
public
class
ManualTower
{
private
String
PLANT_CODE
;
// 厂区
private
String
PICKING_ID
;
// 挑料编码
private
String
ROW_ID
;
// 假设这是一个唯一标识符,可以使用String
private
int
ITEM_NO
;
// 项目号,使用int,如果可能超出int范围,则使用long
private
String
PLANT_CODE
;
// 工厂代码
private
String
MATERIAL_CODE
;
// 料号
private
String
LINE
;
// 线别
private
String
MACHINE_NAME
;
// 机台名
private
String
MACHINE
;
//
原为MACHINE,但为避免与机台名冲突,改为机台类型
private
String
MACHINE
;
//
机台(可能与MACHINE_NAME重复,但保持原样)
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_QTY
;
// 剩余数量,
使用int,根据需求调整
private
int
LEFT_PCBS
;
// 剩余板数
private
int
LEFT_TIMES
;
// 剩余时间,
假设为浮点数,根据需要可改为其他
类型
private
int
LEFT_TIMES
;
// 剩余时间,
根据时间单位可能需要调整为long或特定时间
类型
private
int
PRIORITY
;
// 优先级
private
int
PRODUCT_BOARDS
;
// 主板数
private
int
STATUS
;
// 状态
private
String
RECIEVE_TYPE
;
// 接收类型
private
String
STATUS
;
// 状态,如果状态值很多且有具体含义,考虑使用枚举
private
String
MACHINE_TYPE
;
// 机台类型
private
String
RECIEVE_TYPE
;
// 接收类型,注意拼写错误,应为RECEIVE_TYPE
private
String
PITCH
;
// 摊位
private
int
TAP_LENGTH
;
// 料盘长度,假设为浮点数
private
double
TAP_LENGTH
;
// 料盘长度,假设需要较高的精度
private
int
REQ_REEL
;
// 需求卷数
private
int
REQ_QTY
;
// 需求数量
private
String
MODEL
;
// 机种
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论