Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 89fad21a
由
LN
编写于
2022-03-31 11:37:20 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
上传功能bug修改
1 个父辈
fd909f20
全部展开
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
167 行增加
和
122 行删除
src/main/java/com/neotel/smfcore/common/utils/DateUtil.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
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/util/OrderFileWatch.java
src/main/java/com/neotel/smfcore/core/system/rest/SettingsController.java
src/main/java/com/neotel/smfcore/hikvision/HikvisionApiController.java
src/main/java/com/neotel/smfcore/hikvision/bean/HikOutInfo.java
src/main/java/com/neotel/smfcore/common/utils/DateUtil.java
查看文件 @
89fad21
package
com
.
neotel
.
smfcore
.
common
.
utils
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
...
...
@@ -57,6 +58,9 @@ public class DateUtil {
}
public
static
String
toDateString
(
Date
aDate
,
String
aMask
)
{
if
(
ObjectUtil
.
isEmpty
(
aMask
)){
aMask
=
"yyyy-MM-dd HH:mm:ss"
;
}
SimpleDateFormat
df
=
null
;
String
returnValue
=
""
;
...
...
@@ -76,6 +80,9 @@ public class DateUtil {
public
static
Date
toDate
(
String
strDate
,
String
aMask
)
throws
ParseException
{
if
(
ObjectUtil
.
isEmpty
(
aMask
)){
aMask
=
"yyyy-MM-dd HH:mm:ss"
;
}
SimpleDateFormat
df
;
Date
date
;
df
=
new
SimpleDateFormat
(
aMask
);
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
89fad21
...
...
@@ -182,36 +182,42 @@ public class NLPShelfHandler extends BaseDeviceHandler{
handleMsg
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
OrderSetting
orderSetting
=
dataCache
.
getOrderSetting
();
boolean
openZhiYin
=
orderSetting
.
getShelfLightType
().
equals
(
1
);
Map
<
String
,
List
<
DataLog
>>
outMap
=
new
HashMap
<>();
//
OrderSetting orderSetting = dataCache.getOrderSetting();
//
boolean openZhiYin = orderSetting.getShelfLightType().equals(1);
//
Map<String, List<DataLog>> outMap = new HashMap<>();
//亮灯
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
(
statusBean
.
getCid
());
for
(
DataLog
queueTask
:
queueTasks
)
{
if
(
queueTask
.
isWait
()){
queueTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
queueTask
);
String
rgb
=
queueTask
.
getLightColor
();
ORDER_COLOR
color
=
ORDER_COLOR
.
fromRgb
(
rgb
);
if
(
color
==
null
){
if
(
queueTask
.
isPutInTask
()){
if
(
queueTask
.
isWait
())
{
ORDER_COLOR
color
=
null
;
if
(
queueTask
.
isPutInTask
())
{
//入库默认深绿色 DARKGREEN
color
=
ORDER_COLOR
.
DARKGREEN
;
}
else
{
if
(
openZhiYin
&&
ObjectUtil
.
isNotEmpty
(
queueTask
.
getSourceId
()))
{
List
<
DataLog
>
dataLogList
=
outMap
.
get
(
queueTask
.
getSourceId
());
if
(
dataLogList
==
null
)
{
dataLogList
=
new
ArrayList
<>();
}
else
{
if
(
ObjectUtil
.
isNotEmpty
(
queueTask
.
getSourceId
()))
{
if
(
queueTask
.
isInOperate
())
{
//首盘料 颜色:CYAN
//截料料 颜色:PURPLE
//普通工单 颜色:SKYBLUE
String
rgb
=
queueTask
.
getLightColor
();
color
=
ORDER_COLOR
.
fromRgb
(
rgb
);
}
else
{
continue
;
}
dataLogList
.
add
(
queueTask
);
outMap
.
put
(
queueTask
.
getSourceId
(),
dataLogList
);
}
else
{
//普通出库蓝色 BLUE
color
=
ORDER_COLOR
.
BLUE
;
}
}
if
(
color
!=
null
)
{
queueTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
queueTask
);
statusBean
.
addData
(
"open"
,
queueTask
.
getPosName
()
+
"="
+
color
.
name
());
log
.
info
(
"库位["
+
queueTask
.
getPosName
()
+
"]+亮灯:"
+
color
.
name
());
}
statusBean
.
addData
(
"open"
,
queueTask
.
getPosName
()+
"="
+
color
.
name
());
log
.
info
(
"库位["
+
queueTask
.
getPosName
()+
"]+亮灯:"
+
color
.
name
());
}
// else if(queueTask.isCancel()){
// if(queueTask.isCheckOutTask()){
...
...
@@ -224,11 +230,6 @@ public class NLPShelfHandler extends BaseDeviceHandler{
// }
}
List
<
DataLog
>
dataLogs
=
getLightGuideTask
(
outMap
);
for
(
DataLog
task
:
dataLogs
)
{
statusBean
.
addData
(
"open"
,
task
.
getPosName
()
+
"="
+
ORDER_COLOR
.
fromRgb
(
task
.
getLightColor
()).
name
());
}
return
statusBean
;
}
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
89fad21
...
...
@@ -394,48 +394,6 @@ public class LiteOrderCache implements ITaskListener {
@Autowired
private
SafetyInventoryMapper
safetyInventoryMapper
;
// /**
// * 获取需要截料的物料
// * @return key=需要截料的物料编号
// */
// private Map<String,SafetyInventoryDto> getSafetyInventoryMap( ) {
// List<Component> componentList = componentManager.findByQuery(new Query());
// Map<String, InventoryItem> inventoryItemMap = dataCache.getAllInventory(null, "");
//
//
// Map<String, SafetyInventoryDto> resultsMap = new HashMap<>();
// //循环PN
// for (Component com :
// componentList) {
// InventoryItem item = inventoryItemMap.get(com.getPartNumber());
// SafetyInventoryDto dto = new SafetyInventoryDto();
// if (item == null) {
// } else {
// dto = safetyInventoryMapper.toDto(item);
// }
// dto.setPartNumber(com.getPartNumber());
// dto.setAmount(com.getAmount());
// dto.setSupplementReel(0);
// //截料: 库存物料的盘数≤设定值 ,设定值使用安全库存
// if (dto.getStockCount() < com.getSafetyStoreNum()) {
//
// if (dto.getStockReel() > 0 && dto.getStockCount() > 0) {
//
// int reelCount = dto.getStockCount() / dto.getStockReel();
// //补充盘数
// int needReel = (com.getMinStoreNum() - dto.getStockCount()) / reelCount;
// dto.setSupplementReel(needReel);
// } else {
// int needReel = com.getMinStoreNum() / dto.getAmount();
// dto.setSupplementReel(needReel);
// }
// }
//
// resultsMap.put(com.getPartNumber(), dto);
// }
// return resultsMap;
// }
/**
* 锁定物料
*/
...
...
@@ -524,7 +482,6 @@ public class LiteOrderCache implements ITaskListener {
boolean
isGuizhong
=
orderItem
.
getOverFlag
()==
1
;
//判断是否需要截料
boolean
needJieliao
=
false
;
// boolean needJieliao = jieliaoMap.containsKey(pn);
if
(
needNum
<=
0
)
{
continue
;
...
...
@@ -544,7 +501,7 @@ public class LiteOrderCache implements ITaskListener {
Component
component
=
componentManager
.
findOneByPN
(
pn
);
if
(
component
==
null
){
log
.
info
(
"工单["
+
cacheOrder
.
getOrderNo
()
+
"] 物料号["
+
pn
+
"] ,需求数量["
+
orderItem
.
getWemng
()
+
"], 未找到元器件信息, 缺料 "
);
return
"smfcore.order.out.short"
;
return
materialShortPro
(
userName
,
cacheOrder
)
;
}
//判断库存
if
(
storageNum
<
component
.
getSafetyStoreNum
()){
...
...
@@ -554,7 +511,7 @@ public class LiteOrderCache implements ITaskListener {
if
(
storageNum
<
orderItem
.
getQty
()){
//不满足实际需求,不发,报缺料
log
.
info
(
"工单["
+
cacheOrder
.
getOrderNo
()
+
"] 物料号["
+
pn
+
"] ,需求数量["
+
orderItem
.
getWemng
()
+
"], 库存总数量["
+
storageNum
+
"], 不满足实际需求,缺料 "
);
return
"smfcore.order.out.short"
;
return
materialShortPro
(
userName
,
cacheOrder
)
;
}
int
wholeReelCount
=
0
;
...
...
@@ -672,7 +629,7 @@ public class LiteOrderCache implements ITaskListener {
if
(
outNum
<
orderItem
.
getQty
())
{
//不满足实际需求,不发,报缺料
log
.
info
(
"工单["
+
cacheOrder
.
getOrderNo
()
+
"] 物料号["
+
pn
+
"] ,需求数量["
+
orderItem
.
getWemng
()
+
"], 库存可发数量["
+
outNum
+
"], 不满足实际需求,缺料 "
);
return
"smfcore.order.out.short"
;
return
materialShortPro
(
userName
,
cacheOrder
)
;
}
}
//可以出库
...
...
@@ -756,6 +713,21 @@ public class LiteOrderCache implements ITaskListener {
return
""
;
}
public
String
materialShortPro
(
String
userName
,
LiteOrder
liteOrder
){
//挑料时缺料,直接 关闭工单
log
.
info
(
"工单["
+
liteOrder
.
getOrderNo
()+
"]缺料,直接关闭工单"
);
liteOrder
.
setOperateUser
(
userName
);
liteOrder
.
setStatus
(
LITEORDER_STATUS
.
CLOSED
);
liteOrder
.
setClosed
(
true
);
liteOrderManager
.
save
(
liteOrder
);
liteOrderMap
.
put
(
liteOrder
.
getOrderNo
(),
liteOrder
);
return
"smfcore.order.out.short"
;
}
// /**
// * 锁定物料
// */
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
89fad21
...
...
@@ -23,6 +23,7 @@ import com.neotel.smfcore.core.system.rest.bean.dto.TaskDto;
import
com.neotel.smfcore.core.system.rest.bean.mapstruct.TaskMapper
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.hikvision.bean.HikOutInfo
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.bean.FileProperties
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
...
...
@@ -174,38 +175,50 @@ public class OrderController {
}
File
folder
=
new
File
(
properties
.
getPath
(),
"pos"
);
File
localFile
=
FileUtil
.
upload
(
orderFile
,
folder
.
getAbsolutePath
());
Map
<
String
,
List
<
LiteOrderItem
>>
itemMap
=
orderFileWatch
.
readCsvFile
(
fileName
,
localFile
.
getAbsolutePath
());
// Map<String, List<LiteOrderItem>> itemMap = orderFileWatch.readCsvFile(fileName, localFile.getAbsolutePath());
List
<
HikOutInfo
>
itemList
=
orderFileWatch
.
readCsvFile
(
fileName
,
localFile
.
getAbsolutePath
());
if
(
item
Map
==
null
||
itemMap
.
size
()
<=
0
)
{
if
(
item
List
==
null
||
itemList
.
size
()
<=
0
)
{
throw
new
ValidateException
(
"smfcore.fileError"
,
"文件解析失败"
);
}
for
(
String
so
:
itemMap
.
keySet
()
)
{
for
(
HikOutInfo
outInfo
:
itemList
)
{
List
<
LiteOrderItem
>
liteOrderItems
=
itemMap
.
get
(
so
);
if
(
liteOrderItems
.
size
()
<=
0
)
{
continue
;
//查找工单是否存在
String
orderNo
=
outInfo
.
getJobNo
();
if
(
ObjectUtil
.
isNotEmpty
(
outInfo
.
getReplenishmentNo
()))
{
orderNo
+=
"-"
+
outInfo
.
getReplenishmentNo
();
}
LiteOrder
liteOrder
=
new
LiteOrder
(
so
,
liteOrderItems
);
liteOrder
.
setSource
(
localFile
.
getName
());
LiteOrder
dbOrder
=
liteOrderManager
.
findByOrderNo
(
liteOrder
.
getOrderNo
());
if
(
dbOrder
!=
null
)
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
//把名字改为带时间的
String
newOrderNo
=
liteOrder
.
getOrderNo
()
+
"-"
+
format
.
format
(
new
Date
());
dbOrder
=
liteOrderManager
.
findByOrderNo
(
newOrderNo
);
if
(
dbOrder
==
null
)
{
liteOrder
.
setOrderNo
(
newOrderNo
);
LiteOrder
order
=
liteOrderCache
.
findOrderByNo
(
orderNo
);
if
(
order
==
null
)
{
//创建工单
order
=
new
LiteOrder
();
order
.
setOrderNo
(
orderNo
);
order
.
UpdateOutInfo
(
outInfo
);
LiteOrderItem
item
=
outInfo
.
crateOrderItem
(
orderNo
);
order
.
addOrderItems
(
item
);
liteOrderManager
.
createWithItems
(
order
);
liteOrderCache
.
addOrderToMap
(
order
);
log
.
info
(
"新建工单["
+
order
.
getOrderNo
()
+
"]工单详情"
+
order
.
getOrderItems
().
size
()+
"条"
);
}
else
{
log
.
info
(
"数据库中已存在工单号为["
+
liteOrder
.
getOrderNo
()
+
"],忽略文件:"
+
localFile
.
getAbsolutePath
());
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.order.ameExists"
,
"工单名称[{0}]已存在"
,
new
String
[]{
liteOrder
.
getOrderNo
()});
if
(
order
.
getStatus
()
>
LITEORDER_STATUS
.
NEW
)
{
log
.
info
(
"工单["
+
orderNo
+
"]已存在,且状态为["
+
order
.
getStatus
()
+
"],不能修改工单信息:"
+
outInfo
.
toString
());
continue
;
}
order
.
UpdateOutInfo
(
outInfo
);
LiteOrderItem
item
=
outInfo
.
crateOrderItem
(
orderNo
);
order
=
liteOrderCache
.
updateOrderItem
(
order
,
item
);
liteOrderCache
.
addOrderToMap
(
order
);
log
.
info
(
"更新工单["
+
order
.
getOrderNo
()
+
"]物料号["
+
item
.
getMaterialNo
()+
"]"
);
}
log
.
info
(
"新增加订单:"
+
liteOrder
.
getOrderNo
()
+
",共"
+
liteOrderItems
.
size
()
+
"条工单详情"
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
}
return
ResultBean
.
newOkResult
(
"smfcore.order.uploadOK"
,
"工单上传成功"
,
""
);
...
...
@@ -381,7 +394,6 @@ public class OrderController {
return
ResultBean
.
newOkResult
(
"smfcore.order.nextOk"
,
"成功切换到下一个工单"
,
""
);
}
private
List
<
LiteOrder
>
getExecuteOrders
(
User
user
)
{
//查询正在执行的工单列表
Query
query
=
new
Query
(
Criteria
.
where
(
"status"
).
ne
(
LITEORDER_STATUS
.
CLOSED
).
ne
(
LITEORDER_STATUS
.
NEW
));
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
89fad21
...
...
@@ -10,6 +10,7 @@ import org.springframework.data.annotation.Transient;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -261,6 +262,7 @@ public class LiteOrder extends BasePo implements Serializable {
this
.
setUpdateDate
(
new
Date
());
this
.
setEndDate
(
outInfo
.
getEndD
());
this
.
setWemng
(
outInfo
.
getWemng
());
orderItems
=
new
ArrayList
<>();
}
public
void
addOrderItems
(
LiteOrderItem
item
){
...
...
src/main/java/com/neotel/smfcore/core/order/util/OrderFileWatch.java
查看文件 @
89fad21
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/system/rest/SettingsController.java
查看文件 @
89fad21
...
...
@@ -180,36 +180,92 @@ public class SettingsController {
List
<
String
>
titles
=
new
ArrayList
<>();
OrderSetting
orderSetting
=
dataCache
.
getOrderSetting
();
titles
.
add
(
orderSetting
.
getPn
()
);
titles
.
add
(
orderSetting
.
getFeeder
());
titles
.
add
((
orderSetting
.
getQty
()));
titles
.
add
(
orderSetting
.
getRi
());
titles
.
add
(
orderSetting
.
getSo
());
for
(
int
i
=
1
;
i
<=
10
;
i
++)
{
// int jobNoIndex = csvRead.getIndex("jobNo", "jobNo");
// int stationIndex = csvRead.getIndex("station", "station");
// int baseCodeIndex = csvRead.getIndex("baseCode", "baseCode");
// int lgortIndex = csvRead.getIndex("lgort", "lgort");
// int workLineIndex = csvRead.getIndex("workLine", "workLine");
// int startDateIndex = csvRead.getIndex("startDate", "startDate");
// int endDateIndex = csvRead.getIndex("endDate", "endDate");
// int materialNoIndex = csvRead.getIndex("materialNo", "materialNo");
// int qtyIndex = csvRead.getIndex("qty", "qty");
// int overFlagIndex = csvRead.getIndex("overFlag", "overFlag");
// int incrementIndex = csvRead.getIndex("increment", "increment");
// int wemngIndex = csvRead.getIndex("wemng", "wemng");
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
if
(
i
<=
4
){
map
.
put
(
orderSetting
.
getPn
(),
"PN"
+
i
);
map
.
put
(
orderSetting
.
getFeeder
(),
"Feeder1"
+
i
);
map
.
put
(
orderSetting
.
getQty
(),
"100"
+
i
);
map
.
put
(
orderSetting
.
getRi
(),
""
);
map
.
put
(
orderSetting
.
getSo
(),
"WO1001"
);
}
else
{
map
.
put
(
orderSetting
.
getPn
(),
"PN2"
+
i
);
map
.
put
(
orderSetting
.
getFeeder
(),
"Feeder2"
+
i
);
map
.
put
(
orderSetting
.
getQty
(),
"200"
+
i
);
map
.
put
(
orderSetting
.
getRi
(),
""
);
map
.
put
(
orderSetting
.
getSo
(),
"WO1002"
);
String
[]
titleArray
=
new
String
[]{
"jobNo"
,
"station"
,
"baseCode"
,
"lgort"
,
"workLine"
,
"startDate"
,
"endDate"
,
"materialNo"
,
"qty"
,
"overFlag"
,
"increment"
,
"wemng"
};
for
(
String
title
:
titleArray
)
{
titles
.
add
(
title
);
}
String
currTime
=
DateUtil
.
toDateString
(
new
Date
(),
"yyyyMMdd-HHmm"
);
for
(
int
i
=
1
;
i
<=
5
;
i
++)
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"jobNo"
,
"jobNo"
+
currTime
);
map
.
put
(
"station"
,
"station"
.
toUpperCase
()
+
"-"
+
i
);
map
.
put
(
"baseCode"
,
"baseCode"
.
toUpperCase
()
+
"-"
+
i
);
map
.
put
(
"lgort"
,
"lgort"
.
toUpperCase
()
+
"-"
+
i
);
map
.
put
(
"workLine"
,
"workLine"
+
currTime
);
map
.
put
(
"startDate"
,
DateUtil
.
toDateString
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
new
Date
());
cal
.
add
(
Calendar
.
DAY_OF_MONTH
,
7
);
Date
date
=
cal
.
getTime
();
map
.
put
(
"endDate"
,
DateUtil
.
toDateString
(
date
,
"yyyy-MM-dd HH:mm:ss"
));
map
.
put
(
"materialNo"
,
"materialNo"
.
toUpperCase
()
+
"-"
+
i
);
map
.
put
(
"qty"
,
i
*
1000
);
map
.
put
(
"overFlag"
,
"1"
);
map
.
put
(
"increment"
,
i
*
100
);
map
.
put
(
"wemng"
,
i
*
10
);
maps
.
add
(
map
);
}
FileUtil
.
downloadCSV
(
maps
,
titles
,
response
);
}
catch
(
Exception
e
)
{
log
.
error
(
"导出失败"
+
e
.
getMessage
(),
e
);
}
}
// public void downloadOrderModel( HttpServletResponse response) throws IOException {
// try {
// List<Map<String, Object>> maps = new ArrayList<>();
// List<String> titles = new ArrayList<>();
// OrderSetting orderSetting = dataCache.getOrderSetting();
//
// titles.add(orderSetting.getPn() );
// titles.add(orderSetting.getFeeder());
// titles.add((orderSetting.getQty()));
// titles.add(orderSetting.getRi());
// titles.add(orderSetting.getSo());
// for(int i=1;i<=10;i++) {
//
// Map<String, Object> map = new LinkedHashMap<>();
// if(i<=4){
// map.put(orderSetting.getPn(),"PN"+i);
// map.put(orderSetting.getFeeder(),"Feeder1"+i);
// map.put(orderSetting.getQty(),"100"+i);
// map.put(orderSetting.getRi(),"");
// map.put(orderSetting.getSo(),"WO1001" );
// }
// else{
// map.put(orderSetting.getPn(),"PN2"+i);
// map.put(orderSetting.getFeeder(),"Feeder2"+i);
// map.put(orderSetting.getQty(),"200"+i);
// map.put(orderSetting.getRi(),"");
// map.put(orderSetting.getSo(),"WO1002" );
// }
// maps.add(map);
// }
//
// FileUtil.downloadCSV(maps, titles, response);
// } catch (Exception e) {
// log.error("导出失败" + e.getMessage(), e);
// }
// }
@ApiOperation
(
"获取版本号"
)
@GetMapping
(
"/version"
)
...
...
src/main/java/com/neotel/smfcore/hikvision/HikvisionApiController.java
查看文件 @
89fad21
...
...
@@ -110,11 +110,6 @@ public class HikvisionApiController {
LiteOrderItem
item
=
outInfo
.
crateOrderItem
(
orderNo
);
order
=
liteOrderCache
.
updateOrderItem
(
order
,
item
);
// item = liteOrderItemManager.save(item);
// List<LiteOrderItem> items = order.getOrderItems();
// items.add(item);
// order.setOrderItems(items);
// liteOrderManager.save(order);
liteOrderCache
.
addOrderToMap
(
order
);
}
...
...
src/main/java/com/neotel/smfcore/hikvision/bean/HikOutInfo.java
查看文件 @
89fad21
...
...
@@ -21,7 +21,7 @@ public class HikOutInfo implements Serializable {
/**
*replenishmentNo String false 补料单号,如果有值表示此单为补料单[合并唯一]
*/
protected
String
replenishmentNo
;
protected
String
replenishmentNo
=
""
;
/**
*baseCode String true 基地编号
...
...
@@ -79,7 +79,7 @@ public class HikOutInfo implements Serializable {
/**
*reason String false 移动原因
*/
protected
String
reason
;
protected
String
reason
=
""
;
public
LiteOrderItem
crateOrderItem
(
String
orderNo
)
{
LiteOrderItem
item
=
new
LiteOrderItem
();
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论