Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
361e9d03
提交
361e9d03
authored
12月 12, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
功能优化
上级
f72fc5e4
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
86 行增加
和
15 行删除
+86
-15
ApplyStatus.java
...rc/main/java/org/dromara/server/constant/ApplyStatus.java
+3
-2
ApplyController.java
...n/java/org/dromara/server/controller/ApplyController.java
+18
-1
ProcessApproveBo.java
...n/java/org/dromara/server/domain/bo/ProcessApproveBo.java
+2
-0
ApplyVo.java
...r/src/main/java/org/dromara/server/domain/vo/ApplyVo.java
+6
-1
IProcessProgressService.java
...a/org/dromara/server/service/IProcessProgressService.java
+10
-0
ApplyServiceImpl.java
...ava/org/dromara/server/service/impl/ApplyServiceImpl.java
+32
-11
ProcessProgressServiceImpl.java
...omara/server/service/impl/ProcessProgressServiceImpl.java
+15
-0
没有找到文件。
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/ApplyStatus.java
浏览文件 @
361e9d03
...
@@ -12,8 +12,9 @@ public enum ApplyStatus {
...
@@ -12,8 +12,9 @@ public enum ApplyStatus {
//待审核,已完成,已拒绝
//待审核,已完成,已拒绝
WAIT_AUDIT
(
"0"
,
"待审核"
),
WAIT_AUDIT
(
"0"
,
"待审核"
),
FINISH
(
"1"
,
"已完成"
),
AUDITING
(
"1"
,
"审批中"
),
REFUSE
(
"2"
,
"已拒绝"
);
FINISH
(
"2"
,
"已完成"
),
REFUSE
(
"3"
,
"已拒绝"
);
private
final
String
code
;
private
final
String
code
;
private
final
String
desc
;
private
final
String
desc
;
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/ApplyController.java
浏览文件 @
361e9d03
...
@@ -16,10 +16,12 @@ import org.dromara.common.mybatis.core.page.PageQuery;
...
@@ -16,10 +16,12 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.server.constant.ProcessKey
;
import
org.dromara.server.domain.bo.ApplyApproveBo
;
import
org.dromara.server.domain.bo.ApplyApproveBo
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
org.dromara.server.domain.vo.ApplyVo
;
import
org.dromara.server.domain.vo.ApplyVo
;
import
org.dromara.server.service.IApplyService
;
import
org.dromara.server.service.IApplyService
;
import
org.dromara.server.service.IProcessProgressService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -39,11 +41,11 @@ import java.util.List;
...
@@ -39,11 +41,11 @@ import java.util.List;
public
class
ApplyController
extends
BaseController
{
public
class
ApplyController
extends
BaseController
{
private
final
IApplyService
applyService
;
private
final
IApplyService
applyService
;
private
final
IProcessProgressService
processProgressService
;
/**
/**
* 查询出差申请列表
* 查询出差申请列表
*/
*/
@SaCheckPermission
(
"server:apply:list"
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
<
ApplyVo
>
list
(
ApplyBo
bo
,
PageQuery
pageQuery
)
{
public
TableDataInfo
<
ApplyVo
>
list
(
ApplyBo
bo
,
PageQuery
pageQuery
)
{
return
applyService
.
queryPageList
(
bo
,
pageQuery
);
return
applyService
.
queryPageList
(
bo
,
pageQuery
);
...
@@ -109,6 +111,11 @@ public class ApplyController extends BaseController {
...
@@ -109,6 +111,11 @@ public class ApplyController extends BaseController {
@RepeatSubmit
()
@RepeatSubmit
()
@PostMapping
(
"/approve"
)
@PostMapping
(
"/approve"
)
public
R
<
Void
>
approve
(
@Validated
(
AddGroup
.
class
)
@RequestBody
ApplyApproveBo
bo
)
{
public
R
<
Void
>
approve
(
@Validated
(
AddGroup
.
class
)
@RequestBody
ApplyApproveBo
bo
)
{
List
<
Long
>
userIdList
=
processProgressService
.
getApproveUserList
(
ProcessKey
.
PROCESS_KEY_TRAVEL
.
getKey
());
Long
userId
=
LoginHelper
.
getUserId
();
if
(!
userIdList
.
contains
(
userId
))
{
throw
new
RuntimeException
(
"您没有审批权限!"
);
}
return
toAjax
(
applyService
.
approve
(
bo
));
return
toAjax
(
applyService
.
approve
(
bo
));
}
}
...
@@ -124,4 +131,14 @@ public class ApplyController extends BaseController {
...
@@ -124,4 +131,14 @@ public class ApplyController extends BaseController {
@PathVariable
Long
[]
ids
)
{
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
applyService
.
deleteWithValidByIds
(
List
.
of
(
ids
),
true
));
return
toAjax
(
applyService
.
deleteWithValidByIds
(
List
.
of
(
ids
),
true
));
}
}
/**
* 判断是否有权限审批
*/
@GetMapping
(
"/isPermission"
)
public
R
<
Boolean
>
isPermission
()
{
List
<
Long
>
userIdList
=
processProgressService
.
getApproveUserList
(
ProcessKey
.
PROCESS_KEY_TRAVEL
.
getKey
());
Long
userId
=
LoginHelper
.
getUserId
();
return
R
.
ok
(
userIdList
.
contains
(
userId
));
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/bo/ProcessApproveBo.java
浏览文件 @
361e9d03
...
@@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotBlank;
...
@@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotBlank;
import
jakarta.validation.constraints.NotNull
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.validate.EditGroup
;
import
org.dromara.common.core.validate.EditGroup
;
import
org.dromara.common.mybatis.core.domain.BaseEntity
;
import
org.dromara.common.mybatis.core.domain.BaseEntity
;
...
@@ -19,6 +20,7 @@ import java.util.Date;
...
@@ -19,6 +20,7 @@ import java.util.Date;
* @date 2024-12-11
* @date 2024-12-11
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@AutoMapper
(
target
=
ProcessApprove
.
class
,
reverseConvertGenerate
=
false
)
@AutoMapper
(
target
=
ProcessApprove
.
class
,
reverseConvertGenerate
=
false
)
public
class
ProcessApproveBo
extends
BaseEntity
{
public
class
ProcessApproveBo
extends
BaseEntity
{
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/ApplyVo.java
浏览文件 @
361e9d03
...
@@ -103,5 +103,10 @@ public class ApplyVo implements Serializable {
...
@@ -103,5 +103,10 @@ public class ApplyVo implements Serializable {
/**
/**
* 审批记录
* 审批记录
*/
*/
private
List
<
ApplyApproveVo
>
approveList
;
private
List
<
ProcessApproveVo
>
approveList
;
/**
* 当前审批人
*/
private
List
<
Long
>
currentUserList
;
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/IProcessProgressService.java
浏览文件 @
361e9d03
...
@@ -5,6 +5,7 @@ import org.dromara.server.constant.ProcessApproveStatus;
...
@@ -5,6 +5,7 @@ import org.dromara.server.constant.ProcessApproveStatus;
import
org.dromara.server.domain.ProcessProgress
;
import
org.dromara.server.domain.ProcessProgress
;
import
org.dromara.server.domain.bo.ProcessApproveBo
;
import
org.dromara.server.domain.bo.ProcessApproveBo
;
import
org.dromara.server.domain.bo.ProcessProgressBo
;
import
org.dromara.server.domain.bo.ProcessProgressBo
;
import
org.dromara.server.domain.vo.ProcessApproveVo
;
import
org.dromara.server.domain.vo.ProcessProgressVo
;
import
org.dromara.server.domain.vo.ProcessProgressVo
;
import
java.util.List
;
import
java.util.List
;
...
@@ -60,4 +61,13 @@ public interface IProcessProgressService extends IBaseService<ProcessProgressVo,
...
@@ -60,4 +61,13 @@ public interface IProcessProgressService extends IBaseService<ProcessProgressVo,
*/
*/
List
<
List
<
Long
>>
getCurrentApproveUserList
(
String
processKey
,
List
<
Long
>
relatedIds
);
List
<
List
<
Long
>>
getCurrentApproveUserList
(
String
processKey
,
List
<
Long
>
relatedIds
);
/**
* 获取审批列表
*
* @param processKey 审批key
* @param relatedIds 关联id
* @return 审批列表
*/
List
<
ProcessApproveVo
>
getApproveList
(
String
processKey
,
List
<
Long
>
relatedIds
);
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/ApplyServiceImpl.java
浏览文件 @
361e9d03
...
@@ -2,6 +2,7 @@ package org.dromara.server.service.impl;
...
@@ -2,6 +2,7 @@ package org.dromara.server.service.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.utils.MapstructUtils
;
import
org.dromara.common.core.utils.MapstructUtils
;
...
@@ -13,19 +14,22 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
...
@@ -13,19 +14,22 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.server.constant.ApplyStatus
;
import
org.dromara.server.constant.ApplyStatus
;
import
org.dromara.server.constant.ProcessApproveStatus
;
import
org.dromara.server.constant.ProcessKey
;
import
org.dromara.server.domain.Apply
;
import
org.dromara.server.domain.Apply
;
import
org.dromara.server.domain.ApplyApprove
;
import
org.dromara.server.domain.ApplyPerson
;
import
org.dromara.server.domain.ApplyPerson
;
import
org.dromara.server.domain.bo.ApplyApproveBo
;
import
org.dromara.server.domain.bo.ApplyApproveBo
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
org.dromara.server.domain.bo.ApplyPersonBo
;
import
org.dromara.server.domain.bo.ApplyPersonBo
;
import
org.dromara.server.domain.
vo.ApplyApproveV
o
;
import
org.dromara.server.domain.
bo.ProcessApproveB
o
;
import
org.dromara.server.domain.vo.ApplyPersonVo
;
import
org.dromara.server.domain.vo.ApplyPersonVo
;
import
org.dromara.server.domain.vo.ApplyVo
;
import
org.dromara.server.domain.vo.ApplyVo
;
import
org.dromara.server.domain.vo.ProcessApproveVo
;
import
org.dromara.server.mapper.ApplyApproveMapper
;
import
org.dromara.server.mapper.ApplyApproveMapper
;
import
org.dromara.server.mapper.ApplyMapper
;
import
org.dromara.server.mapper.ApplyMapper
;
import
org.dromara.server.mapper.ApplyPersonMapper
;
import
org.dromara.server.mapper.ApplyPersonMapper
;
import
org.dromara.server.service.IApplyService
;
import
org.dromara.server.service.IApplyService
;
import
org.dromara.server.service.IProcessProgressService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -45,10 +49,9 @@ import java.util.Objects;
...
@@ -45,10 +49,9 @@ import java.util.Objects;
public
class
ApplyServiceImpl
extends
AbstractBaseService
<
ApplyVo
,
ApplyBo
,
Apply
>
implements
IApplyService
{
public
class
ApplyServiceImpl
extends
AbstractBaseService
<
ApplyVo
,
ApplyBo
,
Apply
>
implements
IApplyService
{
private
final
ApplyMapper
baseMapper
;
private
final
ApplyMapper
baseMapper
;
private
final
ApplyPersonMapper
applyPersonMapper
;
private
final
ApplyPersonMapper
applyPersonMapper
;
private
final
ApplyApproveMapper
applyApproveMapper
;
private
final
ApplyApproveMapper
applyApproveMapper
;
private
final
IProcessProgressService
processProgressService
;
@Override
@Override
public
BaseMapperPlus
<
Apply
,
ApplyVo
>
mapper
()
{
public
BaseMapperPlus
<
Apply
,
ApplyVo
>
mapper
()
{
...
@@ -103,12 +106,24 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
...
@@ -103,12 +106,24 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
if
(!
StringUtils
.
equals
(
apply
.
getStatus
(),
ApplyStatus
.
WAIT_AUDIT
.
getCode
()))
{
if
(!
StringUtils
.
equals
(
apply
.
getStatus
(),
ApplyStatus
.
WAIT_AUDIT
.
getCode
()))
{
throw
new
RuntimeException
(
"该申请不是待审批状态,不能进行审批!"
);
throw
new
RuntimeException
(
"该申请不是待审批状态,不能进行审批!"
);
}
}
bo
.
setApproveUserId
(
LoginHelper
.
getUserId
());
bo
.
setApproveName
(
LoginHelper
.
getLoginUser
().
getNickname
());
bo
.
setApproveTime
(
new
Date
());
applyApproveMapper
.
insert
(
MapstructUtils
.
convert
(
bo
,
ApplyApprove
.
class
));
apply
.
setStatus
(
bo
.
getPass
()
?
ApplyStatus
.
FINISH
.
getCode
()
:
ApplyStatus
.
REFUSE
.
getCode
());
//审批
processProgressService
.
approve
(
new
ProcessApproveBo
()
.
setRelatedId
(
bo
.
getApplyId
())
.
setProcessConfigKey
(
ProcessKey
.
PROCESS_KEY_TRAVEL
.
getKey
())
.
setPass
(
bo
.
getPass
())
.
setApproveDesc
(
bo
.
getApproveDesc
()));
//更新状态
ProcessApproveStatus
approveStatus
=
processProgressService
.
getApproveStatus
(
ProcessKey
.
PROCESS_KEY_TRAVEL
.
getKey
(),
bo
.
getApplyId
());
if
(
StringUtils
.
equals
(
approveStatus
.
name
(),
ProcessApproveStatus
.
END
.
name
()))
{
apply
.
setStatus
(
ApplyStatus
.
FINISH
.
getCode
());
}
else
if
(
StringUtils
.
equals
(
approveStatus
.
name
(),
ProcessApproveStatus
.
REJECT
.
name
()))
{
apply
.
setStatus
(
ApplyStatus
.
REFUSE
.
getCode
());
}
else
{
apply
.
setStatus
(
ApplyStatus
.
AUDITING
.
getCode
());
}
baseMapper
.
updateById
(
apply
);
baseMapper
.
updateById
(
apply
);
return
true
;
return
true
;
}
}
...
@@ -120,12 +135,18 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
...
@@ -120,12 +135,18 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
List
<
Long
>
applyIds
=
StreamUtils
.
toList
(
list
,
ApplyVo:
:
getId
);
List
<
Long
>
applyIds
=
StreamUtils
.
toList
(
list
,
ApplyVo:
:
getId
);
applyIds
=
CollectionUtil
.
isEmpty
(
applyIds
)
?
List
.
of
(-
1L
)
:
applyIds
;
applyIds
=
CollectionUtil
.
isEmpty
(
applyIds
)
?
List
.
of
(-
1L
)
:
applyIds
;
//查询审批记录
//查询审批记录
List
<
ApplyApproveVo
>
approveList
=
applyApproveMapper
.
selectVoList
(
new
LambdaQueryWrapper
<
ApplyApprove
>().
in
(
ApplyApprove:
:
getApplyId
,
applyIds
));
List
<
ProcessApproveVo
>
approveList
=
processProgressService
.
getApproveList
(
ProcessKey
.
PROCESS_KEY_TRAVEL
.
getKey
(),
applyIds
);
//获取当前审批人信息
List
<
List
<
Long
>>
currentApproveUserList
=
processProgressService
.
getCurrentApproveUserList
(
ProcessKey
.
PROCESS_KEY_TRAVEL
.
getKey
(),
applyIds
);
//查询出行人
//查询出行人
List
<
ApplyPersonVo
>
personList
=
applyPersonMapper
.
selectVoList
(
new
LambdaQueryWrapper
<
ApplyPerson
>().
in
(
ApplyPerson:
:
getApplyId
,
applyIds
));
List
<
ApplyPersonVo
>
personList
=
applyPersonMapper
.
selectVoList
(
new
LambdaQueryWrapper
<
ApplyPerson
>().
in
(
ApplyPerson:
:
getApplyId
,
applyIds
));
List
<
Long
>
finalApplyIds
=
applyIds
;
list
.
forEach
(
vo
->
{
list
.
forEach
(
vo
->
{
vo
.
setPersonList
(
StreamUtils
.
filter
(
personList
,
p
->
Objects
.
equals
(
p
.
getApplyId
(),
vo
.
getId
())));
vo
.
setPersonList
(
StreamUtils
.
filter
(
personList
,
p
->
Objects
.
equals
(
p
.
getApplyId
(),
vo
.
getId
())));
vo
.
setApproveList
(
StreamUtils
.
filter
(
approveList
,
a
->
Objects
.
equals
(
a
.
getApplyId
(),
vo
.
getId
())));
vo
.
setApproveList
(
StreamUtils
.
filter
(
approveList
,
a
->
Objects
.
equals
(
a
.
getRelatedId
(),
vo
.
getId
())));
if
(
CollectionUtils
.
isNotEmpty
(
currentApproveUserList
))
{
vo
.
setCurrentUserList
(
currentApproveUserList
.
get
(
finalApplyIds
.
indexOf
(
vo
.
getId
())));
}
});
});
return
page
;
return
page
;
}
}
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/ProcessProgressServiceImpl.java
浏览文件 @
361e9d03
...
@@ -21,6 +21,7 @@ import org.dromara.server.domain.ProcessProgress;
...
@@ -21,6 +21,7 @@ import org.dromara.server.domain.ProcessProgress;
import
org.dromara.server.domain.bo.ProcessApproveBo
;
import
org.dromara.server.domain.bo.ProcessApproveBo
;
import
org.dromara.server.domain.bo.ProcessProgressBo
;
import
org.dromara.server.domain.bo.ProcessProgressBo
;
import
org.dromara.server.domain.vo.Process
;
import
org.dromara.server.domain.vo.Process
;
import
org.dromara.server.domain.vo.ProcessApproveVo
;
import
org.dromara.server.domain.vo.ProcessProgressVo
;
import
org.dromara.server.domain.vo.ProcessProgressVo
;
import
org.dromara.server.mapper.ProcessApproveMapper
;
import
org.dromara.server.mapper.ProcessApproveMapper
;
import
org.dromara.server.mapper.ProcessConfigMapper
;
import
org.dromara.server.mapper.ProcessConfigMapper
;
...
@@ -231,4 +232,18 @@ public class ProcessProgressServiceImpl extends AbstractBaseService<ProcessProgr
...
@@ -231,4 +232,18 @@ public class ProcessProgressServiceImpl extends AbstractBaseService<ProcessProgr
progressList
.
stream
().
filter
(
p
->
Objects
.
equals
(
p
.
getRelatedId
(),
relatedId
)).
map
(
ProcessProgress:
:
getApproveUserId
).
collect
(
Collectors
.
toList
())
progressList
.
stream
().
filter
(
p
->
Objects
.
equals
(
p
.
getRelatedId
(),
relatedId
)).
map
(
ProcessProgress:
:
getApproveUserId
).
collect
(
Collectors
.
toList
())
);
);
}
}
@Override
public
List
<
ProcessApproveVo
>
getApproveList
(
String
processKey
,
List
<
Long
>
relatedIds
)
{
if
(
StringUtils
.
isEmpty
(
processKey
))
{
throw
new
RuntimeException
(
"流程配置不存在!"
);
}
if
(
CollectionUtils
.
isEmpty
(
relatedIds
))
{
return
List
.
of
();
}
return
processApproveMapper
.
selectVoList
(
new
LambdaQueryWrapper
<>(
ProcessApprove
.
class
)
.
eq
(
ProcessApprove:
:
getProcessConfigKey
,
processKey
)
.
in
(
ProcessApprove:
:
getRelatedId
,
relatedIds
));
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论