diff --git a/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftDeviceServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftDeviceServiceImpl.java index 81c86e4..8cfe6b0 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftDeviceServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftDeviceServiceImpl.java @@ -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 implements AircraftDeviceService { - private final AttachmentMaterialService attachmentMaterialService; + private final IAttachmentMaterialService attachmentMaterialService; //todo 枚举? private final String BUSINESS_TYPE = "aircraft_device"; diff --git a/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftInsuranceServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftInsuranceServiceImpl.java index ecd22fc..2406bd9 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftInsuranceServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/aircraft/service/impl/AircraftInsuranceServiceImpl.java @@ -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 implements AircraftInsuranceService { - private final AttachmentMaterialService attachmentMaterialService; + private final IAttachmentMaterialService attachmentMaterialService; //todo 枚举? private final String BUSINESS_TYPE = "aircraft_insurance"; diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java b/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java index cca03ee..b3cabb4 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java @@ -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 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; + } } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/controller/OrderMainController.java b/aircraft-system/src/main/java/com/aircraft/modules/order/controller/OrderMainController.java index a3dc3da..15c25d4 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/controller/OrderMainController.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/controller/OrderMainController.java @@ -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 addOrder(AddOrderDTO addOrderDTO) { orderBiz.addOrder(addOrderDTO); - return new ResponseEntity(HttpStatus.OK); + return new ResponseEntity<>(HttpStatus.OK); } @ApiOperation("新增订单任务") @GetMapping("/addOrderTask") - public ResponseEntity addOrderTask(OrderMainPageQueryDTO pageQueryDTO) { - - List orderList = orderBiz.queryAll(pageQueryDTO); - return new ResponseEntity<>(PageUtil.toPage(orderList),HttpStatus.OK); + public ResponseEntity addOrderTask(AddOrderTaskDTO orderTaskDTO) { + orderBiz.addOrderTask(orderTaskDTO); + return new ResponseEntity<>(HttpStatus.OK); } @ApiOperation("用户端关联订单") diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/AddOrderTaskDTO.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/AddOrderTaskDTO.java new file mode 100644 index 0000000..ac4621b --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/AddOrderTaskDTO.java @@ -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; +} diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/IOrderDetailService.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/IOrderDetailService.java index e2549f9..33d7163 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/IOrderDetailService.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/IOrderDetailService.java @@ -13,4 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IOrderDetailService extends IService { + /** + * 新增订单明细 + * + * @param orderTask {@link OrderTask}订单任务 + */ + void addOrderDetail(OrderDetail orderTask); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailServiceImpl.java index 21b0068..3deacba 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailServiceImpl.java @@ -17,4 +17,8 @@ import org.springframework.stereotype.Service; @Service public class OrderDetailServiceImpl extends ServiceImpl implements IOrderDetailService { + @Override + public void addOrderDetail(OrderDetail orderTask) { + this.save(orderTask); + } } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/domain/enums/AttachmentMaterialBusinessTypeEnum.java b/aircraft-system/src/main/java/com/aircraft/modules/system/domain/enums/AttachmentMaterialBusinessTypeEnum.java new file mode 100644 index 0000000..b4ebf1e --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/domain/enums/AttachmentMaterialBusinessTypeEnum.java @@ -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; +} diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/AttachmentMaterialService.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/IAttachmentMaterialService.java similarity index 52% rename from aircraft-system/src/main/java/com/aircraft/modules/system/service/AttachmentMaterialService.java rename to aircraft-system/src/main/java/com/aircraft/modules/system/service/IAttachmentMaterialService.java index b662022..6444e4d 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/service/AttachmentMaterialService.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/IAttachmentMaterialService.java @@ -11,6 +11,11 @@ import com.baomidou.mybatisplus.extension.service.IService; * @author cli * @since 2025-07-10 */ -public interface AttachmentMaterialService extends IService { +public interface IAttachmentMaterialService extends IService { + /** + * 新增材料 + * @param attachmentMaterial + */ + void addAttachmentMaterial(AttachmentMaterial attachmentMaterial); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/AttachmentMaterialServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/AttachmentMaterialServiceImpl.java index 513bf3f..6ce79cc 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/AttachmentMaterialServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/AttachmentMaterialServiceImpl.java @@ -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 implements AttachmentMaterialService { +public class AttachmentMaterialServiceImpl extends ServiceImpl implements IAttachmentMaterialService { + @Override + public void addAttachmentMaterial(AttachmentMaterial attachmentMaterial) { + this.save(attachmentMaterial); + } }