Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 91b62603
由
sunke
编写于
2022-06-22 10:18:34 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
工单出库重复挑料问题修复
增加一些搜索条件
1 个父辈
c9839427
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
72 行增加
和
93 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderDto.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialStockController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/SafetyInventoryDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosFindCriteria.java
src/main/java/com/neotel/smfcore/hikvision/HikApi.java
src/main/java/com/neotel/smfcore/hikvision/bean/result/ApiResult.java
src/main/java/com/neotel/smfcore/hikvision/util/JsonUtil.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
91b6260
...
...
@@ -202,21 +202,6 @@ public class LiteOrderCache implements ITaskListener {
liteOrderItem
.
setTotalOutNum
(
liteOrderItem
.
getTotalOutNum
()
+
task
.
getNum
());
liteOrderItem
.
setTotalOutReelCount
(
liteOrderItem
.
getTotalOutReelCount
()
+
1
);
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
// Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
// if (barcode != null) {
// Float totalNeedNum = liteOrderItem.getNeedNum() * order.getOrderTimes();
// int barcodeRemainNum = liteOrderItem.getOutNum() - totalNeedNum.intValue();
// if (barcodeRemainNum < 0) {
// barcodeRemainNum = 0;
// }
// barcode.setAmount(barcodeRemainNum);
// log.info("条码[" + task.getBarcode() + "]从工单出库,更改数量为:" + barcodeRemainNum);
// try {
// barcodeManager.save(barcode);
// } catch (ValidateException e) {
// e.printStackTrace();
// }
// }
}
items
.
add
(
liteOrderItem
);
}
...
...
@@ -434,6 +419,9 @@ public class LiteOrderCache implements ITaskListener {
Map
<
String
,
List
<
StoragePos
>>
needOutPosMap
=
new
HashMap
<>();
//挑出的需要出库的料列表,key=pn,value=库位
Map
<
String
,
Integer
>
jieliaoPosMap
=
new
HashMap
<>();
//需要截料的物料列表,key=PosName,value=此工单使用数量
List
<
String
>
excludePosIds
=
Lists
.
newArrayList
();
excludePosIds
.
addAll
(
taskService
.
excludePosIds
());
//获取此工单出库的所有物料
for
(
LiteOrderItem
orderItem
:
cacheOrder
.
getOrderItems
())
{
...
...
@@ -452,7 +440,7 @@ public class LiteOrderCache implements ITaskListener {
//查找PN的所有库存,PN=pn,未锁定,qty 从大到小,入库时间正序
List
<
StoragePos
>
posList
=
storagePosManager
.
findOrderItemInStorage
(
availableStorageIds
,
pn
,
taskService
.
excludePosIds
()
);
List
<
StoragePos
>
posList
=
storagePosManager
.
findOrderItemInStorage
(
availableStorageIds
,
pn
,
excludePosIds
);
int
storageNum
=
0
;
int
reelNum
=
posList
.
size
();
...
...
@@ -609,6 +597,10 @@ public class LiteOrderCache implements ITaskListener {
}
//可以出库
needOutPosMap
.
put
(
pn
,
itemPosList
);
//排除掉这些库位,以免重复挑取同一盘料
for
(
StoragePos
storagePos
:
itemPosList
)
{
excludePosIds
.
add
(
storagePos
.
getId
());
}
}
log
.
info
(
"开始执行工单["
+
orderNo
+
"] "
);
...
...
@@ -629,8 +621,7 @@ public class LiteOrderCache implements ITaskListener {
int
itemReelCount
=
0
;
int
itemOutCount
=
0
;
List
<
StoragePos
>
posList
=
needOutPosMap
.
get
(
orderItem
.
getMaterialNo
());
for
(
StoragePos
pos
:
posList
)
{
for
(
StoragePos
pos
:
posList
)
{
DataLog
task
=
taskService
.
newTask
(
pos
)
;
task
.
setSourceId
(
cacheOrder
.
getId
());
...
...
@@ -661,7 +652,11 @@ public class LiteOrderCache implements ITaskListener {
task
.
setAddOutbound
(
true
);
task
.
setLightColor
(
ORDER_COLOR
.
PINK
.
getRgb
());
//补料出库 颜色:PINK
}
taskService
.
addTaskToExecute
(
task
);
try
{
taskService
.
addTaskToExecute
(
task
);
}
catch
(
Exception
e
){
log
.
info
(
"添加入库列表出错:"
+
e
.
getMessage
());
}
log
.
info
(
"工单["
+
orderNo
+
"],任务数["
+
taskReelCount
+
"]仓位【"
+
pos
.
getPosName
()
+
"】RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"] PN=["
+
orderItem
.
getMaterialNo
()
+
"] Amount["
+
pos
.
getBarcode
().
getAmount
()+
"] 首盘["
+
task
.
isFirstReel
()+
"] 截料["
+
task
.
isNeedSplitting
()+
"]["
+
task
.
getNeedQty
()+
"] 补料出库["
+
task
.
isAddOutbound
()+
"]"
);
...
...
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderDto.java
查看文件 @
91b6260
...
...
@@ -40,7 +40,7 @@ public class OrderDto implements Serializable {
@ApiModelProperty
(
"排程数量"
)
private
Integer
wemng
;
@ApiModelProperty
(
"
开工
时间"
)
@ApiModelProperty
(
"
计划开始
时间"
)
private
Date
startDate
;
@ApiModelProperty
(
"完工时间"
)
...
...
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
查看文件 @
91b6260
...
...
@@ -4,6 +4,7 @@ package com.neotel.smfcore.core.order.rest.bean.query;
import
com.neotel.smfcore.common.annotation.QueryCondition
;
import
com.neotel.smfcore.common.bean.BetweenData
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -17,6 +18,13 @@ public class OrderQueryCondition {
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
private
BetweenData
<
Date
>
createDate
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
BetweenData
<
Date
>
startDate
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
IN
,
propName
=
"orderNo"
)
private
List
<
String
>
orderNoList
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
IN
,
propName
=
"source"
)
private
List
<
String
>
sourceList
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
NIN
,
propName
=
"source"
)
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialStockController.java
查看文件 @
91b6260
...
...
@@ -118,17 +118,19 @@ public class MaterialStockController {
String
partNumberStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.partNumber"
,
locale
,
"物料编号"
);
String
countStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.count"
,
locale
,
"库存数量"
);
String
stockReelStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.stockReel"
,
locale
,
"库存盘数"
);
String
lockReelStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.supplementReel"
,
locale
,
"补充盘数"
);
String
storageNameStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.amount"
,
locale
,
"最小包装"
);
String
supplementReelStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.supplementReel"
,
locale
,
"补充盘数"
);
String
minPackageStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.amount"
,
locale
,
"最小包装"
);
String
totalAddStr
=
MessageUtils
.
getText
(
"smfcore.safetyInventory.amount"
,
locale
,
"补充总量"
);
List
<
Map
<
String
,
Object
>>
maps
=
new
ArrayList
<>();
for
(
SafetyInventoryDto
item
:
results
)
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
partNumberStr
,
item
.
getPartNumber
());
map
.
put
(
countStr
,
item
.
getStockCount
());
map
.
put
(
lockReelStr
,
item
.
getLockReel
());
map
.
put
(
stockReelStr
,
item
.
getSupplementReel
());
map
.
put
(
storageNameStr
,
item
.
getAmount
());
map
.
put
(
stockReelStr
,
item
.
getStockReel
());
map
.
put
(
supplementReelStr
,
item
.
getSupplementReel
());
map
.
put
(
minPackageStr
,
item
.
getAmount
());
map
.
put
(
totalAddStr
,
item
.
getSupplementReel
()
*
item
.
getAmount
());
maps
.
add
(
map
);
}
FileUtil
.
downloadExcel
(
maps
,
response
);
...
...
@@ -184,6 +186,7 @@ public class MaterialStockController {
suppleReel
=
com
.
getMaxStoreNum
();
}
dto
.
setSupplementReel
(
suppleReel
);
dto
.
setSupplementCount
(
suppleReel
*
dto
.
getAmount
());
}
if
(
needSupplement
)
{
if
(
dto
.
getSupplementReel
()
>
0
)
{
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
91b6260
...
...
@@ -303,12 +303,8 @@ public class StoragePosController {
}
else
if
(
criteria
.
getMaxAmount
()
!=
null
)
{
baseCriteria
.
and
(
"barcode.amount"
).
lte
(
criteria
.
getMaxAmount
());
}
if
(
criteria
.
getMinDistance
()
!=
null
&&
criteria
.
getMaxDistance
()
!=
null
)
{
baseCriteria
.
and
(
"barcode.distance"
).
gte
(
criteria
.
getMinDistance
()).
lte
(
criteria
.
getMaxDistance
());
}
else
if
(
criteria
.
getMinDistance
()
!=
null
)
{
baseCriteria
.
and
(
"barcode.distance"
).
gte
(
criteria
.
getMinDistance
());
}
else
if
(
criteria
.
getMaxDistance
()
!=
null
)
{
baseCriteria
.
and
(
"barcode.distance"
).
lte
(
criteria
.
getMaxDistance
());
if
(
criteria
.
getDistance
()
!=
null
)
{
baseCriteria
.
and
(
"barcode.distance"
).
is
(
criteria
.
getDistance
());
}
// baseCriteria.and("barcode.lockMsl").ne(true);//湿敏超期物料所在仓位锁定, 不允许备料
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/SafetyInventoryDto.java
查看文件 @
91b6260
...
...
@@ -48,4 +48,7 @@ public class SafetyInventoryDto implements Serializable {
@ApiModelProperty
(
"安全库存"
)
private
int
safetyStoreNum
=
0
;
@ApiModelProperty
(
"补充总量"
)
private
int
supplementCount
=
0
;
}
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosFindCriteria.java
查看文件 @
91b6260
...
...
@@ -14,7 +14,7 @@ import java.util.List;
@Data
public
class
StoragePosFindCriteria
{
@QueryCondition
(
blurry
=
"barcode.partNumber,barcode,posName,barcode.provider,barcode.batch"
)
@QueryCondition
(
blurry
=
"barcode.partNumber,barcode
.barcode
,posName,barcode.provider,barcode.batch"
)
private
String
blurry
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"barcode.putInDate"
)
...
...
@@ -91,11 +91,9 @@ public class StoragePosFindCriteria {
@ApiModelProperty
(
"最大数量"
)
private
Integer
maxAmount
;
@ApiModelProperty
(
"
最小
间距"
)
private
Integer
minD
istance
;
@ApiModelProperty
(
"间距"
)
private
Integer
d
istance
;
@ApiModelProperty
(
"最大间距"
)
private
Integer
maxDistance
;
public
int
getComponentType
(){
int
componentType
=
getType
();
if
(
componentType
!=
-
1
)
{
...
...
src/main/java/com/neotel/smfcore/hikvision/HikApi.java
查看文件 @
91b6260
...
...
@@ -105,7 +105,8 @@ public class HikApi {
if
(
responseInfo
==
null
||
responseInfo
.
getCode
().
equals
(-
1
))
{
log
.
info
(
apiName
+
"未收到反馈"
);
// needResend=true;
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
)
||
(
responseInfo
.
getCode
()!=
0
))
{
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
)
||
(
responseInfo
.
getCode
()!=
0
))
{
// needResend=true;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",message="
+
responseInfo
.
getMessage
()+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
ApiResult
apiResult
=
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
new
ArrayList
<>());
...
...
@@ -248,7 +249,7 @@ public class HikApi {
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"trayId"
,
trayId
);
//料盘ID
dataMap
.
put
(
"flag"
,
"
SMF
"
);
//SMF 亮灯货架
dataMap
.
put
(
"flag"
,
"
2
"
);
//SMF 亮灯货架
// String data = JsonUtil.toJsonStr(dataMap);
// data String 41 是 料盘ID
...
...
@@ -437,7 +438,7 @@ public class HikApi {
// code Integer 结果码(33关闭)
//工单已关闭
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",工单已关闭,无法出库"
);
return
new
ApiResult
(
33
,
"工单已关闭,无法出库"
,
new
ArrayList
<>());
return
new
ApiResult
(
33
,
"
MES返回:
工单已关闭,无法出库"
,
new
ArrayList
<>());
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
)||
(
responseInfo
.
getCode
()!=
0
))
{
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
",需要重发,"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
...
...
@@ -447,7 +448,7 @@ public class HikApi {
log
.
info
(
apiName
+
"返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
String
dataStr
=
responseInfo
.
getDataStr
();
List
<
HikOrderInfo
>
list
=
JsonUtil
.
toList
(
dataStr
,
HikOrderInfo
.
class
);
return
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
new
ArrayList
<>()
);
return
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
list
);
}
}
catch
(
Exception
e
)
{
...
...
@@ -585,7 +586,7 @@ public class HikApi {
}
else
if
(
responseInfo
.
getCode
().
equals
(
CODE_PARAMERROR
)
||
responseInfo
.
getCode
().
equals
(
CODE_REPEAT
)||
(
responseInfo
.
getCode
()!=
0
))
{
needResend
=
true
;
log
.
info
(
apiName
+
"返回code="
+
responseInfo
.
getCode
()
+
","
+
JsonUtil
.
toJsonStr
(
responseInfo
));
return
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
new
ArrayList
<>()
);
return
new
ApiResult
(
responseInfo
.
getCode
(),
responseInfo
.
getMessage
(),
""
);
}
else
{
log
.
info
(
apiName
+
"返回"
+
JsonUtil
.
toJsonStr
(
responseInfo
));
String
dataStr
=
responseInfo
.
getDataStr
();
...
...
src/main/java/com/neotel/smfcore/hikvision/bean/result/ApiResult.java
查看文件 @
91b6260
package
com
.
neotel
.
smfcore
.
hikvision
.
bean
.
result
;
import
com.neotel.smfcore.hikvision.util.HttpHelper
;
import
com.neotel.smfcore.hikvision.util.JsonUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -16,4 +18,9 @@ public class ApiResult {
private
String
msg
=
""
;
private
Object
data
=
""
;
public
String
getDataStr
(){
return
JsonUtil
.
toJsonStr
(
data
);
}
}
src/main/java/com/neotel/smfcore/hikvision/util/JsonUtil.java
查看文件 @
91b6260
...
...
@@ -3,6 +3,8 @@ package com.neotel.smfcore.hikvision.util;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.JavaType
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.neotel.smfcore.hikvision.bean.HikOrderInfo
;
import
com.neotel.smfcore.hikvision.bean.api.ResponseParam
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
...
...
@@ -86,58 +88,24 @@ public class JsonUtil {
}
public
static
void
main
(
String
args
[])
throws
Exception
{
String
jsonStr
=
"[{\n"
+
" \"action\": \"补料\",\n"
+
" \"hSerial\": \"82\",\n"
+
" \"so\": \"879235\",\n"
+
"\"refno\": \"F001_879235N_1\",\n"
+
"\"partNum\": \"7H.47134.1F1\",\n"
+
" \"slot\": \"1-11\",\n"
+
"\"qty\": \"2006\",\n"
+
"\"facility\": \"SU\",\n"
+
"\"sdte\": \"20191118\",\n"
+
"\"stme\": \"85957\",\n"
+
"\"reelcut\": \"N\",\n"
+
"\"mdte\": \"20191115\",\n"
+
"\"mtme\": \"172238\"\n"
+
"},\n{\n"
+
" \"action\": \"补料\",\n"
+
" \"hSerial\": \"82\",\n"
+
" \"so\": \"879235\",\n"
+
"\"refno\": \"F001_879235N_1\",\n"
+
"\"partNum\": \"7H.47134.1F1\",\n"
+
" \"slot\": \"1-11\",\n"
+
"\"qty\": \"2006\",\n"
+
"\"facility\": \"SU\",\n"
+
"\"sdte\": \"20191118\",\n"
+
"\"stme\": \"85957\",\n"
+
"\"reelcut\": \"N\",\n"
+
"\"mdte\": \"20191115\",\n"
+
"\"mtme\": \"172238\"\n"
+
"}\n]"
;
// List<RequestOutItemBean> items = JsonUtil.toList(jsonStr, RequestOutItemBean.class);
// for (RequestOutItemBean item : items) {
// System.out.println(item);
// }
// System.out.println(DateUtil.toDateString(new Date(),"yyyyMMddHHmmssS"));
// System.out.println(DateUtil.toDateString(new Date(),"yyyyMMddHHmmssS"));
// System.out.println(DateUtil.toDateString(new Date(),"yyyyMMddHHmmssS"));
// System.out.println(DateUtil.toDateString(new Date(),"yyyyMMddHHmmssS"));
//
// System.out.println(System.nanoTime());
// System.out.println(System.nanoTime());
// System.out.println(System.currentTimeMillis());
// System.out.println(System.currentTimeMillis());
jsonStr
=
"{\"state\":\"0\",\"msg\":\"鏂欏嵎浣嶆暟涓嶅尮閰??\",\"info\":{\"so\":\"\",\"facility\":\"12334\",\"company\":\"\",\"qty\":\"\",\"soseq\":\"\"}}"
;
jsonStr
=
"{\"data\":[{\"Serial\":\"58890\",\"VehicleID\":\"D15\",\"Status\":\"\"},{\"Serial\":\"58890\",\"VehicleID\":\"D44\",\"Status\":\"\"},{\"Serial\":\"58890\",\"VehicleID\":\"D83\",\"Status\":\"\"},{\"Serial\":\"58890\",\"VehicleID\":\"D90\",\"Status\":\"\"},{\"Serial\":\"58890\",\"VehicleID\":\"D98\",\"Status\":\"\"}]}"
;
Map
<
String
,
Object
>
map
=
JsonUtil
.
toMap
(
jsonStr
);
Object
data
=
map
.
get
(
"data"
);
if
(
data
!=
null
){
List
<
Object
>
dataList
=
(
List
)
data
;
for
(
Object
info
:
dataList
)
{
Map
<
String
,
String
>
infoMap
=
(
Map
)
info
;
System
.
out
.
println
(
infoMap
.
get
(
"Serial"
));
}
String
jsonStr
=
"{\"code\":\"000000\",\"data\":{\"reqCode\":\"2022062018550110000347\",\"code\":0,\"message\":\"success\",\"data\":[{\"jobNo\":\"1526710801_1\",\"station\":\"1_50004_L_NPM-3\",\"baseCode\":\"8001\",\"lgort\":\"M9142\",\"workLine\":\"S111\",\"startDate\":\"2022-06-21 17:57:24\",\"endDate\":\"2022-06-21 19:21:00\",\"materialNo\":\"100300266\",\"qty\":76,\"stationCount\":1,\"overFlag\":0,\"prepareIncrement\":0,\"wemng\":50,\"docType\":1,\"replenishmentNo\":null},{\"jobNo\":\"1526710801_1\",\"station\":\"1_30009_R_NPM-2\",\"baseCode\":\"8001\",\"lgort\":\"M9142\",\"workLine\":\"S111\",\"startDate\":\"2022-06-21 17:57:24\",\"endDate\":\"2022-06-21 19:21:00\",\"materialNo\":\"100300266\",\"qty\":76,\"stationCount\":1,\"overFlag\":0,\"prepareIncrement\":0,\"wemng\":50,\"docType\":1,\"replenishmentNo\":null}]},\"message\":null}"
;
String
dataStr
=
""
;
//转成map,只取里面的data
ResponseParam
responseInfo
=
null
;
Map
<
String
,
Object
>
resultMap
=
JsonUtil
.
toMap
(
jsonStr
);
if
(
resultMap
!=
null
&&
resultMap
.
containsKey
(
"data"
))
{
dataStr
=
JsonUtil
.
toJsonStr
(
resultMap
.
get
(
"data"
));
responseInfo
=
JsonUtil
.
toObj
(
dataStr
,
ResponseParam
.
class
);
}
else
{
responseInfo
=
JsonUtil
.
toObj
(
jsonStr
,
ResponseParam
.
class
);
}
//responseInfo.getData()
List
<
HikOrderInfo
>
list
=
JsonUtil
.
toList
(
responseInfo
.
getDataStr
(),
HikOrderInfo
.
class
);
for
(
HikOrderInfo
info
:
list
)
{
System
.
out
.
println
(
info
.
getMaterialNo
());
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论