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
df59f087
Commit
df59f087
authored
Jan 13, 2025
by
刘林
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:(jg) 使用登记证编号规则修改
parent
b1ba28be
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
175 additions
and
76 deletions
+175
-76
CommonServiceImpl.java
...os/boot/module/jg/biz/service/impl/CommonServiceImpl.java
+31
-6
JgChangeRegistrationReformServiceImpl.java
...z/service/impl/JgChangeRegistrationReformServiceImpl.java
+0
-16
JgChangeRegistrationTransferServiceImpl.java
...service/impl/JgChangeRegistrationTransferServiceImpl.java
+1
-2
JgChangeRegistrationUnitServiceImpl.java
...biz/service/impl/JgChangeRegistrationUnitServiceImpl.java
+9
-23
JgChangeVehicleRegistrationUnitServiceImpl.java
...vice/impl/JgChangeVehicleRegistrationUnitServiceImpl.java
+14
-3
JgUseRegistrationServiceImpl.java
...ule/jg/biz/service/impl/JgUseRegistrationServiceImpl.java
+3
-21
JgVehicleInformationServiceImpl.java
.../jg/biz/service/impl/JgVehicleInformationServiceImpl.java
+13
-4
GenerateCodeServiceImpl.java
.../module/ymt/biz/service/impl/GenerateCodeServiceImpl.java
+104
-1
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/CommonServiceImpl.java
View file @
df59f087
...
...
@@ -250,9 +250,10 @@ public class CommonServiceImpl implements ICommonService {
EquipTechParamPipelineMapper
equipTechParamPipelineMapper
;
@Autowired
private
JgChangeVehicleRegistrationUnitServiceImpl
jgChangeVehicleRegistrationUnitService
;
@Autowired
private
CodeGenServiceImpl
codeGenService
;
private
JgUseRegistrationManageServiceImpl
jgUseRegistrationManageService
;
@Autowired
private
CodeGenServiceImpl
codeGenService
;
@Value
(
"${qrcode.prefix:https://sxtzsb.sxsei.com:19435/tzs}"
)
private
String
qrcodePrefix
;
...
...
@@ -1840,13 +1841,38 @@ public class CommonServiceImpl implements ICommonService {
city
=
specialRegionCode
.
getName
();
}
}
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
equCategoryAbbrName
+
equipType2MidDigits
+
"陕"
+
city
);
return
stringResponseModel
.
getResult
();
return
generateUniqueUseRegistrationCode
(
equCategoryAbbrName
,
equipType2MidDigits
,
city
);
}
}
return
null
;
}
/**
* 生成唯一使用登记编号
*
* @param equCategoryAbbrName 设备种类简称
* @param equipType2MidDigits 设备代码中间两位
* @param city 登记机关代号
* @return 唯一使用登记编号
*/
String
generateUniqueUseRegistrationCode
(
String
equCategoryAbbrName
,
String
equipType2MidDigits
,
String
city
)
{
String
useRegistrationCode
;
JgUseRegistrationManage
jgUseRegistrationManage
;
do
{
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
equCategoryAbbrName
+
equipType2MidDigits
+
"陕"
+
city
);
useRegistrationCode
=
stringResponseModel
.
getResult
();
// 查询是否已有相同登记证号的记录
jgUseRegistrationManage
=
jgUseRegistrationManageService
.
getBaseMapper
().
selectOne
(
new
LambdaQueryWrapper
<
JgUseRegistrationManage
>()
.
eq
(
JgUseRegistrationManage:
:
getUseRegistrationCode
,
useRegistrationCode
)
.
eq
(
JgUseRegistrationManage:
:
getIsDelete
,
0
)
.
eq
(
JgUseRegistrationManage:
:
getCertificateStatus
,
"已登记"
)
);
}
while
(
jgUseRegistrationManage
!=
null
);
return
useRegistrationCode
;
}
/**
* 生成使用登记编号
*
...
...
@@ -1896,8 +1922,7 @@ public class CommonServiceImpl implements ICommonService {
city
=
specialRegionCode
.
getName
();
}
}
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
equCategoryAbbrName
+
equipType2MidDigits
+
"陕"
+
city
);
return
stringResponseModel
.
getResult
();
return
generateUniqueUseRegistrationCode
(
equCategoryAbbrName
,
equipType2MidDigits
,
city
);
}
}
return
null
;
...
...
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/JgChangeRegistrationReformServiceImpl.java
View file @
df59f087
...
...
@@ -892,22 +892,6 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
return
result
;
}
/**
* @param supervisoryCode
* @return
* @deprecated 根据监管码或者新的使用登记编码
*/
public
String
getCode
(
String
supervisoryCode
)
{
if
(!
ObjectUtils
.
isEmpty
(
supervisoryCode
)
&&
supervisoryCode
.
length
()
>
5
)
{
String
name
=
EquipTypeEnum
.
getMessage
(
supervisoryCode
.
substring
(
1
,
2
));
String
type
=
supervisoryCode
.
substring
(
2
,
4
);
String
city
=
supervisoryCode
.
substring
(
0
,
1
);
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
name
+
type
+
"陕"
+
city
);
return
stringResponseModel
.
getResult
();
}
return
null
;
}
@Override
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
)
{
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
...
...
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/JgChangeRegistrationTransferServiceImpl.java
View file @
df59f087
...
...
@@ -1321,8 +1321,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
String
name
=
EquipTypeEnum
.
getMessage
(
supervisoryCode
.
substring
(
1
,
2
));
String
type
=
supervisoryCode
.
substring
(
2
,
4
);
String
city
=
supervisoryCode
.
substring
(
0
,
1
);
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
name
+
type
+
"陕"
+
city
);
return
stringResponseModel
.
getResult
();
return
commonServiceImpl
.
generateUniqueUseRegistrationCode
(
name
,
type
,
city
);
}
return
null
;
}
...
...
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/JgChangeRegistrationUnitServiceImpl.java
View file @
df59f087
...
...
@@ -604,6 +604,15 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
List
<
JSONObject
>
deviceList
=
registrationManageService
.
queryEquByCertificateSeqList
(
registrationIdList
);
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo
company
=
reginParams
.
getCompany
();
deviceList
.
forEach
(
jsonObject
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PROCESS_DEFINITION_KEY
)
.
equipRepeatUsedCheck
(
String
.
valueOf
(
jsonObject
.
get
(
"SEQUENCE_NBR"
)),
CompanyTypeEnum
.
INDIVIDUAL
.
getName
().
equals
(
company
.
getCompanyType
())
?
company
.
getCompanyCode
().
split
(
"_"
)[
1
]
:
company
.
getCompanyCode
()));
}
// 获取单位变更设备列表
if
(
CollectionUtils
.
isEmpty
(
deviceList
))
{
throw
new
BadRequest
(
"使用登记证下无设备"
);
...
...
@@ -752,16 +761,6 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
registrationHistoryService
.
getBaseMapper
().
delete
(
new
LambdaQueryWrapper
<
JgRegistrationHistory
>()
.
eq
(
JgRegistrationHistory:
:
getCurrentDocumentId
,
registrationUnit
.
getApplyNo
()));
registrationHistoryService
.
save
(
jgRegistrationHistory
);
if
(
SUBMIT_TYPE_FLOW
.
equals
(
submitType
))
{
//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo
company
=
reginParams
.
getCompany
();
deviceList
.
forEach
(
jsonObject
->
EquipUsedCheckStrategyContext
.
getUsedStrategy
(
PROCESS_DEFINITION_KEY
)
.
equipRepeatUsedCheck
(
String
.
valueOf
(
jsonObject
.
get
(
"SEQUENCE_NBR"
)),
CompanyTypeEnum
.
INDIVIDUAL
.
getName
().
equals
(
company
.
getCompanyType
())
?
company
.
getCompanyCode
().
split
(
"_"
)[
1
]
:
company
.
getCompanyCode
()));
}
return
Collections
.
singletonList
(
model
);
}
...
...
@@ -1133,19 +1132,6 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationNameEqMapper
.
updateEquipIsVaildByEquipIdAndCurrentDocumentId
(
equId
,
equipTransferId
);
}
public
String
getCode
(
String
supervisoryCode
)
{
if
(!
ObjectUtils
.
isEmpty
(
supervisoryCode
)
&&
supervisoryCode
.
length
()
>
5
)
{
String
name
=
EquipTypeEnum
.
getMessage
(
supervisoryCode
.
substring
(
1
,
2
));
String
type
=
supervisoryCode
.
substring
(
2
,
4
);
String
city
=
supervisoryCode
.
substring
(
0
,
1
);
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
name
+
type
+
"陕"
+
city
);
return
stringResponseModel
.
getResult
();
}
return
null
;
}
/**
* 导出使用登记证
*
...
...
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/JgChangeVehicleRegistrationUnitServiceImpl.java
View file @
df59f087
...
...
@@ -603,9 +603,20 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
private
String
generateVehicleUseRegistrationCode
(
String
receiveCompanyCode
,
String
equDefineCode
)
{
// 构建设备种类简称
String
useRegistration
=
String
.
format
(
"瓶%s%s"
,
equDefineCode
.
substring
(
1
,
3
),
VehicleApanageEnum
.
of
(
receiveCompanyCode
));
// 调用服务端获取注册码
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
useRegistration
);
return
stringResponseModel
.
getResult
();
String
useRegistrationCode
;
JgUseRegistrationManage
jgUseRegistrationManage
;
do
{
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
useRegistration
);
useRegistrationCode
=
stringResponseModel
.
getResult
();
// 查询是否已有相同登记证号的记录
jgUseRegistrationManage
=
jgUseRegistrationManageService
.
getBaseMapper
().
selectOne
(
new
LambdaQueryWrapper
<
JgUseRegistrationManage
>()
.
eq
(
JgUseRegistrationManage:
:
getUseRegistrationCode
,
useRegistrationCode
)
.
eq
(
JgUseRegistrationManage:
:
getIsDelete
,
0
)
.
eq
(
JgUseRegistrationManage:
:
getCertificateStatus
,
"已登记"
)
);
}
while
(
jgUseRegistrationManage
!=
null
);
return
useRegistrationCode
;
}
public
InstanceRuntimeData
buildInstanceRuntimeData
(
JgChangeVehicleRegistrationUnit
...
...
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/JgUseRegistrationServiceImpl.java
View file @
df59f087
...
...
@@ -1972,8 +1972,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 查询管道设备详情
jsonObject
.
put
(
"equipmentLists"
,
jgUseRegistrationMapper
.
queryForUnitPipelineEquipment
(
records
));
}
}
else
{
this
.
setPieLineInspectInfo
(
jgUseRegistration
.
getProjectContraptionId
(),
jsonObject
);
this
.
setConstructionInfo
(
jgUseRegistration
.
getProjectContraptionId
(),
jsonObject
);
}
this
.
fillLastEquipDetail
(
jsonObject
,
record
);
//历史管道信息,查询详情
}
jsonObject
.
put
(
"useRegistrationCode"
,
jgUseRegistration
.
getUseRegistrationCode
());
// 转化 附件 字段
...
...
@@ -2036,9 +2038,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return
result
;
}
public
Map
<
String
,
Object
>
getDetailByIdx
(
String
record
)
{
// 基本信息 + 制造信息
Map
<
String
,
Object
>
detail
=
this
.
baseMapper
.
getDetail
(
record
);
...
...
@@ -2174,23 +2173,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return
permissionInspectTypes
;
}
/**
* 参数为监管码
*
* @param supervisoryCode
* @return
*/
public
String
getCode
(
String
supervisoryCode
)
{
if
(!
ObjectUtils
.
isEmpty
(
supervisoryCode
)
&&
supervisoryCode
.
length
()
>
5
)
{
String
name
=
EquipTypeEnum
.
getMessage
(
supervisoryCode
.
substring
(
1
,
2
));
String
type
=
supervisoryCode
.
substring
(
2
,
4
);
String
city
=
supervisoryCode
.
substring
(
0
,
1
);
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
name
+
type
+
"陕"
+
city
);
return
stringResponseModel
.
getResult
();
}
return
null
;
}
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
)
{
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
// 查询使用登记详情
...
...
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/JgVehicleInformationServiceImpl.java
View file @
df59f087
...
...
@@ -1119,11 +1119,20 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
* @return String
*/
private
String
generateVehicleUseRegistrationCode
(
String
receiveCompanyCode
,
String
equDefineCode
)
{
// 构建设备种类简称
String
useRegistration
=
String
.
format
(
"瓶%s%s"
,
equDefineCode
.
substring
(
1
,
3
),
VehicleApanageEnum
.
of
(
receiveCompanyCode
));
// 调用服务端获取注册码
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
useRegistration
);
return
stringResponseModel
.
getResult
();
String
useRegistrationCode
;
JgUseRegistrationManage
jgUseRegistrationManage
;
do
{
ResponseModel
<
String
>
stringResponseModel
=
tzsServiceFeignClient
.
useRegistrationCode
(
useRegistration
);
useRegistrationCode
=
stringResponseModel
.
getResult
();
jgUseRegistrationManage
=
jgUseRegistrationManageService
.
getBaseMapper
().
selectOne
(
new
LambdaQueryWrapper
<
JgUseRegistrationManage
>()
.
eq
(
JgUseRegistrationManage:
:
getUseRegistrationCode
,
useRegistrationCode
)
.
eq
(
JgUseRegistrationManage:
:
getIsDelete
,
0
)
.
eq
(
JgUseRegistrationManage:
:
getCertificateStatus
,
"已登记"
)
);
}
while
(
jgUseRegistrationManage
!=
null
);
return
useRegistrationCode
;
}
/**
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-biz/src/main/java/com/yeejoin/amos/boot/module/ymt/biz/service/impl/GenerateCodeServiceImpl.java
View file @
df59f087
...
...
@@ -84,7 +84,7 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
@Override
public
String
createUseRegistrationCode
(
String
key
)
{
rulePrefix
=
"("
+
LocalDate
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yy"
))
+
")"
;
return
(
key
.
length
()
==
5
)
?
generate
Sequence
(
key
,
SEQUENCE_TYPE_UR
,
LOCK_KEY_UR
)
:
"生成码规则不对!"
;
return
(
key
.
length
()
==
5
)
?
generate
UseRegistrationSequence
(
key
,
LOCK_KEY_UR
)
:
"生成码规则不对!"
;
}
@Override
...
...
@@ -318,6 +318,109 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
}
/**
* 生成使用登记证编号(13位,起11陕C00001(23))
*
* @param sequenceKey key(起11陕C)
* @return 顺序编号(value(00001,或者A0001,B0001))
* rulePrefix (年份24)
*/
public
String
generateUseRegistrationSequence
(
String
sequenceKey
,
String
lockKey
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
try
{
// 尝试获取锁,最多等待 10 秒,锁自动释放时间为 30 秒
if
(
lock
.
tryLock
(
10
,
30
,
TimeUnit
.
SECONDS
))
{
log
.
info
(
"成功获取锁: {}"
,
lockKey
);
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
String
formattedSequence
;
// 判断当前顺序码是字母+数字形式还是纯数字形式
if
(
isAlphaNumericSequence
(
currentSequenceStr
))
{
// 如果是字母+数字形式
formattedSequence
=
generateAlphaNumericSequence
(
currentSequenceStr
);
}
else
{
// 如果是纯数字形式
formattedSequence
=
generateNumericToAlphaSequence
(
currentSequenceStr
);
}
log
.
info
(
"===================>更新《{}》顺序码:{}<==================="
,
sequenceKey
,
formattedSequence
);
// 更新顺序码
setValueWithoutExpiration
(
sequenceKey
,
formattedSequence
);
// 返回生成的顺序码
String
generatedSequence
=
sequenceKey
+
formattedSequence
;
String
result
=
generatedSequence
+
rulePrefix
;
log
.
info
(
"===================>返回《{}》顺序码:{}<==================="
,
sequenceKey
,
result
);
return
result
;
}
else
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
}
}
catch
(
InterruptedException
e
)
{
Thread
.
currentThread
().
interrupt
();
// 保持中断状态
throw
new
RuntimeException
(
"Thread interrupted while acquiring lock"
,
e
);
}
finally
{
// 释放锁
lock
.
unlock
();
log
.
info
(
"释放锁"
);
}
}
/**
* 判断当前顺序码是否为字母+数字形式
*/
private
boolean
isAlphaNumericSequence
(
String
sequence
)
{
return
sequence
!=
null
&&
sequence
.
matches
(
"^[A-Za-z]{1}\\d{4}$"
);
}
/**
* 生成字母+数字形式的顺序码(如 A0001)
*/
private
String
generateAlphaNumericSequence
(
String
sequenceKey
)
{
char
letter
=
sequenceKey
.
charAt
(
0
);
// 提取字母部分
int
numberPart
=
Integer
.
parseInt
(
sequenceKey
.
substring
(
1
));
// 提取数字部分
numberPart
++;
// 数字部分递增
// 检查是否超过了 Z9999
if
(
letter
==
'Z'
&&
numberPart
>
9999
)
{
throw
new
RuntimeException
(
"顺序码已用尽,请联系管理员"
);
}
if
(
numberPart
>
9999
)
{
// 如果数字部分大于 9999,字母部分递增,数字部分重置为 0000
numberPart
=
0
;
letter
=
(
char
)
(
letter
+
1
);
}
return
String
.
format
(
"%c%04d"
,
letter
,
numberPart
);
// 格式化字母+数字顺序码
}
/**
* 生成纯数字顺序码到字母+数字的转换(仅从99999到A0001)
*/
private
String
generateNumericToAlphaSequence
(
String
sequenceStr
)
{
// 如果是纯数字顺序码
Long
currentSequence
=
(
sequenceStr
!=
null
)
?
Long
.
parseLong
(
sequenceStr
)
:
0L
;
currentSequence
++;
// 数字部分递增
// 如果递增后的值大于 99999,转换为字母+数字形式
if
(
currentSequence
>
99999
)
{
// 从数字转换到字母+数字形式,假设从 100000 转到 A0001
char
letter
=
'A'
;
// 从 A 开始
int
numericPart
=
0
;
// 数字部分为 0000
return
String
.
format
(
"%c%04d"
,
letter
,
numericPart
);
}
else
{
// 继续保持纯数字形式
return
String
.
format
(
"%05d"
,
currentSequence
);
}
}
/**
* 回退顺序码
*
* @param sequenceKey redisKey
...
...
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