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
d57bf1e2
Commit
d57bf1e2
authored
Dec 15, 2023
by
chenzhao
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
bf844ece
bffeebfa
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1224 additions
and
102 deletions
+1224
-102
MyBatisPlusCodeGeneratorJyjc.java
...s/boot/biz/common/utils/MyBatisPlusCodeGeneratorJyjc.java
+305
-0
bean.java.ftl
...oot-biz-common/src/main/resources/template2/bean.java.ftl
+33
-0
controller.java.ftl
...z-common/src/main/resources/template2/controller.java.ftl
+135
-0
dto.java.ftl
...boot-biz-common/src/main/resources/template2/dto.java.ftl
+134
-0
mapper.java.ftl
...t-biz-common/src/main/resources/template2/mapper.java.ftl
+18
-0
mapper.xml.ftl
...ot-biz-common/src/main/resources/template2/mapper.xml.ftl
+39
-0
model.java.ftl
...ot-biz-common/src/main/resources/template2/model.java.ftl
+133
-0
service.java.ftl
...-biz-common/src/main/resources/template2/service.java.ftl
+13
-0
serviceImpl.java.ftl
...-common/src/main/resources/template2/serviceImpl.java.ftl
+34
-0
FlowStatusEnum.java
...ejoin/amos/boot/module/jyjc/api/enums/FlowStatusEnum.java
+6
-1
JyjcOpeningApplicationMapper.java
.../module/jyjc/api/mapper/JyjcOpeningApplicationMapper.java
+2
-1
JyjcOpeningApplicationRequstDto.java
...odule/jyjc/api/model/JyjcOpeningApplicationRequstDto.java
+49
-0
JyjcOpeningApplicationMapper.xml
...rc/main/resources/mapper/JyjcOpeningApplicationMapper.xml
+8
-8
CommonController.java
...mos/boot/module/jyjc/biz/controller/CommonController.java
+12
-17
JyjcOpeningApplicationController.java
...jyjc/biz/controller/JyjcOpeningApplicationController.java
+19
-5
CommonserviceImpl.java
.../boot/module/jyjc/biz/service/impl/CommonserviceImpl.java
+10
-1
JyjcOpeningApplicationServiceImpl.java
...c/biz/service/impl/JyjcOpeningApplicationServiceImpl.java
+14
-10
DateUtils.java
...om/yeejoin/amos/boot/module/ymt/api/common/DateUtils.java
+39
-0
CreateCodeController.java
.../boot/module/ymt/api/controller/CreateCodeController.java
+66
-0
TzBaseEnterpriseInfoMapper.java
...oot/module/ymt/api/mapper/TzBaseEnterpriseInfoMapper.java
+10
-2
ICreateCodeService.java
.../amos/boot/module/ymt/api/service/ICreateCodeService.java
+12
-0
CreateCodeServiceImpl.java
...ot/module/ymt/api/service/impl/CreateCodeServiceImpl.java
+128
-57
TzBaseEnterpriseInfoMapper.xml
.../src/main/resources/mapper/TzBaseEnterpriseInfoMapper.xml
+5
-0
No files found.
amos-boot-biz-common/src/main/java/com/yeejoin/amos/boot/biz/common/utils/MyBatisPlusCodeGeneratorJyjc.java
0 → 100644
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
biz
.
common
.
utils
;
import
com.baomidou.mybatisplus.core.exceptions.MybatisPlusException
;
import
com.baomidou.mybatisplus.core.toolkit.StringPool
;
import
com.baomidou.mybatisplus.generator.AutoGenerator
;
import
com.baomidou.mybatisplus.generator.InjectionConfig
;
import
com.baomidou.mybatisplus.generator.config.*
;
import
com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.baomidou.mybatisplus.generator.config.rules.DbColumnType
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine
;
import
org.apache.commons.lang.StringUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Scanner
;
/**
* @author DELL
*/
public
class
MyBatisPlusCodeGeneratorJyjc
{
/**
* 项目名称缩写
*/
static
String
projectShortName
=
"tzs"
;
/**
* 拆分服务名 可根据实际拆分项目进行修改
*/
static
String
ShortName
=
"jyjc"
;
/**
* 项目api目录
*/
static
String
apiAddress
=
"/amos-boot-system-"
+
projectShortName
+
"/"
+
"amos-boot-module-"
+
ShortName
+
"/"
+
"amos-boot-module-"
+
ShortName
+
"-api/"
;
/**
* 项目biz目录
*/
static
String
bizAddress
=
"/amos-boot-system-"
+
projectShortName
+
"/"
+
"amos-boot-module-"
+
ShortName
+
"/"
+
"amos-boot-module-"
+
ShortName
+
"-biz/"
;
/**
* 项目api路径
*/
static
String
apiPath
=
apiAddress
+
"src/main/java/com/yeejoin/amos/boot/module/"
+
ShortName
+
"/api"
;
/**
* 项目biz路径
*/
static
String
bizPath
=
bizAddress
+
"src/main/java/com/yeejoin/amos/boot/module/"
+
ShortName
+
"/biz"
;
/**
* 接口及实体等代码生成路径
*/
static
String
interfaceCodeOutPath
=
System
.
getProperty
(
"user.dir"
).
replace
(
"\\amos-boot-biz-common"
,
"\\"
)
+
apiPath
;
/**
* 控制器及接口实现等代码生成路径
*/
static
String
controllerCodeOutPath
=
System
.
getProperty
(
"user.dir"
).
replace
(
"\\amos-boot-biz-common"
,
"\\"
)
+
bizPath
;
/**
* 读取控制台内容
*/
public
static
String
scanner
(
String
tip
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
StringBuilder
help
=
new
StringBuilder
();
help
.
append
(
"请输入"
+
tip
+
":"
);
System
.
out
.
println
(
help
.
toString
());
if
(
scanner
.
hasNext
())
{
String
ipt
=
scanner
.
next
();
if
(
StringUtils
.
isNotEmpty
(
ipt
))
{
return
ipt
;
}
}
throw
new
MybatisPlusException
(
"请输入正确的"
+
tip
+
"!"
);
}
public
static
void
main
(
String
[]
args
)
{
// 代码生成器
AutoGenerator
autoGenerator
=
new
AutoGenerator
();
// 全局配置
GlobalConfig
gc
=
new
GlobalConfig
();
// 工程路径-最外层
final
String
projectPath
=
System
.
getProperty
(
"user.dir"
).
replace
(
"\\amos-boot-biz-common"
,
"\\"
);
System
.
out
.
println
(
"projectPath:"
+
projectPath
);
// 代码输出目录
//gc.setOutputDir(codeOutPath);
// 作者
gc
.
setAuthor
(
"system_generator"
);
// 是否自动打开文件夹 建议开启
gc
.
setOpen
(
false
);
// 开启Swagger2 注解支持
gc
.
setSwagger2
(
true
);
// 注入autoGenerator
autoGenerator
.
setGlobalConfig
(
gc
);
gc
.
setActiveRecord
(
false
);
// 数据源配置
DataSourceConfig
dsc
=
new
DataSourceConfig
();
dsc
.
setUrl
(
"jdbc:postgresql://172.16.10.243:5432/tzs_amos_tzs_biz_init?&serverTimezone=GMT%2B8"
);
dsc
.
setSchemaName
(
"amos_tzs_biz"
);
dsc
.
setDriverName
(
"org.postgresql.Driver"
);
// dsc.setDriverName("cn.com.vastbase.Driver");
dsc
.
setUsername
(
"admin"
);
dsc
.
setPassword
(
"Yeejoin@2023"
);
dsc
.
setTypeConvert
((
globalConfig
,
fieldType
)
->
{
String
t
=
fieldType
.
toLowerCase
();
if
(
t
.
contains
(
"datetime"
))
{
return
DbColumnType
.
DATE
;
}
if
(
t
.
contains
(
"date"
))
{
return
DbColumnType
.
DATE
;
}
//其它字段采用默认转换(非mysql数据库可以使用其它默认的数据库转换器)
return
new
MySqlTypeConvert
().
processTypeConvert
(
globalConfig
,
fieldType
);
});
autoGenerator
.
setDataSource
(
dsc
);
// 包配置
final
PackageConfig
pc
=
new
PackageConfig
();
// 填写对应模块
pc
.
setModuleName
(
ShortName
);
// 实体路径
pc
.
setParent
(
"com.yeejoin.amos.boot.module"
);
pc
.
setEntity
(
"api.entity"
);
pc
.
setMapper
(
"api.mapper"
);
pc
.
setService
(
"api.service"
);
pc
.
setServiceImpl
(
"biz.service.impl"
);
pc
.
setController
(
"biz.controller"
);
pc
.
setXml
(
"api.model"
);
autoGenerator
.
setPackageInfo
(
pc
);
// 自定义配置
InjectionConfig
cfg
=
new
InjectionConfig
()
{
@Override
public
void
initMap
()
{
// to do nothing
}
};
// 如果模板引擎是 freemarker
String
controller
=
"/template2/controller.java.ftl"
;
String
entity
=
"/template2/bean.java.ftl"
;
String
mapper
=
"/template2/mapper.java.ftl"
;
String
service
=
"/template2/service.java.ftl"
;
String
serviceImpl
=
"/template2/serviceImpl.java.ftl"
;
String
mapperXml
=
"/template2/mapper.xml.ftl"
;
String
model
=
"/template2/model.java.ftl"
;
String
vo
=
"/template2/vo.java.ftl"
;
// 自定义配置会被优先输出
List
<
FileOutConfig
>
focList
=
new
ArrayList
<>();
focList
.
add
(
new
FileOutConfig
(
controller
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
String
filePath
=
controllerCodeOutPath
+
"/controller/"
+
tableInfo
.
getControllerName
()
+
StringPool
.
DOT_JAVA
;
System
.
out
.
println
(
"controller:"
+
filePath
);
return
filePath
;
}
});
focList
.
add
(
new
FileOutConfig
(
entity
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
String
filePath
=
interfaceCodeOutPath
+
"/entity/"
+
tableInfo
.
getEntityName
()
+
StringPool
.
DOT_JAVA
;
System
.
out
.
println
(
"entity:"
+
filePath
);
return
filePath
;
}
});
focList
.
add
(
new
FileOutConfig
(
model
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
String
filePath
=
interfaceCodeOutPath
+
"/model/"
+
tableInfo
.
getEntityName
()
+
"Model"
+
StringPool
.
DOT_JAVA
;
System
.
out
.
println
(
"model:"
+
filePath
);
return
filePath
;
}
});
// focList.add(new FileOutConfig(vo) {
// @Override
// public String outputFile(TableInfo tableInfo) {
// String filePath = interfaceCodeOutPath
// + "/vo/" + tableInfo.getEntityName() + "Vo" + StringPool.DOT_JAVA;
// System.out.println("vo:"+filePath);
// return filePath;
// }
// });
focList
.
add
(
new
FileOutConfig
(
mapper
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
String
filePath
=
interfaceCodeOutPath
+
"/mapper/"
+
tableInfo
.
getEntityName
()
+
"Mapper"
+
StringPool
.
DOT_JAVA
;
System
.
out
.
println
(
"mapper:"
+
filePath
);
return
filePath
;
}
});
focList
.
add
(
new
FileOutConfig
(
service
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
String
filePath
=
interfaceCodeOutPath
+
"/service/"
+
tableInfo
.
getServiceName
()
+
StringPool
.
DOT_JAVA
;
System
.
out
.
println
(
"service:"
+
filePath
);
return
filePath
;
}
});
focList
.
add
(
new
FileOutConfig
(
serviceImpl
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
String
filePath
=
controllerCodeOutPath
+
"/service/impl/"
+
tableInfo
.
getServiceImplName
()
+
StringPool
.
DOT_JAVA
;
System
.
out
.
println
(
"service/impl:"
+
filePath
);
return
filePath
;
}
});
// focList.add(new FileOutConfig(mapperXml) {
// @Override
// public String outputFile(TableInfo tableInfo) {
// // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
// return projectPath + projectName + "src/main/resources/mapper/" + pc.getModuleName()
// + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
// }
// });
focList
.
add
(
new
FileOutConfig
(
mapperXml
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
String
filePath
=
projectPath
+
apiAddress
+
"src/main/resources/mapper/"
+
tableInfo
.
getEntityName
()
+
"Mapper"
+
StringPool
.
DOT_XML
;
System
.
out
.
println
(
"mapper:"
+
filePath
);
return
filePath
;
}
});
/*
cfg.setFileCreate(new IFileCreate() {
@Override
public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
// 判断自定义文件夹是否需要创建
checkDir("调用默认方法创建的目录");
return false;
}
});
*/
cfg
.
setFileOutConfigList
(
focList
);
autoGenerator
.
setCfg
(
cfg
);
// 配置模板
TemplateConfig
templateConfig
=
new
TemplateConfig
();
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
// templateConfig.setEntity("templates/entity2.java");
// templateConfig.setService();
// templateConfig.setController();
templateConfig
.
setXml
(
null
);
autoGenerator
.
setTemplate
(
templateConfig
);
// 策略配置
StrategyConfig
strategy
=
new
StrategyConfig
();
strategy
.
setNaming
(
NamingStrategy
.
underline_to_camel
);
strategy
.
setColumnNaming
(
NamingStrategy
.
underline_to_camel
);
strategy
.
setSuperEntityClass
(
"org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity"
);
strategy
.
setEntityLombokModel
(
true
);
strategy
.
setRestControllerStyle
(
true
);
// 公共父类-开启将导致swagger无效化
//strategy.setSuperControllerClass("com.test.base.BaseController");
// 写于父类中的公共字段
strategy
.
setSuperEntityColumns
(
"sequence_nbr"
,
"rec_date"
,
"rec_user_id"
,
"rec_user_name"
,
"is_delete"
);
// 建议以后开启
strategy
.
setInclude
(
scanner
(
"表名,多个英文逗号分割"
).
split
(
","
));
strategy
.
setControllerMappingHyphenStyle
(
true
);
strategy
.
setTablePrefix
();
//去除表名前缀
//去除表名前缀
strategy
.
setTablePrefix
(
"t_"
,
"tb_"
,
"sys_"
,
"other_"
,
"rpm_"
,
"s_"
,
"tcb_"
,
"cb_"
,
"tz_"
,
"jc_"
,
"jcb_"
,
"tzs_"
);
// 设置父级Controller
strategy
.
setSuperControllerClass
(
"com.yeejoin.amos.boot.biz.common.controller.BaseController"
);
autoGenerator
.
setStrategy
(
strategy
);
autoGenerator
.
setTemplateEngine
(
new
FreemarkerTemplateEngine
());
autoGenerator
.
execute
();
}
}
\ No newline at end of file
amos-boot-biz-common/src/main/resources/template2/bean.java.ftl
0 → 100644
View file @
d57bf1e2
package
${
package
.
Entity
};
import
com
.
baomidou
.
mybatisplus
.
annotation
.
TableField
;
import
com
.
baomidou
.
mybatisplus
.
annotation
.
TableName
;
import
org
.
typroject
.
tyboot
.
core
.
rdbms
.
orm
.
entity
.
BaseEntity
;
import
lombok
.
Data
;
import
lombok
.
EqualsAndHashCode
;
import
lombok
.
experimental
.
Accessors
;
/**
*
${
table
.
comment
!}
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
@
Data
@
EqualsAndHashCode
(
callSuper
=
true
)
@
Accessors
(
chain
=
true
)
@
TableName
(
"${table.name}"
)
public
class
${
entity
}
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
<#--
----------
BEGIN
字段循环遍历
---------->
<#
list
table
.
fields
as
field
>
/**
*
${
field
.
comment
}
*/
@
TableField
(
"${field.name}"
)
private
${
field
.
propertyType
}
${
field
.
propertyName
};
</#
list
>
}
amos-boot-biz-common/src/main/resources/template2/controller.java.ftl
0 → 100644
View file @
d57bf1e2
package
${
package
.
Controller
};
import
org
.
springframework
.
web
.
bind
.
annotation
.
RequestMapping
;
import
io
.
swagger
.
annotations
.
ApiOperation
;
import
io
.
swagger
.
annotations
.
Api
;
<#
if
restControllerStyle
>
import
org
.
springframework
.
web
.
bind
.
annotation
.
RestController
;
<#
else
>
import
org
.
springframework
.
stereotype
.
Controller
;
</#
if
>
<#
if
superControllerClassPackage
??>
import
${
superControllerClassPackage
};
</#
if
>
import
java
.
util
.
List
;
import
${
package
.
ServiceImpl
}.${
table
.
serviceImplName
};
import
org
.
typroject
.
tyboot
.
core
.
restful
.
utils
.
ResponseHelper
;
import
org
.
typroject
.
tyboot
.
core
.
restful
.
utils
.
ResponseModel
;
import
org
.
springframework
.
beans
.
factory
.
annotation
.
Autowired
;
import
javax
.
servlet
.
http
.
HttpServletRequest
;
import
org
.
springframework
.
web
.
bind
.
annotation
.*;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
Page
;
import
${
package
.
Xml
}.${
entity
}
Model
;
import
org
.
typroject
.
tyboot
.
core
.
restful
.
doc
.
TycloudOperation
;
import
org
.
typroject
.
tyboot
.
core
.
foundation
.
enumeration
.
UserType
;
/**
*
${
table
.
comment
!}
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
<#
if
restControllerStyle
>
@
RestController
@
Api
(
tags
=
"${table.comment}Api"
)
<#
else
>
@
Controller
</#
if
>
@
RequestMapping
(
value
=
"/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}</#if>"
)
<#
if
kotlin
>
class
${
table
.
controllerName
}<#
if
superControllerClass
??>
:
${
superControllerClass
}()</#
if
>
<#
else
>
<#
if
superControllerClass
??>
public
class
${
table
.
controllerName
}
extends
${
superControllerClass
}
{
<#
else
>
public
class
${
table
.
controllerName
}
{
</#
if
>
@
Autowired
${
table
.
serviceImplName
}
${
table
.
serviceImplName
?
uncap_first
};
/**
*
新增
${
table
.
comment
}
*
*
@
return
*/
@
TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@
PostMapping
(
value
=
"/save"
)
@
ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增${table.comment}"
,
notes
=
"新增${table.comment}"
)
public
ResponseModel
<${
entity
}
Model
>
save
(@
RequestBody
${
entity
}
Model
model
)
{
model
=
${
table
.
serviceImplName
?
uncap_first
}.
createWithModel
(
model
);
return
ResponseHelper
.
buildResponse
(
model
);
}
/**
*
根据
sequenceNbr
更新
*
*
@
param
sequenceNbr
主键
*
@
return
*/
@
TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@
PutMapping
(
value
=
"/{sequenceNbr}"
)
@
ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新${table.comment}"
,
notes
=
"根据sequenceNbr更新${table.comment}"
)
public
ResponseModel
<${
entity
}
Model
>
updateBySequenceNbr
${
entity
}(@
RequestBody
${
entity
}
Model
model
,@
PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(${
table
.
serviceImplName
?
uncap_first
}.
updateWithModel
(
model
));
}
/**
*
根据
sequenceNbr
删除
*
*
@
param
sequenceNbr
主键
*
@
return
*/
@
TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@
DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@
ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除${table.comment}"
,
notes
=
"根据sequenceNbr删除${table.comment}"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
HttpServletRequest
request
,
@
PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
){
return
ResponseHelper
.
buildResponse
(${
table
.
serviceImplName
?
uncap_first
}.
removeById
(
sequenceNbr
));
}
/**
*
根据
sequenceNbr
查询
*
*
@
param
sequenceNbr
主键
*
@
return
*/
@
TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@
GetMapping
(
value
=
"/{sequenceNbr}"
)
@
ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个${table.comment}"
,
notes
=
"根据sequenceNbr查询单个${table.comment}"
)
public
ResponseModel
<${
entity
}
Model
>
selectOne
(@
PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(${
table
.
serviceImplName
?
uncap_first
}.
queryBySeq
(
sequenceNbr
));
}
/**
*
列表分页查询
*
*
@
param
current
当前页
*
@
param
current
每页大小
*
@
return
*/
@
TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@
GetMapping
(
value
=
"/page"
)
@
ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询${table.comment}"
,
notes
=
"分页查询${table.comment}"
)
public
ResponseModel
<
Page
<${
entity
}
Model
>>
queryForPage
(@
RequestParam
(
value
=
"current"
)
int
current
,@
RequestParam
(
value
=
"size"
)
int
size
)
{
Page
<${
entity
}
Model
>
page
=
new
Page
<${
entity
}
Model
>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(${
table
.
serviceImplName
?
uncap_first
}.
queryFor
${
entity
}
Page
(
page
));
}
/**
*
列表全部数据查询
*
*
@
return
*/
@
TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@
ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询${table.comment}"
,
notes
=
"列表全部数据查询${table.comment}"
)
@
GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<${
entity
}
Model
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(${
table
.
serviceImplName
?
uncap_first
}.
queryFor
${
entity
}
List
());
}
}
</#
if
>
\ No newline at end of file
amos-boot-biz-common/src/main/resources/template2/dto.java.ftl
0 → 100644
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.${
package
.
ModuleName
}.
api
.
dto
;
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
import
com
.
yeejoin
.
amos
.
boot
.
biz
.
common
.
dto
.
BaseDto
;
<#
if
entityLombokModel
>
import
lombok
.
Data
;
import
lombok
.
EqualsAndHashCode
;
</#
if
>
import
java
.
util
.
Date
;
/**
*
${
table
.
comment
!}
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
<#
if
entityLombokModel
>
@
Data
<#
if
superEntityClass
??>
@
EqualsAndHashCode
(
callSuper
=
true
)
<#
else
>
@
EqualsAndHashCode
(
callSuper
=
false
)
</#
if
>
</#
if
>
<#
if
swagger2
>
@
ApiModel
(
value
=
"${entity}Dto"
,
description
=
"${table.comment!}"
)
</#
if
>
public
class
${
entity
}
Dto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
<#--
----------
BEGIN
字段循环遍历
---------->
<#
list
table
.
fields
as
field
>
<#
if
field
.
keyFlag
>
<#
assign
keyPropertyName
=
"${field.propertyName}"
/>
</#
if
>
<#
if
field
.
comment
!?length gt 0>
<#
if
swagger2
>
@
ApiModelProperty
(
value
=
"${field.comment}"
)
<#
else
>
/**
*
${
field
.
comment
}
*/
</#
if
>
</#
if
>
<#
if
field
.
keyFlag
>
<#--
主键
-->
<#
if
field
.
keyIdentityFlag
>
@
TableId
(
value
=
"${field.name}"
,
type
=
IdType
.
AUTO
)
<#
elseif
idType
??>
@
TableId
(
value
=
"${field.name}"
,
type
=
IdType
.${
idType
})
<#
elseif
field
.
convert
>
@
TableId
(
"${field.name}"
)
</#
if
>
<#--
普通字段
-->
<#
elseif
field
.
fill
??>
<#--
-----
存在字段填充设置
----->
<#
if
field
.
convert
>
@
TableField
(
value
=
"${field.name}"
,
fill
=
FieldFill
.${
field
.
fill
})
<#
else
>
@
TableField
(
fill
=
FieldFill
.${
field
.
fill
})
</#
if
>
<#
elseif
field
.
convert
>
@
TableField
(
"${field.name}"
)
</#
if
>
<#--
乐观锁注解
-->
<#
if
(
versionFieldName
!"") == field.name>
@
Version
</#
if
>
<#--
逻辑删除注解
-->
<#
if
(
logicDeleteFieldName
!"") == field.name>
@
TableLogic
</#
if
>
private
${
field
.
propertyType
}
${
field
.
propertyName
};
</#
list
>
<#------------
END
字段循环遍历
---------->
<#
if
!entityLombokModel>
<#
list
table
.
fields
as
field
>
<#
if
field
.
propertyType
==
"boolean"
>
<#
assign
getprefix
=
"is"
/>
<#
else
>
<#
assign
getprefix
=
"get"
/>
</#
if
>
public
${
field
.
propertyType
}
${
getprefix
}${
field
.
capitalName
}()
{
return
${
field
.
propertyName
};
}
<#
if
entityBuilderModel
>
public
${
entity
}
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
<#
else
>
public
void
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
</#
if
>
this
.${
field
.
propertyName
}
=
${
field
.
propertyName
};
<#
if
entityBuilderModel
>
return
this
;
</#
if
>
}
</#
list
>
</#
if
>
<#
if
entityColumnConstant
>
<#
list
table
.
fields
as
field
>
public
static
final
String
${
field
.
name
?
upper_case
}
=
"${field.name}"
;
</#
list
>
</#
if
>
<#
if
activeRecord
>
@
Override
protected
Serializable
pkVal
()
{
<#
if
keyPropertyName
??>
return
this
.${
keyPropertyName
};
<#
else
>
return
null
;
</#
if
>
}
</#
if
>
<#
if
!entityLombokModel>
@
Override
public
String
toString
()
{
return
"${entity}{"
+
<#
list
table
.
fields
as
field
>
<#
if
field_index
==
0
>
"${field.propertyName}="
+
${
field
.
propertyName
}
+
<#
else
>
", ${field.propertyName}="
+
${
field
.
propertyName
}
+
</#
if
>
</#
list
>
"}"
;
}
</#
if
>
}
amos-boot-biz-common/src/main/resources/template2/mapper.java.ftl
0 → 100644
View file @
d57bf1e2
package
${
package
.
Mapper
};
import
${
package
.
Entity
}.${
entity
};
import
${
superMapperClassPackage
};
/**
*
${
table
.
comment
!} Mapper 接口
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
<#
if
kotlin
>
interface
${
table
.
mapperName
}
:
${
superMapperClass
}<${
entity
}>
<#
else
>
public
interface
${
table
.
mapperName
}
extends
${
superMapperClass
}<${
entity
}>
{
}
</#
if
>
amos-boot-biz-common/src/main/resources/template2/mapper.xml.ftl
0 → 100644
View file @
d57bf1e2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"${package.Mapper}.${table.mapperName}"
>
<
#if enableCache>
<!-- 开启二级缓存 -->
<cache
type=
"org.mybatis.caches.ehcache.LoggingEhcache"
/>
<
/#if>
<
#if baseResultMap>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"${package.Entity}.${entity}"
>
<
#list table.fields as field>
<
#if field.keyFlag>
<
#--生成主键排在第一位-->
<id
column=
"${field.name}"
property=
"${field.propertyName}"
/>
<
/#if>
<
/#list>
<
#list table.commonFields as field>
<
#--生成公共字段 -->
<result
column=
"${field.name}"
property=
"${field.propertyName}"
/>
<
/#list>
<
#list table.fields as field>
<
#if !field.keyFlag>
<
#--生成普通字段 -->
<result
column=
"${field.name}"
property=
"${field.propertyName}"
/>
<
/#if>
<
/#list>
</resultMap>
<
/#if>
<
#if baseColumnList>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
<
#list table.commonFields as field>
${field.name},
<
/#list>
${table.fieldNames}
</sql>
<
/#if>
</mapper>
amos-boot-biz-common/src/main/resources/template2/model.java.ftl
0 → 100644
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.${
package
.
ModuleName
}.
api
.
model
;
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
import
org
.
typroject
.
tyboot
.
core
.
rdbms
.
model
.
BaseModel
;
<#
if
entityLombokModel
>
import
lombok
.
Data
;
import
lombok
.
EqualsAndHashCode
;
</#
if
>
/**
*
${
table
.
comment
!}
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
<#
if
entityLombokModel
>
@
Data
<#
if
superEntityClass
??>
@
EqualsAndHashCode
(
callSuper
=
true
)
<#
else
>
@
EqualsAndHashCode
(
callSuper
=
false
)
</#
if
>
</#
if
>
<#
if
swagger2
>
@
ApiModel
(
value
=
"${entity}Model"
,
description
=
"${table.comment!}"
)
</#
if
>
public
class
${
entity
}
Model
extends
BaseModel
{
private
static
final
long
serialVersionUID
=
1L
;
<#--
----------
BEGIN
字段循环遍历
---------->
<#
list
table
.
fields
as
field
>
<#
if
field
.
keyFlag
>
<#
assign
keyPropertyName
=
"${field.propertyName}"
/>
</#
if
>
<#
if
field
.
comment
!?length gt 0>
<#
if
swagger2
>
@
ApiModelProperty
(
value
=
"${field.comment}"
)
<#
else
>
/**
*
${
field
.
comment
}
*/
</#
if
>
</#
if
>
<#
if
field
.
keyFlag
>
<#--
主键
-->
<#
if
field
.
keyIdentityFlag
>
@
TableId
(
value
=
"${field.name}"
,
type
=
IdType
.
AUTO
)
<#
elseif
idType
??>
@
TableId
(
value
=
"${field.name}"
,
type
=
IdType
.${
idType
})
<#
elseif
field
.
convert
>
@
TableId
(
"${field.name}"
)
</#
if
>
<#--
普通字段
-->
<#
elseif
field
.
fill
??>
<#--
-----
存在字段填充设置
----->
<#
if
field
.
convert
>
@
TableField
(
value
=
"${field.name}"
,
fill
=
FieldFill
.${
field
.
fill
})
<#
else
>
@
TableField
(
fill
=
FieldFill
.${
field
.
fill
})
</#
if
>
<#
elseif
field
.
convert
>
@
TableField
(
"${field.name}"
)
</#
if
>
<#--
乐观锁注解
-->
<#
if
(
versionFieldName
!"") == field.name>
@
Version
</#
if
>
<#--
逻辑删除注解
-->
<#
if
(
logicDeleteFieldName
!"") == field.name>
@
TableLogic
</#
if
>
private
${
field
.
propertyType
}
${
field
.
propertyName
};
</#
list
>
<#------------
END
字段循环遍历
---------->
<#
if
!entityLombokModel>
<#
list
table
.
fields
as
field
>
<#
if
field
.
propertyType
==
"boolean"
>
<#
assign
getprefix
=
"is"
/>
<#
else
>
<#
assign
getprefix
=
"get"
/>
</#
if
>
public
${
field
.
propertyType
}
${
getprefix
}${
field
.
capitalName
}()
{
return
${
field
.
propertyName
};
}
<#
if
entityBuilderModel
>
public
${
entity
}
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
<#
else
>
public
void
set
${
field
.
capitalName
}(${
field
.
propertyType
}
${
field
.
propertyName
})
{
</#
if
>
this
.${
field
.
propertyName
}
=
${
field
.
propertyName
};
<#
if
entityBuilderModel
>
return
this
;
</#
if
>
}
</#
list
>
</#
if
>
<#
if
entityColumnConstant
>
<#
list
table
.
fields
as
field
>
public
static
final
String
${
field
.
name
?
upper_case
}
=
"${field.name}"
;
</#
list
>
</#
if
>
<#
if
activeRecord
>
@
Override
protected
Serializable
pkVal
()
{
<#
if
keyPropertyName
??>
return
this
.${
keyPropertyName
};
<#
else
>
return
null
;
</#
if
>
}
</#
if
>
<#
if
!entityLombokModel>
@
Override
public
String
toString
()
{
return
"${entity}{"
+
<#
list
table
.
fields
as
field
>
<#
if
field_index
==
0
>
"${field.propertyName}="
+
${
field
.
propertyName
}
+
<#
else
>
", ${field.propertyName}="
+
${
field
.
propertyName
}
+
</#
if
>
</#
list
>
"}"
;
}
</#
if
>
}
amos-boot-biz-common/src/main/resources/template2/service.java.ftl
0 → 100644
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.${
package
.
ModuleName
}.
api
.
service
;
/**
*
${
table
.
comment
!}接口类
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
<#
if
kotlin
>
interface
${
table
.
serviceName
}
:
${
superServiceClass
}<${
entity
}>
<#
else
>
public
interface
${
table
.
serviceName
}
{}
</#
if
>
amos-boot-biz-common/src/main/resources/template2/serviceImpl.java.ftl
0 → 100644
View file @
d57bf1e2
package
${
package
.
ServiceImpl
};
import
${
package
.
Entity
}.${
entity
};
import
${
package
.
Mapper
}.${
table
.
mapperName
};
import
${
package
.
Service
}.${
table
.
serviceName
};
import
${
package
.
Xml
}.${
entity
}
Model
;
import
org
.
typroject
.
tyboot
.
core
.
rdbms
.
service
.
BaseService
;
import
org
.
springframework
.
stereotype
.
Service
;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
Page
;
import
java
.
util
.
List
;
/**
*
${
table
.
comment
!}服务实现类
*
*
@
author
${
author
}
*
@
date
${
date
}
*/
@
Service
public
class
${
table
.
serviceImplName
}
extends
BaseService
<${
entity
}
Model
,${
entity
},${
table
.
mapperName
}>
implements
${
table
.
serviceName
}
{
/**
*
分页查询
*/
public
Page
<${
entity
}
Model
>
queryFor
${
entity
}
Page
(
Page
<${
entity
}
Model
>
page
)
{
return
this
.
queryForPage
(
page
,
null
,
false
);
}
/**
*
列表查询
示例
*/
public
List
<${
entity
}
Model
>
queryFor
${
entity
}
List
()
{
return
this
.
queryForList
(
""
,
false
);
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/enums/FlowStatusEnum.java
View file @
d57bf1e2
...
...
@@ -25,7 +25,12 @@ public enum FlowStatusEnum {
/**
* 已驳回
*/
REJECTED
(
6614
,
"已驳回"
);
REJECTED
(
6614
,
"已驳回"
),
/**
* 已撤回
*/
ROLLBACK
(
6615
,
"已撤回"
);
private
final
int
code
;
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/mapper/JyjcOpeningApplicationMapper.java
View file @
d57bf1e2
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationRequstDto
;
import
org.apache.ibatis.annotations.Param
;
/**
...
...
@@ -15,6 +16,6 @@ import org.apache.ibatis.annotations.Param;
public
interface
JyjcOpeningApplicationMapper
extends
BaseMapper
<
JyjcOpeningApplication
>
{
Page
<
JyjcOpeningApplicationModel
>
selectJyjcOpeningApplicationList
(
@Param
(
"page"
)
Page
<
JyjcOpeningApplication
>
page
,
@Param
(
"jyjcOpeningApplicationModel"
)
JyjcOpeningApplicationModel
jyjcOpeningApplicationModel
,
@Param
(
"applyStartTime"
)
String
applyStartTime
,
@Param
(
"applyendTime"
)
String
applyendTime
);
@Param
(
"jyjcOpeningApplicationRequstDto"
)
JyjcOpeningApplicationRequstDto
jyjcOpeningApplicationRequstDto
,
@Param
(
"applyStartTime"
)
String
applyStartTime
,
@Param
(
"applyendTime"
)
String
applyendTime
);
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/model/JyjcOpeningApplicationRequstDto.java
0 → 100644
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
model
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler
;
import
com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
JyjcOpeningApplicationRequstDto
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"单位编码"
)
private
String
unitCode
;
@ApiModelProperty
(
value
=
"单位编码Name"
)
private
String
unitCodeName
;
@ApiModelProperty
(
value
=
"检测区域名称(冗余)"
)
private
String
detectionRegionName
;
@ApiModelProperty
(
value
=
"申请单号"
)
private
String
applicationSeq
;
@ApiModelProperty
(
value
=
"检验结果方式"
)
private
String
resultType
;
@ApiModelProperty
(
value
=
"有效期至"
)
private
String
expiryDate
;
@ApiModelProperty
(
value
=
"受理日期(接收日期)"
)
private
String
acceptDate
;
@ApiModelProperty
(
value
=
"状态"
)
private
String
status
;
@ApiModelProperty
(
value
=
"状态Name"
)
private
String
statusName
;
@ApiModelProperty
(
value
=
"申请时间"
)
private
String
applyTime
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/resources/mapper/JyjcOpeningApplicationMapper.xml
View file @
d57bf1e2
...
...
@@ -27,17 +27,17 @@
status_name
from tz_jyjc_opening_application
<where>
<if
test=
"jyjcOpeningApplication
Model.applicationSeq != '' and jyjcOpeningApplicationModel
.applicationSeq != null"
>
and application_seq like concat('%',#{jyjcOpeningApplication
Model
.applicationSeq},'%')
<if
test=
"jyjcOpeningApplication
RequstDto.applicationSeq != '' and jyjcOpeningApplicationRequstDto
.applicationSeq != null"
>
and application_seq like concat('%',#{jyjcOpeningApplication
RequstDto
.applicationSeq},'%')
</if>
<if
test=
"jyjcOpeningApplication
Model.unitCode != '' and jyjcOpeningApplicationModel
.unitCode != null"
>
and unit_code like concat('%',#{jyjcOpeningApplication
Model
.unitCode},'%')
<if
test=
"jyjcOpeningApplication
RequstDto.unitCode != '' and jyjcOpeningApplicationRequstDto
.unitCode != null"
>
and unit_code like concat('%',#{jyjcOpeningApplication
RequstDto
.unitCode},'%')
</if>
<if
test=
"jyjcOpeningApplication
Model.acceptDate != '' and jyjcOpeningApplicationModel
.acceptDate != null"
>
and accept_date = #{jyjcOpeningApplication
Model
.acceptDate},
<if
test=
"jyjcOpeningApplication
RequstDto.acceptDate != '' and jyjcOpeningApplicationRequstDto
.acceptDate != null"
>
and accept_date = #{jyjcOpeningApplication
RequstDto
.acceptDate},
</if>
<if
test=
"jyjcOpeningApplication
Model.status != '' and jyjcOpeningApplicationModel
.status != null"
>
and status = #{jyjcOpeningApplication
Model
.status}
<if
test=
"jyjcOpeningApplication
RequstDto.status != '' and jyjcOpeningApplicationRequstDto
.status != null"
>
and status = #{jyjcOpeningApplication
RequstDto
.status}
</if>
<if
test=
"applyendTime != '' and applyendTime != null"
>
and apply_time
<
= #{applyendTime}
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/controller/CommonController.java
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel
;
import
com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcOpeningApplicationServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.RoleModel
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
*
* @author system_generator
* @date 2023-12-13
*/
...
...
@@ -42,7 +27,6 @@ public class CommonController extends BaseController {
@Autowired
CommonserviceImpl
commonserviceImpl
;
/**
* 新增
*
...
...
@@ -55,4 +39,15 @@ public class CommonController extends BaseController {
return
ResponseHelper
.
buildResponse
(
commonserviceImpl
.
getUserInfosByUnitCode
(
unitCode
));
}
/**
* 查询检验检测机构列表(基本信息及联系人)
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/getInspectionUnitList"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"查询检验检测机构列表(基本信息及联系人)"
,
notes
=
"查询检验检测机构列表(基本信息及联系人)"
)
public
ResponseModel
<
List
<
TzBaseEnterpriseInfo
>>
getInspectionUnitList
()
{
return
ResponseHelper
.
buildResponse
(
commonserviceImpl
.
getInspectionUnitList
());
}
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/controller/JyjcOpeningApplicationController.java
View file @
d57bf1e2
...
...
@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import
cn.hutool.core.map.MapBuilder
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationRequstDto
;
import
com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
...
...
@@ -100,6 +101,19 @@ public class JyjcOpeningApplicationController extends BaseController {
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbrList 主键列表
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@DeleteMapping
(
value
=
"batchDelete"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@RequestParam
(
value
=
"sequenceNbrList"
)
List
<
Long
>
sequenceNbrList
){
return
ResponseHelper
.
buildResponse
(
jyjcOpeningApplicationServiceImpl
.
deleteBatchSeq
(
sequenceNbrList
));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
...
...
@@ -123,11 +137,11 @@ public class JyjcOpeningApplicationController extends BaseController {
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
JyjcOpeningApplicationModel
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
JyjcOpeningApplication
Model
jyjcOpeningApplication
Dto
)
{
(
value
=
"size"
)
int
size
,
JyjcOpeningApplication
RequstDto
jyjcOpeningApplicationRequst
Dto
)
{
Page
<
JyjcOpeningApplication
>
page
=
new
Page
<
JyjcOpeningApplication
>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
jyjcOpeningApplicationServiceImpl
.
queryForJyjcOpeningApplicationPage
(
page
,
jyjcOpeningApplicationDto
));
return
ResponseHelper
.
buildResponse
(
jyjcOpeningApplicationServiceImpl
.
queryForJyjcOpeningApplicationPage
(
page
,
jyjcOpeningApplication
Requst
Dto
));
}
...
...
@@ -141,12 +155,12 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/pageForCompany"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询-公司"
,
notes
=
"分页查询-公司"
)
public
ResponseModel
<
Page
<
JyjcOpeningApplicationModel
>>
querypageForCompany
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
JyjcOpeningApplicationModel
jyjcOpeningApplication
Dto
)
{
public
ResponseModel
<
Page
<
JyjcOpeningApplicationModel
>>
querypageForCompany
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
JyjcOpeningApplicationRequstDto
jyjcOpeningApplicationRequst
Dto
)
{
Page
<
JyjcOpeningApplication
>
page
=
new
Page
<
JyjcOpeningApplication
>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
jyjcOpeningApplicationServiceImpl
.
querypageForCompany
(
page
,
jyjcOpeningApplicationDto
));
return
ResponseHelper
.
buildResponse
(
jyjcOpeningApplicationServiceImpl
.
querypageForCompany
(
page
,
jyjcOpeningApplication
Requst
Dto
));
}
/**
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/CommonserviceImpl.java
View file @
d57bf1e2
...
...
@@ -5,9 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper
;
import
org.apache.xmlbeans.impl.xb.xsdschema.Public
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
@@ -26,6 +27,10 @@ public class CommonserviceImpl {
@Autowired
TzsUserInfoMapper
userInfoMapper
;
@Autowired
TzBaseEnterpriseInfoMapper
enterpriseInfoMapper
;
public
static
final
String
UNIT_TYPE
=
"检验检测机构"
;
/**
* @return ReginParams
...
...
@@ -43,4 +48,8 @@ public class CommonserviceImpl {
List
<
TzsUserInfo
>
userInfos
=
userInfoMapper
.
selectList
(
userInfoQueryWrapper
);
return
userInfos
;
}
public
List
<
TzBaseEnterpriseInfo
>
getInspectionUnitList
()
{
return
enterpriseInfoMapper
.
getInspectionUnitList
(
UNIT_TYPE
);
}
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/JyjcOpeningApplicationServiceImpl.java
View file @
d57bf1e2
...
...
@@ -16,6 +16,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.FlowStatusEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper
;
import
com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationRequstDto
;
import
com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcOpeningApplicationService
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel
;
import
com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException
;
...
...
@@ -172,32 +173,32 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return
this
.
queryForList
(
""
,
false
);
}
public
Page
<
JyjcOpeningApplicationModel
>
queryForJyjcOpeningApplicationPage
(
Page
<
JyjcOpeningApplication
>
page
,
JyjcOpeningApplication
Model
jyjcOpeningApplicationModel
)
{
public
Page
<
JyjcOpeningApplicationModel
>
queryForJyjcOpeningApplicationPage
(
Page
<
JyjcOpeningApplication
>
page
,
JyjcOpeningApplication
RequstDto
jyjcOpeningApplicationRequstDto
)
{
String
applyStartTime
=
""
;
String
applyEndTime
=
""
;
if
(
ObjectUtils
.
isNotEmpty
(
jyjcOpeningApplication
Model
.
getApplyTime
()))
{
String
date
=
DateUtil
.
format
(
jyjcOpeningApplicationModel
.
getApplyTime
(),
DatePattern
.
NORM_DATE_PATTERN
);
if
(
ObjectUtils
.
isNotEmpty
(
jyjcOpeningApplication
RequstDto
.
getApplyTime
()))
{
String
date
=
jyjcOpeningApplicationRequstDto
.
getApplyTime
(
);
applyStartTime
=
date
+
" 00:00:00"
;
applyEndTime
=
date
+
" 23:59:59"
;
}
return
jyjcOpeningApplicationMapper
.
selectJyjcOpeningApplicationList
(
page
,
jyjcOpeningApplication
Model
,
applyStartTime
,
applyEndTime
);
return
jyjcOpeningApplicationMapper
.
selectJyjcOpeningApplicationList
(
page
,
jyjcOpeningApplication
RequstDto
,
applyStartTime
,
applyEndTime
);
}
public
Page
<
JyjcOpeningApplicationModel
>
querypageForCompany
(
Page
<
JyjcOpeningApplication
>
page
,
JyjcOpeningApplication
Model
jyjcOpeningApplicationModel
)
{
public
Page
<
JyjcOpeningApplicationModel
>
querypageForCompany
(
Page
<
JyjcOpeningApplication
>
page
,
JyjcOpeningApplication
RequstDto
jyjcOpeningApplicationRequstDto
)
{
//根据申请单中的单位信息对于列表数据进行过滤
CompanyBo
companyBo
=
commonserviceImpl
.
getReginParamsOfCurrentUser
().
getCompany
();
if
(
companyBo
.
getLevel
().
equals
(
"company"
))
{
jyjcOpeningApplication
Model
.
setUnitCode
(
companyBo
.
getCompanyCode
());
jyjcOpeningApplication
RequstDto
.
setUnitCode
(
companyBo
.
getCompanyCode
());
}
String
applyStartTime
=
""
;
String
applyEndTime
=
""
;
if
(
ObjectUtils
.
isNotEmpty
(
jyjcOpeningApplication
Model
.
getApplyTime
()))
{
String
date
=
DateUtil
.
format
(
jyjcOpeningApplicationModel
.
getApplyTime
(),
DatePattern
.
NORM_DATE_PATTERN
);
if
(
ObjectUtils
.
isNotEmpty
(
jyjcOpeningApplication
RequstDto
.
getApplyTime
()))
{
String
date
=
jyjcOpeningApplicationRequstDto
.
getApplyTime
(
);
applyStartTime
=
date
+
" 00:00:00"
;
applyEndTime
=
date
+
" 23:59:59"
;
}
return
jyjcOpeningApplicationMapper
.
selectJyjcOpeningApplicationList
(
page
,
jyjcOpeningApplication
Model
,
applyStartTime
,
applyEndTime
);
return
jyjcOpeningApplicationMapper
.
selectJyjcOpeningApplicationList
(
page
,
jyjcOpeningApplication
RequstDto
,
applyStartTime
,
applyEndTime
);
}
...
...
@@ -328,6 +329,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// String detectionRegionName = params.get("detectionRegionName").toString();
jyjcOpeningApplication
.
setDetectionRegion
(
detectionRegion
);
// jyjcOpeningApplication.setDetectionRegionName(detectionRegionName);
if
(
ObjectUtils
.
isEmpty
(
jyjcOpeningApplication
.
getAcceptDate
())){
jyjcOpeningApplication
.
setAcceptDate
(
new
Date
());
}
jyjcOpeningApplicationMapper
.
updateById
(
jyjcOpeningApplication
);
}
}
catch
(
Exception
e
)
{
...
...
@@ -345,7 +349,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
if
(
ObjectUtils
.
isEmpty
(
jsonObject
))
{
}
updateModelByInstanceId
(
instanceId
,
FlowStatusEnum
.
R
EJECTED
.
getCode
()
+
""
);
updateModelByInstanceId
(
instanceId
,
FlowStatusEnum
.
R
OLLBACK
.
getCode
()
+
""
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/common/DateUtils.java
0 → 100644
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
common
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.ZoneId
;
import
java.util.Date
;
public
class
DateUtils
{
public
static
Date
calculateEndOfYear
(
Date
currentDate
)
{
LocalDateTime
localDateTime
=
toLocalDateTime
(
currentDate
);
LocalDateTime
endOfYear
=
localDateTime
.
with
(
LocalDateTime
.
of
(
localDateTime
.
getYear
(),
12
,
31
,
23
,
59
,
59
,
999999999
));
return
toDate
(
endOfYear
);
}
public
static
Date
calculateEndOfMonth
(
Date
currentDate
)
{
LocalDateTime
localDateTime
=
toLocalDateTime
(
currentDate
);
LocalDateTime
endOfMonth
=
localDateTime
.
with
(
localDateTime
.
withDayOfMonth
(
localDateTime
.
getMonth
().
maxLength
())
.
withHour
(
23
)
.
withMinute
(
59
)
.
withSecond
(
59
)
.
withNano
(
999999999
));
return
toDate
(
endOfMonth
);
}
public
static
Date
calculateEndOfDay
(
Date
currentDate
)
{
LocalDateTime
localDateTime
=
toLocalDateTime
(
currentDate
);
LocalDateTime
endOfDay
=
localDateTime
.
with
(
LocalDateTime
.
of
(
localDateTime
.
toLocalDate
(),
LocalTime
.
MAX
));
return
toDate
(
endOfDay
);
}
private
static
LocalDateTime
toLocalDateTime
(
Date
date
)
{
return
LocalDateTime
.
ofInstant
(
date
.
toInstant
(),
ZoneId
.
systemDefault
());
}
private
static
Date
toDate
(
LocalDateTime
localDateTime
)
{
return
Date
.
from
(
localDateTime
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
}
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/controller/CreateCodeController.java
0 → 100644
View file @
d57bf1e2
//package com.yeejoin.amos.boot.module.ymt.api.controller;
//
//import com.yeejoin.amos.boot.biz.common.controller.BaseController;
//import com.yeejoin.amos.boot.module.ymt.api.service.ICreateCodeService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import org.typroject.tyboot.core.foundation.enumeration.UserType;
//import org.typroject.tyboot.core.restful.doc.TycloudOperation;
//import org.typroject.tyboot.core.restful.utils.ResponseHelper;
//import org.typroject.tyboot.core.restful.utils.ResponseModel;
//import java.util.List;
//
///**
// *
// * 生成顺序码
// * @author LiuLin
// * @date 2023-12-14
// */
//@RestController
//@Api(tags = "生成顺序码")
//@RequestMapping(value = "/code")
//public class CreateCodeController extends BaseController {
//
// @Autowired
// private ICreateCodeService createCodeService;
//
// /**
// * 申请单编号生成
// * @param type type
// * @param batchSize batchSize
// * @return List
// */
// @TycloudOperation(ApiLevel = UserType.AGENCY)
// @PostMapping(value = "/ANCode")
// @ApiOperation(httpMethod = "POST", value = "申请单编号生成", notes = "申请单编号生成")
// public ResponseModel<List<String>> createANCode(@RequestParam("type") String type,
// @RequestParam("batchSize") int batchSize) {
// return ResponseHelper.buildResponse(createCodeService.createApplicationFormCode(type,batchSize));
// }
//
// /**
// * 生成设备注册编码
// * @param key key
// * @return String
// */
// @TycloudOperation(ApiLevel = UserType.AGENCY)
// @PostMapping(value = "/DRCode")
// @ApiOperation(httpMethod = "POST", value = "生成设备注册编码", notes = "生成设备注册编码")
// public ResponseModel<String> createDRCode(@RequestParam("key") String key) {
// return ResponseHelper.buildResponse(createCodeService.createDeviceRegistrationCode(key));
// }
//
// /**
// * 使用登记证生成
// * @param key key
// * @return String
// */
// @TycloudOperation(ApiLevel = UserType.AGENCY)
// @PostMapping(value = "/URCode")
// @ApiOperation(httpMethod = "POST", value = "使用登记证生成", notes = "使用登记证生成")
// public ResponseModel<String> createURCode(@RequestParam("key") String key) {
// return ResponseHelper.buildResponse(createCodeService.createUseRegistrationCode(key));
// }
//}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/mapper/TzBaseEnterpriseInfoMapper.java
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
mapper
;
import
java.util.List
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.EquEnterDto
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo
;
import
org.springframework.data.repository.query.Param
;
import
java.util.List
;
/**
* 企业数据信息 Mapper 接口
...
...
@@ -44,4 +45,11 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
IPage
<
TzBaseEnterpriseInfoDto
>
page
(
Page
<
TzBaseEnterpriseInfoDto
>
page
,
TzBaseEnterpriseInfoDto
tzBaseEnterpriseInfoDto
);
IPage
<
TzBaseEnterpriseInfoDto
>
pageList
(
Page
<
TzBaseEnterpriseInfoDto
>
page
,
TzBaseEnterpriseInfoDto
tzBaseEnterpriseInfoDto
,
List
orgCodeList
);
/**
* 查找企业关联设备详情列表
*
*/
List
<
TzBaseEnterpriseInfo
>
getInspectionUnitList
(
@Param
(
"unitType"
)
String
unitType
);
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/service/ICreateCodeService.java
View file @
d57bf1e2
...
...
@@ -2,6 +2,11 @@ package com.yeejoin.amos.boot.module.ymt.api.service;
import
java.util.List
;
/**
* 生成码服务类
* @author LiuLin
* @date 2023-12-14
*/
public
interface
ICreateCodeService
{
/**
...
...
@@ -20,4 +25,11 @@ public interface ICreateCodeService {
*/
String
createDeviceRegistrationCode
(
String
key
);
/**
* 生成使用登记证编号(13位,起11陕C00001(23))
* @param key key
* @return 顺序编号
*/
String
createUseRegistrationCode
(
String
key
);
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/service/impl/CreateCodeServiceImpl.java
View file @
d57bf1e2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ymt
.
api
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.ymt.api.common.DateUtils
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.service.ICreateCodeService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.stereotype.Service
;
...
...
@@ -14,12 +16,17 @@ import java.util.concurrent.TimeUnit;
* @author LiuLin
* @date 2023-12-14
*/
@Slf4j
@Service
public
class
CreateCodeServiceImpl
implements
ICreateCodeService
{
private
static
final
String
LOCK_VALUE
=
"locked"
;
private
static
final
String
LOCK_KEY_AF
=
"sequence_lock_af"
;
private
static
final
String
SEQUENCE_TYPE_AF
=
"%03d"
;
private
static
final
String
LOCK_KEY_DR
=
"sequence_lock_dr"
;
private
static
final
String
SEQUENCE_TYPE_DR
=
"%04d"
;
private
static
final
String
LOCK_KEY_UR
=
"sequence_lock_ur"
;
private
static
final
String
SEQUENCE_TYPE_UR
=
"%05d"
;
private
final
RedisTemplate
<
String
,
String
>
redisTemplate
;
private
String
rulePrefix
;
...
...
@@ -27,6 +34,13 @@ public class CreateCodeServiceImpl implements ICreateCodeService {
this
.
redisTemplate
=
redisTemplate
;
}
/**
* 生成申请单编号(13位,GZ20231214000)
*
* @param type 枚举类型
* @param batchSize 生成个数
* @return List
*/
@Override
public
List
<
String
>
createApplicationFormCode
(
String
type
,
int
batchSize
)
{
if
(!
isValueInEnum
(
type
))
{
...
...
@@ -36,17 +50,48 @@ public class CreateCodeServiceImpl implements ICreateCodeService {
return
generateBatchSequence
(
type
,
batchSize
);
}
/**
* 生成设备注册编码(20位)
*
* @param key key
* @return 顺序编号
*/
@Override
public
String
createDeviceRegistrationCode
(
String
key
)
{
return
generateSequence
(
key
);
return
generateSequence
(
key
,
SEQUENCE_TYPE_DR
,
LOCK_KEY_DR
);
}
/**
* 生成使用登记证编号(13位,起11陕C00001(23))
*
* @param key key
* @return 顺序编号
*/
@Override
public
String
createUseRegistrationCode
(
String
key
)
{
rulePrefix
=
"("
+
LocalDate
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yy"
))
+
")"
;
return
generateSequence
(
key
,
SEQUENCE_TYPE_UR
,
LOCK_KEY_UR
);
}
/**
* 校验枚举合法性
*
* @param value value
* @return bool
*/
public
boolean
isValueInEnum
(
String
value
)
{
return
EnumSet
.
allOf
(
ApplicationFormTypeEnum
.
class
)
.
stream
()
.
anyMatch
(
enumValue
->
enumValue
.
name
().
equals
(
value
));
}
/**
* 批量生成顺序码
*
* @param sequenceKey sequenceKey
* @param batchSize 批量生成个数
* @return List
*/
public
List
<
String
>
generateBatchSequence
(
String
sequenceKey
,
int
batchSize
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean
lockAcquired
=
redisTemplate
.
opsForValue
().
setIfAbsent
(
LOCK_KEY_AF
,
LOCK_VALUE
);
...
...
@@ -57,21 +102,19 @@ public class CreateCodeServiceImpl implements ICreateCodeService {
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
// 如果为空,则初始化为0
if
(
currentSequenceStr
==
null
)
{
currentSequenceStr
=
"0"
;
}
// 将当前顺序码加1
Long
currentSequence
=
Long
.
parseLong
(
currentSequenceStr
);
Long
currentSequence
=
(
currentSequenceStr
!=
null
)
?
Long
.
parseLong
(
currentSequenceStr
)
:
0L
;
log
.
info
(
"===================>获取《{}》当前顺序码:{}<==================="
,
sequenceKey
,
currentSequenceStr
);
// 生成批量顺序码
List
<
String
>
sequenceList
=
new
ArrayList
<>();
log
.
info
(
"===================>批量生成{}个《{}》顺序码<==================="
,
batchSize
,
sequenceKey
);
for
(
int
i
=
0
;
i
<
batchSize
;
i
++)
{
currentSequence
++;
// 生成3位顺序码
String
formattedSequence
=
String
.
format
(
"%03d"
,
currentSequence
);
String
formattedSequence
=
String
.
format
(
SEQUENCE_TYPE_AF
,
currentSequence
);
sequenceList
.
add
(
rulePrefix
+
formattedSequence
);
// 更新顺序码
log
.
info
(
"===================>更新《{}》顺序码:{}<==================="
,
sequenceKey
,
formattedSequence
);
setValueWithDailyExpiration
(
sequenceKey
,
String
.
valueOf
(
formattedSequence
));
}
...
...
@@ -85,85 +128,114 @@ public class CreateCodeServiceImpl implements ICreateCodeService {
}
}
public
String
generateSequence
(
String
sequenceKey
)
{
/**
* 批量生成顺序码
*
* @param sequenceKey redisKey
* @param sequenceType 生成码类型
* @param lockKey redis锁
* @return s
*/
public
String
generateSequence
(
String
sequenceKey
,
String
sequenceType
,
String
lockKey
)
{
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean
lockAcquired
=
redisTemplate
.
opsForValue
().
setIfAbsent
(
LOCK_KEY_DR
,
LOCK_VALUE
);
Boolean
lockAcquired
=
obtainLock
(
lockKey
);
if
(
Boolean
.
TRUE
.
equals
(
lockAcquired
))
{
try
{
// 获取当前顺序码
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
String
currentSequenceStr
=
valueOps
.
get
(
sequenceKey
);
// 如果为空,则初始化为0
if
(
currentSequenceStr
==
null
)
{
currentSequenceStr
=
"0"
;
}
// 将当前顺序码加1
Long
currentSequence
=
Long
.
parseLong
(
currentSequenceStr
);
Long
currentSequence
=
(
currentSequenceStr
!=
null
)
?
Long
.
parseLong
(
currentSequenceStr
)
:
0L
;
log
.
info
(
"===================>获取《{}》当前顺序码:{}<==================="
,
sequenceKey
,
currentSequenceStr
);
currentSequence
++;
// 生成10位顺序码
String
formattedSequence
=
String
.
format
(
"%04d"
,
currentSequence
);
// 生成顺序码
String
formattedSequence
=
String
.
format
(
sequenceType
,
currentSequence
);
log
.
info
(
"===================>更新《{}》顺序码:{}<==================="
,
sequenceKey
,
formattedSequence
);
// 更新顺序码
if
(
sequenceType
.
equals
(
LOCK_KEY_DR
))
{
setValueWithMonthlyExpiration
(
sequenceKey
,
String
.
valueOf
(
formattedSequence
));
}
else
{
setValueWithYearlyExpiration
(
sequenceKey
,
String
.
valueOf
(
formattedSequence
));
}
String
generatedSequence
=
sequenceKey
+
formattedSequence
;
String
result
=
generatedSequence
+
(
sequenceType
.
equals
(
LOCK_KEY_DR
)
?
""
:
rulePrefix
);
log
.
info
(
"===================>返回《{}》顺序码:{}<==================="
,
sequenceKey
,
result
);
return
result
;
return
sequenceKey
+
formattedSequence
;
}
finally
{
re
disTemplate
.
delete
(
LOCK_KEY_DR
);
re
leaseLock
(
lockKey
);
}
}
else
{
// 获取锁失败,可以选择重试或采取其他策略
throw
new
RuntimeException
(
"Failed to acquire lock for sequence generation"
);
}
}
/**
* 分布式锁
*
* @param lockKey lockKey
* @return bool
*/
private
Boolean
obtainLock
(
String
lockKey
)
{
return
redisTemplate
.
opsForValue
().
setIfAbsent
(
lockKey
,
LOCK_VALUE
);
}
/**
* 释放锁
*
* @param lockKey lockKey
*/
private
void
releaseLock
(
String
lockKey
)
{
redisTemplate
.
delete
(
lockKey
);
}
/**
* redis 根据自然日过期
*
* @param key key
* @param value value
*/
public
void
setValueWithDailyExpiration
(
String
key
,
String
value
)
{
Date
endOfDay
=
DateUtils
.
calculateEndOfDay
(
new
Date
());
setValueWithExpiration
(
key
,
value
,
endOfDay
);
}
/**
* redis 根据自然月过期
*
* @param key key
* @param value value
*/
public
void
setValueWithMonthlyExpiration
(
String
key
,
String
value
)
{
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
valueOps
.
set
(
key
,
value
);
Date
currentDate
=
new
Date
();
Date
endOfMonth
=
calculateEndOfMonth
(
currentDate
);
long
expirationTimeInSeconds
=
endOfMonth
.
getTime
()
-
currentDate
.
getTime
();
Date
endOfMonth
=
DateUtils
.
calculateEndOfMonth
(
new
Date
());
setValueWithExpiration
(
key
,
value
,
endOfMonth
);
}
redisTemplate
.
expire
(
key
,
expirationTimeInSeconds
,
TimeUnit
.
MILLISECONDS
);
/**
* redis 根据自然年过期
*
* @param key key
* @param value value
*/
public
void
setValueWithYearlyExpiration
(
String
key
,
String
value
)
{
Date
endOfYear
=
DateUtils
.
calculateEndOfYear
(
new
Date
());
setValueWithExpiration
(
key
,
value
,
endOfYear
);
}
public
void
setValueWithDailyExpiration
(
String
key
,
String
value
)
{
/**
* redis设置key
*
* @param key key
* @param value value
* @param expirationDate 过期时间
*/
public
void
setValueWithExpiration
(
String
key
,
String
value
,
Date
expirationDate
)
{
ValueOperations
<
String
,
String
>
valueOps
=
redisTemplate
.
opsForValue
();
valueOps
.
set
(
key
,
value
);
Date
currentDate
=
new
Date
();
Date
endOfDay
=
calculateEndOfDay
(
currentDate
);
long
expirationTimeInSeconds
=
endOfDay
.
getTime
()
-
currentDate
.
getTime
();
long
expirationTimeInSeconds
=
expirationDate
.
getTime
()
-
System
.
currentTimeMillis
();
redisTemplate
.
expire
(
key
,
expirationTimeInSeconds
,
TimeUnit
.
MILLISECONDS
);
}
private
Date
calculateEndOfMonth
(
Date
currentDate
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
currentDate
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
calendar
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
));
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
23
);
calendar
.
set
(
Calendar
.
MINUTE
,
59
);
calendar
.
set
(
Calendar
.
SECOND
,
59
);
calendar
.
set
(
Calendar
.
MILLISECOND
,
999
);
return
calendar
.
getTime
();
}
private
Date
calculateEndOfDay
(
Date
currentDate
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
currentDate
);
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
23
);
calendar
.
set
(
Calendar
.
MINUTE
,
59
);
calendar
.
set
(
Calendar
.
SECOND
,
59
);
calendar
.
set
(
Calendar
.
MILLISECOND
,
999
);
return
calendar
.
getTime
();
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/TzBaseEnterpriseInfoMapper.xml
View file @
d57bf1e2
...
...
@@ -154,5 +154,10 @@
<select
id=
"selectByUseUnit"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo"
>
select * from tz_base_enterprise_info where use_unit = #{useUnit}
</select>
<select
id=
"getInspectionUnitList"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo"
>
select sequence_nbr,use_code,use_unit,use_contact,contact_phone
from tz_base_enterprise_info
where unit_type LIKE CONCAT('%',#{unitType},'%')
</select>
</mapper>
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