Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 721ef9cc
由
LN
编写于
2021-12-01 12:11:54 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
XLC功能代码
1 个父辈
3c1afeb1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
163 行增加
和
4 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/XLCBoxHandler.java
src/main/java/com/neotel/smfcore/core/device/rest/dto/XLCPosBarcodeDto.java
src/main/java/com/neotel/smfcore/core/device/rest/dto/XLCPosDetailDto.java
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosQueryCriteria.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/XLCBoxHandler.java
查看文件 @
721ef9c
package
com
.
neotel
.
smfcore
.
core
.
device
.
handler
.
impl
;
package
com
.
neotel
.
smfcore
.
core
.
device
.
handler
.
impl
;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.api.IOpAuthApi
;
import
com.neotel.smfcore.core.device.api.IOpAuthApi
;
import
com.neotel.smfcore.core.device.bean.BoxStatusBean
;
import
com.neotel.smfcore.core.device.bean.BoxStatusBean
;
import
com.neotel.smfcore.core.device.bean.NLShelfOperateBean
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.BOX_STATUS
;
import
com.neotel.smfcore.core.device.enums.BOX_STATUS
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.rest.dto.XLCPosBarcodeDto
;
import
com.neotel.smfcore.core.device.rest.dto.XLCPosDetailDto
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.rest.dto.StoragePosDto
;
import
com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper
;
import
com.neotel.smfcore.core.storage.rest.query.StoragePosQueryCriteria
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Collection
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentHashMap
;
@Service
//北京方仓
@RestController
@Api
(
tags
=
"XLC方仓"
)
@Slf4j
@Slf4j
public
class
XLCBoxHandler
extends
BaseDeviceHandler
{
public
class
XLCBoxHandler
extends
BaseDeviceHandler
{
public
XLCBoxHandler
(
List
<
IOpAuthApi
>
apiList
)
{
public
XLCBoxHandler
(
List
<
IOpAuthApi
>
apiList
)
{
super
(
apiList
);
super
(
apiList
);
}
}
@Autowired
private
IStoragePosManager
storagePosManager
;
@Autowired
private
StoragePosMapper
storagePosMapper
;
/**
/**
* 当前出入库操作的库位(key为cid, value为当前执行的任务)
* 当前出入库操作的库位(key为cid, value为当前执行的任务)
*/
*/
...
@@ -39,6 +70,69 @@ public class XLCBoxHandler extends BaseDeviceHandler {
...
@@ -39,6 +70,69 @@ public class XLCBoxHandler extends BaseDeviceHandler {
return
operateTaskMap
.
get
(
cid
);
return
operateTaskMap
.
get
(
cid
);
}
}
@ApiOperation
(
"XLC方仓容量详情"
)
@GetMapping
(
"/api/boxkanban/xlcDetails"
)
@PreAuthorize
(
"@el.check('boxkanban:info')"
)
public
List
<
XLCPosDetailDto
>
xlcDetails
(
StoragePosQueryCriteria
criteria
)
{
criteria
.
setUsed
(
true
);
// String storageId = mapValues.get("storageId");
// Query query = new Query(Criteria.where("storageId").is(storageId).and("used").is(true));
Query
query
=
QueryHelp
.
getQuery
(
criteria
);
List
<
StoragePos
>
enabledPosList
=
storagePosManager
.
findByQuery
(
query
);
// List<StoragePosDto> dtos = new ArrayList<>();
// for (StoragePos storagePos : enabledPosList) {
// if (!storagePos.isExpandPos()) {
// dtos.add(storagePosMapper.toDto(storagePos));
// }
// }
List
<
XLCPosDetailDto
>
dtos
=
new
ArrayList
<>();
for
(
StoragePos
pos
:
enabledPosList
)
{
boolean
isEx
=
pos
.
isExpandPos
();
if
((!
pos
.
isExpandPos
())
&&
(
pos
.
getBarcode
()
!=
null
))
{
List
<
XLCPosBarcodeDto
>
list
=
new
ArrayList
<>();
if
(
pos
.
getBarcode
().
getSubCodeMap
()
!=
null
)
{
Set
<
String
>
keys
=
pos
.
getBarcode
().
getSubCodeMap
().
keySet
();
for
(
String
key
:
keys
)
{
Barcode
barcode
=
pos
.
getBarcode
().
getSubCodeMap
().
get
(
key
);
list
.
add
(
toPosBarcodeDto
(
barcode
));
}
}
if
(
list
.
size
()<=
0
)
{
Random
r
=
new
Random
();
int
num
=
r
.
nextInt
()
%
10
;
for
(
int
i
=
1
;
i
<=
num
;
i
++)
{
XLCPosBarcodeDto
dto1
=
toPosBarcodeDto
(
pos
.
getBarcode
());
dto1
.
setBarcode
(
i
+
dto1
.
getBarcode
());
dto1
.
setAmount
(
i
*
1111
);
list
.
add
(
dto1
);
}
}
XLCPosBarcodeDto
barcodeDto
=
toPosBarcodeDto
(
pos
.
getBarcode
());
barcodeDto
.
setSubCodeList
(
list
);
XLCPosDetailDto
dto
=
new
XLCPosDetailDto
(
pos
.
getId
(),
pos
.
getStorageId
(),
pos
.
getPosName
(),
barcodeDto
);
dtos
.
add
(
dto
);
}
}
return
dtos
;
}
private
XLCPosBarcodeDto
toPosBarcodeDto
(
Barcode
barcode
){
XLCPosBarcodeDto
dto
=
new
XLCPosBarcodeDto
();
dto
.
setAmount
(
barcode
.
getAmount
());
dto
.
setBarcode
(
barcode
.
getBarcode
());
dto
.
setPartNumber
(
barcode
.
getPartNumber
());
dto
.
setId
(
barcode
.
getId
());
dto
.
setDescribe
(
barcode
.
getDescribe
());
return
dto
;
}
/**
/**
* 更新或清理(task为null)当前正在执行的任务
* 更新或清理(task为null)当前正在执行的任务
*/
*/
...
...
src/main/java/com/neotel/smfcore/core/device/rest/dto/XLCPosBarcodeDto.java
0 → 100644
查看文件 @
721ef9c
package
com
.
neotel
.
smfcore
.
core
.
device
.
rest
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.*
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Map
;
@Getter
@Setter
public
class
XLCPosBarcodeDto
implements
Serializable
{
@ApiModelProperty
(
value
=
"ID"
)
private
String
id
;
@ApiModelProperty
(
"条码编号"
)
private
String
barcode
;
@ApiModelProperty
(
"料件编号"
)
private
String
partNumber
;
@ApiModelProperty
(
"数量"
)
private
int
amount
;
@ApiModelProperty
(
"描述"
)
private
String
describe
;
/**
* 料箱中的物料信息
*/
@ApiModelProperty
(
"料箱中的物料信息"
)
private
List
<
XLCPosBarcodeDto
>
subCodeList
;
}
src/main/java/com/neotel/smfcore/core/device/rest/dto/XLCPosDetailDto.java
0 → 100644
查看文件 @
721ef9c
package
com
.
neotel
.
smfcore
.
core
.
device
.
rest
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
org.springframework.stereotype.Service
;
import
java.io.Serializable
;
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public
class
XLCPosDetailDto
implements
Serializable
{
@ApiModelProperty
(
"库位ID"
)
private
String
id
;
@ApiModelProperty
(
"料仓ID"
)
private
String
storageId
;
@ApiModelProperty
(
"库位号"
)
private
String
posName
;
@ApiModelProperty
(
"条码"
)
private
XLCPosBarcodeDto
barcode
;
}
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosQueryCriteria.java
查看文件 @
721ef9c
...
@@ -32,4 +32,8 @@ public class StoragePosQueryCriteria {
...
@@ -32,4 +32,8 @@ public class StoragePosQueryCriteria {
@ApiModelProperty
(
"是否启用"
)
@ApiModelProperty
(
"是否启用"
)
@QueryCondition
@QueryCondition
private
Boolean
enabled
;
private
Boolean
enabled
;
@ApiModelProperty
(
"是否使用"
)
@QueryCondition
private
Boolean
used
;
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论