feat: 新增订单任务接口;新增材料业务类型枚举;调整service类的命名;

This commit is contained in:
chenxiky 2025-07-16 01:16:20 +08:00
parent 51303195f7
commit b6bdf842a9
10 changed files with 172 additions and 14 deletions

View File

@ -8,7 +8,7 @@ import com.aircraft.modules.aircraft.domain.vo.AircraftDevicePageVO;
import com.aircraft.modules.aircraft.mapper.AircraftDeviceMapper;
import com.aircraft.modules.aircraft.service.AircraftDeviceService;
import com.aircraft.modules.system.domain.AttachmentMaterial;
import com.aircraft.modules.system.service.AttachmentMaterialService;
import com.aircraft.modules.system.service.IAttachmentMaterialService;
import com.aircraft.utils.SecurityUtils;
import com.aircraft.utils.enums.UserTypeEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -36,7 +36,7 @@ import java.util.List;
@RequiredArgsConstructor
public class AircraftDeviceServiceImpl extends ServiceImpl<AircraftDeviceMapper, AircraftDevice> implements AircraftDeviceService {
private final AttachmentMaterialService attachmentMaterialService;
private final IAttachmentMaterialService attachmentMaterialService;
//todo 枚举
private final String BUSINESS_TYPE = "aircraft_device";

View File

@ -5,7 +5,7 @@ import com.aircraft.modules.aircraft.domain.AircraftInsurance;
import com.aircraft.modules.aircraft.mapper.AircraftInsuranceMapper;
import com.aircraft.modules.aircraft.service.AircraftInsuranceService;
import com.aircraft.modules.system.domain.AttachmentMaterial;
import com.aircraft.modules.system.service.AttachmentMaterialService;
import com.aircraft.modules.system.service.IAttachmentMaterialService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -30,7 +30,7 @@ import java.util.List;
@RequiredArgsConstructor
public class AircraftInsuranceServiceImpl extends ServiceImpl<AircraftInsuranceMapper, AircraftInsurance> implements AircraftInsuranceService {
private final AttachmentMaterialService attachmentMaterialService;
private final IAttachmentMaterialService attachmentMaterialService;
//todo 枚举
private final String BUSINESS_TYPE = "aircraft_insurance";

View File

@ -2,18 +2,24 @@ package com.aircraft.modules.order.biz;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.aircraft.modules.order.domain.OrderDetail;
import com.aircraft.modules.order.domain.OrderMain;
import com.aircraft.modules.order.domain.OrderOperator;
import com.aircraft.modules.order.domain.dto.AddOrderDTO;
import com.aircraft.modules.order.domain.dto.AddOrderTaskDTO;
import com.aircraft.modules.order.domain.dto.OrderMainPageQueryDTO;
import com.aircraft.modules.order.domain.enums.MainOrderStatusEnum;
import com.aircraft.modules.order.domain.enums.OrderSettlementStatusEnum;
import com.aircraft.modules.order.domain.enums.OrderTaskStatusEnum;
import com.aircraft.modules.order.domain.vo.OrderMainPageQueryVO;
import com.aircraft.modules.order.service.IOrderDetailService;
import com.aircraft.modules.order.service.IOrderMainService;
import com.aircraft.modules.order.service.IOrderOperatorService;
import com.aircraft.modules.system.domain.AttachmentMaterial;
import com.aircraft.modules.system.domain.enums.AttachmentMaterialBusinessTypeEnum;
import com.aircraft.modules.system.service.IAttachmentMaterialService;
import com.aircraft.utils.PageResult;
import com.aircraft.utils.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.userdetails.UserDetails;
@ -38,9 +44,12 @@ public class OrderBiz {
@Resource
private IOrderMainService orderMainService;
@Resource
private IOrderOperatorService orderOperatorService;
@Resource
private IAttachmentMaterialService attachmentMaterialService;
@Resource
private IOrderDetailService orderDetailService;
public List<OrderMainPageQueryVO> queryAll(OrderMainPageQueryDTO pageQueryDTO) {
UserDetails currentUser = SecurityUtils.getCurrentUser();
@ -118,4 +127,49 @@ public class OrderBiz {
orderMain.setSettlementStatus(OrderSettlementStatusEnum.NOT_SETTLED.getCode());
return orderMain;
}
@Transactional(rollbackFor = Exception.class)
public void addOrderTask(AddOrderTaskDTO orderTaskDTO) {
// TODO 获取当前登录用户
Long orderInitiatorId = SecurityUtils.getCurrentUserId();
// 构建任务参数
OrderDetail orderTask = buildOrderTaskParam(orderTaskDTO, orderInitiatorId);
// 批量新增
orderDetailService.addOrderDetail(orderTask);
// 保存材料
AttachmentMaterial attachmentMaterialList = buildAttachmentMaterialParam(orderTaskDTO);
attachmentMaterialService.addAttachmentMaterial(attachmentMaterialList);
}
/**
* 构建任务参数
*
* @param orderTaskDTO {@link AddOrderTaskDTO}
* @param orderInitiatorId
* @return {@link OrderDetail}
*/
private OrderDetail buildOrderTaskParam(AddOrderTaskDTO orderTaskDTO, Long orderInitiatorId) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setOrderId(orderTaskDTO.getOrderId());
orderDetail.setDeviceId(orderTaskDTO.getDeviceId());
orderDetail.setRouteId(orderTaskDTO.getRouteId());
orderDetail.setCargoWeight(orderTaskDTO.getCargoWeight());
orderDetail.setOrderItemStatus(OrderTaskStatusEnum.NOT_STARTED.getCode());
orderDetail.setOperatorId(orderInitiatorId);
return orderDetail;
}
/**
* 构建保存材料参数
*
* @param orderTaskDTO {@link AddOrderTaskDTO}
* @return {@link AttachmentMaterial}
*/
private AttachmentMaterial buildAttachmentMaterialParam(AddOrderTaskDTO orderTaskDTO) {
AttachmentMaterial attachmentMaterial = new AttachmentMaterial();
attachmentMaterial.setBusinessId(orderTaskDTO.getOrderId());
attachmentMaterial.setBusinessType(AttachmentMaterialBusinessTypeEnum.ORDER_TASK_MATERIAL.getCode());
attachmentMaterial.setFileFullPath(orderTaskDTO.getPicUrl());
return attachmentMaterial;
}
}

View File

@ -3,6 +3,7 @@ package com.aircraft.modules.order.controller;
import com.aircraft.modules.order.biz.OrderBiz;
import com.aircraft.modules.order.domain.dto.AddOrderDTO;
import com.aircraft.modules.order.domain.dto.AddOrderTaskDTO;
import com.aircraft.modules.order.domain.dto.OrderMainPageQueryDTO;
import com.aircraft.modules.order.domain.vo.OrderMainPageQueryVO;
import com.aircraft.utils.PageResult;
@ -48,15 +49,14 @@ public class OrderMainController {
@GetMapping("/addOrder")
public ResponseEntity<Object> addOrder(AddOrderDTO addOrderDTO) {
orderBiz.addOrder(addOrderDTO);
return new ResponseEntity<Object>(HttpStatus.OK);
return new ResponseEntity<>(HttpStatus.OK);
}
@ApiOperation("新增订单任务")
@GetMapping("/addOrderTask")
public ResponseEntity<Object> addOrderTask(OrderMainPageQueryDTO pageQueryDTO) {
List<OrderMainPageQueryVO> orderList = orderBiz.queryAll(pageQueryDTO);
return new ResponseEntity<>(PageUtil.toPage(orderList),HttpStatus.OK);
public ResponseEntity<Object> addOrderTask(AddOrderTaskDTO orderTaskDTO) {
orderBiz.addOrderTask(orderTaskDTO);
return new ResponseEntity<>(HttpStatus.OK);
}
@ApiOperation("用户端关联订单")

View File

@ -0,0 +1,53 @@
package com.aircraft.modules.order.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
*
* 新增订单任务DTO
*
* @author chenxiky
* @version 1.0.0
* @since 2025/7/16
*/
@Data
public class AddOrderTaskDTO {
/**
* 订单ID
*/
@NotNull(message = "订单ID不能为空")
@ApiModelProperty(value = "订单ID", required = true, example = "订单列表返回的ID")
private Long orderId;
/**
* 执行设备ID
*/
@NotNull(message = "执行设备ID不能为空")
@ApiModelProperty(value = "执行设备ID", required = true)
private Long deviceId;
/**
* 执行路线ID
*/
@NotNull(message = "执行路线ID不能为空")
@ApiModelProperty(value = "执行路线ID", required = true)
private Long routeId;
/**
* 载物重量
*/
@NotNull(message = "载物重量不能为空")
@ApiModelProperty(value = "载物重量", required = true)
private BigDecimal cargoWeight;
/**
* 任务上传的图片全路径URL
*/
@ApiModelProperty(value = "任务上传的图片全路径URL")
private String picUrl;
}

View File

@ -13,4 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IOrderDetailService extends IService<OrderDetail> {
/**
* 新增订单明细
*
* @param orderTask {@link OrderTask}订单任务
*/
void addOrderDetail(OrderDetail orderTask);
}

View File

@ -17,4 +17,8 @@ import org.springframework.stereotype.Service;
@Service
public class OrderDetailServiceImpl extends ServiceImpl<OrderDetailMapper, OrderDetail> implements IOrderDetailService {
@Override
public void addOrderDetail(OrderDetail orderTask) {
this.save(orderTask);
}
}

View File

@ -0,0 +1,32 @@
package com.aircraft.modules.system.domain.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
*
* 材料表对应的业务类型枚举
*
* @author chenxiky
* @version 1.0.0
* @since 2025/7/16
*/
@Getter
@AllArgsConstructor
public enum AttachmentMaterialBusinessTypeEnum {
/**
* 订单任务材料
*/
ORDER_TASK_MATERIAL("order_task_material", "订单任务材料"),
;
/**
* code值
*/
private final String code;
/**
* 描述
*/
private final String description;
}

View File

@ -11,6 +11,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author cli
* @since 2025-07-10
*/
public interface AttachmentMaterialService extends IService<AttachmentMaterial> {
public interface IAttachmentMaterialService extends IService<AttachmentMaterial> {
/**
* 新增材料
* @param attachmentMaterial
*/
void addAttachmentMaterial(AttachmentMaterial attachmentMaterial);
}

View File

@ -2,7 +2,7 @@ package com.aircraft.modules.system.service.impl;
import com.aircraft.modules.system.domain.AttachmentMaterial;
import com.aircraft.modules.system.mapper.AttachmentMaterialMapper;
import com.aircraft.modules.system.service.AttachmentMaterialService;
import com.aircraft.modules.system.service.IAttachmentMaterialService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@ -15,6 +15,10 @@ import org.springframework.stereotype.Service;
* @since 2025-07-10
*/
@Service
public class AttachmentMaterialServiceImpl extends ServiceImpl<AttachmentMaterialMapper, AttachmentMaterial> implements AttachmentMaterialService {
public class AttachmentMaterialServiceImpl extends ServiceImpl<AttachmentMaterialMapper, AttachmentMaterial> implements IAttachmentMaterialService {
@Override
public void addAttachmentMaterial(AttachmentMaterial attachmentMaterial) {
this.save(attachmentMaterial);
}
}