Browse Source

Merge branch 'dev' of http://git.echepei.com/lazhaoqian/bladex into dev

1021934019@qq.com 4 years ago
parent
commit
f831a721aa
18 changed files with 659 additions and 78 deletions
  1. 4 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java
  2. 24 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  3. 44 4
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java
  4. 30 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  5. 59 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderVO.java
  6. 4 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java
  7. 1 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryFilesController.java
  8. 1 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryItemsController.java
  9. 4 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java
  10. 4 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ImportDeliveryController.java
  11. 70 7
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  12. 72 7
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java
  13. 85 7
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java
  14. 72 8
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  15. 36 21
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  16. 3 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  17. 73 7
      blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/PurchaseEnquiry.java
  18. 73 7
      blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java

+ 4 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -314,15 +314,19 @@ public class Delivery implements Serializable {
 	private List<Map<String,Object>> companyName;
 
 	@TableField(exist = false)
+	@ApiModelProperty(value = "发货日期开始")
 	private String businessStartDate;
 
 	@TableField(exist = false)
+	@ApiModelProperty(value = "发货日期结束")
 	private String businessEndDate;
 
 	@TableField(exist = false)
+	@ApiModelProperty(value = "制单日期开始")
 	private String createStartTime;
 
 	@TableField(exist = false)
+	@ApiModelProperty(value = "制单日期结束")
 	private String createEndTime;
 	/**
 	 * 发货单操作类型

+ 24 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -621,5 +621,29 @@ public class Order implements Serializable {
 	 */
 	@ApiModelProperty(value = "提单号")
 	private String billNo;
+	/**
+	 * 列表客户中文名
+	 */
+	@ApiModelProperty(value = "列表客户中文名")
+	@TableField(exist = false)
+	private String corpsName;
+	/**
+	 * 数量合计
+	 */
+	@ApiModelProperty(value = "数量合计")
+	@TableField(exist = false)
+	private BigDecimal orderQuantity;
+	/**
+	 *销售金额
+	 */
+	@ApiModelProperty(value = "销售金额")
+	@TableField(exist = false)
+	private BigDecimal amount;
+	/**
+	 * 发货数量
+	 */
+	@ApiModelProperty(value = "发货数量")
+	@TableField(exist = false)
+	private BigDecimal actualQuantity;
 
 }

+ 44 - 4
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java

@@ -21,6 +21,7 @@ import org.springblade.purchase.sales.entity.Order;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.List;
 
@@ -43,34 +44,73 @@ public class OrderVO extends Order {
 	/**
 	 * 要求发货时间开始
 	 */
+	@ApiModelProperty(value = "要求发货时间开始")
 	private String deliveryStartDate;
 	/**
 	 * 要求发货时间结束
 	 */
+	@ApiModelProperty(value = "要求发货时间结束")
 	private String deliveryEndDate;
 	/**
-	 * 要求到货日期开始
+	 * 要求到货日期
 	 */
-	private String arrivalStartDate;
+	@ApiModelProperty(value = "要求到货日期")
+	private String arrivalDateStart;
+
 	/**
-	 * 要求到货日期结束
+	 * 要求到货日期
 	 */
-	private String arrivalEndDate;
+	@ApiModelProperty(value = "要求到货日期")
+	private String arrivalDateEnd;
 	/**
 	 * 合同日期开始
 	 */
+	@ApiModelProperty(value = "合同日期开始")
 	private String contractStartDate;
 	/**
 	 * 合同日期结束
 	 */
+	@ApiModelProperty(value = "合同日期结束")
 	private String contractEndDate;
 	/**
 	 * 订单日期开始
 	 */
+	@ApiModelProperty(value = "订单日期开始")
 	private String orderStartDate;
 	/**
 	 * 订单日期结束
 	 */
+	@ApiModelProperty(value = "订单日期结束")
 	private String orderEndDate;
+	/**
+	 * 有效日期开始
+	 */
+	@ApiModelProperty(value = "有效日期开始")
+	private String dateValidityStart;
+	/**
+	 * 有效日期结束
+	 */
+	@ApiModelProperty(value = "有效日期结束")
+	private String dateValidityEnd;
+	/**
+	 * 制单日期日期开始
+	 */
+	@ApiModelProperty(value = "制单日期日期开始")
+	private String createTimeStart;
+	/**
+	 * 制单日期日期结束
+	 */
+	@ApiModelProperty(value = "制单日期日期结束")
+	private String createTimeEnd;
+	/**
+	 * 发货时间开始
+	 */
+	@ApiModelProperty(value = "发货时间开始")
+	private String actualDeliveryDateStart;
+	/**
+	 * 发货时间结束
+	 */
+	@ApiModelProperty(value = "发货时间结束")
+	private String actualDeliveryDateEnd;
 
 }

