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
bb225ddc
Commit
bb225ddc
authored
Dec 24, 2024
by
韩桐桐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(jg):八大类历史设备导入-压力管道(未完)
parent
64ee542e
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
215 additions
and
74 deletions
+215
-74
DictParamsConverter.java
...mos/boot/module/jg/api/converter/DictParamsConverter.java
+4
-5
EquListConverter.java
...n/amos/boot/module/jg/api/converter/EquListConverter.java
+1
-1
EquipInfoExcelDto.java
...eejoin/amos/boot/module/jg/api/dto/EquipInfoExcelDto.java
+10
-0
DataDockController.java
...mos/boot/module/jg/biz/controller/DataDockController.java
+1
-1
IIdxBizJgProjectContraptionService.java
...le/jg/biz/service/IIdxBizJgProjectContraptionService.java
+2
-1
DataDockServiceImpl.java
.../boot/module/jg/biz/service/impl/DataDockServiceImpl.java
+197
-66
No files found.
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/converter/DictParamsConverter.java
View file @
bb225ddc
...
...
@@ -75,6 +75,10 @@ public class DictParamsConverter implements Converter<String> {
dictMap
.
put
(
"液化天然气"
,
"LIQUEFIED_NATURAL_GAS"
);
dictMap
.
put
(
"液化石油气"
,
"LIQUEFIED_PETROLEUM_GAS"
);
dictMap
.
put
(
"氢气"
,
"HYDROGEN"
);
dictMap
.
put
(
"集选"
,
"1"
);
dictMap
.
put
(
"并联"
,
"2"
);
dictMap
.
put
(
"按钮"
,
"3"
);
dictMap
.
put
(
"其他控制方式"
,
"4"
);
}
@Override
...
...
@@ -101,8 +105,4 @@ public class DictParamsConverter implements Converter<String> {
public
CellData
convertToExcelData
(
String
o
,
ExcelContentProperty
excelContentProperty
,
GlobalConfiguration
globalConfiguration
)
throws
Exception
{
return
new
CellData
(
""
);
}
public
static
void
main
(
String
[]
args
)
{
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/converter/EquListConverter.java
View file @
bb225ddc
...
...
@@ -11,7 +11,7 @@ import java.util.Map;
public
class
EquListConverter
implements
Converter
<
String
>
{
p
rivate
static
final
Map
<
String
,
String
>
equipmentMap
=
new
HashMap
<>();
p
ublic
static
final
Map
<
String
,
String
>
equipmentMap
=
new
HashMap
<>();
static
{
// 填充映射关系
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/dto/EquipInfoExcelDto.java
View file @
bb225ddc
...
...
@@ -47,6 +47,11 @@ public class EquipInfoExcelDto extends BaseDto {
@NotBlank
(
message
=
"产品名称不能为空"
)
private
String
productName
;
@ApiModelProperty
(
value
=
"管道名称(登记单元)"
)
@ExcelProperty
(
value
=
"管道名称(登记单元)"
)
@NotBlank
(
message
=
"管道名称不能为空"
)
private
String
pipeName
;
@ApiModelProperty
(
value
=
"设备型号"
)
@ExcelProperty
(
value
=
"设备型号"
)
@NotBlank
(
message
=
"设备型号不能为空"
)
...
...
@@ -70,6 +75,11 @@ public class EquipInfoExcelDto extends BaseDto {
@ExcelProperty
(
value
=
"工程(装置)名称"
)
private
String
projectContraption
;
@ApiModelProperty
(
value
=
"工程(装置)编号"
)
@ExcelProperty
(
value
=
"工程(装置)编号"
)
private
String
projectContraptionNo
;
@ApiModelProperty
(
value
=
"是否球罐"
)
@ExcelProperty
(
value
=
"是否球罐"
,
converter
=
VehicleCylinderConverter
.
class
)
private
String
whetherSphericalTank
;
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/DataDockController.java
View file @
bb225ddc
...
...
@@ -35,7 +35,7 @@ public class DataDockController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/xi-an/saveEquipmentData"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"西安数据对接-设备批量导入"
,
notes
=
"西安数据对接-导入多个设备的数据文件"
)
public
ResponseModel
<?>
saveEquipmentData
(
@RequestBody
List
<
Map
<
?,
?
>>
equLists
)
throws
Exception
{
public
ResponseModel
<?>
saveEquipmentData
(
@RequestBody
List
<
Map
<
String
,
Object
>>
equLists
)
throws
Exception
{
return
ResponseHelper
.
buildResponse
(
dataDockService
.
xiAnSaveEquipmentData
(
equLists
));
}
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/IIdxBizJgProjectContraptionService.java
View file @
bb225ddc
...
...
@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption
;
...
...
@@ -14,7 +15,7 @@ import java.util.Map;
* @author system_generator
* @date 2024-12-11
*/
public
interface
IIdxBizJgProjectContraptionService
{
public
interface
IIdxBizJgProjectContraptionService
extends
IService
<
IdxBizJgProjectContraption
>
{
boolean
saveOrUpdateData
(
IdxBizJgProjectContraption
projectContraption
);
...
...
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/DataDockServiceImpl.java
View file @
bb225ddc
...
...
@@ -8,6 +8,7 @@ import com.alibaba.excel.read.metadata.ReadSheet;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil
;
import
com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory
;
import
com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipInfoExcelDto
;
...
...
@@ -34,6 +35,7 @@ import java.sql.Timestamp;
import
java.util.*
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
static
com
.
alibaba
.
fastjson
.
JSON
.
toJSONString
;
...
...
@@ -41,9 +43,11 @@ import static com.alibaba.fastjson.JSON.toJSONString;
@Service
@RequiredArgsConstructor
public
class
DataDockServiceImpl
{
private
final
SnowflakeIdUtil
sequence
;
private
final
ESEquipmentCategory
esEquipmentCategory
;
private
final
CategoryOtherInfoMapper
categoryOtherInfoMapper
;
private
final
IIdxBizJgUseInfoService
idxBizJgUseInfoService
;
private
final
IIdxBizJgProjectContraptionService
idxBizJgProjectContraptionService
;
private
final
IdxBizJgDesignInfoServiceImpl
idxBizJgDesignInfoService
;
private
final
IdxBizJgFactoryInfoServiceImpl
idxBizJgFactoryInfoService
;
private
final
IdxBizJgRegisterInfoServiceImpl
idxBizJgRegisterInfoServiceImpl
;
...
...
@@ -57,9 +61,17 @@ public class DataDockServiceImpl {
private
final
IIdxBizJgTechParamsRidesService
iIdxBizJgTechParamsRidesService
;
private
final
IIdxBizJgTechParamsRopewayService
iIdxBizJgTechParamsRopewayService
;
private
final
IIdxBizJgTechParamsElevatorService
iIdxBizJgTechParamsElevatorService
;
private
final
IdxBizJgProjectContraptionServiceImpl
idxBizJgProjectContraptionServiceImpl
;
private
final
TransactionTemplate
transactionTemplate
;
private
final
CommonServiceImpl
commonService
;
private
final
Map
<
String
,
Object
>
resultError
=
new
HashMap
<>();
List
<
String
>
useInnerCodeList
=
new
ArrayList
<>();
// 单位内部编号集合
List
<
String
>
equCodeList
=
new
ArrayList
<>();
// 设备代码集合
List
<
String
>
factoryNumList
=
new
ArrayList
<>();
// 出厂编码集合
List
<
String
>
useOrgCodeList
=
new
ArrayList
<>();
// 使用登记证集合
Map
<
String
,
List
<
String
>>
projectContraptionMap
=
new
HashMap
<>();
// 工程装置名称集合
/**
* 西安数据对接-保存设备信息
*
...
...
@@ -68,21 +80,23 @@ public class DataDockServiceImpl {
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
xiAnSaveEquipmentData
(
List
<
Map
<
?,
?
>>
equLists
)
{
public
boolean
xiAnSaveEquipmentData
(
List
<
Map
<
String
,
Object
>>
equLists
)
{
CompletableFuture
.
allOf
(
equLists
.
stream
().
map
(
equ
->
CompletableFuture
.
runAsync
(()
->
saveEquipmentDataInTransaction
(
equ
,
"jg_his_xa"
,
null
))).
toArray
(
CompletableFuture
[]::
new
)).
join
();
return
Boolean
.
TRUE
;
}
private
void
saveEquipmentDataInTransaction
(
Map
<
?,
?
>
equ
,
String
dataSource
,
String
remark
)
{
private
void
saveEquipmentDataInTransaction
(
Map
<
String
,
Object
>
equ
,
String
dataSource
,
String
remark
)
{
try
{
transactionTemplate
.
execute
(
status
->
{
String
record
=
UUID
.
randomUUID
().
toString
();
String
equList
=
String
.
valueOf
(
equ
.
get
(
"equList"
));
// 压力管道保存 工程装置表信息 必须在saveUseInfo之前进行,需要提前生成工程装置id
saveProjectContraption
(
equ
,
equList
);
// 保存到设备表
saveUseInfo
(
equ
,
record
,
dataSource
,
remark
);
saveDesignInfo
(
equ
,
record
);
saveFactoryInfo
(
equ
,
record
);
saveRegisterInfo
(
equ
,
record
);
saveRegisterInfo
(
equ
,
record
,
equList
);
saveSupervisionInfo
(
equ
,
record
);
saveOtherInfo
(
equ
,
record
,
equList
);
// 保存技术参数
...
...
@@ -99,12 +113,60 @@ public class DataDockServiceImpl {
}
/**
* 保存工程装置表信息
*/
private
void
saveProjectContraption
(
Map
<
String
,
Object
>
equ
,
String
equList
)
{
if
(
EquipmentClassifityEnum
.
YLGD
.
getCode
().
equals
(
equList
))
{
IdxBizJgProjectContraption
projectContraption
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgProjectContraption
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
projectContraption
))
{
String
useUnitCode
=
String
.
valueOf
(
equ
.
get
(
"useUnitCode"
)).
trim
();
// 使用单位Code
String
useUnit
=
String
.
valueOf
(
equ
.
get
(
"useUnit"
)).
trim
();
// 使用单位名称
String
proConName
=
String
.
valueOf
(
equ
.
get
(
"projectContraption"
)).
trim
();
// 工程装置名称
// 查询该企业下是否已经有该工程装置名称 有-》追加 update 无-》新增 save
IdxBizJgProjectContraption
oldContraption
=
idxBizJgProjectContraptionService
.
lambdaQuery
()
.
eq
(
IdxBizJgProjectContraption:
:
getUseUnitCreditCode
,
useUnitCode
)
.
eq
(
IdxBizJgProjectContraption:
:
getUseUnitName
,
useUnit
)
.
eq
(
IdxBizJgProjectContraption:
:
getProjectContraption
,
proConName
)
.
one
();
projectContraption
.
setRecDate
(
new
Date
());
if
(
ObjectUtils
.
isEmpty
(
oldContraption
))
{
// save
Long
sequenceNbr
=
sequence
.
nextId
();
projectContraption
.
setSequenceNbr
(
sequenceNbr
);
projectContraption
.
setUseUnitCreditCode
(
useUnitCode
);
projectContraption
.
setUseUnitName
(
useUnit
);
projectContraption
.
setEquList
(
equList
);
projectContraption
.
setEquListName
(
EquipmentClassifityEnum
.
getNameByCode
(
equList
));
projectContraption
.
setEquCategory
((
String
)
equ
.
get
(
"equCategory"
));
projectContraption
.
setEquCategoryName
(
EquipmentClassifityEnum
.
getNameByCode
((
String
)
equ
.
get
(
"equCategory"
)));
projectContraption
.
setEquDefine
((
String
)
equ
.
get
(
"equDefine"
));
projectContraption
.
setEquDefineName
(
EquipmentClassifityEnum
.
getNameByCode
((
String
)
equ
.
get
(
"equDefine"
)));
projectContraption
.
setPipelineLength
(
Double
.
parseDouble
((
String
)
equ
.
get
(
"pipeLength"
)));
projectContraption
.
setUseRegistrationCode
((
String
)
equ
.
get
(
"useOrgCode"
));
projectContraption
.
setIsIntoManagement
(
Boolean
.
FALSE
);
idxBizJgProjectContraptionService
.
save
(
projectContraption
);
equ
.
put
(
"projectContraptionId"
,
sequenceNbr
);
}
else
{
// update
equ
.
put
(
"projectContraptionId"
,
oldContraption
.
getSequenceNbr
());
projectContraption
.
setSequenceNbr
(
oldContraption
.
getSequenceNbr
());
Double
oldPipelineLength
=
oldContraption
.
getPipelineLength
();
projectContraption
.
setPipelineLength
(
Double
.
sum
(
oldPipelineLength
,
Double
.
parseDouble
((
String
)
equ
.
get
(
"pipeLength"
))));
idxBizJgProjectContraptionService
.
updateById
(
projectContraption
);
}
}
}
}
/**
* 保存使用信息表
*
* @param equ
* @param record
*/
private
void
saveUseInfo
(
Map
<
?,
?
>
equ
,
String
record
,
String
dataSource
,
String
remark
)
{
private
void
saveUseInfo
(
Map
<
String
,
Object
>
equ
,
String
record
,
String
dataSource
,
String
remark
)
{
IdxBizJgUseInfo
useInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgUseInfo
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
useInfo
))
{
useInfo
.
setRecDate
(
new
Date
());
...
...
@@ -115,6 +177,7 @@ public class DataDockServiceImpl {
useInfo
.
setUseUnitCreditCode
(
String
.
valueOf
(
equ
.
get
(
"useUnitCode"
)).
trim
());
useInfo
.
setUseUnitName
(
String
.
valueOf
(
equ
.
get
(
"useUnit"
)).
trim
());
useInfo
.
setRemark
(
remark
);
useInfo
.
setProjectContraptionId
(
String
.
valueOf
(
equ
.
get
(
"projectContraptionId"
)));
idxBizJgUseInfoService
.
save
(
useInfo
);
}
}
...
...
@@ -125,7 +188,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveDesignInfo
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveDesignInfo
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgDesignInfo
designInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgDesignInfo
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
designInfo
))
{
designInfo
.
setRecord
(
record
);
...
...
@@ -140,7 +203,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveFactoryInfo
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveFactoryInfo
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgFactoryInfo
factoryInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgFactoryInfo
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
factoryInfo
))
{
factoryInfo
.
setRecord
(
record
);
...
...
@@ -156,12 +219,15 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveRegisterInfo
(
Map
<
?,
?>
equ
,
String
record
)
{
private
void
saveRegisterInfo
(
Map
<
String
,
Object
>
equ
,
String
record
,
String
equList
)
{
IdxBizJgRegisterInfo
registerInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgRegisterInfo
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
registerInfo
))
{
registerInfo
.
setRecord
(
record
);
registerInfo
.
setRecDate
(
new
Date
());
registerInfo
.
setRegisterState
(
"6045"
);
if
(
EquipmentClassifityEnum
.
YLGD
.
getCode
().
equals
(
equList
))
{
registerInfo
.
setEquCodeType
(
"2"
);
}
idxBizJgRegisterInfoServiceImpl
.
save
(
registerInfo
);
}
}
...
...
@@ -172,7 +238,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveSupervisionInfo
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveSupervisionInfo
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgSupervisionInfo
supervisionInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgSupervisionInfo
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
supervisionInfo
))
{
supervisionInfo
.
setRecord
(
record
);
...
...
@@ -187,7 +253,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveOtherInfo
(
Map
<
?,
?
>
equ
,
String
record
,
String
equList
)
{
private
void
saveOtherInfo
(
Map
<
String
,
Object
>
equ
,
String
record
,
String
equList
)
{
IdxBizJgOtherInfo
otherInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgOtherInfo
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
otherInfo
))
{
otherInfo
.
setRecord
(
record
);
...
...
@@ -207,7 +273,7 @@ public class DataDockServiceImpl {
* @param record
* @param equList
*/
private
void
saveTechParams
(
Map
<
?,
?
>
equ
,
String
record
,
String
equList
)
{
private
void
saveTechParams
(
Map
<
String
,
Object
>
equ
,
String
record
,
String
equList
)
{
if
(
EquipmentClassifityEnum
.
QZJX
.
getCode
().
equals
(
equList
))
{
saveLiftingParams
(
equ
,
record
);
}
else
if
(
EquipmentClassifityEnum
.
CC
.
getCode
().
equals
(
equList
))
{
...
...
@@ -233,7 +299,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveLiftingParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveLiftingParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsLifting
equipTechParamLifting
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsLifting
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamLifting
))
{
equipTechParamLifting
.
setRecord
(
record
);
...
...
@@ -248,7 +314,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveVehicleParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveVehicleParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsVehicle
equipTechParamVehicle
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsVehicle
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamVehicle
))
{
equipTechParamVehicle
.
setRecord
(
record
);
...
...
@@ -263,7 +329,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveBoilerParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveBoilerParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsBoiler
equipTechParamBoiler
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsBoiler
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamBoiler
))
{
equipTechParamBoiler
.
setRecord
(
record
);
...
...
@@ -278,7 +344,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveVesselParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveVesselParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsVessel
equipTechParamVessel
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsVessel
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamVessel
))
{
equipTechParamVessel
.
setRecord
(
record
);
...
...
@@ -293,7 +359,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
savePipelineParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
savePipelineParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsPipeline
equipTechParamPipeline
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsPipeline
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamPipeline
))
{
equipTechParamPipeline
.
setWallThickness
(
String
.
valueOf
(
equ
.
get
(
"wallThickness_YLGD"
)));
...
...
@@ -312,7 +378,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveRidesParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveRidesParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsRides
equipTechParamRides
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsRides
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamRides
))
{
equipTechParamRides
.
setRecord
(
record
);
...
...
@@ -330,7 +396,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveRopewayParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveRopewayParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsRopeway
equipTechParamRopeway
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsRopeway
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamRopeway
))
{
equipTechParamRopeway
.
setRecord
(
record
);
...
...
@@ -345,7 +411,7 @@ public class DataDockServiceImpl {
* @param equ
* @param record
*/
private
void
saveElevatorParams
(
Map
<
?,
?
>
equ
,
String
record
)
{
private
void
saveElevatorParams
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
IdxBizJgTechParamsElevator
equipTechParamElevator
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
IdxBizJgTechParamsElevator
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
equipTechParamElevator
))
{
equipTechParamElevator
.
setRecord
(
record
);
...
...
@@ -393,12 +459,6 @@ public class DataDockServiceImpl {
return
Boolean
.
TRUE
;
}
private
final
Map
<
String
,
Object
>
resultError
=
new
HashMap
<>();
List
<
String
>
useInnerCodeList
=
new
ArrayList
<>();
// 单位内部编号集合
List
<
String
>
equCodeList
=
new
ArrayList
<>();
// 设备代码集合
List
<
String
>
factoryNumList
=
new
ArrayList
<>();
// 出厂编码集合
List
<
String
>
useOrgCodeList
=
new
ArrayList
<>();
// 使用登记证集合
/**
* excel 文件读取,字段校验
*
...
...
@@ -413,6 +473,7 @@ public class DataDockServiceImpl {
equCodeList
.
clear
();
factoryNumList
.
clear
();
useOrgCodeList
.
clear
();
projectContraptionMap
.
clear
();
try
{
InputStream
inputStream
=
file
.
getInputStream
();
...
...
@@ -482,21 +543,21 @@ public class DataDockServiceImpl {
StringBuffer
rowError
=
new
StringBuffer
();
log
.
info
(
"开始解析数据,第{}条数据"
,
rowIndex
);
// 是否起重机械
boolean
isQZJX
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"4000"
.
equals
(
data
.
getEquList
());
boolean
isQZJX
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
QZJX
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否场内机动车辆
boolean
isCNJDXL
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"5000"
.
equals
(
data
.
getEquList
());
boolean
isCNJDXL
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
CC
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否锅炉
boolean
isGL
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"1000"
.
equals
(
data
.
getEquList
());
boolean
isGL
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
GL
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否压力容器
boolean
isYLRQ
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"2000"
.
equals
(
data
.
getEquList
());
boolean
isYLRQ
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLRQ
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否压力管道
boolean
isYLGD
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"8000"
.
equals
(
data
.
getEquList
());
boolean
isYLGD
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLGD
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否大型游乐设施
boolean
isDXYNSS
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"6000"
.
equals
(
data
.
getEquList
());
boolean
isDXYNSS
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLSS
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否客运索道
boolean
isKYSD
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"9000"
.
equals
(
data
.
getEquList
());
boolean
isKYSD
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
KYSD
.
getCode
()
.
equals
(
data
.
getEquList
());
// 是否电梯
boolean
isDT
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
"3000"
.
equals
(
data
.
getEquList
());
boolean
isDT
=
!
ValidationUtil
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
DT
.
getCode
()
.
equals
(
data
.
getEquList
());
try
{
log
.
info
(
"解析第{}行数据:{}"
,
rowIndex
,
JSON
.
toJSONString
(
data
));
...
...
@@ -556,8 +617,11 @@ public class DataDockServiceImpl {
*/
private
void
commonFieldCheck
(
EquipInfoExcelDto
data
,
StringBuffer
rowError
)
{
boolean
isPressureVessel
=
!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
"2000"
.
equals
(
data
.
getEquList
());
// 是否压力容器
boolean
isPressurePiping
=
!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
"8000"
.
equals
(
data
.
getEquList
());
// 是否压力管道
boolean
isYLRQ
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLRQ
.
getCode
().
equals
(
data
.
getEquList
());
// 是否压力容器
boolean
isYLGD
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLGD
.
getCode
().
equals
(
data
.
getEquList
());
// 是否压力管道
boolean
isDT
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
DT
.
getCode
().
equals
(
data
.
getEquList
());
// 是否电梯
boolean
isCC
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
CC
.
getCode
().
equals
(
data
.
getEquList
());
// 是否场车
boolean
isQZJX
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
QZJX
.
getCode
().
equals
(
data
.
getEquList
());
// 是否起重机械
// 基本信息
checkNotBlank
(
data
.
getEquList
(),
"设备种类不能为空;"
,
rowError
);
...
...
@@ -566,35 +630,79 @@ public class DataDockServiceImpl {
if
(
useInnerCodeList
.
contains
(
data
.
getUseInnerCode
()))
{
rowError
.
append
(
"单位内编号不能重复;"
);
}
checkNotBlank
(
data
.
getProductName
(),
"产品名称不能为空;"
,
rowError
);
checkNotBlank
(
data
.
getEquType
(),
"设备型号不能为空;"
,
rowError
);
checkNotBlank
(
data
.
getEquCodeType
(),
"有无设备代码不能为空;"
,
rowError
);
if
(
"1"
.
equals
(
data
.
getEquCodeType
()))
{
checkNotBlank
(
data
.
getEquCode
(),
"设备代码不能为空;"
,
rowError
);
String
equCode
=
data
.
getEquCode
();
if
(
equCode
.
matches
(
"[a-zA-Z0-9]+"
))
{
if
(
equCode
.
length
()
<=
17
)
{
rowError
.
append
(
"设备代码不能小于17位;"
);
if
(!
isYLGD
)
{
checkNotBlank
(
data
.
getProductName
(),
"产品名称不能为空;"
,
rowError
);
checkNotBlank
(
data
.
getEquCodeType
(),
"有无设备代码不能为空;"
,
rowError
);
if
(
"1"
.
equals
(
data
.
getEquCodeType
()))
{
checkNotBlank
(
data
.
getEquCode
(),
"设备代码不能为空;"
,
rowError
);
String
equCode
=
data
.
getEquCode
();
if
(
equCode
.
matches
(
"[a-zA-Z0-9]+"
))
{
if
(
equCode
.
length
()
<=
17
)
{
rowError
.
append
(
"设备代码不能小于17位;"
);
}
if
(
equCode
.
length
()
>=
20
)
{
rowError
.
append
(
"设备代码不能大于20位;"
);
}
}
else
{
rowError
.
append
(
"设备代码不能包含特殊字符;"
);
}
if
(
equCode
.
length
()
>=
20
)
{
rowError
.
append
(
"设备代码不能
大于20位
;"
);
if
(
equCode
List
.
contains
(
data
.
getEquCode
())
)
{
rowError
.
append
(
"设备代码不能
重复
;"
);
}
this
.
checkEquCodeUniqueness
(
data
.
getEquCode
(),
rowError
);
}
else
{
rowError
.
append
(
"设备代码不能包含特殊字符;"
);
}
if
(
equCodeList
.
contains
(
data
.
getEquCode
()))
{
rowError
.
append
(
"设备代码不能重复;"
);
data
.
setEquCode
(
""
);
}
this
.
checkEquCodeUniqueness
(
data
.
getEquCode
(),
rowError
);
}
else
{
data
.
setEquCode
(
""
);
}
if
(
isPressurePiping
)
{
// 校验压力管道特有的参数
if
(
isYLGD
)
{
// 校验压力管道特有的参数
checkNotBlank
(
data
.
getPipeName
(),
"管道名称不能为空;"
,
rowError
);
checkNotBlank
(
data
.
getProjectContraption
(),
"工程(装置)名称不能为空;"
,
rowError
);
checkNotBlank
(
data
.
getProjectContraptionNo
(),
"工程(装置)编号不能为空;"
,
rowError
);
// todo
if
(
commonService
.
useRegistrationCertificateAccountUnique
(
data
.
getUseOrgCode
(),
null
))
{
rowError
.
append
(
"使用登记证编号已存在系统中;"
);
}
// 同一工程装置下管道编号不能重复
if
(!
ValidationUtil
.
isEmpty
(
data
.
getProjectContraption
()))
{
String
useUnitCode
=
String
.
valueOf
(
data
.
getUseUnitCode
()).
trim
();
// 使用单位Code
String
useUnit
=
String
.
valueOf
(
data
.
getUseUnit
()).
trim
();
// 使用单位名称
String
proConName
=
data
.
getProjectContraption
().
trim
();
// 工程装置名称
// 查询该企业下工程装置名称
IdxBizJgProjectContraption
oldContraption
=
idxBizJgProjectContraptionService
.
lambdaQuery
()
.
eq
(
IdxBizJgProjectContraption:
:
getUseUnitCreditCode
,
useUnitCode
)
.
eq
(
IdxBizJgProjectContraption:
:
getUseUnitName
,
useUnit
)
.
eq
(
IdxBizJgProjectContraption:
:
getProjectContraption
,
proConName
)
.
one
();
Optional
.
ofNullable
(
oldContraption
).
ifPresent
(
old
->
{
List
<
String
>
pipelineNumberList
=
idxBizJgProjectContraptionServiceImpl
.
getBaseMapper
()
.
selectEquipList
(
String
.
valueOf
(
old
.
getSequenceNbr
()))
.
stream
()
.
map
(
item
->
(
String
)
item
.
get
(
"pipelineNumber"
))
.
collect
(
Collectors
.
toList
());
if
(
pipelineNumberList
.
contains
(
data
.
getPipelineNumber
()))
{
rowError
.
append
(
String
.
format
(
"系统中工程装置(%s)下已经存在管道编号(%s);"
,
data
.
getProjectContraption
(),
data
.
getPipelineNumber
()));
}
});
List
<
String
>
list
=
projectContraptionMap
.
get
(
data
.
getProjectContraption
());
if
(
null
!=
list
)
{
// 判断该装置下是否已经存在该管道编号
if
(
list
.
contains
(
data
.
getPipelineNumber
()))
{
rowError
.
append
(
String
.
format
(
"同一工程装置(%s)下管道编号不能重复;"
,
data
.
getProjectContraption
()));
}
list
.
add
(
data
.
getPipelineNumber
());
}
else
{
list
=
new
ArrayList
<>();
}
projectContraptionMap
.
put
(
data
.
getProjectContraption
(),
list
);
}
}
else
{
data
.
setProjectContraption
(
""
);
}
if
(
is
PressureVessel
)
{
// 校验压力容器特有的参数
if
(
is
YLRQ
)
{
// 校验压力容器特有的参数
boolean
isGasCylinder
=
!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
data
.
getEquCategory
())
&&
"2300"
.
equals
(
data
.
getEquCategory
());
// 是否气瓶
boolean
isFixedGasCylinder
=
!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
data
.
getEquCategory
())
&&
"2100"
.
equals
(
data
.
getEquCategory
());
// 是否固定式压力容器
boolean
isOxygenChamber
=
!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
data
.
getEquCategory
())
&&
"2400"
.
equals
(
data
.
getEquCategory
());
// 是否氧舱
...
...
@@ -660,7 +768,7 @@ public class DataDockServiceImpl {
}
catch
(
Exception
e
)
{
rowError
.
append
(
e
.
getMessage
());
}
if
(
commonService
.
useRegistrationCertificateAccountUnique
(
data
.
getUseOrgCode
(),
null
))
{
if
(
!
isYLGD
&&
commonService
.
useRegistrationCertificateAccountUnique
(
data
.
getUseOrgCode
(),
null
))
{
rowError
.
append
(
"使用登记证编号已存在系统中;"
);
}
}
...
...
@@ -668,15 +776,17 @@ public class DataDockServiceImpl {
checkNotBlank
(
data
.
getUseUnitCode
(),
"使用单位统一社会信用代码不能为空;"
,
rowError
);
Optional
.
ofNullable
(
data
.
getUseUnitCode
()).
ifPresent
(
v
->
checkCreditCode
(
v
,
"使用单位统一社会信用代码格式不正确;"
,
rowError
));
checkNotBlank
(
data
.
getUseUnit
(),
"使用单位名称不能为空;"
,
rowError
);
// 设计信息
// checkNotBlank(data.getDesignUnitCreditCode(), "设计单位统一社会信用代码不能为空;", rowError);
// Optional.ofNullable(data.getDesignUnitCreditCode()).ifPresent(v -> checkCreditCode(v, "设计单位统一社会信用代码格式不正确;", rowError));
// checkNotBlank(data.getDesignUnitName(), "设计单位名称不能为空;", rowError);
// checkNotBlank(data.getDesignUseDate(), "设计使用年限不能为空;", rowError);
// Optional.ofNullable(data.getDesignUseDate()).ifPresent(v -> checkDateFormatNumber(v, "设计使用年限不能为数字以外的其他类型;", rowError));
// checkNotBlank(data.getDesignUseDate(), "设计日期不能为空;", rowError);
// Optional.ofNullable(data.getDesignDate()).ifPresent(v -> checkDateFormatCorrect(v, "设计日期格式不正确;", rowError));
// Optional.ofNullable(data.getAppraisalDate()).ifPresent(v -> checkDateFormatCorrect(v, "设计文件鉴定日期格式不正确;", rowError));
// 设计信息 电梯、场车、起重机械无"设计信息"
if
(!
isDT
&&
!
isCC
&&
!
isQZJX
)
{
checkNotBlank
(
data
.
getDesignUnitCreditCode
(),
"设计单位统一社会信用代码不能为空;"
,
rowError
);
Optional
.
ofNullable
(
data
.
getDesignUnitCreditCode
()).
ifPresent
(
v
->
checkCreditCode
(
v
,
"设计单位统一社会信用代码格式不正确;"
,
rowError
));
checkNotBlank
(
data
.
getDesignUnitName
(),
"设计单位名称不能为空;"
,
rowError
);
checkNotBlank
(
data
.
getDesignUseDate
(),
"设计使用年限不能为空;"
,
rowError
);
Optional
.
ofNullable
(
data
.
getDesignUseDate
()).
ifPresent
(
v
->
checkDateFormatNumber
(
v
,
"设计使用年限不能为数字以外的其他类型;"
,
rowError
));
checkNotBlank
(
data
.
getDesignUseDate
(),
"设计日期不能为空;"
,
rowError
);
Optional
.
ofNullable
(
data
.
getDesignDate
()).
ifPresent
(
v
->
checkDateFormatCorrect
(
v
,
"设计日期格式不正确;"
,
rowError
));
Optional
.
ofNullable
(
data
.
getAppraisalDate
()).
ifPresent
(
v
->
checkDateFormatCorrect
(
v
,
"设计文件鉴定日期格式不正确;"
,
rowError
));
}
// 制造信息
checkNotBlank
(
data
.
getProduceUnitCreditCode
(),
"制造单位统一社会信用代码不能为空;"
,
rowError
);
Optional
.
ofNullable
(
data
.
getProduceUnitCreditCode
()).
ifPresent
(
v
->
checkCreditCode
(
v
,
"制造单位统一社会信用代码格式不正确;"
,
rowError
));
...
...
@@ -957,7 +1067,24 @@ public class DataDockServiceImpl {
String
rule25
=
"^[\\u4e00-\\u9fa5][A-Z]{2}[0-9]{1}:[0-9]{3}$"
;
boolean
flage25
=
Pattern
.
matches
(
rule25
,
useOrgCode
);
return
flage01
||
flage02
||
flage03
||
flage04
||
flage05
||
flage06
||
flage07
||
flage08
||
flage09
||
flage10
||
flage11
||
flage12
||
flage13
||
flage14
||
flage15
||
flage16
||
flage17
||
flage18
||
flage19
||
flage20
||
flage21
||
flage22
||
flage23
||
flage24
||
flage25
;
// 起1100001(21)
String
rule26
=
"^[\\u4e00-\\u9fa5][A-Z0-9]{7}\\(\\d{2}\\)$"
;
boolean
flage26
=
Pattern
.
matches
(
rule26
,
useOrgCode
);
// 梯12秦汉0750(SLT03159-2020)(21)
String
rule27
=
"^[\\u4e00-\\u9fa5][0-9A-Z]{2}[\\u4e00-\\u9fa5]{1,2}[0-9]{4}\\([A-Z0-9]{4,8}-[A-Z0-9]{4}\\)\\(\\d{2}\\)$"
;
boolean
flage27
=
Pattern
.
matches
(
rule27
,
useOrgCode
);
// G-01-T-003548
String
rule28
=
"^[a-zA-Z]{1}-[0-9]{2}-[A-Z]-\\d{6}$"
;
boolean
flage28
=
Pattern
.
matches
(
rule28
,
useOrgCode
);
// 客1LS0013
String
rule29
=
"^[\\u4e00-\\u9fa5]{1}[0-9]{1}[A-Z]{1,2}[0-9]{4}$"
;
boolean
flage29
=
Pattern
.
matches
(
rule29
,
useOrgCode
);
return
flage01
||
flage02
||
flage03
||
flage04
||
flage05
||
flage06
||
flage07
||
flage08
||
flage09
||
flage10
||
flage11
||
flage12
||
flage13
||
flage14
||
flage15
||
flage16
||
flage17
||
flage18
||
flage19
||
flage20
||
flage21
||
flage22
||
flage23
||
flage24
||
flage25
||
flage26
||
flage27
||
flage28
||
flage29
;
}
...
...
@@ -981,9 +1108,13 @@ public class DataDockServiceImpl {
for
(
int
i
=
0
;
i
<
totalSize
;
i
+=
batchSize
)
{
List
<
EquipInfoExcelDto
>
batch
=
equipInfoExcelDtos
.
subList
(
i
,
Math
.
min
(
totalSize
,
i
+
batchSize
));
try
{
CompletableFuture
.
allOf
(
batch
.
stream
().
map
(
equ
->
CompletableFuture
.
runAsync
(()
->
this
.
saveEquipmentDataInTransaction
(
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
Map
.
class
),
"jg_his"
,
remark
))).
toArray
(
CompletableFuture
[]::
new
)).
join
();
CompletableFuture
.
allOf
(
batch
.
stream
().
map
(
equ
->
CompletableFuture
.
runAsync
(
()
->
this
.
saveEquipmentDataInTransaction
((
Map
<
String
,
Object
>)
JSON
.
parseObject
(
JSON
.
toJSONString
(
equ
),
Map
.
class
),
"jg_his"
,
remark
)
)
).
toArray
(
CompletableFuture
[]::
new
)).
join
();
}
catch
(
Exception
e
)
{
log
.
error
(
"数据上传,保存设备数据失败: "
,
e
);
log
.
error
(
"数据上传,保存设备数据失败: {}"
,
e
.
getMessage
());
throw
new
BadRequest
(
"数据上传,保存设备数据失败!"
);
}
}
}
...
...
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