提交 26843e59 authored 作者: hzh's avatar hzh

差旅配置部分功能实现

上级 df8685be
...@@ -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<ApplyBo> 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(ApplyBo 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("申请设置已开启,请选择申请单!");
......
...@@ -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<ApplyBo> predicate; private final Predicate<Apply> predicate;
public void isMatched(ApplyBo 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("审批设置已开启,请选择正确状态的审批单!");
......
...@@ -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, ApplyBo, Boolean> function; private final BiFunction<BigDecimal, Apply, Boolean> function;
public void isMatched(BigDecimal amount, ApplyBo 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("预算管控功能暂未实现,请先现在还不控制功能!");
......
...@@ -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, ApplyPersonBo::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, ApplyPersonBo::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<ApplyPersonBo>, Boolean> function; private final BiFunction<TravelControlMethodVo, List<ApplyPerson>, Boolean> function;
public void isMatched(TravelControlMethodVo cm, List<ApplyPersonBo> 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("管控方式功能以配置,请使用合适的申请单!");
......
...@@ -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("时间限制已配置,请选择合适的申请单!");
} }
......
...@@ -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, ApplyBo, Boolean> function; private final BiFunction<JSONObject, Apply, Boolean> function;
public void isMatched(JSONObject jsonObject, ApplyBo 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("差旅管控功能暂未实现,请先现在关闭功能!");
......
...@@ -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.TravelControlVo; import org.dromara.server.domain.vo.TravelTripLimitVo;
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", "不控制", (travelControl, apply) -> true), NOT_CONTROL("0", "不控制", (ttl, apply) -> true),
CONTROL("1", "控制", (travelControl, apply) -> { CONTROL("1", "控制", (ttl, apply) -> {
String startCity = travelControl.getStartCity(); String startCity = ttl.getStartCity();
String endCity = travelControl.getEndCity(); String endCity = ttl.getEndCity();
OrderType orderType = travelControl.getOrderType(); OrderType orderType = ttl.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<TravelControlVo, ApplyBo, Boolean> function; private final BiFunction<TravelTripLimitVo, Apply, Boolean> function;
public void isMatched(TravelControlVo travelControl, ApplyBo apply) { public void isMatched(TravelTripLimitVo ttl, Apply apply) {
boolean test = function.apply(travelControl, apply); boolean test = function.apply(ttl, apply);
if (!test) { if (!test) {
throw new RuntimeException("行程限制已配置,请选择合适的申请单!"); throw new RuntimeException("行程限制已配置,请选择合适的申请单!");
} }
......
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);
}
} }
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;
}
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;
}
...@@ -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 TravelControlVo extends TravelVo { public class TravelTripLimitVo extends TravelVo {
/** /**
* 出发城市 * 出发城市
......
...@@ -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);
} }
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论