Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ee164710
由
LN
编写于
2023-08-22 10:22:41 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加dispatch接口
1 个父辈
6dbd7ddf
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
170 行增加
和
0 行删除
src/main/java/com/neotel/smfcore/core/order/listener/DefaultOrderFileListener.java
src/main/java/com/neotel/smfcore/core/order/listener/IOrderFileListener.java
src/main/java/com/neotel/smfcore/core/order/util/OrderFileWatch.java
src/main/java/com/neotel/smfcore/custom/micron1053/task/MicronDispatchController.java
src/main/java/com/neotel/smfcore/custom/micron1053/task/bean/DispatchItemMapper.java
src/main/java/com/neotel/smfcore/custom/micron1053/task/bean/dto/DispatchItemDto.java
src/main/java/com/neotel/smfcore/core/order/listener/DefaultOrderFileListener.java
查看文件 @
ee16471
...
...
@@ -14,6 +14,8 @@ import com.neotel.smfcore.core.system.bean.OrderSetting;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.util.Strings
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.io.File
;
...
...
@@ -100,6 +102,82 @@ public class DefaultOrderFileListener implements IOrderFileListener {
}
@Override
public
boolean
handleOrderFile
(
File
orderFile
,
String
mode
,
String
reason
)
{
String
fileName
=
orderFile
.
getName
();
//String backupFileName = fileName +"_" + System.currentTimeMillis();
//看数据库是否已有此工单
// if(!fileName.endsWith(".process") && fileName.endsWith("_result.txt")){
//
// }
if
(
isFileType
(
fileName
,
"csv"
)
||
isFileType
(
fileName
,
"xlsx"
))
{
LiteOrder
fileNameOrder
=
liteOrderManager
.
findBySource
(
fileName
);
if
(
fileNameOrder
==
null
)
{
try
{
Map
<
String
,
List
<
LiteOrderItem
>>
itemMap
=
null
;
if
(
isFileType
(
fileName
,
"csv"
))
{
itemMap
=
readCsvFile
(
fileName
,
orderFile
.
getAbsolutePath
());
}
else
if
(
isFileType
(
fileName
,
"xlsx"
))
{
itemMap
=
readExcelFile
(
fileName
,
orderFile
.
getAbsolutePath
());
}
//新增为一个工单
String
orderName
=
reason
;
if
(
ObjectUtil
.
isEmpty
(
reason
))
{
List
<
LiteOrder
>
orders
=
liteOrderManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"mode"
).
is
(
mode
)));
orderName
=
mode
+
(
orders
.
size
()
+
1
);
}
LiteOrder
dbOrder
=
liteOrderManager
.
findByOrderNo
(
orderName
);
if
(
dbOrder
!=
null
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
//把名字改为带时间的
String
newOrderNo
=
orderName
+
"-"
+
format
.
format
(
new
Date
());
dbOrder
=
liteOrderManager
.
findByOrderNo
(
newOrderNo
);
if
(
dbOrder
==
null
)
{
}
else
{
log
.
info
(
"watchOrderDir,mode=["
+
mode
+
"],reason=["
+
reason
+
"]:数据库中已存在工单号为["
+
orderName
+
"],忽略文件:"
+
orderFile
.
getAbsolutePath
());
//resultFile = new File(localDir+File.separator + "error",backupFileName);
return
false
;
}
}
List
<
LiteOrderItem
>
allItems
=
new
ArrayList
<>();
if
(
itemMap
!=
null
&&
itemMap
.
size
()
>
0
)
{
for
(
String
so
:
itemMap
.
keySet
())
{
List
<
LiteOrderItem
>
liteOrderItems
=
itemMap
.
get
(
so
);
if
(
liteOrderItems
.
size
()
<=
0
)
{
continue
;
}
allItems
.
addAll
(
liteOrderItems
);
}
}
if
(
allItems
.
size
()
<=
0
)
{
return
false
;
}
LiteOrder
liteOrder
=
new
LiteOrder
(
orderName
,
allItems
);
liteOrder
.
setMode
(
mode
);
log
.
info
(
"watchOrderDir,mode=["
+
mode
+
"],reason=["
+
reason
+
"]:新增加订单:"
+
liteOrder
.
getOrderNo
()
+
",共"
+
allItems
.
size
()
+
"条工单详情"
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
"read order from file ["
+
orderFile
.
getAbsolutePath
()
+
"] :"
,
e
);
}
}
}
return
false
;
}
public
Map
<
String
,
List
<
LiteOrderItem
>>
readCsvFile
(
String
fileName
,
String
fileURL
)
{
CsvReader
csvRead
=
null
;
try
{
...
...
src/main/java/com/neotel/smfcore/core/order/listener/IOrderFileListener.java
查看文件 @
ee16471
...
...
@@ -9,4 +9,6 @@ public interface IOrderFileListener {
boolean
handleOrderFile
(
File
orderFile
);
boolean
handleOrderFile
(
File
orderFile
,
String
mode
,
String
reason
);
}
src/main/java/com/neotel/smfcore/core/order/util/OrderFileWatch.java
查看文件 @
ee16471
...
...
@@ -126,7 +126,22 @@ public class OrderFileWatch {
return
false
;
}
/**
* 解析工单文件
* @param orderFile
* @return
*/
public
boolean
handleOrderFile
(
File
orderFile
,
String
mode
,
String
reason
){
log
.
info
(
"开始处理Order文件:"
+
orderFile
.
getAbsolutePath
());
for
(
IOrderFileListener
orderFileListener
:
orderFileListenerList
)
{
boolean
result
=
orderFileListener
.
handleOrderFile
(
orderFile
,
mode
,
reason
);
if
(
result
){
return
true
;
}
}
return
false
;
}
private
String
getLocalDir
(
String
orderDir
){
//String[] fileTypes=new String[]{"csv","xml","txt"};
...
...
src/main/java/com/neotel/smfcore/custom/micron1053/task/MicronDispatchController.java
查看文件 @
ee16471
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/custom/micron1053/task/bean/DispatchItemMapper.java
0 → 100644
查看文件 @
ee16471
package
com
.
neotel
.
smfcore
.
custom
.
micron1053
.
task
.
bean
;
import
com.neotel.smfcore.common.base.BaseMapper
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.custom.micron1053.task.bean.dto.DispatchItemDto
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
@Mapper
(
componentModel
=
"spring"
,
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
DispatchItemMapper
extends
BaseMapper
<
DispatchItemDto
,
LiteOrderItem
>
{
}
src/main/java/com/neotel/smfcore/custom/micron1053/task/bean/dto/DispatchItemDto.java
0 → 100644
查看文件 @
ee16471
package
com
.
neotel
.
smfcore
.
custom
.
micron1053
.
task
.
bean
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
DispatchItemDto
{
@ApiModelProperty
(
value
=
"ID"
)
private
String
id
;
@ApiModelProperty
(
"物料编号"
)
private
String
pn
;
@ApiModelProperty
(
"唯一码"
)
private
String
ri
;
@ApiModelProperty
(
"需求数量"
)
private
int
needNum
=
0
;
@ApiModelProperty
(
"需求料盘数"
)
private
int
needReelCount
=
0
;
@ApiModelProperty
(
"已出数量"
)
private
int
outNum
=
0
;
@ApiModelProperty
(
"已出盘数"
)
private
int
outReelCount
=
0
;
@ApiModelProperty
(
"订单信息"
)
private
String
orderNo
=
""
;
@ApiModelProperty
(
"站位信息"
)
private
String
feederInfo
=
""
;
/**
* 台车号
*/
@ApiModelProperty
(
"台车号"
)
private
String
tableNo
=
""
;
/**
* 面别
*/
@ApiModelProperty
(
"面别"
)
private
String
side
=
""
;
@ApiModelProperty
(
"制造商物料编号"
)
private
String
mpn
=
""
;
/**
* 库存数量
*/
private
int
inventoryQty
=
0
;
/**
* 库存盘数
*/
private
int
inventoryReelCount
=
0
;
@ApiModelProperty
(
"自定义的附加字段,key=字段名,value=值"
)
public
Map
<
String
,
String
>
appendData
=
new
HashMap
<>();
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论