Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
26843e59
提交
26843e59
authored
12月 17, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
差旅配置部分功能实现
上级
df8685be
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
247 行增加
和
46 行删除
+247
-46
ApplySwitch.java
.../java/org/dromara/server/constant/travel/ApplySwitch.java
+3
-3
ApproveSwitch.java
...ava/org/dromara/server/constant/travel/ApproveSwitch.java
+3
-3
BudgetControl.java
...ava/org/dromara/server/constant/travel/BudgetControl.java
+3
-3
ControlMethod.java
...ava/org/dromara/server/constant/travel/ControlMethod.java
+5
-5
TimeLimit.java
...in/java/org/dromara/server/constant/travel/TimeLimit.java
+27
-10
TravelControl.java
...ava/org/dromara/server/constant/travel/TravelControl.java
+3
-3
TripLimit.java
...in/java/org/dromara/server/constant/travel/TripLimit.java
+10
-10
TravelConfigController.java
...org/dromara/server/controller/TravelConfigController.java
+25
-5
TravelApply.java
...c/main/java/org/dromara/server/domain/vo/TravelApply.java
+52
-0
TravelTimeLimitVo.java
.../java/org/dromara/server/domain/vo/TravelTimeLimitVo.java
+27
-0
TravelTripLimitVo.java
.../java/org/dromara/server/domain/vo/TravelTripLimitVo.java
+1
-1
ITravelConfigService.java
...java/org/dromara/server/service/ITravelConfigService.java
+9
-0
TravelConfigServiceImpl.java
.../dromara/server/service/impl/TravelConfigServiceImpl.java
+79
-3
没有找到文件。
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/ApplySwitch.java
浏览文件 @
26843e59
...
@@ -2,7 +2,7 @@ package org.dromara.server.constant.travel;
...
@@ -2,7 +2,7 @@ package org.dromara.server.constant.travel;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
org.dromara.server.domain.
bo.ApplyBo
;
import
org.dromara.server.domain.
Apply
;
import
java.util.function.Predicate
;
import
java.util.function.Predicate
;
...
@@ -23,7 +23,7 @@ public enum ApplySwitch {
...
@@ -23,7 +23,7 @@ public enum ApplySwitch {
private
final
Boolean
code
;
private
final
Boolean
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
Predicate
<
Apply
Bo
>
predicate
;
private
final
Predicate
<
Apply
>
predicate
;
/**
/**
* 检查给定的 ApplyBo 是否满足当前开关的条件。
* 检查给定的 ApplyBo 是否满足当前开关的条件。
...
@@ -31,7 +31,7 @@ public enum ApplySwitch {
...
@@ -31,7 +31,7 @@ public enum ApplySwitch {
* @param apply 要检查的 ApplyBo 对象
* @param apply 要检查的 ApplyBo 对象
* @return 如果满足条件则返回 true,否则返回 false
* @return 如果满足条件则返回 true,否则返回 false
*/
*/
public
void
isMatched
(
Apply
Bo
apply
)
{
public
void
isMatched
(
Apply
apply
)
{
boolean
test
=
predicate
.
test
(
apply
);
boolean
test
=
predicate
.
test
(
apply
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"申请设置已开启,请选择申请单!"
);
throw
new
RuntimeException
(
"申请设置已开启,请选择申请单!"
);
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/ApproveSwitch.java
浏览文件 @
26843e59
...
@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
...
@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import
lombok.Getter
;
import
lombok.Getter
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.server.constant.ApplyStatus
;
import
org.dromara.server.constant.ApplyStatus
;
import
org.dromara.server.domain.
bo.ApplyBo
;
import
org.dromara.server.domain.
Apply
;
import
java.util.function.Predicate
;
import
java.util.function.Predicate
;
...
@@ -25,10 +25,10 @@ public enum ApproveSwitch {
...
@@ -25,10 +25,10 @@ public enum ApproveSwitch {
private
final
Boolean
code
;
private
final
Boolean
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
Predicate
<
Apply
Bo
>
predicate
;
private
final
Predicate
<
Apply
>
predicate
;
public
void
isMatched
(
Apply
Bo
apply
)
{
public
void
isMatched
(
Apply
apply
)
{
boolean
test
=
predicate
.
test
(
apply
);
boolean
test
=
predicate
.
test
(
apply
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"审批设置已开启,请选择正确状态的审批单!"
);
throw
new
RuntimeException
(
"审批设置已开启,请选择正确状态的审批单!"
);
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/BudgetControl.java
浏览文件 @
26843e59
...
@@ -2,7 +2,7 @@ package org.dromara.server.constant.travel;
...
@@ -2,7 +2,7 @@ package org.dromara.server.constant.travel;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
org.dromara.server.domain.
bo.ApplyBo
;
import
org.dromara.server.domain.
Apply
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.function.BiFunction
;
import
java.util.function.BiFunction
;
...
@@ -22,9 +22,9 @@ public enum BudgetControl {
...
@@ -22,9 +22,9 @@ public enum BudgetControl {
private
final
String
code
;
private
final
String
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
BiFunction
<
BigDecimal
,
Apply
Bo
,
Boolean
>
function
;
private
final
BiFunction
<
BigDecimal
,
Apply
,
Boolean
>
function
;
public
void
isMatched
(
BigDecimal
amount
,
Apply
Bo
apply
)
{
public
void
isMatched
(
BigDecimal
amount
,
Apply
apply
)
{
boolean
test
=
function
.
apply
(
amount
,
apply
);
boolean
test
=
function
.
apply
(
amount
,
apply
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"预算管控功能暂未实现,请先现在还不控制功能!"
);
throw
new
RuntimeException
(
"预算管控功能暂未实现,请先现在还不控制功能!"
);
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/ControlMethod.java
浏览文件 @
26843e59
...
@@ -5,7 +5,7 @@ import lombok.Getter;
...
@@ -5,7 +5,7 @@ import lombok.Getter;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.
bo.ApplyPersonBo
;
import
org.dromara.server.domain.
ApplyPerson
;
import
org.dromara.server.domain.vo.TravelControlMethodVo
;
import
org.dromara.server.domain.vo.TravelControlMethodVo
;
import
java.util.List
;
import
java.util.List
;
...
@@ -23,7 +23,7 @@ public enum ControlMethod {
...
@@ -23,7 +23,7 @@ public enum ControlMethod {
//申请人和出行人都可以、 申请人可以、出行人可以,不控制
//申请人和出行人都可以、 申请人可以、出行人可以,不控制
APPLY_AND_TRAVEL
(
"1"
,
"申请人和出行人都可以控制"
,
(
cm
,
personList
)
->
false
),
APPLY_AND_TRAVEL
(
"1"
,
"申请人和出行人都可以控制"
,
(
cm
,
personList
)
->
false
),
ONLY_APPLY
(
"2"
,
"申请人可以控制"
,
(
cm
,
personList
)
->
{
ONLY_APPLY
(
"2"
,
"申请人可以控制"
,
(
cm
,
personList
)
->
{
List
<
String
>
personInfoList
=
StreamUtils
.
toList
(
personList
,
ApplyPerson
Bo
:
:
getIdCard
);
List
<
String
>
personInfoList
=
StreamUtils
.
toList
(
personList
,
ApplyPerson:
:
getIdCard
);
OrderType
orderType
=
cm
.
getOrderType
();
OrderType
orderType
=
cm
.
getOrderType
();
if
(
StringUtils
.
equals
(
OrderType
.
AIRPORT
.
getType
(),
orderType
.
getType
()))
{
if
(
StringUtils
.
equals
(
OrderType
.
AIRPORT
.
getType
(),
orderType
.
getType
()))
{
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
...
@@ -32,7 +32,7 @@ public enum ControlMethod {
...
@@ -32,7 +32,7 @@ public enum ControlMethod {
}
else
if
(
StringUtils
.
equals
(
OrderType
.
HOTEL
.
getType
(),
orderType
.
getType
()))
{
}
else
if
(
StringUtils
.
equals
(
OrderType
.
HOTEL
.
getType
(),
orderType
.
getType
()))
{
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
}
else
{
}
else
{
personInfoList
=
StreamUtils
.
toList
(
personList
,
ApplyPerson
Bo
:
:
getPhone
);
personInfoList
=
StreamUtils
.
toList
(
personList
,
ApplyPerson:
:
getPhone
);
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
}
}
}),
}),
...
@@ -41,9 +41,9 @@ public enum ControlMethod {
...
@@ -41,9 +41,9 @@ public enum ControlMethod {
private
final
String
code
;
private
final
String
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
BiFunction
<
TravelControlMethodVo
,
List
<
ApplyPerson
Bo
>,
Boolean
>
function
;
private
final
BiFunction
<
TravelControlMethodVo
,
List
<
ApplyPerson
>,
Boolean
>
function
;
public
void
isMatched
(
TravelControlMethodVo
cm
,
List
<
ApplyPerson
Bo
>
personList
)
{
public
void
isMatched
(
TravelControlMethodVo
cm
,
List
<
ApplyPerson
>
personList
)
{
boolean
test
=
function
.
apply
(
cm
,
personList
);
boolean
test
=
function
.
apply
(
cm
,
personList
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"管控方式功能以配置,请使用合适的申请单!"
);
throw
new
RuntimeException
(
"管控方式功能以配置,请使用合适的申请单!"
);
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/TimeLimit.java
浏览文件 @
26843e59
...
@@ -4,7 +4,10 @@ import cn.hutool.core.date.DateTime;
...
@@ -4,7 +4,10 @@ import cn.hutool.core.date.DateTime;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.Apply
;
import
org.dromara.server.domain.vo.TravelTimeLimitVo
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.function.BiFunction
;
import
java.util.function.BiFunction
;
...
@@ -19,22 +22,36 @@ import java.util.function.BiFunction;
...
@@ -19,22 +22,36 @@ import java.util.function.BiFunction;
public
enum
TimeLimit
{
public
enum
TimeLimit
{
//不控制 控制
//不控制 控制
NOT_CONTROL
(
"0"
,
"不控制"
,
(
date
,
apply
)
->
true
),
NOT_CONTROL
(
"0"
,
"不控制"
,
(
tl
,
apply
)
->
true
),
CONTROL
(
"1"
,
"控制"
,
(
date
,
apply
)
->
{
CONTROL
(
"1"
,
"控制"
,
(
tl
,
apply
)
->
{
if
(
date
==
null
)
{
String
orderType
=
tl
.
getOrderType
().
getType
();
if
(
StringUtils
.
equals
(
orderType
,
OrderType
.
AIRPORT
.
getType
())
||
StringUtils
.
equals
(
orderType
,
OrderType
.
TRAIN
.
getType
())
||
StringUtils
.
equals
(
orderType
,
OrderType
.
CAR
.
getType
()))
{
Date
date
=
tl
.
getStartTime
();
if
(
date
==
null
)
{
return
false
;
}
DateTime
startTime
=
DateUtil
.
beginOfDay
(
apply
.
getStartTime
());
DateTime
endTime
=
DateUtil
.
endOfDay
(
apply
.
getEndTime
());
return
date
.
after
(
startTime
)
&&
date
.
before
(
endTime
);
}
else
if
(
StringUtils
.
equals
(
orderType
,
OrderType
.
HOTEL
.
getType
()))
{
Date
startDate
=
tl
.
getStartTime
();
Date
endDate
=
tl
.
getEndTime
();
DateTime
startTime
=
DateUtil
.
beginOfDay
(
apply
.
getStartTime
());
DateTime
endTime
=
DateUtil
.
endOfDay
(
apply
.
getEndTime
());
return
startDate
.
after
(
startTime
)
&&
endDate
.
before
(
endTime
);
}
else
{
return
false
;
return
false
;
}
}
DateTime
startTime
=
DateUtil
.
beginOfDay
(
apply
.
getStartTime
());
DateTime
endTime
=
DateUtil
.
endOfDay
(
apply
.
getEndTime
());
return
date
.
after
(
startTime
)
&&
date
.
before
(
endTime
);
});
});
private
final
String
code
;
private
final
String
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
BiFunction
<
Date
,
ApplyBo
,
Boolean
>
function
;
private
final
BiFunction
<
TravelTimeLimitVo
,
Apply
,
Boolean
>
function
;
public
void
isMatched
(
Date
date
,
ApplyBo
apply
)
{
public
void
isMatched
(
TravelTimeLimitVo
tl
,
Apply
apply
)
{
boolean
test
=
function
.
apply
(
date
,
apply
);
boolean
test
=
function
.
apply
(
tl
,
apply
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"时间限制已配置,请选择合适的申请单!"
);
throw
new
RuntimeException
(
"时间限制已配置,请选择合适的申请单!"
);
}
}
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/TravelControl.java
浏览文件 @
26843e59
...
@@ -3,7 +3,7 @@ package org.dromara.server.constant.travel;
...
@@ -3,7 +3,7 @@ package org.dromara.server.constant.travel;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
org.dromara.server.domain.
bo.ApplyBo
;
import
org.dromara.server.domain.
Apply
;
import
java.util.function.BiFunction
;
import
java.util.function.BiFunction
;
...
@@ -22,9 +22,9 @@ public enum TravelControl {
...
@@ -22,9 +22,9 @@ public enum TravelControl {
private
final
String
code
;
private
final
String
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
BiFunction
<
JSONObject
,
Apply
Bo
,
Boolean
>
function
;
private
final
BiFunction
<
JSONObject
,
Apply
,
Boolean
>
function
;
public
void
isMatched
(
JSONObject
jsonObject
,
Apply
Bo
apply
)
{
public
void
isMatched
(
JSONObject
jsonObject
,
Apply
apply
)
{
boolean
test
=
function
.
apply
(
jsonObject
,
apply
);
boolean
test
=
function
.
apply
(
jsonObject
,
apply
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"差旅管控功能暂未实现,请先现在关闭功能!"
);
throw
new
RuntimeException
(
"差旅管控功能暂未实现,请先现在关闭功能!"
);
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/TripLimit.java
浏览文件 @
26843e59
...
@@ -4,8 +4,8 @@ import lombok.AllArgsConstructor;
...
@@ -4,8 +4,8 @@ import lombok.AllArgsConstructor;
import
lombok.Getter
;
import
lombok.Getter
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.
bo.ApplyBo
;
import
org.dromara.server.domain.
Apply
;
import
org.dromara.server.domain.vo.Travel
Control
Vo
;
import
org.dromara.server.domain.vo.Travel
TripLimit
Vo
;
import
java.util.function.BiFunction
;
import
java.util.function.BiFunction
;
...
@@ -18,11 +18,11 @@ import java.util.function.BiFunction;
...
@@ -18,11 +18,11 @@ import java.util.function.BiFunction;
public
enum
TripLimit
{
public
enum
TripLimit
{
//不控制 控制
//不控制 控制
NOT_CONTROL
(
"0"
,
"不控制"
,
(
t
ravelContro
l
,
apply
)
->
true
),
NOT_CONTROL
(
"0"
,
"不控制"
,
(
t
t
l
,
apply
)
->
true
),
CONTROL
(
"1"
,
"控制"
,
(
t
ravelContro
l
,
apply
)
->
{
CONTROL
(
"1"
,
"控制"
,
(
t
t
l
,
apply
)
->
{
String
startCity
=
t
ravelContro
l
.
getStartCity
();
String
startCity
=
t
t
l
.
getStartCity
();
String
endCity
=
t
ravelContro
l
.
getEndCity
();
String
endCity
=
t
t
l
.
getEndCity
();
OrderType
orderType
=
t
ravelContro
l
.
getOrderType
();
OrderType
orderType
=
t
t
l
.
getOrderType
();
if
(
StringUtils
.
equals
(
OrderType
.
AIRPORT
.
getType
(),
orderType
.
getType
()))
{
if
(
StringUtils
.
equals
(
OrderType
.
AIRPORT
.
getType
(),
orderType
.
getType
()))
{
return
StringUtils
.
equals
(
startCity
,
apply
.
getDepartAddress
())
&&
return
StringUtils
.
equals
(
startCity
,
apply
.
getDepartAddress
())
&&
StringUtils
.
equals
(
endCity
,
apply
.
getArriveAddress
());
StringUtils
.
equals
(
endCity
,
apply
.
getArriveAddress
());
...
@@ -38,10 +38,10 @@ public enum TripLimit {
...
@@ -38,10 +38,10 @@ public enum TripLimit {
private
final
String
code
;
private
final
String
code
;
private
final
String
desc
;
private
final
String
desc
;
private
final
BiFunction
<
Travel
ControlVo
,
ApplyBo
,
Boolean
>
function
;
private
final
BiFunction
<
Travel
TripLimitVo
,
Apply
,
Boolean
>
function
;
public
void
isMatched
(
Travel
ControlVo
travelControl
,
ApplyBo
apply
)
{
public
void
isMatched
(
Travel
TripLimitVo
ttl
,
Apply
apply
)
{
boolean
test
=
function
.
apply
(
t
ravelContro
l
,
apply
);
boolean
test
=
function
.
apply
(
t
t
l
,
apply
);
if
(!
test
)
{
if
(!
test
)
{
throw
new
RuntimeException
(
"行程限制已配置,请选择合适的申请单!"
);
throw
new
RuntimeException
(
"行程限制已配置,请选择合适的申请单!"
);
}
}
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/TravelConfigController.java
浏览文件 @
26843e59
package
org
.
dromara
.
server
.
controller
;
package
org
.
dromara
.
server
.
controller
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.TravelApply
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
java.util.List
;
...
@@ -32,7 +30,6 @@ public class TravelConfigController extends BaseController {
...
@@ -32,7 +30,6 @@ public class TravelConfigController extends BaseController {
/**
/**
* 获取差旅设置详细信息
* 获取差旅设置详细信息
*/
*/
@SaCheckPermission
(
"server:config:query"
)
@GetMapping
()
@GetMapping
()
public
R
<
TravelConfigVo
>
getInfo
()
{
public
R
<
TravelConfigVo
>
getInfo
()
{
List
<
TravelConfigVo
>
list
=
travelConfigService
.
queryList
(
new
TravelConfigBo
());
List
<
TravelConfigVo
>
list
=
travelConfigService
.
queryList
(
new
TravelConfigBo
());
...
@@ -40,4 +37,27 @@ public class TravelConfigController extends BaseController {
...
@@ -40,4 +37,27 @@ public class TravelConfigController extends BaseController {
}
}
/**
* 校验差旅是否合法
*
* @param ta 差旅申请信息
* @return 校验结果
*/
@PostMapping
(
"/check"
)
public
R
<
Boolean
>
check
(
@RequestBody
TravelApply
ta
)
{
return
R
.
ok
(
travelConfigService
.
checkTravelLegal
(
ta
));
}
/**
* 创建默认配置
*
* @param tenantId 租户ID
* @return 是否成功
*/
@PostMapping
(
"/createDefaultConfig"
)
public
R
<
Boolean
>
createDefaultConfig
(
@RequestBody
String
tenantId
)
{
travelConfigService
.
createDefaultConfig
(
tenantId
);
return
R
.
ok
(
true
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/TravelApply.java
0 → 100644
浏览文件 @
26843e59
package
org
.
dromara
.
server
.
domain
.
vo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author hzh
* @date 2024-12-17
**/
@Data
@Accessors
(
chain
=
true
)
public
class
TravelApply
{
/**
* 申请id
*/
private
Long
applyId
;
/**
* 出发城市
*/
private
String
departCity
;
/**
* 到达城市
*/
private
String
arriveCity
;
/**
* 出发时间
*/
private
Date
departTime
;
/**
* 到达时间
*/
private
Date
arriveTime
;
/**
* 订单类型
*/
private
String
orderType
;
/**
* 乘车人信息
*/
private
List
<
String
>
personInfoList
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/TravelTimeLimitVo.java
0 → 100644
浏览文件 @
26843e59
package
org
.
dromara
.
server
.
domain
.
vo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
/**
* @author hzh
* @date 2024-12-16
**/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Accessors
(
chain
=
true
)
public
class
TravelTimeLimitVo
extends
TravelVo
{
/**
* 开始时间
*/
private
Date
startTime
;
/**
* 结束时间
*/
private
Date
endTime
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/Travel
Control
Vo.java
→
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/Travel
TripLimit
Vo.java
浏览文件 @
26843e59
...
@@ -9,7 +9,7 @@ import lombok.experimental.Accessors;
...
@@ -9,7 +9,7 @@ import lombok.experimental.Accessors;
**/
**/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
Travel
Control
Vo
extends
TravelVo
{
public
class
Travel
TripLimit
Vo
extends
TravelVo
{
/**
/**
* 出发城市
* 出发城市
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/ITravelConfigService.java
浏览文件 @
26843e59
...
@@ -3,6 +3,7 @@ package org.dromara.server.service;
...
@@ -3,6 +3,7 @@ package org.dromara.server.service;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.TravelApply
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
/**
/**
...
@@ -20,4 +21,12 @@ public interface ITravelConfigService extends IBaseService<TravelConfigVo, Trave
...
@@ -20,4 +21,12 @@ public interface ITravelConfigService extends IBaseService<TravelConfigVo, Trave
*/
*/
void
createDefaultConfig
(
String
tenantId
);
void
createDefaultConfig
(
String
tenantId
);
/**
* 校验差旅申请是否合法
*
* @param travelApply 差旅申请
* @return 是否合法
*/
boolean
checkTravelLegal
(
TravelApply
travelApply
);
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/TravelConfigServiceImpl.java
浏览文件 @
26843e59
package
org
.
dromara
.
server
.
service
.
impl
;
package
org
.
dromara
.
server
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
...
@@ -7,16 +8,20 @@ import org.dromara.common.core.utils.StringUtils;
...
@@ -7,16 +8,20 @@ import org.dromara.common.core.utils.StringUtils;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.tenant.helper.TenantHelper
;
import
org.dromara.common.tenant.helper.TenantHelper
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.constant.travel.*
;
import
org.dromara.server.constant.travel.*
;
import
org.dromara.server.domain.Apply
;
import
org.dromara.server.domain.ApplyPerson
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.server.domain.vo.*
;
import
org.dromara.server.mapper.ApplyMapper
;
import
org.dromara.server.mapper.ApplyPersonMapper
;
import
org.dromara.server.mapper.TravelConfigMapper
;
import
org.dromara.server.mapper.TravelConfigMapper
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.Objects
;
/**
/**
* 差旅设置Service业务层处理
* 差旅设置Service业务层处理
...
@@ -29,6 +34,8 @@ import java.util.Objects;
...
@@ -29,6 +34,8 @@ import java.util.Objects;
public
class
TravelConfigServiceImpl
extends
AbstractBaseService
<
TravelConfigVo
,
TravelConfigBo
,
TravelConfig
>
implements
ITravelConfigService
{
public
class
TravelConfigServiceImpl
extends
AbstractBaseService
<
TravelConfigVo
,
TravelConfigBo
,
TravelConfig
>
implements
ITravelConfigService
{
private
final
TravelConfigMapper
baseMapper
;
private
final
TravelConfigMapper
baseMapper
;
private
final
ApplyMapper
applyMapper
;
private
final
ApplyPersonMapper
applyPersonMapper
;
@Override
@Override
public
BaseMapperPlus
<
TravelConfig
,
TravelConfigVo
>
mapper
()
{
public
BaseMapperPlus
<
TravelConfig
,
TravelConfigVo
>
mapper
()
{
...
@@ -69,4 +76,73 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
...
@@ -69,4 +76,73 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
baseMapper
.
insert
(
tc
);
baseMapper
.
insert
(
tc
);
});
});
}
}
@Override
public
boolean
checkTravelLegal
(
TravelApply
travelApply
)
{
TravelConfigVo
tc
=
mapper
().
selectVoOne
(
new
LambdaQueryWrapper
<>());
Apply
apply
=
Optional
.
ofNullable
(
travelApply
.
getApplyId
()).
map
(
applyMapper:
:
selectById
).
orElse
(
null
);
//校验是否需要提交申请单
Arrays
.
stream
(
ApplySwitch
.
values
()).
filter
(
as
->
Objects
.
equals
(
as
.
getCode
(),
tc
.
getApplySwitch
()))
.
findAny
().
ifPresent
(
as
->
{
as
.
isMatched
(
apply
);
});
//校验是否需要审批通过
Arrays
.
stream
(
ApproveSwitch
.
values
()).
filter
(
as
->
Objects
.
equals
(
as
.
getCode
(),
tc
.
getApproveSwitch
()))
.
findAny
().
ifPresent
(
as
->
{
as
.
isMatched
(
apply
);
});
//获取订单类型
OrderType
orderType
=
Arrays
.
stream
(
OrderType
.
values
()).
filter
(
ot
->
StringUtils
.
equals
(
ot
.
getType
(),
travelApply
.
getOrderType
()))
.
findAny
().
orElse
(
null
);
//校验出差时间
Arrays
.
stream
(
TimeLimit
.
values
()).
filter
(
tl
->
Objects
.
equals
(
tl
.
getCode
(),
tc
.
getTimeLimit
()))
.
findAny
().
ifPresent
(
tl
->
{
TravelTimeLimitVo
ttl
=
new
TravelTimeLimitVo
()
.
setStartTime
(
travelApply
.
getDepartTime
())
.
setEndTime
(
travelApply
.
getArriveTime
());
ttl
.
setOrderType
(
orderType
);
tl
.
isMatched
(
ttl
,
apply
);
});
//校验出差行程
Arrays
.
stream
(
TripLimit
.
values
()).
filter
(
tl
->
Objects
.
equals
(
tl
.
getCode
(),
tc
.
getTripLimit
()))
.
findAny
().
ifPresent
(
tl
->
{
TravelTripLimitVo
ttl
=
new
TravelTripLimitVo
()
.
setStartCity
(
travelApply
.
getDepartCity
())
.
setEndCity
(
travelApply
.
getArriveCity
());
ttl
.
setOrderType
(
orderType
);
tl
.
isMatched
(
ttl
,
apply
);
});
//校验人员
Arrays
.
stream
(
ControlMethod
.
values
()).
filter
(
cm
->
Objects
.
equals
(
cm
.
getCode
(),
tc
.
getControlMethod
()))
.
findAny
().
ifPresent
(
cm
->
{
TravelControlMethodVo
tcm
=
new
TravelControlMethodVo
()
.
setInfoList
(
travelApply
.
getPersonInfoList
());
tcm
.
setOrderType
(
orderType
);
//获取人员信息
List
<
ApplyPerson
>
personList
=
Optional
.
ofNullable
(
apply
)
.
map
(
a
->
applyPersonMapper
.
selectList
(
new
LambdaQueryWrapper
<
ApplyPerson
>()
.
eq
(
ApplyPerson:
:
getApplyId
,
a
.
getId
()))).
orElse
(
List
.
of
());
cm
.
isMatched
(
tcm
,
personList
);
});
//校验预算
Arrays
.
stream
(
BudgetControl
.
values
()).
filter
(
bc
->
Objects
.
equals
(
bc
.
getCode
(),
tc
.
getBudgetControl
()))
.
findAny
().
ifPresent
(
bc
->
{
bc
.
isMatched
(
null
,
apply
);
});
//校验管控
Arrays
.
stream
(
TravelControl
.
values
()).
filter
(
control
->
Objects
.
equals
(
control
.
getCode
(),
tc
.
getTravelControl
()))
.
findAny
().
ifPresent
(
control
->
{
control
.
isMatched
(
new
JSONObject
(),
apply
);
});
return
true
;
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论