提交 4047b509 authored 作者: hzh's avatar hzh

代码优化

上级 900bda8c
package org.dromara.server.api;
/**
* @author wenhe
*/
public interface RemoteOrderService {
/**
* 更新机场订单
*/
void updateAirportOrder();
}
package org.dromara.common.core.utils.reflect;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
/**
* @author David Tan
*
*/
public class GenericsUtils {
/**
* 通过反射,获得定义Class时声明的父类的范型参数的类型. 如public BookManager extends
* GenricManager<Book>
*
* @param clazz The class to introspect
* @return the first generic declaration, or <code>Object.class</code> if cannot be determined
*/
public static Class<?> getSuperClassGenricType(Class<?> clazz) {
return getSuperClassGenricType(clazz, 0);
}
/**
* 通过反射,获得定义Class时声明的父类的范型参数的类型. 如public BookManager extends GenricManager<Book>
*
* @param clazz clazz The class to introspect
* @param index the Index of the generic ddeclaration,start from 0.
*/
public static Class<?> getSuperClassGenricType(Class<?> clazz, int index)
throws IndexOutOfBoundsException {
Type genType = clazz.getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
return Object.class;
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class<?>) params[index];
}
}
...@@ -87,6 +87,16 @@ ...@@ -87,6 +87,16 @@
<artifactId>ruoyi-api-server</artifactId> <artifactId>ruoyi-api-server</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-idempotent</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package org.dromara.server.base;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.reflect.GenericsUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* @author hzh
* @date 2024-11-18
**/
public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B, T> {
@Override
public abstract BaseMapperPlus<T, V> mapper();
@Override
public V queryById(Long id) {
return mapper().selectVoById(id);
}
@Override
public TableDataInfo<V> queryPageList(B bo, PageQuery pageQuery) {
LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo);
Page<V> result = mapper().selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<V> queryList(B bo) {
LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo);
return mapper().selectVoList(lqw);
}
@Override
public Boolean insertByBo(B bo) {
Class<T> clazz = (Class<T>) GenericsUtils.getSuperClassGenricType(this.getClass(), 2);
T add = MapstructUtils.convert(bo, clazz);
validEntityBeforeSave(add);
boolean flag = mapper().insert(add) > 0;
return flag;
}
@Override
public Boolean updateByBo(B bo) {
Class<T> clazz = (Class<T>) GenericsUtils.getSuperClassGenricType(this.getClass(), 2);
T update = MapstructUtils.convert(bo, clazz);
validEntityBeforeSave(update);
return mapper().updateById(update) > 0;
}
@Override
public LambdaQueryWrapper<T> buildQueryWrapper(B bo) {
LambdaQueryWrapper<T> lqw = Wrappers.lambdaQuery();
return lqw;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
validIdsBeforeDelete(ids);
}
return mapper().deleteByIds(ids) > 0;
}
@Override
public void validIdsBeforeDelete(Collection<Long> ids) {
}
}
package org.dromara.server.base;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* @author wenhe
*/
public interface IBaseService<V, B, T> {
/**
* 详情
*
* @param id 主键
* @return 详情
*/
V queryById(Long id);
/**
* 分页查询活动机票订单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 活动机票订单分页列表
*/
TableDataInfo<V> queryPageList(B bo, PageQuery pageQuery);
/**
* 查询符合条件的列表
*
* @param bo 查询条件
* @return 雷彪
*/
List<V> queryList(B bo);
/**
* 新增
*
* @param bo bo
* @return 是否新增成功
*/
Boolean insertByBo(B bo);
/**
* 修改
*
* @param bo bo
* @return 是否修改成功
*/
Boolean updateByBo(B bo);
/**
* 校验并批量删除
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 删除之前校验id
*
* @param ids 待删除的主键集合
*/
void validIdsBeforeDelete(Collection<Long> ids);
/**
* 构建查询条件
*
* @param bo bo
* @return 查询条件
*/
LambdaQueryWrapper<T> buildQueryWrapper(B bo);
/**
* 保存之前校验实体
*
* @param entity 实体
*/
void validEntityBeforeSave(T entity);
default BaseMapperPlus mapper() {
return null;
}
}
package org.dromara.server.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.service.IOrderAirportService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 活动机票订单
* 前端访问路由地址为:/server/orderAirport
*
* @author hzh
* @date 2024-11-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/orderAirport")
public class OrderAirportController extends BaseController {
private final IOrderAirportService bizOrderAirportService;
/**
* 查询活动机票订单列表
*/
@SaCheckPermission("server:orderAirport:list")
@GetMapping("/list")
public TableDataInfo<OrderAirportVo> list(OrderAirportBo bo, PageQuery pageQuery) {
return bizOrderAirportService.queryPageList(bo, pageQuery);
}
/**
* 导出活动机票订单列表
*/
@SaCheckPermission("server:orderAirport:export")
@Log(title = "活动机票订单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OrderAirportBo bo, HttpServletResponse response) {
List<OrderAirportVo> list = bizOrderAirportService.queryList(bo);
ExcelUtil.exportExcel(list, "活动机票订单", OrderAirportVo.class, response);
}
/**
* 获取活动机票订单详细信息
*
* @param id 主键
*/
@SaCheckPermission("server:orderAirport:query")
@GetMapping("/{id}")
public R<OrderAirportVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizOrderAirportService.queryById(id));
}
/**
* 新增活动机票订单
*/
@SaCheckPermission("server:orderAirport:add")
@Log(title = "活动机票订单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderAirportBo bo) {
return toAjax(bizOrderAirportService.insertByBo(bo));
}
/**
* 修改活动机票订单
*/
@SaCheckPermission("server:orderAirport:edit")
@Log(title = "活动机票订单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderAirportBo bo) {
return toAjax(bizOrderAirportService.updateByBo(bo));
}
/**
* 删除活动机票订单
*
* @param ids 主键串
*/
@SaCheckPermission("server:orderAirport:remove")
@Log(title = "活动机票订单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizOrderAirportService.deleteWithValidByIds(List.of(ids), true));
}
}
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 org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
/**
* 活动机票订单对象 biz_order_airport
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_order_airport")
public class OrderAirport extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 人员code
*/
private String personCode;
/**
* 订单号
*/
private String orderNo;
/**
* 大客户协议号
*/
private String protocolNo;
/**
* 航程机场中文,机场名称拼接
*/
private String voyageAirport;
/**
* 行程id
*/
private String routeId;
/**
* 乘机人,多个以,隔开
*/
private String psg;
/**
* 是否显示退票操作,1是显示 2是不显示
*/
private String isShowRefund;
/**
* 预订时间,格式:yyyy-MM-dd HH:mm:ss
*/
private String bookDatetime;
/**
* 舱位
*/
private String cabin;
/**
* 是否显示撤销审批操作 1显示 0不显示
*/
private String isShowCancelApproval;
/**
* PNR编码
*/
private String pnrNo;
/**
* 订单状态代码
*/
private String orderStatus;
/**
* 航班号
*/
private String flightNo;
/**
* 是否显示支付操作,1是显示 2是不显示
*/
private String isShowPay;
/**
* 航程城市中文,城市名称拼接
*/
private String voyageCity;
/**
* 备注信息
*/
private String bzbz;
/**
* 订单合计,票面价+机建+燃油+服务费+保险金额
*/
private Long orderTotalAmount;
/**
* 是否显示送审操作,1是显示 2是不显示
*/
private String isShowApproval;
/**
* PNR编码
*/
private String pnrError;
/**
* 保险金额
*/
private Long insureAmount;
/**
* 服务费合计
*/
private Long serviceFee;
/**
* 燃油合计
*/
private Long tax;
/**
* 是否支持协议欠款支付,1是显示 2是不显示
*/
private String sfzcxyqk;
/**
* 票面合计
*/
private Long salePrice;
/**
* 起飞日期,格式:YYYY-MM-dd HH:mm
*/
private String departDate;
/**
* 是否显示改签操作,1是显示 2是不显示
*/
private String isShowEndorse;
/**
* 航程,机场三字码拼接
*/
private String voyage;
/**
* 订单状态名称
*/
private String orderStatusName;
/**
* 出票时间,格式:yyyy-MM-dd HH:mm:ss
*/
private String drawDatetime;
/**
* 是否显示取消操作,1是显示 2是不显示
*/
private String isShowCancel;
/**
* 订单来源名称
*/
private String orderFrom;
/**
* 机建合计
*/
private Long airportFee;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
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;
/**
* 活动机票订单差旅信息对象 biz_order_airport_business
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_business")
public class OrderAirportBusiness extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 出差申请单号
*/
private String travelNo;
/**
* 联系人
*/
private String linkMan;
/**
* 最后审批人姓名
*/
private String appUserName;
/**
* 审批规则名字
*/
private String appRuleName;
/**
* 企业预订人工号
*/
private String bookerNo;
/**
* 是否违背差旅标准,0否 1是
*/
private String isViolate;
/**
* 成本中心编号
*/
private String costCenterNo;
/**
* 项目名称
*/
private String projectName;
/**
* 企业预订人姓名
*/
private String bookerName;
/**
* 出差事由
*/
private String travelRemark;
/**
* 违背原因代码
*/
private String reasonCode;
/**
* 联系邮箱
*/
private String linkEmail;
/**
* 违背事项名称
*/
private String violateitem;
/**
* 项目编号
*/
private String projectNo;
/**
* 最后审批人工号
*/
private String appUserNo;
/**
* 违背原因名称
*/
private String reasonDesc;
/**
* 最后审批时间,格式:yyyy-MM-dd HH:mm:ss
*/
private String appDatetime;
/**
* 违背事项代码
*/
private String violateitemCode;
/**
* 成本中心名称
*/
private String costCenterName;
/**
* 联系手机
*/
private String linkMobile;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
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;
/**
* 活动机票订单保险对象 biz_order_airport_insurance
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_insurance")
public class OrderAirportInsurance extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 保险险种名称
*/
private String xzmc;
/**
* 保单号
*/
private String bdh;
/**
* 保险金额
*/
private Long insureAmount;
/**
*
*/
private String bsex;
/**
* 行程说明
*/
private String xc;
/**
*
*/
private String bidType;
/**
* 保险订单编号
*/
private String bxOrderNo;
/**
* 保单生效时间
*/
private String bdsxsj;
/**
* 投保状态名称
*/
private String tbztName;
/**
* 销售说明
*/
private String xssm;
/**
* 航班号/车次
*/
private String hbh;
/**
*
*/
private String bidNo;
/**
* 保额说明
*/
private String besm;
/**
* 被保人
*/
private String bbr;
/**
* 生效规则
*/
private String xsgzDesc;
/**
*
*/
private String bborn;
/**
* 产品名称
*/
private String bxcpmc;
/**
* 保险公司名称
*/
private String bxcpCompName;
/**
* 投保状态
*/
private String tbzt;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
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;
/**
* 活动机票订单支付信息对象 biz_order_airport_pay
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_pay")
public class OrderAirportPay extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 支付科目id
*/
private String paySubject;
/**
* 支付方式名称
*/
private String payMothedName;
/**
* 支付卡号
*/
private String payBankCard;
/**
* 支付时间,格式:yyyy-MM-dd HH:mm:ss
*/
private String payDate;
/**
* 支付金额
*/
private Long payAmount;
/**
* 支付科目名称
*/
private String paySubjectName;
/**
* 支付流水号
*/
private String payBillno;
/**
* 支付备注
*/
private String payRemark;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
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;
/**
* 活动机票订单乘客对象 biz_order_airport_psg
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_psg")
public class OrderAirportPsg extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 所在部门的上8级部门编号
*/
private String empDeptNo8;
/**
* 所在部门的上9级部门编号
*/
private String empDeptNo9;
/**
* 所在部门的上6级部门编号
*/
private String empDeptNo6;
/**
* 国籍
*/
private String nation;
/**
* 所在部门的上7级部门编号
*/
private String empDeptNo7;
/**
* 所在部门名称
*/
private String empDepName;
/**
* 所在部门的上4级部门编号
*/
private String empDeptNo4;
/**
* 所在部门的上5级部门编号
*/
private String empDeptNo5;
/**
* 旅客姓名
*/
private String psgName;
/**
* 出生日期,格式:yyyy-MM-dd
*/
private String birthDate;
/**
* 票价小计
*/
private Long psgTotalAmount;
/**
* 证件签发地
*/
private String placeOfIssue;
/**
* 里程卡号
*/
private String mileageCardNo;
/**
* 证件号码
*/
private String idNo;
/**
* 所在部门的上9级部门名称
*/
private String empDeptName9;
/**
* 所在部门的上8级部门名称
*/
private String empDeptName8;
/**
* 对应员工工号
*/
private String empNo;
/**
* 13位票号,多个以,隔开
*/
private String ticketNo;
/**
* 所在部门的上7级部门名称
*/
private String empDeptName7;
/**
* 所在部门的上6级部门名称
*/
private String empDeptName6;
/**
* 所在部门的上5级部门名称
*/
private String empDeptName5;
/**
* 所在部门的上2级部门编号
*/
private String empDeptNo2;
/**
* 所在部门的上4级部门名称
*/
private String empDeptName4;
/**
* 所在部门的上3级部门编号
*/
private String empDeptNo3;
/**
* 所在部门的上3级部门名称
*/
private String empDeptName3;
/**
* 证件类型,NI身份证 PP护照 ID其他
*/
private String idType;
/**
* 所在部门的上2级部门名称
*/
private String empDeptName2;
/**
* 所在部门的上级部门编号
*/
private String empDeptNo1;
/**
* 所在部门的上10级部门名称
*/
private String empDeptName10;
/**
* 所在部门的上级部门名称
*/
private String empDeptName1;
/**
* 证件有效期,格式:yyyy-MM-dd
*/
private String passportPeriod;
/**
* 保险金额
*/
private Long insureAmount;
/**
* 性别,F女 M男
*/
private String sex;
/**
* 服务费
*/
private Long serviceFee;
/**
* 燃油税
*/
private Long tax;
/**
* 所在部门编号
*/
private String empDeptNo;
/**
* 票面价
*/
private Long salePrice;
/**
* 国籍名称
*/
private String nationName;
/**
* 所在部门的上10级部门编号
*/
private String empDeptNo10;
/**
* 手机号
*/
private String phoneNumber;
/**
* 机建
*/
private Long airportFee;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
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;
/**
* 活动机票订单航程对象 biz_order_airport_range
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_range")
public class OrderAirportRange extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 到达城市编号
*/
private String arriveCity;
/**
* 出发时间,格式:yyyy-MM-dd HH:mm
*/
private String departTime;
/**
* 舱位等级
*/
private String cabin;
/**
* 舱位折扣,格式:8.5折 1.3倍
*/
private String discount;
/**
* 签转规定
*/
private String changeRule;
/**
* 到达城市名称
*/
private String arriveCityName;
/**
* 出发城市名称
*/
private String departCityName;
/**
* 出发航站楼
*/
private String departTerminal;
/**
* 航班号
*/
private String flightNo;
/**
* 到达航站楼
*/
private String arriveTerminal;
/**
* 机型
*/
private String model;
/**
* 实际承运航班号
*/
private String shareFlightNo;
/**
* 出发机场英文名
*/
private String departAirportNameEn;
/**
* 航司二字码
*/
private String airline;
/**
* 到达机场英文名
*/
private String arriveAirportNameEn;
/**
* 出发机场三字码
*/
private String departAirport;
/**
* 退票规则
*/
private String refundRule;
/**
* 标准舱位运价
*/
private Long standardPrice;
/**
* 出发城市编号
*/
private String departCity;
/**
* 到达城市英文名
*/
private String arriveCityNameEn;
/**
* 是否经停,0否 1是
*/
private String stopFlag;
/**
* Y舱全价
*/
private Long yprice;
/**
* 到达机场名称
*/
private String arriveAirportName;
/**
* 航司名称
*/
private String airlineName;
/**
* 出发城市英文名
*/
private String departCityNameEn;
/**
* 到达时间,格式:yyyy-MM-dd HH:mm
*/
private String arriveTime;
/**
* 改签规则
*/
private String upgradeRule;
/**
* 推荐航班
*/
private String recomFlightNo;
/**
* 当天最低价
*/
private Long minPrice;
/**
* 舱位名称
*/
private String cabinName;
/**
* 最低价航班信息
*/
private String minFlightInfo;
/**
* 到达机场三字码
*/
private String arriveAirport;
/**
* 出发机场名称
*/
private String departAirportName;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
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;
/**
* 活动机票订单行程单信息对象 biz_order_airport_ticket
*
* @author hzh
* @date 2024-11-18
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("biz_order_airport_ticket")
public class OrderAirportTicket extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 打印价格 包含基建税费
*/
private Long printAmount;
/**
* 出行人姓名
*/
private String psgName;
/**
* 行程单号
*/
private String printInvoiceNo;
/**
* 票号
*/
private String tkno;
/**
* 打印时间
*/
private String printDate;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirport;
/**
* 活动机票订单业务对象 biz_order_airport
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirport.class, reverseConvertGenerate = false)
public class OrderAirportBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 人员code
*/
@NotBlank(message = "人员code不能为空", groups = {AddGroup.class, EditGroup.class})
private String personCode;
/**
* 订单号
*/
@NotBlank(message = "订单号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 大客户协议号
*/
@NotBlank(message = "大客户协议号不能为空", groups = {AddGroup.class, EditGroup.class})
private String protocolNo;
/**
* 航程机场中文,机场名称拼接
*/
@NotBlank(message = "航程机场中文,机场名称拼接不能为空", groups = {AddGroup.class, EditGroup.class})
private String voyageAirport;
/**
* 行程id
*/
@NotBlank(message = "行程id不能为空", groups = {AddGroup.class, EditGroup.class})
private String routeId;
/**
* 乘机人,多个以,隔开
*/
@NotBlank(message = "乘机人,多个以,隔开不能为空", groups = {AddGroup.class, EditGroup.class})
private String psg;
/**
* 是否显示退票操作,1是显示 2是不显示
*/
@NotBlank(message = "是否显示退票操作,1是显示 2是不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String isShowRefund;
/**
* 预订时间,格式:yyyy-MM-dd HH:mm:ss
*/
@NotBlank(message = "预订时间,格式:yyyy-MM-dd HH:mm:ss不能为空", groups = {AddGroup.class, EditGroup.class})
private String bookDatetime;
/**
* 舱位
*/
@NotBlank(message = "舱位不能为空", groups = {AddGroup.class, EditGroup.class})
private String cabin;
/**
* 是否显示撤销审批操作 1显示 0不显示
*/
@NotBlank(message = "是否显示撤销审批操作 1显示 0不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String isShowCancelApproval;
/**
* PNR编码
*/
@NotBlank(message = "PNR编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String pnrNo;
/**
* 订单状态代码
*/
@NotBlank(message = "订单状态代码不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderStatus;
/**
* 航班号
*/
@NotBlank(message = "航班号不能为空", groups = {AddGroup.class, EditGroup.class})
private String flightNo;
/**
* 是否显示支付操作,1是显示 2是不显示
*/
@NotBlank(message = "是否显示支付操作,1是显示 2是不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String isShowPay;
/**
* 航程城市中文,城市名称拼接
*/
@NotBlank(message = "航程城市中文,城市名称拼接不能为空", groups = {AddGroup.class, EditGroup.class})
private String voyageCity;
/**
* 备注信息
*/
@NotBlank(message = "备注信息不能为空", groups = {AddGroup.class, EditGroup.class})
private String bzbz;
/**
* 订单合计,票面价+机建+燃油+服务费+保险金额
*/
@NotNull(message = "订单合计,票面价+机建+燃油+服务费+保险金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderTotalAmount;
/**
* 是否显示送审操作,1是显示 2是不显示
*/
@NotBlank(message = "是否显示送审操作,1是显示 2是不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String isShowApproval;
/**
* PNR编码
*/
@NotBlank(message = "PNR编码不能为空", groups = {AddGroup.class, EditGroup.class})
private String pnrError;
/**
* 保险金额
*/
@NotNull(message = "保险金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long insureAmount;
/**
* 服务费合计
*/
@NotNull(message = "服务费合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long serviceFee;
/**
* 燃油合计
*/
@NotNull(message = "燃油合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long tax;
/**
* 是否支持协议欠款支付,1是显示 2是不显示
*/
@NotBlank(message = "是否支持协议欠款支付,1是显示 2是不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String sfzcxyqk;
/**
* 票面合计
*/
@NotNull(message = "票面合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long salePrice;
/**
* 起飞日期,格式:YYYY-MM-dd HH:mm
*/
@NotBlank(message = "起飞日期,格式:YYYY-MM-dd HH:mm不能为空", groups = {AddGroup.class, EditGroup.class})
private String departDate;
/**
* 是否显示改签操作,1是显示 2是不显示
*/
@NotBlank(message = "是否显示改签操作,1是显示 2是不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String isShowEndorse;
/**
* 航程,机场三字码拼接
*/
@NotBlank(message = "航程,机场三字码拼接不能为空", groups = {AddGroup.class, EditGroup.class})
private String voyage;
/**
* 订单状态名称
*/
@NotBlank(message = "订单状态名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderStatusName;
/**
* 出票时间,格式:yyyy-MM-dd HH:mm:ss
*/
@NotBlank(message = "出票时间,格式:yyyy-MM-dd HH:mm:ss不能为空", groups = {AddGroup.class, EditGroup.class})
private String drawDatetime;
/**
* 是否显示取消操作,1是显示 2是不显示
*/
@NotBlank(message = "是否显示取消操作,1是显示 2是不显示不能为空", groups = {AddGroup.class, EditGroup.class})
private String isShowCancel;
/**
* 订单来源名称
*/
@NotBlank(message = "订单来源名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderFrom;
/**
* 机建合计
*/
@NotNull(message = "机建合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long airportFee;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirportBusiness;
/**
* 活动机票订单差旅信息业务对象 biz_order_airport_business
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirportBusiness.class, reverseConvertGenerate = false)
public class OrderAirportBusinessBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 出差申请单号
*/
@NotBlank(message = "出差申请单号不能为空", groups = {AddGroup.class, EditGroup.class})
private String travelNo;
/**
* 联系人
*/
@NotBlank(message = "联系人不能为空", groups = {AddGroup.class, EditGroup.class})
private String linkMan;
/**
* 最后审批人姓名
*/
@NotBlank(message = "最后审批人姓名不能为空", groups = {AddGroup.class, EditGroup.class})
private String appUserName;
/**
* 审批规则名字
*/
@NotBlank(message = "审批规则名字不能为空", groups = {AddGroup.class, EditGroup.class})
private String appRuleName;
/**
* 企业预订人工号
*/
@NotBlank(message = "企业预订人工号不能为空", groups = {AddGroup.class, EditGroup.class})
private String bookerNo;
/**
* 是否违背差旅标准,0否 1是
*/
@NotBlank(message = "是否违背差旅标准,0否 1是不能为空", groups = {AddGroup.class, EditGroup.class})
private String isViolate;
/**
* 成本中心编号
*/
@NotBlank(message = "成本中心编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String costCenterNo;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String projectName;
/**
* 企业预订人姓名
*/
@NotBlank(message = "企业预订人姓名不能为空", groups = {AddGroup.class, EditGroup.class})
private String bookerName;
/**
* 出差事由
*/
@NotBlank(message = "出差事由不能为空", groups = {AddGroup.class, EditGroup.class})
private String travelRemark;
/**
* 违背原因代码
*/
@NotBlank(message = "违背原因代码不能为空", groups = {AddGroup.class, EditGroup.class})
private String reasonCode;
/**
* 联系邮箱
*/
@NotBlank(message = "联系邮箱不能为空", groups = {AddGroup.class, EditGroup.class})
private String linkEmail;
/**
* 违背事项名称
*/
@NotBlank(message = "违背事项名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String violateitem;
/**
* 项目编号
*/
@NotBlank(message = "项目编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String projectNo;
/**
* 最后审批人工号
*/
@NotBlank(message = "最后审批人工号不能为空", groups = {AddGroup.class, EditGroup.class})
private String appUserNo;
/**
* 违背原因名称
*/
@NotBlank(message = "违背原因名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String reasonDesc;
/**
* 最后审批时间,格式:yyyy-MM-dd HH:mm:ss
*/
@NotBlank(message = "最后审批时间,格式:yyyy-MM-dd HH:mm:ss不能为空", groups = {AddGroup.class, EditGroup.class})
private String appDatetime;
/**
* 违背事项代码
*/
@NotBlank(message = "违背事项代码不能为空", groups = {AddGroup.class, EditGroup.class})
private String violateitemCode;
/**
* 成本中心名称
*/
@NotBlank(message = "成本中心名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String costCenterName;
/**
* 联系手机
*/
@NotBlank(message = "联系手机不能为空", groups = {AddGroup.class, EditGroup.class})
private String linkMobile;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirportInsurance;
/**
* 活动机票订单保险业务对象 biz_order_airport_insurance
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirportInsurance.class, reverseConvertGenerate = false)
public class OrderAirportInsuranceBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 保险险种名称
*/
@NotBlank(message = "保险险种名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String xzmc;
/**
* 保单号
*/
@NotBlank(message = "保单号不能为空", groups = {AddGroup.class, EditGroup.class})
private String bdh;
/**
* 保险金额
*/
@NotNull(message = "保险金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long insureAmount;
/**
*
*/
@NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
private String bsex;
/**
* 行程说明
*/
@NotBlank(message = "行程说明不能为空", groups = {AddGroup.class, EditGroup.class})
private String xc;
/**
*
*/
@NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
private String bidType;
/**
* 保险订单编号
*/
@NotBlank(message = "保险订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String bxOrderNo;
/**
* 保单生效时间
*/
@NotBlank(message = "保单生效时间不能为空", groups = {AddGroup.class, EditGroup.class})
private String bdsxsj;
/**
* 投保状态名称
*/
@NotBlank(message = "投保状态名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String tbztName;
/**
* 销售说明
*/
@NotBlank(message = "销售说明不能为空", groups = {AddGroup.class, EditGroup.class})
private String xssm;
/**
* 航班号/车次
*/
@NotBlank(message = "航班号/车次不能为空", groups = {AddGroup.class, EditGroup.class})
private String hbh;
/**
*
*/
@NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
private String bidNo;
/**
* 保额说明
*/
@NotBlank(message = "保额说明不能为空", groups = {AddGroup.class, EditGroup.class})
private String besm;
/**
* 被保人
*/
@NotBlank(message = "被保人不能为空", groups = {AddGroup.class, EditGroup.class})
private String bbr;
/**
* 生效规则
*/
@NotBlank(message = "生效规则不能为空", groups = {AddGroup.class, EditGroup.class})
private String xsgzDesc;
/**
*
*/
@NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
private String bborn;
/**
* 产品名称
*/
@NotBlank(message = "产品名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String bxcpmc;
/**
* 保险公司名称
*/
@NotBlank(message = "保险公司名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String bxcpCompName;
/**
* 投保状态
*/
@NotBlank(message = "投保状态不能为空", groups = {AddGroup.class, EditGroup.class})
private String tbzt;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirportPay;
/**
* 活动机票订单支付信息业务对象 biz_order_airport_pay
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirportPay.class, reverseConvertGenerate = false)
public class OrderAirportPayBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 支付科目id
*/
@NotBlank(message = "支付科目id不能为空", groups = {AddGroup.class, EditGroup.class})
private String paySubject;
/**
* 支付方式名称
*/
@NotBlank(message = "支付方式名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String payMothedName;
/**
* 支付卡号
*/
@NotBlank(message = "支付卡号不能为空", groups = {AddGroup.class, EditGroup.class})
private String payBankCard;
/**
* 支付时间,格式:yyyy-MM-dd HH:mm:ss
*/
@NotBlank(message = "支付时间,格式:yyyy-MM-dd HH:mm:ss不能为空", groups = {AddGroup.class, EditGroup.class})
private String payDate;
/**
* 支付金额
*/
@NotNull(message = "支付金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long payAmount;
/**
* 支付科目名称
*/
@NotBlank(message = "支付科目名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String paySubjectName;
/**
* 支付流水号
*/
@NotBlank(message = "支付流水号不能为空", groups = {AddGroup.class, EditGroup.class})
private String payBillno;
/**
* 支付备注
*/
@NotBlank(message = "支付备注不能为空", groups = {AddGroup.class, EditGroup.class})
private String payRemark;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirportPsg;
/**
* 活动机票订单乘客业务对象 biz_order_airport_psg
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirportPsg.class, reverseConvertGenerate = false)
public class OrderAirportPsgBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 所在部门的上8级部门编号
*/
@NotBlank(message = "所在部门的上8级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo8;
/**
* 所在部门的上9级部门编号
*/
@NotBlank(message = "所在部门的上9级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo9;
/**
* 所在部门的上6级部门编号
*/
@NotBlank(message = "所在部门的上6级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo6;
/**
* 国籍
*/
@NotBlank(message = "国籍不能为空", groups = {AddGroup.class, EditGroup.class})
private String nation;
/**
* 所在部门的上7级部门编号
*/
@NotBlank(message = "所在部门的上7级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo7;
/**
* 所在部门名称
*/
@NotBlank(message = "所在部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDepName;
/**
* 所在部门的上4级部门编号
*/
@NotBlank(message = "所在部门的上4级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo4;
/**
* 所在部门的上5级部门编号
*/
@NotBlank(message = "所在部门的上5级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo5;
/**
* 旅客姓名
*/
@NotBlank(message = "旅客姓名不能为空", groups = {AddGroup.class, EditGroup.class})
private String psgName;
/**
* 出生日期,格式:yyyy-MM-dd
*/
@NotBlank(message = "出生日期,格式:yyyy-MM-dd不能为空", groups = {AddGroup.class, EditGroup.class})
private String birthDate;
/**
* 票价小计
*/
@NotNull(message = "票价小计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long psgTotalAmount;
/**
* 证件签发地
*/
@NotBlank(message = "证件签发地不能为空", groups = {AddGroup.class, EditGroup.class})
private String placeOfIssue;
/**
* 里程卡号
*/
@NotBlank(message = "里程卡号不能为空", groups = {AddGroup.class, EditGroup.class})
private String mileageCardNo;
/**
* 证件号码
*/
@NotBlank(message = "证件号码不能为空", groups = {AddGroup.class, EditGroup.class})
private String idNo;
/**
* 所在部门的上9级部门名称
*/
@NotBlank(message = "所在部门的上9级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName9;
/**
* 所在部门的上8级部门名称
*/
@NotBlank(message = "所在部门的上8级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName8;
/**
* 对应员工工号
*/
@NotBlank(message = "对应员工工号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empNo;
/**
* 13位票号,多个以,隔开
*/
@NotBlank(message = "13位票号,多个以,隔开不能为空", groups = {AddGroup.class, EditGroup.class})
private String ticketNo;
/**
* 所在部门的上7级部门名称
*/
@NotBlank(message = "所在部门的上7级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName7;
/**
* 所在部门的上6级部门名称
*/
@NotBlank(message = "所在部门的上6级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName6;
/**
* 所在部门的上5级部门名称
*/
@NotBlank(message = "所在部门的上5级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName5;
/**
* 所在部门的上2级部门编号
*/
@NotBlank(message = "所在部门的上2级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo2;
/**
* 所在部门的上4级部门名称
*/
@NotBlank(message = "所在部门的上4级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName4;
/**
* 所在部门的上3级部门编号
*/
@NotBlank(message = "所在部门的上3级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo3;
/**
* 所在部门的上3级部门名称
*/
@NotBlank(message = "所在部门的上3级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName3;
/**
* 证件类型,NI身份证 PP护照 ID其他
*/
@NotBlank(message = "证件类型,NI身份证 PP护照 ID其他不能为空", groups = {AddGroup.class, EditGroup.class})
private String idType;
/**
* 所在部门的上2级部门名称
*/
@NotBlank(message = "所在部门的上2级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName2;
/**
* 所在部门的上级部门编号
*/
@NotBlank(message = "所在部门的上级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo1;
/**
* 所在部门的上10级部门名称
*/
@NotBlank(message = "所在部门的上10级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName10;
/**
* 所在部门的上级部门名称
*/
@NotBlank(message = "所在部门的上级部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptName1;
/**
* 证件有效期,格式:yyyy-MM-dd
*/
@NotBlank(message = "证件有效期,格式:yyyy-MM-dd不能为空", groups = {AddGroup.class, EditGroup.class})
private String passportPeriod;
/**
* 保险金额
*/
@NotNull(message = "保险金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long insureAmount;
/**
* 性别,F女 M男
*/
@NotBlank(message = "性别,F女 M男不能为空", groups = {AddGroup.class, EditGroup.class})
private String sex;
/**
* 服务费
*/
@NotNull(message = "服务费不能为空", groups = {AddGroup.class, EditGroup.class})
private Long serviceFee;
/**
* 燃油税
*/
@NotNull(message = "燃油税不能为空", groups = {AddGroup.class, EditGroup.class})
private Long tax;
/**
* 所在部门编号
*/
@NotBlank(message = "所在部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo;
/**
* 票面价
*/
@NotNull(message = "票面价不能为空", groups = {AddGroup.class, EditGroup.class})
private Long salePrice;
/**
* 国籍名称
*/
@NotBlank(message = "国籍名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String nationName;
/**
* 所在部门的上10级部门编号
*/
@NotBlank(message = "所在部门的上10级部门编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String empDeptNo10;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddGroup.class, EditGroup.class})
private String phoneNumber;
/**
* 机建
*/
@NotNull(message = "机建不能为空", groups = {AddGroup.class, EditGroup.class})
private Long airportFee;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirportRange;
/**
* 活动机票订单航程业务对象 biz_order_airport_range
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirportRange.class, reverseConvertGenerate = false)
public class OrderAirportRangeBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 到达城市编号
*/
@NotBlank(message = "到达城市编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveCity;
/**
* 出发时间,格式:yyyy-MM-dd HH:mm
*/
@NotBlank(message = "出发时间,格式:yyyy-MM-dd HH:mm不能为空", groups = {AddGroup.class, EditGroup.class})
private String departTime;
/**
* 舱位等级
*/
@NotBlank(message = "舱位等级不能为空", groups = {AddGroup.class, EditGroup.class})
private String cabin;
/**
* 舱位折扣,格式:8.5折 1.3倍
*/
@NotBlank(message = "舱位折扣,格式:8.5折 1.3倍不能为空", groups = {AddGroup.class, EditGroup.class})
private String discount;
/**
* 签转规定
*/
@NotBlank(message = "签转规定不能为空", groups = {AddGroup.class, EditGroup.class})
private String changeRule;
/**
* 到达城市名称
*/
@NotBlank(message = "到达城市名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveCityName;
/**
* 出发城市名称
*/
@NotBlank(message = "出发城市名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String departCityName;
/**
* 出发航站楼
*/
@NotBlank(message = "出发航站楼不能为空", groups = {AddGroup.class, EditGroup.class})
private String departTerminal;
/**
* 航班号
*/
@NotBlank(message = "航班号不能为空", groups = {AddGroup.class, EditGroup.class})
private String flightNo;
/**
* 到达航站楼
*/
@NotBlank(message = "到达航站楼不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveTerminal;
/**
* 机型
*/
@NotBlank(message = "机型不能为空", groups = {AddGroup.class, EditGroup.class})
private String model;
/**
* 实际承运航班号
*/
@NotBlank(message = "实际承运航班号不能为空", groups = {AddGroup.class, EditGroup.class})
private String shareFlightNo;
/**
* 出发机场英文名
*/
@NotBlank(message = "出发机场英文名不能为空", groups = {AddGroup.class, EditGroup.class})
private String departAirportNameEn;
/**
* 航司二字码
*/
@NotBlank(message = "航司二字码不能为空", groups = {AddGroup.class, EditGroup.class})
private String airline;
/**
* 到达机场英文名
*/
@NotBlank(message = "到达机场英文名不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveAirportNameEn;
/**
* 出发机场三字码
*/
@NotBlank(message = "出发机场三字码不能为空", groups = {AddGroup.class, EditGroup.class})
private String departAirport;
/**
* 退票规则
*/
@NotBlank(message = "退票规则不能为空", groups = {AddGroup.class, EditGroup.class})
private String refundRule;
/**
* 标准舱位运价
*/
@NotNull(message = "标准舱位运价不能为空", groups = {AddGroup.class, EditGroup.class})
private Long standardPrice;
/**
* 出发城市编号
*/
@NotBlank(message = "出发城市编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String departCity;
/**
* 到达城市英文名
*/
@NotBlank(message = "到达城市英文名不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveCityNameEn;
/**
* 是否经停,0否 1是
*/
@NotBlank(message = "是否经停,0否 1是不能为空", groups = {AddGroup.class, EditGroup.class})
private String stopFlag;
/**
* Y舱全价
*/
@NotNull(message = "Y舱全价不能为空", groups = {AddGroup.class, EditGroup.class})
private Long yprice;
/**
* 到达机场名称
*/
@NotBlank(message = "到达机场名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveAirportName;
/**
* 航司名称
*/
@NotBlank(message = "航司名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String airlineName;
/**
* 出发城市英文名
*/
@NotBlank(message = "出发城市英文名不能为空", groups = {AddGroup.class, EditGroup.class})
private String departCityNameEn;
/**
* 到达时间,格式:yyyy-MM-dd HH:mm
*/
@NotBlank(message = "到达时间,格式:yyyy-MM-dd HH:mm不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveTime;
/**
* 改签规则
*/
@NotBlank(message = "改签规则不能为空", groups = {AddGroup.class, EditGroup.class})
private String upgradeRule;
/**
* 推荐航班
*/
@NotBlank(message = "推荐航班不能为空", groups = {AddGroup.class, EditGroup.class})
private String recomFlightNo;
/**
* 当天最低价
*/
@NotNull(message = "当天最低价不能为空", groups = {AddGroup.class, EditGroup.class})
private Long minPrice;
/**
* 舱位名称
*/
@NotBlank(message = "舱位名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String cabinName;
/**
* 最低价航班信息
*/
@NotBlank(message = "最低价航班信息不能为空", groups = {AddGroup.class, EditGroup.class})
private String minFlightInfo;
/**
* 到达机场三字码
*/
@NotBlank(message = "到达机场三字码不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveAirport;
/**
* 出发机场名称
*/
@NotBlank(message = "出发机场名称不能为空", groups = {AddGroup.class, EditGroup.class})
private String departAirportName;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderAirportTicket;
/**
* 活动机票订单行程单信息业务对象 biz_order_airport_ticket
*
* @author hzh
* @date 2024-11-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderAirportTicket.class, reverseConvertGenerate = false)
public class OrderAirportTicketBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
private String orderNo;
/**
* 打印价格 包含基建税费
*/
@NotNull(message = "打印价格 包含基建税费不能为空", groups = {AddGroup.class, EditGroup.class})
private Long printAmount;
/**
* 出行人姓名
*/
@NotBlank(message = "出行人姓名不能为空", groups = {AddGroup.class, EditGroup.class})
private String psgName;
/**
* 行程单号
*/
@NotBlank(message = "行程单号不能为空", groups = {AddGroup.class, EditGroup.class})
private String printInvoiceNo;
/**
* 票号
*/
@NotBlank(message = "票号不能为空", groups = {AddGroup.class, EditGroup.class})
private String tkno;
/**
* 打印时间
*/
@NotBlank(message = "打印时间不能为空", groups = {AddGroup.class, EditGroup.class})
private String printDate;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirportBusiness;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单差旅信息视图对象 biz_order_airport_business
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirportBusiness.class)
public class OrderAirportBusinessVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 出差申请单号
*/
@ExcelProperty(value = "出差申请单号")
private String travelNo;
/**
* 联系人
*/
@ExcelProperty(value = "联系人")
private String linkMan;
/**
* 最后审批人姓名
*/
@ExcelProperty(value = "最后审批人姓名")
private String appUserName;
/**
* 审批规则名字
*/
@ExcelProperty(value = "审批规则名字")
private String appRuleName;
/**
* 企业预订人工号
*/
@ExcelProperty(value = "企业预订人工号")
private String bookerNo;
/**
* 是否违背差旅标准,0否 1是
*/
@ExcelProperty(value = "是否违背差旅标准,0否 1是")
private String isViolate;
/**
* 成本中心编号
*/
@ExcelProperty(value = "成本中心编号")
private String costCenterNo;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
private String projectName;
/**
* 企业预订人姓名
*/
@ExcelProperty(value = "企业预订人姓名")
private String bookerName;
/**
* 出差事由
*/
@ExcelProperty(value = "出差事由")
private String travelRemark;
/**
* 违背原因代码
*/
@ExcelProperty(value = "违背原因代码")
private String reasonCode;
/**
* 联系邮箱
*/
@ExcelProperty(value = "联系邮箱")
private String linkEmail;
/**
* 违背事项名称
*/
@ExcelProperty(value = "违背事项名称")
private String violateitem;
/**
* 项目编号
*/
@ExcelProperty(value = "项目编号")
private String projectNo;
/**
* 最后审批人工号
*/
@ExcelProperty(value = "最后审批人工号")
private String appUserNo;
/**
* 违背原因名称
*/
@ExcelProperty(value = "违背原因名称")
private String reasonDesc;
/**
* 最后审批时间,格式:yyyy-MM-dd HH:mm:ss
*/
@ExcelProperty(value = "最后审批时间,格式:yyyy-MM-dd HH:mm:ss")
private String appDatetime;
/**
* 违背事项代码
*/
@ExcelProperty(value = "违背事项代码")
private String violateitemCode;
/**
* 成本中心名称
*/
@ExcelProperty(value = "成本中心名称")
private String costCenterName;
/**
* 联系手机
*/
@ExcelProperty(value = "联系手机")
private String linkMobile;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirportInsurance;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单保险视图对象 biz_order_airport_insurance
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirportInsurance.class)
public class OrderAirportInsuranceVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 保险险种名称
*/
@ExcelProperty(value = "保险险种名称")
private String xzmc;
/**
* 保单号
*/
@ExcelProperty(value = "保单号")
private String bdh;
/**
* 保险金额
*/
@ExcelProperty(value = "保险金额")
private Long insureAmount;
/**
*
*/
@ExcelProperty(value = "")
private String bsex;
/**
* 行程说明
*/
@ExcelProperty(value = "行程说明")
private String xc;
/**
*
*/
@ExcelProperty(value = "")
private String bidType;
/**
* 保险订单编号
*/
@ExcelProperty(value = "保险订单编号")
private String bxOrderNo;
/**
* 保单生效时间
*/
@ExcelProperty(value = "保单生效时间")
private String bdsxsj;
/**
* 投保状态名称
*/
@ExcelProperty(value = "投保状态名称")
private String tbztName;
/**
* 销售说明
*/
@ExcelProperty(value = "销售说明")
private String xssm;
/**
* 航班号/车次
*/
@ExcelProperty(value = "航班号/车次")
private String hbh;
/**
*
*/
@ExcelProperty(value = "")
private String bidNo;
/**
* 保额说明
*/
@ExcelProperty(value = "保额说明")
private String besm;
/**
* 被保人
*/
@ExcelProperty(value = "被保人")
private String bbr;
/**
* 生效规则
*/
@ExcelProperty(value = "生效规则")
private String xsgzDesc;
/**
*
*/
@ExcelProperty(value = "")
private String bborn;
/**
* 产品名称
*/
@ExcelProperty(value = "产品名称")
private String bxcpmc;
/**
* 保险公司名称
*/
@ExcelProperty(value = "保险公司名称")
private String bxcpCompName;
/**
* 投保状态
*/
@ExcelProperty(value = "投保状态")
private String tbzt;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirportPay;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单支付信息视图对象 biz_order_airport_pay
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirportPay.class)
public class OrderAirportPayVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 支付科目id
*/
@ExcelProperty(value = "支付科目id")
private String paySubject;
/**
* 支付方式名称
*/
@ExcelProperty(value = "支付方式名称")
private String payMothedName;
/**
* 支付卡号
*/
@ExcelProperty(value = "支付卡号")
private String payBankCard;
/**
* 支付时间,格式:yyyy-MM-dd HH:mm:ss
*/
@ExcelProperty(value = "支付时间,格式:yyyy-MM-dd HH:mm:ss")
private String payDate;
/**
* 支付金额
*/
@ExcelProperty(value = "支付金额")
private Long payAmount;
/**
* 支付科目名称
*/
@ExcelProperty(value = "支付科目名称")
private String paySubjectName;
/**
* 支付流水号
*/
@ExcelProperty(value = "支付流水号")
private String payBillno;
/**
* 支付备注
*/
@ExcelProperty(value = "支付备注")
private String payRemark;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirportPsg;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单乘客视图对象 biz_order_airport_psg
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirportPsg.class)
public class OrderAirportPsgVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 所在部门的上8级部门编号
*/
@ExcelProperty(value = "所在部门的上8级部门编号")
private String empDeptNo8;
/**
* 所在部门的上9级部门编号
*/
@ExcelProperty(value = "所在部门的上9级部门编号")
private String empDeptNo9;
/**
* 所在部门的上6级部门编号
*/
@ExcelProperty(value = "所在部门的上6级部门编号")
private String empDeptNo6;
/**
* 国籍
*/
@ExcelProperty(value = "国籍")
private String nation;
/**
* 所在部门的上7级部门编号
*/
@ExcelProperty(value = "所在部门的上7级部门编号")
private String empDeptNo7;
/**
* 所在部门名称
*/
@ExcelProperty(value = "所在部门名称")
private String empDepName;
/**
* 所在部门的上4级部门编号
*/
@ExcelProperty(value = "所在部门的上4级部门编号")
private String empDeptNo4;
/**
* 所在部门的上5级部门编号
*/
@ExcelProperty(value = "所在部门的上5级部门编号")
private String empDeptNo5;
/**
* 旅客姓名
*/
@ExcelProperty(value = "旅客姓名")
private String psgName;
/**
* 出生日期,格式:yyyy-MM-dd
*/
@ExcelProperty(value = "出生日期,格式:yyyy-MM-dd")
private String birthDate;
/**
* 票价小计
*/
@ExcelProperty(value = "票价小计")
private Long psgTotalAmount;
/**
* 证件签发地
*/
@ExcelProperty(value = "证件签发地")
private String placeOfIssue;
/**
* 里程卡号
*/
@ExcelProperty(value = "里程卡号")
private String mileageCardNo;
/**
* 证件号码
*/
@ExcelProperty(value = "证件号码")
private String idNo;
/**
* 所在部门的上9级部门名称
*/
@ExcelProperty(value = "所在部门的上9级部门名称")
private String empDeptName9;
/**
* 所在部门的上8级部门名称
*/
@ExcelProperty(value = "所在部门的上8级部门名称")
private String empDeptName8;
/**
* 对应员工工号
*/
@ExcelProperty(value = "对应员工工号")
private String empNo;
/**
* 13位票号,多个以,隔开
*/
@ExcelProperty(value = "13位票号,多个以,隔开")
private String ticketNo;
/**
* 所在部门的上7级部门名称
*/
@ExcelProperty(value = "所在部门的上7级部门名称")
private String empDeptName7;
/**
* 所在部门的上6级部门名称
*/
@ExcelProperty(value = "所在部门的上6级部门名称")
private String empDeptName6;
/**
* 所在部门的上5级部门名称
*/
@ExcelProperty(value = "所在部门的上5级部门名称")
private String empDeptName5;
/**
* 所在部门的上2级部门编号
*/
@ExcelProperty(value = "所在部门的上2级部门编号")
private String empDeptNo2;
/**
* 所在部门的上4级部门名称
*/
@ExcelProperty(value = "所在部门的上4级部门名称")
private String empDeptName4;
/**
* 所在部门的上3级部门编号
*/
@ExcelProperty(value = "所在部门的上3级部门编号")
private String empDeptNo3;
/**
* 所在部门的上3级部门名称
*/
@ExcelProperty(value = "所在部门的上3级部门名称")
private String empDeptName3;
/**
* 证件类型,NI身份证 PP护照 ID其他
*/
@ExcelProperty(value = "证件类型,NI身份证 PP护照 ID其他")
private String idType;
/**
* 所在部门的上2级部门名称
*/
@ExcelProperty(value = "所在部门的上2级部门名称")
private String empDeptName2;
/**
* 所在部门的上级部门编号
*/
@ExcelProperty(value = "所在部门的上级部门编号")
private String empDeptNo1;
/**
* 所在部门的上10级部门名称
*/
@ExcelProperty(value = "所在部门的上10级部门名称")
private String empDeptName10;
/**
* 所在部门的上级部门名称
*/
@ExcelProperty(value = "所在部门的上级部门名称")
private String empDeptName1;
/**
* 证件有效期,格式:yyyy-MM-dd
*/
@ExcelProperty(value = "证件有效期,格式:yyyy-MM-dd")
private String passportPeriod;
/**
* 保险金额
*/
@ExcelProperty(value = "保险金额")
private Long insureAmount;
/**
* 性别,F女 M男
*/
@ExcelProperty(value = "性别,F女 M男")
private String sex;
/**
* 服务费
*/
@ExcelProperty(value = "服务费")
private Long serviceFee;
/**
* 燃油税
*/
@ExcelProperty(value = "燃油税")
private Long tax;
/**
* 所在部门编号
*/
@ExcelProperty(value = "所在部门编号")
private String empDeptNo;
/**
* 票面价
*/
@ExcelProperty(value = "票面价")
private Long salePrice;
/**
* 国籍名称
*/
@ExcelProperty(value = "国籍名称")
private String nationName;
/**
* 所在部门的上10级部门编号
*/
@ExcelProperty(value = "所在部门的上10级部门编号")
private String empDeptNo10;
/**
* 手机号
*/
@ExcelProperty(value = "手机号")
private String phoneNumber;
/**
* 机建
*/
@ExcelProperty(value = "机建")
private Long airportFee;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirportRange;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单航程视图对象 biz_order_airport_range
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirportRange.class)
public class OrderAirportRangeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 到达城市编号
*/
@ExcelProperty(value = "到达城市编号")
private String arriveCity;
/**
* 出发时间,格式:yyyy-MM-dd HH:mm
*/
@ExcelProperty(value = "出发时间,格式:yyyy-MM-dd HH:mm")
private String departTime;
/**
* 舱位等级
*/
@ExcelProperty(value = "舱位等级")
private String cabin;
/**
* 舱位折扣,格式:8.5折 1.3倍
*/
@ExcelProperty(value = "舱位折扣,格式:8.5折 1.3倍")
private String discount;
/**
* 签转规定
*/
@ExcelProperty(value = "签转规定")
private String changeRule;
/**
* 到达城市名称
*/
@ExcelProperty(value = "到达城市名称")
private String arriveCityName;
/**
* 出发城市名称
*/
@ExcelProperty(value = "出发城市名称")
private String departCityName;
/**
* 出发航站楼
*/
@ExcelProperty(value = "出发航站楼")
private String departTerminal;
/**
* 航班号
*/
@ExcelProperty(value = "航班号")
private String flightNo;
/**
* 到达航站楼
*/
@ExcelProperty(value = "到达航站楼")
private String arriveTerminal;
/**
* 机型
*/
@ExcelProperty(value = "机型")
private String model;
/**
* 实际承运航班号
*/
@ExcelProperty(value = "实际承运航班号")
private String shareFlightNo;
/**
* 出发机场英文名
*/
@ExcelProperty(value = "出发机场英文名")
private String departAirportNameEn;
/**
* 航司二字码
*/
@ExcelProperty(value = "航司二字码")
private String airline;
/**
* 到达机场英文名
*/
@ExcelProperty(value = "到达机场英文名")
private String arriveAirportNameEn;
/**
* 出发机场三字码
*/
@ExcelProperty(value = "出发机场三字码")
private String departAirport;
/**
* 退票规则
*/
@ExcelProperty(value = "退票规则")
private String refundRule;
/**
* 标准舱位运价
*/
@ExcelProperty(value = "标准舱位运价")
private Long standardPrice;
/**
* 出发城市编号
*/
@ExcelProperty(value = "出发城市编号")
private String departCity;
/**
* 到达城市英文名
*/
@ExcelProperty(value = "到达城市英文名")
private String arriveCityNameEn;
/**
* 是否经停,0否 1是
*/
@ExcelProperty(value = "是否经停,0否 1是")
private String stopFlag;
/**
* Y舱全价
*/
@ExcelProperty(value = "Y舱全价")
private Long yprice;
/**
* 到达机场名称
*/
@ExcelProperty(value = "到达机场名称")
private String arriveAirportName;
/**
* 航司名称
*/
@ExcelProperty(value = "航司名称")
private String airlineName;
/**
* 出发城市英文名
*/
@ExcelProperty(value = "出发城市英文名")
private String departCityNameEn;
/**
* 到达时间,格式:yyyy-MM-dd HH:mm
*/
@ExcelProperty(value = "到达时间,格式:yyyy-MM-dd HH:mm")
private String arriveTime;
/**
* 改签规则
*/
@ExcelProperty(value = "改签规则")
private String upgradeRule;
/**
* 推荐航班
*/
@ExcelProperty(value = "推荐航班")
private String recomFlightNo;
/**
* 当天最低价
*/
@ExcelProperty(value = "当天最低价")
private Long minPrice;
/**
* 舱位名称
*/
@ExcelProperty(value = "舱位名称")
private String cabinName;
/**
* 最低价航班信息
*/
@ExcelProperty(value = "最低价航班信息")
private String minFlightInfo;
/**
* 到达机场三字码
*/
@ExcelProperty(value = "到达机场三字码")
private String arriveAirport;
/**
* 出发机场名称
*/
@ExcelProperty(value = "出发机场名称")
private String departAirportName;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirportTicket;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单行程单信息视图对象 biz_order_airport_ticket
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirportTicket.class)
public class OrderAirportTicketVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 打印价格 包含基建税费
*/
@ExcelProperty(value = "打印价格 包含基建税费")
private Long printAmount;
/**
* 出行人姓名
*/
@ExcelProperty(value = "出行人姓名")
private String psgName;
/**
* 行程单号
*/
@ExcelProperty(value = "行程单号")
private String printInvoiceNo;
/**
* 票号
*/
@ExcelProperty(value = "票号")
private String tkno;
/**
* 打印时间
*/
@ExcelProperty(value = "打印时间")
private String printDate;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderAirport;
import java.io.Serial;
import java.io.Serializable;
/**
* 活动机票订单视图对象 biz_order_airport
*
* @author hzh
* @date 2024-11-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderAirport.class)
public class OrderAirportVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 人员code
*/
@ExcelProperty(value = "人员code")
private String personCode;
/**
* 订单号
*/
@ExcelProperty(value = "订单号")
private String orderNo;
/**
* 大客户协议号
*/
@ExcelProperty(value = "大客户协议号")
private String protocolNo;
/**
* 航程机场中文,机场名称拼接
*/
@ExcelProperty(value = "航程机场中文,机场名称拼接")
private String voyageAirport;
/**
* 行程id
*/
@ExcelProperty(value = "行程id")
private String routeId;
/**
* 乘机人,多个以,隔开
*/
@ExcelProperty(value = "乘机人,多个以,隔开")
private String psg;
/**
* 是否显示退票操作,1是显示 2是不显示
*/
@ExcelProperty(value = "是否显示退票操作,1是显示 2是不显示")
private String isShowRefund;
/**
* 预订时间,格式:yyyy-MM-dd HH:mm:ss
*/
@ExcelProperty(value = "预订时间,格式:yyyy-MM-dd HH:mm:ss")
private String bookDatetime;
/**
* 舱位
*/
@ExcelProperty(value = "舱位")
private String cabin;
/**
* 是否显示撤销审批操作 1显示 0不显示
*/
@ExcelProperty(value = "是否显示撤销审批操作 1显示 0不显示")
private String isShowCancelApproval;
/**
* PNR编码
*/
@ExcelProperty(value = "PNR编码")
private String pnrNo;
/**
* 订单状态代码
*/
@ExcelProperty(value = "订单状态代码")
private String orderStatus;
/**
* 航班号
*/
@ExcelProperty(value = "航班号")
private String flightNo;
/**
* 是否显示支付操作,1是显示 2是不显示
*/
@ExcelProperty(value = "是否显示支付操作,1是显示 2是不显示")
private String isShowPay;
/**
* 航程城市中文,城市名称拼接
*/
@ExcelProperty(value = "航程城市中文,城市名称拼接")
private String voyageCity;
/**
* 备注信息
*/
@ExcelProperty(value = "备注信息")
private String bzbz;
/**
* 订单合计,票面价+机建+燃油+服务费+保险金额
*/
@ExcelProperty(value = "订单合计,票面价+机建+燃油+服务费+保险金额")
private Long orderTotalAmount;
/**
* 是否显示送审操作,1是显示 2是不显示
*/
@ExcelProperty(value = "是否显示送审操作,1是显示 2是不显示")
private String isShowApproval;
/**
* PNR编码
*/
@ExcelProperty(value = "PNR编码")
private String pnrError;
/**
* 保险金额
*/
@ExcelProperty(value = "保险金额")
private Long insureAmount;
/**
* 服务费合计
*/
@ExcelProperty(value = "服务费合计")
private Long serviceFee;
/**
* 燃油合计
*/
@ExcelProperty(value = "燃油合计")
private Long tax;
/**
* 是否支持协议欠款支付,1是显示 2是不显示
*/
@ExcelProperty(value = "是否支持协议欠款支付,1是显示 2是不显示")
private String sfzcxyqk;
/**
* 票面合计
*/
@ExcelProperty(value = "票面合计")
private Long salePrice;
/**
* 起飞日期,格式:YYYY-MM-dd HH:mm
*/
@ExcelProperty(value = "起飞日期,格式:YYYY-MM-dd HH:mm")
private String departDate;
/**
* 是否显示改签操作,1是显示 2是不显示
*/
@ExcelProperty(value = "是否显示改签操作,1是显示 2是不显示")
private String isShowEndorse;
/**
* 航程,机场三字码拼接
*/
@ExcelProperty(value = "航程,机场三字码拼接")
private String voyage;
/**
* 订单状态名称
*/
@ExcelProperty(value = "订单状态名称")
private String orderStatusName;
/**
* 出票时间,格式:yyyy-MM-dd HH:mm:ss
*/
@ExcelProperty(value = "出票时间,格式:yyyy-MM-dd HH:mm:ss")
private String drawDatetime;
/**
* 是否显示取消操作,1是显示 2是不显示
*/
@ExcelProperty(value = "是否显示取消操作,1是显示 2是不显示")
private String isShowCancel;
/**
* 订单来源名称
*/
@ExcelProperty(value = "订单来源名称")
private String orderFrom;
/**
* 机建合计
*/
@ExcelProperty(value = "机建合计")
private Long airportFee;
}
package org.dromara.server.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.server.api.RemoteOrderService;
import org.springframework.stereotype.Service;
/**
* @author hzh
* @date 2024-11-18
* @desc 订单相关服务
**/
@RequiredArgsConstructor
@Service
@DubboService
public class RemoteOrderServiceImpl implements RemoteOrderService {
@Override
public void updateAirportOrder() {
}
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirportBusiness;
import org.dromara.server.domain.vo.OrderAirportBusinessVo;
/**
* 活动机票订单差旅信息Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportBusinessMapper extends BaseMapperPlus<OrderAirportBusiness, OrderAirportBusinessVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirportInsurance;
import org.dromara.server.domain.vo.OrderAirportInsuranceVo;
/**
* 活动机票订单保险Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportInsuranceMapper extends BaseMapperPlus<OrderAirportInsurance, OrderAirportInsuranceVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirport;
import org.dromara.server.domain.vo.OrderAirportVo;
/**
* 活动机票订单Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportMapper extends BaseMapperPlus<OrderAirport, OrderAirportVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirportPay;
import org.dromara.server.domain.vo.OrderAirportPayVo;
/**
* 活动机票订单支付信息Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportPayMapper extends BaseMapperPlus<OrderAirportPay, OrderAirportPayVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirportPsg;
import org.dromara.server.domain.vo.OrderAirportPsgVo;
/**
* 活动机票订单乘客Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportPsgMapper extends BaseMapperPlus<OrderAirportPsg, OrderAirportPsgVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirportRange;
import org.dromara.server.domain.vo.OrderAirportRangeVo;
/**
* 活动机票订单航程Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportRangeMapper extends BaseMapperPlus<OrderAirportRange, OrderAirportRangeVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.OrderAirportTicket;
import org.dromara.server.domain.vo.OrderAirportTicketVo;
/**
* 活动机票订单行程单信息Mapper接口
*
* @author hzh
* @date 2024-11-18
*/
public interface OrderAirportTicketMapper extends BaseMapperPlus<OrderAirportTicket, OrderAirportTicketVo> {
}
package org.dromara.server.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.vo.OrderAirportVo;
import java.util.Collection;
import java.util.List;
/**
* 活动机票订单Service接口
*
* @author hzh
* @date 2024-11-18
*/
public interface IOrderAirportService {
/**
* 查询活动机票订单
*
* @param id 主键
* @return 活动机票订单
*/
OrderAirportVo queryById(Long id);
/**
* 分页查询活动机票订单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 活动机票订单分页列表
*/
TableDataInfo<OrderAirportVo> queryPageList(OrderAirportBo bo, PageQuery pageQuery);
/**
* 查询符合条件的活动机票订单列表
*
* @param bo 查询条件
* @return 活动机票订单列表
*/
List<OrderAirportVo> queryList(OrderAirportBo bo);
/**
* 新增活动机票订单
*
* @param bo 活动机票订单
* @return 是否新增成功
*/
Boolean insertByBo(OrderAirportBo bo);
/**
* 修改活动机票订单
*
* @param bo 活动机票订单
* @return 是否修改成功
*/
Boolean updateByBo(OrderAirportBo bo);
/**
* 校验并批量删除活动机票订单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 批量保存订单
*
* @param userId 用户id
* @param orderNoList 订单号列表
*/
void batchSaveOrder(String userId, List<String> orderNoList);
/**
* 更新机票信息
*
* @param orderNoList 订单号列表
*/
void updateAirportInfo(List<String> orderNoList);
}
package org.dromara.server.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.ys.model.res.airport.QueryTkOrderModel;
import org.dromara.common.ys.model.res.airport.other.*;
import org.dromara.common.ys.service.IAirportService;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IOrderAirportService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ScheduledExecutorService;
/**
* 活动机票订单Service业务层处理
*
* @author hzh
* @date 2024-11-18
*/
@RequiredArgsConstructor
@Service
public class OrderAirportServiceImpl implements IOrderAirportService {
private final OrderAirportMapper baseMapper;
private final OrderAirportPsgMapper psgMapper;
private final OrderAirportPayMapper payMapper;
private final OrderAirportRangeMapper rangeMapper;
private final OrderAirportTicketMapper ticketMapper;
private final OrderAirportInsuranceMapper insuranceMapper;
private final OrderAirportBusinessMapper businessMapper;
private final IAirportService airportService;
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
/**
* 查询活动机票订单
*
* @param id 主键
* @return 活动机票订单
*/
@Override
public OrderAirportVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
/**
* 分页查询活动机票订单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 活动机票订单分页列表
*/
@Override
public TableDataInfo<OrderAirportVo> queryPageList(OrderAirportBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<OrderAirport> lqw = buildQueryWrapper(bo);
Page<OrderAirportVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的活动机票订单列表
*
* @param bo 查询条件
* @return 活动机票订单列表
*/
@Override
public List<OrderAirportVo> queryList(OrderAirportBo bo) {
LambdaQueryWrapper<OrderAirport> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<OrderAirport> buildQueryWrapper(OrderAirportBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<OrderAirport> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getPersonCode()), OrderAirport::getPersonCode, bo.getPersonCode());
lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), OrderAirport::getOrderNo, bo.getOrderNo());
lqw.eq(StringUtils.isNotBlank(bo.getProtocolNo()), OrderAirport::getProtocolNo, bo.getProtocolNo());
lqw.eq(StringUtils.isNotBlank(bo.getVoyageAirport()), OrderAirport::getVoyageAirport, bo.getVoyageAirport());
lqw.eq(StringUtils.isNotBlank(bo.getRouteId()), OrderAirport::getRouteId, bo.getRouteId());
lqw.eq(StringUtils.isNotBlank(bo.getPsg()), OrderAirport::getPsg, bo.getPsg());
lqw.eq(StringUtils.isNotBlank(bo.getIsShowRefund()), OrderAirport::getIsShowRefund, bo.getIsShowRefund());
lqw.eq(StringUtils.isNotBlank(bo.getBookDatetime()), OrderAirport::getBookDatetime, bo.getBookDatetime());
lqw.eq(StringUtils.isNotBlank(bo.getCabin()), OrderAirport::getCabin, bo.getCabin());
lqw.eq(StringUtils.isNotBlank(bo.getIsShowCancelApproval()), OrderAirport::getIsShowCancelApproval, bo.getIsShowCancelApproval());
lqw.eq(StringUtils.isNotBlank(bo.getPnrNo()), OrderAirport::getPnrNo, bo.getPnrNo());
lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), OrderAirport::getOrderStatus, bo.getOrderStatus());
lqw.eq(StringUtils.isNotBlank(bo.getFlightNo()), OrderAirport::getFlightNo, bo.getFlightNo());
lqw.eq(StringUtils.isNotBlank(bo.getIsShowPay()), OrderAirport::getIsShowPay, bo.getIsShowPay());
lqw.eq(StringUtils.isNotBlank(bo.getVoyageCity()), OrderAirport::getVoyageCity, bo.getVoyageCity());
lqw.eq(StringUtils.isNotBlank(bo.getBzbz()), OrderAirport::getBzbz, bo.getBzbz());
lqw.eq(bo.getOrderTotalAmount() != null, OrderAirport::getOrderTotalAmount, bo.getOrderTotalAmount());
lqw.eq(StringUtils.isNotBlank(bo.getIsShowApproval()), OrderAirport::getIsShowApproval, bo.getIsShowApproval());
lqw.eq(StringUtils.isNotBlank(bo.getPnrError()), OrderAirport::getPnrError, bo.getPnrError());
lqw.eq(bo.getInsureAmount() != null, OrderAirport::getInsureAmount, bo.getInsureAmount());
lqw.eq(bo.getServiceFee() != null, OrderAirport::getServiceFee, bo.getServiceFee());
lqw.eq(bo.getTax() != null, OrderAirport::getTax, bo.getTax());
lqw.eq(StringUtils.isNotBlank(bo.getSfzcxyqk()), OrderAirport::getSfzcxyqk, bo.getSfzcxyqk());
lqw.eq(bo.getSalePrice() != null, OrderAirport::getSalePrice, bo.getSalePrice());
lqw.eq(StringUtils.isNotBlank(bo.getDepartDate()), OrderAirport::getDepartDate, bo.getDepartDate());
lqw.eq(StringUtils.isNotBlank(bo.getIsShowEndorse()), OrderAirport::getIsShowEndorse, bo.getIsShowEndorse());
lqw.eq(StringUtils.isNotBlank(bo.getVoyage()), OrderAirport::getVoyage, bo.getVoyage());
lqw.like(StringUtils.isNotBlank(bo.getOrderStatusName()), OrderAirport::getOrderStatusName, bo.getOrderStatusName());
lqw.eq(StringUtils.isNotBlank(bo.getDrawDatetime()), OrderAirport::getDrawDatetime, bo.getDrawDatetime());
lqw.eq(StringUtils.isNotBlank(bo.getIsShowCancel()), OrderAirport::getIsShowCancel, bo.getIsShowCancel());
lqw.eq(StringUtils.isNotBlank(bo.getOrderFrom()), OrderAirport::getOrderFrom, bo.getOrderFrom());
lqw.eq(bo.getAirportFee() != null, OrderAirport::getAirportFee, bo.getAirportFee());
return lqw;
}
/**
* 新增活动机票订单
*
* @param bo 活动机票订单
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(OrderAirportBo bo) {
OrderAirport add = MapstructUtils.convert(bo, OrderAirport.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改活动机票订单
*
* @param bo 活动机票订单
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(OrderAirportBo bo) {
OrderAirport update = MapstructUtils.convert(bo, OrderAirport.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(OrderAirport entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除活动机票订单信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public void batchSaveOrder(String userId, List<String> orderNoList) {
BizUser user = userMapper.selectOne(new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserNo, userId));
if (Objects.isNull(user)) {
throw new RuntimeException("用户不存在");
}
List<OrderAirport> orderList = orderNoList.stream().map(orderNo -> {
OrderAirport order = new OrderAirport();
order.setPersonCode(userId);
order.setOrderNo(orderNo);
order.setTenantId(user.getTenantId());
return order;
}).toList();
for (OrderAirport bo : orderList) {
baseMapper.insert(bo);
}
updateAirportInfo(orderNoList);
}
@Override
public void updateAirportInfo(List<String> orderNoList) {
List<OrderAirport> orderList = baseMapper.selectList(new LambdaQueryWrapper<OrderAirport>().in(OrderAirport::getOrderNo, orderNoList));
List<Long> orderIds = StreamUtils.toList(orderList, OrderAirport::getId);
List<OrderAirportPsg> orderPsgList = psgMapper.selectList(new LambdaQueryWrapper<OrderAirportPsg>().in(OrderAirportPsg::getOrderId, orderIds));
List<OrderAirportRange> orderRangeList = rangeMapper.selectList(new LambdaQueryWrapper<OrderAirportRange>().in(OrderAirportRange::getOrderId, orderIds));
List<OrderAirportInsurance> orderInsuranceList = insuranceMapper.selectList(new LambdaQueryWrapper<OrderAirportInsurance>().in(OrderAirportInsurance::getOrderId, orderIds));
List<OrderAirportBusiness> orderBusinessList = businessMapper.selectList(new LambdaQueryWrapper<OrderAirportBusiness>().in(OrderAirportBusiness::getOrderId, orderIds));
List<OrderAirportPay> orderPayList = payMapper.selectList(new LambdaQueryWrapper<OrderAirportPay>().in(OrderAirportPay::getOrderId, orderIds));
List<OrderAirportTicket> orderTicketList = ticketMapper.selectList(new LambdaQueryWrapper<OrderAirportTicket>().in(OrderAirportTicket::getOrderId, orderIds));
//更新数据
orderList.forEach(order -> {
scheduledExecutorService.execute(() -> {
QueryTkOrderModel orderModel = airportService.detail(order.getPersonCode(), new org.dromara.common.ys.model.req.airport.QueryTkOrderModel().setOrderNo(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
baseMapper.updateById(order);
//跟新人员信息
List<OrdePsgInfoBean> psgList = orderModel.getOrdePsgList();
for (OrdePsgInfoBean psg : psgList) {
OrderAirportPsg orderPsg = orderPsgList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getIdNo(), psg.getIdNo())).findFirst().orElseGet(
() -> {
OrderAirportPsg entity = new OrderAirportPsg()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(psg, orderPsg, "id", "orderId", "order_no");
if (Objects.isNull(orderPsg.getId())) {
psgMapper.insert(orderPsg);
} else {
psgMapper.updateById(orderPsg);
}
}
//跟新航段信息
List<OrderRangeInfoBean> rangeList = orderModel.getOrderRangeList();
for (OrderRangeInfoBean range : rangeList) {
OrderAirportRange orderRange = orderRangeList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getFlightNo(), range.getFlightNo())).findFirst().orElseGet(
() -> {
OrderAirportRange entity = new OrderAirportRange()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(range, orderRange, "id", "orderId", "order_no");
if (Objects.isNull(orderRange.getId())) {
rangeMapper.insert(orderRange);
} else {
rangeMapper.updateById(orderRange);
}
}
//跟新保险信息
List<InsuranceInfoBean> insuranceList = orderModel.getInsuranceList();
for (InsuranceInfoBean insurance : insuranceList) {
OrderAirportInsurance orderInsurance = orderInsuranceList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getBxOrderNo(), insurance.getBxOrderNo())).findFirst().orElseGet(
() -> {
OrderAirportInsurance entity = new OrderAirportInsurance()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(insurance, orderInsurance, "id", "orderId", "order_no");
if (Objects.isNull(orderInsurance.getId())) {
insuranceMapper.insert(orderInsurance);
} else {
insuranceMapper.updateById(orderInsurance);
}
}
//更新差旅信息
OrderBusinessInfoBean business = orderModel.getBusinessInfo();
if (Objects.nonNull(business)) {
OrderAirportBusiness orderBusiness = orderBusinessList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId())).findFirst().orElseGet(
() -> {
OrderAirportBusiness entity = new OrderAirportBusiness()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(business, orderBusiness, "id", "orderId", "order_no");
if (Objects.isNull(orderBusiness.getId())) {
businessMapper.insert(orderBusiness);
} else {
businessMapper.updateById(orderBusiness);
}
}
//跟新支付信息
List<OrderPayInfoBean> payInfoList = orderModel.getPayInfoList();
for (OrderPayInfoBean pay : payInfoList) {
OrderAirportPay orderPay = orderPayList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getPayBillno(), pay.getPayBillno())).findFirst().orElseGet(
() -> {
OrderAirportPay entity = new OrderAirportPay()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(pay, orderPay, "id", "orderId", "order_no");
if (Objects.isNull(orderPay.getId())) {
payMapper.insert(orderPay);
} else {
payMapper.updateById(orderPay);
}
}
//跟新打印单信息
List<TicketPrintInfoBean> ticketList = orderModel.getPrintList();
for (TicketPrintInfoBean ticket : ticketList) {
OrderAirportTicket orderTicket = orderTicketList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getTkno(), ticket.getTkno())).findFirst().orElseGet(
() -> {
OrderAirportTicket entity = new OrderAirportTicket()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(ticket, orderTicket, "id", "orderId", "order_no");
if (Objects.isNull(orderTicket.getId())) {
ticketMapper.insert(orderTicket);
} else {
ticketMapper.updateById(orderTicket);
}
}
});
});
}
}
<?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.OrderAirportBusinessMapper">
</mapper>
<?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.OrderAirportInsuranceMapper">
</mapper>
<?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.OrderAirportMapper">
</mapper>
<?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.OrderAirportPayMapper">
</mapper>
<?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.OrderAirportPsgMapper">
</mapper>
<?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.OrderAirportRangeMapper">
</mapper>
<?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.OrderAirportTicketMapper">
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论