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
3789aa4d
Commit
3789aa4d
authored
Feb 23, 2024
by
tianbo
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop_tzs_register' of…
Merge branch 'develop_tzs_register' of
http://36.40.66.175:5000/moa/amos-boot-biz
into develop_tzs_register
parents
4b771cdd
20f532c7
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
385 additions
and
111 deletions
+385
-111
IJgChangeRegistrationReformService.java
...le/jg/api/service/IJgChangeRegistrationReformService.java
+1
-1
IJgChangeRegistrationTransferService.java
.../jg/api/service/IJgChangeRegistrationTransferService.java
+2
-1
CommonController.java
.../amos/boot/module/jg/biz/controller/CommonController.java
+29
-1
JgChangeRegistrationReformController.java
.../biz/controller/JgChangeRegistrationReformController.java
+9
-2
JgChangeRegistrationTransferController.java
...iz/controller/JgChangeRegistrationTransferController.java
+9
-2
JgChangeRegistrationUnitController.java
...jg/biz/controller/JgChangeRegistrationUnitController.java
+9
-2
JgTransferNoticeController.java
.../module/jg/biz/controller/JgTransferNoticeController.java
+21
-3
JgUseRegistrationController.java
...module/jg/biz/controller/JgUseRegistrationController.java
+3
-2
ICommonService.java
...ejoin/amos/boot/module/jg/biz/service/ICommonService.java
+11
-0
CommonServiceImpl.java
...os/boot/module/jg/biz/service/impl/CommonServiceImpl.java
+172
-11
JgChangeRegistrationReformServiceImpl.java
...z/service/impl/JgChangeRegistrationReformServiceImpl.java
+8
-3
JgChangeRegistrationTransferServiceImpl.java
...service/impl/JgChangeRegistrationTransferServiceImpl.java
+7
-3
JgChangeRegistrationUnitServiceImpl.java
...biz/service/impl/JgChangeRegistrationUnitServiceImpl.java
+8
-2
JgReformNoticeServiceImpl.java
...module/jg/biz/service/impl/JgReformNoticeServiceImpl.java
+1
-0
JgUseRegistrationServiceImpl.java
...ule/jg/biz/service/impl/JgUseRegistrationServiceImpl.java
+8
-4
installation-notification-report.ftl
.../resources/templates/installation-notification-report.ftl
+1
-1
use-registration-model.pdf
...z/src/main/resources/templates/use-registration-model.pdf
+0
-0
GenerateCodeServiceImpl.java
.../module/ymt/biz/service/impl/GenerateCodeServiceImpl.java
+86
-73
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/service/IJgChangeRegistrationReformService.java
View file @
3789aa4d
...
@@ -78,5 +78,5 @@ public interface IJgChangeRegistrationReformService {
...
@@ -78,5 +78,5 @@ public interface IJgChangeRegistrationReformService {
* @param sequenceNbr
* @param sequenceNbr
* @param response
* @param response
*/
*/
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
);
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
);
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/service/IJgChangeRegistrationTransferService.java
View file @
3789aa4d
...
@@ -35,6 +35,7 @@ public interface IJgChangeRegistrationTransferService extends IService<JgChangeR
...
@@ -35,6 +35,7 @@ public interface IJgChangeRegistrationTransferService extends IService<JgChangeR
void
revocation
(
String
instanceId
);
void
revocation
(
String
instanceId
);
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
);
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
);
Map
<
String
,
Object
>
getDetailFieldCamelCase
(
String
record
);
Map
<
String
,
Object
>
getDetailFieldCamelCase
(
String
record
);
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/CommonController.java
View file @
3789aa4d
...
@@ -15,7 +15,6 @@ import org.springframework.util.ObjectUtils;
...
@@ -15,7 +15,6 @@ import org.springframework.util.ObjectUtils;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
...
@@ -65,6 +64,21 @@ public class CommonController extends BaseController {
...
@@ -65,6 +64,21 @@ public class CommonController extends BaseController {
/**
/**
* 工作台接收机构树
* @param bizType 业务类型:notice-告知类, register-登记类
* @return 树
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/{bizType}/receive-unit/tree"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"接收机构树"
,
notes
=
"接收机构树"
)
public
ResponseModel
<
Object
>
getNoticeReceiveTree
(
@PathVariable
String
bizType
)
{
return
ResponseHelper
.
buildResponse
(
commonService
.
getReceiveUnitTree
(
bizType
));
}
/**
* 获取行政审批局树
* 获取行政审批局树
*
*
* @return
* @return
...
@@ -278,4 +292,18 @@ public class CommonController extends BaseController {
...
@@ -278,4 +292,18 @@ public class CommonController extends BaseController {
}
}
/**
* 校验EQUCODE的唯一性
* @param equCode EQUCODE
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/checkUniquenessOfEQUCODE"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"校验EQUCODE的唯一性"
,
notes
=
"校验EQUCODE的唯一性"
)
public
ResponseModel
<
Object
>
checkUniquenessOfEQUCODE
(
String
equCode
)
{
Boolean
bool
=
commonService
.
checkUniquenessOfEQUCODE
(
equCode
);
return
ResponseHelper
.
buildResponse
(
bool
);
}
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgChangeRegistrationReformController.java
View file @
3789aa4d
...
@@ -121,10 +121,17 @@ public class JgChangeRegistrationReformController extends BaseController {
...
@@ -121,10 +121,17 @@ public class JgChangeRegistrationReformController extends BaseController {
return
ResponseHelper
.
buildResponse
(
map
);
return
ResponseHelper
.
buildResponse
(
map
);
}
}
/**
* 改造登记-导出使用登记证
* @param response 返回
* @param sequenceNbr 主键
* @param printType 打印类型,0-正常打印,1-套打(默认0)
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/export"
)
@GetMapping
(
value
=
"/export"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"改造登记-导出使用登记证"
,
notes
=
"改造登记-导出使用登记证"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"改造登记-导出使用登记证"
,
notes
=
"改造登记-导出使用登记证"
)
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
){
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
,
jgChangeRegistrationReformServiceImpl
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
);
@RequestParam
(
value
=
"printType"
,
defaultValue
=
"0"
)
String
printType
){
jgChangeRegistrationReformServiceImpl
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
,
printType
);
}
}
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgChangeRegistrationTransferController.java
View file @
3789aa4d
...
@@ -157,11 +157,18 @@ public class JgChangeRegistrationTransferController extends BaseController {
...
@@ -157,11 +157,18 @@ public class JgChangeRegistrationTransferController extends BaseController {
return
ResponseHelper
.
buildResponse
(
jgChangeRegistrationTransferService
.
queryListForPage
(
page
,
params
,
type
));
return
ResponseHelper
.
buildResponse
(
jgChangeRegistrationTransferService
.
queryListForPage
(
page
,
params
,
type
));
}
}
/**
* 导出使用登记证
* @param response 返回
* @param sequenceNbr 主键
* @param printType 打印类型,0-正常打印,1-套打(默认0)
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/export"
)
@GetMapping
(
value
=
"/export"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出使用登记证"
,
notes
=
"导出使用登记证"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出使用登记证"
,
notes
=
"导出使用登记证"
)
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
){
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
,
jgChangeRegistrationTransferService
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
);
@RequestParam
(
value
=
"printType"
,
defaultValue
=
"0"
)
String
printType
){
jgChangeRegistrationTransferService
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
,
printType
);
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/detailFieldCamelCase"
)
@GetMapping
(
value
=
"/detailFieldCamelCase"
)
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgChangeRegistrationUnitController.java
View file @
3789aa4d
...
@@ -199,11 +199,18 @@ public class JgChangeRegistrationUnitController extends BaseController {
...
@@ -199,11 +199,18 @@ public class JgChangeRegistrationUnitController extends BaseController {
}
}
/**
* 导出使用登记证
* @param response 返回
* @param sequenceNbr 主键
* @param printType 打印类型,0-正常打印,1-套打(默认0)
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/export"
)
@GetMapping
(
value
=
"/export"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出使用登记证"
,
notes
=
"导出使用登记证"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出使用登记证"
,
notes
=
"导出使用登记证"
)
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
)
throws
IOException
{
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
,
jgChangeRegistrationUnitServiceImpl
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
);
@RequestParam
(
value
=
"printType"
,
defaultValue
=
"0"
)
String
printType
)
{
jgChangeRegistrationUnitServiceImpl
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
,
printType
);
}
}
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgTransferNoticeController.java
View file @
3789aa4d
...
@@ -22,11 +22,8 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
...
@@ -22,11 +22,8 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponseWrapper
;
import
java.io.File
;
import
java.util.*
;
import
java.util.*
;
/**
/**
...
@@ -195,4 +192,25 @@ public class JgTransferNoticeController extends BaseController {
...
@@ -195,4 +192,25 @@ public class JgTransferNoticeController extends BaseController {
map
.
put
(
"supervisoryCode"
,
"YZGZ20231225001"
);
// 监管二维码
map
.
put
(
"supervisoryCode"
,
"YZGZ20231225001"
);
// 监管二维码
commonService
.
generateCertificateReport
(
map
,
response
);
commonService
.
generateCertificateReport
(
map
,
response
);
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"(测试使用)特种设备登记证套打"
,
notes
=
"(测试使用)特种设备登记证套打"
)
@GetMapping
(
value
=
"/generate/pdf/print"
)
public
void
printing
(
HttpServletResponse
response
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"useRegistrationCode"
,
"梯10 陕B00005(24)"
);
map
.
put
(
"useUnitName"
,
"西安市高科物业服务有限公司"
);
map
.
put
(
"fullAddress"
,
"西安市曲江新区春临东街南湖意境1单元2号楼"
);
map
.
put
(
"equList"
,
"场(厂)内专用机动车辆"
);
map
.
put
(
"equDefine"
,
"特种气瓶(内装填料气瓶、纤维缠绕气瓶、低温绝热气瓶)"
);
map
.
put
(
"equCode"
,
"31006102002024010001"
);
map
.
put
(
"equCategory"
,
"非公路用旅游观光车辆"
);
map
.
put
(
"useInnerCode"
,
"NBBH-1231231231"
);
map
.
put
(
"factoryNum"
,
"CCBH-2312312312"
);
map
.
put
(
"giveOutYear"
,
"2024"
);
map
.
put
(
"giveOutMonth"
,
"12"
);
map
.
put
(
"giveOutDay"
,
"26"
);
map
.
put
(
"supervisoryCode"
,
"YZGZ20231225001"
);
commonService
.
generatePdfPrint
(
map
,
response
);
}
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgUseRegistrationController.java
View file @
3789aa4d
...
@@ -145,8 +145,9 @@ public class JgUseRegistrationController extends BaseController {
...
@@ -145,8 +145,9 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/export"
)
@GetMapping
(
value
=
"/export"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出使用登记证"
,
notes
=
"导出使用登记证"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"导出使用登记证"
,
notes
=
"导出使用登记证"
)
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
)
{
public
void
exportImageZip
(
HttpServletResponse
response
,
@RequestParam
(
"sequenceNbr"
)
String
sequenceNbr
,
jgUseRegistrationServiceImpl
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
);
@RequestParam
(
value
=
"printType"
,
defaultValue
=
"0"
)
String
printType
)
{
jgUseRegistrationServiceImpl
.
exportUseRegistrationCertificate
(
sequenceNbr
,
response
,
printType
);
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/ICommonService.java
View file @
3789aa4d
...
@@ -38,6 +38,8 @@ public interface ICommonService {
...
@@ -38,6 +38,8 @@ public interface ICommonService {
void
generateCertificateReport
(
Map
<
String
,
Object
>
map
,
HttpServletResponse
response
);
void
generateCertificateReport
(
Map
<
String
,
Object
>
map
,
HttpServletResponse
response
);
void
generatePdfPrint
(
Map
<
String
,
Object
>
map
,
HttpServletResponse
response
);
List
<
LinkedHashMap
>
creatApproveTree
();
List
<
LinkedHashMap
>
creatApproveTree
();
List
<
Map
<
String
,
Object
>>
superviseBusinessCategory
(
String
type
);
List
<
Map
<
String
,
Object
>>
superviseBusinessCategory
(
String
type
);
...
@@ -53,4 +55,13 @@ public interface ICommonService {
...
@@ -53,4 +55,13 @@ public interface ICommonService {
List
<
LinkedHashMap
>
getCreatTreeByInstallation
();
List
<
LinkedHashMap
>
getCreatTreeByInstallation
();
List
<
LinkedHashMap
>
getCreatTreeByInstallationTree
();
List
<
LinkedHashMap
>
getCreatTreeByInstallationTree
();
/**
* 接收机构树
* @return List<Map>
* @param bizType 业务类型: notice-告知类, register-登记类
*/
List
<
LinkedHashMap
>
getReceiveUnitTree
(
String
bizType
);
Boolean
checkUniquenessOfEQUCODE
(
String
equCode
);
}
}
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 @
3789aa4d
...
@@ -2,10 +2,16 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
...
@@ -2,10 +2,16 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.io.IoUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.aspose.words.SaveFormat
;
import
com.aspose.words.SaveFormat
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.itextpdf.text.DocumentException
;
import
com.itextpdf.text.pdf.AcroFields
;
import
com.itextpdf.text.pdf.BaseFont
;
import
com.itextpdf.text.pdf.PdfReader
;
import
com.itextpdf.text.pdf.PdfStamper
;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
...
@@ -31,9 +37,11 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
...
@@ -31,9 +37,11 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
import
com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils
;
import
com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils
;
import
com.yeejoin.amos.boot.module.jg.flc.api.fegin.PrivilegeFeginService
;
import
com.yeejoin.amos.boot.module.jg.flc.api.fegin.PrivilegeFeginService
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
...
@@ -45,7 +53,9 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -45,7 +53,9 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Assert
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
...
@@ -57,9 +67,7 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
...
@@ -57,9 +67,7 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.*
;
import
java.io.FileInputStream
;
import
java.io.UnsupportedEncodingException
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Modifier
;
import
java.lang.reflect.Modifier
;
import
java.net.URLEncoder
;
import
java.net.URLEncoder
;
...
@@ -114,6 +122,11 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -114,6 +122,11 @@ public class CommonServiceImpl implements ICommonService {
//管辖机构redis缓存key
//管辖机构redis缓存key
private
static
final
String
REGULATOR_UNIT_TREE
=
"REGULATOR_UNIT_TREE"
;
private
static
final
String
REGULATOR_UNIT_TREE
=
"REGULATOR_UNIT_TREE"
;
/**
* 接收机构redis缓存key前置
*/
private
static
final
String
PREFIX_NOTICE_RECEIVE_UNIT_TREE
=
"NOTICE_RECEIVE_UNIT_TREE"
;
//管辖机构redis缓存key
//管辖机构redis缓存key
private
static
final
String
REGULATOR_UNIT_TREE_ALL
=
"REGULATOR_UNIT_TREE_ALL"
;
private
static
final
String
REGULATOR_UNIT_TREE_ALL
=
"REGULATOR_UNIT_TREE_ALL"
;
...
@@ -156,6 +169,9 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -156,6 +169,9 @@ public class CommonServiceImpl implements ICommonService {
private
static
final
String
GMBG_PAGE_ID
=
"jgRegistrationInfo"
;
private
static
final
String
GMBG_PAGE_ID
=
"jgRegistrationInfo"
;
@Autowired
@Autowired
RegistrationInfoMapper
tzsJgRegistrationInfoMapper
;
@Autowired
private
IJgInstallationNoticeService
iJgInstallationNoticeService
;
private
IJgInstallationNoticeService
iJgInstallationNoticeService
;
@Autowired
@Autowired
...
@@ -316,6 +332,26 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -316,6 +332,26 @@ public class CommonServiceImpl implements ICommonService {
return
resultTree
;
return
resultTree
;
}
}
@Override
public
List
<
LinkedHashMap
>
getReceiveUnitTree
(
String
bizType
)
{
List
<
LinkedHashMap
>
result
=
(
List
<
LinkedHashMap
>)
redisUtils
.
get
(
genRedisKey
(
bizType
));
//判断redis是否存在接收机构树
return
!
ObjectUtils
.
isEmpty
(
result
)
?
result
:
creatReceiveUnitTree
(
bizType
);
}
/**
* 验EQUCODE的唯一性
* @param equCode
* @return
*/
@Override
public
Boolean
checkUniquenessOfEQUCODE
(
String
equCode
)
{
LambdaQueryWrapper
<
RegistrationInfo
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
RegistrationInfo:
:
getEquCode
,
equCode
);
Integer
count
=
tzsJgRegistrationInfoMapper
.
selectCount
(
wrapper
);
return
count
>
0
;
}
@Override
@Override
public
List
<
LinkedHashMap
>
getTree
(
ReginParams
reginParams
)
{
public
List
<
LinkedHashMap
>
getTree
(
ReginParams
reginParams
)
{
...
@@ -341,6 +377,23 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -341,6 +377,23 @@ public class CommonServiceImpl implements ICommonService {
return
resultTree
;
return
resultTree
;
}
}
private
List
<
LinkedHashMap
>
creatReceiveUnitTree
(
String
bizType
)
{
FeignClientResult
tree
=
privilegeFeginService
.
tree
(
RequestContext
.
getToken
(),
RequestContext
.
getAppKey
(),
RequestContext
.
getProduct
());
List
<
LinkedHashMap
>
result
=
(
List
<
LinkedHashMap
>)
tree
.
getResult
();
// 删除非监管机构的单位
deleteData
(
result
,
REGULATOR_UNIT
);
// 过滤符合指定业务的监管单位
filterTreeDataByType
(
result
,
bizType
);
List
<
LinkedHashMap
>
supervisionTree
=
result
.
stream
().
filter
(
e
->
code
.
equals
(
e
.
get
(
"orgCode"
))).
collect
(
Collectors
.
toList
());
List
<
LinkedHashMap
>
resultTree
=
updateNullChildren
(
supervisionTree
);
redisUtils
.
set
(
genRedisKey
(
bizType
),
resultTree
,
60
*
60
*
2
);
return
resultTree
;
}
private
String
genRedisKey
(
String
bizType
)
{
return
PREFIX_NOTICE_RECEIVE_UNIT_TREE
+
"_"
+
bizType
;
}
@Override
@Override
public
List
<
LinkedHashMap
>
getApproveTree
(
ReginParams
reginParams
)
{
public
List
<
LinkedHashMap
>
getApproveTree
(
ReginParams
reginParams
)
{
// 企业逻辑
// 企业逻辑
...
@@ -361,7 +414,7 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -361,7 +414,7 @@ public class CommonServiceImpl implements ICommonService {
FeignClientResult
tree
=
privilegeFeginService
.
queryAgencyTreeForCache
(
RequestContext
.
getToken
(),
RequestContext
.
getAppKey
(),
RequestContext
.
getProduct
());
FeignClientResult
tree
=
privilegeFeginService
.
queryAgencyTreeForCache
(
RequestContext
.
getToken
(),
RequestContext
.
getAppKey
(),
RequestContext
.
getProduct
());
List
<
LinkedHashMap
>
result
=
(
List
<
LinkedHashMap
>)
tree
.
getResult
();
List
<
LinkedHashMap
>
result
=
(
List
<
LinkedHashMap
>)
tree
.
getResult
();
List
<
LinkedHashMap
>
children
=
(
List
<
LinkedHashMap
>)
result
.
get
(
0
).
get
(
"children"
);
List
<
LinkedHashMap
>
children
=
(
List
<
LinkedHashMap
>)
result
.
get
(
0
).
get
(
"children"
);
List
<
LinkedHashMap
>
treeData
=
deleteTreeData
(
children
,
REGULATOR_UNIT
);
List
<
LinkedHashMap
>
treeData
=
deleteTreeData
(
children
,
REGULATOR_UNIT
);
List
<
LinkedHashMap
>
resultTree
=
updateNullChildren
(
treeData
);
List
<
LinkedHashMap
>
resultTree
=
updateNullChildren
(
treeData
);
redisUtils
.
set
(
ADMINISTRATION_UNIT_TREE
,
resultTree
);
redisUtils
.
set
(
ADMINISTRATION_UNIT_TREE
,
resultTree
);
return
resultTree
;
return
resultTree
;
...
@@ -373,7 +426,7 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -373,7 +426,7 @@ public class CommonServiceImpl implements ICommonService {
return
resourceJson
.
get
(
type
);
return
resourceJson
.
get
(
type
);
}
}
private
List
<
LinkedHashMap
>
deleteTreeData
(
List
<
LinkedHashMap
>
result
,
String
companyType
)
{
private
List
<
LinkedHashMap
>
deleteTreeData
(
List
<
LinkedHashMap
>
result
,
String
companyType
)
{
Iterator
it
=
result
.
iterator
();
Iterator
it
=
result
.
iterator
();
while
(
it
.
hasNext
())
{
while
(
it
.
hasNext
())
{
LinkedHashMap
e
=
(
LinkedHashMap
)
it
.
next
();
LinkedHashMap
e
=
(
LinkedHashMap
)
it
.
next
();
...
@@ -386,22 +439,44 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -386,22 +439,44 @@ public class CommonServiceImpl implements ICommonService {
it
.
remove
();
it
.
remove
();
}
}
if
(!
ObjectUtils
.
isEmpty
(
e
.
get
(
"children"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
e
.
get
(
"children"
)))
{
deleteTreeData
((
List
<
LinkedHashMap
>)
e
.
get
(
"children"
),
companyType
);
deleteTreeData
((
List
<
LinkedHashMap
>)
e
.
get
(
"children"
),
companyType
);
}
}
}
}
return
result
;
return
result
;
}
}
private
List
<
LinkedHashMap
>
deleteData
(
List
<
LinkedHashMap
>
result
,
String
companyType
)
{
private
List
<
LinkedHashMap
>
filterTreeDataByType
(
List
<
LinkedHashMap
>
result
,
String
type
)
{
Iterator
<
LinkedHashMap
>
it
=
result
.
iterator
();
while
(
it
.
hasNext
())
{
LinkedHashMap
e
=
it
.
next
();
if
(!(
e
.
get
(
"description"
)
!=
null
&&
(
e
.
get
(
"description"
).
toString
().
contains
(
type
)
||
e
.
get
(
"description"
).
toString
().
contains
(
"all"
))))
{
// 过滤非全部(all)公共及指定类型外的
it
.
remove
();
}
// disabled的节点设置下不可编辑属性
if
(
e
.
get
(
"description"
)
!=
null
&&
e
.
get
(
"description"
).
toString
().
contains
(
type
+
"-disabled"
))
{
// 过滤非全部(all)公共及指定类型外的
e
.
put
(
"disabled"
,
true
);
}
if
(!
ObjectUtils
.
isEmpty
(
e
.
get
(
"children"
)))
{
filterTreeDataByType
((
List
<
LinkedHashMap
>)
e
.
get
(
"children"
),
type
);
}
}
return
result
;
}
private
List
<
LinkedHashMap
>
deleteData
(
List
<
LinkedHashMap
>
result
,
String
companyType
)
{
Iterator
it
=
result
.
iterator
();
Iterator
it
=
result
.
iterator
();
while
(
it
.
hasNext
())
{
while
(
it
.
hasNext
())
{
LinkedHashMap
e
=
(
LinkedHashMap
)
it
.
next
();
LinkedHashMap
e
=
(
LinkedHashMap
)
it
.
next
();
// 删除非
行政审批局
// 删除非
指定的单位类型
if
(!
e
.
get
(
"companyType"
).
toString
().
contains
(
companyType
))
{
if
(!
e
.
get
(
"companyType"
).
toString
().
contains
(
companyType
))
{
it
.
remove
();
it
.
remove
();
}
}
if
(!
ObjectUtils
.
isEmpty
(
e
.
get
(
"children"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
e
.
get
(
"children"
)))
{
deleteData
((
List
<
LinkedHashMap
>)
e
.
get
(
"children"
),
companyType
);
deleteData
((
List
<
LinkedHashMap
>)
e
.
get
(
"children"
),
companyType
);
}
}
}
}
return
result
;
return
result
;
...
@@ -568,6 +643,90 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -568,6 +643,90 @@ public class CommonServiceImpl implements ICommonService {
}
}
}
}
/**
* 返回附件
*
* @param map 参数
* @param response 响应
*/
@Override
public
void
generatePdfPrint
(
Map
<
String
,
Object
>
map
,
HttpServletResponse
response
)
{
String
[]
DEFAULT_KEYS
=
{
"useRegistrationCode"
,
"useUnitName"
,
"fullAddress"
,
"equList"
,
"equipDefine"
,
"equipCode"
,
"equipCategory"
,
"useInnerCode"
,
"factoryNum"
,
"giveOutYear"
,
"giveOutMonth"
,
"giveOutDay"
};
if
(
CollectionUtils
.
isEmpty
(
map
))
{
throw
new
IllegalArgumentException
(
"参数不能为空"
);
}
// 设置默认值
Arrays
.
stream
(
DEFAULT_KEYS
)
.
forEach
(
key
->
map
.
computeIfAbsent
(
key
,
k
->
""
));
// 生成二维码
String
qrCode
=
ImageUtils
.
generateQRCode
((
String
)
map
.
getOrDefault
(
"supervisoryCode"
,
""
),
100
,
100
);
map
.
put
(
"supervisoryCode"
,
qrCode
);
// 监管二维码 代码优化
// 读取资源文件夹下的模板
ClassPathResource
resource
=
new
ClassPathResource
(
"templates/use-registration-model.pdf"
);
PdfReader
reader
=
null
;
ByteArrayOutputStream
bos
=
null
;
try
{
InputStream
inputStream
=
resource
.
getInputStream
();
reader
=
new
PdfReader
(
inputStream
);
bos
=
new
ByteArrayOutputStream
();
PdfStamper
pdfStamper
=
new
PdfStamper
(
reader
,
bos
);
AcroFields
acroFields
=
pdfStamper
.
getAcroFields
();
// 中文字体
BaseFont
font
=
BaseFont
.
createFont
(
"STSong-Light"
,
"UniGB-UCS2-H"
,
BaseFont
.
NOT_EMBEDDED
);
for
(
Map
.
Entry
<
String
,
Object
>
param
:
map
.
entrySet
())
{
// 设置文本域的字体为中文字体
acroFields
.
setFieldProperty
(
param
.
getKey
(),
"textfont"
,
font
,
null
);
// 设置字体大小
acroFields
.
setFieldProperty
(
param
.
getKey
(),
"textsize"
,
12.0f
,
null
);
// 将 map 中的值写到 pdf 模板对应的文本域中
acroFields
.
setField
(
param
.
getKey
(),
param
.
getValue
()
+
""
);
}
// 如果为false那么生成的PDF文件还能编辑,所以一定要设为true
pdfStamper
.
setFormFlattening
(
true
);
pdfStamper
.
close
();
// 返回文件
//FileExporter.exportFile(FileExporter.FileType.valueOf("pdf"), "套打使用登记证", bos.toByteArray(), response);
this
.
writeAttachment
(
response
,
bos
.
toByteArray
());
}
catch
(
IOException
|
DocumentException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
assert
bos
!=
null
;
bos
.
close
();
reader
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
/**
* 返回附件
*
* @param response 响应
* @param content 附件内容
*/
private
void
writeAttachment
(
HttpServletResponse
response
,
byte
[]
content
)
throws
IOException
{
// 设置 header 和 contentType
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
"套打使用登记证.pdf"
,
"UTF-8"
));
response
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
// 输出附件
IoUtil
.
write
(
response
.
getOutputStream
(),
false
,
content
);
}
/**
/**
* word 转 pdf
* word 转 pdf
...
@@ -655,7 +814,7 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -655,7 +814,7 @@ public class CommonServiceImpl implements ICommonService {
noticeObj
.
put
(
"receiveCompanyCode"
,
!
ObjectUtils
.
isEmpty
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
?
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
:
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode1"
)));
noticeObj
.
put
(
"receiveCompanyCode"
,
!
ObjectUtils
.
isEmpty
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
?
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
:
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode1"
)));
noticeObj
.
put
(
"techInfo"
,
techInfoObj
);
noticeObj
.
put
(
"techInfo"
,
techInfoObj
);
JSONObject
jsonObject
=
new
JSONObject
(
noticeObj
);
JSONObject
jsonObject
=
new
JSONObject
(
noticeObj
);
return
jgChangeRegistrationReformServiceImpl
.
save
(
jsonObject
);
return
jgChangeRegistrationReformServiceImpl
.
save
(
jsonObject
);
}
else
if
(
type
.
equals
(
ApplicationFormTypeEnum
.
YZBG
.
getBusinessCode
()))
{
}
else
if
(
type
.
equals
(
ApplicationFormTypeEnum
.
YZBG
.
getBusinessCode
()))
{
noticeObj
.
put
(
"receiveOrgCode"
,
!
ObjectUtils
.
isEmpty
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
?
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
:
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode1"
)));
noticeObj
.
put
(
"receiveOrgCode"
,
!
ObjectUtils
.
isEmpty
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
?
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode"
))
:
String
.
valueOf
(
basicObj
.
get
(
"receiveOrgCreditCode1"
)));
...
@@ -700,6 +859,7 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -700,6 +859,7 @@ public class CommonServiceImpl implements ICommonService {
}
}
return
null
;
return
null
;
}
}
@Override
@Override
public
Object
transfer
(
Map
<
String
,
Object
>
map
)
{
public
Object
transfer
(
Map
<
String
,
Object
>
map
)
{
if
(
ObjectUtils
.
isEmpty
(
map
.
get
(
"nextTaskId"
))
||
map
.
get
(
"nextTaskId"
)
==
null
)
{
if
(
ObjectUtils
.
isEmpty
(
map
.
get
(
"nextTaskId"
))
||
map
.
get
(
"nextTaskId"
)
==
null
)
{
...
@@ -749,7 +909,7 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -749,7 +909,7 @@ public class CommonServiceImpl implements ICommonService {
String
id
=
commonMapper
.
selectBusinessData
(
tableName
,
instanceId
);
String
id
=
commonMapper
.
selectBusinessData
(
tableName
,
instanceId
);
id
=
ObjectUtils
.
isEmpty
(
id
)
?
assignee
:
id
+
","
+
assignee
;
id
=
ObjectUtils
.
isEmpty
(
id
)
?
assignee
:
id
+
","
+
assignee
;
//修改业务数据
//修改业务数据
commonMapper
.
updateBusinessData
(
tableName
,
assignee
,
id
,
instanceId
,
nextTaskId
);
commonMapper
.
updateBusinessData
(
tableName
,
assignee
,
id
,
instanceId
,
nextTaskId
);
return
Boolean
.
TRUE
;
return
Boolean
.
TRUE
;
}
}
...
@@ -1152,6 +1312,7 @@ public class CommonServiceImpl implements ICommonService {
...
@@ -1152,6 +1312,7 @@ public class CommonServiceImpl implements ICommonService {
});
});
return
workflowResultDtoList
;
return
workflowResultDtoList
;
}
}
public
List
<
LinkedHashMap
>
getCompanyUser
(
Long
companyId
)
{
public
List
<
LinkedHashMap
>
getCompanyUser
(
Long
companyId
)
{
FeignClientResult
result
=
privilegeFeginService
.
getCompanyUser
(
companyId
);
FeignClientResult
result
=
privilegeFeginService
.
getCompanyUser
(
companyId
);
List
<
LinkedHashMap
>
list
=
(
List
<
LinkedHashMap
>)
result
.
getResult
();
List
<
LinkedHashMap
>
list
=
(
List
<
LinkedHashMap
>)
result
.
getResult
();
...
...
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 @
3789aa4d
...
@@ -677,7 +677,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
...
@@ -677,7 +677,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
}
@Override
@Override
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
)
{
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
)
{
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
//查询移装变更详情
//查询移装变更详情
JgChangeRegistrationReform
jgChangeRegistrationReform
=
this
.
getById
(
sequenceNbr
);
JgChangeRegistrationReform
jgChangeRegistrationReform
=
this
.
getById
(
sequenceNbr
);
...
@@ -789,8 +789,13 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
...
@@ -789,8 +789,13 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
}
exportParamsMap
.
put
(
"factoryNum"
,
factoryInfo
.
getFactoryNum
());
exportParamsMap
.
put
(
"factoryNum"
,
factoryInfo
.
getFactoryNum
());
}
}
//调用生成使用登记证
if
(
"0"
.
equals
(
printType
))
{
commonServiceImpl
.
generateCertificateReport
(
exportParamsMap
,
response
);
//调用生成使用登记证
commonServiceImpl
.
generateCertificateReport
(
exportParamsMap
,
response
);
}
else
{
//套打
commonServiceImpl
.
generatePdfPrint
(
exportParamsMap
,
response
);
}
}
}
/**
/**
...
...
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 @
3789aa4d
...
@@ -1008,7 +1008,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
...
@@ -1008,7 +1008,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
*
*
* @param sequenceNbr
* @param sequenceNbr
*/
*/
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
)
{
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
)
{
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
//查询移装变更详情
//查询移装变更详情
JgChangeRegistrationTransfer
transfer
=
this
.
getById
(
sequenceNbr
);
JgChangeRegistrationTransfer
transfer
=
this
.
getById
(
sequenceNbr
);
...
@@ -1139,8 +1139,12 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
...
@@ -1139,8 +1139,12 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
}
}
exportParamsMap
.
put
(
"factoryNum"
,
factoryInfo
.
getFactoryNum
());
exportParamsMap
.
put
(
"factoryNum"
,
factoryInfo
.
getFactoryNum
());
}
}
//调用生成使用登记证
if
(
"0"
.
equals
(
printType
))
{
iCommonService
.
generateCertificateReport
(
exportParamsMap
,
response
);
//调用生成使用登记证
commonService
.
generateCertificateReport
(
exportParamsMap
,
response
);
}
else
{
commonService
.
generatePdfPrint
(
exportParamsMap
,
response
);
}
}
}
...
...
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 @
3789aa4d
...
@@ -899,7 +899,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
...
@@ -899,7 +899,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
*
*
* @param sequenceNbr
* @param sequenceNbr
*/
*/
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
)
{
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
)
{
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
//查询移装变更详情
//查询移装变更详情
JgChangeRegistrationUnit
transfer
=
this
.
getById
(
sequenceNbr
);
JgChangeRegistrationUnit
transfer
=
this
.
getById
(
sequenceNbr
);
...
@@ -977,7 +977,13 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
...
@@ -977,7 +977,13 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
//调用生成使用登记证
//调用生成使用登记证
exportParamsMap
.
put
(
"excelType"
,
"变更登记"
);
exportParamsMap
.
put
(
"excelType"
,
"变更登记"
);
exportParamsMap
.
put
(
"tableName"
,
"特种设备单位变更登记"
);
exportParamsMap
.
put
(
"tableName"
,
"特种设备单位变更登记"
);
commonService
.
generateCertificateReport
(
exportParamsMap
,
response
);
if
(
"0"
.
equals
(
printType
))
{
//调用生成使用登记证
commonService
.
generateCertificateReport
(
exportParamsMap
,
response
);
}
else
{
commonService
.
generatePdfPrint
(
exportParamsMap
,
response
);
}
}
}
...
...
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/JgReformNoticeServiceImpl.java
View file @
3789aa4d
...
@@ -137,6 +137,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
...
@@ -137,6 +137,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
equipMap
=
idxBizJgRegisterInfoService
.
getDetailFieldCamelCaseByRecord
(
equId
);
equipMap
=
idxBizJgRegisterInfoService
.
getDetailFieldCamelCaseByRecord
(
equId
);
equipMap
.
put
(
"useUnitCreditCodeUse"
,
equipMap
.
getOrDefault
(
"useUnitCreditCode"
,
""
));
equipMap
.
put
(
"useUnitCreditCodeUse"
,
equipMap
.
getOrDefault
(
"useUnitCreditCode"
,
""
));
equipMap
.
put
(
"useUnitNameUse"
,
equipMap
.
getOrDefault
(
"useUnitName"
,
""
));
equipMap
.
put
(
"useUnitNameUse"
,
equipMap
.
getOrDefault
(
"useUnitName"
,
""
));
equipMap
.
put
(
"equRegisterCode"
,
equipMap
.
getOrDefault
(
"equCode"
,
""
));
for
(
String
s
:
fields
)
{
for
(
String
s
:
fields
)
{
if
(
installationInfo
.
containsKey
(
s
))
{
if
(
installationInfo
.
containsKey
(
s
))
{
installationInfo
.
put
(
s
,
JSON
.
parseArray
(
installationInfo
.
get
(
s
).
toString
()));
installationInfo
.
put
(
s
,
JSON
.
parseArray
(
installationInfo
.
get
(
s
).
toString
()));
...
...
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 @
3789aa4d
...
@@ -47,7 +47,6 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
...
@@ -47,7 +47,6 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
...
@@ -651,7 +650,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
...
@@ -651,7 +650,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return
null
;
return
null
;
}
}
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
)
{
public
void
exportUseRegistrationCertificate
(
String
sequenceNbr
,
HttpServletResponse
response
,
String
printType
)
{
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
exportParamsMap
=
new
HashMap
<>();
//查询使用登记详情
//查询使用登记详情
JgUseRegistration
useRegistration
=
this
.
getById
(
sequenceNbr
);
JgUseRegistration
useRegistration
=
this
.
getById
(
sequenceNbr
);
...
@@ -761,8 +760,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
...
@@ -761,8 +760,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
}
exportParamsMap
.
put
(
"factoryNum"
,
factoryInfo
.
getFactoryNum
());
exportParamsMap
.
put
(
"factoryNum"
,
factoryInfo
.
getFactoryNum
());
}
}
//调用生成使用登记证
if
(
"0"
.
equals
(
printType
))
{
commonService
.
generateCertificateReport
(
exportParamsMap
,
response
);
//调用生成使用登记证
commonService
.
generateCertificateReport
(
exportParamsMap
,
response
);
}
else
{
//套打
commonService
.
generatePdfPrint
(
exportParamsMap
,
response
);
}
}
}
/**
/**
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/resources/templates/installation-notification-report.ftl
View file @
3789aa4d
...
@@ -578,7 +578,7 @@
...
@@ -578,7 +578,7 @@
<w:sz
w:val=
"24"
/>
<w:sz
w:val=
"24"
/>
<w:lang
w:val=
"en-US"
w:eastAsia=
"zh-CN"
/>
<w:lang
w:val=
"en-US"
w:eastAsia=
"zh-CN"
/>
</w:rPr>
</w:rPr>
<w:t>
设备
注册
代码
</w:t>
<w:t>
设备代码
</w:t>
</w:r>
</w:r>
</w:p>
</w:p>
</w:tc>
</w:tc>
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/resources/templates/use-registration-model.pdf
0 → 100644
View file @
3789aa4d
File added
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 @
3789aa4d
...
@@ -6,6 +6,8 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum;
...
@@ -6,6 +6,8 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.CategoryOtherInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.CategoryOtherInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService
;
import
com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.data.redis.core.ValueOperations
;
...
@@ -33,17 +35,19 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -33,17 +35,19 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
private
static
final
String
LOCK_KEY_SUPERVISORY
=
"sequence_lock_supervisory"
;
private
static
final
String
LOCK_KEY_SUPERVISORY
=
"sequence_lock_supervisory"
;
private
static
final
String
SEQUENCE_TYPE_UR
=
"%05d"
;
private
static
final
String
SEQUENCE_TYPE_UR
=
"%05d"
;
private
static
final
String
SEQUENCE_TYPE
=
"%07d"
;
private
static
final
String
SEQUENCE_TYPE
=
"%07d"
;
private
static
final
long
LOCK_EXPIRATION_SECONDS
=
60
;
private
final
RedisTemplate
<
String
,
String
>
redisTemplate
;
private
final
RedisTemplate
<
String
,
String
>
redisTemplate
;
private
final
StringRedisTemplate
stringRedisTemplate
;
private
final
StringRedisTemplate
stringRedisTemplate
;
private
final
CategoryOtherInfoMapper
categoryOtherInfoMapper
;
private
final
CategoryOtherInfoMapper
categoryOtherInfoMapper
;
private
final
RedissonClient
redissonClient
;
private
String
rulePrefix
=
""
;
private
String
rulePrefix
=
""
;
public
GenerateCodeServiceImpl
(
RedisTemplate
<
String
,
String
>
redisTemplate
,
StringRedisTemplate
stringRedisTemplate
,
CategoryOtherInfoMapper
categoryOtherInfoMapper
)
{
public
GenerateCodeServiceImpl
(
RedisTemplate
<
String
,
String
>
redisTemplate
,
StringRedisTemplate
stringRedisTemplate
,
CategoryOtherInfoMapper
categoryOtherInfoMapper
,
RedissonClient
redissonClient
)
{
this
.
redisTemplate
=
redisTemplate
;
this
.
redisTemplate
=
redisTemplate
;
this
.
redissonClient
=
redissonClient
;
this
.
stringRedisTemplate
=
stringRedisTemplate
;
this
.
stringRedisTemplate
=
stringRedisTemplate
;
this
.
categoryOtherInfoMapper
=
categoryOtherInfoMapper
;
this
.
categoryOtherInfoMapper
=
categoryOtherInfoMapper
;
}
}
/**
/**
* 生成申请单编号(13位,GZ20231214000)
* 生成申请单编号(13位,GZ20231214000)
*
*
...
@@ -109,9 +113,11 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -109,9 +113,11 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
private
String
generateSupervisorySequence
(
String
sequenceKey
)
{
private
String
generateSupervisorySequence
(
String
sequenceKey
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean
lockAcquired
=
obtainLock
(
GenerateCodeServiceImpl
.
LOCK_KEY_SUPERVISORY
);
RLock
lock
=
redissonClient
.
getLock
(
LOCK_KEY_SUPERVISORY
);
if
(
Boolean
.
TRUE
.
equals
(
lockAcquired
))
{
try
{
try
{
log
.
info
(
"尝试获取锁: {}"
,
lock
.
tryLock
(
10
,
TimeUnit
.
SECONDS
));
if
(
lock
.
isLocked
())
{
// 获取当前顺序码
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
...
@@ -126,16 +132,21 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -126,16 +132,21 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
// 更新顺序码
// 更新顺序码
valueOps
.
set
(
sequenceKey
,
formattedSequence
);
valueOps
.
set
(
sequenceKey
,
formattedSequence
);
return
sequenceKey
+
"-"
+
formattedSequence
;
return
sequenceKey
+
"-"
+
formattedSequence
;
}
finally
{
}
else
{
releaseLock
(
GenerateCodeServiceImpl
.
LOCK_KEY_SUPERVISORY
);
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
}
}
}
else
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
Thread
.
currentThread
().
interrupt
();
// 保持中断状态
throw
new
RuntimeException
(
"Thread interrupted while acquiring lock"
,
e
);
}
finally
{
lock
.
unlock
();
// 释放锁
log
.
info
(
"释放锁"
);
}
}
}
}
/**
/**
* 监管码为空的话,初始化Redis
* 监管码为空的话,初始化Redis
*
* @param sequenceKey key
* @param sequenceKey key
* @return 顺序码
* @return 顺序码
*/
*/
...
@@ -165,11 +176,13 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -165,11 +176,13 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
* @param batchSize 批量生成个数
* @param batchSize 批量生成个数
* @return List
* @return List
*/
*/
public
synchronized
List
<
String
>
generateBatchSequence
(
String
sequenceKey
,
int
batchSize
)
{
public
List
<
String
>
generateBatchSequence
(
String
sequenceKey
,
int
batchSize
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
RLock
lock
=
redissonClient
.
getLock
(
LOCK_KEY_AF
);
Boolean
lockAcquired
=
obtainLock
(
LOCK_KEY_AF
);
if
(
Boolean
.
TRUE
.
equals
(
lockAcquired
))
{
try
{
try
{
log
.
info
(
"尝试获取锁: {}"
,
lock
.
tryLock
(
10
,
TimeUnit
.
SECONDS
));
if
(
lock
.
isLocked
())
{
// 获取当前顺序码
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
...
@@ -192,12 +205,16 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -192,12 +205,16 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
}
}
return
sequenceList
;
return
sequenceList
;
}
finally
{
}
else
{
releaseLock
(
LOCK_KEY_AF
);
// 获取锁失败,可以选择重试或采取其他策略
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
}
}
}
else
{
}
catch
(
InterruptedException
e
)
{
// 获取锁失败,可以选择重试或采取其他策略
Thread
.
currentThread
().
interrupt
();
// 保持中断状态
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
throw
new
RuntimeException
(
"Thread interrupted while acquiring lock"
,
e
);
}
finally
{
lock
.
unlock
();
// 释放锁
log
.
info
(
"释放锁"
);
}
}
}
}
...
@@ -211,9 +228,13 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -211,9 +228,13 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
*/
*/
public
String
generateSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
public
String
generateSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean
lockAcquired
=
obtainLock
(
lockKey
);
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
if
(
Boolean
.
TRUE
.
equals
(
lockAcquired
))
{
try
{
try
{
log
.
info
(
"尝试获取锁: {}"
,
lock
.
tryLock
(
10
,
TimeUnit
.
SECONDS
));
if
(
lock
.
isLocked
())
{
// 获取当前顺序码
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
...
@@ -236,40 +257,47 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -236,40 +257,47 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
log
.
info
(
"===================>返回《{}》顺序码:{}<==================="
,
sequenceKey
,
result
);
log
.
info
(
"===================>返回《{}》顺序码:{}<==================="
,
sequenceKey
,
result
);
return
result
;
return
result
;
}
else
{
}
finally
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
releaseLock
(
lockKey
);
}
}
}
else
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
Thread
.
currentThread
().
interrupt
();
// 保持中断状态
throw
new
RuntimeException
(
"Thread interrupted while acquiring lock"
,
e
);
}
finally
{
lock
.
unlock
();
// 释放锁
log
.
info
(
"释放锁"
);
}
}
}
}
/**
/**
* 生成顺序码
* 生成顺序码
*
*
* @param sequenceKey
redis
Key
* @param sequenceKey
Redis
Key
* @param sequenceType 生成码类型
* @param sequenceType 生成码类型
* @param lockKey
redis锁
* @param lockKey
Redis锁Key
* @return
s
* @return
生成的顺序码
*/
*/
public
String
generateElevatorSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
public
String
generateElevatorSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean
lockAcquired
=
obtainLock
(
lockKey
);
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
if
(
Boolean
.
TRUE
.
equals
(
lockAcquired
))
{
try
{
try
{
log
.
info
(
"尝试获取锁: {}"
,
lock
.
tryLock
(
10
,
TimeUnit
.
SECONDS
));
if
(
lock
.
isLocked
())
{
// 获取当前顺序码
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
// 如果为空,则初始化为0
// 如果为空,则初始化为0
if
(
currentSequenceStr
==
null
)
{
if
(
currentSequenceStr
==
null
)
{
currentSequenceStr
=
EquipmentCategoryEnum
.
getCodeByValue
(
sequenceKey
);
String
initialCode
=
EquipmentCategoryEnum
.
getCodeByValue
(
sequenceKey
);
log
.
info
(
"===================>获取《{}》初始码:{}<==================="
,
sequenceKey
,
currentSequenceStr
);
log
.
info
(
"===================>获取《{}》初始码:{}<==================="
,
sequenceKey
,
initialCode
);
return
currentSequenceStr
;
return
initialCode
;
}
}
Long
currentSequence
=
Long
.
parseLong
(
currentSequenceStr
);
Long
currentSequence
=
Long
.
parseLong
(
currentSequenceStr
);
log
.
info
(
"===================>获取《{}》当前顺序码:{}<==================="
,
sequenceKey
,
currentSequenceStr
);
log
.
info
(
"===================>获取《{}》当前顺序码:{}<==================="
,
sequenceKey
,
currentSequenceStr
);
currentSequence
++;
currentSequence
++;
// 生成顺序码
// 生成顺序码
String
formattedSequence
=
String
.
format
(
sequenceType
,
currentSequence
);
String
formattedSequence
=
String
.
format
(
sequenceType
,
currentSequence
);
...
@@ -277,12 +305,15 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -277,12 +305,15 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
// 更新顺序码
// 更新顺序码
valueOps
.
set
(
sequenceKey
,
formattedSequence
);
valueOps
.
set
(
sequenceKey
,
formattedSequence
);
return
formattedSequence
;
return
formattedSequence
;
}
else
{
}
finally
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
releaseLock
(
lockKey
);
}
}
}
else
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
Thread
.
currentThread
().
interrupt
();
// 保持中断状态
throw
new
RuntimeException
(
"Thread interrupted while acquiring lock"
,
e
);
}
finally
{
lock
.
unlock
();
// 释放锁
log
.
info
(
"释放锁"
);
}
}
}
}
...
@@ -296,9 +327,11 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -296,9 +327,11 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
*/
*/
public
boolean
reduceSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
public
boolean
reduceSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean
lockAcquired
=
obtainLock
(
lockKey
);
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
if
(
Boolean
.
TRUE
.
equals
(
lockAcquired
))
{
try
{
try
{
lock
.
lock
();
// 获取锁
log
.
info
(
"尝试获取锁: {}"
,
lock
.
tryLock
(
10
,
TimeUnit
.
SECONDS
));
if
(
lock
.
isLocked
())
{
// 获取当前顺序码
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
...
@@ -321,36 +354,16 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
...
@@ -321,36 +354,16 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
log
.
warn
(
"===================>无法回退《{}》顺序码,当前顺序码已为0<==================="
,
sequenceKey
);
log
.
warn
(
"===================>无法回退《{}》顺序码,当前顺序码已为0<==================="
,
sequenceKey
);
return
false
;
// 无法回退,当前顺序码已为0
return
false
;
// 无法回退,当前顺序码已为0
}
}
}
finally
{
}
else
{
releaseLock
(
lockKey
);
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
}
}
}
else
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
Thread
.
currentThread
().
interrupt
();
// 保持中断状态
}
throw
new
RuntimeException
(
"Thread interrupted while acquiring lock"
,
e
);
}
}
finally
{
lock
.
unlock
();
// 释放锁
/**
log
.
info
(
"释放锁"
);
* 分布式锁
*
* @param lockKey lockKey
* @return bool
*/
private
Boolean
obtainLock
(
String
lockKey
)
{
Boolean
lockAcquired
=
redisTemplate
.
opsForValue
().
setIfAbsent
(
lockKey
,
LOCK_VALUE
);
if
(
lockAcquired
!=
null
&&
lockAcquired
)
{
redisTemplate
.
expire
(
lockKey
,
LOCK_EXPIRATION_SECONDS
,
TimeUnit
.
SECONDS
);
}
}
return
lockAcquired
;
}
/**
* 释放锁
*
* @param lockKey lockKey
*/
private
void
releaseLock
(
String
lockKey
)
{
redisTemplate
.
delete
(
lockKey
);
}
}
/**
/**
...
...
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