+ 30 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java

@@ -552,6 +552,36 @@ public class Order extends OrderBase {
 	 */
 	@ApiModelProperty(value = "提单号")
 	private String billNo;
+	/**
+	 * 所属公司中文名
+	 */
+	@ApiModelProperty(value = "所属公司中文名")
+	@TableField(exist = false)
+	private String belongToCorpName;
+	/**
+	 * 列表客户中文名
+	 */
+	@ApiModelProperty(value = "列表客户中文名")
+	@TableField(exist = false)
+	private String corpName;
+	/**
+	 * 数量合计
+	 */
+	@ApiModelProperty(value = "数量合计")
+	@TableField(exist = false)
+	private BigDecimal orderQuantity;
+	/**
+	 *销售金额
+	 */
+	@ApiModelProperty(value = "销售金额")
+	@TableField(exist = false)
+	private BigDecimal amount;
+	/**
+	 * 发货数量
+	 */
+	@ApiModelProperty(value = "发货数量")
+	@TableField(exist = false)
+	private BigDecimal actualQuantity;
 
 	/**
 	 * 总件数

+ 59 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderVO.java

@@ -102,5 +102,64 @@ public class OrderVO extends Order {
 	 */
 	@ApiModelProperty(value = "运费明细")
 	private List<OrderFreight> orderFreightList;
+	/**
+	 * 有效日期开始
+	 */
+	@ApiModelProperty(value = "有效日期开始")
+	private String dateValidityStart;
+	/**
+	 * 有效日期结束
+	 */
+	@ApiModelProperty(value = "有效日期结束")
+	private String dateValidityEnd;
+	/**
+	 * 制单日期日期开始
+	 */
+	@ApiModelProperty(value = "制单日期日期开始")
+	private String createTimeStart;
+	/**
+	 * 制单日期日期结束
+	 */
+	@ApiModelProperty(value = "制单日期日期结束")
+	private String createTimeEnd;
+	/**
+	 * 发货时间开始
+	 */
+	@ApiModelProperty(value = "发货时间开始")
+	private String actualDeliveryDateStart;
+	/**
+	 * 发货时间结束
+	 */
+	@ApiModelProperty(value = "发货时间结束")
+	private String actualDeliveryDateEnd;
+	/**
+	 * 合同日期开始
+	 */
+	@ApiModelProperty(value = "合同日期开始")
+	private String contractStartDate;
+	/**
+	 * 合同日期结束
+	 */
+	@ApiModelProperty(value = "合同日期结束")
+	private String contractEndDate;
+	/**
+	 * 要求发货时间开始
+	 */
+	@ApiModelProperty(value = "要求发货时间开始")
+	private String deliveryStartDate;
+	/**
+	 * 要求发货时间结束
+	 */
+	@ApiModelProperty(value = "要求发货时间结束")
+	private String deliveryEndDate;	/**
+	 * 订单日期开始
+	 */
+	@ApiModelProperty(value = "订单日期开始")
+	private String orderStartDate;
+	/**
+	 * 订单日期结束
+	 */
+	@ApiModelProperty(value = "订单日期结束")
+	private String orderEndDate;
 
 }

+ 4 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java

@@ -87,8 +87,10 @@ public class DeliveryController extends BladeController {
 		lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
 		lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());
 		lambdaQueryWrapper.eq(Delivery::getTradeType,OrderTypeEnum.DOMESTIC.getType());
