Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
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
项目统一框架
amos-boot-biz
Commits
57eaa4f8
Commit
57eaa4f8
authored
Feb 10, 2025
by
tianbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugfix:
管道列表优化
parent
fce10494
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
53 deletions
+108
-53
IdxBizJgProjectContraptionServiceImpl.java
...z/service/impl/IdxBizJgProjectContraptionServiceImpl.java
+84
-34
IdxBizJgProjectContraptionMapper.java
...dule/ymt/api/mapper/IdxBizJgProjectContraptionMapper.java
+24
-19
IdxBizJgProjectContraptionMapper.xml
...ain/resources/mapper/IdxBizJgProjectContraptionMapper.xml
+0
-0
No files found.
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/IdxBizJgProjectContraptionServiceImpl.java
View file @
57eaa4f8
...
@@ -32,10 +32,12 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -32,10 +32,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StopWatch
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.ByteArrayOutputStream
;
import
java.io.ByteArrayOutputStream
;
...
@@ -52,6 +54,7 @@ import java.util.stream.IntStream;
...
@@ -52,6 +54,7 @@ import java.util.stream.IntStream;
import
java.util.stream.Stream
;
import
java.util.stream.Stream
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipOutputStream
;
import
java.util.zip.ZipOutputStream
;
import
static
com
.
alibaba
.
fastjson
.
JSON
.
toJSONString
;
import
static
com
.
alibaba
.
fastjson
.
JSON
.
toJSONString
;
/**
/**
* 管道工程装置表服务实现类
* 管道工程装置表服务实现类
...
@@ -197,53 +200,99 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
...
@@ -197,53 +200,99 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
.
isNull
(
IdxBizJgProjectContraption:
:
getProjectContraptionParentId
)
.
isNull
(
IdxBizJgProjectContraption:
:
getProjectContraptionParentId
)
.
orderByDesc
(
IdxBizJgProjectContraption:
:
getRecDate
)
.
orderByDesc
(
IdxBizJgProjectContraption:
:
getRecDate
)
.
page
(
page
);
.
page
(
page
);
pageList
.
getRecords
().
forEach
(
record
->
{
if
(!
ValidationUtil
.
isEmpty
(
pageList
.
getRecords
()))
{
BigDecimal
pipelineLength
=
BigDecimal
.
valueOf
(
record
.
getPipelineLength
());
pageList
.
getRecords
().
forEach
(
record
->
{
BigDecimal
roundedValue
=
pipelineLength
.
setScale
(
3
,
RoundingMode
.
HALF_UP
);
BigDecimal
pipelineLength
=
BigDecimal
.
valueOf
(
record
.
getPipelineLength
());
BigDecimal
strippedValue
=
roundedValue
.
stripTrailingZeros
();
BigDecimal
roundedValue
=
pipelineLength
.
setScale
(
3
,
RoundingMode
.
HALF_UP
);
record
.
setPipelineLength
(
Double
.
valueOf
(
strippedValue
.
toPlainString
()));
BigDecimal
strippedValue
=
roundedValue
.
stripTrailingZeros
();
record
.
setDataSourceName
(
EquipSourceEnum
.
getDataSourceName
(
record
.
getDataSource
()));
record
.
setPipelineLength
(
Double
.
valueOf
(
strippedValue
.
toPlainString
()));
record
.
setFullAddress
(
record
.
setDataSourceName
(
EquipSourceEnum
.
getDataSourceName
(
record
.
getDataSource
()));
Stream
.
of
(
record
.
getProvinceName
(),
record
.
getCityName
(),
record
.
getCountyName
(),
record
.
getStreetName
(),
record
.
getAddress
())
record
.
setFullAddress
(
.
map
(
value
->
value
==
null
?
""
:
value
)
Stream
.
of
(
record
.
getProvinceName
(),
record
.
getCityName
(),
record
.
getCountyName
(),
record
.
getStreetName
(),
record
.
getAddress
())
.
collect
(
Collectors
.
joining
())
.
map
(
value
->
value
==
null
?
""
:
value
)
);
.
collect
(
Collectors
.
joining
())
record
.
setCanEdit
(
this
.
checkContraptionIsCanEdit
(
record
.
getSequenceNbr
()));
);
record
.
setCanDelete
(
this
.
checkContraptionIsCanDelete
(
record
.
getSequenceNbr
(),
isIntoManagement
));
});
List
<
Long
>
projectContraptionIdList
=
pageList
.
getRecords
().
stream
().
map
(
IdxBizJgProjectContraption:
:
getSequenceNbr
).
collect
(
Collectors
.
toList
());
Map
<
String
,
Boolean
>
canEditMap
=
this
.
checkContraptionIsCanEdit
(
projectContraptionIdList
);
pageList
.
getRecords
().
forEach
(
record
->
record
.
setCanEdit
(
canEditMap
.
get
(
record
.
getSequenceNbr
())));
Map
<
String
,
Boolean
>
canDeleteMap
=
this
.
checkContraptionIsCanDelete
(
projectContraptionIdList
,
isIntoManagement
);
pageList
.
getRecords
().
forEach
(
record
->
record
.
setCanDelete
(
canDeleteMap
.
get
(
record
.
getSequenceNbr
())));
//判断是否有检验结果录入
//判断是否有检验结果录入
judgeCheckResult
(
record
);
judgeCheckResult
(
pageList
.
getRecords
()
);
}
);
}
return
pageList
;
return
pageList
;
}
}
/**
/**
* 此处判断是否有检验结果 所有的管道信息都需要有检验结果才可以展示
* 此处判断是否有检验结果 所有的管道信息都需要有检验结果才可以展示
* @param record
* @param record
s
*/
*/
private
void
judgeCheckResult
(
IdxBizJgProjectContraption
record
)
{
private
void
judgeCheckResult
(
List
<
IdxBizJgProjectContraption
>
records
)
{
record
.
setDisableBasicButton
(
true
);
List
<
IdxBizJgProjectContraption
>
pipelineList
=
records
.
stream
().
filter
(
record
->
PipelineEnum
.
PRESSURE_PIPELINE
.
getCode
().
equals
(
record
.
getEquList
())).
collect
(
Collectors
.
toList
());
if
(
"8200"
.
equals
(
record
.
getEquCategory
())
||
"8100"
.
equals
(
record
.
getEquCategory
())
||
"8300"
.
equals
(
record
.
getEquCategory
()))
{
if
(!
ValidationUtil
.
isEmpty
(
pipelineList
))
{
int
notNullCount
=
this
.
baseMapper
.
selectCheckCountByNotNull
(
String
.
valueOf
(
record
.
getSequenceNbr
()));
StopWatch
watch1
=
new
StopWatch
();
long
total
=
this
.
baseMapper
.
selectEquipCount
(
String
.
valueOf
(
record
.
getSequenceNbr
()));
List
<
Long
>
projectContraptionIdList
=
pipelineList
.
stream
().
map
(
IdxBizJgProjectContraption:
:
getSequenceNbr
).
collect
(
Collectors
.
toList
());
if
(
total
==
notNullCount
&&
total
!=
0
){
watch1
.
start
();
record
.
setDisableBasicButton
(
false
);
List
<
Map
<
String
,
Integer
>>
notNullCountList
=
this
.
baseMapper
.
selectCheckCountByNotNull
(
projectContraptionIdList
);
watch1
.
stop
();
System
.
out
.
println
(
"watch1:"
+
watch1
.
getTotalTimeMillis
());
StopWatch
watch2
=
new
StopWatch
();
watch2
.
start
();
List
<
Map
<
String
,
Integer
>>
totalList
=
this
.
baseMapper
.
selectEquipCount
(
projectContraptionIdList
);
watch2
.
stop
();
System
.
out
.
println
(
"watch2:"
+
watch2
.
getTotalTimeMillis
());
for
(
IdxBizJgProjectContraption
record
:
pipelineList
)
{
Map
<
String
,
Integer
>
totalMap
=
totalList
.
stream
().
filter
(
item
->
String
.
valueOf
(
record
.
getSequenceNbr
()).
equals
(
item
.
get
(
"project_contraption_id"
))).
findFirst
().
orElse
(
new
HashMap
<>());
Map
<
String
,
Integer
>
notNullCountMap
=
notNullCountList
.
stream
().
filter
(
item
->
String
.
valueOf
(
record
.
getSequenceNbr
()).
equals
(
item
.
get
(
"project_contraption_id"
))).
findFirst
().
orElse
(
new
HashMap
<>());
Integer
total
=
totalMap
.
get
(
"count"
);
Integer
notNullCount
=
notNullCountMap
.
get
(
"count"
);
if
(
total
!=
null
&&
total
.
equals
(
notNullCount
)
&&
total
!=
0
){
record
.
setDisableBasicButton
(
false
);
}
}
}
}
}
}
}
private
Boolean
checkContraptionIsCanEdit
(
Long
projectContraptionId
)
{
private
Map
<
String
,
Boolean
>
checkContraptionIsCanEdit
(
List
<
Long
>
projectContraptionIdList
)
{
Integer
inUseTime
=
this
.
baseMapper
.
countContraptionInUseTimesForEdit
(
projectContraptionId
);
Map
<
String
,
Boolean
>
resultMap
=
new
HashMap
<>();
return
inUseTime
<=
0
;
if
(
ValidationUtil
.
isEmpty
(
projectContraptionIdList
))
{
return
resultMap
;
}
}
private
Boolean
checkContraptionIsCanDelete
(
Long
projectContraptionId
,
Boolean
isIntoManagement
)
{
List
<
Map
<
String
,
Integer
>>
inUseTimeMap
=
this
.
baseMapper
.
countContraptionInUseTimesForEdit
(
projectContraptionIdList
);
Integer
inUseTime
=
0
;
if
(
isIntoManagement
){
return
getCheckResultMap
(
projectContraptionIdList
,
resultMap
,
inUseTimeMap
);
inUseTime
=
this
.
baseMapper
.
countContraptionInUseTimesForDeleteByIntoManagement
(
projectContraptionId
);
}
}
else
{
inUseTime
=
this
.
baseMapper
.
countContraptionInUseTimesForDelete
(
projectContraptionId
);
private
Map
<
String
,
Boolean
>
checkContraptionIsCanDelete
(
List
<
Long
>
projectContraptionIdList
,
Boolean
isIntoManagement
)
{
Map
<
String
,
Boolean
>
resultMap
=
new
HashMap
<>();
if
(
ValidationUtil
.
isEmpty
(
projectContraptionIdList
))
{
return
resultMap
;
}
List
<
Map
<
String
,
Integer
>>
inUseTimeMap
;
if
(
isIntoManagement
)
{
inUseTimeMap
=
this
.
baseMapper
.
countContraptionInUseTimesForDeleteByIntoManagementBatch
(
projectContraptionIdList
);
}
else
{
inUseTimeMap
=
this
.
baseMapper
.
countContraptionInUseTimesForDelete
(
projectContraptionIdList
);
}
return
getCheckResultMap
(
projectContraptionIdList
,
resultMap
,
inUseTimeMap
);
}
private
Map
<
String
,
Boolean
>
getCheckResultMap
(
List
<
Long
>
projectContraptionIdList
,
Map
<
String
,
Boolean
>
resultMap
,
List
<
Map
<
String
,
Integer
>>
inUseTimeMap
)
{
for
(
Long
projectContraptionId
:
projectContraptionIdList
)
{
Optional
<
Integer
>
inUseCountOpt
=
inUseTimeMap
.
stream
()
.
filter
(
map
->
projectContraptionId
.
toString
().
equals
(
map
.
get
(
"project_contraption_id"
)))
.
map
(
map
->
map
.
get
(
"inUseNumber"
))
.
filter
(
Objects:
:
nonNull
)
.
findFirst
();
Integer
inUseCount
=
inUseCountOpt
.
orElse
(
0
);
resultMap
.
put
(
String
.
valueOf
(
projectContraptionId
),
inUseCount
<=
0
);
}
}
return
inUseTime
<=
0
;
return
resultMap
;
}
}
@Override
@Override
...
@@ -307,7 +356,8 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
...
@@ -307,7 +356,8 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
page
.
setCurrent
(
current
);
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
page
.
setSize
(
size
);
page
.
setRecords
(
baseMapper
.
selectEquipListPage
(
sequenceNbr
,
(
current
-
1
)
*
size
,
size
));
page
.
setRecords
(
baseMapper
.
selectEquipListPage
(
sequenceNbr
,
(
current
-
1
)
*
size
,
size
));
page
.
setTotal
(
baseMapper
.
selectEquipCount
(
sequenceNbr
));
Map
<
String
,
Integer
>
totalMap
=
baseMapper
.
selectEquipCount
(
new
ArrayList
<>(
Collections
.
singletonList
(
Long
.
parseLong
(
sequenceNbr
)))).
get
(
0
);
page
.
setTotal
(
totalMap
.
get
(
"count"
));
return
page
;
return
page
;
}
}
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/mapper/IdxBizJgProjectContraptionMapper.java
View file @
57eaa4f8
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
mapper
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
mapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectConstruction
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
/**
/**
* 管道工程装置表 Mapper 接口
* 管道工程装置表 Mapper 接口
...
@@ -27,17 +24,37 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
...
@@ -27,17 +24,37 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
/**
/**
* 统计工程装置的引用次数(非待提交、非已撤回、非已驳回)
* 统计工程装置的引用次数(非待提交、非已撤回、非已驳回)
*
*
* @param projectContraptionId 工程装置唯一标识
* @param projectContraptionId
List
工程装置唯一标识
* @return 被引用次数 > 0 则设备不可编辑
* @return 被引用次数 > 0 则设备不可编辑
*/
*/
Integer
countContraptionInUseTimesForEdit
(
@Param
(
"projectContraptionId"
)
Long
projectContraptionId
);
List
<
Map
<
String
,
Integer
>>
countContraptionInUseTimesForEdit
(
@Param
(
"projectContraptionIdList"
)
List
<
Long
>
projectContraptionIdList
);
/**
/**
* 统计设备被引用的次数(只有存在就算引用-作废除外)
* 统计设备被引用的次数(只有存在就算引用-作废除外)
* @param projectContraptionIdList 设备唯一标识
* @return 被引用次数 > 0 则设备不可删除
*/
List
<
Map
<
String
,
Integer
>>
countContraptionInUseTimesForDelete
(
@Param
(
"projectContraptionIdList"
)
List
<
Long
>
projectContraptionIdList
);
/**
* 获取管道信息总数
*
* @param projectContraptionIdList
* @return
*/
List
<
Map
<
String
,
Integer
>>
selectEquipCount
(
@Param
(
"projectContraptionIdList"
)
List
<
Long
>
projectContraptionIdList
);
/**
* 获取不为空的检验信息个数
*/
List
<
Map
<
String
,
Integer
>>
selectCheckCountByNotNull
(
@Param
(
"projectContraptionIdList"
)
List
<
Long
>
projectContraptionIdList
);
/**
* 统计已纳管设备被引用的次数(只有存在就算引用-作废除外)
* @param projectContraptionId 设备唯一标识
* @param projectContraptionId 设备唯一标识
* @return 被引用次数 > 0 则设备不可删除
* @return 被引用次数 > 0 则设备不可删除
*/
*/
Integer
countContraptionInUseTimesForDelete
(
@Param
(
"projectContraptionId"
)
Long
projectContraptionId
);
Integer
countContraptionInUseTimesForDelete
ByIntoManagement
(
@Param
(
"projectContraptionId"
)
Long
projectContraptionId
);
List
<
IdxBizJgProjectContraption
>
selectErrorManagementProject
();
List
<
IdxBizJgProjectContraption
>
selectErrorManagementProject
();
...
@@ -62,13 +79,6 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
...
@@ -62,13 +79,6 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
List
<
Map
<
String
,
Object
>>
selectEquipListPage
(
@Param
(
"sequenceNbr"
)
String
sequenceNbr
,
@Param
(
"current"
)
int
current
,
@Param
(
"size"
)
int
size
);
List
<
Map
<
String
,
Object
>>
selectEquipListPage
(
@Param
(
"sequenceNbr"
)
String
sequenceNbr
,
@Param
(
"current"
)
int
current
,
@Param
(
"size"
)
int
size
);
/**
/**
* 获取管道信息总数
* @param sequenceNbr
* @return
*/
long
selectEquipCount
(
@Param
(
"sequenceNbr"
)
String
sequenceNbr
);
/**
* 获取导出传输/公共管道的信息
* 获取导出传输/公共管道的信息
* @param sequenceNbr
* @param sequenceNbr
* @return
* @return
...
@@ -76,14 +86,9 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
...
@@ -76,14 +86,9 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
List
<
Map
<
String
,
Object
>>
selectEquipListByExport
(
@Param
(
"sequenceNbr"
)
String
sequenceNbr
);
List
<
Map
<
String
,
Object
>>
selectEquipListByExport
(
@Param
(
"sequenceNbr"
)
String
sequenceNbr
);
/**
/**
* 获取不为空的检验信息个数
*/
int
selectCheckCountByNotNull
(
@Param
(
"sequenceNbr"
)
String
sequenceNbr
);
/**
* 统计已纳管设备被引用的次数(只有存在就算引用-作废除外)
* 统计已纳管设备被引用的次数(只有存在就算引用-作废除外)
* @param projectContraptionId 设备唯一标识
* @param projectContraptionId 设备唯一标识
* @return 被引用次数 > 0 则设备不可删除
* @return 被引用次数 > 0 则设备不可删除
*/
*/
Integer
countContraptionInUseTimesForDeleteByIntoManagement
(
@Param
(
"projectContraptionId"
)
Long
projectContraptionId
);
List
<
Map
<
String
,
Integer
>>
countContraptionInUseTimesForDeleteByIntoManagementBatch
(
@Param
(
"projectContraptionIdList"
)
List
<
Long
>
projectContraptionIdList
);
}
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/IdxBizJgProjectContraptionMapper.xml
View file @
57eaa4f8
This diff is collapsed.
Click to expand it.
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