Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yichengstreet-be
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yichengstreet
yichengstreet-be
Commits
0499ad85
Commit
0499ad85
authored
Aug 04, 2025
by
lixuan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 房源
parent
9b13dbb7
Pipeline
#145603
failed with stages
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
68 additions
and
9 deletions
+68
-9
BusinessEntityStatisticsDetail.java
...ystem/domain/house/vo/BusinessEntityStatisticsDetail.java
+2
-0
HouseResourceProfileGraph.java
...oyi/system/domain/house/vo/HouseResourceProfileGraph.java
+2
-0
HouseResourceServiceImpl.java
...i/system/service/house/impl/HouseResourceServiceImpl.java
+64
-9
No files found.
ruoyi-system/src/main/java/com/ruoyi/system/domain/house/vo/BusinessEntityStatisticsDetail.java
View file @
0499ad85
...
...
@@ -68,4 +68,6 @@ public class BusinessEntityStatisticsDetail {
private
BigDecimal
xsCount
=
BigDecimal
.
ZERO
;
private
BigDecimal
ssCount
=
BigDecimal
.
ZERO
;
private
BigDecimal
gsSsCount
=
BigDecimal
.
ZERO
;
}
ruoyi-system/src/main/java/com/ruoyi/system/domain/house/vo/HouseResourceProfileGraph.java
View file @
0499ad85
...
...
@@ -24,5 +24,7 @@ public class HouseResourceProfileGraph {
private
Integer
position
;
private
int
houseCount
;
private
List
<
HouseResourcePage
>
houseResources
;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/house/impl/HouseResourceServiceImpl.java
View file @
0499ad85
...
...
@@ -31,6 +31,7 @@ import java.util.*;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Service
...
...
@@ -276,11 +277,6 @@ public class HouseResourceServiceImpl implements HouseResourceService {
collect
.
forEach
((
k
,
v
)
->
{
HouseResourceProfileGraph
houseResourceProfileGraph
=
new
HouseResourceProfileGraph
();
houseResourceProfileGraph
.
setId
(
k
);
if
(!
CollectionUtils
.
isEmpty
(
v
))
{
if
(
Objects
.
nonNull
(
v
.
get
(
0
).
getHouseArea
()))
{
houseResourceProfileGraph
.
setAreaTotal
(
v
.
get
(
0
).
getHouseArea
());
}
}
GridRegion
gridRegion
=
gridRegionMapper
.
getWgLevel
(
k
);
if
(
Objects
.
nonNull
(
gridRegion
))
{
houseResourceProfileGraph
.
setWgName
(
gridRegion
.
getWgName
());
...
...
@@ -292,8 +288,37 @@ public class HouseResourceServiceImpl implements HouseResourceService {
}
}
houseResourceProfileGraph
.
setKzCount
(
v
.
stream
().
filter
(
x
->
x
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
KZ
.
getCode
()).
count
());
houseResourceProfileGraph
.
setKzArea
(
v
.
stream
().
filter
(
x
->
x
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
KZ
.
getCode
()
||
x
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
SBC
.
getCode
()).
map
(
HouseResourcePage:
:
getHouseArea
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
houseResourceProfileGraph
.
setJyArea
(
v
.
stream
().
filter
(
x
->
x
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
ZY
.
getCode
()
||
x
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
GK
.
getCode
()
||
x
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
ZYZY
.
getCode
()).
map
(
HouseResourcePage:
:
getHouseArea
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
List
<
HouseResourcePage
>
distinctList
=
new
ArrayList
<>(
v
.
stream
().
collect
(
Collectors
.
toMap
(
HouseResourcePage:
:
getId
,
Function
.
identity
(),
(
a
,
b
)
->
a
)).
values
());
Map
<
String
,
List
<
HouseResourcePage
>>
houseMap
=
distinctList
.
stream
().
collect
(
Collectors
.
groupingBy
(
HouseResourcePage:
:
getId
));
BigDecimal
kzArea
=
houseMap
.
values
().
stream
()
.
flatMap
(
List:
:
stream
)
.
filter
(
house
->
{
int
type
=
house
.
getHouseResourceType
();
return
type
==
HouseEnums
.
HouseResourceTypeEnum
.
KZ
.
getCode
()
||
type
==
HouseEnums
.
HouseResourceTypeEnum
.
SBC
.
getCode
();
})
.
map
(
HouseResourcePage:
:
getHouseArea
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
houseResourceProfileGraph
.
setKzArea
(
kzArea
);
BigDecimal
jyArea
=
houseMap
.
values
().
stream
()
.
flatMap
(
List:
:
stream
)
.
filter
(
house
->
{
int
type
=
house
.
getHouseResourceType
();
return
type
==
HouseEnums
.
HouseResourceTypeEnum
.
ZY
.
getCode
()
||
type
==
HouseEnums
.
HouseResourceTypeEnum
.
GK
.
getCode
()
||
type
==
HouseEnums
.
HouseResourceTypeEnum
.
ZYZY
.
getCode
();
})
.
map
(
HouseResourcePage:
:
getHouseArea
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
houseResourceProfileGraph
.
setJyArea
(
jyArea
);
BigDecimal
totalArea
=
houseMap
.
values
().
stream
()
.
map
(
x
->
x
.
stream
()
.
map
(
HouseResourcePage:
:
getHouseArea
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
))
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
houseResourceProfileGraph
.
setAreaTotal
(
totalArea
);
houseResourceProfileGraph
.
setHouseCount
(
distinctList
.
size
());
houseResourceProfileGraph
.
setHouseResources
(
v
.
stream
().
sorted
(
Comparator
.
comparing
(
HouseResourcePage:
:
getHouseNumber
,
Comparator
.
nullsLast
(
String:
:
compareTo
))).
collect
(
Collectors
.
toList
()));
resourceProfileGraphList
.
add
(
houseResourceProfileGraph
);
});
...
...
@@ -326,8 +351,36 @@ public class HouseResourceServiceImpl implements HouseResourceService {
}
}
result
.
forEach
(
x
->
{
x
.
setJyArea
(
x
.
getHouseResources
().
stream
().
filter
(
y
->
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
ZY
.
getCode
()
||
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
ZYZY
.
getCode
()
||
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
GK
.
getCode
()).
map
(
HouseResourcePage:
:
getHouseArea
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
x
.
setKzArea
(
x
.
getHouseResources
().
stream
().
filter
(
y
->
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
KZ
.
getCode
()
||
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
SBC
.
getCode
()).
map
(
HouseResourcePage:
:
getHouseArea
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
List
<
HouseResourcePage
>
distinctList
=
new
ArrayList
<>(
x
.
getHouseResources
().
stream
().
collect
(
Collectors
.
toMap
(
HouseResourcePage:
:
getId
,
Function
.
identity
(),
(
a
,
b
)
->
a
)).
values
());
Map
<
String
,
List
<
HouseResourcePage
>>
houseMap
=
distinctList
.
stream
().
collect
(
Collectors
.
groupingBy
(
HouseResourcePage:
:
getId
));
BigDecimal
kzArea
=
houseMap
.
values
().
stream
()
.
flatMap
(
List:
:
stream
)
.
filter
(
house
->
{
int
type
=
house
.
getHouseResourceType
();
return
type
==
HouseEnums
.
HouseResourceTypeEnum
.
KZ
.
getCode
()
||
type
==
HouseEnums
.
HouseResourceTypeEnum
.
SBC
.
getCode
();
})
.
map
(
HouseResourcePage:
:
getHouseArea
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
x
.
setKzArea
(
kzArea
);
BigDecimal
jyArea
=
houseMap
.
values
().
stream
()
.
flatMap
(
List:
:
stream
)
.
filter
(
house
->
{
int
type
=
house
.
getHouseResourceType
();
return
type
==
HouseEnums
.
HouseResourceTypeEnum
.
ZY
.
getCode
()
||
type
==
HouseEnums
.
HouseResourceTypeEnum
.
GK
.
getCode
()
||
type
==
HouseEnums
.
HouseResourceTypeEnum
.
ZYZY
.
getCode
();
})
.
map
(
HouseResourcePage:
:
getHouseArea
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
x
.
setJyArea
(
jyArea
);
BigDecimal
totalArea
=
houseMap
.
values
().
stream
()
.
map
(
y
->
y
.
stream
()
.
map
(
HouseResourcePage:
:
getHouseArea
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
))
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
x
.
setAreaTotal
(
totalArea
);
x
.
setHouseCount
(
distinctList
.
size
());
x
.
setKzCount
(
x
.
getHouseResources
().
stream
().
filter
(
y
->
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
KZ
.
getCode
()
||
y
.
getHouseResourceType
()
==
HouseEnums
.
HouseResourceTypeEnum
.
SBC
.
getCode
()).
count
());
});
return
result
.
stream
().
sorted
(
Comparator
.
comparing
(
HouseResourceProfileGraph:
:
getPosition
,
Comparator
.
nullsLast
(
Integer:
:
compareTo
))).
collect
(
Collectors
.
toList
());
...
...
@@ -410,6 +463,7 @@ public class HouseResourceServiceImpl implements HouseResourceService {
CompletableFuture
<
BigDecimal
>
xsCountFuture
=
CompletableFuture
.
supplyAsync
(()
->
list
.
stream
().
map
(
HouseResourcePage:
:
getIncome
).
filter
(
Objects:
:
nonNull
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
),
executor
);
CompletableFuture
<
BigDecimal
>
ssCountFuture
=
CompletableFuture
.
supplyAsync
(()
->
list
.
stream
().
map
(
HouseResourcePage:
:
getTaxCount
).
filter
(
Objects:
:
nonNull
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
),
executor
);
CompletableFuture
<
BigDecimal
>
gsSsCountFuture
=
CompletableFuture
.
supplyAsync
(()
->
list
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getGs
())
&&
x
.
getGs
().
equals
(
Boolean
.
TRUE
)).
map
(
HouseResourcePage:
:
getTaxCount
).
filter
(
Objects:
:
nonNull
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
),
executor
);
CompletableFuture
<
Long
>
gsCountFuture
=
CompletableFuture
.
supplyAsync
(()
->
list
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getGs
())
&&
x
.
getGs
().
equals
(
Boolean
.
TRUE
)).
count
(),
executor
);
List
<
String
>
houseResourceIds
=
list
.
stream
().
map
(
HouseResourcePage:
:
getId
).
collect
(
Collectors
.
toList
());
...
...
@@ -447,6 +501,7 @@ public class HouseResourceServiceImpl implements HouseResourceService {
businessEntityStatisticsDetail
.
setXsCount
(
xsCountFuture
.
join
());
businessEntityStatisticsDetail
.
setSsCount
(
ssCountFuture
.
join
());
businessEntityStatisticsDetail
.
setGsSsCount
(
gsSsCountFuture
.
join
());
businessEntityStatisticsDetail
.
setGsCount
(
gsCountFuture
.
join
());
businessEntityStatisticsDetail
.
setGyCount
(
industrySellFutures
.
get
(
"工业"
).
join
());
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment