Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit fbed650f
由
LN
编写于
2022-04-25 17:51:41 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
转储出库界面增加搜索功能。
增加齐套代码。
1 个父辈
d878bfe6
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
405 行增加
和
11 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
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/OrderPnCache.java
src/main/java/com/neotel/smfcore/core/order/bean/OrderPnInfo.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderPnDto.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/mapstruct/OrderPnMapper.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
src/main/java/com/neotel/smfcore/core/outList/bean/query/OutListQueryCondition.java
src/main/java/com/neotel/smfcore/core/outList/rest/OutListController.java
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
fbed650
...
...
@@ -7,6 +7,7 @@ import com.neotel.smfcore.core.message.enums.MessageType;
import
com.neotel.smfcore.core.message.service.manager.IMessageManager
;
import
com.neotel.smfcore.core.message.service.po.Message
;
import
com.neotel.smfcore.core.message.util.DeviceMessageUtil
;
import
com.neotel.smfcore.core.order.OrderPnCache
;
import
com.neotel.smfcore.core.order.util.OrderFileWatch
;
import
com.neotel.smfcore.core.outList.util.OutListCache
;
import
com.neotel.smfcore.hikvision.bean.api.ResponseParam
;
...
...
@@ -56,6 +57,9 @@ public class DataInitManager {
private
OutListCache
outListCache
;
@Autowired
private
IMessageManager
messageManager
;
@Autowired
private
OrderPnCache
orderPnCache
;
/**
* 当前版本
*/
...
...
@@ -121,6 +125,8 @@ public class DataInitManager {
outListCache
.
loadMap
();
orderPnCache
.
init
();
Message
message
=
Message
.
newMsg
(
MessageType
.
INFO
,
"server"
,
""
,
""
,
"smfcore.messages.serverStart"
,
"服务器启动"
,
null
);
messageManager
.
save
(
message
);
}
catch
(
Exception
exception
)
{
...
...
src/main/java/com/neotel/smfcore/common/utils/DateUtil.java
查看文件 @
fbed650
...
...
@@ -175,7 +175,48 @@ public class DateUtil {
return
date0
.
after
(
date1
)?
date0
:
date1
;
}
public
static
boolean
isBelong
(
String
beginStr
,
String
endStr
){
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"HH:mm"
);
//设置日期格式
Date
now
=
null
;
Date
beginTime
=
null
;
Date
endTime
=
null
;
try
{
now
=
df
.
parse
(
df
.
format
(
new
Date
()));
beginTime
=
df
.
parse
(
beginStr
);
endTime
=
df
.
parse
(
endStr
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
Boolean
flag
=
belongCalendar
(
now
,
beginTime
,
endTime
);
return
flag
;
}
/**
* 判断时间是否在时间段内
* @param nowTime
* @param beginTime
* @param endTime
* @return
*/
private
static
boolean
belongCalendar
(
Date
nowTime
,
Date
beginTime
,
Date
endTime
)
{
Calendar
date
=
Calendar
.
getInstance
();
date
.
setTime
(
nowTime
);
Calendar
begin
=
Calendar
.
getInstance
();
begin
.
setTime
(
beginTime
);
Calendar
end
=
Calendar
.
getInstance
();
end
.
setTime
(
endTime
);
if
(
date
.
after
(
begin
)
&&
date
.
before
(
end
))
{
return
true
;
}
else
{
return
false
;
}
}
public
static
class
Req
{
private
String
seq
;
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
fbed650
...
...
@@ -480,6 +480,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{
public
ResultBean
shelfStatus
(
HttpServletRequest
request
){
String
cid
=
request
.
getParameter
(
"cid"
);
Storage
storage
=
dataCache
.
getStorage
(
cid
);
if
(
storage
==
null
){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.shelfNotExist"
,
"{0}对应的料架不存在"
,
new
String
[]{
cid
}
);
}
List
<
StoragePos
>
allPos
=
storagePosManager
.
findNotEmptyByStorageId
(
storage
.
getId
());
List
<
String
>
posList
=
new
ArrayList
<>();
for
(
StoragePos
pos
:
allPos
)
{
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
fbed650
...
...
@@ -12,6 +12,7 @@ import com.neotel.smfcore.core.device.util.DataCache;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
import
com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderPnMapper
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
...
...
@@ -53,6 +54,8 @@ public class LiteOrderCache implements ITaskListener {
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
OrderPnMapper
orderPnMapper
;
/**
...
...
@@ -193,8 +196,8 @@ public class LiteOrderCache implements ITaskListener {
if
(
liteOrderItem
.
getId
().
equals
(
orderItemId
))
{
log
.
info
(
"工单["
+
orderNo
+
"]的任务"
+
task
.
getPartNumber
()
+
"["
+
task
.
getBarcode
()
+
"]出库完成,已完成数量+1="
+
order
.
getFinishedReelCount
()
+
"/"
+
order
.
getTaskReelCount
());
//更新对应条目的已出库数量和出库盘数
liteOrderItem
.
setOutNum
(
liteOrderItem
.
getOutNum
()
+
task
.
getNum
());
liteOrderItem
.
setOutReelCount
(
liteOrderItem
.
getOutReelCount
()
+
1
);
//
liteOrderItem.setOutNum(liteOrderItem.getOutNum() + task.getNum());
//
liteOrderItem.setOutReelCount(liteOrderItem.getOutReelCount() + 1);
liteOrderItem
.
setTotalOutNum
(
liteOrderItem
.
getTotalOutNum
()
+
task
.
getNum
());
liteOrderItem
.
setTotalOutReelCount
(
liteOrderItem
.
getTotalOutReelCount
()
+
1
);
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
...
...
@@ -630,8 +633,8 @@ public class LiteOrderCache implements ITaskListener {
itemOutCount
+=
pos
.
getBarcode
().
getAmount
();
}
orderItem
.
setTotalOutReelCount
(
orderItem
.
getTotalOutReelCount
()+
itemReelCount
);
orderItem
.
setTotalOutNum
(
orderItem
.
getTotalOutNum
()+
itemOutCount
);
//
orderItem.setTotalOutReelCount(orderItem.getTotalOutReelCount()+itemReelCount);
//
orderItem.setTotalOutNum(orderItem.getTotalOutNum()+itemOutCount);
orderItem
.
setOutReelCount
(
itemReelCount
);
orderItem
.
setOutNum
(
itemOutCount
);
liteOrderItemManager
.
save
(
orderItem
);
...
...
src/main/java/com/neotel/smfcore/core/order/OrderPnCache.java
0 → 100644
查看文件 @
fbed650
package
com
.
neotel
.
smfcore
.
core
.
order
;
import
com.neotel.smfcore.common.utils.DateUtil
;
import
com.neotel.smfcore.core.barcode.service.manager.IComponentManager
;
import
com.neotel.smfcore.core.barcode.service.po.Component
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.bean.OrderPnInfo
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.core.storage.bean.InventoryItem
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
/**
* 齐套功能
*/
@Service
@Slf4j
public
class
OrderPnCache
{
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@Autowired
private
DataCache
dataCache
;
@Autowired
private
IComponentManager
componentManager
;
private
Date
lastUpdateDate
;
private
Map
<
String
,
OrderPnInfo
>
orderPnInfoMap
=
null
;
ScheduledExecutorService
scheduledThreadPool
=
Executors
.
newScheduledThreadPool
(
1
);
private
static
boolean
isRunning
=
false
;
public
void
init
(){
if
(!
isRunning
){
isRunning
=
true
;
log
.
info
(
"开启订单监控任务"
);
//10秒之后执行,每60秒(一分钟)钟执行一次
scheduledThreadPool
.
scheduleAtFixedRate
(
new
Runnable
()
{
@Override
public
void
run
()
{
autoUpdateData
();
}
},
10
,
60
,
TimeUnit
.
SECONDS
);
}
}
public
List
<
OrderPnInfo
>
getDataList
(){
if
(
orderPnInfoMap
==
null
){
return
new
ArrayList
<>();
}
return
new
ArrayList
<>(
orderPnInfoMap
.
values
());
}
private
void
autoUpdateData
(){
if
(
orderPnInfoMap
==
null
){
//软件重启,需要更新
reloadData
();
}
else
{
//如果十分钟内才更新过,就不需要再更新了
long
timeSpans
=
System
.
currentTimeMillis
()-
lastUpdateDate
.
getTime
();
int
m
=(
int
)(
timeSpans
/
1000
/
60
);
if
(
m
<
10
){
return
;
}
//每天 8:30,20:30 自动更新
if
(
DateUtil
.
isBelong
(
"08:30"
,
"08:36"
)){
reloadData
();
}
if
(
DateUtil
.
isBelong
(
"20:30"
,
"20:36"
)){
reloadData
();
}
}
}
public
synchronized
void
reloadData
()
{
log
.
info
(
"开始更新齐套数据----------"
);
List
<
LiteOrder
>
liteOrders
=
liteOrderManager
.
findUnEndOrdersList
();
orderPnInfoMap
=
new
HashMap
<>();
Map
<
String
,
Integer
>
needPnMap
=
new
HashMap
<>();
for
(
LiteOrder
order
:
liteOrders
)
{
if
(
order
.
isClosed
())
{
continue
;
}
for
(
LiteOrderItem
item
:
order
.
getOrderItems
())
{
if
(
item
.
isOutFinished
())
{
continue
;
}
String
pn
=
item
.
getMaterialNo
();
int
needNum
=
item
.
getQty
()
-
item
.
getOutNum
();
if
(
needNum
>
0
)
{
Integer
recordNum
=
needPnMap
.
get
(
pn
);
if
(
recordNum
==
null
)
{
recordNum
=
needNum
;
}
else
{
recordNum
+=
needNum
;
}
needPnMap
.
put
(
pn
,
recordNum
);
}
}
}
//查询总库存
Map
<
String
,
InventoryItem
>
inventoryItemMap
=
dataCache
.
getAllInventory
(
new
ArrayList
<>(),
""
);
List
<
String
>
pnList
=
new
ArrayList
<>(
needPnMap
.
keySet
());
for
(
String
pn
:
pnList
)
{
Integer
needNum
=
needPnMap
.
get
(
pn
);
//先取库存数,判断是否缺料
InventoryItem
inventoryItem
=
inventoryItemMap
.
get
(
pn
);
if
(
inventoryItem
==
null
)
{
inventoryItem
=
new
InventoryItem
();
inventoryItem
.
setPartNumber
(
pn
);
}
int
stockCount
=
inventoryItem
.
getStockCount
()
-
inventoryItem
.
getLockCount
();
int
lackNum
=
needNum
-
stockCount
;
if
(
lackNum
<=
0
)
{
continue
;
}
Component
component
=
componentManager
.
findOneByPN
(
pn
);
int
reelAmount
=
1000
;
//每盘料数量
if
(
component
!=
null
)
{
reelAmount
=
component
.
getAmount
();
}
int
needReel
=
lackNum
/
reelAmount
;
OrderPnInfo
pnInfo
=
new
OrderPnInfo
(
pn
,
needNum
,
lackNum
,
stockCount
,
reelAmount
,
needReel
,
new
Date
());
orderPnInfoMap
.
put
(
pn
,
pnInfo
);
}
log
.
info
(
"结束更新齐套数据,共有["
+
orderPnInfoMap
.
size
()
+
"]元器件缺料----------"
);
lastUpdateDate
=
new
Date
();
}
}
src/main/java/com/neotel/smfcore/core/order/bean/OrderPnInfo.java
0 → 100644
查看文件 @
fbed650
package
com
.
neotel
.
smfcore
.
core
.
order
.
bean
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
OrderPnInfo
implements
Serializable
{
/**
* 物编
*/
private
String
partNumber
;
// /**
// * 总需求数量
// */
// private int allNeedNum=0;
//
// /**
// * 锁定的数量,已分配出库任务的数量
// */
// private int lockCount = 0;
/**
* 当前需求数量
*/
private
int
needNum
=
0
;
/**
* 缺料数
*/
private
int
lackNum
=
0
;
/**
* 库存数量
*/
private
int
stockCount
=
0
;
/**
* 每盘料的包装数量
*/
private
int
reelAmount
=
0
;
/**
* 缺料盘数
*/
private
int
reelCount
=
0
;
private
Date
updateTime
=
new
Date
();
}
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
fbed650
...
...
@@ -9,10 +9,14 @@ import com.neotel.smfcore.common.exception.ValidateException;
import
com.neotel.smfcore.common.utils.*
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.OrderPnCache
;
import
com.neotel.smfcore.core.order.bean.OrderPnInfo
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.rest.bean.dto.OrderDto
;
import
com.neotel.smfcore.core.order.rest.bean.dto.OrderPnDto
;
import
com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderItemMapper
;
import
com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderMapper
;
import
com.neotel.smfcore.core.order.rest.bean.mapstruct.OrderPnMapper
;
import
com.neotel.smfcore.core.order.rest.bean.query.OrderQueryCondition
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
...
...
@@ -90,6 +94,11 @@ public class OrderController {
@Autowired
private
TaskMapper
taskMapper
;
@Autowired
private
OrderPnMapper
orderPnMapper
;
@Autowired
private
OrderPnCache
orderPnCache
;
// @ApiOperation("导出用户数据")
// @GetMapping(value = "/download")
// @PreAuthorize("@el.check('user:list')")
...
...
@@ -392,6 +401,24 @@ public class OrderController {
return
ResultBean
.
newOkResult
(
"smfcore.order.nextOk"
,
"成功切换到下一个工单"
,
""
);
}
@ApiOperation
(
"齐套页面,获取齐套数据"
)
@GetMapping
(
"/orderSet"
)
@PreAuthorize
(
"@el.check('workOrder')"
)
public
List
<
OrderPnDto
>
orderSetData
(
)
{
List
<
OrderPnInfo
>
orderPnInfos
=
orderPnCache
.
getDataList
();
List
<
OrderPnDto
>
dtos
=
orderPnMapper
.
toDto
(
orderPnInfos
);
return
dtos
;
}
@ApiOperation
(
"齐套页面,刷新齐套数据"
)
@PostMapping
(
"/orderSet/update"
)
@PreAuthorize
(
"@el.check('workOrder')"
)
public
List
<
OrderPnDto
>
updateOrderSet
(
)
{
orderPnCache
.
reloadData
();
List
<
OrderPnInfo
>
orderPnInfos
=
orderPnCache
.
getDataList
();
List
<
OrderPnDto
>
dtos
=
orderPnMapper
.
toDto
(
orderPnInfos
);
return
dtos
;
}
private
List
<
LiteOrder
>
getExecuteOrders
(
User
user
)
{
//查询正在执行的工单列表
...
...
src/main/java/com/neotel/smfcore/core/order/rest/bean/dto/OrderPnDto.java
0 → 100644
查看文件 @
fbed650
package
com
.
neotel
.
smfcore
.
core
.
order
.
rest
.
bean
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
@Getter
@Setter
public
class
OrderPnDto
implements
Serializable
{
@ApiModelProperty
(
value
=
"物料编号"
)
private
String
partNumber
;
@ApiModelProperty
(
value
=
"缺料数"
)
private
int
lackNum
=
0
;
@ApiModelProperty
(
value
=
"缺料盘数"
)
private
int
reelCount
=
0
;
// @ApiModelProperty(value = "当前需求数量")
// private int needNum=0;
// @ApiModelProperty(value = "库存数量")
// private int stockCount = 0;
// @ApiModelProperty(value = "每盘料的包装数量")
// private int reelAmount=0;
}
src/main/java/com/neotel/smfcore/core/order/rest/bean/mapstruct/OrderPnMapper.java
0 → 100644
查看文件 @
fbed650
package
com
.
neotel
.
smfcore
.
core
.
order
.
rest
.
bean
.
mapstruct
;
import
com.neotel.smfcore.common.base.BaseMapper
;
import
com.neotel.smfcore.core.order.bean.OrderPnInfo
;
import
com.neotel.smfcore.core.order.rest.bean.dto.OrderPnDto
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
@Mapper
(
componentModel
=
"spring"
,
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
OrderPnMapper
extends
BaseMapper
<
OrderPnDto
,
OrderPnInfo
>
{
}
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrderItem.java
查看文件 @
fbed650
...
...
@@ -57,22 +57,22 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private
int
needReelCount
=
0
;
/**
* 当前任务已出数量
* 当前任务已出数量
,已分配任务
*/
private
int
outNum
=
0
;
/**
* 当前任务已出盘数
* 当前任务已出盘数
,已分配任务
*/
private
int
outReelCount
=
0
;
/**
* 累计已出数量
* 累计已出数量
,已完成
*/
private
int
totalOutNum
=
0
;
/**
* 累计已出盘数
* 累计已出盘数
,已完成
*/
private
int
totalOutReelCount
=
0
;
...
...
src/main/java/com/neotel/smfcore/core/outList/bean/query/OutListQueryCondition.java
查看文件 @
fbed650
...
...
@@ -13,6 +13,6 @@ public class OutListQueryCondition {
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
private
BetweenData
<
Date
>
createDate
;
@QueryCondition
//状态,0=所有,1=已关闭,2=未关闭
private
Integer
status
;
}
src/main/java/com/neotel/smfcore/core/outList/rest/OutListController.java
查看文件 @
fbed650
...
...
@@ -25,10 +25,12 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
sun.java2d.pipe.OutlineTextRenderer
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -60,11 +62,62 @@ public class OutListController {
@PreAuthorize
(
"@el.check('outList')"
)
public
PageData
<
OutListDto
>
query
(
OutListQueryCondition
criteria
,
Pageable
pageable
)
{
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
if
(
criteria
.
getStatus
()
!=
null
)
{
if
(
criteria
.
getStatus
()
==
1
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
is
(
LITEORDER_STATUS
.
CLOSED
));
}
else
if
(
criteria
.
getStatus
()
==
2
)
{
query
.
addCriteria
(
Criteria
.
where
(
"status"
).
ne
(
LITEORDER_STATUS
.
CLOSED
));
}
}
PageData
<
OutList
>
outList
=
outListManager
.
findByPage
(
query
,
pageable
);
PageData
<
OutListDto
>
resultList
=
outListMapper
.
toDto
(
outList
);
// if(outList.getTotalElements()<=0){
// addTestData();
// }
return
resultList
;
}
// private void addTestData(){
// for (int i=1;i<=5;i++){
// String name="test"+i;
// int type=0;
// //从接口获取出库单
// List<ReservedOrderItem> outOrderLists =new ArrayList<>();
// for (int j=0;j<=5;j++
// ) {
// ReservedOrderItem item=new ReservedOrderItem();
// item.setDocNo(name);
// item.setBaseCode("8001");
// item.setDumpQty(1000);
// item.setInLgort("M9143");
// item.setOutLgort("M9142");
// item.setMaterialNo("PN"+j);
// outOrderLists.add(item);
// }
//
// OutList outList = new OutList(name, LITEORDER_STATUS.NEW, type, new ArrayList<>());
// //新建出库单
// List<OutListItem> outListItems = new ArrayList<>();
// for (ReservedOrderItem obj :
// outOrderLists) {
// OutListItem item = obj.creatOutListItem();
// item.setName(name);
// outListItems.add(item);
//
// outList.setBaseCode(obj.getBaseCode());
// outList.setInLgort(obj.getInLgort());
// outList.setOutLgort(obj.getOutLgort());
// }
// outList.setOutListItems(outListItems);
// log.info("获取到转储单,新增加出库单:" + outList.getName() + ",共" + outListItems.size() + "条工单详情");
// outList = outListManager.createWithItems(outList);
// outListCache.addOutListToMap(outList);
// }
//
// }
@ApiOperation
(
"查看出库单详情"
)
@GetMapping
(
"/detial"
)
@PreAuthorize
(
"@el.check('outList')"
)
...
...
@@ -137,8 +190,8 @@ public class OutListController {
@ApiOperation
(
"出库操作"
)
@PostMapping
(
value
=
"/out"
)
@PreAuthorize
(
"@el.check('outList')"
)
public
ResultBean
checkOut
(
@RequestBody
Map
<
String
,
String
>
mapValues
)
{
String
name
=
mapValues
.
get
(
"name"
);
public
ResultBean
checkOut
(
@RequestBody
String
name
)
{
//
String name = mapValues.get("name");
if
(
name
==
null
)
{
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"orderNo"
});
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论