Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
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
fangxinjiang
yifu-mvp
Commits
3f614dd9
Commit
3f614dd9
authored
Jun 21, 2023
by
fangxinjiang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop'
parents
1f98ba00
a09a352f
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
2444 additions
and
343 deletions
+2444
-343
TPersonnelRoster.java
.../cloud/plus/v1/yifu/archives/entity/TPersonnelRoster.java
+370
-0
TPersonnelRosterSearchVo.java
...ud/plus/v1/yifu/archives/vo/TPersonnelRosterSearchVo.java
+56
-0
TPersonnelRosterVo.java
...fu/cloud/plus/v1/yifu/archives/vo/TPersonnelRosterVo.java
+369
-0
TPersonnelRosterController.java
.../yifu/archives/controller/TPersonnelRosterController.java
+136
-0
TPersonnelRosterMapper.java
.../plus/v1/yifu/archives/mapper/TPersonnelRosterMapper.java
+41
-0
TPersonnelRosterService.java
...lus/v1/yifu/archives/service/TPersonnelRosterService.java
+49
-0
TPersonnelRosterServiceImpl.java
...fu/archives/service/impl/TPersonnelRosterServiceImpl.java
+171
-0
TPersonnelRosterMapper.xml
...-biz/src/main/resources/mapper/TPersonnelRosterMapper.xml
+249
-0
DaprMsgProperties.java
...ud/plus/v1/yifu/common/dapr/config/DaprMsgProperties.java
+39
-0
daprConfig.properties
...yifu-common-dapr/src/main/resources/daprConfig.properties
+16
-15
seata-config.yml
...mon/yifu-common-seata/src/main/resources/seata-config.yml
+1
-1
MsgTask.java
...main/java/com/yifu/cloud/plus/v1/job/compont/MsgTask.java
+41
-0
SalaryTask.java
...n/java/com/yifu/cloud/plus/v1/job/compont/SalaryTask.java
+13
-0
MsgInfo.java
.../main/java/com/yifu/cloud/plus/v1/msg/entity/MsgInfo.java
+23
-14
MesConstants.java
...ava/com/yifu/cloud/plus/v1/msg/constant/MesConstants.java
+1
-5
MsgInfoController.java
.../yifu/cloud/plus/v1/msg/controller/MsgInfoController.java
+1
-1
MsgInfoServiceImpl.java
...fu/cloud/plus/v1/msg/service/impl/MsgInfoServiceImpl.java
+50
-3
application.yml
yifu-msg/yifu-msg-biz/src/main/resources/application.yml
+2
-4
MsgInfoMapper.xml
.../yifu-msg-biz/src/main/resources/mapper/MsgInfoMapper.xml
+34
-25
OrderAttVo.java
...java/com/yifu/cloud/plus/v1/yifu/order/vo/OrderAttVo.java
+35
-0
EkpOrderController.java
...oud/plus/v1/yifu/order/controller/EkpOrderController.java
+23
-0
TOrderService.java
.../yifu/cloud/plus/v1/yifu/order/service/TOrderService.java
+12
-0
TOrderServiceImpl.java
...ud/plus/v1/yifu/order/service/impl/TOrderServiceImpl.java
+334
-275
TAverageSalary.java
...yifu/cloud/plus/v1/yifu/salary/entity/TAverageSalary.java
+64
-0
TAverageSalaryVo.java
...m/yifu/cloud/plus/v1/yifu/salary/vo/TAverageSalaryVo.java
+39
-0
TAverageSalaryController.java
...s/v1/yifu/salary/controller/TAverageSalaryController.java
+98
-0
TAverageSalaryMapper.java
...loud/plus/v1/yifu/salary/mapper/TAverageSalaryMapper.java
+44
-0
TAverageSalaryService.java
...ud/plus/v1/yifu/salary/service/TAverageSalaryService.java
+26
-0
TAverageSalaryServiceImpl.java
...1/yifu/salary/service/impl/TAverageSalaryServiceImpl.java
+52
-0
application.yml
...salary/yifu-salary-biz/src/main/resources/application.yml
+1
-0
TAverageSalaryMapper.xml
...ry-biz/src/main/resources/mapper/TAverageSalaryMapper.xml
+54
-0
No files found.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/TPersonnelRoster.java
0 → 100644
View file @
3f614dd9
This diff is collapsed.
Click to expand it.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TPersonnelRosterSearchVo.java
0 → 100644
View file @
3f614dd9
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
* @author fxj
* @date 2023-06-13 15:42:17
*/
@Data
public
class
TPersonnelRosterSearchVo
extends
TPersonnelRoster
{
/**
* 多选导出或删除等操作
*/
@Schema
(
description
=
"选中ID,多个逗号分割"
)
private
String
ids
;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema
(
description
=
"创建时间区间"
)
private
LocalDateTime
[]
createTimes
;
/**
* @Author fxj
* 查询数据起
**/
@Schema
(
description
=
"查询limit 开始"
)
private
int
limitStart
;
/**
* @Author fxj
* 查询数据止
**/
@Schema
(
description
=
"查询limit 数据条数"
)
private
int
limitEnd
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TPersonnelRosterVo.java
0 → 100644
View file @
3f614dd9
This diff is collapsed.
Click to expand it.
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/TPersonnelRosterController.java
0 → 100644
View file @
3f614dd9
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TPersonnelRosterService
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterSearchVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
*
*
* @author fxj
* @date 2023-06-13 15:42:17
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tpersonnelroster"
)
@Tag
(
name
=
"员工花名册"
)
public
class
TPersonnelRosterController
{
private
final
TPersonnelRosterService
tPersonnelRosterService
;
/**
* 简单分页查询
* @param page 分页对象
* @param tPersonnelRoster
* @return
*/
@Operation
(
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TPersonnelRoster
>>
getTPersonnelRosterPage
(
Page
<
TPersonnelRoster
>
page
,
TPersonnelRosterSearchVo
tPersonnelRoster
)
{
return
new
R
<>(
tPersonnelRosterService
.
getTPersonnelRosterPage
(
page
,
tPersonnelRoster
));
}
/**
* 不分页查询
* @param tPersonnelRoster
* @return
*/
@Operation
(
summary
=
"不分页查询"
,
description
=
"不分页查询"
)
@PostMapping
(
"/noPage"
)
public
R
<
List
<
TPersonnelRoster
>>
getTPersonnelRosterNoPage
(
@RequestBody
TPersonnelRosterSearchVo
tPersonnelRoster
)
{
return
R
.
ok
(
tPersonnelRosterService
.
noPageDiy
(
tPersonnelRoster
));
}
/**
* 通过id查询
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id查询"
,
description
=
"通过id查询:hasPermission('demo_tpersonnelroster_get')"
)
@GetMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('demo_tpersonnelroster_get')"
)
public
R
<
TPersonnelRoster
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
R
.
ok
(
tPersonnelRosterService
.
getById
(
id
));
}
/**
* 新增
* @param tPersonnelRoster
* @return R
*/
@Operation
(
summary
=
"新增"
,
description
=
"新增:hasPermission('demo_tpersonnelroster_add')"
)
@SysLog
(
"新增"
)
@PostMapping
@PreAuthorize
(
"@pms.hasPermission('demo_tpersonnelroster_add')"
)
public
R
<
Boolean
>
save
(
@RequestBody
TPersonnelRoster
tPersonnelRoster
)
{
return
R
.
ok
(
tPersonnelRosterService
.
save
(
tPersonnelRoster
));
}
/**
* 修改
* @param tPersonnelRoster
* @return R
*/
@Operation
(
summary
=
"修改"
,
description
=
"修改:hasPermission('demo_tpersonnelroster_edit')"
)
@SysLog
(
"修改"
)
@PutMapping
@PreAuthorize
(
"@pms.hasPermission('demo_tpersonnelroster_edit')"
)
public
R
<
Boolean
>
updateById
(
@RequestBody
TPersonnelRoster
tPersonnelRoster
)
{
return
R
.
ok
(
tPersonnelRosterService
.
updateById
(
tPersonnelRoster
));
}
/**
* 通过id删除
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id删除"
,
description
=
"通过id删除:hasPermission('demo_tpersonnelroster_del')"
)
@SysLog
(
"通过id删除"
)
@DeleteMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('demo_tpersonnelroster_del')"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
R
.
ok
(
tPersonnelRosterService
.
removeById
(
id
));
}
/**
* 批量导出
* @author fxj
* @date 2023-06-13 15:42:17
**/
@Operation
(
description
=
"导出 hasPermission('demo_tpersonnelroster-export')"
)
@PostMapping
(
"/export"
)
@PreAuthorize
(
"@pms.hasPermission('demo_tpersonnelroster-export')"
)
public
void
export
(
HttpServletResponse
response
,
@RequestBody
TPersonnelRosterSearchVo
searchVo
)
{
tPersonnelRosterService
.
listExport
(
response
,
searchVo
);
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/TPersonnelRosterMapper.java
0 → 100644
View file @
3f614dd9
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
*
*
* @author fxj
* @date 2023-06-13 15:42:17
*/
@Mapper
public
interface
TPersonnelRosterMapper
extends
BaseMapper
<
TPersonnelRoster
>
{
/**
* 简单分页查询
* @param tPersonnelRoster
* @return
*/
IPage
<
TPersonnelRoster
>
getTPersonnelRosterPage
(
Page
<
TPersonnelRoster
>
page
,
@Param
(
"tPersonnelRoster"
)
TPersonnelRoster
tPersonnelRoster
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/TPersonnelRosterService.java
0 → 100644
View file @
3f614dd9
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterSearchVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.InputStream
;
import
java.util.List
;
/**
*
*
* @author fxj
* @date 2023-06-13 15:42:17
*/
public
interface
TPersonnelRosterService
extends
IService
<
TPersonnelRoster
>
{
/**
* 简单分页查询
* @param tPersonnelRoster
* @return
*/
IPage
<
TPersonnelRoster
>
getTPersonnelRosterPage
(
Page
<
TPersonnelRoster
>
page
,
TPersonnelRosterSearchVo
tPersonnelRoster
);
void
listExport
(
HttpServletResponse
response
,
TPersonnelRosterSearchVo
searchVo
);
List
<
TPersonnelRoster
>
noPageDiy
(
TPersonnelRosterSearchVo
searchVo
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TPersonnelRosterServiceImpl.java
0 → 100644
View file @
3f614dd9
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.read.listener.ReadListener
;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.excel.util.ListUtils
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TPersonnelRoster
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.TPersonnelRosterMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TPersonnelRosterService
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterSearchVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TPersonnelRosterVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.*
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
*
*
* @author fxj
* @date 2023-06-13 15:42:17
*/
@Log4j2
@Service
public
class
TPersonnelRosterServiceImpl
extends
ServiceImpl
<
TPersonnelRosterMapper
,
TPersonnelRoster
>
implements
TPersonnelRosterService
{
/**
* 简单分页查询
* @param tPersonnelRoster
* @return
*/
@Override
public
IPage
<
TPersonnelRoster
>
getTPersonnelRosterPage
(
Page
<
TPersonnelRoster
>
page
,
TPersonnelRosterSearchVo
tPersonnelRoster
){
return
baseMapper
.
getTPersonnelRosterPage
(
page
,
tPersonnelRoster
);
}
/**
* 批量导出
* @param searchVo
* @return
*/
@Override
public
void
listExport
(
HttpServletResponse
response
,
TPersonnelRosterSearchVo
searchVo
){
String
fileName
=
"批量导出"
+
DateUtil
.
getThisTime
()
+
".xlsx"
;
//获取要导出的列表
List
<
TPersonnelRoster
>
list
=
new
ArrayList
<>();
long
count
=
noPageCountDiy
(
searchVo
);
ServletOutputStream
out
=
null
;
try
{
out
=
response
.
getOutputStream
();
response
.
setContentType
(
CommonConstants
.
MULTIPART_FORM_DATA
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
CommonConstants
.
CONTENT_DISPOSITION
,
CommonConstants
.
ATTACHMENT_FILENAME
+
URLEncoder
.
encode
(
fileName
,
CommonConstants
.
UTF8
));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
out
,
TPersonnelRoster
.
class
).
build
();
int
index
=
0
;
if
(
count
>
CommonConstants
.
ZERO_INT
){
for
(
int
i
=
0
;
i
<=
count
;
)
{
// 获取实际记录
searchVo
.
setLimitStart
(
i
);
searchVo
.
setLimitEnd
(
CommonConstants
.
EXCEL_EXPORT_LIMIT
);
list
=
noPageDiy
(
searchVo
);
if
(
Common
.
isNotNull
(
list
)){
ExcelUtil
<
TPersonnelRoster
>
util
=
new
ExcelUtil
<>(
TPersonnelRoster
.
class
);
for
(
TPersonnelRoster
vo:
list
){
util
.
convertEntity
(
vo
,
null
,
null
,
null
);
}
}
if
(
Common
.
isNotNull
(
list
)){
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
""
+
index
).
build
();
excelWriter
.
write
(
list
,
writeSheet
);
index
++;
}
i
=
i
+
CommonConstants
.
EXCEL_EXPORT_LIMIT
;
if
(
Common
.
isNotNull
(
list
)){
list
.
clear
();
}
}
}
else
{
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
""
+
index
).
build
();
excelWriter
.
write
(
list
,
writeSheet
);
}
if
(
Common
.
isNotNull
(
list
)){
list
.
clear
();
}
out
.
flush
();
excelWriter
.
finish
();
}
catch
(
Exception
e
){
log
.
error
(
"执行异常"
,
e
);
}
finally
{
try
{
if
(
null
!=
out
)
{
out
.
close
();
}
}
catch
(
IOException
e
)
{
log
.
error
(
"执行异常"
,
e
);
}
}
}
@Override
public
List
<
TPersonnelRoster
>
noPageDiy
(
TPersonnelRosterSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TPersonnelRoster
>
wrapper
=
buildQueryWrapper
(
searchVo
);
List
<
String
>
idList
=
Common
.
getList
(
searchVo
.
getIds
());
if
(
Common
.
isNotNull
(
idList
)){
wrapper
.
in
(
TPersonnelRoster:
:
getId
,
idList
);
}
if
(
searchVo
.
getLimitStart
()
>=
0
&&
searchVo
.
getLimitEnd
()
>
0
){
wrapper
.
last
(
" limit "
+
searchVo
.
getLimitStart
()
+
","
+
searchVo
.
getLimitEnd
());
}
wrapper
.
orderByDesc
(
BaseEntity:
:
getCreateTime
);
return
baseMapper
.
selectList
(
wrapper
);
}
private
Long
noPageCountDiy
(
TPersonnelRosterSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TPersonnelRoster
>
wrapper
=
buildQueryWrapper
(
searchVo
);
List
<
String
>
idList
=
Common
.
getList
(
searchVo
.
getIds
());
if
(
Common
.
isNotNull
(
idList
)){
wrapper
.
in
(
TPersonnelRoster:
:
getId
,
idList
);
}
return
baseMapper
.
selectCount
(
wrapper
);
}
private
LambdaQueryWrapper
buildQueryWrapper
(
TPersonnelRosterSearchVo
entity
){
LambdaQueryWrapper
<
TPersonnelRoster
>
wrapper
=
Wrappers
.
lambdaQuery
();
if
(
ArrayUtil
.
isNotEmpty
(
entity
.
getCreateTimes
()))
{
wrapper
.
ge
(
TPersonnelRoster:
:
getCreateTime
,
entity
.
getCreateTimes
()[
0
])
.
le
(
TPersonnelRoster:
:
getCreateTime
,
entity
.
getCreateTimes
()[
1
]);
}
if
(
Common
.
isNotNull
(
entity
.
getCreateName
())){
wrapper
.
eq
(
TPersonnelRoster:
:
getCreateName
,
entity
.
getCreateName
());
}
return
wrapper
;
}
}
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TPersonnelRosterMapper.xml
0 → 100644
View file @
3f614dd9
This diff is collapsed.
Click to expand it.
yifu-common/yifu-common-dapr/src/main/java/com/yifu/cloud/plus/v1/yifu/common/dapr/config/DaprMsgProperties.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
common
.
dapr
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.PropertySource
;
import
org.springframework.stereotype.Component
;
/**
* @Author fxj
* @Date 2022/7/4
* @Description
* @Version 1.0
*/
@Data
@Component
@PropertySource
(
"classpath:daprConfig.properties"
)
@ConfigurationProperties
(
value
=
"dapr.msg"
,
ignoreInvalidFields
=
false
)
public
class
DaprMsgProperties
{
/*
* @author fxj
* @date 14:34
* @Description dapr sidercar url 如:http://localhost:3005/v1.0/invoke/
**/
String
appUrl
;
/*
* @author fxj
* @date 14:35
* @decription app_id 如:"yifu_upms_sider"
**/
String
appId
;
String
appPort
;
String
httpPort
;
String
grpcPort
;
String
metricsPort
;
}
yifu-common/yifu-common-dapr/src/main/resources/daprConfig.properties
View file @
3f614dd9
dapr.upms.appUrl
=
http://
127.0.0.1
:3500/v1.0/invoke/
dapr.upms.appUrl
=
http://
yifu-upms.qas-mvp.svc.cluster.local
:3500/v1.0/invoke/
dapr.upms.appId
=
yifu-upms
dapr.check.appUrl
=
http://127.0.0.1:3500/v1.0/invoke/
#\u6D4B\u8BD5\u73AF\u5883
#dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
#\u672C\u5730
dapr.check.appUrl
=
http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.check.appId
=
yifu-check
#\u751F\u4EA7
dapr.archives.appUrl
=
http://127.0.0.1:3500/v1.0/invoke/
dapr.archives.appId
=
yifu-archives
#\u
751F\u4EA7
dapr.
social.appUrl
=
http://127.0.0.1
:3500/v1.0/invoke/
dapr.
social.appId
=
yifu-social
#\u
672C\u5730
dapr.
archives.appUrl
=
http://yifu-archives.qas-mvp.svc.cluster.local
:3500/v1.0/invoke/
dapr.
archives.appId
=
yifu-archives
#\u751F\u4EA7
dapr.salary.appUrl
=
http://127.0.0.1:3500/v1.0/invoke/
dapr.salary.appId
=
yifu-salary
#\u751F\u4EA7
dapr.insurances.appUrl
=
http://127.0.0.1:3500/v1.0/invoke/
dapr.insurances.appId
=
yifu-insurances
dapr.social.appUrl
=
http://yifu-social.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.social.appId
=
yifu-social
#\u6D4B\u8BD5\u73AF\u5883-B\u7AEF\u670D\u52A1
dapr.business.appUrl
=
http://
127.0.0.1
:3500/v1.0/invoke/
dapr.business.appUrl
=
http://
yifu-business.qas-mvp.svc.cluster.local
:3500/v1.0/invoke/
dapr.business.appId
=
yifu-business
#\u6D4B\u8BD5\u73AF\u5883-\u6D88\u606F\u63D0\u9192\u670D\u52A1
dapr.msg.appUrl
=
http://yifu-msg.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
dapr.msg.appId
=
yifu-msg
\ No newline at end of file
yifu-common/yifu-common-seata/src/main/resources/seata-config.yml
View file @
3f614dd9
...
...
@@ -28,7 +28,7 @@ seata:
enable-degrade
:
false
# 降级开关
disable-global-transaction
:
false
# 禁用全局事务(默认false)
grouplist
:
default
:
192.168.
0.153
:33091
default
:
192.168.
1.65
:33091
transport
:
shutdown
:
wait
:
3
...
...
yifu-job/yifu-job-api/src/main/java/com/yifu/cloud/plus/v1/job/compont/MsgTask.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
job
.
compont
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprMsgProperties
;
import
com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.stereotype.Component
;
/**
* @Author fxj
* @Description 定時任務--定时生成 超时提醒
* @Date 19:57 2023/5/30
* @Param
* @return
**/
@Component
(
value
=
"msgTask"
)
@Slf4j
@EnableConfigurationProperties
(
DaprMsgProperties
.
class
)
public
class
MsgTask
{
@Autowired
private
DaprMsgProperties
daprMsgProperties
;
/**
* @Author fxj
* @Description 每29分钟刷新 超时待办提醒
* @Date 20:01 2023/5/30
* @Param
* @return
**/
public
void
createOderOverTimeMsg
()
{
log
.
info
(
"-------------每29分钟刷新 超时待办提醒-定时任务开始------------"
);
HttpDaprUtil
.
invokeMethodPost
(
daprMsgProperties
.
getAppUrl
(),
daprMsgProperties
.
getAppId
(),
"/msg/inner/updateOverTimeMsg"
,
""
,
Object
.
class
,
SecurityConstants
.
FROM_IN
);
log
.
info
(
"-------------每29分钟刷新 超时待办提醒定时任务结束------------"
);
}
}
\ No newline at end of file
yifu-job/yifu-job-api/src/main/java/com/yifu/cloud/plus/v1/job/compont/SalaryTask.java
View file @
3f614dd9
...
...
@@ -127,5 +127,18 @@ public class SalaryTask {
log
.
info
(
"------------定时生成本期申报-定时任务结束------------"
);
}
/**
* @Author hgw
* @Description 前12月平均工资(MVP-TDC接口)
* @Date 2023-6-19 16:31:32
* @Param
* @return
**/
public
void
doCreateAverageSalary
()
{
log
.
info
(
"------------定时生成【前12月平均工资】-定时任务开始------------"
);
HttpDaprUtil
.
invokeMethodPost
(
daprSalarylProperties
.
getAppUrl
(),
daprSalarylProperties
.
getAppId
(),
"/taveragesalary/inner/doCreateAverageSalary"
,
""
,
Object
.
class
,
SecurityConstants
.
FROM_IN
);
log
.
info
(
"------------定时生成【前12月平均工资】-定时任务结束------------"
);
}
}
\ No newline at end of file
yifu-msg/yifu-msg-api/src/main/java/com/yifu/cloud/plus/v1/msg/entity/MsgInfo.java
View file @
3f614dd9
...
...
@@ -22,21 +22,20 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.hibernate.validator.constraints.Length
;
import
java.time.LocalDateTime
;
/**
* @author fxj
* @date 2023-06-01 10:41:25
*/
@Data
@TableName
(
"msg_info"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Schema
(
description
=
"EKP 消息提醒"
)
public
class
MsgInfo
extends
BaseEntity
{
public
class
MsgInfo
{
/**
* id
...
...
@@ -46,20 +45,20 @@ public class MsgInfo extends BaseEntity {
@Schema
(
description
=
"id"
)
private
String
id
;
/**
*
orderId
*
订单号
*/
@ExcelAttribute
(
name
=
"
orderId
"
,
maxLength
=
50
)
@ExcelAttribute
(
name
=
"
订单号
"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"orderId不能超过50个字符"
)
@ExcelProperty
(
"
orderId
"
)
@Schema
(
description
=
"
orderId
"
)
@ExcelProperty
(
"
订单号
"
)
@Schema
(
description
=
"
订单号
"
)
private
String
orderId
;
/**
*
订单号
*
URL
*/
@ExcelAttribute
(
name
=
"
订单号
"
,
maxLength
=
200
)
@Length
(
max
=
200
,
message
=
"
订单号
不能超过200个字符"
)
@ExcelProperty
(
"
订单号
"
)
@Schema
(
description
=
"
订单号
"
)
@ExcelAttribute
(
name
=
"
URL
"
,
maxLength
=
200
)
@Length
(
max
=
200
,
message
=
"
URL
不能超过200个字符"
)
@ExcelProperty
(
"
URL
"
)
@Schema
(
description
=
"
URL
"
)
private
String
url
;
/**
* 提交人
...
...
@@ -85,7 +84,7 @@ public class MsgInfo extends BaseEntity {
@Length
(
max
=
1
,
message
=
"0 未阅 1 已阅不能超过1个字符"
)
@ExcelProperty
(
"0 未阅 1 已阅"
)
@Schema
(
description
=
"0 未阅 1 已阅"
)
private
String
read
;
private
String
read
Status
;
/**
* 提醒人
*/
...
...
@@ -95,4 +94,14 @@ public class MsgInfo extends BaseEntity {
@Schema
(
description
=
"提醒人"
)
private
String
alertUser
;
private
LocalDateTime
createTime
;
/**
* 项目名称
*/
@ExcelAttribute
(
name
=
"项目名称"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"项目名称不能超过1个字符"
)
@ExcelProperty
(
"项目名称"
)
@Schema
(
description
=
"项目名称"
)
private
String
domainName
;
}
yifu-msg/yifu-msg-biz/src/main/java/com/yifu/cloud/plus/v1/msg/constant/MesConstants.java
View file @
3f614dd9
...
...
@@ -10,13 +10,9 @@ import org.springframework.stereotype.Component;
* @Description
* @Version 1.0
*/
@Component
@PropertySource
(
"classpath:application.yml"
)
@ConfigurationProperties
(
value
=
"ekp"
,
ignoreInvalidFields
=
false
)
public
interface
MesConstants
{
/**
* 項目订单URL
**/
String
orderUrl
=
""
;
String
orderUrl
=
"http://ekp.wanxinwork.com/sys/modeling/main/modelingAppView.do?method=modelView&listviewId=185943766d6e9ff50d8fea1414eaf460&fdId="
;
}
yifu-msg/yifu-msg-biz/src/main/java/com/yifu/cloud/plus/v1/msg/controller/MsgInfoController.java
View file @
3f614dd9
...
...
@@ -86,7 +86,7 @@ public class MsgInfoController {
@Operation
(
summary
=
"每29分钟刷新 超时待办提醒"
,
description
=
"每29分钟刷新 超时待办提醒"
)
@Inner
@PostMapping
(
"/inner/updateOverTimeMsg"
)
public
void
everyMonthUpdateSalaryStatus
()
{
public
void
updateOverTimeMsg
()
{
msgInfoService
.
updateOverTimeMsg
();
}
}
yifu-msg/yifu-msg-biz/src/main/java/com/yifu/cloud/plus/v1/msg/service/impl/MsgInfoServiceImpl.java
View file @
3f614dd9
...
...
@@ -16,6 +16,7 @@
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
msg
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -30,9 +31,14 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
*
*
...
...
@@ -82,7 +88,9 @@ public class MsgInfoServiceImpl extends ServiceImpl<MsgInfoMapper, MsgInfo> impl
if
(
Common
.
isNotNull
(
save
)){
save
.
setCreateTime
(
LocalDateTime
.
now
());
save
.
setUrl
(
MesConstants
.
orderUrl
+
vo
.
getOrderId
());
save
.
setAlertUser
(
vo
.
getAlertUser
().
replace
(
"\""
,
""
));
baseMapper
.
insert
(
save
);
log
.
error
(
JSON
.
toJSONString
(
save
));
}
}
// 变更提醒
...
...
@@ -92,7 +100,9 @@ public class MsgInfoServiceImpl extends ServiceImpl<MsgInfoMapper, MsgInfo> impl
save
.
setCreateTime
(
LocalDateTime
.
now
());
save
.
setUrl
(
MesConstants
.
orderUrl
+
save
.
getOrderId
());
save
.
setAlertType
(
CommonConstants
.
TWO_STRING
);
save
.
setAlertUser
(
vo
.
getAlertUser
().
replace
(
"\""
,
""
));
baseMapper
.
insert
(
save
);
log
.
error
(
JSON
.
toJSONString
(
save
));
}
}
}
...
...
@@ -108,18 +118,55 @@ public class MsgInfoServiceImpl extends ServiceImpl<MsgInfoMapper, MsgInfo> impl
* @Param
* @return
**/
@Transactional
@Override
public
void
updateOverTimeMsg
()
{
// 1. 删除未读的超时,如果有继续生成
baseMapper
.
delete
(
Wrappers
.<
MsgInfo
>
query
().
lambda
()
.
eq
(
MsgInfo:
:
getReadStatus
,
CommonConstants
.
ZERO_STRING
)
.
eq
(
MsgInfo:
:
getAlertType
,
CommonConstants
.
ONE_STRING
));
List
<
MsgInfo
>
temps
=
baseMapper
.
selectList
(
Wrappers
.<
MsgInfo
>
query
().
lambda
()
.
eq
(
MsgInfo:
:
getAlertType
,
CommonConstants
.
ONE_STRING
)
.
eq
(
MsgInfo:
:
getReadStatus
,
CommonConstants
.
ONE_STRING
));
Map
<
String
,
MsgInfo
>
tempMap
=
new
HashMap
<>();
if
(
Common
.
isNotNull
(
temps
)){
for
(
MsgInfo
msg:
temps
){
tempMap
.
put
(
msg
.
getOrderNo
(),
msg
);
}
}
List
<
MsgInfo
>
msgInfos
=
baseMapper
.
getMsgByTask
();
List
<
MsgInfo
>
saves
=
new
ArrayList
<>();
if
(
Common
.
isNotNull
(
msgInfos
)){
//1.先删除
baseMapper
.
delete
(
Wrappers
.<
MsgInfo
>
query
().
lambda
().
eq
(
MsgInfo:
:
getAlertType
,
CommonConstants
.
ONE_STRING
));
//2. 重新生成
MsgInfo
temp
;
for
(
MsgInfo
ms:
msgInfos
){
temp
=
tempMap
.
get
(
ms
.
getOrderNo
());
if
(
Common
.
isNotNull
(
temp
)){
tempMap
.
remove
(
ms
.
getOrderNo
());
continue
;
}
ms
.
setCreateTime
(
LocalDateTime
.
now
());
ms
.
setUrl
(
MesConstants
.
orderUrl
+
ms
.
getOrderId
());
saves
.
add
(
ms
);
}
if
(
Common
.
isNotNull
(
tempMap
)){
this
.
removeByIds
(
tempMap
.
values
());
}
if
(
Common
.
isNotNull
(
saves
)){
this
.
saveBatch
(
saves
);
// 发给李鑫
for
(
MsgInfo
sv:
saves
){
sv
.
setId
(
null
);
sv
.
setAlertUser
(
"lixin"
);
}
this
.
saveBatch
(
saves
);
// 发给高叶卉
for
(
MsgInfo
sv:
saves
){
sv
.
setId
(
null
);
sv
.
setAlertUser
(
"gaoyh"
);
}
this
.
saveBatch
(
saves
);
}
this
.
saveBatch
(
msgInfos
);
}
}
}
yifu-msg/yifu-msg-biz/src/main/resources/application.yml
View file @
3f614dd9
...
...
@@ -26,6 +26,7 @@ mybatis-plus:
logic-not-delete-value
:
0
configuration
:
map-underscore-to-camel-case
:
true
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
spring
:
application
:
...
...
@@ -62,7 +63,4 @@ springdoc:
#分组名
-
group
:
mail
#按包路径匹配
packagesToScan
:
com.yifu.cloud.plus.v1.msg.controller
ekp
:
orderUrl
:
http://36.7.147.19:28080/sys/modeling/main/modelingAppView.do?method=modelView&listviewId=185943766d6e9ff50d8fea1414eaf460&fdId=
\ No newline at end of file
packagesToScan
:
com.yifu.cloud.plus.v1.msg.controller
\ No newline at end of file
yifu-msg/yifu-msg-biz/src/main/resources/mapper/MsgInfoMapper.xml
View file @
3f614dd9
...
...
@@ -30,8 +30,9 @@
<result
property=
"orderNo"
column=
"ORDER_NO"
/>
<result
property=
"alertType"
column=
"ALERT_TYPE"
/>
<result
property=
"createTime"
column=
"CREATE_TIME"
/>
<result
property=
"read
"
column=
"READ
"
/>
<result
property=
"read
Status"
column=
"READ_STATUS
"
/>
<result
property=
"alertUser"
column=
"ALERT_USER"
/>
<result
property=
"domainName"
column=
"DOMAIN_NAME"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.ID,
...
...
@@ -40,8 +41,9 @@
a.ORDER_NO,
a.ALERT_TYPE,
a.CREATE_TIME,
a.READ,
a.ALERT_USER
a.READ_STATUS,
a.ALERT_USER,
a.DOMAIN_NAME
</sql>
<sql
id=
"msgInfo_where"
>
<if
test=
"msgInfo != null"
>
...
...
@@ -63,8 +65,8 @@
<if
test=
"msgInfo.createTime != null"
>
AND a.CREATE_TIME = #{msgInfo.createTime}
</if>
<if
test=
"msgInfo.read
!= null and msgInfo.read
.trim() != ''"
>
AND a.READ
= #{msgInfo.read
}
<if
test=
"msgInfo.read
Status != null and msgInfo.readStatus
.trim() != ''"
>
AND a.READ
_STATUS = #{msgInfo.readStatus
}
</if>
<if
test=
"msgInfo.alertUser != null and msgInfo.alertUser.trim() != ''"
>
AND a.ALERT_USER = #{msgInfo.alertUser}
...
...
@@ -93,31 +95,38 @@
<select
id=
"getMsgByOrderId"
resultMap=
"msgInfoMap"
>
SELECT
p.fd_name alertUser,
a.fd_3ac901c5184274 orderNo,
a.fd_id orderId,
'0' as alertType
a.fd_3ac901ba3b9d3e domain_name,
p.fd_name ALERT_USER,
a.fd_3ac901c5184274 ORDER_NO,
a.fd_id ORDER_ID,
'0' as ALERT_TYPE
FROM
ekp_ea33075576149bb8a4f5 a
LEFT JOIN sys_org_element p on a.fd_3b0aff6781fa86 = p.fd_id
WHERE
a.
ORDER_ID
= #{orderId} limit 1
a.
fd_id
= #{orderId} limit 1
</select>
<!-- 加急(2-3小时)|1 紧急(3-5小时)|4 常规(5-8小时)|7 -->
<select
id=
"getMsgByTask"
resultMap=
"msgInfoMap"
>
select
<!-- 加急(2-3小时)|1 紧急(3-5小时)|4 常规(5-8小时)|7 -->
o.fd_name alertUser,
b1.fd_3ac901c5184274 orderNo,
b1.fd_id orderId,
'1' as alertType
FROM lbpm_workitem a
LEFT JOIN lbpm_node e on e.fd_id= a.fd_node_id
LEFT JOIN lbpm_process p on p.fd_id=e.fd_process_id
LEFT JOIN ekp_ea33075576149bb8a4f5 b1 on p.fd_model_id=b1.fd_id
LEFT JOIN sys_org_element o on o.fd_id=fd_expected_id
where
e.fd_fact_node_id='N5' and b1.fd_id is not null;
and DATE_ADD(NOW(),INTERVAL 30 MINUTE) > IF(b1.fd_3b779ba2168eea=1,DATE_ADD(a.fd_start_date,INTERVAL 3 HOUR),IF(b1.fd_3b779ba2168eea=4,DATE_ADD(a.fd_start_date,INTERVAL 5 HOUR),DATE_ADD(a.fd_start_date,INTERVAL 8 HOUR)))
SELECT * from (
SELECT
b1.fd_3ac901ba3b9d3e domain_name,
o.fd_no ALERT_USER,
b1.fd_3ac901c5184274 ORDER_NO,
b1.fd_id ORDER_ID,
'1' AS ALERT_TYPE,
DATE_ADD(NOW(), INTERVAL 30 MINUTE) as 'date1',
IF(b1.fd_3b779ba2168eea = 1,DATE_ADD(a.fd_start_date,INTERVAL 3 HOUR),IF(b1.fd_3b779ba2168eea = 4,DATE_ADD(a.fd_start_date,INTERVAL 5 HOUR),DATE_ADD(a.fd_start_date,INTERVAL 8 HOUR))) as 'date2'
FROM
lbpm_workitem a
LEFT JOIN lbpm_node e ON e.fd_id = a.fd_node_id
LEFT JOIN lbpm_process p ON p.fd_id = e.fd_process_id
LEFT JOIN ekp_ea33075576149bb8a4f5 b1 ON p.fd_model_id = b1.fd_id
LEFT JOIN sys_org_element o ON o.fd_id = fd_expected_id
WHERE
e.fd_fact_node_id = 'N5'
AND b1.fd_id IS NOT NULL
) x
where x.date1 > date2
</select>
</mapper>
yifu-order/yifu-order-api/src/main/java/com/yifu/cloud/plus/v1/yifu/order/vo/OrderAttVo.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
order
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.Serializable
;
@Data
public
class
OrderAttVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6620652346415180825L
;
/**
* 订单编号
*/
@Schema
(
description
=
"订单编号"
)
private
String
orderNo
;
/**
* 订标识
*/
@Schema
(
description
=
"唯一标识"
)
private
String
file1
;
/**
* 附件
*/
@Schema
(
description
=
"附件"
)
private
MultipartFile
[]
file
;
}
yifu-order/yifu-order-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/order/controller/EkpOrderController.java
View file @
3f614dd9
...
...
@@ -3,13 +3,17 @@ package com.yifu.cloud.plus.v1.yifu.order.controller;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.order.service.TOrderService
;
import
com.yifu.cloud.plus.v1.yifu.order.vo.OrderAddVO
;
import
com.yifu.cloud.plus.v1.yifu.order.vo.OrderAttVo
;
import
com.yifu.cloud.plus.v1.yifu.order.vo.OrderReplyAddVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
...
...
@@ -23,6 +27,7 @@ import java.io.IOException;
@RequiredArgsConstructor
@RequestMapping
(
"/ekp/order"
)
@Tag
(
name
=
"接收ekp订单相关"
)
@Slf4j
public
class
EkpOrderController
{
@Resource
private
TOrderService
tOrderService
;
...
...
@@ -38,9 +43,27 @@ public class EkpOrderController {
@Schema
(
description
=
"接收处理ekp订单"
)
@PostMapping
(
value
=
"/receiveOrder"
)
public
R
receiveOrder
(
OrderAddVO
vo
)
throws
IOException
{
log
.
error
(
"vo.getCreateTime()111="
+
vo
.
getCreateTime
());
log
.
error
(
"vo.getCreateTime()222="
+
vo
.
getDeptNo
());
log
.
error
(
"vo.getCreateTime()333="
+
vo
.
getOrderNo
());
return
tOrderService
.
receiveOrder
(
vo
);
}
/**
* 接收处理ekp
*
* @author licancan
* @param vo
* @return {@link R}
* @throws IOException
*/
@Schema
(
description
=
"接收处理ekp附件"
)
@PostMapping
(
value
=
"/receiveOrderNew"
)
public
R
receiveOrder
(
OrderAttVo
vo
)
throws
IOException
{
return
tOrderService
.
receiveOrderNew
(
vo
);
}
/**
* 接收处理ekp订单回复
*
...
...
yifu-order/yifu-order-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/order/service/TOrderService.java
View file @
3f614dd9
...
...
@@ -99,6 +99,18 @@ public interface TOrderService extends IService<TOrder> {
*/
R
receiveOrder
(
OrderAddVO
vo
)
throws
IOException
;
/**
* 接收处理ekp附件
*
* @author licancan
* @param vo
* @return {@link R}
* @throws IOException
*/
R
receiveOrderNew
(
OrderAttVo
vo
)
throws
IOException
;
/**
* 接收处理ekp订单回复
*
...
...
yifu-order/yifu-order-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/order/service/impl/TOrderServiceImpl.java
View file @
3f614dd9
This diff is collapsed.
Click to expand it.
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/entity/TAverageSalary.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
entity
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.write.style.HeadFontStyle
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* 前12月平均工资(MVP-TDC接口)
* 保留上月与本月,删除上上月数据,用以比对差异部分,推送到TDC
*
* @author hgw
* @date 2023-6-19 15:54:50
*/
@Getter
@Setter
@TableName
(
"t_average_salary"
)
@Tag
(
name
=
"前12月平均工资"
)
public
class
TAverageSalary
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* id
*/
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
value
=
"id"
)
private
String
id
;
/**
* 身份证号
*/
@ExcelAttribute
(
name
=
"身份证号"
,
maxLength
=
25
)
@Length
(
max
=
25
,
message
=
"身份证号不能超过25个字符"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"身份证号"
)
private
String
empIdcard
;
/**
* 应发薪酬(劳务费、稿酬)
*/
@ExcelAttribute
(
name
=
"应发薪酬"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"应发薪酬"
)
private
BigDecimal
averageSalary
;
/**
* 结算月
*/
@ExcelAttribute
(
name
=
"生成月"
,
isNotEmpty
=
true
,
errorInfo
=
"生成月不能为空"
,
maxLength
=
6
)
@NotBlank
(
message
=
"生成月不能为空"
)
@Length
(
max
=
6
,
message
=
"生成月不能超过20个字符"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"生成月"
)
private
String
createMonth
;
}
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TAverageSalaryVo.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.write.style.HeadFontStyle
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* 前12月平均工资(MVP-TDC接口)
* 保留上月与本月,删除上上月数据,用以比对差异部分,推送到TDC
*
* @author hgw
* @date 2023-6-19 15:54:50
*/
@Data
public
class
TAverageSalaryVo
implements
Serializable
{
/**
* 身份证号
*/
@ExcelAttribute
(
name
=
"身份证号"
,
maxLength
=
25
)
@Length
(
max
=
25
,
message
=
"身份证号不能超过25个字符"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"身份证号"
)
private
String
empIdcard
;
/**
* 应发薪酬(劳务费、稿酬)
*/
@ExcelAttribute
(
name
=
"应发薪酬"
)
@HeadFontStyle
(
fontHeightInPoints
=
11
)
@ExcelProperty
(
"应发薪酬"
)
private
BigDecimal
averageSalary
;
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/controller/TAverageSalaryController.java
0 → 100644
View file @
3f614dd9
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
controller
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ResultConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.redis.RedisDistributedLock
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TAverageSalaryService
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TAverageSalaryVo
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* 前12月平均工资(MVP-TDC接口)
*
* @author hgw
* @date 2023-6-19 16:27:44
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/taveragesalary"
)
@Tag
(
name
=
"前12月平均工资(MVP-TDC接口)"
)
public
class
TAverageSalaryController
{
private
final
TAverageSalaryService
tAverageSalaryService
;
/**
* @Description: 定时任务-前12月平均工资
* @Author: hgw
* @Date: 2023-6-19 16:29:50
* @return: com.yifu.cloud.v1.common.core.util.R<java.lang.String>
**/
@Inner
@Operation
(
description
=
"定时任务-前12月平均工资"
)
@PostMapping
(
"/inner/doCreateAverageSalary"
)
public
void
doCreateAverageSalary
()
{
tAverageSalaryService
.
createAverageSalary
();
}
/**
* @Author fxj
* @Description 获取-前12月平均工资数据
* @Date 10:20 2023/6/20
* @Param
* @return
**/
@Operation
(
description
=
"获取-前12月平均工资数据"
)
@GetMapping
(
"/getAverageSalary"
)
public
R
<
List
<
TAverageSalaryVo
>>
getAverageSalary
(
String
idNum
)
{
// 获取redis分布式事务锁
String
key
=
CacheConstants
.
PAYMENT_DISPATCH_BATCH_ADD_IMPORT
+
CommonConstants
.
DOWN_LINE_STRING
+
"getAverageSalary"
;
String
requestId
;
try
{
requestId
=
RedisDistributedLock
.
getLock
(
key
,
"10"
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
ResultConstants
.
NO_GETLOCK_DATA
+
CommonConstants
.
DOWN_LINE_STRING
+
e
.
getMessage
());
}
try
{
if
(
Common
.
isNotNull
(
requestId
))
{
//主动释放锁
return
tAverageSalaryService
.
getAverageSalary
(
idNum
);
}
else
{
return
R
.
failed
(
ResultConstants
.
NO_GETLOCK_DATA
);
}
}
finally
{
//主动释放锁
RedisDistributedLock
.
unlock
(
key
,
requestId
);
}
}
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/mapper/TAverageSalaryMapper.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TAverageSalary
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TAverageSalaryVo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 前12月平均工资(MVP-TDC接口)
*
* @author hgw
* @date 2023-6-19 16:24:41
*/
@Mapper
public
interface
TAverageSalaryMapper
extends
BaseMapper
<
TAverageSalary
>
{
/**
* 删除多余的数据
*
* @return
*/
int
deleteByCreateMonth
();
/**
* @param
* @Description: 新增新数据
* @Author: hgw
* @Date: 2023/6/19 16:10
* @return: int
**/
int
insertAverageSalary
();
/**
* @return
* @Author fxj
* @Description 获取-前12月平均工资数据 取值增量
* @Date 10:26 2023/6/20
* @Param
**/
List
<
TAverageSalaryVo
>
getAverageSalary
(
@Param
(
"idNum"
)
List
<
String
>
idNum
);
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/TAverageSalaryService.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TAverageSalary
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TAverageSalaryVo
;
import
java.util.List
;
/**
* @Author hgw
* @Description 前12月平均工资(MVP-TDC接口)
* @Date 2023-6-19 16:25:54
**/
public
interface
TAverageSalaryService
extends
IService
<
TAverageSalary
>
{
/**
* @Description: 删除本月与上上月数据,生成本月数据
* @Author: hgw
* @Date: 2023/6/19 16:26
* @return: void
**/
void
createAverageSalary
();
R
<
List
<
TAverageSalaryVo
>>
getAverageSalary
(
String
idNum
);
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/impl/TAverageSalaryServiceImpl.java
0 → 100644
View file @
3f614dd9
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TAverageSalary
;
import
com.yifu.cloud.plus.v1.yifu.salary.mapper.TAverageSalaryMapper
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TAverageSalaryService
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TAverageSalaryVo
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Author hgw
* @Description 前12月平均工资(MVP-TDC接口)
* @Date 2023-6-19 16:25:16
**/
@Service
(
"tAverageSalaryService"
)
public
class
TAverageSalaryServiceImpl
extends
ServiceImpl
<
TAverageSalaryMapper
,
TAverageSalary
>
implements
TAverageSalaryService
{
/**
* @Description: 删除本月与上上月数据,生成本月数据
* @Author: hgw
* @Date: 2023/6/19 16:32
* @return: void
**/
@Override
public
void
createAverageSalary
()
{
baseMapper
.
deleteByCreateMonth
();
baseMapper
.
insertAverageSalary
();
}
/**
* @return
* @Author fxj
* @Description 获取-前12月平均工资数据
* @Date 10:25 2023/6/20
* @Param
**/
@Override
public
R
<
List
<
TAverageSalaryVo
>>
getAverageSalary
(
String
idNum
)
{
return
R
.
ok
(
baseMapper
.
getAverageSalary
(
Common
.
getList
(
idNum
)),
CommonConstants
.
RESULT_DATA_SUCESS
);
}
}
yifu-salary/yifu-salary-biz/src/main/resources/application.yml
View file @
3f614dd9
...
...
@@ -39,6 +39,7 @@ security:
-
/v3/api-docs
-
/actuator/**
-
/swagger-ui/**
-
/taveragesalary/getAverageSalary
...
...
yifu-salary/yifu-salary-biz/src/main/resources/mapper/TAverageSalaryMapper.xml
0 → 100644
View file @
3f614dd9
<?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=
"com.yifu.cloud.plus.v1.yifu.salary.mapper.TAverageSalaryMapper"
>
<resultMap
id=
"tAverageSalaryMap"
type=
"com.yifu.cloud.plus.v1.yifu.salary.entity.TAverageSalary"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"empIdcard"
column=
"EMP_IDCARD"
/>
<result
property=
"averageSalary"
column=
"AVERAGE_SALARY"
/>
<result
property=
"createMonth"
column=
"CREATE_MONTH"
/>
</resultMap>
<resultMap
id=
"tAverageSalaryVoMap"
type=
"com.yifu.cloud.plus.v1.yifu.salary.vo.TAverageSalaryVo"
>
<result
property=
"empIdcard"
column=
"EMP_IDCARD"
/>
<result
property=
"averageSalary"
column=
"AVERAGE_SALARY"
/>
</resultMap>
<!-- 删除不需要的数据 -->
<delete
id=
"deleteByCreateMonth"
>
delete
from t_average_salary
where CREATE_MONTH in (
DATE_FORMAT(now(), '%Y%m'), DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 MONTH), '%Y%m')
)
</delete>
<!-- 生成需要的数据 -->
<insert
id=
"insertAverageSalary"
>
insert into t_average_salary
select CONCAT(DATE_FORMAT(now(), '%Y%m-'), a.ID) ID
, a.EMP_IDCARD
, round(sum(a.RELAY_SALARY) / ifnull(count(DISTINCT a.SALARY_MONTH), 1), 2) AVERAGE_SALARY
, DATE_FORMAT(now(), '%Y%m') CREATE_MONTH
from t_salary_account a
where a.SALARY_MONTH >= date_format(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%Y%m')
GROUP BY a.EMP_IDCARD
</insert>
<select
id=
"getAverageSalary"
resultMap=
"tAverageSalaryVoMap"
>
select x.* from
(select a.EMP_IDCARD,a.AVERAGE_SALARY from view_average_cur_month a) x
LEFT JOIN
(select a.EMP_IDCARD,a.AVERAGE_SALARY from view_average_last_month a) y
on x.EMP_IDCARD=y.EMP_IDCARD
where (x.AVERAGE_SALARY
<![CDATA[ <> ]]>
IFNULL(y.AVERAGE_SALARY,-1))
<if
test=
"idNum != null and idNum.size > 0"
>
AND x.EMP_IDCARD in
<foreach
item=
"item"
index=
"index"
collection=
"idNum"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
</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