Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5caa0c12
由
LN
编写于
2024-08-20 13:08:56 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.API009增加operationId和linePrepOrderId
1 个父辈
debdf76b
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
53 行增加
和
16 行删除
src/main/java/com/neotel/smfcore/core/barcode/bean/BarcodeRule.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/custom/micron1053/api/MicronApi.java
src/main/java/com/neotel/smfcore/custom/micron1053/task/MicronDispatchController.java
src/main/java/com/neotel/smfcore/core/barcode/bean/BarcodeRule.java
查看文件 @
5caa0c1
package
com
.
neotel
.
smfcore
.
core
.
barcode
.
bean
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.utils.DateUtil
;
import
com.neotel.smfcore.common.utils.HttpHelper
;
...
...
@@ -7,10 +8,7 @@ import com.neotel.smfcore.core.barcode.service.po.Barcode;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.*
;
/**
*
...
...
@@ -707,7 +705,7 @@ public class BarcodeRule {
b
.
setPartNumber
(
partNumber
);
b
.
setAmount
(
quantity
);
b
.
setProduceDate
(
produceDate
);
b
.
setExpireDate
(
expire
Date
);
b
.
setExpireDate
(
expire
Process
(
expireDate
)
);
b
.
setPlateSize
(
codeBean
.
getReelWidth
());
b
.
setHeight
(
codeBean
.
getReelHeight
());
b
.
setMsl
(
msl
);
...
...
@@ -716,6 +714,28 @@ public class BarcodeRule {
return
codeBean
;
}
private
Date
expireProcess
(
Date
ex
)
{
if
(
ex
!=
null
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
ex
);
// 判断时分秒是否都为0
if
(
calendar
.
get
(
Calendar
.
HOUR_OF_DAY
)
==
0
&&
calendar
.
get
(
Calendar
.
MINUTE
)
==
0
&&
calendar
.
get
(
Calendar
.
SECOND
)
==
0
)
{
// 设置时分秒为23:59:59
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
23
);
calendar
.
set
(
Calendar
.
MINUTE
,
59
);
calendar
.
set
(
Calendar
.
SECOND
,
59
);
}
// 获取修改后的Date对象
Date
modifiedDate
=
calendar
.
getTime
();
return
modifiedDate
;
}
return
ex
;
}
/**
* 转义正则特殊字符 ($()*+.[]?\^{}
* @return
...
...
@@ -740,7 +760,9 @@ public class BarcodeRule {
}
public
static
void
main
(
String
args
[])
throws
Exception
{
List
<
String
>
msg
=
null
;
boolean
res
=
ObjectUtil
.
isNotEmpty
(
msg
);
log
.
info
(
res
);
//[)>@06@12S001@P8909000244@1P@31P@10V@2P@20P@6D@14D@30PY@Z @K@16K@V000000@3SA20180913-01554@Q03000NAR000@20T1@1TH000000000B172621166@Q03000@2T@1Z@@
//1@2@3@PPN@5@6@7@8@9@10@11@12@13@14@15@16@17@xxRI@xQTYxxxxxx@20@21@22@23@@
...
...
@@ -891,6 +913,13 @@ public class BarcodeRule {
rule
=
"PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|EXPDATEMM-dd-yyyy[2:0:-1]|PRODATEyyyyMMdd[2:0:-1]|QITEM[1:0:-1]|Q1ITEM[2:0:-1]|P20ITEM[3:0:-1]|MSL[1:0:-1]"
;
codeStr
=
"=1+0x0-13x24=PMT40A512M16TB-062E:R|1PMT40A512M16TB-062E:R|1TJFXNGT7.11|7Q1735+EA|SJFXNGT7.11|21PMICRON||9DD20232601||||7E3"
;
rule
=
"PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|PRODATEyyyyWW[3:0:-1]|RI[1:0:-1]|QTY[2_7Q:0:-1]|MSL[1:0:-1]"
;
codeStr
=
"1PMT40A512M16TB-062E:R|21PMICRON|1TJFRY1W7.11|11D202330|SJFRY1W7.11|7Q918+EA|7E3"
;
// rule="PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|EXPDATEMM-dd-yyyy[2:0:-1]|PRODATEyyyyMMdd[2:0:-1]|QITEM[1:0:-1]|Q1ITEM[2:0:-1]|P20ITEM[3:0:-1]|MSL[1:0:-1]";
// codeStr="PMT40A512M16TB-062E:R|1PMT40A512M16TB-062E:R|1TJFRY1W7.11|7Q918+EA|SJFRY1W7.11|21PMICRON||9D20230730||||7E3";
rule
=
"PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|EXPDATEMM-dd-yyyy[2:0:-1]|PRODATEyyyyMMdd[2:0:-1]|QITEM[1:0:-1]|Q1ITEM[2:0:-1]|P20ITEM[3:0:-1]|MSL[1:0:-1]"
;
codeStr
=
"=1+0x0-310x80=P550-502922C|1P3217-10-01-C|1T132456C3|7Q1000|SP2UATPCB015|21PSIMMTECH|2D08-13-2024||Q100|1Q10||7E2"
;
BarcodeRule
br
=
BarcodeRule
.
newRule
(
rule
);
Barcode
b
=
br
.
toCodeBean
(
codeStr
).
getBarcode
();
if
(
b
!=
null
){
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
5caa0c1
...
...
@@ -916,7 +916,7 @@ public class LiteOrderCache {
/**
* 工单挑料,OutSide Shelf Dispatch Controlled Dispatch
*/
public
synchronized
String
OrderReady
(
String
orderNo
)
{
public
synchronized
String
OrderReady
(
String
orderNo
,
String
lineId
)
{
LiteOrder
cacheOrder
=
liteOrderMap
.
get
(
orderNo
);
if
(
cacheOrder
==
null
)
{
...
...
@@ -1054,7 +1054,7 @@ public class LiteOrderCache {
//调用API009进行验证
Map
<
String
,
MaterialStatus
>
apiResultMap
=
MicronApi
.
Api009
(
allBarcodes
);
Map
<
String
,
MaterialStatus
>
apiResultMap
=
MicronApi
.
Api009
(
cacheOrder
.
getOperationId
(),
lineId
,
allBarcodes
);
List
<
StoragePos
>
lockPos
=
new
ArrayList
<>();
for
(
LiteOrderItem
item
:
...
...
src/main/java/com/neotel/smfcore/custom/micron1053/api/MicronApi.java
查看文件 @
5caa0c1
...
...
@@ -33,7 +33,7 @@ import java.util.Map;
@Slf4j
public
class
MicronApi
{
public
static
boolean
Debug
=
tru
e
;
public
static
boolean
Debug
=
fals
e
;
private
static
MicronConfig
config
;
@Autowired
...
...
@@ -660,7 +660,7 @@ public class MicronApi {
}
public
static
Map
<
String
,
MaterialStatus
>
Api009
(
List
<
Barcode
>
barcodeList
)
{
public
static
Map
<
String
,
MaterialStatus
>
Api009
(
String
operationId
,
String
linePrepOrderId
,
List
<
Barcode
>
barcodeList
)
{
Map
<
String
,
MaterialStatus
>
resultMap
=
new
HashMap
<>();
if
(
Debug
)
{
...
...
@@ -674,7 +674,11 @@ public class MicronApi {
String
url
=
config
.
getUrl
(
config
.
api_name_009
);
try
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"operationId"
,
operationId
);
paramMap
.
put
(
"linePrepOrderId"
,
linePrepOrderId
);
// "operationId": <operationId>
// "linePrepOrderId" : <LinePrepOrderId>
// "materials":
List
<
Map
<
String
,
Object
>>
materialList
=
new
ArrayList
<>();
for
(
Barcode
barcode
:
barcodeList
)
{
Map
<
String
,
Object
>
materialMap
=
new
HashMap
<>();
...
...
src/main/java/com/neotel/smfcore/custom/micron1053/task/MicronDispatchController.java
查看文件 @
5caa0c1
...
...
@@ -216,7 +216,7 @@ private IStoragePosManager storagePosManager;
//工单上传成功,开始挑料
LiteOrder
order
=
getOrderByMode
(
mode
);
liteOrderCache
.
OrderReady
(
order
.
getOrderNo
());
liteOrderCache
.
OrderReady
(
order
.
getOrderNo
()
,
reason
);
// ,直接返回列表页面
List
<
LiteOrderItem
>
itemList
=
getLiteOrderItemList
(
mode
);
...
...
@@ -352,14 +352,14 @@ private IStoragePosManager storagePosManager;
LiteOrder
liteOrder
=
new
LiteOrder
(
orderName
,
items
);
liteOrder
.
setOperationId
(
taskDto
.
getOperationId
());
liteOrder
.
setMode
(
mode
);
log
.
info
(
"pnSubmit,mode=["
+
mode
+
"], 新增加订单:"
+
liteOrder
.
getOrderNo
()
+
",共"
+
items
.
size
()
+
"条工单详情"
);
log
.
info
(
"pnSubmit,mode=["
+
mode
+
"],
["
+
taskDto
.
getOperationId
()+
"],
新增加订单:"
+
liteOrder
.
getOrderNo
()
+
",共"
+
items
.
size
()
+
"条工单详情"
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
//开始挑料
LiteOrder
order
=
getOrderByMode
(
mode
);
liteOrderCache
.
OrderReady
(
order
.
getOrderNo
());
liteOrderCache
.
OrderReady
(
order
.
getOrderNo
()
,
taskDto
.
getLineId
()
);
// ,直接返回列表页面
List
<
LiteOrderItem
>
itemList
=
getLiteOrderItemList
(
mode
);
...
...
@@ -455,7 +455,11 @@ private IStoragePosManager storagePosManager;
if
(
order
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.micron.operationFailure"
,
"操作失败"
);
}
TaskDto
taskDto
=
getTaskDtoByMode
(
mode
);
if
(
taskDto
==
null
||
ObjectUtil
.
isEmpty
(
taskDto
.
getOperationId
())||
ObjectUtil
.
isEmpty
(
taskDto
.
getLineId
())){
log
.
info
(
"pnSubmit 操作失败,taskDto数据不完整"
);
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.micron.operationFailure"
,
"操作失败"
);
}
List
<
LiteOrderItem
>
items
=
order
.
getOrderItems
().
stream
()
.
filter
(
item
->
(
item
.
getId
().
equals
(
itemId
)))
.
collect
(
Collectors
.
toList
());
...
...
@@ -479,7 +483,7 @@ private IStoragePosManager storagePosManager;
//调用API009
Map
<
String
,
MaterialStatus
>
apiResultMap
=
MicronApi
.
Api009
(
allBarcodes
);
Map
<
String
,
MaterialStatus
>
apiResultMap
=
MicronApi
.
Api009
(
order
.
getOperationId
(),
taskDto
.
getLineId
(),
allBarcodes
);
List
<
LiteOrderItem
>
selectReelItems
=
item
.
selectItems
;
for
(
Barcode
barcode
:
allBarcodes
)
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论