From 67b047ec5bfe004e12efd629541dec71d94697e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Fri, 27 Dec 2024 11:16:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/bst/order/domain/OrderQuery.java | 6 +++++ .../ruoyi/bst/order/mapper/OrderMapper.xml | 2 ++ .../service/impl/OrderValidatorImpl.java | 23 +++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java b/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java index d616a65..49587bd 100644 --- a/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java +++ b/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/domain/OrderQuery.java @@ -33,4 +33,10 @@ public class OrderQuery extends OrderVO{ @ApiModelProperty("是否包含工序") private Boolean needProcess; + + @ApiModelProperty("精准订单号") + private String eqOrderNo; + + @ApiModelProperty("排除的ID") + private Long excludeId; } diff --git a/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml b/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml index 15391a4..1bba876 100644 --- a/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml +++ b/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/mapper/OrderMapper.xml @@ -34,6 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bo.deleted = false and bo.status = #{query.status} and bo.material like concat('%', #{query.material}, '%') + and bo.id != #{query.excludeId} + and bo.order_no = #{query.eqOrderNo} and bo.status in diff --git a/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java b/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java index a548a98..dcac36f 100644 --- a/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java +++ b/common-ruoyi/ruoyi-system/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java @@ -1,14 +1,18 @@ package com.ruoyi.bst.order.service.impl; import com.ruoyi.bst.order.domain.OrderBO; +import com.ruoyi.bst.order.domain.OrderQuery; import com.ruoyi.bst.order.domain.OrderVO; import com.ruoyi.bst.order.domain.enums.OrderStatus; +import com.ruoyi.bst.order.service.OrderService; import com.ruoyi.bst.order.service.OrderValidator; import com.ruoyi.bst.orderProd.domain.OrderProdBO; import com.ruoyi.bst.orderProd.domain.enums.OrderProdWorkType; import com.ruoyi.bst.prodProcess.domain.ProdProcessBO; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.collection.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -20,6 +24,8 @@ import java.util.List; @Service public class OrderValidatorImpl implements OrderValidator { + @Autowired + private OrderService orderService; @Override public void checkBefore(OrderBO data) { @@ -36,6 +42,9 @@ public class OrderValidatorImpl implements OrderValidator { } } + // 校验订单编号 + this.checkOrderNo(data.getId(), data.getOrderNo()); + // 有且仅有一个结束的产品 boolean singleEndProd = this.hasSingleEndProd(data.getProdList()); ServiceUtil.assertion(!singleEndProd, "订单中必须有且仅有一个产品为成品"); @@ -54,6 +63,18 @@ public class OrderValidatorImpl implements OrderValidator { } } + private void checkOrderNo(Long id, String orderNo) { + if (StringUtils.isBlank(orderNo)) { + return; + } + + OrderQuery query = new OrderQuery(); + query.setEqOrderNo(orderNo); + query.setExcludeId(id); + int unique = orderService.selectCount(query); + ServiceUtil.assertion(unique > 0, "订单编号%s已存在", orderNo); + } + private boolean hasSingleEndProcess(List processList) { if (CollectionUtils.isEmptyElement(processList)) { return false; @@ -87,5 +108,7 @@ public class OrderValidatorImpl implements OrderValidator { @Override public void checkAfter(OrderVO vo) { + // 校验订单编号 + this.checkOrderNo(vo.getId(), vo.getOrderNo()); } }