Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
df8685be
提交
df8685be
authored
12月 16, 2024
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
差旅配置部分功能实现
上级
8b4e9cd6
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
743 行增加
和
0 行删除
+743
-0
ApplySwitch.java
.../java/org/dromara/server/constant/travel/ApplySwitch.java
+41
-0
ApproveSwitch.java
...ava/org/dromara/server/constant/travel/ApproveSwitch.java
+38
-0
BudgetControl.java
...ava/org/dromara/server/constant/travel/BudgetControl.java
+34
-0
ControlMethod.java
...ava/org/dromara/server/constant/travel/ControlMethod.java
+54
-0
TimeLimit.java
...in/java/org/dromara/server/constant/travel/TimeLimit.java
+43
-0
TravelControl.java
...ava/org/dromara/server/constant/travel/TravelControl.java
+34
-0
TripLimit.java
...in/java/org/dromara/server/constant/travel/TripLimit.java
+49
-0
TravelConfigController.java
...org/dromara/server/controller/TravelConfigController.java
+43
-0
TravelConfig.java
...src/main/java/org/dromara/server/domain/TravelConfig.java
+76
-0
TravelConfigBo.java
...ain/java/org/dromara/server/domain/bo/TravelConfigBo.java
+72
-0
TravelConfigVo.java
...ain/java/org/dromara/server/domain/vo/TravelConfigVo.java
+80
-0
TravelControlMethodVo.java
...a/org/dromara/server/domain/vo/TravelControlMethodVo.java
+21
-0
TravelControlVo.java
...in/java/org/dromara/server/domain/vo/TravelControlVo.java
+22
-0
TravelVo.java
.../src/main/java/org/dromara/server/domain/vo/TravelVo.java
+19
-0
TravelConfigMapper.java
...in/java/org/dromara/server/mapper/TravelConfigMapper.java
+15
-0
ITravelConfigService.java
...java/org/dromara/server/service/ITravelConfigService.java
+23
-0
TravelConfigServiceImpl.java
.../dromara/server/service/impl/TravelConfigServiceImpl.java
+72
-0
TravelConfigMapper.xml
...r/src/main/resources/mapper/server/TravelConfigMapper.xml
+7
-0
没有找到文件。
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/ApplySwitch.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
java.util.function.Predicate
;
/**
* 申请开关
*
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
ApplySwitch
{
/**
* 申请开关
*/
TRUE
(
true
,
"开启"
,
apply
->
apply
!=
null
),
FALSE
(
false
,
"关闭"
,
apply
->
true
);
private
final
Boolean
code
;
private
final
String
desc
;
private
final
Predicate
<
ApplyBo
>
predicate
;
/**
* 检查给定的 ApplyBo 是否满足当前开关的条件。
*
* @param apply 要检查的 ApplyBo 对象
* @return 如果满足条件则返回 true,否则返回 false
*/
public
void
isMatched
(
ApplyBo
apply
)
{
boolean
test
=
predicate
.
test
(
apply
);
if
(!
test
)
{
throw
new
RuntimeException
(
"申请设置已开启,请选择申请单!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/ApproveSwitch.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.server.constant.ApplyStatus
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
java.util.function.Predicate
;
/**
* 审批开关
*
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
ApproveSwitch
{
/**
* 审批开关枚举
*/
TRUE
(
true
,
"开启"
,
apply
->
apply
!=
null
&&
StringUtils
.
equals
(
ApplyStatus
.
FINISH
.
getCode
(),
apply
.
getStatus
())),
FALSE
(
false
,
"关闭"
,
apply
->
apply
!=
null
);
private
final
Boolean
code
;
private
final
String
desc
;
private
final
Predicate
<
ApplyBo
>
predicate
;
public
void
isMatched
(
ApplyBo
apply
)
{
boolean
test
=
predicate
.
test
(
apply
);
if
(!
test
)
{
throw
new
RuntimeException
(
"审批设置已开启,请选择正确状态的审批单!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/BudgetControl.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
java.math.BigDecimal
;
import
java.util.function.BiFunction
;
/**
* 预算控制
*
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
BudgetControl
{
//不控制 控制
NOT_CONTROL
(
"0"
,
"不控制"
,
(
amount
,
apply
)
->
true
),
CONTROL
(
"1"
,
"控制"
,
(
amount
,
apply
)
->
false
);
private
final
String
code
;
private
final
String
desc
;
private
final
BiFunction
<
BigDecimal
,
ApplyBo
,
Boolean
>
function
;
public
void
isMatched
(
BigDecimal
amount
,
ApplyBo
apply
)
{
boolean
test
=
function
.
apply
(
amount
,
apply
);
if
(!
test
)
{
throw
new
RuntimeException
(
"预算管控功能暂未实现,请先现在还不控制功能!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/ControlMethod.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.bo.ApplyPersonBo
;
import
org.dromara.server.domain.vo.TravelControlMethodVo
;
import
java.util.List
;
import
java.util.function.BiFunction
;
/**
* 管控方式
*
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
ControlMethod
{
//申请人和出行人都可以、 申请人可以、出行人可以,不控制
APPLY_AND_TRAVEL
(
"1"
,
"申请人和出行人都可以控制"
,
(
cm
,
personList
)
->
false
),
ONLY_APPLY
(
"2"
,
"申请人可以控制"
,
(
cm
,
personList
)
->
{
List
<
String
>
personInfoList
=
StreamUtils
.
toList
(
personList
,
ApplyPersonBo:
:
getIdCard
);
OrderType
orderType
=
cm
.
getOrderType
();
if
(
StringUtils
.
equals
(
OrderType
.
AIRPORT
.
getType
(),
orderType
.
getType
()))
{
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
}
else
if
(
StringUtils
.
equals
(
OrderType
.
TRAIN
.
getType
(),
orderType
.
getType
()))
{
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
}
else
if
(
StringUtils
.
equals
(
OrderType
.
HOTEL
.
getType
(),
orderType
.
getType
()))
{
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
}
else
{
personInfoList
=
StreamUtils
.
toList
(
personList
,
ApplyPersonBo:
:
getPhone
);
return
personInfoList
.
containsAll
(
cm
.
getInfoList
());
}
}),
ONLY_TRAVEL
(
"3"
,
"出行人可以控制"
,
(
cm
,
personList
)
->
false
),
NOT_CONTROL
(
"4"
,
"不控制"
,
(
cm
,
personList
)
->
true
);
private
final
String
code
;
private
final
String
desc
;
private
final
BiFunction
<
TravelControlMethodVo
,
List
<
ApplyPersonBo
>,
Boolean
>
function
;
public
void
isMatched
(
TravelControlMethodVo
cm
,
List
<
ApplyPersonBo
>
personList
)
{
boolean
test
=
function
.
apply
(
cm
,
personList
);
if
(!
test
)
{
throw
new
RuntimeException
(
"管控方式功能以配置,请使用合适的申请单!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/TimeLimit.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
java.util.Date
;
import
java.util.function.BiFunction
;
/**
* 时间限制
*
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
TimeLimit
{
//不控制 控制
NOT_CONTROL
(
"0"
,
"不控制"
,
(
date
,
apply
)
->
true
),
CONTROL
(
"1"
,
"控制"
,
(
date
,
apply
)
->
{
if
(
date
==
null
)
{
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
desc
;
private
final
BiFunction
<
Date
,
ApplyBo
,
Boolean
>
function
;
public
void
isMatched
(
Date
date
,
ApplyBo
apply
)
{
boolean
test
=
function
.
apply
(
date
,
apply
);
if
(!
test
)
{
throw
new
RuntimeException
(
"时间限制已配置,请选择合适的申请单!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/TravelControl.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
java.util.function.BiFunction
;
/**
* 差旅控制
*
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
TravelControl
{
//不控制 控制
NOT_CONTROL
(
"0"
,
"不控制"
,
(
json
,
apply
)
->
true
),
CONTROL
(
"1"
,
"控制"
,
(
json
,
apply
)
->
false
);
private
final
String
code
;
private
final
String
desc
;
private
final
BiFunction
<
JSONObject
,
ApplyBo
,
Boolean
>
function
;
public
void
isMatched
(
JSONObject
jsonObject
,
ApplyBo
apply
)
{
boolean
test
=
function
.
apply
(
jsonObject
,
apply
);
if
(!
test
)
{
throw
new
RuntimeException
(
"差旅管控功能暂未实现,请先现在关闭功能!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/constant/travel/TripLimit.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
constant
.
travel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.domain.bo.ApplyBo
;
import
org.dromara.server.domain.vo.TravelControlVo
;
import
java.util.function.BiFunction
;
/**
* 行程限制
* @author wenhe
*/
@Getter
@AllArgsConstructor
public
enum
TripLimit
{
//不控制 控制
NOT_CONTROL
(
"0"
,
"不控制"
,
(
travelControl
,
apply
)
->
true
),
CONTROL
(
"1"
,
"控制"
,
(
travelControl
,
apply
)
->
{
String
startCity
=
travelControl
.
getStartCity
();
String
endCity
=
travelControl
.
getEndCity
();
OrderType
orderType
=
travelControl
.
getOrderType
();
if
(
StringUtils
.
equals
(
OrderType
.
AIRPORT
.
getType
(),
orderType
.
getType
()))
{
return
StringUtils
.
equals
(
startCity
,
apply
.
getDepartAddress
())
&&
StringUtils
.
equals
(
endCity
,
apply
.
getArriveAddress
());
}
else
if
(
StringUtils
.
equals
(
OrderType
.
TRAIN
.
getType
(),
orderType
.
getType
()))
{
return
StringUtils
.
equals
(
startCity
,
apply
.
getDepartAddress
())
&&
StringUtils
.
equals
(
endCity
,
apply
.
getArriveAddress
());
}
else
if
(
StringUtils
.
equals
(
OrderType
.
HOTEL
.
getType
(),
orderType
.
getType
()))
{
return
StringUtils
.
equals
(
endCity
,
apply
.
getArriveAddress
());
}
else
{
return
StringUtils
.
equals
(
endCity
,
apply
.
getArriveAddress
());
}
});
private
final
String
code
;
private
final
String
desc
;
private
final
BiFunction
<
TravelControlVo
,
ApplyBo
,
Boolean
>
function
;
public
void
isMatched
(
TravelControlVo
travelControl
,
ApplyBo
apply
)
{
boolean
test
=
function
.
apply
(
travelControl
,
apply
);
if
(!
test
)
{
throw
new
RuntimeException
(
"行程限制已配置,请选择合适的申请单!"
);
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/TravelConfigController.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
controller
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* 差旅设置
* 前端访问路由地址为:/server/config
*
* @author hzh
* @date 2024-12-16
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/config"
)
public
class
TravelConfigController
extends
BaseController
{
private
final
ITravelConfigService
travelConfigService
;
/**
* 获取差旅设置详细信息
*/
@SaCheckPermission
(
"server:config:query"
)
@GetMapping
()
public
R
<
TravelConfigVo
>
getInfo
()
{
List
<
TravelConfigVo
>
list
=
travelConfigService
.
queryList
(
new
TravelConfigBo
());
return
R
.
ok
(
list
.
get
(
0
));
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/TravelConfig.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
java.io.Serial
;
/**
* 差旅设置对象 travel_config
*
* @author hzh
* @date 2024-12-16
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"travel_config"
)
public
class
TravelConfig
extends
TenantEntity
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* id
*/
@TableId
(
value
=
"id"
)
private
Long
id
;
/**
* 管控方式
*/
private
String
controlMethod
;
/**
* 出差时间限制
*/
private
String
timeLimit
;
/**
* 行程限制
*/
private
String
tripLimit
;
/**
* 审批开关
*/
private
Boolean
approveSwitch
;
/**
* 申请开关
*/
private
Boolean
applySwitch
;
/**
* 预算控制
*/
private
String
budgetControl
;
/**
* 差旅控制
*/
private
String
travelControl
;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private
String
delFlag
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/bo/TravelConfigBo.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
domain
.
bo
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.common.mybatis.core.domain.BaseEntity
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.validate.EditGroup
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
jakarta.validation.constraints.*
;
/**
* 差旅设置业务对象 travel_config
*
* @author hzh
* @date 2024-12-16
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@AutoMapper
(
target
=
TravelConfig
.
class
,
reverseConvertGenerate
=
false
)
public
class
TravelConfigBo
extends
BaseEntity
{
/**
* id
*/
@NotNull
(
message
=
"id不能为空"
,
groups
=
{
EditGroup
.
class
})
private
Long
id
;
/**
* 管控方式
*/
@NotBlank
(
message
=
"管控方式不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
controlMethod
;
/**
* 出差时间限制
*/
@NotBlank
(
message
=
"出差时间限制不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
timeLimit
;
/**
* 行程限制
*/
@NotBlank
(
message
=
"行程限制不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
tripLimit
;
/**
* 审批开关
*/
@NotNull
(
message
=
"审批开关不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
Boolean
approveSwitch
;
/**
* 申请开关
*/
@NotNull
(
message
=
"申请开关不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
Boolean
applySwitch
;
/**
* 预算控制
*/
@NotBlank
(
message
=
"预算控制不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
budgetControl
;
/**
* 差旅控制
*/
@NotBlank
(
message
=
"差旅控制不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
String
travelControl
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/TravelConfigVo.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
domain
.
vo
;
import
org.dromara.server.domain.TravelConfig
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
org.dromara.common.excel.annotation.ExcelDictFormat
;
import
org.dromara.common.excel.convert.ExcelDictConvert
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
lombok.Data
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 差旅设置视图对象 travel_config
*
* @author hzh
* @date 2024-12-16
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper
(
target
=
TravelConfig
.
class
)
public
class
TravelConfigVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* id
*/
@ExcelProperty
(
value
=
"id"
)
private
Long
id
;
/**
* 管控方式
*/
@ExcelProperty
(
value
=
"管控方式"
)
private
String
controlMethod
;
/**
* 出差时间限制
*/
@ExcelProperty
(
value
=
"出差时间限制"
)
private
String
timeLimit
;
/**
* 行程限制
*/
@ExcelProperty
(
value
=
"行程限制"
)
private
String
tripLimit
;
/**
* 审批开关
*/
@ExcelProperty
(
value
=
"审批开关"
)
private
Boolean
approveSwitch
;
/**
* 申请开关
*/
@ExcelProperty
(
value
=
"申请开关"
)
private
Boolean
applySwitch
;
/**
* 预算控制
*/
@ExcelProperty
(
value
=
"预算控制"
)
private
String
budgetControl
;
/**
* 差旅控制
*/
@ExcelProperty
(
value
=
"差旅控制"
)
private
String
travelControl
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/TravelControlMethodVo.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
domain
.
vo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* @author hzh
* @date 2024-12-16
**/
@Data
@Accessors
(
chain
=
true
)
public
class
TravelControlMethodVo
extends
TravelVo
{
/**
* 信息列表 身份证信息或者手机号信息
*/
private
List
<
String
>
infoList
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/TravelControlVo.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
domain
.
vo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* @author hzh
* @date 2024-12-16
**/
@Data
@Accessors
(
chain
=
true
)
public
class
TravelControlVo
extends
TravelVo
{
/**
* 出发城市
*/
private
String
startCity
;
/**
* 到达城市
*/
private
String
endCity
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/TravelVo.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
domain
.
vo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.dromara.order.api.enums.OrderType
;
/**
* @author hzh
* @date 2024-12-16
**/
@Data
@Accessors
(
chain
=
true
)
public
class
TravelVo
{
/**
* 订单类型
*/
private
OrderType
orderType
;
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/mapper/TravelConfigMapper.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
mapper
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
/**
* 差旅设置Mapper接口
*
* @author hzh
* @date 2024-12-16
*/
public
interface
TravelConfigMapper
extends
BaseMapperPlus
<
TravelConfig
,
TravelConfigVo
>
{
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/ITravelConfigService.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
service
;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
/**
* 差旅设置Service接口
*
* @author hzh
* @date 2024-12-16
*/
public
interface
ITravelConfigService
extends
IBaseService
<
TravelConfigVo
,
TravelConfigBo
,
TravelConfig
>
{
/**
* 创建默认设置
*
* @param tenantId 租户ID
*/
void
createDefaultConfig
(
String
tenantId
);
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/TravelConfigServiceImpl.java
0 → 100644
浏览文件 @
df8685be
package
org
.
dromara
.
server
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.tenant.helper.TenantHelper
;
import
org.dromara.server.constant.travel.*
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.TravelConfigVo
;
import
org.dromara.server.mapper.TravelConfigMapper
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.springframework.stereotype.Service
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* 差旅设置Service业务层处理
*
* @author hzh
* @date 2024-12-16
*/
@RequiredArgsConstructor
@Service
public
class
TravelConfigServiceImpl
extends
AbstractBaseService
<
TravelConfigVo
,
TravelConfigBo
,
TravelConfig
>
implements
ITravelConfigService
{
private
final
TravelConfigMapper
baseMapper
;
@Override
public
BaseMapperPlus
<
TravelConfig
,
TravelConfigVo
>
mapper
()
{
return
baseMapper
;
}
@Override
public
LambdaQueryWrapper
<
TravelConfig
>
buildQueryWrapper
(
TravelConfigBo
bo
)
{
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
LambdaQueryWrapper
<
TravelConfig
>
lqw
=
Wrappers
.
lambdaQuery
();
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getControlMethod
()),
TravelConfig:
:
getControlMethod
,
bo
.
getControlMethod
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getTimeLimit
()),
TravelConfig:
:
getTimeLimit
,
bo
.
getTimeLimit
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getTripLimit
()),
TravelConfig:
:
getTripLimit
,
bo
.
getTripLimit
());
lqw
.
eq
(
bo
.
getApproveSwitch
()
!=
null
,
TravelConfig:
:
getApproveSwitch
,
bo
.
getApproveSwitch
());
lqw
.
eq
(
bo
.
getApplySwitch
()
!=
null
,
TravelConfig:
:
getApplySwitch
,
bo
.
getApplySwitch
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getBudgetControl
()),
TravelConfig:
:
getBudgetControl
,
bo
.
getBudgetControl
());
lqw
.
eq
(
StringUtils
.
isNotBlank
(
bo
.
getTravelControl
()),
TravelConfig:
:
getTravelControl
,
bo
.
getTravelControl
());
return
lqw
;
}
@Override
public
void
createDefaultConfig
(
String
tenantId
)
{
TenantHelper
.
ignore
(()
->
{
TravelConfig
tc
=
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
TravelConfig
>()
.
eq
(
TravelConfig:
:
getTenantId
,
tenantId
));
if
(
Objects
.
nonNull
(
tc
))
{
return
;
}
tc
=
new
TravelConfig
()
.
setControlMethod
(
ControlMethod
.
NOT_CONTROL
.
getCode
())
.
setTimeLimit
(
TimeLimit
.
NOT_CONTROL
.
getCode
())
.
setTripLimit
(
TripLimit
.
NOT_CONTROL
.
getCode
())
.
setApproveSwitch
(
ApproveSwitch
.
FALSE
.
getCode
())
.
setApplySwitch
(
ApplySwitch
.
FALSE
.
getCode
())
.
setBudgetControl
(
BudgetControl
.
NOT_CONTROL
.
getCode
())
.
setTravelControl
(
TravelControl
.
NOT_CONTROL
.
getCode
());
tc
.
setTenantId
(
tenantId
);
baseMapper
.
insert
(
tc
);
});
}
}
ruoyi-modules/ruoyi-server/src/main/resources/mapper/server/TravelConfigMapper.xml
0 → 100644
浏览文件 @
df8685be
<?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=
"org.dromara.server.mapper.TravelConfigMapper"
>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论