Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 46d38152
由
LN
编写于
2021-09-23 16:56:16 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
工单上传修改
1 个父辈
39699f8c
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
62 行增加
和
16 行删除
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
46d3815
...
...
@@ -8,10 +8,7 @@ import com.neotel.smfcore.common.bean.PageData;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.csv.CsvReader
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.*
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.rest.bean.dto.OrderDto
;
...
...
@@ -54,9 +51,7 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.*
;
@Slf4j
...
...
@@ -107,29 +102,48 @@ public class OrderController {
}
File
folder
=
new
File
(
properties
.
getPath
(),
"pos"
);
File
localFile
=
FileUtil
.
upload
(
orderFile
,
folder
.
getAbsolutePath
());
List
<
LiteOrderItem
>
liteOrderItems
=
handleOrderCsv
(
localFile
.
getAbsolutePath
());
Map
<
String
,
List
<
LiteOrderItem
>>
itemMap
=
handleOrderCsv
(
localFile
.
getName
(),
localFile
.
getAbsolutePath
());
if
(
liteOrderItems
==
null
||
liteOrderItems
.
size
()
<=
0
)
{
if
(
itemMap
==
null
||
itemMap
.
size
()
<=
0
)
{
throw
new
ValidateException
(
"smfcore.fileError"
,
"文件解析失败"
);
}
for
(
String
so:
itemMap
.
keySet
()
)
{
List
<
LiteOrderItem
>
liteOrderItems
=
itemMap
.
get
(
so
);
if
(
liteOrderItems
.
size
()
<=
0
)
{
continue
;
}
LiteOrder
liteOrder
=
new
LiteOrder
(
localFile
.
getName
(),
liteOrderItems
);
int
type
=
2
;
for
(
LiteOrderItem
item
:
liteOrderItems
)
{
if
(!
StringUtils
.
isEmpty
(
item
.
getPn
())
&&
(
StringUtils
.
isEmpty
(
item
.
getRi
())))
{
type
=
1
;
break
;
}
}
LiteOrder
liteOrder
=
new
LiteOrder
(
so
,
liteOrderItems
);
liteOrder
.
setType
(
type
);
liteOrder
.
setSource
(
localFile
.
getAbsolutePath
());
liteOrder
.
setStatus
(
LITEORDER_STATUS
.
NEW
);
LiteOrder
dbOrder
=
liteOrderManager
.
findByOrderNo
(
liteOrder
.
getOrderNo
());
if
(
dbOrder
==
null
)
{
log
.
info
(
"新增加订单:"
+
liteOrder
.
getOrderNo
()
);
log
.
info
(
"新增加订单:"
+
liteOrder
.
getOrderNo
()
+
",共"
+
liteOrderItems
.
size
()
+
"条工单详情"
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
// TaskService.liteOrderMap.put(liteOrder.getOrderNo(), liteOrder);
}
else
{
log
.
info
(
"数据库中已存在工单号为["
+
liteOrder
.
getOrderNo
()
+
"],忽略文件:"
+
localFile
.
getAbsolutePath
());
throw
new
ValidateException
(
"smfcode.valueAlreadyExist"
,
"{0}[{1}]已存在"
,
new
String
[]{
"orderNo"
,
liteOrder
.
getOrderNo
()});
//
throw new ValidateException("smfcode.valueAlreadyExist", "{0}[{1}]已存在", new String[]{"orderNo", liteOrder.getOrderNo()});
// throw new ValidateException("工单号[" + liteOrder.getOrderNo() + "]已存在");
}
}
return
ResultBean
.
newOkResult
(
"工单上传成功"
);
}
...
...
@@ -178,16 +192,18 @@ public class OrderController {
}
protected
List
<
LiteOrderItem
>
handleOrderCsv
(
String
fileURL
)
{
protected
Map
<
String
,
List
<
LiteOrderItem
>>
handleOrderCsv
(
String
fileName
,
String
fileURL
)
{
try
{
log
.
info
(
"开始更解析上传的工单"
);
Map
<
String
,
List
<
LiteOrderItem
>>
itemMap
=
new
HashMap
<>();
List
<
LiteOrderItem
>
items
=
Lists
.
newArrayList
();
CsvReader
csvRead
=
CsvReader
.
newReader
(
fileURL
,
"PN"
,
"PN"
);
int
partNumberIndex
=
csvRead
.
getIndex
(
"PN"
,
"PN"
);
int
qtyIndex
=
csvRead
.
getIndex
(
"NUM"
,
"QTY"
);
int
feederIndex
=
csvRead
.
getIndex
(
"FEEDER"
,
"FEEDER"
);
int
riIndex
=
csvRead
.
getIndex
(
"RI"
,
"RI"
);
int
soIndex
=
csvRead
.
getIndex
(
"SO"
,
"SO"
);
int
row
=
1
;
int
newRowCount
=
0
;
...
...
@@ -215,14 +231,29 @@ public class OrderController {
if
(
feederIndex
!=
-
1
)
{
feeder
=
lineValues
[
feederIndex
];
}
String
ri
=
""
;
String
so
=
fileName
;
if
(
riIndex
!=-
1
){
ri
=
lineValues
[
riIndex
];
}
if
(
soIndex
!=-
1
){
so
=
lineValues
[
soIndex
];
}
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setPn
(
partNumber
);
item
.
setNeedNum
(
num
);
item
.
setFeederInfo
(
feeder
);
item
.
setRi
(
ri
);
if
(!
itemMap
.
containsKey
(
so
)){
itemMap
.
put
(
so
,
new
ArrayList
<
LiteOrderItem
>());
}
itemMap
.
get
(
so
).
add
(
item
);
items
.
add
(
item
);
}
}
return
item
s
;
return
item
Map
;
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析上传的工单出错:"
+
ex
.
toString
());
}
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
46d3815
...
...
@@ -20,6 +20,7 @@ public class LiteOrder extends BasePo implements Serializable {
public
LiteOrder
(
String
orderNo
,
List
<
LiteOrderItem
>
orderItems
)
{
this
.
orderItems
=
orderItems
;
this
.
orderNo
=
orderNo
;
this
.
type
=
1
;
}
/**
...
...
@@ -63,6 +64,11 @@ public class LiteOrder extends BasePo implements Serializable {
private
float
orderTimes
=
1
f
;
/**
* 工单类型,默认1=PN,2=RI
*/
private
int
type
=
1
;
/**
* 订单的详细信息
*/
@Transient
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
查看文件 @
46d3815
...
...
@@ -9,8 +9,17 @@ import java.io.Serializable;
@Data
@Document
public
class
LiteOrderItem
extends
BasePo
implements
Serializable
{
//物料编号
/**
* 物料编号
*/
private
String
pn
;
/**
* 唯一码
*/
private
String
ri
;
//需求数量
private
int
needNum
=
0
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论