-		lambdaQueryWrapper.between(StringUtils.isNotBlank(delivery.getCreateStartTime())&&StringUtils.isNotBlank(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateStartTime(),delivery.getCreateEndTime());
-		lambdaQueryWrapper.between(StringUtils.isNotBlank(delivery.getBusinessStartDate())&&StringUtils.isNotBlank(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate(),delivery.getBusinessEndDate());
+		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()),Delivery::getCreateTime,delivery.getCreateStartTime());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateEndTime());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessEndDate());//发货日期结束
 		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())){
 			pages.getRecords().forEach(item ->{

+ 1 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryFilesController.java

@@ -109,7 +109,7 @@ public class DeliveryFilesController extends BladeController {
 		}
 		DeliveryFiles deliveryFilesMessage = deliveryFilesService.getById(deliveryFiles.getId());
 		if (deliveryFilesMessage == null){
-			throw  new SecurityException("未找到费用明细");
+			throw  new SecurityException("未找到附件明细");
 		}
 		Delivery deliveryMessage = deliveryService.getById(deliveryFilesMessage.getPid());
 		if (StringUtils.isNotBlank(deliveryMessage.getDeliveryStatus()) && deliveryMessage.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())){

+ 1 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryItemsController.java

@@ -114,7 +114,7 @@ public class DeliveryItemsController extends BladeController {
 		}
 		DeliveryItems deliveryItemsMessage = deliveryItemsService.getById(deliveryItems.getId());
 		if (deliveryItemsMessage == null){
-			throw  new SecurityException("未找到费用明细");
+			throw  new SecurityException("未找到发货明细");
 		}
 		Delivery deliveryMessage = deliveryService.getById(deliveryItemsMessage.getPid());
 		if (StringUtils.isNotBlank(deliveryMessage.getDeliveryStatus()) && deliveryMessage.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())){

+ 4 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java

@@ -84,8 +84,10 @@ public class ExportDeliveryController extends BladeController {
 		lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
 		lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());
 		lambdaQueryWrapper.eq(Delivery::getTradeType,OrderTypeEnum.EXPORT.getType());
-		lambdaQueryWrapper.between(StringUtils.isNotBlank(delivery.getCreateStartTime())&&StringUtils.isNotBlank(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateStartTime(),delivery.getCreateEndTime());
-		lambdaQueryWrapper.between(StringUtils.isNotBlank(delivery.getBusinessStartDate())&&StringUtils.isNotBlank(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate(),delivery.getBusinessEndDate());
+		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()),Delivery::getCreateTime,delivery.getCreateStartTime());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateEndTime());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessEndDate());//发货日期结束
 		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())){
 			pages.getRecords().forEach(item ->{

+ 4 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ImportDeliveryController.java

@@ -88,8 +88,10 @@ public class ImportDeliveryController extends BladeController {
 		lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
 		lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());
 		lambdaQueryWrapper.eq(Delivery::getTradeType,OrderTypeEnum.IMPORT.getType());
-		lambdaQueryWrapper.between(StringUtils.isNotBlank(delivery.getCreateStartTime())&&StringUtils.isNotBlank(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateStartTime(),delivery.getCreateEndTime());
-		lambdaQueryWrapper.between(StringUtils.isNotBlank(delivery.getBusinessStartDate())&&StringUtils.isNotBlank(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate(),delivery.getBusinessEndDate());
+		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()),Delivery::getCreateTime,delivery.getCreateStartTime());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateEndTime());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessEndDate());//发货日期结束
 		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())){
 			pages.getRecords().forEach(item ->{

+ 70 - 7
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -17,6 +17,7 @@
 package org.springblade.purchase.sales.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.google.protobuf.ServiceException;
 import com.trade.purchase.order.enums.OrderTypeEnum;
@@ -27,6 +28,8 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.SecureUtil;
@@ -35,6 +38,8 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.purchase.sales.entity.Order;
@@ -42,6 +47,7 @@ import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -58,6 +64,8 @@ public class OrderController extends BladeController {
 
 	private final IOrderService orderService;
 	private final IOrderItemsService orderItemsService;
+	private final ICorpsDescClient corpsDescClient;//获取客户信息
+	private final IUserClient userClient;//获取用户信息
 
 	/**
 	 * 详情
@@ -92,13 +100,66 @@ public class OrderController extends BladeController {
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(SecureUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.SALES.getType());
-		order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
-		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
-		return R.data(pages);
+	public R<IPage<Order>> page(OrderVO order, Query query) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()),Order::getSrcOrderNo,order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()),Order::getShippingAddress,order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()),Order::getArrivalAddress,order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()),Order::getActualDeliveryDate,order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()),Order::getActualDeliveryDate,order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()),Order::getRequiredDeliveryDate,order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()),Order::getRequiredDeliveryDate,order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()),Order::getRequiredArrivalDate,order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()),Order::getRequiredArrivalDate,order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()),Order::getOrderStatus,order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()),Order::getSysNo,order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()),Order::getCreateUser,order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()),Order::getCreateTime,order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()),Order::getCreateTime,order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()),Order::getDateValidity,order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()),Order::getDateValidity,order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())){
+			page.getRecords().stream().forEach(item ->{
+				if (item.getCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setCorpsName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null){
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+			});
+		}
+		return R.data(page);
 	}
 
 	/**
@@ -127,6 +188,7 @@ public class OrderController extends BladeController {
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(Order::getSysNo,orderMessage.getSysNo());
 		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
 		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.PURCHASE.getType());
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(orderList)){
@@ -137,6 +199,7 @@ public class OrderController extends BladeController {
 		lambdaQuery.eq(Order::getSysNo,orderMessage.getSysNo());
 		lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
 		lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
+		lambdaQuery.eq(Order::getIsDeleted,0);
 		List<Order> list = orderService.list(lambdaQuery);
 		if (CollectionUtils.isNotEmpty(list)){
 			throw  new SecurityException("销售单已生成发货单不能删除");

+ 72 - 7
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java

@@ -1,6 +1,7 @@
 package org.springblade.purchase.sales.entrance;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -10,6 +11,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.boot.ctrl.BladeController;
@@ -25,9 +28,12 @@ import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.vo.OrderVO;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -45,6 +51,9 @@ public class EntranceOrderController extends BladeController {
 	private final IOrderItemsService itemsService;
 
 	private IGoodsDescClient goodsDescClient;//获取商品信息
+	private final ICorpsDescClient corpsDescClient;//获取客户信息
+	private final IUserClient userClient;//获取用户信息
+	private final IOrderItemsService orderItemsService;
 
 	/**
 	 * 详情
@@ -78,13 +87,67 @@ public class EntranceOrderController extends BladeController {
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(SecureUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.SALES.getType());
-		order.setTradeType(OrderTypeEnum.IMPORT.getType());
-		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
-		return R.data(pages);
+	public R<IPage<Order>> page(OrderVO order, Query query) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.IMPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()),Order::getSrcOrderNo,order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()),Order::getShippingAddress,order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()),Order::getArrivalAddress,order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()),Order::getActualDeliveryDate,order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()),Order::getActualDeliveryDate,order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()),Order::getRequiredDeliveryDate,order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()),Order::getRequiredDeliveryDate,order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()),Order::getRequiredArrivalDate,order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()),Order::getRequiredArrivalDate,order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()),Order::getOrderStatus,order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()),Order::getSysNo,order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()),Order::getCreateUser,order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()),Order::getCreateTime,order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()),Order::getCreateTime,order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()),Order::getDateValidity,order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()),Order::getDateValidity,order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())){
+			page.getRecords().stream().forEach(item ->{
+				if (item.getCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setCorpsName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null){
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+		}
+		return R.data(page);
 	}
 	/**
 	 * 新增 进口销售单控制器
@@ -112,6 +175,7 @@ public class EntranceOrderController extends BladeController {
 		lambdaQueryWrapper.eq(Order::getSysNo,orderMessage.getSysNo());
 		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.IMPORT.getType());
 		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.PURCHASE.getType());
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(orderList)){
 			throw  new SecurityException("销售单已生成采购单不能删除");
@@ -121,6 +185,7 @@ public class EntranceOrderController extends BladeController {
 		lambdaQuery.eq(Order::getSysNo,orderMessage.getSysNo());
 		lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
 		lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
+		lambdaQuery.eq(Order::getIsDeleted,0);
 		List<Order> list = orderService.list(lambdaQuery);
 		if (CollectionUtils.isNotEmpty(list)){
 			throw  new SecurityException("销售单已生成发货单不能删除");

+ 85 - 7
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -1,5 +1,7 @@
 package org.springblade.purchase.sales.export;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -8,6 +10,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -15,11 +19,17 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderItems;
+import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.purchase.sales.vo.OrderVO;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 出口询价单控制器
@@ -31,6 +41,9 @@ import javax.validation.Valid;
 public class ExportEnquiryController extends BladeController {
 
 	private final IOrderService orderService;
+	private final ICorpsDescClient corpsDescClient;//获取客户信息
+	private final IUserClient userClient;//获取用户信息
+	private final IOrderItemsService orderItemsService;
 
 	/**
 	 * 详情
@@ -64,13 +77,67 @@ public class ExportEnquiryController extends BladeController {
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(SecureUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
-		order.setTradeType(OrderTypeEnum.EXPORT.getType());
-		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
-		return R.data(pages);
+	public R<IPage<Order>> page(OrderVO order, Query query) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.ENQUIRY.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()),Order::getSrcOrderNo,order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()),Order::getShippingAddress,order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()),Order::getArrivalAddress,order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()),Order::getActualDeliveryDate,order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()),Order::getActualDeliveryDate,order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()),Order::getRequiredDeliveryDate,order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()),Order::getRequiredDeliveryDate,order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()),Order::getRequiredArrivalDate,order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()),Order::getRequiredArrivalDate,order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()),Order::getOrderStatus,order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()),Order::getSysNo,order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()),Order::getCreateUser,order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()),Order::getCreateTime,order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()),Order::getCreateTime,order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()),Order::getDateValidity,order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()),Order::getDateValidity,order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())){
+			page.getRecords().stream().forEach(item ->{
+				if (item.getCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setCorpsName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null){
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+		}
+		return R.data(page);
 	}
 	/**
 	 * 新增 出口询价
@@ -91,6 +158,17 @@ public class ExportEnquiryController extends BladeController {
 		if (order.getId() == null){
 			return R.fail(500,"请选择要删除的数据");
 		}
+		//先查订单信息
+		Order orderMessage = orderService.getById(order.getId());
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getSysNo,orderMessage.getSysNo());
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.IMPORT.getType());
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
+		List<Order> orderList = orderService.list(lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(orderList)){
+			throw  new SecurityException("报价单已生成销售单不能删除");
+		}
 		order.setIsDeleted(1);
 		return R.status(orderService.updateById(order));
 	}

+ 72 - 8
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -1,6 +1,7 @@
 package org.springblade.purchase.sales.export;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -9,6 +10,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -16,13 +19,17 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.vo.OrderVO;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -36,7 +43,8 @@ public class ExportOrderController extends BladeController {
 
 	private final IOrderService orderService;
 	private final IOrderItemsService orderItemsService;
-
+	private final ICorpsDescClient corpsDescClient;//获取客户信息
+	private final IUserClient userClient;//获取用户信息
 	/**
 	 * 详情
 	 */
@@ -69,13 +77,67 @@ public class ExportOrderController extends BladeController {
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(SecureUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.SALES.getType());
-		order.setTradeType(OrderTypeEnum.EXPORT.getType());
-		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
-		return R.data(pages);
+	public R<IPage<Order>> page(OrderVO order, Query query) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()),Order::getSrcOrderNo,order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()),Order::getShippingAddress,order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()),Order::getArrivalAddress,order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()),Order::getActualDeliveryDate,order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()),Order::getActualDeliveryDate,order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()),Order::getRequiredDeliveryDate,order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()),Order::getRequiredDeliveryDate,order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()),Order::getRequiredArrivalDate,order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()),Order::getRequiredArrivalDate,order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()),Order::getOrderStatus,order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()),Order::getSysNo,order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()),Order::getCreateUser,order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()),Order::getCreateTime,order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()),Order::getCreateTime,order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()),Order::getDateValidity,order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()),Order::getDateValidity,order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())){
+			page.getRecords().stream().forEach(item ->{
+				if (item.getCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setCorpsName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null){
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+		}
+		return R.data(page);
 	}
 	/**
 	 * 新增 出口销售或采购订单表
@@ -103,6 +165,7 @@ public class ExportOrderController extends BladeController {
 		lambdaQueryWrapper.eq(Order::getSysNo,orderMessage.getSysNo());
 		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());
 		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.PURCHASE.getType());
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(orderList)){
 			throw  new SecurityException("销售单已生成采购单不能删除");
@@ -112,6 +175,7 @@ public class ExportOrderController extends BladeController {
 		lambdaQuery.eq(Order::getSysNo,orderMessage.getSysNo());
 		lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
 		lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
+		lambdaQuery.eq(Order::getIsDeleted,0);
 		List<Order> list = orderService.list(lambdaQuery);
 		if (CollectionUtils.isNotEmpty(list)){
 			throw  new SecurityException("销售单已生成发货单不能删除");

+ 36 - 21
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -106,19 +106,19 @@
             and id = #{Order.id}
         </if>
         <if test="Order.sysNo!=null and Order.sysNo != ''">
-            and sys_no = #{Order.sysNo}
+            and sys_no like CONCAT(CONCAT('%', #{Order.sysNo}), '%')
         </if>
         <if test="Order.orderNo!=null and Order.orderNo != ''">
-            and order_no = #{Order.orderNo}
+            and order_no like CONCAT(CONCAT('%', #{Order.orderNo}), '%')
         </if>
         <if test="Order.morderNo!=null and Order.morderNo != ''">
-            and morder_no = #{Order.morderNo}
+            and morder_no like CONCAT(CONCAT('%', #{Order.morderNo}), '%')
         </if>
         <if test="Order.orgOrderNo!=null and Order.orgOrderNo != ''">
-            and org_order_no = #{Order.orgOrderNo}
+            and org_order_no like CONCAT(CONCAT('%', #{Order.orgOrderNo}), '%')
         </if>
         <if test="Order.srcOrderNo!=null and Order.srcOrderNo != ''">
-            and src_order_no = #{Order.srcOrderNo}
+            and src_order_no like CONCAT(CONCAT('%', #{Order.srcOrderNo}), '%')
         </if>
         <if test="Order.srcId!=null">
             and src_id = #{Order.srcId}
@@ -145,22 +145,22 @@
             and storage_id = #{Order.storageId}
         </if>
         <if test="Order.shippingAddress!=null and Order.shippingAddress != ''">
-            and shipping_address = #{Order.shippingAddress}
+            and shipping_address like CONCAT(CONCAT('%', #{Order.shippingAddress}), '%')
         </if>
         <if test="Order.arrivalAddress!=null and Order.arrivalAddress != ''">
-            and arrival_address = #{Order.arrivalAddress}
+            and arrival_address like CONCAT(CONCAT('%', #{Order.arrivalAddress}), '%')
         </if>
         <if test="Order.packageRemarks!=null and Order.packageRemarks != ''">
-            and package_remarks = #{Order.packageRemarks}
+            and package_remarks like CONCAT(CONCAT('%', #{Order.packageRemarks}), '%')
         </if>
         <if test="Order.freightRemarks!=null and Order.freightRemarks != ''">
-            and freight_remarks = #{Order.freightRemarks}
+            and freight_remarks like CONCAT(CONCAT('%', #{Order.freightRemarks}), '%')
         </if>
         <if test="Order.banks!=null and Order.banks != ''">
-            and banks = #{Order.banks}
+            and banks like CONCAT(CONCAT('%', #{Order.banks}), '%')
         </if>
         <if test="Order.banksAccountName!=null and Order.banksAccountName != ''">
-            and banks_account_name = #{Order.banksAccountName}
+            and banks_account_name like CONCAT(CONCAT('%', #{Order.banksAccountName}), '%')
         </if>
         <if test="Order.requiredDeliveryDate!=null">
             and required_delivery_date = #{Order.requiredDeliveryDate}
@@ -169,7 +169,7 @@
             and required_arrival_date = #{Order.requiredArrivalDate}
         </if>
         <if test="Order.orderRemark!=null and Order.orderRemark != ''">
-            and order_remark = #{Order.orderRemark}
+            and order_remark like CONCAT(CONCAT('%',  #{Order.orderRemark}), '%')
         </if>
         <if test="Order.orderAmount!=null">
             and order_amount = #{Order.orderAmount}
@@ -184,7 +184,7 @@
             and balance_amount = #{Order.balanceAmount}
         </if>
         <if test="Order.paymentType!=null and Order.paymentType != ''">
-            and payment_type = #{Order.paymentType}
+            and payment_type  like CONCAT(CONCAT('%',  #{Order.paymentType}), '%')
         </if>
         <if test="Order.creditDate!=null">
             and credit_date = #{Order.creditDate}
@@ -226,7 +226,7 @@
             and arrival_date = #{Order.arrivalDate}
         </if>
         <if test="Order.procurementMethod!=null and Order.procurementMethod != ''">
-            and procurement_method = #{Order.procurementMethod}
+            and procurement_method like CONCAT(CONCAT('%',  #{Order.procurementMethod}), '%')
         </if>
         <if test="Order.storageAmount!=null">
             and storage_amount = #{Order.storageAmount}
@@ -244,13 +244,13 @@
             and point_mutiple = #{Order.pointMutiple}
         </if>
         <if test="Order.specialRemarks!=null and Order.specialRemarks != ''">
-            and special_remarks = #{Order.specialRemarks}
+            and special_remarks like CONCAT(CONCAT('%',  #{Order.specialRemarks}), '%')
         </if>
         <if test="Order.salesName!=null and Order.salesName != ''">
-            and sales_name = #{Order.salesName}
+            and sales_name like CONCAT(CONCAT('%',  #{Order.salesName}), '%')
         </if>
         <if test="Order.commissionRate!=null and Order.commissionRate != ''">
-            and commission_rate = #{Order.commissionRate}
+            and commission_rate like CONCAT(CONCAT('%',  #{Order.commissionRate}), '%')
         </if>
         <if test="Order.salesPrice!=null">
             and sales_price = #{Order.salesPrice}
@@ -262,7 +262,7 @@
             and bill_weight = #{Order.billWeight}
         </if>
         <if test="Order.currency!=null and Order.currency != ''">
-            and currency = #{Order.currency}
+            and currency like CONCAT(CONCAT('%',  #{Order.currency}), '%')
         </if>
         <if test="Order.exchangeRate!=null">
             and exchange_rate = #{Order.exchangeRate}
@@ -271,13 +271,13 @@
             and planned_delivery_date = #{Order.plannedDeliveryDate}
         </if>
         <if test="Order.proformInvoice!=null and Order.proformInvoice != ''">
-            and proform_invoice = #{Order.proformInvoice}
+            and proform_invoice like CONCAT(CONCAT('%',  #{Order.proformInvoice}), '%')
         </if>
         <if test="Order.portOfLoad!=null and Order.portOfLoad != ''">
-            and port_of_load = #{Order.portOfLoad}
+            and port_of_load like CONCAT(CONCAT('%',  #{Order.portOfLoad}), '%')
         </if>
         <if test="Order.portOfDestination!=null and Order.portOfDestination != ''">
-            and port_of_destination = #{Order.portOfDestination}
+            and port_of_destination  like CONCAT(CONCAT('%',  #{Order.portOfDestination}), '%')
         </if>
         <if test="Order.oceanFreight!=null">
             and ocean_freight = #{Order.oceanFreight}
@@ -348,6 +348,21 @@
         <if test='Order.orderEndDate != null and Order.orderEndDate!= ""'>
             and busines_date &lt;= #{Order.orderEndDate}
         </if>
+        <if test='Order.dateValidityStart != null and Order.dateValidityStart!= ""'>
+            and date_validity &gt;= #{Order.dateValidityStart}
+        </if>
+        <if test='Order.dateValidityEnd != null and Order.dateValidityEnd!= ""'>
+            and date_validity &lt;= #{Order.dateValidityEnd}
+        </if>
+        <if test='Order.createTimeStart != null and Order.createTimeStart!= ""'>
+            and create_time &gt;= #{Order.createTimeStart}
+        </if>
+        <if test='Order.createTimeEnd != null and Order.createTimeEnd!= ""'>
+            and create_time &lt;= #{Order.createTimeEnd}
+        </if>
+        <if test="Order.orderStatus!=null and Order.orderStatus != ''">
+            and order_status = #{Order.orderStatus}
+        </if>
         order by id
     </select>
 

+ 3 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -301,7 +301,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 					throw  new RuntimeException("生成系统编号失败");
 				}
-				selectById.setOrgOrderNo(selectById.getOrderNo());
+				selectById.setSrcOrderNo(selectById.getSysNo());
 				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());
 				if (corpMessage.isSuccess()){
 					R clientBillNo = serialClient.getBillNo(corpMessage.getData().getCode(),order.getTradeType());
@@ -309,8 +309,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 						throw  new RuntimeException("生成订单编号失败");
 					}
+					selectById.setOrderNo((String) clientBillNo.getData());
 					if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())){   //进口的orgOrderNo 存的是采购订单号  出口国内存的是本身的订单号码
-						order.setOrgOrderNo((String) clientBillNo.getData());
+						selectById.setOrgOrderNo((String) clientBillNo.getData());
 					}
 				}
 				selectById.setSrcId(order.getId());

+ 73 - 7
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/PurchaseEnquiry.java

@@ -1,6 +1,9 @@
 package com.trade.purchase.enquiry;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.dto.OrderSubmitDto;
@@ -18,15 +21,22 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 出口采购询价 控制器
@@ -49,6 +59,8 @@ public class PurchaseEnquiry  extends BladeController {
 	private final IOrderItemsService orderItemsService;
 
 	private final String ERROR_MSG = "缺少查询信息";
+	private final ICorpsDescClient corpsDescClient;//获取客户信息
+	private final IUserClient userClient;//获取用户信息
 
 	/**
 	 * 详情
@@ -81,13 +93,67 @@ public class PurchaseEnquiry  extends BladeController {
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(AuthUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
-		order.setTradeType(OrderTypeEnum.EXPORT.getType());
-		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
-		return R.data(pages);
+	public R<IPage<Order>> page(OrderVO order, Query query) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId, SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.PURCHASE_ENQUIRY.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.EXPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()), Order::getOrderNo, order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()), Order::getShippingAddress, order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()), Order::getArrivalAddress, order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()), Order::getActualDeliveryDate, order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()), Order::getActualDeliveryDate, order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()), Order::getRequiredDeliveryDate, order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()), Order::getRequiredDeliveryDate, order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()), Order::getRequiredArrivalDate, order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()), Order::getRequiredArrivalDate, order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()), Order::getOrderStatus, order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()), Order::getCreateTime, order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()), Order::getCreateTime, order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()), Order::getDateValidity, order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()), Order::getDateValidity, order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())) {
+			page.getRecords().stream().forEach(item -> {
+				if (item.getCorpId() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setCorpName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null) {
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+		}
+		return R.data(page);
 	}
 
 	/**

+ 73 - 7
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java

@@ -1,6 +1,9 @@
 package com.trade.purchase.enquiry;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.dto.OrderSubmitDto;
@@ -12,15 +15,22 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 出口船务询价 控制器
@@ -45,6 +55,8 @@ public class ShippingEnquiry extends BladeController {
 	private final IOrderFreightService orderFreightService;
 
 	private final String ERROR_MSG = "缺少查询信息";
+	private final ICorpsDescClient corpsDescClient;//获取客户信息
+	private final IUserClient userClient;//获取用户信息
 
 	/**
 	 * 详情
@@ -77,13 +89,67 @@ public class ShippingEnquiry extends BladeController {
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(AuthUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
-		order.setTradeType(OrderTypeEnum.EXPORT.getType());
-		IPage<OrderVO> pages = orderService.shippingEnquiry(Condition.getPage(query), order);
-		return R.data(pages);
+	public R<IPage<Order>> page(OrderVO order, Query query) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId, SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.ENQUIRY.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.EXPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()), Order::getOrderNo, order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()), Order::getShippingAddress, order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()), Order::getArrivalAddress, order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()), Order::getActualDeliveryDate, order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()), Order::getActualDeliveryDate, order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()), Order::getRequiredDeliveryDate, order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()), Order::getRequiredDeliveryDate, order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()), Order::getRequiredArrivalDate, order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()), Order::getRequiredArrivalDate, order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()), Order::getOrderStatus, order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()), Order::getCreateTime, order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()), Order::getCreateTime, order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()), Order::getDateValidity, order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()), Order::getDateValidity, order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())) {
+			page.getRecords().stream().forEach(item -> {
+				if (item.getCorpId() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setCorpName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null) {
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+		}
+		return R.data(page);
 	}
 
 	/**