提交 435c888e authored 作者: hzh's avatar hzh

开票策略功能实现

上级 2f520261
package org.dromara.server.domain.bo;
import org.dromara.server.domain.OrderInvoicing;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import lombok.experimental.Accessors;
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.OrderInvoicing;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 开票订单关联业务对象 biz_order_invoicing
*
......@@ -20,6 +21,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
* @date 2025-06-12
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderInvoicing.class, reverseConvertGenerate = false)
public class OrderInvoicingBo extends BaseEntity {
......
package org.dromara.server.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -14,6 +15,7 @@ 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.bo.OrderInvoicingBo;
import org.dromara.server.domain.vo.OrderAirportRangeVo;
import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.domain.vo.OrderInvoicingVo;
......@@ -21,11 +23,13 @@ import org.dromara.server.enums.OrderTypeEnum;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IBizUserService;
import org.dromara.server.service.IOrderAirportService;
import org.dromara.server.service.IOrderInvoicingService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.ScheduledExecutorService;
/**
......@@ -50,6 +54,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
private final IBizUserService bizUserService;
private final IOrderInvoicingService orderInvoicingService;
@Override
public BaseMapperPlus<OrderAirport, OrderAirportVo> mapper() {
......@@ -141,6 +146,20 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
baseMapper.insert(bo);
}
updateOrderInfo(orderNoList);
//新增订票策略
List<OrderAirport> OrderAirportList = baseMapper.selectList(OrderAirport::getOrderNo, orderNoList);
OrderAirportList.forEach(order -> {
OrderInvoicingBo invoice = new OrderInvoicingBo()
.setOrderId(order.getId())
.setType(OrderTypeEnum.AIRPORT.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUseName(Optional.ofNullable(order).map(OrderAirport::getPsg).orElse(null))
.setUseTime(Optional.ofNullable(rangeMapper.selectOne(OrderAirportRange::getOrderNo, order.getOrderNo()))
.map(o -> DateUtil.parse(o.getDepartTime(), "yyyy-MM-dd HH:mm"))
.orElse(null));
orderInvoicingService.save(invoice);
});
}
......
package org.dromara.server.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -17,19 +18,17 @@ import org.dromara.common.ys.model.res.hotel.bean.HotelOrderPsgInfoBean;
import org.dromara.common.ys.service.IHotelService;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderHotelBo;
import org.dromara.server.domain.bo.OrderInvoicingBo;
import org.dromara.server.domain.vo.OrderHotelVo;
import org.dromara.server.domain.vo.OrderInvoicingVo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.enums.OrderTypeEnum;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IBizUserService;
import org.dromara.server.service.IOrderHotelService;
import org.dromara.server.service.IOrderInvoicingService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
/**
......@@ -52,6 +51,7 @@ public class OrderHotelServiceImpl extends AbstractBaseService<OrderHotelVo, Ord
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
private final IBizUserService bizUserService;
private final IOrderInvoicingService orderInvoicingService;
@Override
public BaseMapperPlus<OrderHotel, OrderHotelVo> mapper() {
......@@ -147,6 +147,20 @@ public class OrderHotelServiceImpl extends AbstractBaseService<OrderHotelVo, Ord
baseMapper.insert(bo);
}
updateOrderInfo(orderNoList);
//新增订票策略
List<OrderHotel> orderHotelList = baseMapper.selectList(OrderHotel::getOrderNo, orderNoList);
orderHotelList.forEach(order -> {
OrderInvoicingBo invoice = new OrderInvoicingBo()
.setOrderId(order.getId())
.setType(OrderTypeEnum.HOTEL.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUseName(Optional.ofNullable(order).map(OrderHotel::getPsgName).orElse(null))
.setUseTime(Optional.ofNullable(order)
.map(o -> DateUtil.parse(o.getCheckInDate(), "yyyy-MM-dd"))
.orElse(null));
orderInvoicingService.save(invoice);
});
}
@Override
......
package org.dromara.server.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -18,6 +19,7 @@ import org.dromara.common.ys.model.res.train.bean.RangeInfo;
import org.dromara.common.ys.model.res.train.bean.TicketInfo;
import org.dromara.common.ys.service.ITrainService;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderInvoicingBo;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.vo.OrderInvoicingVo;
import org.dromara.server.domain.vo.OrderTrainRangeVo;
......@@ -26,13 +28,11 @@ import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.enums.OrderTypeEnum;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IBizUserService;
import org.dromara.server.service.IOrderInvoicingService;
import org.dromara.server.service.IOrderTrainService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
/**
......@@ -56,6 +56,7 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
private final IBizUserService bizUserService;
private final IOrderInvoicingService orderInvoicingService;
@Override
......@@ -153,6 +154,20 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
baseMapper.insert(bo);
}
updateOrderInfo(orderNoList);
//新增订票策略
List<OrderTrain> orderTrainList = baseMapper.selectList(OrderTrain::getOrderNo, orderNoList);
orderTrainList.forEach(order -> {
OrderInvoicingBo invoice = new OrderInvoicingBo()
.setOrderId(order.getId())
.setType(OrderTypeEnum.TRAIN.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUseName(Optional.ofNullable(order).map(OrderTrain::getPassengerNames).orElse(null))
.setUseTime(Optional.ofNullable(rangeMapper.selectOne(OrderTrainRange::getOrderNo, order.getOrderNo()))
.map(o -> DateUtil.parse(o.getFromDate() + " " + o.getFromTime(), "yyyy-MM-dd HH:mm"))
.orElse(null));
orderInvoicingService.save(invoice);
});
}
@Override
......
package org.dromara.server.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -14,6 +15,7 @@ import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.vehicles.OrderDetailModel;
import org.dromara.common.ys.service.IVehiclesService;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderInvoicingBo;
import org.dromara.server.domain.bo.OrderVehiclesBo;
import org.dromara.server.domain.vo.OrderInvoicingVo;
import org.dromara.server.domain.vo.OrderVehiclesBusinessVo;
......@@ -21,13 +23,12 @@ import org.dromara.server.domain.vo.OrderVehiclesVo;
import org.dromara.server.enums.OrderTypeEnum;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IBizUserService;
import org.dromara.server.service.IOrderInvoicingService;
import org.dromara.server.service.IOrderVehiclesService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
/**
......@@ -48,6 +49,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
private final IBizUserService bizUserService;
private final IOrderInvoicingService orderInvoicingService;
@Override
public BaseMapperPlus<OrderVehicles, OrderVehiclesVo> mapper() {
......@@ -158,6 +160,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
});
}
@Transactional(rollbackFor = Exception.class)
@Override
public void saveOrder(String userId, String applyCode, String orderId, String orderNo) {
BizUser user = userMapper.selectOne(new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserNo, userId));
......@@ -172,6 +175,25 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
order.setTenantId(user.getTenantId());
baseMapper.insert(order);
updateOrderInfo(List.of(order.getOrderNo()));
//设置开票策略
updateInvoice(order);
}
private void updateInvoice(OrderVehicles order) {
OrderVehicles orderVehicles = baseMapper.selectById(order.getId());
OrderInvoicingBo invoice = new OrderInvoicingBo()
.setOrderId(order.getId())
.setType(OrderTypeEnum.VEHICLES.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUseName(Optional.ofNullable(orderVehicles).map(OrderVehicles::getPhoneNumber).orElse(null))
.setUseTime(Optional.ofNullable(orderVehicles).map(ov -> {
if (StringUtils.isNotEmpty(ov.getStartTime())) {
return DateUtil.parse(ov.getStartTime());
}
return null;
}).orElse(null));
orderInvoicingService.save(invoice);
}
@Override
......@@ -242,6 +264,8 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
}
}
});
//跟新开票策略
updateInvoice(order);
});
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论