From 20222eff99b7eab954cb2de39d75dd48950d473c Mon Sep 17 00:00:00 2001 From: ljw <706814450@qq.com> Date: Fri, 3 Apr 2026 15:08:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../order/controller/OrderInfoController.java | 31 +++++++++++ .../order/mapper/OrderInfoMapper.java | 2 + .../pojo/param/BatchAssignmentOrderParam.java | 23 ++++++++ .../pojo/param/BatchAuditOrderParam.java | 35 ++++++++++++ .../pojo/param/BatchConfirmOrderParam.java | 23 ++++++++ .../order/service/OrderInfoService.java | 55 ++++++++++++++++--- .../mapper/order/OrderInfoMapper.xml | 10 ++++ 8 files changed, 173 insertions(+), 7 deletions(-) create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAssignmentOrderParam.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAuditOrderParam.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchConfirmOrderParam.java diff --git a/.gitignore b/.gitignore index 1849138..fa2cd4f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /**/.DS_Store /**/.back* db-model/*/ +/njzscloud-svr/docs diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java index ff3c6dc..8e72703 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java @@ -151,6 +151,15 @@ public class OrderInfoController { return R.success(); } + /** + * 批量审核 + */ + @PostMapping("/batch_audit") + public R batchAudit(@RequestBody BatchAuditOrderParam param) { + orderInfoService.batchAudit(param); + return R.success(); + } + /** * 看料 */ @@ -169,6 +178,28 @@ public class OrderInfoController { return R.success(); } + /** + * 批量指派司机 + * + * @param param 批量指派参数 + */ + @PostMapping("/batch_assignment") + public R batchAssignment(@RequestBody BatchAssignmentOrderParam param) { + orderInfoService.batchAssignment(param); + return R.success(); + } + + /** + * 批量确认接单 + * + * @param param 批量确认接单参数 + */ + @PostMapping("/batch_confirm") + public R batchConfirm(@RequestBody BatchConfirmOrderParam param) { + orderInfoService.batchConfirm(param); + return R.success(); + } + /** * 司机确认接单 * diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/mapper/OrderInfoMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/mapper/OrderInfoMapper.java index ba62f2d..831e076 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/mapper/OrderInfoMapper.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/mapper/OrderInfoMapper.java @@ -60,4 +60,6 @@ public interface OrderInfoMapper extends BaseMapper { Boolean driverIsBusy(@Param("driverId") Long driverId); Boolean truckIsBusy(@Param("truckId") Long truckId); + + Boolean hasInProgressOrder(@Param("driverId") Long driverId, @Param("orderStatuses") List orderStatuses); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAssignmentOrderParam.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAssignmentOrderParam.java new file mode 100644 index 0000000..e6f21dc --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAssignmentOrderParam.java @@ -0,0 +1,23 @@ +package com.njzscloud.supervisory.order.pojo.param; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.util.List; + +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class BatchAssignmentOrderParam { + /** + * 订单Id列表 + */ + private List orderIds; + /** + * 司机Id + */ + private Long driverId; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAuditOrderParam.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAuditOrderParam.java new file mode 100644 index 0000000..f0802cf --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchAuditOrderParam.java @@ -0,0 +1,35 @@ +package com.njzscloud.supervisory.order.pojo.param; + +import com.njzscloud.supervisory.biz.constant.AuditStatus; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.util.List; + +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class BatchAuditOrderParam { + /** + * 订单 Id 列表 + */ + private List orderIds; + + /** + * 审核状态; 字典代码:audit_status + */ + private AuditStatus auditStatus; + + /** + * 审核备注 + */ + private String auditMemo; + + /** + * 审核图片 + */ + private String auditPicture; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchConfirmOrderParam.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchConfirmOrderParam.java new file mode 100644 index 0000000..83ca8de --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/param/BatchConfirmOrderParam.java @@ -0,0 +1,23 @@ +package com.njzscloud.supervisory.order.pojo.param; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.util.List; + +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class BatchConfirmOrderParam { + /** + * 订单Id列表 + */ + private List orderIds; + /** + * 车辆Id + */ + private Long truckId; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java index d436091..b2fb7eb 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java @@ -1,5 +1,11 @@ package com.njzscloud.supervisory.order.service; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; + import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; @@ -80,10 +86,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.math.BigDecimal; -import java.time.LocalDateTime; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; @@ -599,6 +602,20 @@ public class OrderInfoService extends ServiceImpl orderIds = param.getOrderIds(); + Assert.notEmpty(orderIds, () -> Exceptions.clierr("订单ID列表不能为空")); + for (Long orderId : orderIds) { + AuditOrderParam auditOrderParam = new AuditOrderParam() + .setId(orderId) + .setAuditStatus(param.getAuditStatus()) + .setAuditMemo(param.getAuditMemo()) + .setAuditPicture(param.getAuditPicture()); + audit(auditOrderParam); + } + } + @Transactional(rollbackFor = Exception.class) public void audit(AuditOrderParam auditOrderParam) { OrderPagingResult detail = detail(auditOrderParam.getId()); @@ -755,6 +772,31 @@ public class OrderInfoService extends ServiceImpl orderIds = param.getOrderIds(); + Assert.notEmpty(orderIds, () -> Exceptions.clierr("订单ID列表不能为空")); + Assert.notNull(param.getDriverId(), () -> Exceptions.clierr("司机ID不能为空")); + for (Long orderId : orderIds) { + AssignmentOrderParam assignmentOrderParam = new AssignmentOrderParam() + .setOrderId(orderId) + .setDriverId(param.getDriverId()); + OrderInfoEntity oldOrder = this.getById(orderId); + Assert.notNull(oldOrder, () -> Exceptions.clierr("订单不存在, orderId: " + orderId)); + assignmentDriver(assignmentOrderParam, oldOrder); + } + } + + @Transactional(rollbackFor = Exception.class) + public void batchConfirm(BatchConfirmOrderParam param) { + List orderIds = param.getOrderIds(); + Assert.notEmpty(orderIds, () -> Exceptions.clierr("订单ID列表不能为空")); + Assert.notNull(param.getTruckId(), () -> Exceptions.clierr("车辆ID不能为空")); + for (Long orderId : orderIds) { + confirm(orderId, param.getTruckId()); + } + } + @Transactional(rollbackFor = Exception.class) public void assignment(AssignmentOrderParam assignmentOrderParam) { OrderInfoEntity oldOrder = this.getById(assignmentOrderParam.getOrderId()); @@ -939,10 +981,9 @@ public class OrderInfoService extends ServiceImpl Exceptions.clierr("当前订单未审核完成,无法开始运输")); Long truckId = orderInfo.getTruckId(); Long driverId = orderInfo.getDriverId(); - Boolean driverIsBusy = baseMapper.driverIsBusy(driverId); - Assert.isFalse(driverIsBusy, () -> Exceptions.exception("有未完成的订单,不能清运")); - Boolean truckIsBusy = baseMapper.truckIsBusy(truckId); - Assert.isFalse(truckIsBusy, () -> Exceptions.exception("有未完成的订单,不能清运")); + Boolean driverHasInProgress = baseMapper.hasInProgressOrder(driverId, + Arrays.asList(OrderStatus.QingYunZhong.getVal(), OrderStatus.YiJinChang.getVal(), OrderStatus.YiChuChang.getVal())); + Assert.isFalse(driverHasInProgress, () -> Exceptions.clierr("您有正在进行中的订单,不能清运")); Long orderInfoId = orderInfo.getId(); OrderGoodsEntity entity = orderGoodsService.getById(orderInfo.getGoodsId()); diff --git a/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml b/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml index 1a2c5bc..af381c0 100644 --- a/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml @@ -412,4 +412,14 @@ WHERE busy = 0 AND id = #{truckId} +