Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
SoSsDome
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
李炎
SoSsDome
Commits
4f1ebad1
提交
4f1ebad1
authored
12月 27, 2021
作者:
李炎
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
客户
上级
564fb4de
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
630 行增加
和
113 行删除
+630
-113
SynTimed.java
src/main/java/com/santos/iost/TimeTask/SynTimed.java
+2
-1
WebApi.java
src/main/java/com/santos/iost/controller/WebApi.java
+34
-9
SoSsDao.java
src/main/java/com/santos/iost/dao/SoSsDao.java
+9
-1
SoSsCustomerService.java
...ain/java/com/santos/iost/service/SoSsCustomerService.java
+10
-0
SoSsInventoryService.java
...in/java/com/santos/iost/service/SoSsInventoryService.java
+1
-1
SoSsReceiptService.java
...main/java/com/santos/iost/service/SoSsReceiptService.java
+9
-0
SoSsSalesInvoiceService.java
...java/com/santos/iost/service/SoSsSalesInvoiceService.java
+1
-1
SoSsCustomerServiceImpl.java
...com/santos/iost/service/impl/SoSsCustomerServiceImpl.java
+73
-0
SoSsReceiptServiceImpl.java
.../com/santos/iost/service/impl/SoSsReceiptServiceImpl.java
+203
-0
SoSsSalesDeliveryServiceImpl.java
...antos/iost/service/impl/SoSsSalesDeliveryServiceImpl.java
+1
-1
SoSsSalesInvoiceImpl.java
...va/com/santos/iost/service/impl/SoSsSalesInvoiceImpl.java
+0
-42
SoSsSalesInvoiceServiceImpl.java
...santos/iost/service/impl/SoSsSalesInvoiceServiceImpl.java
+210
-0
SpSsSalesOrderServiceImpl.java
...m/santos/iost/service/impl/SpSsSalesOrderServiceImpl.java
+3
-3
SoSsCreateVo.java
src/main/java/com/santos/iost/vo/SoSsCreateVo.java
+20
-0
JintaiDomeApplicationTests.java
...test/java/com/santos/iost/JintaiDomeApplicationTests.java
+54
-54
没有找到文件。
src/main/java/com/santos/iost/TimeTask/SynTimed.java
浏览文件 @
4f1ebad1
...
...
@@ -22,7 +22,8 @@ public class SynTimed {
/*自动登录定时任务40分钟执行一次*/
@Scheduled
(
fixedDelay
=
1000
*
60
*
30
)
public
void
timed
()
throws
IOException
,
ParseException
{
public
void
timed
()
throws
IOException
{
System
.
out
.
println
(
"更新token"
);
soSsDao
.
init
();
}
...
...
src/main/java/com/santos/iost/controller/WebApi.java
浏览文件 @
4f1ebad1
...
...
@@ -8,11 +8,10 @@ import com.santos.iost.Exception.SoSsRequestException;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.dto.SoSsResponseDate
;
import
com.santos.iost.service.SoSsMaterialService
;
import
com.santos.iost.service.SoSsSalesDeliveryService
;
import
com.santos.iost.service.SpSsSalesOrderService
;
import
com.santos.iost.service.*
;
import
com.santos.iost.utils.HttpUtil
;
import
com.santos.iost.utils.StringUtil
;
import
com.santos.iost.vo.SoSsCreateVo
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -49,6 +48,31 @@ public class WebApi {
SpSsSalesOrderService
salesOrderService
;
@Autowired
SoSsSalesDeliveryService
salesDeliveryService
;
@Autowired
SoSsSalesInvoiceService
salesInvoiceService
;
@Autowired
SoSsReceiptService
receiptService
;
@Autowired
SoSsCustomerService
customerService
;
@ApiOperation
(
value
=
"查询通用接口"
,
notes
=
"查询通用接口"
)
@PostMapping
(
value
=
"/create"
)
public
Result
<?>
SetData
(
SoSsCreateVo
soSsCreateVo
)
throws
Exception
{
Result
result
=
new
Result
();
try
{
if
(
null
==
soSsCreateVo
.
getObjAPIName
())
{
return
Result
.
fail
(
"操作失败"
,
"objAPIName不可为空"
,
"500"
);
}
else
if
(
soSsCreateVo
.
getObjAPIName
().
equals
(
customerService
.
apiName
))
{
result
=
customerService
.
setData
(
soSsCreateVo
);
//产品
}
else
{
return
Result
.
fail
(
"操作失败"
,
soSsCreateVo
.
getObjAPIName
()
+
"不存在"
,
"406"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@ApiOperation
(
value
=
"查询通用接口"
,
notes
=
"查询通用接口"
)
@GetMapping
(
value
=
"/queryMasterBatch"
)
...
...
@@ -58,22 +82,23 @@ public class WebApi {
try
{
if
(
null
==
soSsRequestVo
.
getObjAPIName
())
{
return
Result
.
fail
(
"操作失败"
,
"objAPIName不可为空"
,
"500"
);
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
SoSsM
aterialService
.
apiName
))
{
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
m
aterialService
.
apiName
))
{
result
=
materialService
.
getData
(
soSsRequestVo
);
//产品
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
SpSsS
alesOrderService
.
apiName
))
{
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
s
alesOrderService
.
apiName
))
{
result
=
salesOrderService
.
getData
(
soSsRequestVo
);
//订单
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
SoSsS
alesDeliveryService
.
apiName
))
{
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
s
alesDeliveryService
.
apiName
))
{
result
=
salesDeliveryService
.
getData
(
soSsRequestVo
);
//发货单
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
salesInvoiceService
.
apiName
))
{
result
=
salesInvoiceService
.
getData
(
soSsRequestVo
);
//开票
}
else
if
(
soSsRequestVo
.
getObjAPIName
().
equals
(
receiptService
.
apiName
))
{
result
=
receiptService
.
getData
(
soSsRequestVo
);
//回款
}
else
{
return
Result
.
fail
(
"操作失败"
,
soSsRequestVo
.
getObjAPIName
()
+
"不存在"
,
"406"
);
}
}
finally
{
}
return
result
;
}
//检查ERM日期是否可用作过滤条件
...
...
src/main/java/com/santos/iost/dao/SoSsDao.java
浏览文件 @
4f1ebad1
...
...
@@ -11,7 +11,7 @@ import java.util.Map;
@Component
public
class
SoSsDao
{
public
String
getTokenUrl
=
"http://123.58.109.39:86/K3API/Token/Create?authorityCode=6
06d25b51be50949e768241934225bc05bfd6db0bae63e82
"
;
public
String
getTokenUrl
=
"http://123.58.109.39:86/K3API/Token/Create?authorityCode=6
35e8cd049f1407db2b25b97738d02c7d686307e003c6213
"
;
String
requestUrl
=
"http://123.58.109.39:86"
;
public
static
String
token
;
...
...
@@ -39,6 +39,14 @@ public class SoSsDao {
// System.out.println("================response=============="+post+"=================response===================");
return
post
;
}
//请求主体
public
String
setK3Api
(
String
getMaterialUrl
,
String
paramsMap
)
throws
Exception
{
System
.
out
.
println
(
"====head====="
+
paramsMap
+
"====head===="
);
String
post
=
HttpUtil
.
post
(
requestUrl
+
getMaterialUrl
+
"?token="
+
token
,
paramsMap
,
hreader
);
System
.
out
.
println
(
token
);
// System.out.println("================response=============="+post+"=================response===================");
return
post
;
}
//请求主体
public
String
requestK3ApiDetail
(
String
getMaterialUrl
,
String
paramsMap
)
throws
Exception
{
...
...
src/main/java/com/santos/iost/service/SoSsCustomerService.java
0 → 100644
浏览文件 @
4f1ebad1
package
com
.
santos
.
iost
.
service
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.vo.SoSsCreateVo
;
import
com.santos.iost.vo.SoSsRequestVo
;
public
interface
SoSsCustomerService
{
String
apiName
=
"Customer"
;
public
Result
setData
(
SoSsCreateVo
soSsRequestVo
)
throws
Exception
;
}
src/main/java/com/santos/iost/service/SoSsInventoryService.java
浏览文件 @
4f1ebad1
...
...
@@ -4,7 +4,7 @@ import com.santos.iost.dto.Result;
import
com.santos.iost.vo.SoSsRequestVo
;
public
interface
SoSsInventoryService
{
String
apiName
=
"
Inventory
"
;
String
apiName
=
"
Bill1001004
"
;
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
);
}
src/main/java/com/santos/iost/service/SoSsReceiptService.java
0 → 100644
浏览文件 @
4f1ebad1
package
com
.
santos
.
iost
.
service
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.vo.SoSsRequestVo
;
public
interface
SoSsReceiptService
{
String
apiName
=
"Bill1000005"
;
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
);
}
src/main/java/com/santos/iost/service/SoSsSalesInvoice.java
→
src/main/java/com/santos/iost/service/SoSsSalesInvoice
Service
.java
浏览文件 @
4f1ebad1
...
...
@@ -3,7 +3,7 @@ package com.santos.iost.service;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.vo.SoSsRequestVo
;
public
interface
SoSsSalesInvoice
{
public
interface
SoSsSalesInvoice
Service
{
String
apiName
=
"Sales_Invoice_VAT"
;
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
);
}
src/main/java/com/santos/iost/service/impl/SoSsCustomerServiceImpl.java
0 → 100644
浏览文件 @
4f1ebad1
package
com
.
santos
.
iost
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.parser.Feature
;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.dto.SoSsResponseDate
;
import
com.santos.iost.service.SoSsCustomerService
;
import
com.santos.iost.utils.JsonUtil
;
import
com.santos.iost.vo.SoSsCreateVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
public
class
SoSsCustomerServiceImpl
implements
SoSsCustomerService
{
@Autowired
SoSsDao
soSsDao
;
String
Url
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
/**
* 请求字段
*/
String
FNumber
=
"FNumber"
;
//代码
String
FName
=
"FName"
;
//名称
String
FAddress
=
"FAddress"
;
//地址
String
FRegionID
=
"FRegionID"
;
//区域
String
FContact
=
"FContact"
;
//联系人
String
FPhone
=
"FPhone"
;
//联系人电话
String
Femployee
=
"Femployee"
;
//专营业务员
public
SoSsCustomerServiceImpl
()
{
this
.
Url
=
"/K3API/Customer/Save"
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
}
@Override
public
Result
setData
(
SoSsCreateVo
soSsRequestVo
)
throws
Exception
{
Map
params
=
new
HashMap
<>();
Map
<
Object
,
Object
>
Data
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
soSsRequestVo
.
getMasterFieldVal
();
Data
.
put
(
FNumber
,
masterFieldVal
.
get
(
"ERPNumber"
));
Data
.
put
(
FName
,
masterFieldVal
.
get
(
"customerName"
));
Data
.
put
(
FAddress
,
masterFieldVal
.
get
(
"detailedAddress"
));
Data
.
put
(
FRegionID
,
new
HashMap
(){{
put
(
"FID"
,
masterFieldVal
.
get
(
"customerLevel"
));}});
//二级结构
Data
.
put
(
FContact
,
masterFieldVal
.
get
(
"contacts"
));
Data
.
put
(
FPhone
,
masterFieldVal
.
get
(
"phone"
));
Data
.
put
(
Femployee
,
new
HashMap
(){{
put
(
"FNumber"
,
masterFieldVal
.
get
(
"personCharge"
));}});
//二级结构
params
.
put
(
"Data"
,
Data
);
String
s
=
soSsDao
.
setK3Api
(
Url
,
JsonUtil
.
Mapjson
(
params
));
SoSsResponseDate
soSsResponseDate
=
JSON
.
parseObject
(
s
,
SoSsResponseDate
.
class
,
Feature
.
OrderedField
);
Result
result
=
changeResponse
(
soSsResponseDate
);
//
return
result
;
}
/*转换*/
public
Result
changeResponse
(
SoSsResponseDate
soSsRequestVo
)
{
Map
<
Object
,
Object
>
map
=
new
HashMap
<>();
Result
result
=
new
Result
();
//将ERP格式变换为CRM格式
result
.
setMessage
(
soSsRequestVo
.
getMessage
());
result
.
setCode
(
soSsRequestVo
.
getStatusCode
());
result
.
setData
(
soSsRequestVo
.
getData
());
return
result
;
}
}
src/main/java/com/santos/iost/service/impl/SoSsReceiptServiceImpl.java
0 → 100644
浏览文件 @
4f1ebad1
package
com
.
santos
.
iost
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.parser.Feature
;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.dto.SoSsResponseDate
;
import
com.santos.iost.service.SoSsReceiptService
;
import
com.santos.iost.utils.JsonUtil
;
import
com.santos.iost.utils.StringUtil
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
net.sf.json.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
//回款
@Service
public
class
SoSsReceiptServiceImpl
implements
SoSsReceiptService
{
@Autowired
SoSsDao
soSsDao
;
String
Url
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String
includeDetailUrl
;
String
fields
;
//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String
FCustomer
=
"FCustomer"
;
//核算项目
String
FAmountFor
=
"FAmountFor"
;
//单据金额
String
FDate
=
"FDate"
;
//单据日期
String
FBillNo
=
"FBillNo"
;
String
FNumber
=
"FNumber"
;
/**
* K3金蝶方请求字段-明细字段
*/
String
FEntryOrderNo
=
"FEntryOrderNo"
;
//订单单号
String
FSettleAmountFor_3
=
"FSettleAmountFor_3"
;
//结算实收金额
public
SoSsReceiptServiceImpl
()
{
this
.
Url
=
"/K3API/Bill1000005/GetList"
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this
.
includeDetailUrl
=
"/K3API/Bill1000005/GetDetail"
;
this
.
fields
=
"Fcustomer,FAmountFor,FDate"
;
//需要查询出的字段
}
@Override
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
)
{
String
s
=
new
String
();
Map
map
=
changeGeta
(
soSsRequestVo
);
try
{
s
=
soSsDao
.
requestK3Api
(
Url
,
JsonUtil
.
Mapjson
(
map
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
SoSsResponseDate
soSsResponseDate
=
JSON
.
parseObject
(
s
,
SoSsResponseDate
.
class
,
Feature
.
OrderedField
);
//转换数据类型
Result
result
=
changeResponse
(
soSsResponseDate
,
soSsRequestVo
);
//转换返回的数据格式
return
result
;
}
/*转换请求参数*/
public
Map
changeGeta
(
SoSsRequestVo
soSsRequestVo
)
{
Map
paramsMap
=
new
HashMap
();
Map
Data
=
new
LinkedHashMap
();
Data
.
put
(
"Top"
,
soSsRequestVo
.
getLimit
());
//返回行数
Data
.
put
(
"PageSize"
,
soSsRequestVo
.
getLimit
());
//每页行数
Data
.
put
(
"PageIndex"
,
soSsRequestVo
.
getOffset
());
//第几页
if
(
checkFilter
(
soSsRequestVo
))
{
Data
.
put
(
"Filter"
,
setFilter
(
soSsRequestVo
));
//过滤条件
}
Data
.
put
(
"OrderBy"
,
"[FNumber] asc"
);
//排序规则
Data
.
put
(
"SelectPage"
,
"1"
);
//表体索引,文档默认为2
Data
.
put
(
"Fields"
,
fields
);
//查询字段
paramsMap
.
put
(
"Data"
,
Data
);
return
paramsMap
;
}
//检查ERM日期是否可用作过滤条件
boolean
checkFilter
(
SoSsRequestVo
soSsRequestVo
)
{
if
(
null
==
soSsRequestVo
.
getStartTime
()
&&
null
==
soSsRequestVo
.
getEndTime
())
{
return
false
;
}
return
true
;
}
//配置过滤条件
String
setFilter
(
SoSsRequestVo
soSsRequestVo
)
{
String
startTime
=
StringUtil
.
TimeStamp2Date
(
soSsRequestVo
.
getStartTime
(),
null
);
String
endTime
=
StringUtil
.
TimeStamp2Date
(
soSsRequestVo
.
getEndTime
(),
null
);
return
"["
+
FDate
+
"] >= '"
+
startTime
+
"' and ["
+
FDate
+
"] < '"
+
endTime
+
"'"
;
}
List
includeDetailFalse
(
List
list
)
{
List
dataList
=
new
ArrayList
<>();
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustomer
));
//客户名称
masterFieldVal
.
put
(
"MSBsTotalAmount"
,
listDateMap
.
get
(
FAmountFor
));
//本次回款总金额
masterFieldVal
.
put
(
"MSBsDate"
,
listDateMap
.
get
(
FDate
));
//回款日期
masterField
.
put
(
"masterFieldVal"
,
masterFieldVal
);
dataList
.
add
(
masterField
);
}
return
dataList
;
}
List
includeDetailTrue
(
List
list
)
{
List
dataList
=
new
ArrayList
<>();
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustomer
));
//客户名称
masterFieldVal
.
put
(
"MSBsTotalAmount"
,
listDateMap
.
get
(
FAmountFor
));
//本次回款总金额
masterFieldVal
.
put
(
"MSBsDate"
,
listDateMap
.
get
(
FDate
));
//回款日期
masterField
.
put
(
"masterFieldVal"
,
masterFieldVal
);
masterField
.
put
(
"detailFieldVals"
,
getDetail
(
listDateMap
.
get
(
FNumber
).
toString
()));
dataList
.
add
(
masterField
);
}
return
dataList
;
}
Map
getDetail
(
String
code
)
{
//获取明细并且转换为需要的格式
Map
returnDate
=
new
LinkedHashMap
();
Map
paramsMap
=
new
HashMap
();
Map
requestData
=
new
HashMap
();
requestData
.
put
(
FBillNo
,
code
);
paramsMap
.
put
(
"Data"
,
requestData
);
try
{
String
s
=
soSsDao
.
requestK3ApiDetail
(
includeDetailUrl
,
JsonUtil
.
Mapjson
(
paramsMap
));
SoSsResponseDate
soSsResponseDate
=
JSON
.
parseObject
(
s
,
SoSsResponseDate
.
class
);
//转换数据类型
if
(
null
!=
soSsResponseDate
.
getStatusCode
()
&&
soSsResponseDate
.
getStatusCode
().
equals
(
"200"
))
{
Map
Data
=
JSON
.
parseObject
(
soSsResponseDate
.
getData
().
toString
(),
Map
.
class
);
//转换数据类型
List
list
=
JSON
.
parseObject
(
Data
.
get
(
"Page3"
).
toString
(),
List
.
class
,
Feature
.
OrderedField
);
int
i
=
1
;
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
);
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
();
map
.
put
(
"salesOrderNo"
,
listDateMap
.
get
(
FEntryOrderNo
));
//销售订单编号
map
.
put
(
"currentRemittanceAmount"
,
listDateMap
.
get
(
FSettleAmountFor_3
));
//本次汇款金额
returnDate
.
put
(
apiName
+
i
,
new
ArrayList
<
Map
>()
{{
add
(
map
);
}});
i
++;
}
}
else
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
();
map
.
put
(
"message"
,
soSsResponseDate
.
getMessage
());
map
.
put
(
"data"
,
soSsResponseDate
.
getData
());
returnDate
.
put
(
"error"
,
new
ArrayList
<
Map
>()
{{
add
(
map
);
}});
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
return
returnDate
;
}
/*转换*/
public
Result
changeResponse
(
SoSsResponseDate
ResponseDate
,
SoSsRequestVo
RequestVo
)
{
Map
<
Object
,
Object
>
map
=
new
HashMap
<>();
Result
result
=
new
Result
();
try
{
//字段转换-变化soSsRequestVo的data参数格式 为CRM规定格式
List
dataList
=
new
ArrayList
<>();
Map
data
=
(
Map
)
ResponseDate
.
getData
();
Object
data1
=
data
.
get
(
"DATA"
);
List
list
=
JSON
.
parseObject
(
data1
.
toString
(),
List
.
class
,
Feature
.
OrderedField
);
if
(
null
==
RequestVo
.
getIncludeDetail
()
||
false
==
RequestVo
.
getIncludeDetail
())
{
dataList
=
includeDetailFalse
(
list
);
}
else
if
(
null
!=
RequestVo
.
getIncludeDetail
()
&&
true
==
RequestVo
.
getIncludeDetail
())
{
dataList
=
includeDetailTrue
(
list
);
}
map
.
put
(
"totalNum"
,
data
.
get
(
"ROWCOUNT"
));
map
.
put
(
"dataList"
,
dataList
);
ResponseDate
.
setData
(
map
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
//将ERP格式变换为CRM格式
result
.
setMessage
(
ResponseDate
.
getMessage
());
result
.
setCode
(
ResponseDate
.
getStatusCode
());
result
.
setData
(
ResponseDate
.
getData
());
return
result
;
}
}
src/main/java/com/santos/iost/service/impl/SoSsSalesDeliveryServiceImpl.java
浏览文件 @
4f1ebad1
...
...
@@ -74,7 +74,7 @@ public class SoSsSalesDeliveryServiceImpl implements SoSsSalesDeliveryService {
public
Map
changeGeta
(
SoSsRequestVo
soSsRequestVo
)
{
Map
paramsMap
=
new
HashMap
();
Map
Data
=
new
LinkedHashMap
();
Data
.
put
(
"Top"
,
"100"
);
//返回行数
Data
.
put
(
"Top"
,
soSsRequestVo
.
getLimit
()
);
//返回行数
Data
.
put
(
"PageSize"
,
soSsRequestVo
.
getLimit
());
//每页行数
Data
.
put
(
"PageIndex"
,
soSsRequestVo
.
getOffset
());
//第几页
if
(
checkFilter
(
soSsRequestVo
))
{
...
...
src/main/java/com/santos/iost/service/impl/SoSsSalesInvoiceImpl.java
deleted
100644 → 0
浏览文件 @
564fb4de
package
com
.
santos
.
iost
.
service
.
impl
;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.service.SoSsSalesInvoice
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
//开票
@Service
public
class
SoSsSalesInvoiceImpl
implements
SoSsSalesInvoice
{
@Autowired
SoSsDao
soSsDao
;
String
Url
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String
includeDetailUrl
;
String
fields
;
//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String
FCustID
=
"FCustID"
;
//
// String FCustID = "FCustID";//
// String FCustID = "FCustID";//
// String FCustID = "FCustID";//
/**
* K3金蝶方请求字段-明细字段
*/
String
FItemID
=
"FItemID"
;
//产品代码
public
SoSsSalesInvoiceImpl
()
{
this
.
Url
=
"/K3API/Sales_Invoice_VAT/GetList"
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this
.
includeDetailUrl
=
"/K3API/Sales_Invoice_VAT/GetDetail"
;
this
.
fields
=
"FCustID,SJKPRQ80,FHeadSelfI0471"
;
//需要查询出的字段
}
@Override
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
)
{
return
null
;
}
}
src/main/java/com/santos/iost/service/impl/SoSsSalesInvoiceServiceImpl.java
0 → 100644
浏览文件 @
4f1ebad1
package
com
.
santos
.
iost
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.parser.Feature
;
import
com.santos.iost.dao.SoSsDao
;
import
com.santos.iost.dto.Result
;
import
com.santos.iost.dto.SoSsResponseDate
;
import
com.santos.iost.service.SoSsSalesInvoiceService
;
import
com.santos.iost.utils.JsonUtil
;
import
com.santos.iost.utils.StringUtil
;
import
com.santos.iost.vo.SoSsRequestVo
;
import
net.sf.json.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
//开票
@Service
public
class
SoSsSalesInvoiceServiceImpl
implements
SoSsSalesInvoiceService
{
@Autowired
SoSsDao
soSsDao
;
String
Url
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
String
includeDetailUrl
;
String
fields
;
//需要查询出的字段
/**
* K3金蝶方请求字段
*/
String
FCustID
=
"FCustID"
;
//购货单位
String
SJKPRQ80
=
"SJKPRQ80"
;
//实际开票日期
String
Fdate
=
"Fdate"
;
//日期
String
FBillNo
=
"FBillNo"
;
//FBillNo
String
FHeadSelfI0471
=
"FHeadSelfI0471"
;
//出库单编号
/**
* K3金蝶方请求字段-明细字段
*/
String
FItemID
=
"FItemID"
;
//产品代码
String
Fauxqty
=
"Fauxqty"
;
//数量
String
FAuxPriceDiscount
=
"FAuxPriceDiscount"
;
//实际含税单价
String
FAllAmount
=
"FAllAmount"
;
//价税合计
public
SoSsSalesInvoiceServiceImpl
()
{
this
.
Url
=
"/K3API/Sales_Invoice_VAT/GetList"
;
//拼接用请求地址-(http://127.0.0.1/K3API/Material/GetList?token=${token})
this
.
includeDetailUrl
=
"/K3API/Sales_Invoice_VAT/GetDetail"
;
this
.
fields
=
"FCustID,SJKPRQ80,FHeadSelfI0471"
;
//需要查询出的字段
}
@Override
public
Result
getData
(
SoSsRequestVo
soSsRequestVo
)
{
String
s
=
new
String
();
Map
map
=
changeGeta
(
soSsRequestVo
);
try
{
s
=
soSsDao
.
requestK3Api
(
Url
,
JsonUtil
.
Mapjson
(
map
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
SoSsResponseDate
soSsResponseDate
=
JSON
.
parseObject
(
s
,
SoSsResponseDate
.
class
,
Feature
.
OrderedField
);
//转换数据类型
Result
result
=
changeResponse
(
soSsResponseDate
,
soSsRequestVo
);
//转换返回的数据格式
return
result
;
}
/*转换请求参数*/
public
Map
changeGeta
(
SoSsRequestVo
soSsRequestVo
)
{
Map
paramsMap
=
new
HashMap
();
Map
Data
=
new
LinkedHashMap
();
Data
.
put
(
"Top"
,
soSsRequestVo
.
getLimit
());
//返回行数
Data
.
put
(
"PageSize"
,
soSsRequestVo
.
getLimit
());
//每页行数
Data
.
put
(
"PageIndex"
,
soSsRequestVo
.
getOffset
());
//第几页
if
(
checkFilter
(
soSsRequestVo
))
{
Data
.
put
(
"Filter"
,
setFilter
(
soSsRequestVo
));
//过滤条件
}
Data
.
put
(
"OrderBy"
,
"[FBillNo] asc"
);
//排序规则
Data
.
put
(
"SelectPage"
,
"1"
);
//表体索引,文档默认为2
Data
.
put
(
"Fields"
,
fields
);
//查询字段
paramsMap
.
put
(
"Data"
,
Data
);
return
paramsMap
;
}
//检查ERM日期是否可用作过滤条件
boolean
checkFilter
(
SoSsRequestVo
soSsRequestVo
)
{
if
(
null
==
soSsRequestVo
.
getStartTime
()
&&
null
==
soSsRequestVo
.
getEndTime
())
{
return
false
;
}
return
true
;
}
//配置过滤条件
String
setFilter
(
SoSsRequestVo
soSsRequestVo
)
{
String
startTime
=
StringUtil
.
TimeStamp2Date
(
soSsRequestVo
.
getStartTime
(),
null
);
String
endTime
=
StringUtil
.
TimeStamp2Date
(
soSsRequestVo
.
getEndTime
(),
null
);
return
"["
+
SJKPRQ80
+
"] >= '"
+
startTime
+
"' and ["
+
SJKPRQ80
+
"] < '"
+
endTime
+
"'"
;
}
List
includeDetailFalse
(
List
list
)
{
List
dataList
=
new
ArrayList
<>();
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustID
));
//客户名称
masterFieldVal
.
put
(
"billingDate"
,
listDateMap
.
get
(
SJKPRQ80
));
//开票日期
// masterFieldVal.put("billingDate", listDateMap.get(Fdate));//开票日期
masterFieldVal
.
put
(
"invoiceNumber"
,
listDateMap
.
get
(
FBillNo
));
//发票号码
masterFieldVal
.
put
(
"shipmentNo"
,
listDateMap
.
get
(
FHeadSelfI0471
));
//发货单号
masterField
.
put
(
"masterFieldVal"
,
masterFieldVal
);
dataList
.
add
(
masterField
);
}
return
dataList
;
}
List
includeDetailTrue
(
List
list
)
{
List
dataList
=
new
ArrayList
<>();
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustID
));
//客户名称
masterFieldVal
.
put
(
"billingDate"
,
listDateMap
.
get
(
SJKPRQ80
));
//开票日期
// masterFieldVal.put("billingDate", listDateMap.get(Fdate));//开票日期
masterFieldVal
.
put
(
"invoiceNumber"
,
listDateMap
.
get
(
FBillNo
));
//发票号码
masterFieldVal
.
put
(
"shipmentNo"
,
listDateMap
.
get
(
FHeadSelfI0471
));
//发货单号
masterField
.
put
(
"masterFieldVal"
,
masterFieldVal
);
masterField
.
put
(
"detailFieldVals"
,
getDetail
(
listDateMap
.
get
(
FBillNo
).
toString
()));
dataList
.
add
(
masterField
);
}
return
dataList
;
}
Map
getDetail
(
String
code
)
{
//获取明细并且转换为需要的格式
Map
returnDate
=
new
LinkedHashMap
();
Map
paramsMap
=
new
HashMap
();
Map
requestData
=
new
HashMap
();
requestData
.
put
(
FBillNo
,
code
);
paramsMap
.
put
(
"Data"
,
requestData
);
try
{
String
s
=
soSsDao
.
requestK3ApiDetail
(
includeDetailUrl
,
JsonUtil
.
Mapjson
(
paramsMap
));
SoSsResponseDate
soSsResponseDate
=
JSON
.
parseObject
(
s
,
SoSsResponseDate
.
class
);
//转换数据类型
if
(
null
!=
soSsResponseDate
.
getStatusCode
()
&&
soSsResponseDate
.
getStatusCode
().
equals
(
"200"
))
{
Map
Data
=
JSON
.
parseObject
(
soSsResponseDate
.
getData
().
toString
(),
Map
.
class
);
//转换数据类型
List
list
=
JSON
.
parseObject
(
Data
.
get
(
"Page2"
).
toString
(),
List
.
class
,
Feature
.
OrderedField
);
int
i
=
1
;
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
);
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
();
map
.
put
(
"productCode"
,
JSONObject
.
fromObject
(
listDateMap
.
get
(
FItemID
)).
get
(
"FNumber"
));
//产品编码
map
.
put
(
"quantity"
,
listDateMap
.
get
(
Fauxqty
));
//数量
map
.
put
(
"salesUnitPrice"
,
listDateMap
.
get
(
FAuxPriceDiscount
));
//销售单价
map
.
put
(
"thisInvoicingSubtotal"
,
listDateMap
.
get
(
FAllAmount
));
//本次开票小计
returnDate
.
put
(
apiName
+
i
,
new
ArrayList
<
Map
>()
{{
add
(
map
);
}});
i
++;
}
}
else
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
();
map
.
put
(
"message"
,
soSsResponseDate
.
getMessage
());
map
.
put
(
"data"
,
soSsResponseDate
.
getData
());
returnDate
.
put
(
"error"
,
new
ArrayList
<
Map
>()
{{
add
(
map
);
}});
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
return
returnDate
;
}
/*转换*/
public
Result
changeResponse
(
SoSsResponseDate
ResponseDate
,
SoSsRequestVo
RequestVo
)
{
Map
<
Object
,
Object
>
map
=
new
HashMap
<>();
Result
result
=
new
Result
();
try
{
//字段转换-变化soSsRequestVo的data参数格式 为CRM规定格式
List
dataList
=
new
ArrayList
<>();
Map
data
=
(
Map
)
ResponseDate
.
getData
();
Object
data1
=
data
.
get
(
"DATA"
);
List
list
=
JSON
.
parseObject
(
data1
.
toString
(),
List
.
class
,
Feature
.
OrderedField
);
if
(
null
==
RequestVo
.
getIncludeDetail
()
||
false
==
RequestVo
.
getIncludeDetail
())
{
dataList
=
includeDetailFalse
(
list
);
}
else
if
(
null
!=
RequestVo
.
getIncludeDetail
()
&&
true
==
RequestVo
.
getIncludeDetail
())
{
dataList
=
includeDetailTrue
(
list
);
}
map
.
put
(
"totalNum"
,
data
.
get
(
"ROWCOUNT"
));
map
.
put
(
"dataList"
,
dataList
);
ResponseDate
.
setData
(
map
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
//将ERP格式变换为CRM格式
result
.
setMessage
(
ResponseDate
.
getMessage
());
result
.
setCode
(
ResponseDate
.
getStatusCode
());
result
.
setData
(
ResponseDate
.
getData
());
return
result
;
}
}
src/main/java/com/santos/iost/service/impl/SpSsSalesOrderServiceImpl.java
浏览文件 @
4f1ebad1
...
...
@@ -27,7 +27,7 @@ public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
/**
* K3金蝶方请求字段
*/
String
FCustID
_DSPName
=
"FCustID_DSPName
"
;
//客户名称
String
FCustID
=
"FCustID
"
;
//客户名称
String
FHeadSelfS0166
=
"FHeadSelfS0166"
;
//整单价税合计
String
FBillNo
=
"FBillNo"
;
//编号
String
FHeadSelfS0157
=
"FHeadSelfS0157"
;
//客户订单编号
...
...
@@ -105,7 +105,7 @@ public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustID
_DSPName
));
//客户名称
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustID
));
//客户名称
masterFieldVal
.
put
(
"salesOrderAmount"
,
listDateMap
.
get
(
FHeadSelfS0166
));
//销售订单金额
masterFieldVal
.
put
(
"erpSystemNumber"
,
listDateMap
.
get
(
FBillNo
));
//erp系统编号
masterFieldVal
.
put
(
"customerOrderNumber"
,
listDateMap
.
get
(
FHeadSelfS0157
));
//客户订单编号
...
...
@@ -122,7 +122,7 @@ public class SpSsSalesOrderServiceImpl implements SpSsSalesOrderService {
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
Map
masterField
=
new
LinkedHashMap
<>();
Map
masterFieldVal
=
new
LinkedHashMap
<>();
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustID
_DSPName
));
//客户名称
masterFieldVal
.
put
(
"customerName"
,
listDateMap
.
get
(
FCustID
));
//客户名称
masterFieldVal
.
put
(
"salesOrderAmount"
,
listDateMap
.
get
(
FHeadSelfS0166
));
//销售订单金额
masterFieldVal
.
put
(
"erpSystemNumber"
,
listDateMap
.
get
(
FBillNo
));
//erp系统编号
masterFieldVal
.
put
(
"customerOrderNumber"
,
listDateMap
.
get
(
FHeadSelfS0157
));
//客户订单编号
...
...
src/main/java/com/santos/iost/vo/SoSsCreateVo.java
0 → 100644
浏览文件 @
4f1ebad1
package
com
.
santos
.
iost
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Map
;
/**
* 接口请求数据格式Vo对象
*/
@Data
@ApiModel
(
value
=
"接口请求数据格式Vo对象-创建用"
,
description
=
"接口请求数据格式Vo对象-创建用"
)
public
class
SoSsCreateVo
{
@ApiModelProperty
(
value
=
"查询 ERP 对象的 APIName"
)
private
String
objAPIName
;
@ApiModelProperty
(
value
=
"主体字段值"
)
private
Map
masterFieldVal
;
}
src/test/java/com/santos/iost/JintaiDomeApplicationTests.java
浏览文件 @
4f1ebad1
...
...
@@ -52,66 +52,66 @@ class JintaiDomeApplicationTests {
@Test
void
contextLoads
()
throws
Exception
{
String
s
=
HttpUtil
.
get
(
getTokenUrl
);
Map
map
=
JSON
.
parseObject
(
s
,
Map
.
class
);
String
D
=
map
.
get
(
"Data"
).
toString
();
Map
mapDate
=
JSON
.
parseObject
(
D
,
Map
.
class
);
token
=
mapDate
.
get
(
"Token"
).
toString
();
// System.out.println(token);
Map
paramsMap
=
new
HashMap
();
Map
Data
=
new
LinkedHashMap
();
Data
.
put
(
"Top"
,
"100"
);
Data
.
put
(
"PageSize"
,
"17"
);
Data
.
put
(
"PageIndex"
,
"1"
);
// Data.put("Filter","FNumber like '%003%' ");
Data
.
put
(
"OrderBy"
,
"FNumber asc"
);
Data
.
put
(
"Fields"
,
"FNumber,FName,F_101,FUnitID,FSalePrice"
);
paramsMap
.
put
(
"Data"
,
Data
);
Map
<
String
,
String
>
hreader
=
new
HashMap
<>();
hreader
.
put
(
"Content-Type"
,
"application/json"
);
String
post
=
HttpUtil
.
post
(
getGetMaterialUrl
+
token
,
JsonUtil
.
Mapjson
(
paramsMap
),
hreader
);
//
String s = HttpUtil.get(getTokenUrl);
//
Map map = JSON.parseObject(s, Map.class);
//
String D = map.get("Data").toString();
//
Map mapDate = JSON.parseObject(D, Map.class);
//
token = mapDate.get("Token").toString();
//
//
System.out.println(token);
//
Map paramsMap = new HashMap();
//
Map Data = new LinkedHashMap();
//
Data.put("Top", "100");
//
Data.put("PageSize", "17");
//
Data.put("PageIndex", "1");
//
//
Data.put("Filter","FNumber like '%003%' ");
//
Data.put("OrderBy", "FNumber asc");
//
Data.put("Fields", "FNumber,FName,F_101,FUnitID,FSalePrice");
//
paramsMap.put("Data", Data);
//
//
Map<String, String> hreader = new HashMap<>();
//
hreader.put("Content-Type", "application/json");
//
//
String post = HttpUtil.post(getGetMaterialUrl + token, JsonUtil.Mapjson(paramsMap), hreader);
// System.out.println(post);
}
@Test
void
dsads
()
throws
Exception
{
String
s
=
HttpUtil
.
get
(
getTokenUrl
);
Map
map
=
JSON
.
parseObject
(
s
,
Map
.
class
);
String
D
=
map
.
get
(
"Data"
).
toString
();
Map
mapDate
=
JSON
.
parseObject
(
D
,
Map
.
class
);
token
=
mapDate
.
get
(
"Token"
).
toString
();
// System.out.println(token);
Map
paramsMap
=
new
HashMap
();
Map
Data
=
new
LinkedHashMap
();
Data
.
put
(
"FBillNo"
,
"1220200102001"
);
paramsMap
.
put
(
"Data"
,
Data
);
Map
<
String
,
String
>
hreader
=
new
HashMap
<>();
hreader
.
put
(
"Content-Type"
,
"application/json"
);
// System.out.println(JsonUtil.Mapjson(paramsMap));
String
post
=
HttpUtil
.
post
(
includeDetailUrl
+
token
,
JsonUtil
.
Mapjson
(
paramsMap
),
hreader
);
//
// String s = HttpUtil.get(getTokenUrl);
// Map map = JSON.parseObject(s, Map.class);
// String D = map.get("Data").toString();
// Map mapDate = JSON.parseObject(D, Map.class);
// token = mapDate.get("Token").toString();
//// System.out.println(token);
// Map paramsMap = new HashMap();
// Map Data = new LinkedHashMap();
// Data.put("FBillNo", "1220200102001");
// paramsMap.put("Data", Data);
//
// Map<String, String> hreader = new HashMap<>();
// hreader.put("Content-Type", "application/json");
//// System.out.println(JsonUtil.Mapjson(paramsMap));
// String post = HttpUtil.post(includeDetailUrl + token, JsonUtil.Mapjson(paramsMap), hreader);
//// SoSsResponseDate soSsResponseDate = JSON.parseObject(post, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
//// System.out.println(soSsResponseDate);
// SoSsResponseDate soSsResponseDate = JSON.parseObject(post, SoSsResponseDate.class, Feature.OrderedField);//转换数据类型
// System.out.println(soSsResponseDate);
SoSsResponseDate
soSsResponseDate
=
JSON
.
parseObject
(
post
,
SoSsResponseDate
.
class
,
Feature
.
OrderedField
);
//转换数据类型
String
statusCode
=
soSsResponseDate
.
getStatusCode
();
// System.out.println(soSsResponseDate.getStatusCode().equals("200"));
// System.out.println(soSsResponseDate);
if
(
null
!=
soSsResponseDate
.
getStatusCode
()
&&
soSsResponseDate
.
getStatusCode
().
equals
(
"200"
))
{
Map
Datas
=
JSON
.
parseObject
(
soSsResponseDate
.
getData
().
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
//转换数据类型
List
list
=
JSON
.
parseObject
(
Datas
.
get
(
"Page2"
).
toString
(),
List
.
class
,
Feature
.
OrderedField
);
int
i
=
1
;
for
(
Object
o
:
list
)
{
Map
listDateMap
=
JSON
.
parseObject
(
o
.
toString
(),
Map
.
class
,
Feature
.
OrderedField
);
// System.out.println(listDateMap);
// returnDate.put(apiName + i, new ArrayList<Map>() {{
// add(listDateMap);
// }});
i
++;
}
}
// String statusCode = soSsResponseDate.getStatusCode();
//// System.out.println(soSsResponseDate.getStatusCode().equals("200"));
//// System.out.println(soSsResponseDate);
// if (null != soSsResponseDate.getStatusCode() && soSsResponseDate.getStatusCode().equals("200")) {
// Map Datas = JSON.parseObject(soSsResponseDate.getData().toString(), Map.class, Feature.OrderedField);//转换数据类型
// List list = JSON.parseObject(Datas.get("Page2").toString(), List.class, Feature.OrderedField);
// int i = 1;
// for (Object o : list) {
// Map listDateMap = JSON.parseObject(o.toString(), Map.class, Feature.OrderedField);
//// System.out.println(listDateMap);
//// returnDate.put(apiName + i, new ArrayList<Map>() {{
//// add(listDateMap);
//// }});
// i++;
// }
// }
}
@Test
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论