Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
smalltools
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王家辉
smalltools
Commits
130d4942
Commit
130d4942
authored
Mar 20, 2019
by
张洪涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
改进批量推单的接口
parent
552d384a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
92 additions
and
22 deletions
+92
-22
pom.xml
+7
-0
src/main/java/com/freemud/Service/Impl/OrdersServiceImpl.java
+84
-21
src/main/resources/application-dev.properties
+1
-1
No files found.
pom.xml
View file @
130d4942
...
...
@@ -130,6 +130,13 @@
<artifactId>
commons-beanutils
</artifactId>
<version>
1.7.0
</version>
</dependency>
<dependency>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
2.4
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/freemud/Service/Impl/OrdersServiceImpl.java
View file @
130d4942
...
...
@@ -18,22 +18,28 @@ import com.freemud.Constant.ResponseCode;
import
com.freemud.Mapper.OrderProductMapper
;
import
com.freemud.Service.OrdersService
;
import
com.freemud.dto.BaseResponse
;
import
com.freemud.dto.OrderInfo
;
import
com.freemud.dto.OrderProductDTO
;
import
com.freemud.utils.ExcelOperationUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.tomcat.util.http.fileupload.disk.DiskFileItem
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.io.FileSystemResource
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.client.RestClientException
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.commons.CommonsMultipartFile
;
import
java.io.File
;
import
java.
util.ArrayList
;
import
java.util.
List
;
import
java.
io.IOException
;
import
java.util.
*
;
@Service
@Slf4j
...
...
@@ -101,52 +107,109 @@ public class OrdersServiceImpl implements OrdersService {
@Override
public
BaseResponse
batchPush
(
MultipartFile
file
,
String
batchNumber
)
{
log
.
info
(
"请求参数:batchNumber
------------------>{}"
,
batchNumber
);
log
.
info
(
"请求参数:batchNumber
:{}, Excel:{}"
,
batchNumber
,
file
.
getOriginalFilename
()
);
//导入Excel文件
BaseResponse
importResult
=
remoteRequest
(
batchNumber
,
"import"
,
file
);
log
.
info
(
"导入Excel结果----------------->{}"
,
JSON
.
toJSONString
(
importResult
));
if
(
importResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
)){
log
.
info
(
"导入Excel结果:{}"
,
JSON
.
toJSONString
(
importResult
));
//推单过程
BaseResponse
getOrderHandleResult
=
new
BaseResponse
();
if
(
importResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
.
getCode
())){
//处理对账的状态(初始化)
BaseResponse
handleOrderExStatusResult
=
remoteRequest
(
batchNumber
,
"handleOrderExStatus"
,
null
);
log
.
info
(
"
》》》》》》》》》》》》》》》》
处理对账的状态:{}"
,
handleOrderExStatusResult
);
if
(
handleOrderExStatusResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
)){
BaseResponse
handleOrderExStatusResult
=
remoteRequest
(
batchNumber
,
"handleOrderExStatus"
);
log
.
info
(
"处理对账的状态:{}"
,
handleOrderExStatusResult
);
if
(
handleOrderExStatusResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
.
getCode
()
)){
//推送订单
BaseResponse
pushOrderResult
=
remoteRequest
(
batchNumber
,
"pushOrder"
,
null
);
log
.
info
(
"
》》》》》》》》》》》》》》》》
推送订单的结果:{}"
,
pushOrderResult
);
if
(
pushOrderResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
)){
log
.
info
(
"推送订单的结果:{}"
,
pushOrderResult
);
if
(
pushOrderResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
.
getCode
()
)){
//获取订单的处理结果
BaseResponse
getOrderHandleResult
=
remoteRequest
(
batchNumber
,
"getOrderHandleResult"
,
null
);
log
.
info
(
"》》》》》》》》》》》》》》》》获取订单的处理结果:{}"
,
getOrderHandleResult
);
return
getOrderHandleResult
;
getOrderHandleResult
=
remoteRequest
(
batchNumber
,
"getOrderHandleResult"
,
null
);
log
.
info
(
"获取订单的处理结果:{}"
,
getOrderHandleResult
);
}
}
}
return
new
BaseResponse
(
ResponseCode
.
RESPONSE_CODE_102
.
getCode
(),
ResponseCode
.
RESPONSE_CODE_102
.
getMsg
(),
"1"
,
"推送失败,批次号不能重复"
);
}
//检验过程
if
(
getOrderHandleResult
.
getCode
().
equals
(
ResponseCode
.
RESPONSE_CODE_100
.
getCode
())){
List
<
LinkedHashMap
>
orderInfos
=
(
List
<
LinkedHashMap
>)
getOrderHandleResult
.
getResult
();
List
<
OrderInfo
>
orderInfoList
=
new
ArrayList
<>();
orderInfos
.
stream
().
forEach
(
linkedHashMap
->
{
OrderInfo
orderInfo
=
new
OrderInfo
();
orderInfo
.
setOrderId
(
linkedHashMap
.
get
(
"orderId"
).
toString
());
orderInfo
.
setPushResult
(
linkedHashMap
.
get
(
"pushResult"
).
toString
());
orderInfo
.
setResponseData
(
linkedHashMap
.
get
(
"responseData"
).
toString
());
orderInfoList
.
add
(
orderInfo
);
}
);
}
return
getOrderHandleResult
;
}
/**
*
处理对账的状态(初始化)
*
请求远程接口
* @param batchNumber
* @return
*/
private
BaseResponse
remoteRequest
(
String
batchNumber
,
String
urll
,
MultipartFile
f
ile
)
{
private
BaseResponse
remoteRequest
(
String
batchNumber
,
String
urll
,
MultipartFile
multipartF
ile
)
{
String
url
=
RequestUrl
+
"/orderEx/"
+
urll
;
log
.
info
(
"请求的Url:{}"
,
url
);
MultiValueMap
<
String
,
Object
>
param
=
new
LinkedMultiValueMap
<>();
if
(
file
!=
null
){
param
.
add
(
"file"
,
file
);
if
(
multipartFile
!=
null
){
//multipartFile-->Filr-->FileSystemResource
File
file
=
new
File
(
FileDir
);
try
{
FileUtils
.
copyInputStreamToFile
(
multipartFile
.
getInputStream
(),
file
);
FileSystemResource
tempFile
=
new
FileSystemResource
(
file
);
param
.
add
(
"file"
,
tempFile
);
}
catch
(
IOException
e
)
{
log
.
error
(
"文件操作出错:{}"
,
e
.
getMessage
());
return
new
BaseResponse
(
ResponseCode
.
RESPONSE_CODE_102
.
getCode
(),
ResponseCode
.
RESPONSE_CODE_102
.
getMsg
(),
"1"
,
"文件操作出错"
);
}
}
param
.
add
(
"batchNumber"
,
batchNumber
);
log
.
info
(
"{}接口请求参数
》》》》》》》》
{}"
,
urll
,
param
);
log
.
info
(
"{}接口请求参数
:
{}"
,
urll
,
param
);
BaseResponse
importResult
=
new
BaseResponse
();
try
{
importResult
.
setCode
(
"100"
);
importResult
=
restTemplate
.
postForObject
(
url
,
param
,
BaseResponse
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"调用{}接口出错
》》》》》》》》》》
{}"
,
urll
,
e
.
fillInStackTrace
());
log
.
error
(
"调用{}接口出错
:
{}"
,
urll
,
e
.
fillInStackTrace
());
importResult
=
new
BaseResponse
(
ResponseCode
.
RESPONSE_CODE_102
.
getCode
(),
ResponseCode
.
RESPONSE_CODE_102
.
getMsg
(),
"1"
,
"调用"
+
urll
+
"接口出错"
);
}
return
importResult
;
}
private
BaseResponse
remoteRequest
(
String
batchNumber
,
String
urll
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
"Accept"
,
"application/json"
);
headers
.
add
(
"Content-Type"
,
"application/json;charset=UTF-8"
);
headers
.
add
(
"Content-Encoding"
,
"UTF-8"
);
String
url
=
RequestUrl
+
"/orderEx/"
+
urll
;
log
.
info
(
"请求的Url:{}"
,
url
);
//组装请求参数
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"batchNumber"
,
batchNumber
);
log
.
info
(
"{}接口请求参数:{}"
,
urll
,
param
);
String
dataStr
=
JSON
.
toJSONString
(
param
);
log
.
info
(
"转化后的请求参数:{}"
,
dataStr
);
HttpEntity
<
String
>
httpEntity
=
new
HttpEntity
<>(
dataStr
,
headers
);
BaseResponse
importResult
=
new
BaseResponse
();
try
{
importResult
=
restTemplate
.
postForObject
(
url
,
httpEntity
,
BaseResponse
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"调用{}接口出错:{}"
,
urll
,
e
.
fillInStackTrace
());
importResult
=
new
BaseResponse
(
ResponseCode
.
RESPONSE_CODE_102
.
getCode
(),
ResponseCode
.
RESPONSE_CODE_102
.
getMsg
(),
"1"
,
"调用"
+
urll
+
"接口出错"
);
}
return
importResult
;
}
...
...
src/main/resources/application-dev.properties
View file @
130d4942
...
...
@@ -18,7 +18,7 @@ spring.datasource.druid.testOnBorrow=true
mybatis.mapper-locations
=
classpath:Mapper/*.xml
order.RequestUrl
=
http://1
72.16.15.179:3017
order.RequestUrl
=
http://1
27.0.0.1:8080
order.FileDir
=
D://test.xls
order.returnCode
=
100
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment