提交 eb6360cd authored 作者: hzh's avatar hzh

用车模块功能实现

上级 44e40bb9
......@@ -16,5 +16,9 @@ public class OrderBookJsycModel {
* 订单id
**/
private String orderId;
/**
* 订单编号
*/
private String orderNo;
}
......@@ -16,5 +16,9 @@ public class OrderBookYyycModel {
* 订单id
**/
private String orderId;
/**
* 订单编号
*/
private String orderNo;
}
......@@ -81,7 +81,7 @@ public class VehiclesController extends BaseController {
public R<OrderBookJsycModel> bookOrderJsyc(@RequestBody org.dromara.common.ys.model.req.vehicles.OrderBookJsycModel model) {
model.setTripType(Integer.parseInt(TripType.PUBLIC.getCode()));
OrderBookJsycModel order = vehiclesService.bookJsyc(getUserId(), model);
orderVehiclesService.batchSaveOrder(getUserId(), List.of(order.getOrderId()));
orderVehiclesService.saveOrder(getUserId(), order.getOrderId(), order.getOrderNo());
return R.ok(order);
}
......@@ -93,7 +93,7 @@ public class VehiclesController extends BaseController {
public R<OrderBookYyycModel> bookOrderYyyc(@RequestBody org.dromara.common.ys.model.req.vehicles.OrderBookYyycModel model) {
model.setTripType(Integer.parseInt(TripType.PUBLIC.getCode()));
OrderBookYyycModel order = vehiclesService.bookYyyc(getUserId(), model);
orderVehiclesService.batchSaveOrder(getUserId(), List.of(order.getOrderId()));
orderVehiclesService.saveOrder(getUserId(), order.getOrderId(), order.getOrderNo());
return R.ok(order);
}
......@@ -122,7 +122,9 @@ public class VehiclesController extends BaseController {
@PostMapping("/order/cancel")
public R<OrderCancelModel> orderCancel(@RequestBody org.dromara.common.ys.model.req.vehicles.OrderCancelModel model) {
OrderCancelModel cancel = vehiclesService.cancel(getUserId(), model);
orderVehiclesService.batchSaveOrder(getUserId(), List.of(model.getOrderId()));
orderVehiclesService.queryList(new OrderVehiclesBo().setOrderId(model.getOrderId())).stream().map(OrderVehiclesVo::getOrderNo).findFirst().ifPresent(orderNo -> {
orderVehiclesService.updateOrderInfo(List.of(orderNo));
});
return R.ok(cancel);
}
......
......@@ -36,6 +36,11 @@ public class OrderVehicles extends TenantEntity {
*/
private String personCode;
/**
* 订单id
*/
private String orderId;
/**
* 订单号
*/
......
......@@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
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;
......@@ -17,6 +18,7 @@ import org.dromara.server.domain.OrderVehicles;
* @date 2024-11-20
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderVehicles.class, reverseConvertGenerate = false)
public class OrderVehiclesBo extends BaseEntity {
......@@ -33,6 +35,11 @@ public class OrderVehiclesBo extends BaseEntity {
@NotBlank(message = "人员code不能为空", groups = {AddGroup.class, EditGroup.class})
private String personCode;
/**
* 订单id
*/
private String orderId;
/**
* 订单号
*/
......
......@@ -36,6 +36,12 @@ public class OrderVehiclesVo implements Serializable {
@ExcelProperty(value = "人员code")
private String personCode;
/**
* 订单id
*/
private String orderId;
/**
* 订单号
*/
......@@ -438,5 +444,9 @@ public class OrderVehiclesVo implements Serializable {
@ExcelProperty(value = "车辆说明")
private String vehiclesDesc;
/**
* 差旅信息
*/
private OrderVehiclesBusinessVo business;
}
......@@ -18,10 +18,11 @@ public interface IOrderVehiclesService extends IBaseService<OrderVehiclesVo, Ord
/**
* 批量保存订单
*
* @param userId 用户id
* @param orderNoList 订单号列表
* @param userId 用户id
* @param orderId 订单id
* @param orderNo 订单编码
*/
void batchSaveOrder(String userId, List<String> orderNoList);
void saveOrder(String userId, String orderId, String orderNo);
/**
* 更新火车票信息
......
......@@ -8,17 +8,16 @@ import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
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 org.dromara.common.ys.model.res.airport.other.OrderBusinessInfoBean;
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.base.AbstractBaseService;
import org.dromara.server.domain.BizUser;
import org.dromara.server.domain.OrderVehicles;
import org.dromara.server.domain.OrderVehiclesBusiness;
import org.dromara.server.domain.OrderVehiclesPayInfo;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderVehiclesBo;
import org.dromara.server.domain.vo.OrderVehiclesVo;
import org.dromara.server.domain.vo.*;
import org.dromara.server.mapper.BizUserMapper;
import org.dromara.server.mapper.OrderVehiclesBusinessMapper;
import org.dromara.server.mapper.OrderVehiclesMapper;
......@@ -26,6 +25,7 @@ import org.dromara.server.mapper.OrderVehiclesPayInfoMapper;
import org.dromara.server.service.IOrderVehiclesService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
......@@ -60,6 +60,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
LambdaQueryWrapper<OrderVehicles> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getPersonCode()), OrderVehicles::getPersonCode, bo.getPersonCode());
lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), OrderVehicles::getOrderNo, bo.getOrderNo());
lqw.eq(StringUtils.isNotBlank(bo.getOrderId()), OrderVehicles::getOrderId, bo.getOrderId());
lqw.eq(StringUtils.isNotBlank(bo.getDeptCode()), OrderVehicles::getDeptCode, bo.getDeptCode());
lqw.eq(StringUtils.isNotBlank(bo.getStartingPoint()), OrderVehicles::getStartingPoint, bo.getStartingPoint());
lqw.like(StringUtils.isNotBlank(bo.getDepartCityName()), OrderVehicles::getDepartCityName, bo.getDepartCityName());
......@@ -130,22 +131,31 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
}
@Override
public void batchSaveOrder(String userId, List<String> orderNoList) {
public TableDataInfo<OrderVehiclesVo> queryPageList(OrderVehiclesBo bo, PageQuery pageQuery) {
TableDataInfo<OrderVehiclesVo> page = super.queryPageList(bo, pageQuery);
List<OrderVehiclesVo> list = page.getRows();
List<Long> orderIds = StreamUtils.toList(list, OrderVehiclesVo::getId);
orderIds = CollectionUtils.isEmpty(orderIds) ? Arrays.asList(-1L) : orderIds;
List<OrderVehiclesBusinessVo> businessList = businessMapper.selectVoList(new LambdaQueryWrapper<OrderVehiclesBusiness>().in(OrderVehiclesBusiness::getOrderId, orderIds));
list.forEach(item -> {
item.setBusiness(StreamUtils.findFirst(businessList, r -> Objects.equals(r.getOrderId(), item.getId())));
});
return page;
}
@Override
public void saveOrder(String userId, String orderId, String orderNo) {
BizUser user = userMapper.selectOne(new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserNo, userId));
if (Objects.isNull(user)) {
throw new RuntimeException("用户不存在");
}
List<OrderVehicles> orderList = orderNoList.stream().map(orderNo -> {
OrderVehicles order = new OrderVehicles();
order.setPersonCode(userId);
order.setOrderNo(orderNo);
order.setTenantId(user.getTenantId());
return order;
}).toList();
for (OrderVehicles bo : orderList) {
baseMapper.insert(bo);
}
updateOrderInfo(orderNoList);
OrderVehicles order = new OrderVehicles();
order.setPersonCode(userId);
order.setOrderNo(orderNo);
order.setOrderId(orderId);
order.setTenantId(user.getTenantId());
baseMapper.insert(order);
updateOrderInfo(List.of(order.getOrderNo()));
}
@Override
......@@ -165,7 +175,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
scheduledExecutorService.execute(() -> {
OrderDetailModel orderModel = vehiclesService.detail(order.getPersonCode(), new org.dromara.common.ys.model.req.vehicles.OrderDetailModel().setOrderNo(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId", "orderId", "orderNo");
order.setIsCancel(orderModel.getIscancel());
order.setDdCityId(orderModel.getDdcityId());
order.setDdCityName(orderModel.getDdcityName());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论