Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 65d01ef4
由
zshaohui
编写于
2024-12-30 17:28:08 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
回库功能优化提交
1 个父辈
a7048ed6
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
79 行增加
和
48 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/system/service/manager/IDataLogManager.java
src/main/java/com/neotel/smfcore/core/system/service/manager/impl/DataLogManagerImpl.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/bean/ReturnStorage.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/JkemController.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/ReturnStorageController.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/manager/IReturnStorageManager.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/manager/impl/ReturnStorageManagerImpl.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/util/StorageExportUtil.java
src/main/resources/messages.properties
src/main/resources/messages_en_US.properties
src/main/resources/messages_ja_JP.properties
src/main/resources/messages_zh_CN.properties
src/main/resources/messages_zh_TW.properties
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
65d01ef
...
...
@@ -362,7 +362,7 @@ public class LiteOrderCache {
//入库的时候,增加回库信息
else
{
if
(
task
.
isFinished
())
{
returnStorageManager
.
saveOrUpdateReturnStorage
(
task
.
getBarcode
()
);
returnStorageManager
.
saveOrUpdateReturnStorage
(
task
);
}
}
}
...
...
@@ -977,7 +977,7 @@ public class LiteOrderCache {
//根据站位号,分配到不同出料口
String
putInExport
=
StorageExportUtil
.
getPutInExport
(
emptyExportList
,
countTask
>
1
,
feederInfo
);
String
putInExport
=
StorageExportUtil
.
getPutInExport
(
emptyExportList
,
countTask
>
=
1
,
feederInfo
);
log
.
info
(
"feeder为:"
+
feederInfo
+
",工单号为:"
+
orderNo
+
",获取到的出料口为:"
+
putInExport
);
if
(
StringUtils
.
isEmpty
(
putInExport
)){
break
;
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
65d01ef
...
...
@@ -359,7 +359,7 @@ public class OrderController {
@RequestMapping
(
"/detial/download"
)
@PreAuthorize
(
"@el.check('workOrder:detial')"
)
@AnonymousAccess
public
void
detialDownload
(
@RequestParam
(
required
=
false
)
String
id
,
@RequestParam
(
required
=
false
)
String
orderNo
,
HttpServletResponse
response
,
HttpServletRequest
request
)
throws
IO
Exception
{
public
void
detialDownload
(
@RequestParam
(
required
=
false
)
String
id
,
@RequestParam
(
required
=
false
)
String
orderNo
,
HttpServletResponse
response
,
HttpServletRequest
request
)
throws
Exception
{
LiteOrder
liteOrder
=
null
;
if
(!
ObjectUtils
.
isEmpty
(
id
))
{
...
...
@@ -470,7 +470,7 @@ public class OrderController {
dataList
.
add
(
data
);
}
FileUtil
.
download
Txt
ByConfig
(
liteOrder
.
getOrderNo
(),
header
,
dataList
,
response
);
FileUtil
.
download
Excel
ByConfig
(
liteOrder
.
getOrderNo
(),
header
,
dataList
,
response
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/system/service/manager/IDataLogManager.java
查看文件 @
65d01ef
...
...
@@ -17,4 +17,6 @@ public interface IDataLogManager extends IBaseManager<DataLog> {
List
<
SpDailyLog
>
getSpDailyLogs
(
Date
start
,
Date
end
,
String
inoutType
);
List
<
SpDailyLog
>
getSpPnSummaryLists
(
String
inoutType
);
DataLog
findOne
(
Query
barcode
);
}
src/main/java/com/neotel/smfcore/core/system/service/manager/impl/DataLogManagerImpl.java
查看文件 @
65d01ef
...
...
@@ -82,4 +82,9 @@ public class DataLogManagerImpl implements IDataLogManager {
return
dataLogDao
.
getSpPnSummaryLists
(
inoutType
);
}
@Override
public
DataLog
findOne
(
Query
q
)
{
return
dataLogDao
.
findOne
(
q
);
}
}
src/main/java/com/neotel/smfcore/custom/Jkem21481/bean/ReturnStorage.java
查看文件 @
65d01ef
package
com
.
neotel
.
smfcore
.
custom
.
Jkem21481
.
bean
;
import
com.neotel.smfcore.common.base.BasePo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
@Data
@AllArgsConstructor
public
class
ReturnStorage
extends
BasePo
{
private
String
orderNo
;
private
String
pn
;
private
String
ri
;
private
String
feederInfo
;
private
int
need
Num
;
private
int
before
Num
;
private
int
outNum
;
private
String
returnBarcode
;
private
String
lastExport
;
private
String
orderItemId
;
private
int
returnStorageNum
;
}
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/JkemController.java
查看文件 @
65d01ef
...
...
@@ -192,7 +192,7 @@ public class JkemController {
for
(
DataLog
dataLog
:
taskService
.
getQueueTasks
())
{
// if(!dataLog.isPackageReel()){
//已经在任务当中,返回对应的信息
if
(
dataLog
.
getBarcode
().
equals
(
barcode
.
getBarcode
()))
{
if
(
dataLog
.
getBarcode
().
equals
(
barcode
.
getBarcode
())
&&
!
dataLog
.
isCancel
()
&&
!
dataLog
.
isFinished
()
)
{
if
(
dataLog
.
isPutInTask
())
{
//已有入库任务
errorMsg
=
"物料["
+
dataLog
.
getBarcode
()
+
"]已有入库任务,需继续执行入库动作"
;
...
...
@@ -631,11 +631,13 @@ public class JkemController {
if
(
detailList
!=
null
&&
!
detailList
.
isEmpty
())
{
for
(
StorageExportOutDetail
detail
:
detailList
)
{
String
status
=
detail
.
getStatus
();
if
(!
OP_STATUS
.
FINISHED
.
name
().
equals
(
status
)
&&
!
OP_STATUS
.
CANCEL
.
name
().
equals
(
status
)
&&
!
OP_STATUS
.
NONE
.
name
().
equals
(
status
)){
if
(
StringUtils
.
isNotEmpty
(
status
))
{
if
(!
OP_STATUS
.
FINISHED
.
name
().
equals
(
status
)
&&
!
OP_STATUS
.
CANCEL
.
name
().
equals
(
status
)
&&
!
OP_STATUS
.
NONE
.
name
().
equals
(
status
))
{
String
feederInfo
=
detail
.
getFeederInfo
();
if
(
feederInfo
.
startsWith
(
feeder
)){
log
.
info
(
detail
.
getBarcode
()+
"站位号为:"
+
feederInfo
+
",对应的出料口为:"
+
export
.
getExportName
()+
",任务未结束"
);
count
++;
if
(
feederInfo
.
startsWith
(
feeder
))
{
log
.
info
(
detail
.
getBarcode
()
+
"站位号为:"
+
feederInfo
+
",对应的出料口为:"
+
export
.
getExportName
()
+
",任务未结束"
);
count
++;
}
}
}
}
...
...
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/ReturnStorageController.java
查看文件 @
65d01ef
...
...
@@ -55,11 +55,11 @@ public class ReturnStorageController {
Locale
locale
=
request
.
getLocale
();
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.storagePos.lockName"
,
locale
,
"工单号"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.pn"
,
locale
,
"PN"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.feederInfo"
,
locale
,
"站位信息"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.needNum"
,
locale
,
"需求数量"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.outNum"
,
locale
,
"已出数量"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.ri"
,
locale
,
"RI"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.outLet"
,
locale
,
"出料口"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.feederInfo"
,
locale
,
"站位信息"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.quantityBeforeIssuance"
,
locale
,
"出库前数量"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.quantityIssued"
,
locale
,
"出库数量"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.order.quantityAfterIssuance"
,
locale
,
"回库后数量"
)));
header
.
add
(
Lists
.
newArrayList
(
MessageUtils
.
getText
(
"smfcore.messages.createDate"
,
locale
,
"创建时间"
)));
return
header
;
}
...
...
@@ -72,11 +72,11 @@ public class ReturnStorageController {
List
<
Object
>
data
=
new
ArrayList
<>();
data
.
add
(
returnStorage
.
getOrderNo
());
data
.
add
(
returnStorage
.
getPn
());
data
.
add
(
returnStorage
.
getRi
());
data
.
add
(
returnStorage
.
getFeederInfo
());
data
.
add
(
returnStorage
.
get
Need
Num
());
data
.
add
(
returnStorage
.
get
Before
Num
());
data
.
add
(
returnStorage
.
getOutNum
());
data
.
add
(
returnStorage
.
getReturnBarcode
());
data
.
add
(
returnStorage
.
getLastExport
());
data
.
add
(
returnStorage
.
getReturnStorageNum
());
data
.
add
(
returnStorage
.
getCreateDate
());
dataList
.
add
(
data
);
}
...
...
src/main/java/com/neotel/smfcore/custom/Jkem21481/manager/IReturnStorageManager.java
查看文件 @
65d01ef
package
com
.
neotel
.
smfcore
.
custom
.
Jkem21481
.
manager
;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.custom.Jkem21481.bean.ReturnStorage
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Query
;
...
...
@@ -9,7 +10,7 @@ import java.util.List;
public
interface
IReturnStorageManager
extends
IBaseManager
<
ReturnStorage
>
{
void
saveOrUpdateReturnStorage
(
String
barcode
);
void
saveOrUpdateReturnStorage
(
DataLog
dataLog
);
List
<
ReturnStorage
>
findByQuery
(
Query
query
,
Pageable
pageable
);
}
src/main/java/com/neotel/smfcore/custom/Jkem21481/manager/impl/ReturnStorageManagerImpl.java
查看文件 @
65d01ef
...
...
@@ -2,14 +2,19 @@ package com.neotel.smfcore.custom.Jkem21481.manager.impl;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.enums.OP
;
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.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.custom.Jkem21481.bean.ReturnStorage
;
import
com.neotel.smfcore.custom.Jkem21481.dao.IReturnStorageDao
;
import
com.neotel.smfcore.custom.Jkem21481.manager.IReturnStorageManager
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
...
...
@@ -34,6 +39,9 @@ public class ReturnStorageManagerImpl implements IReturnStorageManager {
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@Autowired
private
IDataLogManager
dataLogManager
;
@Override
public
ReturnStorage
get
(
String
id
)
{
return
returnStorageDao
.
findOneById
(
id
);
...
...
@@ -66,33 +74,28 @@ public class ReturnStorageManagerImpl implements IReturnStorageManager {
}
@Override
public
void
saveOrUpdateReturnStorage
(
String
barcode
)
{
LiteOrderItem
item
=
liteOrderItemManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"outBarcodeList.barcode"
).
is
(
barcode
)).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createDate"
)));
if
(
item
!=
null
)
{
List
<
Barcode
>
outBarcodeList
=
item
.
getOutBarcodeList
();
if
(
outBarcodeList
!=
null
&&
!
outBarcodeList
.
isEmpty
()){
for
(
Barcode
subCode
:
outBarcodeList
)
{
if
(
barcode
.
equals
(
subCode
.
getBarcode
())){
Date
createDate
=
subCode
.
getCreateDate
();
//超过48小时,就不统计
if
(
System
.
currentTimeMillis
()-
createDate
.
getTime
()
<
1000
*
60
*
60
*
48
){
ReturnStorage
returnStorage
=
new
ReturnStorage
();
returnStorage
.
setReturnBarcode
(
barcode
);
returnStorage
.
setFeederInfo
(
item
.
getFeederInfo
());
returnStorage
.
setLastExport
(
subCode
.
getAppendData
(
"export"
));
returnStorage
.
setNeedNum
(
item
.
getNeedNum
());
returnStorage
.
setOutNum
(
item
.
getOutNum
());
returnStorage
.
setPn
(
item
.
getPn
());
LiteOrder
liteOrder
=
liteOrderManager
.
get
(
item
.
getOrderId
());
if
(
liteOrder
!=
null
)
{
returnStorage
.
setOrderNo
(
liteOrder
.
getOrderNo
());
}
returnStorage
.
setOrderItemId
(
item
.
getId
());
public
void
saveOrUpdateReturnStorage
(
DataLog
task
)
{
//找到最后一个任务
DataLog
dataLog
=
dataLogManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"barcode"
).
is
(
task
.
getBarcode
()).
and
(
"type"
).
is
(
OP
.
CHECKOUT
)).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"updateDate"
)));
if
(
dataLog
!=
null
)
{
log
.
info
(
dataLog
.
getBarcode
()
+
"找到上一个任务,对应的工单号为:"
+
dataLog
.
getStorageName
()
+
"任务状态为:"
+
dataLog
.
getStatus
()
+
",上次出库的任务数量为:"
+
dataLog
.
getNum
());
if
(
dataLog
.
isCheckOutTask
()
&&
dataLog
.
isFinished
())
{
String
sourceId
=
dataLog
.
getSourceId
();
if
(
StringUtils
.
isNotEmpty
(
sourceId
))
{
//开始保存任务
String
sourceName
=
dataLog
.
getSourceName
();
ReturnStorage
returnStorage
=
new
ReturnStorage
(
sourceName
,
dataLog
.
getPartNumber
()
,
task
.
getBarcode
()
,
dataLog
.
getAppendData
(
"feederInfo"
)
,
dataLog
.
getNum
()
,
dataLog
.
getNum
()
-
task
.
getNum
()
,
task
.
getNum
()
);
returnStorageDao
.
save
(
returnStorage
);
}
}
}
}
}
}
}
src/main/java/com/neotel/smfcore/custom/Jkem21481/util/StorageExportUtil.java
查看文件 @
65d01ef
...
...
@@ -283,12 +283,15 @@ public class StorageExportUtil {
List
<
StorageExportOutDetail
>
detailList
=
export
.
getDetailList
();
if
(
detailList
!=
null
&&
!
detailList
.
isEmpty
())
{
for
(
StorageExportOutDetail
detail
:
detailList
)
{
if
(
detail
.
getBarcode
().
equals
(
barcodeStr
)){
String
barcode
=
detail
.
getBarcode
();
if
(
StringUtils
.
isNotEmpty
(
barcode
))
{
if
(
barcode
.
equals
(
barcodeStr
)){
return
detail
;
}
}
}
}
}
return
null
;
}
...
...
src/main/resources/messages.properties
查看文件 @
65d01ef
...
...
@@ -400,3 +400,6 @@ smfcore.order.outLet=\u51FA\u6599\u53E3
smfcore.umConfig
=
\u
51FA
\u6599\u
53E3
\u
914D
\u
7F6E
smf.barcode.cannotPutInLine
=
\u
4E0A
\u
4E00
\u
76D8
\u7684\u6599\u
76D8
\u
4E3A[{0}],
\u
72B6
\u6001\u
4E3A[{1}],
\u
5BF9
\u
5E94
\u7684
feeder
\u
4E3A[{2}],
\u
4E0D
\u5141\u
8BB8
\u
653E
\u5230\u
76AE
\u
5E26
\u
7EBF
\u
4E0A
smfcore.order.noInventory
=
\u
662F
\u5426\u
65E0
\u
5E93
\u
5B58
smfcore.order.quantityBeforeIssuance
=
\u
51FA
\u
5E93
\u
524D
\u6570\u
91CF
smfcore.order.quantityIssued
=
\u
51FA
\u
5E93
\u6570\u
91CF
smfcore.order.quantityAfterIssuance
=
\u
56DE
\u
5E93
\u
540E
\u6570\u
91CF
src/main/resources/messages_en_US.properties
查看文件 @
65d01ef
...
...
@@ -391,3 +391,6 @@ smfcore.order.outLet=outLet
smfcore.umConfig
=
Outlet Configuration
smf.barcode.cannotPutInLine
=
smf.barcode.cannotPutInLine = The previous tray is [{0}], its status is [{1}], and the corresponding feeder is [{2}]. It is not allowed to be placed on the conveyor line.
smfcore.order.noInventory
=
Is Inventory Unavailable
smfcore.order.quantityBeforeIssuance
=
Pre-issuance quantity
smfcore.order.quantityIssued
=
Issued quantity
smfcore.order.quantityAfterIssuance
=
Remaining quantity after issuance
\ No newline at end of file
src/main/resources/messages_ja_JP.properties
查看文件 @
65d01ef
...
...
@@ -387,3 +387,6 @@ smfcore.order.outLet=\u306F\u3044\u3057\u3085\u3064\u3053\u3046
smfcore.umConfig
=
\u6392\u
51FA
\u
53E3
\u
306E
\u
914D
\u
7F6E
smf.barcode.cannotPutInLine
=
\u
524D
\u
306E
\u
30C8
\u
30EC
\u
30A4
\u
306F[{0}]
\u3067\u3001\u
30B9
\u
30C6
\u
30FC
\u
30BF
\u
30B9
\u
306F[{1}]
\u3067\u3001\u
5BFE
\u
5FDC
\u3059\u
308B
\u
30D5
\u
30A3
\u
30FC
\u
30C0
\u
30FC
\u
306F[{2}]
\u3067\u3059\u3002\u
30B3
\u
30F3
\u
30D9
\u
30E4
\u
30FC
\u
30E9
\u
30A4
\u
30F3
\u
306B
\u
8A2D
\u
7F6E
\u3059\u
308B
\u3053\u3068\u
306F
\u
8A31
\u
53EF
\u3055\u
308C
\u3066\u3044\u
307E
\u
305B
\u3093
smfcore.order.noInventory
=
\u5728\u
5EAB
\u
306A
\u3057\u
304B
smfcore.order.quantityBeforeIssuance
=
\u
51FA
\u
5EAB
\u
524D
\u
306E
\u6570\u
91CF
smfcore.order.quantityIssued
=
\u
51FA
\u
5EAB
\u6570\u
91CF
smfcore.order.quantityAfterIssuance
=
\u
51FA
\u
5EAB
\u
5F8C
\u
306E
\u6570\u
91CF
\ No newline at end of file
src/main/resources/messages_zh_CN.properties
查看文件 @
65d01ef
...
...
@@ -387,3 +387,6 @@ smfcore.order.outLet=\u51FA\u6599\u53E3
smfcore.umConfig
=
\u
51FA
\u6599\u
53E3
\u
914D
\u
7F6E
smf.barcode.cannotPutInLine
=
\u
4E0A
\u
4E00
\u
76D8
\u7684\u6599\u
76D8
\u
4E3A[{0}],
\u
72B6
\u6001\u
4E3A[{1}],
\u
5BF9
\u
5E94
\u7684
feeder
\u
4E3A[{2}],
\u
4E0D
\u5141\u
8BB8
\u
653E
\u5230\u
76AE
\u
5E26
\u
7EBF
\u
4E0A
smfcore.order.noInventory
=
\u
662F
\u5426\u
65E0
\u
5E93
\u
5B58
smfcore.order.quantityBeforeIssuance
=
\u
51FA
\u
5E93
\u
524D
\u6570\u
91CF
smfcore.order.quantityIssued
=
\u
51FA
\u
5E93
\u6570\u
91CF
smfcore.order.quantityAfterIssuance
=
\u
56DE
\u
5E93
\u
540E
\u6570\u
91CF
\ No newline at end of file
src/main/resources/messages_zh_TW.properties
查看文件 @
65d01ef
...
...
@@ -387,3 +387,6 @@ smfcore.order.outLet=\u51FA\u6599\u53E3
smfcore.umConfig
=
\u
51FA
\u6599\u
53E3
\u
914D
\u
7F6E
smf.barcode.cannotPutInLine
=
\u
4E0A
\u
4E00
\u
76E4
\u7684\u6599\u
76E4
\u
70BA[{0}]
\u
FF0C
\u
72C0
\u
614B
\u
70BA[{1}]
\u
FF0C
\u
5C0D
\u
61C9
\u7684
feeder
\u
70BA[{2}]
\u
FF0C
\u
4E0D
\u5141\u
8A31
\u
653E
\u5230\u
76AE
\u
5E36
\u
7DDA
\u
4E0A
smfcore.order.noInventory
=
\u
662F
\u5426\u7121\u
5EAB
\u
5B58
smfcore.order.quantityBeforeIssuance
=
\u
51FA
\u
5EAB
\u
524D
\u6578\u
91CF
smfcore.order.quantityIssued
=
\u
51FA
\u
5EAB
\u6578\u
91CF
smfcore.order.quantityAfterIssuance
=
\u
56DE
\u
5EAB
\u
5F8C
\u6578\u
91CF
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论