Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 1b725840
由
LN
编写于
2023-01-12 15:15:55 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
bug修改
1 个父辈
21f2250f
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
62 行增加
和
11 行删除
src/main/java/com/neotel/smfcore/core/kanban/rest/BoxKanbanController.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
src/main/java/com/neotel/smfcore/custom/djk20388/DJK20388Menu.java
src/main/java/com/neotel/smfcore/custom/micron20031/Micron20031Api.java
src/main/java/com/neotel/smfcore/custom/micron20031/MicronSpApiListener.java
src/main/java/com/neotel/smfcore/custom/micron20031/MicronSpUnloadController.java
src/main/java/com/neotel/smfcore/custom/micron20031/manager/MicronSpTimerProcess.java
src/main/java/com/neotel/smfcore/core/kanban/rest/BoxKanbanController.java
查看文件 @
1b72584
...
...
@@ -469,7 +469,7 @@ public class BoxKanbanController {
Integer
warmUseCount
=
dataCache
.
getSpUsePosCount
(
storage
.
getCid
(),
DataCache
.
warmPosUseCount
);
Integer
coldingUseCount
=
dataCache
.
getSpUsePosCount
(
storage
.
getCid
(),
DataCache
.
coldingPosUseCount
);
boxDto
.
getData
().
put
(
DataCache
.
warmPosUseCount
,
warmUseCount
.
toString
());
boxDto
.
getData
().
put
(
DataCache
.
warm
PosUseCount
,
coldingUseCount
.
toString
());
boxDto
.
getData
().
put
(
DataCache
.
colding
PosUseCount
,
coldingUseCount
.
toString
());
}
return
boxDto
;
}
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
1b72584
...
...
@@ -286,7 +286,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
/**
* 根据出库方式获取不同的 Sort
*/
p
rivate
Sort
getSortByCheckOutType
(
CHECKOUT_TYPE
checkoutType
){
p
ublic
Sort
getSortByCheckOutType
(
CHECKOUT_TYPE
checkoutType
){
Sort
sort
=
null
;
if
(
CHECKOUT_TYPE
.
EXPIRE_FIRST
.
equals
(
checkoutType
)){
//先过期先出
sort
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"barcode.expTime"
,
"barcode.expireDate"
,
"canCheckOutTime"
);
...
...
@@ -622,5 +622,4 @@ public class StoragePosManagerImpl implements IStoragePosManager {
return
getEmptyPos
(
storage
,
barcode
,
excludePosIds
,
true
);
}
}
src/main/java/com/neotel/smfcore/custom/djk20388/DJK20388Menu.java
查看文件 @
1b72584
...
...
@@ -22,7 +22,7 @@ public class DJK20388Menu {
String
menuLabel
=
"20388"
;
//AGV
MenuInit
.
addMenu
(
menuLabel
,
null
,
163
,
"AGV"
,
"agv"
,
"djk/agv
K
anban/index"
,
"agv"
);
MenuInit
.
addMenu
(
menuLabel
,
null
,
163
,
"AGV"
,
"agv"
,
"djk/agv
k
anban/index"
,
"agv"
);
String
apiName
=
smfApi
.
getApiName
();
if
(
Strings
.
isNotBlank
(
apiName
)
&&
apiName
.
equals
(
menuLabel
)){
...
...
src/main/java/com/neotel/smfcore/custom/micron20031/Micron20031Api.java
查看文件 @
1b72584
...
...
@@ -9,6 +9,8 @@ import com.neotel.smfcore.core.barcode.service.po.Barcode;
import
com.neotel.smfcore.custom.micron20031.bean.DepositMatReqBean
;
import
com.neotel.smfcore.custom.micron20031.bean.MatOrderBean
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
...
...
@@ -17,6 +19,7 @@ import java.util.*;
* @date 2022/12/21 9:11 AM
*/
@Slf4j
@Service
public
class
Micron20031Api
{
public
static
String
MODE_DISABLE_SAP
=
"DISABLE_SAP"
;
public
static
String
MODE_DISABLE_MAM
=
"DISABLE_MAM"
;
...
...
@@ -28,12 +31,33 @@ public class Micron20031Api {
public
static
String
Email_TO
=
""
;
public
static
String
Email_CC
=
""
;
private
static
String
apiAddr
=
""
;
@Value
(
"${micron.email.to:}"
)
public
void
setEmaillTo
(
String
to
)
{
Micron20031Api
.
Email_TO
=
to
;
}
@Value
(
"${micron.email.cc:}"
)
public
void
setEmaillCc
(
String
cc
)
{
Micron20031Api
.
Email_CC
=
cc
;
}
@Value
(
"${micron.apiAddr:}"
)
public
void
setApiaddr
(
String
apiAddr
)
{
Micron20031Api
.
apiAddr
=
apiAddr
;
}
private
static
String
AUTH_TOKEN
=
""
;
private
static
String
MATERIAL_TYPE
=
"SOLDER_PASTE"
;
public
static
boolean
isEnable
(){
if
(
ObjectUtil
.
isEmpty
(
apiAddr
)){
return
false
;
}
return
true
;
}
public
static
String
getAuthToken
(){
String
url
=
"https://boapi3testgtwy.micron.com/token"
;
try
{
...
...
@@ -355,6 +379,7 @@ public class Micron20031Api {
List
<
String
>
result
=
new
ArrayList
<
String
>();
result
.
add
(
"test1"
);
result
.
add
(
"test2"
);
return
result
;
}
String
auth
=
getAuthToken
();
Map
<
String
,
String
>
dataMap
=
new
HashMap
<>();
...
...
@@ -387,6 +412,9 @@ public class Micron20031Api {
*/
public
static
String
getMicronPN
(
String
micronLotId
,
String
equipId
)
throws
ApiException
{
String
checkStockAvailableUrl
=
""
;
if
(
ObjectUtil
.
isEmpty
(
checkStockAvailableUrl
)){
return
"2K.K2275.010"
;
}
String
auth
=
getAuthToken
();
Map
<
String
,
String
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"MicronLotID"
,
micronLotId
);
...
...
src/main/java/com/neotel/smfcore/custom/micron20031/MicronSpApiListener.java
查看文件 @
1b72584
...
...
@@ -21,7 +21,7 @@ public class MicronSpApiListener extends BaseSmfApiListener {
private
InListCache
inListCache
;
@Override
public
boolean
isForThisApi
(
String
apiName
)
{
return
false
;
return
Micron20031Api
.
isEnable
()
;
}
@Override
public
Barcode
canPutInAfterResolve
(
String
inCheckUrl
,
CodeValidateParam
params
,
Barcode
barcode
)
throws
ValidateException
{
...
...
src/main/java/com/neotel/smfcore/custom/micron20031/MicronSpUnloadController.java
查看文件 @
1b72584
package
com
.
neotel
.
smfcore
.
custom
.
micron20031
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ApiException
;
...
...
@@ -7,10 +8,12 @@ import com.neotel.smfcore.common.exception.ValidateException;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE
;
import
com.neotel.smfcore.core.storage.rest.dto.CheckOutDto
;
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.manager.impl.StoragePosManagerImpl
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.util.TaskService
;
...
...
@@ -20,12 +23,14 @@ import io.swagger.annotations.ApiOperation;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -42,7 +47,7 @@ public class MicronSpUnloadController {
private
TaskService
taskService
;
@Autowired
private
IStoragePosManager
storagePosManager
;
private
StoragePosManagerImpl
storagePosManager
;
@Autowired
private
StoragePosMapper
storagePosMapper
;
...
...
@@ -65,13 +70,24 @@ public class MicronSpUnloadController {
@GetMapping
(
value
=
"/unload/getMicronPN"
)
public
ResultBean
getMicronPN
(
String
lotId
,
String
lineId
)
{
if
(
ObjectUtil
.
isEmpty
(
lotId
)||
ObjectUtil
.
isEmpty
(
lineId
)){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.micron.operationFailure"
,
"操作失败"
);
}
try
{
String
pn
=
Micron20031Api
.
getMicronPN
(
lotId
,
lineId
);
Collection
<
String
>
excludePosIds
=
taskService
.
excludePosIds
();
CHECKOUT_TYPE
checkoutType
=
dataCache
.
getCheckOutType
();
//根据PN查找对应的物料,验证成功后返回
Criteria
c
=
Criteria
.
where
(
"used"
).
is
(
true
);
c
.
and
(
"barcode.partNumber"
).
is
(
pn
);
c
.
and
(
"enable"
).
is
(
true
);
c
.
and
(
"barcode.lockId"
).
is
(
null
);
c
.
and
(
"barcode.appendData.AuthoriseNg"
).
ne
(
true
);
c
.
and
(
"id"
).
nin
(
excludePosIds
);
Query
q
=
new
Query
(
c
);
Sort
sort
=
storagePosManager
.
getSortByCheckOutType
(
checkoutType
);
q
.
with
(
sort
);
List
<
StoragePos
>
posList
=
storagePosManager
.
findByQuery
(
new
Query
(
c
));
for
(
StoragePos
pos
:
posList
)
{
...
...
@@ -92,7 +108,7 @@ public class MicronSpUnloadController {
log
.
info
(
"unload/getMicronPN ["
+
pn
+
"] barcode ["
+
pos
.
getBarcode
().
getBarcode
()
+
"] 标记为NG"
);
}
}
return
ResultBean
.
new
OkResult
(
pn
);
return
ResultBean
.
new
ErrorResult
(-
1
,
"smfcore.micron.checkoutByPnFail"
,
"未找到可出库物料"
);
}
catch
(
ApiException
e
)
{
return
ResultBean
.
newErrorResult
(
1
,
e
.
getMessage
(),
e
.
getMessage
());
}
...
...
@@ -111,6 +127,9 @@ public class MicronSpUnloadController {
String
posName
=
params
.
get
(
"posName"
);
if
(
ObjectUtil
.
isEmpty
(
posName
)){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.micron.operationFailure"
,
"操作失败"
);
}
StoragePos
pos
=
storagePosManager
.
getByPosName
(
posName
);
if
(
pos
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.micron.operationFailure"
,
"操作失败"
);
...
...
src/main/java/com/neotel/smfcore/custom/micron20031/manager/MicronSpTimerProcess.java
查看文件 @
1b72584
...
...
@@ -14,6 +14,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -37,7 +38,11 @@ public class MicronSpTimerProcess {
private
boolean
isRunning
=
false
;
@PostConstruct
public
void
init
()
{
if
(!
Micron20031Api
.
isEnable
())
{
return
;
}
if
(!
isRunning
)
{
isRunning
=
true
;
log
.
info
(
"开始20031入库任务定时处理"
);
...
...
@@ -49,7 +54,7 @@ public class MicronSpTimerProcess {
DespositProcess
();
InlistTimeoutProcess
();
}
},
1
0
,
60
,
TimeUnit
.
SECONDS
);
},
6
0
,
60
,
TimeUnit
.
SECONDS
);
}
}
...
...
@@ -68,9 +73,9 @@ public class MicronSpTimerProcess {
for
(
InListItem
item
:
inList
.
getInListItems
())
{
if
(
item
.
getInNum
()
<=
0
)
{
//发送邮件
Micron20031Api
.
sendEmail
(
Micron20031Api
.
Email_TO
,
Micron20031Api
.
Email_CC
,
inList
.
getName
(),
item
.
getRi
());
log
.
info
(
"sendEmail ["
+
inList
.
getName
()
+
"] ["
+
item
.
getRi
()
+
"] 给["
+
Micron20031Api
.
Email_TO
+
"]["
+
Micron20031Api
.
Email_CC
+
"] 成功"
);
}
}
inList
.
setSendEmail
(
true
);
...
...
@@ -94,11 +99,11 @@ public class MicronSpTimerProcess {
for
(
Barcode
barcode
:
barcodeList
)
{
//发送邮件
Micron20031Api
.
mATrackOut
(
barcode
);
barcode
.
updateAppendData
(
"maTrackOut"
,
true
);
barcodeManager
.
saveBarcode
(
barcode
);
log
.
info
(
"DespositProcess barcode=["
+
barcode
.
getBarcode
()
+
"] 调用maTrackOut 成功"
);
}
}
catch
(
Exception
ex
)
{
log
.
info
(
"条码stabilizationEndDate到达后发送 maTrackOut出错:"
+
ex
.
getMessage
());
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论