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
0a97bcfc
Commit
0a97bcfc
authored
Jun 01, 2024
by
刘林
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register
parents
e75d5d77
f510d0cd
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
335 additions
and
106 deletions
+335
-106
pom.xml
amos-boot-data/amos-boot-data-openapi/pom.xml
+1
-1
SyncCylinderDataService.java
...mos/api/openapi/face/service/SyncCylinderDataService.java
+69
-21
TmCylinderFillingCheckService.java
...i/openapi/face/service/TmCylinderFillingCheckService.java
+3
-1
TmCylinderFillingExamineService.java
...openapi/face/service/TmCylinderFillingExamineService.java
+2
-1
TmCylinderFillingRecordService.java
.../openapi/face/service/TmCylinderFillingRecordService.java
+7
-47
TmCylinderFillingService.java
...os/api/openapi/face/service/TmCylinderFillingService.java
+2
-1
TmCylinderInfoService.java
.../amos/api/openapi/face/service/TmCylinderInfoService.java
+8
-2
TmCylinderInspectionService.java
...api/openapi/face/service/TmCylinderInspectionService.java
+3
-1
TmCylinderTagsService.java
.../amos/api/openapi/face/service/TmCylinderTagsService.java
+2
-1
TmCylinderUnitService.java
.../amos/api/openapi/face/service/TmCylinderUnitService.java
+3
-1
QuestionTypeEnum.java
...amos/boot/module/cylinder/api/enums/QuestionTypeEnum.java
+2
-2
CylinderUnitDto.java
...mos/boot/module/cylinder/flc/api/dto/CylinderUnitDto.java
+5
-0
CylCylinderFillingCheckMapper.java
...ylinder/flc/api/mapper/CylCylinderFillingCheckMapper.java
+1
-1
CylinderInfoMapper.java
...ot/module/cylinder/flc/api/mapper/CylinderInfoMapper.java
+2
-0
CylinderUnitMapper.java
...ot/module/cylinder/flc/api/mapper/CylinderUnitMapper.java
+10
-0
CylCylinderFillingCheckMapper.xml
...c/main/resources/mapper/CylCylinderFillingCheckMapper.xml
+2
-4
CylinderInfoMapper.xml
...nder-api/src/main/resources/mapper/CylinderInfoMapper.xml
+13
-2
CylinderUnitMapper.xml
...nder-api/src/main/resources/mapper/CylinderUnitMapper.xml
+13
-0
CompanyQuestionJob.java
...amos/boot/module/cylinder/biz/job/CompanyQuestionJob.java
+70
-0
InspectionQuestionJob.java
...s/boot/module/cylinder/biz/job/InspectionQuestionJob.java
+25
-5
CylinderInfoController.java
...e/cylinder/flc/biz/controller/CylinderInfoController.java
+24
-1
CylinderInfoServiceImpl.java
...ylinder/flc/biz/service/impl/CylinderInfoServiceImpl.java
+68
-14
No files found.
amos-boot-data/amos-boot-data-openapi/pom.xml
View file @
0a97bcfc
...
...
@@ -31,7 +31,7 @@
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
dynamic-datasource-spring-boot-starter
</artifactId>
<version>
3.
1.0
</version>
<version>
3.
4.1
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/SyncCylinderDataService.java
View file @
0a97bcfc
package
com
.
yeejoin
.
amos
.
api
.
openapi
.
face
.
service
;
import
com.yeejoin.amos.api.openapi.face.model.*
;
import
com.yeejoin.amos.api.openapi.face.orm.dao.ESCylinderFillingRecordRepository
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.*
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
...
...
@@ -20,18 +26,14 @@ import com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderInspection;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderTags
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderUnit
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderUnitVideo
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylCylinderFillingCheckMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderFillingCheckMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderFillingExamineMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderFillingMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderInfoMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderInspectionMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderTagsMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderUnitMapper
;
import
java.text.ParseException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
@DS
(
"tzs"
)
public
class
SyncCylinderDataService
{
/**
...
...
@@ -50,11 +52,6 @@ public class SyncCylinderDataService
@Autowired
private
CylinderFillingMapper
cylinderFillingMapper
;
/**
* 液化气体气瓶充装信息-充装记录
*/
@Autowired
private
CylinderFillingRecord
cylinderFillingRecord
;
/**
* 液化气体气瓶充装信息-充装后复查
*/
@Autowired
...
...
@@ -77,7 +74,13 @@ public class SyncCylinderDataService
@Autowired
private
CylinderInspectionMapper
cylinderInspectionMapper
;
@DS
(
"tzs"
)
@Autowired
CylinderFillingRecordMapper
cylinderFillingRecordMapper
;
@Autowired
ESCylinderFillingRecordRepository
esCylinderFillingRecordRepository
;
public
void
syncCylinderUnit
(
List
<
TmCylinderUnitModel
>
cylinderUnitDto
)
{
// List<CylinderUnit> cylinderUnits = Bean.toModels(cylinderUnitDto,CylinderUnit.class);
// LambdaQueryWrapper<CylinderUnit> wrapper = new LambdaQueryWrapper<>();
...
...
@@ -85,40 +88,85 @@ public class SyncCylinderDataService
List
<
CylinderUnit
>
cylinderUnitList
=
Bean
.
toModels
(
cylinderUnitDto
,
CylinderUnit
.
class
);
cylinderUnitMapper
.
saveOrUpdateBatch
(
cylinderUnitList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderInfo
(
final
List
<
TmCylinderInfoModel
>
cylinderInfoDto
)
{
List
<
CylinderInfo
>
cylinderUnitList
=
Bean
.
toModels
(
cylinderInfoDto
,
CylinderInfo
.
class
);
cylinderInfoMapper
.
saveOrUpdateBatch
(
cylinderUnitList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderFillingExamine
(
List
<
TmCylinderFillingExamineModel
>
cylinderFillingExamineDto
)
{
List
<
CylinderFillingExamine
>
cylinderFillingExamineList
=
Bean
.
toModels
(
cylinderFillingExamineDto
,
CylinderFillingExamine
.
class
);
cylinderFillingExamineMapper
.
saveOrUpdateBatch
(
cylinderFillingExamineList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderFillingRecord
(
List
<
TmCylinderFillingRecordModel
>
cylinderFillingRecordDtos
)
{
List
<
CylinderFillingRecord
>
cylinderFillingRecordList
=
Bean
.
toModels
(
cylinderFillingRecordDtos
,
CylinderFillingRecord
.
class
);
cylCylinderFillingCheckMapper
.
batchInsertOrUpdate
(
cylinderFillingRecordList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderInspection
(
List
<
TmCylinderInspectionModel
>
cylinderInspectionDto
)
{
List
<
CylinderInspection
>
cylinderInspectionList
=
Bean
.
toModels
(
cylinderInspectionDto
,
CylinderInspection
.
class
);
cylinderInspectionMapper
.
saveOrUpdateBatch
(
cylinderInspectionList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderTag
(
List
<
TmCylinderTagsModel
>
cylinderTagsDtos
)
{
List
<
CylinderTags
>
cylinderTagsList
=
Bean
.
toModels
(
cylinderTagsDtos
,
CylinderTags
.
class
);
cylinderTagsMapper
.
saveOrUpdateBatch
(
cylinderTagsList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderFillingBefore
(
List
<
TmCylinderFillingModel
>
cylinderFillingDtos
)
{
List
<
CylinderFilling
>
cylinderFillingList
=
Bean
.
toModels
(
cylinderFillingDtos
,
CylinderFilling
.
class
);
cylCylinderFillingCheckMapper
.
saveAndBatchInsert
(
cylinderFillingList
);
}
@DS
(
"tzs"
)
public
void
syncCylinderFillingAfter
(
List
<
TmCylinderFillingCheckModel
>
cylinderFillingCheckDtos
)
{
List
<
CylinderFillingCheck
>
cylinderFillingChecList
=
Bean
.
toModels
(
cylinderFillingCheckDtos
,
CylinderFillingCheck
.
class
);
cylinderFillingCheckMapper
.
saveOrUpdateByCondition
(
cylinderFillingChecList
);
}
public
void
createCylinderFillingRecord
(
List
<
ESCylinderFillingRecordDto
>
cylinderFillingRecord
)
{
if
(!
ObjectUtils
.
isEmpty
(
cylinderFillingRecord
))
{
List
<
String
>
appIds
=
cylinderFillingRecord
.
stream
().
map
(
ESCylinderFillingRecordDto:
:
getAppId
).
collect
(
Collectors
.
toList
());
List
<
String
>
sequenceCodeS
=
cylinderFillingRecord
.
stream
().
map
(
ESCylinderFillingRecordDto:
:
getSequenceCode
).
collect
(
Collectors
.
toList
());
List
<
ESCylinderFillingRecordDto
>
cylinderFillingRecordInfo
=
cylinderFillingRecordMapper
.
getCylinderFillingRecordInfo
(
appIds
,
sequenceCodeS
);
cylinderFillingRecord
.
stream
().
map
(
item
->
{
List
<
ESCylinderFillingRecordDto
>
collect
=
cylinderFillingRecordInfo
.
stream
().
filter
(
e
->
item
.
getAppIdAndSequenceCode
().
equals
(
e
.
getAppIdAndSequenceCode
())).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
collect
))
{
item
.
setUnitName
(
collect
.
get
(
0
).
getUnitName
());
item
.
setFactoryNum
(
collect
.
get
(
0
).
getFactoryNum
());
item
.
setCylinderVariety
(
collect
.
get
(
0
).
getCylinderVariety
());
item
.
setCylinderVarietyName
(
collect
.
get
(
0
).
getCylinderVarietyName
());
item
.
setUnitInnerCode
(
collect
.
get
(
0
).
getUnitInnerCode
());
item
.
setSequenceCode
(
collect
.
get
(
0
).
getSequenceCode
());
item
.
setQrCode
(
collect
.
get
(
0
).
getQrCode
());
item
.
setElectronicLabelCode
(
collect
.
get
(
0
).
getElectronicLabelCode
());
item
.
setAppId
(
collect
.
get
(
0
).
getAppId
());
item
.
setCreditCode
(
collect
.
get
(
0
).
getCreditCode
());
item
.
setRegionCode
(
collect
.
get
(
0
).
getRegionCode
());
try
{
item
.
setInspectionDateMs
(
ObjectUtils
.
isEmpty
(
item
.
getFillingStartTime
())
?
0L
:
DateUtils
.
dateParseWithPattern
(
item
.
getFillingStartTime
()).
getTime
());
item
.
setInspectionDateAfterMS
(
ObjectUtils
.
isEmpty
(
item
.
getFillingEndTime
())
?
0L
:
DateUtils
.
dateParseWithPattern
(
item
.
getFillingEndTime
()).
getTime
());
}
catch
(
ParseException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
return
item
;
}).
collect
(
Collectors
.
toList
());
saveCylinderFillingRecord2ES
(
cylinderFillingRecord
);
}
}
public
void
saveCylinderFillingRecord2ES
(
List
<
ESCylinderFillingRecordDto
>
records
)
{
List
<
String
>
ids
=
new
ArrayList
<>();
for
(
ESCylinderFillingRecordDto
record
:
records
)
{
CylinderFillingRecord
cylinderFillingRecord
=
new
CylinderFillingRecord
();
BeanUtils
.
copyProperties
(
record
,
cylinderFillingRecord
);
ids
.
add
(
String
.
valueOf
(
record
.
getSequenceNbr
()));
}
esCylinderFillingRecordRepository
.
saveAll
(
records
);
cylinderFillingRecordMapper
.
updateCylinderFillingToEsStatus
(
ids
);
}
}
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderFillingCheckService.java
View file @
0a97bcfc
...
...
@@ -4,6 +4,7 @@ package com.yeejoin.amos.api.openapi.face.service;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingCheckDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingDto
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -37,7 +38,8 @@ public class TmCylinderFillingCheckService extends BaseService<TmCylinderFilling
private
RedisTemplate
redisTemplate
;
@Autowired
private
SyncCylinderDataService
syncCylinderDataService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderFillingAfter
(
List
<
TmCylinderFillingCheckModel
>
model
)
{
// TODO Auto-generated method stub
// if (ValidationUtil.isEmpty(model))
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderFillingExamineService.java
View file @
0a97bcfc
...
...
@@ -4,6 +4,7 @@ package com.yeejoin.amos.api.openapi.face.service;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.yeejoin.amos.api.openapi.face.model.TmCylinderUnitModel
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingExamineDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderUnitDto
;
...
...
@@ -42,7 +43,7 @@ public class TmCylinderFillingExamineService extends BaseService<TmCylinderFilli
private
SyncCylinderDataService
syncCylinderDataService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderFillingExamine
(
List
<
TmCylinderFillingExamineModel
>
model
)
{
// TODO Auto-generated method stub
if
(
ValidationUtil
.
isEmpty
(
model
))
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderFillingRecordService.java
View file @
0a97bcfc
...
...
@@ -8,6 +8,7 @@ import java.util.List;
import
java.util.stream.Collectors
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.yeejoin.amos.api.openapi.face.orm.dao.ESCylinderFillingRecordRepository
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.module.cylinder.api.entity.ESCylinderFillingRecordDto
;
...
...
@@ -55,12 +56,13 @@ public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillin
@Autowired
private
SyncCylinderDataService
syncCylinderDataService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderFilling
(
List
<
TmCylinderFillingRecordModel
>
model
)
{
// TODO Auto-generated method stub
// if (ValidationUtil.isEmpty(model))
// throw new BadRequest("气瓶标签信息为空.");
syncCylinderFilling
(
model
);
for
(
TmCylinderFillingRecordModel
cylinderFillingRecordModel
:
model
)
{
cylinderFillingRecordModel
.
setRecDate
(
new
Date
());
cylinderFillingRecordModel
.
setAppId
(
getAppId
());
...
...
@@ -69,8 +71,12 @@ public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillin
return
"OK"
;
}
@DS
(
"tzs"
)
private
void
syncCylinderFilling
(
List
<
TmCylinderFillingRecordModel
>
model
)
{
syncCylinderDataService
.
syncCylinderFillingRecord
(
model
);
ArrayList
<
ESCylinderFillingRecordDto
>
models
=
Bean
.
toModels
(
model
,
ESCylinderFillingRecordDto
.
class
);
syncCylinderDataService
.
createCylinderFillingRecord
(
models
);
}
private
String
getAppId
()
{
...
...
@@ -83,50 +89,4 @@ public class TmCylinderFillingRecordService extends BaseService<TmCylinderFillin
return
baseMapper
.
getDateList
();
}
@DS
(
"tzs"
)
public
void
createCylinderFillingRecord
(
List
<
ESCylinderFillingRecordDto
>
cylinderFillingRecord
)
{
if
(!
ObjectUtils
.
isEmpty
(
cylinderFillingRecord
))
{
List
<
String
>
appIds
=
cylinderFillingRecord
.
stream
().
map
(
ESCylinderFillingRecordDto:
:
getAppId
).
collect
(
Collectors
.
toList
());
List
<
String
>
sequenceCodeS
=
cylinderFillingRecord
.
stream
().
map
(
ESCylinderFillingRecordDto:
:
getSequenceCode
).
collect
(
Collectors
.
toList
());
List
<
ESCylinderFillingRecordDto
>
cylinderFillingRecordInfo
=
cylinderFillingRecordMapper
.
getCylinderFillingRecordInfo
(
appIds
,
sequenceCodeS
);
cylinderFillingRecord
.
stream
().
map
(
item
->
{
List
<
ESCylinderFillingRecordDto
>
collect
=
cylinderFillingRecordInfo
.
stream
().
filter
(
e
->
item
.
getAppIdAndSequenceCode
().
equals
(
e
.
getAppIdAndSequenceCode
())).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
collect
))
{
item
.
setUnitName
(
collect
.
get
(
0
).
getUnitName
());
item
.
setFactoryNum
(
collect
.
get
(
0
).
getFactoryNum
());
item
.
setCylinderVariety
(
collect
.
get
(
0
).
getCylinderVariety
());
item
.
setCylinderVarietyName
(
collect
.
get
(
0
).
getCylinderVarietyName
());
item
.
setUnitInnerCode
(
collect
.
get
(
0
).
getUnitInnerCode
());
item
.
setSequenceCode
(
collect
.
get
(
0
).
getSequenceCode
());
item
.
setQrCode
(
collect
.
get
(
0
).
getQrCode
());
item
.
setElectronicLabelCode
(
collect
.
get
(
0
).
getElectronicLabelCode
());
item
.
setAppId
(
collect
.
get
(
0
).
getAppId
());
item
.
setCreditCode
(
collect
.
get
(
0
).
getCreditCode
());
item
.
setRegionCode
(
collect
.
get
(
0
).
getRegionCode
());
try
{
item
.
setInspectionDateMs
(
ObjectUtils
.
isEmpty
(
item
.
getFillingStartTime
())
?
0L
:
DateUtils
.
dateParseWithPattern
(
item
.
getFillingStartTime
()).
getTime
());
item
.
setInspectionDateAfterMS
(
ObjectUtils
.
isEmpty
(
item
.
getFillingEndTime
())
?
0L
:
DateUtils
.
dateParseWithPattern
(
item
.
getFillingEndTime
()).
getTime
());
}
catch
(
ParseException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
return
item
;
}).
collect
(
Collectors
.
toList
());
saveCylinderFillingRecord2ES
(
cylinderFillingRecord
);
}
}
public
void
saveCylinderFillingRecord2ES
(
List
<
ESCylinderFillingRecordDto
>
records
)
{
List
<
String
>
ids
=
new
ArrayList
<>();
for
(
ESCylinderFillingRecordDto
record
:
records
)
{
CylinderFillingRecord
cylinderFillingRecord
=
new
CylinderFillingRecord
();
BeanUtils
.
copyProperties
(
record
,
cylinderFillingRecord
);
ids
.
add
(
String
.
valueOf
(
record
.
getSequenceNbr
()));
}
esCylinderFillingRecordRepository
.
saveAll
(
records
);
cylinderFillingRecordMapper
.
updateCylinderFillingToEsStatus
(
ids
);
}
}
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderFillingService.java
View file @
0a97bcfc
...
...
@@ -4,6 +4,7 @@ package com.yeejoin.amos.api.openapi.face.service;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.yeejoin.amos.api.openapi.face.model.TmCylinderUnitModel
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderFillingDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderInfoDto
;
...
...
@@ -40,7 +41,7 @@ public class TmCylinderFillingService extends BaseService<TmCylinderFillingModel
@Autowired
private
SyncCylinderDataService
syncCylinderDataService
;
@
Transactional
(
rollbackFor
=
{
Exception
.
class
})
@
DSTransactional
public
String
createCylinderFillingBefore
(
List
<
TmCylinderFillingModel
>
model
)
{
// TODO Auto-generated method stub
// if (ValidationUtil.isEmpty(model))
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderInfoService.java
View file @
0a97bcfc
...
...
@@ -6,6 +6,7 @@ import java.util.ArrayList;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.google.common.collect.Lists
;
import
com.yeejoin.amos.api.openapi.face.model.TmCylinderUnitModel
;
import
com.yeejoin.amos.api.openapi.face.orm.dao.ESCylinderInfoRepository
;
...
...
@@ -58,15 +59,19 @@ public class TmCylinderInfoService extends BaseService<TmCylinderInfoModel, TmCy
@Autowired
ESCylinderInfoRepository
esCylinderInfoRepository
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderInfo
(
List
<
TmCylinderInfoModel
>
model
)
{
// TODO Auto-generated method stub
if
(
ValidationUtil
.
isEmpty
(
model
))
throw
new
BadRequest
(
"气瓶基本信息数据为空."
);
syncCylinderInfo
(
model
);
for
(
TmCylinderInfoModel
cylinderInfoModel
:
model
)
{
cylinderInfoModel
.
setRecDate
(
new
Date
());
cylinderInfoModel
.
setAppId
(
getAppId
());
createCylinderInfo2ES
(
cylinderInfoModel
);
this
.
createWithModel
(
cylinderInfoModel
);
}
return
"OK"
;
...
...
@@ -82,7 +87,8 @@ public class TmCylinderInfoService extends BaseService<TmCylinderInfoModel, TmCy
}
public
void
createCylinderInfo2ES
(
CylinderInfoDto
cylinderInfoDto
)
{
public
void
createCylinderInfo2ES
(
TmCylinderInfoModel
cylinderInfoModel
)
{
CylinderInfoDto
cylinderInfoDto
=
Bean
.
toModel
(
cylinderInfoModel
,
new
CylinderInfoDto
());
List
<
ESCylinderInfoDto
>
esCylinderInfoDto
=
new
ArrayList
<>();
ESCylinderInfoDto
esCylinderInfo
=
new
ESCylinderInfoDto
();
BeanUtils
.
copyProperties
(
cylinderInfoDto
,
esCylinderInfo
);
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderInspectionService.java
View file @
0a97bcfc
...
...
@@ -4,6 +4,7 @@ package com.yeejoin.amos.api.openapi.face.service;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderInspectionDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderUnitDto
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -39,7 +40,8 @@ public class TmCylinderInspectionService extends BaseService<TmCylinderInspectio
private
RedisTemplate
redisTemplate
;
@Autowired
private
SyncCylinderDataService
syncCylinderDataService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderInspection
(
List
<
TmCylinderInspectionModel
>
model
)
{
if
(
ValidationUtil
.
isEmpty
(
model
))
throw
new
BadRequest
(
"气瓶检验信息为空."
);
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderTagsService.java
View file @
0a97bcfc
...
...
@@ -4,6 +4,7 @@ package com.yeejoin.amos.api.openapi.face.service;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderInspectionDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderTagsDto
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -40,7 +41,7 @@ public class TmCylinderTagsService extends BaseService<TmCylinderTagsModel, TmCy
@Autowired
private
SyncCylinderDataService
syncCylinderDataService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderTag
(
List
<
TmCylinderTagsModel
>
model
)
{
// TODO Auto-generated method stub
if
(
ValidationUtil
.
isEmpty
(
model
))
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/TmCylinderUnitService.java
View file @
0a97bcfc
...
...
@@ -4,6 +4,7 @@ package com.yeejoin.amos.api.openapi.face.service;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.dynamic.datasource.annotation.DSTransactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
...
...
@@ -39,7 +40,8 @@ public class TmCylinderUnitService extends BaseService<TmCylinderUnitModel, TmCy
private
RedisTemplate
redisTemplate
;
@Autowired
private
SyncCylinderDataService
syncCylinderDataService
;
@Transactional
(
rollbackFor
=
{
Exception
.
class
})
@DSTransactional
public
String
createCylinderUnit
(
List
<
TmCylinderUnitModel
>
model
)
{
if
(
ValidationUtil
.
isEmpty
(
model
))
throw
new
BadRequest
(
"气瓶企业信息数据为空."
);
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/api/enums/QuestionTypeEnum.java
View file @
0a97bcfc
...
...
@@ -12,8 +12,8 @@ public enum QuestionTypeEnum {
/**
* 问题类型
*/
WBLSYDJ
(
"1"
,
"未办理使用登记
"
),
XKCQ
(
"2"
,
"许可超期
"
),
XKCQ
(
"1"
,
"许可超期
"
),
WBLSYDJ
(
"2"
,
"未办理使用登记
"
),
JYCQ
(
"3"
,
"检验超期"
),
JYBHG
(
"4"
,
"检验不合格"
),
WJXCZJJ
(
"5"
,
"未进行充装检查"
),
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/api/dto/CylinderUnitDto.java
View file @
0a97bcfc
...
...
@@ -109,4 +109,9 @@ public class CylinderUnitDto extends BaseDto {
@ApiModelProperty
(
value
=
"技术服务商"
)
private
String
developerAgency
;
/**
* 资质到期日期
*/
private
Date
expireDate
;
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/api/mapper/CylCylinderFillingCheckMapper.java
View file @
0a97bcfc
...
...
@@ -34,7 +34,7 @@ public interface CylCylinderFillingCheckMapper extends BaseMapper<CylinderFillin
boolean
updataSyncFilling
(
@Param
(
"ids"
)
List
<
Long
>
appIds
);
boolean
saveAndBatchInsert
(
@Param
(
"list"
)
List
<
CylinderFilling
>
list
);
void
saveAndBatchInsert
(
@Param
(
"list"
)
List
<
CylinderFilling
>
list
);
Long
selectCountTotal
();
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/api/mapper/CylinderInfoMapper.java
View file @
0a97bcfc
...
...
@@ -119,7 +119,9 @@ public interface CylinderInfoMapper extends BaseMapper<CylinderInfo> {
List
<
CylinderInfoDto
>
queryCylinderOfInspectionOverdue
();
List
<
CylinderInfoDto
>
queryCylinderOfUnqualifiedQuestion
();
List
<
Map
<
String
,
Object
>>
countFillingTimesAndQuantityByCity
();
String
getAttachmentByUnitCode
(
@Param
(
"appId"
)
String
appId
);
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/api/mapper/CylinderUnitMapper.java
View file @
0a97bcfc
...
...
@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.cylinder.flc.api.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CityCylinderInfoDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderInfoDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderUnitDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderUnit
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -55,5 +56,14 @@ public interface CylinderUnitMapper extends BaseMapper<CylinderUnit> {
* @return list
*/
List
<
CityCylinderInfoDto
>
getCylinderDataByLevel
(
@Param
(
"level"
)
String
level
);
void
saveOrUpdateBatch
(
@Param
(
"list"
)
List
<
CylinderUnit
>
list
);
/**
* 查询资质超期但是还没生成问题的单位
* @param questionType 问题类型
* @return List<CylinderInfoDto>
*/
List
<
CylinderUnitDto
>
queryCylinderUnitOfPermissionExpire
(
@Param
(
"questionType"
)
String
questionType
);
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/resources/mapper/CylCylinderFillingCheckMapper.xml
View file @
0a97bcfc
...
...
@@ -141,10 +141,8 @@
LIMIT 1000
</select>
<insert
id=
"saveAndBatchInsert"
>
INSERT INTO "tz_cylinder_filling"
(
sequence_nbr,
<insert
id=
"saveAndBatchInsert"
parameterType=
"com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderFillingRecord"
>
INSERT INTO tz_cylinder_filling( sequence_nbr,
filling_before_id,
filling_unit_name,
sequence_code,
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/resources/mapper/CylinderInfoMapper.xml
View file @
0a97bcfc
...
...
@@ -419,6 +419,17 @@
GROUP BY regionCode
</select>
<select
id=
"getAttachmentByUnitCode"
resultType=
"java.lang.String"
>
select qualification_certificate_attachment as qualificationCertificateAttachment
FROM view_cylinder_unit_info
<where>
<if
test=
"appId != null and appId != ''"
>
"app_id" = #{appId}
</if>
</where>
limit 1
</select>
<select
id=
"countNumber"
resultType=
"java.lang.Integer"
>
SELECT count(DISTINCT(onlyCode))
FROM(
...
...
@@ -468,7 +479,7 @@
tz_cylinder_unit u
where
a.sequence_code = b.sequence_code
and u.
credit_code = a.credit_code
and u.
app_id = a.app_id
and a.last_inspection_id = b.sequence_nbr
and date_gt(CURRENT_DATE, cast(b.next_inspection_date as date))
</select>
...
...
@@ -486,7 +497,7 @@
tz_cylinder_unit u
where
a.sequence_code = b.sequence_code
and u.
credit_code = a.credit_code
and u.
app_id = a.app_id
and a.last_inspection_id = b.sequence_nbr
and (b.is_deal_question = false or b.is_deal_question is null)
</select>
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-api/src/main/resources/mapper/CylinderUnitMapper.xml
View file @
0a97bcfc
...
...
@@ -65,6 +65,19 @@
FROM tz_cylinder_unit tcu
WHERE tcu.region_code like concat('%', #{regionCode}, '%')
</select>
<select
id=
"queryCylinderUnitOfPermissionExpire"
resultType=
"com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderUnitDto"
>
SELECT
(SELECT min(l.expiry_date) from tz_base_unit_licence l where l."UNIT_CODE" = u.credit_code) as expire_date,
u.app_id,
u.unit_name,
u.region_code,
u.credit_code
FROM
tz_cylinder_unit u
where
date_gt(CURRENT_DATE, expire_date)
and not EXISTS (select 1 from tz_cylinder_question_info q where u.credit_code = q.question_object_id and q.question_type = #{questionType} )
</select>
<insert
id=
"saveOrUpdateBatch"
parameterType=
"com.yeejoin.amos.boot.module.cylinder.flc.api.entity.CylinderUnit"
>
INSERT INTO "tz_cylinder_unit"(sequence_nbr,unit_id,region_code,unit_name,credit_code,address,unit_person,person_mobile_phone,person_telephone,postal_code,rec_date,rec_user_id,sync_date,sync_state,app_id,security_adm,security_adm_phone,region_name)
VALUES
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/biz/job/CompanyQuestionJob.java
0 → 100644
View file @
0a97bcfc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
biz
.
job
;
import
com.yeejoin.amos.boot.module.cylinder.api.entity.CylinderQuestionInfo
;
import
com.yeejoin.amos.boot.module.cylinder.api.enums.QuestionTypeEnum
;
import
com.yeejoin.amos.boot.module.cylinder.biz.service.impl.CylinderQuestionInfoServiceImpl
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.dto.CylinderUnitDto
;
import
com.yeejoin.amos.boot.module.cylinder.flc.api.mapper.CylinderUnitMapper
;
import
net.javacrumbs.shedlock.spring.annotation.SchedulerLock
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author Administrator
*/
@Component
@EnableScheduling
public
class
CompanyQuestionJob
{
private
CylinderUnitMapper
cylinderUnitMapper
;
private
CylinderQuestionInfoServiceImpl
questionInfoService
;
public
CompanyQuestionJob
(
CylinderUnitMapper
cylinderUnitMapper
,
CylinderQuestionInfoServiceImpl
questionInfoService
)
{
this
.
cylinderUnitMapper
=
cylinderUnitMapper
;
this
.
questionInfoService
=
questionInfoService
;
}
/**
* 资质超期
*/
@SchedulerLock
(
name
=
"genCompanyQuestionOfPermissionExpireJob"
,
lockAtMostFor
=
"PT4M"
)
@Scheduled
(
cron
=
"${inspection.cert.expire.job.cron:0 0/2 * * * ?}"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
genCompanyQuestionOfPermissionExpire
()
{
List
<
CylinderUnitDto
>
cylinderUnitDtoList
=
cylinderUnitMapper
.
queryCylinderUnitOfPermissionExpire
(
QuestionTypeEnum
.
XKCQ
.
getCode
());
List
<
CylinderQuestionInfo
>
cylinderQuestionInfos
=
cylinderUnitDtoList
.
stream
().
map
(
cylinderUnitDto
->
{
CylinderQuestionInfo
cylinderQuestionInfo
=
new
CylinderQuestionInfo
();
cylinderQuestionInfo
.
setQuestionType
(
QuestionTypeEnum
.
XKCQ
.
getCode
());
cylinderQuestionInfo
.
setQuestionTypeName
(
QuestionTypeEnum
.
XKCQ
.
getName
());
return
this
.
fillCommonField
(
cylinderUnitDto
,
cylinderQuestionInfo
);
}).
collect
(
Collectors
.
toList
());
if
(
cylinderQuestionInfos
.
size
()
>
0
)
{
questionInfoService
.
saveBatch
(
cylinderQuestionInfos
);
}
}
@NotNull
private
CylinderQuestionInfo
fillCommonField
(
CylinderUnitDto
cylinderUnitDto
,
CylinderQuestionInfo
cylinderQuestionInfo
)
{
cylinderQuestionInfo
.
setHappenDate
(
new
Date
());
cylinderQuestionInfo
.
setRecDate
(
new
Date
());
cylinderQuestionInfo
.
setRegionCode
(
cylinderUnitDto
.
getRegionCode
());
cylinderQuestionInfo
.
setQuestionObjectId
(
cylinderUnitDto
.
getCreditCode
());
cylinderQuestionInfo
.
setQuestionObjectName
(
cylinderUnitDto
.
getUnitName
());
cylinderQuestionInfo
.
setQuestionAttributionId
(
cylinderUnitDto
.
getAppId
());
cylinderQuestionInfo
.
setQuestionAttributionName
(
cylinderUnitDto
.
getUnitName
());
return
cylinderQuestionInfo
;
}
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/biz/job/InspectionQuestionJob.java
View file @
0a97bcfc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
biz
.
job
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.yeejoin.amos.boot.module.cylinder.api.entity.CylinderQuestionInfo
;
import
com.yeejoin.amos.boot.module.cylinder.api.enums.QuestionTypeEnum
;
...
...
@@ -16,8 +17,10 @@ import org.springframework.transaction.annotation.Transactional;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -46,8 +49,8 @@ public class InspectionQuestionJob {
/**
* 检验超期
*/
@SchedulerLock
(
name
=
"genOverdueQuestionJobCylinder"
,
lockAtMostFor
=
"PT1H"
)
@Scheduled
(
cron
=
"${inspection.overdue.job.cron:0 0
2
* * ?}"
)
@SchedulerLock
(
name
=
"genOverdueQuestionJobCylinder
2
"
,
lockAtMostFor
=
"PT1H"
)
@Scheduled
(
cron
=
"${inspection.overdue.job.cron:0 0
1
* * ?}"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
genOverdueQuestion
()
{
List
<
CylinderInfoDto
>
cylinderList
=
cylinderInfoMapper
.
queryCylinderOfInspectionOverdue
();
...
...
@@ -57,17 +60,34 @@ public class InspectionQuestionJob {
cylinderQuestionInfo
.
setQuestionTypeName
(
QuestionTypeEnum
.
JYCQ
.
getName
());
return
fillCommonField
(
cylinderInfoDto
,
cylinderQuestionInfo
);
}).
collect
(
Collectors
.
toList
());
// 已经生成的数据不再重复生成
List
<
CylinderQuestionInfo
>
needToDbQuestionInfos
=
this
.
removeRepeatData
(
cylinderQuestionInfos
);
if
(
needToDbQuestionInfos
.
size
()
>
0
)
{
questionInfoService
.
saveBatch
(
needToDbQuestionInfos
);
}
}
private
List
<
CylinderQuestionInfo
>
removeRepeatData
(
List
<
CylinderQuestionInfo
>
cylinderQuestionInfos
)
{
if
(
cylinderQuestionInfos
.
size
()
>
0
)
{
questionInfoService
.
saveBatch
(
cylinderQuestionInfos
);
Set
<
String
>
questionObjectIds
=
cylinderQuestionInfos
.
stream
().
map
(
CylinderQuestionInfo:
:
getQuestionObjectId
).
collect
(
Collectors
.
toSet
());
Set
<
String
>
appIds
=
cylinderQuestionInfos
.
stream
().
map
(
CylinderQuestionInfo:
:
getQuestionAttributionId
).
collect
(
Collectors
.
toSet
());
// 已经生成问题的气瓶
List
<
CylinderQuestionInfo
>
questionInfos
=
questionInfoService
.
list
(
new
LambdaQueryWrapper
<
CylinderQuestionInfo
>()
.
in
(
CylinderQuestionInfo:
:
getQuestionObjectId
,
questionObjectIds
)
.
in
(
CylinderQuestionInfo:
:
getQuestionAttributionId
,
appIds
).
eq
(
CylinderQuestionInfo:
:
getQuestionType
,
QuestionTypeEnum
.
JYCQ
.
getCode
()));
// 去掉已经生成的气瓶问题,不在重复生成问题
return
cylinderQuestionInfos
.
stream
().
filter
(
c
->
questionInfos
.
stream
().
noneMatch
(
d
->
d
.
getQuestionObjectId
().
equals
(
c
.
getQuestionObjectId
())
&&
d
.
getQuestionAttributionId
().
equals
(
c
.
getQuestionAttributionId
()))).
collect
(
Collectors
.
toList
());
}
return
new
ArrayList
<>();
}
/**
* 检验不合格任务
*/
@SchedulerLock
(
name
=
"genInspectionUnqualifiedQuestionJobCylinder
"
,
lockAtMostFor
=
"PT1H
"
)
@Scheduled
(
cron
=
"${inspection.unqualified.job.cron:0 0/
5
* * * ?}"
)
@SchedulerLock
(
name
=
"genInspectionUnqualifiedQuestionJobCylinder
2"
,
lockAtMostFor
=
"PT20M
"
)
@Scheduled
(
cron
=
"${inspection.unqualified.job.cron:0 0/
10
* * * ?}"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
genInspectionUnqualifiedQuestion
()
{
List
<
CylinderInfoDto
>
cylinderList
=
cylinderInfoMapper
.
queryCylinderOfUnqualifiedQuestion
();
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/biz/controller/CylinderInfoController.java
View file @
0a97bcfc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
cylinder
.
flc
.
biz
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -51,6 +52,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import
javax.servlet.http.HttpServletRequest
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 气瓶基本信息
...
...
@@ -1361,7 +1363,28 @@ public class CylinderInfoController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"市级为维度,各市的充装次数和累计充装量"
)
@GetMapping
(
value
=
"/countFillingTimesAndQuantityByCity"
)
public
ResponseModel
<
Object
>
countFillingTimesAndQuantityByCity
()
{
public
ResponseModel
<
Map
<
String
,
Object
>
>
countFillingTimesAndQuantityByCity
()
{
return
ResponseHelper
.
buildResponse
(
cylinderInfoServiceImpl
.
countFillingTimesAndQuantityByCity
());
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"资质附件,轮播图用"
)
@GetMapping
(
value
=
"/getAttachmentByUnitCode"
)
public
ResponseModel
<
List
<
String
>>
getAttachmentByUnitCode
(
@RequestParam
(
value
=
"companyId"
)
String
companyId
)
{
List
<
String
>
result
=
new
ArrayList
<>();
String
attachmentByUnitCode
=
cylinderInfoServiceImpl
.
getBaseMapper
().
getAttachmentByUnitCode
(
companyId
);
if
(
attachmentByUnitCode
!=
null
&&
!
attachmentByUnitCode
.
isEmpty
())
{
JSONArray
jsonArray
=
JSON
.
parseArray
(
attachmentByUnitCode
);
if
(
jsonArray
!=
null
)
{
jsonArray
.
stream
()
.
filter
(
JSONObject
.
class
::
isInstance
)
.
map
(
JSONObject
.
class
::
cast
)
.
map
(
obj
->
obj
.
getString
(
"url"
))
.
filter
(
Objects:
:
nonNull
)
.
forEach
(
result:
:
add
);
}
}
return
ResponseHelper
.
buildResponse
(
result
);
}
}
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/biz/service/impl/CylinderInfoServiceImpl.java
View file @
0a97bcfc
...
...
@@ -1265,66 +1265,120 @@ public class CylinderInfoServiceImpl extends BaseService<CylinderInfoDto, Cylind
public
List
<
Map
<
String
,
Object
>
>
countFillingTimesAndQuantityByCity
()
{
public
Map
<
String
,
Object
>
countFillingTimesAndQuantityByCity
()
{
// 查询所有的市级城市
List
<
RegionModel
>
regionModelList
=
Systemctl
.
regionClient
.
queryByLevel
(
"2"
).
getResult
();
// 并行处理每个城市的数据
List
<
CompletableFuture
<
Map
<
String
,
Object
>>>
futures
=
regionModelList
.
stream
()
.
map
(
regionModel
->
CompletableFuture
.
supplyAsync
(()
->
esQuery
(
regionModel
)))
.
collect
(
Collectors
.
toList
());
return
futures
.
stream
()
List
<
Map
<
String
,
Object
>>
collect
=
futures
.
stream
()
.
map
(
CompletableFuture:
:
join
)
.
collect
(
Collectors
.
toList
());
return
assemblingHistogramData
(
collect
);
// Map<String, Object> stringObjectMap = esQuery(regionModelList.get(3));
// ArrayList<Map<String, Object>> ss = new ArrayList<>();
// ss.add(stringObjectMap);
// return assemblingHistogramData(ss);
}
private
static
Map
<
String
,
Object
>
assemblingHistogramData
(
List
<
Map
<
String
,
Object
>>
collect
)
{
// 组装数据
// {
// "seriesData": [
// {
// "data": [
// 3,
// 2,
// 2,
// 3,
// 1
// ],
// "name": "正常点",
// "stack": "正常点"
// },
// {
// "data": [
// 1,
// 1,
// 2,
// 1,
// 2
// ],
// "name": "异常点",
// "stack": "巡检点"
// }
// ],
// "axisData": [
// "A",
// "B",
// "C",
// "D",
// "E"
// ]
// }
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
List
<
Map
<
String
,
Object
>>
seriesData
=
new
ArrayList
<>();
List
<
String
>
axisData
=
new
ArrayList
<>();
List
<
String
>
seriesFillingTimesDataList
=
new
ArrayList
<>();
List
<
String
>
seriesCumulativeFillingQuantityDataList
=
new
ArrayList
<>();
collect
.
forEach
(
x
->{
axisData
.
add
(
String
.
valueOf
(
x
.
get
(
"regionName"
)));
seriesFillingTimesDataList
.
add
(
String
.
valueOf
(
x
.
get
(
"fillingTimes"
)));
seriesCumulativeFillingQuantityDataList
.
add
(
String
.
valueOf
(
x
.
get
(
"fillingQuantity"
)));
});
HashMap
<
String
,
Object
>
temMap1
=
new
HashMap
<>();
temMap1
.
put
(
"data"
,
seriesFillingTimesDataList
);
temMap1
.
put
(
"name"
,
"充装次数"
);
temMap1
.
put
(
"stack"
,
"充装次数"
);
HashMap
<
String
,
Object
>
temMap2
=
new
HashMap
<>();
temMap2
.
put
(
"data"
,
seriesCumulativeFillingQuantityDataList
);
temMap2
.
put
(
"name"
,
"累计充装量"
);
temMap2
.
put
(
"stack"
,
"累计充装量"
);
seriesData
.
add
(
temMap1
);
seriesData
.
add
(
temMap2
);
result
.
put
(
"seriesData"
,
seriesData
);
result
.
put
(
"axisData"
,
axisData
);
return
result
;
}
private
Map
<
String
,
Object
>
esQuery
(
RegionModel
regionModel
)
{
SearchRequest
searchRequest
=
new
SearchRequest
(
INDEX_NAME
);
SearchSourceBuilder
searchSourceBuilder
=
new
SearchSourceBuilder
();
// 将 regionModel.getRegionCode() 转换成匹配中间部分的格式
String
regionCodePattern
=
"*"
+
regionModel
.
getRegionCode
()
+
"*"
;
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
must
(
QueryBuilders
.
wildcardQuery
(
"regionCode"
,
regionCodePattern
));
searchSourceBuilder
.
query
(
boolQueryBuilder
);
searchSourceBuilder
.
aggregation
(
AggregationBuilders
.
cardinality
(
"total_filling_count"
)
.
field
(
"sequenceNbr
.keyword
"
)
.
field
(
"sequenceNbr"
)
);
searchSourceBuilder
.
aggregation
(
AggregationBuilders
.
sum
(
"total_filling_quantity"
)
.
field
(
"fillingQuantity"
)
);
searchRequest
.
source
(
searchSourceBuilder
);
System
.
out
.
println
(
"Search Request: "
+
searchRequest
);
try
{
// 执行搜索请求
SearchResponse
searchResponse
=
restHighLevelClient
.
search
(
searchRequest
,
RequestOptions
.
DEFAULT
);
// 获取所有聚合结果
Aggregations
aggregations
=
searchResponse
.
getAggregations
();
ParsedCardinality
cardinalityAgg
=
aggregations
.
get
(
"total_filling_count"
);
long
uniqueCount
=
cardinalityAgg
.
getValue
();
Sum
sumAgg
=
aggregations
.
get
(
"total_filling_quantity"
);
double
totalSum
=
sumAgg
.
getValue
();
System
.
out
.
println
(
"填充数量的唯一值数量: "
+
uniqueCount
);
System
.
out
.
println
(
"填充量的总和: "
+
totalSum
);
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
REGION_CODE
,
regionModel
.
getRegionCode
());
resultMap
.
put
(
REGION_NAME
,
regionModel
.
getRegionName
());
resultMap
.
put
(
FILLING_TIMES
,
uniqueCount
);
resultMap
.
put
(
FILLING_QUANTITY
,
totalSum
);
return
resultMap
;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
...
...
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