Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5d02a7f6
由
LN
编写于
2022-01-10 09:07:40 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加库存查询功能
1 个父辈
39524d6c
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
122 行增加
和
2 行删除
src/main/java/com/neotel/smfcore/core/report/ReportController.java
src/main/java/com/neotel/smfcore/core/report/rest/dto/InventoryBoxDto.java
src/main/java/com/neotel/smfcore/core/report/rest/dto/InventoryGroupDto.java
src/main/java/com/neotel/smfcore/core/report/ReportController.java
查看文件 @
5d02a7f
package
com
.
neotel
.
smfcore
.
core
.
report
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.report.bean.ChartItem
;
import
com.neotel.smfcore.core.report.rest.dto.ChartItemDto
;
import
com.neotel.smfcore.core.report.rest.dto.InoutDataDto
;
import
com.neotel.smfcore.core.report.rest.dto.InventoryBoxDto
;
import
com.neotel.smfcore.core.report.rest.dto.InventoryGroupDto
;
import
com.neotel.smfcore.core.report.rest.mapstruct.ChartItemMapper
;
import
com.neotel.smfcore.core.report.rest.query.ReportQuery
;
import
com.neotel.smfcore.core.storage.bean.UsageItem
;
import
com.neotel.smfcore.core.storage.service.manager.IStorageManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.manager.IUserManager
;
import
com.neotel.smfcore.security.service.po.Group
;
import
com.neotel.smfcore.security.service.po.User
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -31,10 +40,19 @@ public class ReportController {
@Autowired
private
ChartItemMapper
chartItemMapper
;
@Autowired
private
IUserManager
userManager
;
@Autowired
private
IGroupManager
groupManager
;
@Autowired
DataCache
dataCache
;
@ApiOperation
(
"获取出入库数据"
)
@GetMapping
(
value
=
"/inOutData"
)
@PreAuthorize
(
"@el.check('inOutData')"
)
public
InoutDataDto
showChart
(
ReportQuery
query
)
{
public
InoutDataDto
inOutData
(
ReportQuery
query
)
{
Date
startDay
=
query
.
getUpdateDate
().
getFrom
();
Date
endDay
=
query
.
getUpdateDate
().
getTo
();
...
...
@@ -62,4 +80,47 @@ public class ReportController {
}
return
dto
;
}
@ApiOperation
(
"获取库存数据"
)
@GetMapping
(
value
=
"/inventory"
)
@PreAuthorize
(
"@el.check('inventory')"
)
public
List
<
InventoryGroupDto
>
inventory
()
{
String
userId
=
SecurityUtils
.
getCurrentUserId
();
User
user
=
userManager
.
get
(
userId
);
Set
<
String
>
mygroups
=
user
.
getGroups
();
mygroups
.
add
(
""
);
ArrayList
<
InventoryGroupDto
>
groupDtos
=
new
ArrayList
<>();
for
(
String
groupid
:
mygroups
)
{
Group
group
=
groupManager
.
get
(
groupid
);
if
(
group
==
null
)
{
if
(
groupid
.
equals
(
""
))
{
group
=
Group
.
defaulGroup
();
}
else
{
continue
;
}
}
List
<
InventoryBoxDto
>
boxDtos
=
new
ArrayList
<>();
List
<
String
>
cidList
=
dataCache
.
getCidsByGroupId
(
groupid
,
false
);
for
(
String
cid
:
cidList
)
{
Storage
storage
=
dataCache
.
getStorage
(
cid
);
if
(
storage
==
null
)
{
continue
;
}
int
posCount
=
0
;
int
usePosCount
=
0
;
for
(
UsageItem
item
:
storage
.
getUsageMap
().
values
()){
posCount
+=
item
.
getTotalCount
();
usePosCount
+=
item
.
getUsedCount
();
}
InventoryBoxDto
boxDto
=
new
InventoryBoxDto
(
storage
.
getId
(),
storage
.
getName
(),
storage
.
getCid
(),
storage
.
getType
(),
storage
.
getUsageMap
(),
posCount
,
usePosCount
);
boxDtos
.
add
(
boxDto
);
}
if
(
boxDtos
.
size
()
>
0
)
{
InventoryGroupDto
groupDto
=
new
InventoryGroupDto
(
group
.
getId
(),
group
.
getGroupName
(),
boxDtos
);
groupDtos
.
add
(
groupDto
);
}
}
return
groupDtos
;
}
}
src/main/java/com/neotel/smfcore/core/report/rest/dto/InventoryBoxDto.java
0 → 100644
查看文件 @
5d02a7f
package
com
.
neotel
.
smfcore
.
core
.
report
.
rest
.
dto
;
import
com.neotel.smfcore.core.storage.bean.UsageItem
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
InventoryBoxDto
implements
Serializable
{
@ApiModelProperty
(
"ID"
)
private
String
id
;
@ApiModelProperty
(
"名称"
)
private
String
name
;
@ApiModelProperty
(
"CID"
)
private
String
cid
;
@ApiModelProperty
(
"料仓类型"
)
private
String
type
=
DeviceType
.
AUTO
.
name
();
@ApiModelProperty
(
"使用情况"
)
private
Map
<
String
,
UsageItem
>
usageMap
=
new
ConcurrentHashMap
<>();
@ApiModelProperty
(
"总库位数量"
)
private
Integer
totalPosCount
;
@ApiModelProperty
(
"已使用库位数量"
)
private
Integer
usedPosCount
;
}
src/main/java/com/neotel/smfcore/core/report/rest/dto/InventoryGroupDto.java
0 → 100644
查看文件 @
5d02a7f
package
com
.
neotel
.
smfcore
.
core
.
report
.
rest
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
InventoryGroupDto
implements
Serializable
{
@ApiModelProperty
(
"ID"
)
private
String
groupId
;
@ApiModelProperty
(
"组名称"
)
private
String
groupName
;
@ApiModelProperty
(
"料仓列表"
)
private
List
<
InventoryBoxDto
>
boxList
;
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论