Przeglądaj źródła

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

1021934019@qq.com 4 lat temu
rodzic
commit
641b8f084e
16 zmienionych plików z 319 dodań i 20 usunięć
  1. 30 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderItemsVO.java
  2. 11 3
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/dto/OrderSubmitDto.java
  3. 15 2
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFreight.java
  4. 10 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderVO.java
  5. 28 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  6. 2 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java
  7. 25 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java
  8. 27 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  9. 22 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java
  10. 30 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml
  11. 17 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  12. 5 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  13. 4 4
      blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/PurchaseEnquiry.java
  14. 16 8
      blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java
  15. 6 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java
  16. 71 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 30 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderItemsVO.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.springblade.purchase.sales.entity.OrderItems;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -33,4 +34,33 @@ import io.swagger.annotations.ApiModel;
 public class OrderItemsVO extends OrderItems {
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 订单号或合同号
+	 */
+	@ApiModelProperty(value = "订单号或合同号")
+	private String orderNo;
+	/**
+	 * 客户或供应商id(全称)
+	 */
+	@ApiModelProperty(value = "客户或供应商id(全称)")
+	private Long corpId;
+	/**
+	 * 订单日期开始
+	 */
+	private String orderStartDate;
+	/**
+	 * 订单日期结束
+	 */
+	private String orderEndDate;
+	/**
+	 * 贸易类型(枚举:国内、进口、出口)
+	 */
+	@ApiModelProperty(value = "贸易类型(枚举:国内、进口、出口)")
+	private String tradeType;
+	/**
+	 * 订单类型 销售订单 XS 采购订单 CG
+	 */
+	@ApiModelProperty(value = "订单类型 销售订单 XS 采购订单 CG")
+	private String billType;
+
 }

+ 11 - 3
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/dto/OrderSubmitDto.java

@@ -1,9 +1,7 @@
 package com.trade.purchase.order.dto;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.trade.purchase.order.entity.Order;
-import com.trade.purchase.order.entity.OrderFees;
-import com.trade.purchase.order.entity.OrderFiles;
+import com.trade.purchase.order.entity.*;
 import com.trade.purchase.order.enums.OrderStatusEnum;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.vo.OrderItemsVO;
@@ -74,5 +72,15 @@ public class OrderSubmitDto extends Order {
 	 */
 	@ApiModelProperty(value = "订单文件")
 	private List<OrderFiles> orderFilesList;
+	/**
+	 * 订单明细
+	 */
+	@ApiModelProperty(value = "订单明细")
+	private List<OrderItems> orderItemsList;
+	/**
+	 * 运费明细
+	 */
+	@ApiModelProperty(value = "运费明细")
+	private List<OrderFreight> orderFreightList;
 
 }

+ 15 - 2
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFreight.java

@@ -17,6 +17,8 @@
 package com.trade.purchase.order.entity;
 
 import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -81,6 +83,11 @@ public class OrderFreight implements Serializable {
 		@ApiModelProperty(value = "版本")
 		private String version;
 	/**
+	 * 租户id
+	 */
+		@ApiModelProperty(value = "租户id")
+		private String tenantId;
+	/**
 	* 创建人
 	*/
 		@ApiModelProperty(value = "创建人")
@@ -94,7 +101,7 @@ public class OrderFreight implements Serializable {
 	* 创建时间
 	*/
 		@ApiModelProperty(value = "创建时间")
-		private LocalDateTime createTime;
+		private Date createTime;
 	/**
 	* 修改人
 	*/
@@ -104,7 +111,7 @@ public class OrderFreight implements Serializable {
 	* 修改时间
 	*/
 		@ApiModelProperty(value = "修改时间")
-		private LocalDateTime updateTime;
+		private Date updateTime;
 	/**
 	* 状态(0 正常 1停用)
 	*/
@@ -113,8 +120,14 @@ public class OrderFreight implements Serializable {
 	/**
 	* 是否已删除(0 否 1是)
 	*/
+		@TableLogic
 		@ApiModelProperty(value = "是否已删除(0 否 1是)")
 		private Integer isDeleted;
+	/**
+	 * 船公司名称
+	 */
+		@ApiModelProperty(value = "船公司名称")
+		private String shippingHouseName;
 
 
 }

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

@@ -92,5 +92,15 @@ public class OrderVO extends Order {
 	@ApiModelProperty(value = "回显客户中文名")
 	@TableField(exist = false)
 	private List<Map<String,Object>> purchaserName;
+	/**
+	 * 订单明细
+	 */
+	@ApiModelProperty(value = "订单明细")
+	private List<OrderItems> orderItemsList;
+	/**
+	 * 运费明细
+	 */
+	@ApiModelProperty(value = "运费明细")
+	private List<OrderFreight> orderFreightList;
 
 }

+ 28 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -30,6 +30,9 @@ import org.springblade.core.mp.support.Query;
 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.OrderItems;
+import org.springblade.purchase.sales.service.IOrderItemsService;
+import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.purchase.sales.entity.Order;
@@ -50,6 +53,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 public class OrderController extends BladeController {
 
 	private final IOrderService orderService;
+	private final IOrderItemsService orderItemsService;
 
 	/**
 	 * 详情
@@ -158,6 +162,28 @@ public class OrderController extends BladeController {
 		order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
 		return R.data(orderService.deliverGoods(order));
 	}
-
-
+	/**
+	 * 发货单获取订单明细
+	 * @param query  分页参数
+	 * @param orderNo 订单号或合同号
+	 * @param corpId 客户id
+	 * @param orderStartDate 时间开始时间
+	 * @param orderEndDate 时间结束时间
+	 * @return
+	 */
+	@GetMapping("/orderItemsList")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "发货单获取订单明细", notes = "传入orderItems")
+	public R<IPage<OrderItemsVO>> orderItemsList(Query query,
+												 @RequestParam(value = "orderNo",required = false) String orderNo,
+												 @RequestParam(value = "corpId",required = false)Long corpId,
+												 @RequestParam(value = "orderStartDate",required = false)String orderStartDate,
+												 @RequestParam(value = "orderEndDate",required = false)String orderEndDate) {
+		String tradeType = OrderTypeEnum.DOMESTIC.getType();
+		String billType = OrderTypeEnum.SALES.getType();
+		String tenantId = SecureUtil.getTenantId();
+		IPage<OrderItemsVO> pages = orderItemsService.orderItemsList(Condition.getPage(query),orderNo,corpId,orderStartDate,orderEndDate,
+			tradeType,billType,tenantId);
+		return R.data(pages);
+	}
 }

+ 2 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.controller;
 
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -25,6 +26,7 @@ import javax.validation.Valid;
 
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;

+ 25 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java

@@ -19,6 +19,7 @@ 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.springframework.web.bind.annotation.*;
 
@@ -173,6 +174,30 @@ public class EntranceOrderController extends BladeController {
 		}
 
 	}
+	/**
+	 * 发货单获取订单明细
+	 * @param query  分页参数
+	 * @param orderNo 订单号或合同号
+	 * @param corpId 客户id
+	 * @param orderStartDate 时间开始时间
+	 * @param orderEndDate 时间结束时间
+	 * @return
+	 */
+	@GetMapping("/orderItemsList")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "发货单获取订单明细", notes = "传入orderItems")
+	public R<IPage<OrderItemsVO>> orderItemsList(Query query,
+												 @RequestParam(value = "orderNo",required = false) String orderNo,
+												 @RequestParam(value = "corpId",required = false)Long corpId,
+												 @RequestParam(value = "orderStartDate",required = false)String orderStartDate,
+												 @RequestParam(value = "orderEndDate",required = false)String orderEndDate) {
+		String tradeType = OrderTypeEnum.IMPORT.getType();
+		String billType = OrderTypeEnum.SALES.getType();
+		String tenantId = SecureUtil.getTenantId();
+		IPage<OrderItemsVO> pages = itemsService.orderItemsList(Condition.getPage(query),orderNo,corpId,orderStartDate,orderEndDate,
+			tradeType,billType,tenantId);
+		return R.data(pages);
+	}
 
 
 }

+ 27 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -15,7 +15,9 @@ 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.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.springframework.web.bind.annotation.*;
 
@@ -31,6 +33,7 @@ import javax.validation.Valid;
 public class ExportOrderController extends BladeController {
 
 	private final IOrderService orderService;
+	private final IOrderItemsService orderItemsService;
 
 	/**
 	 * 详情
@@ -133,4 +136,28 @@ public class ExportOrderController extends BladeController {
 		order.setTradeType(OrderTypeEnum.EXPORT.getType());
 		return R.data(orderService.deliverGoods(order));
 	}
+	/**
+	 * 发货单获取订单明细
+	 * @param query  分页参数
+	 * @param orderNo 订单号或合同号
+	 * @param corpId 客户id
+	 * @param orderStartDate 时间开始时间
+	 * @param orderEndDate 时间结束时间
+	 * @return
+	 */
+	@GetMapping("/orderItemsList")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "发货单获取订单明细", notes = "传入orderItems")
+	public R<IPage<OrderItemsVO>> orderItemsList(Query query,
+												 @RequestParam(value = "orderNo",required = false) String orderNo,
+												 @RequestParam(value = "corpId",required = false)Long corpId,
+												 @RequestParam(value = "orderStartDate",required = false)String orderStartDate,
+												 @RequestParam(value = "orderEndDate",required = false)String orderEndDate) {
+		String tradeType = OrderTypeEnum.EXPORT.getType();
+		String billType = OrderTypeEnum.SALES.getType();
+		String tenantId = SecureUtil.getTenantId();
+		IPage<OrderItemsVO> pages = orderItemsService.orderItemsList(Condition.getPage(query),orderNo,corpId,orderStartDate,orderEndDate,
+			tradeType,billType,tenantId);
+		return R.data(pages);
+	}
 }

+ 22 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,4 +40,25 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 	 */
 	List<OrderItemsVO> selectOrderItemsPage(IPage page, OrderItemsVO orderItems);
 
+	/**
+	 * 发货单获取订单明细
+	 * @param page  分页参数
+	 * @param orderNo 订单号或合同号
+	 * @param corpId 客户id
+	 * @param orderStartDate 时间开始时间
+	 * @param orderEndDate 时间结束时间
+	 * @param tradeType 贸易类型
+	 * @param billType 订单类型
+	 * @param tenantId 租户id
+	 * @return
+	 */
+	List<OrderItemsVO> orderItemsList(IPage page,
+									  @Param("orderNo") String orderNo,
+									  @Param("corpId") Long corpId,
+									  @Param("orderStartDate") String orderStartDate,
+									  @Param("orderEndDate") String orderEndDate,
+									  @Param("tradeType") String tradeType,
+									  @Param("billType") String billType,
+									  @Param("tenantId") String tenantId);
+
 }

+ 30 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml

@@ -58,5 +58,35 @@
     <select id="selectOrderItemsPage" resultMap="orderItemsResultMap">
         select * from business_order_items where is_deleted = 0
     </select>
+    <select id="orderItemsList" resultMap="orderItemsResultMap">
+        SELECT
+        DISTINCT
+	    item.*
+        FROM
+	        business_order_items item
+	    LEFT JOIN business_order od
+	    ON item.pid - od.id
+        WHERE
+	        item.is_deleted = 0
+            and item.tenant_id = #{tenantId}
+        <if test="corpId!=null">
+            and od.corp_id = #{corpId}
+        </if>
+        <if test="orderNo!=null and orderNo != ''">
+            and od.order_no like concat(concat('%',  #{orderNo}),'%')
+        </if>
+        <if test="billType!=null and billType != ''">
+            and od.bill_type = #{billType}
+        </if>
+        <if test="tradeType!=null and tradeType != ''">
+            and od.trade_type = #{tradeType}
+        </if>
+        <if test="orderStartDate!=null and orderStartDate != ''">
+            and od.busines_date &gt;= #{orderStartDate}
+        </if>
+        <if test="orderEndDate!=null and orderEndDate != ''">
+            and od.busines_date = #{orderEndDate}
+        </if>
+    </select>
 
 </mapper>

+ 17 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -16,11 +16,14 @@
  */
 package org.springblade.purchase.sales.service;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 订单明细表 服务类
  *
@@ -37,5 +40,19 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @return
 	 */
 	IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems);
+	/**
+	 * 发货单获取订单明细
+	 * @param page  分页参数
+	 * @param orderNo 订单号或合同号
+	 * @param corpId 客户id
+	 * @param orderStartDate 时间开始时间
+	 * @param orderEndDate 时间结束时间
+	 * @param tradeType 贸易类型
+	 * @param billType 订单类型
+	 * @param tenantId 租户id
+	 * @return
+	 */
+	IPage<OrderItemsVO> orderItemsList(IPage<OrderItemsVO> page,String orderNo,Long corpId, String orderStartDate,String orderEndDate,
+									  String tradeType, String billType,String tenantId);
 
 }

+ 5 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -56,6 +56,11 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		return page.setRecords(baseMapper.selectOrderItemsPage(page, orderItems));
 	}
 
+	@Override
+	public IPage<OrderItemsVO> orderItemsList(IPage<OrderItemsVO> page, String orderNo, Long corpId, String orderStartDate, String orderEndDate, String tradeType, String billType, String tenantId) {
+		return page.setRecords( baseMapper.orderItemsList(page,orderNo,corpId,orderStartDate,orderEndDate,tradeType,billType,tenantId));
+	}
+
 	/**
 	 * 保存订单明细信息
 	 * @param list 订单明细

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

@@ -122,10 +122,10 @@ public class PurchaseEnquiry  extends BladeController {
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入order")
-	public R<String> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
+	public R<OrderSubmitDto> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
 		submitDto.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
 		submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT);
-		return orderService.submitOrderMessage(submitDto);
+		return orderService.savePurchase(submitDto);
 	}
 
 	/**
@@ -210,13 +210,13 @@ public class PurchaseEnquiry  extends BladeController {
 		return orderService.savePurchaseEnquiry(order);
 	}
 	/**
-	 * 报价单生成采购询价
+	 * 提交采购询价
 	 * @param order
 	 * @return
 	 */
 	@PostMapping("/submitMessage")
 	@ApiOperationSupport(order = 10)
-	@ApiOperation(value = "报价单生成采购询价单", notes = "传入order的id")
+	@ApiOperation(value = "提交采购询价", notes = "传入order的id")
 	public R<OrderVO> submitMessage(@Valid @RequestBody Order order){
 		if (order.getId() == null){
 			throw new RuntimeException("请选择确认的单据");

+ 16 - 8
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java

@@ -3,15 +3,9 @@ package com.trade.purchase.enquiry;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.dto.OrderSubmitDto;
-import com.trade.purchase.order.entity.Order;
-import com.trade.purchase.order.entity.OrderFees;
-import com.trade.purchase.order.entity.OrderFiles;
-import com.trade.purchase.order.entity.OrderItems;
+import com.trade.purchase.order.entity.*;
 import com.trade.purchase.order.enums.OrderTypeEnum;
-import com.trade.purchase.order.service.IOrderFeesService;
-import com.trade.purchase.order.service.IOrderFilesService;
-import com.trade.purchase.order.service.IOrderItemsService;
-import com.trade.purchase.order.service.IOrderService;
+import com.trade.purchase.order.service.*;
 import com.trade.purchase.order.vo.OrderVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,6 +41,8 @@ public class ShippingEnquiry extends BladeController {
 
 	private final IOrderItemsService orderItemsService;
 
+	private final IOrderFreightService orderFreightService;
+
 	private final String ERROR_MSG = "缺少查询信息";
 
 	/**
@@ -184,4 +180,16 @@ public class ShippingEnquiry extends BladeController {
 		}
 		return R.status(orderFilesService.removeById(order));
 	}
+	/**
+	 * 删除费用信息
+	 */
+	@PostMapping("/removeFreight")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除费用信息", notes = "传入order")
+	public R<String> removeFreight(@Valid @RequestBody OrderFreight orderFreight) {
+		if (orderFreight.getId() == null) {
+			return R.fail(ERROR_MSG);
+		}
+		return R.status(orderFreightService.removeById(orderFreight));
+	}
 }

+ 6 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -95,6 +95,12 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	R<OrderVO> submit(Order order);
+	/**
+	 * 保存采购询价信息
+	 * @param submitDto
+	 * @return
+	 */
+	R<OrderSubmitDto> savePurchase(OrderSubmitDto submitDto);
 
 	IPage<OrderDTO>  listOrderItem(IPage<OrderDTO> iPage, String tradeType, String orderNo,  Long corpId,  String startDate,String endDate);
 

+ 71 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -15,6 +15,7 @@ import com.trade.purchase.order.entity.*;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.mapper.OrderItemsMapper;
 import com.trade.purchase.order.mapper.OrderMapper;
+import com.trade.purchase.order.service.IOrderFreightService;
 import com.trade.purchase.order.service.IOrderService;
 import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderItemsVO;
@@ -67,6 +68,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	private OrderMapper orderMapper;
 	private IStockGoodsClient stockGoodsClient;
 	private OrderItemsMapper orderItemsMapper;
+	private IOrderFreightService orderFreightService;
 
 
 
@@ -198,6 +200,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		//获取订单明细信息
 		List<OrderItems> orderItemsList = this.getOrderItems(vo.getId(),null);
 		if (CollectionUtils.isNotEmpty(orderItemsList)) {
+			vo.setOrderItemsList(orderItemsList);
 			vo.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
 		}
 		//获取订单费用信息
@@ -313,6 +316,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			});
 		}
+		if (CollectionUtils.isNotEmpty(submitDto.getOrderFreightList())){
+			submitDto.getOrderFreightList().stream().forEach(item ->{
+				item.setTenantId(SecureUtil.getTenantId());
+				if (item.getId() == null){
+					item.setCreateUser(SecureUtil.getUserId());
+					item.setCreateTime(new Date());
+					item.setPid(submitDto.getId());
+					orderFreightService.save(item);
+				}else {
+					item.setUpdateUser(SecureUtil.getUserId());
+					item.setUpdateTime(new Date());
+					orderFreightService.updateById(item);
+				}
+			});
+		}
 		return R.data(submitDto);
 	}
 
@@ -361,6 +379,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (CollectionUtils.isNotEmpty(modifyList)) {
 			vo.setOrderModifyList(modifyList);
 		}
+		//获取订单运费
+		List<OrderFreight> orderFreightList = orderFreightService.list(Wrappers.<OrderFreight>lambdaQuery().eq(OrderFreight::getPid, vo.getId())
+			.eq(OrderFreight::getTenantId, SecureUtil.getTenantId()).eq(OrderFreight::getIsDeleted, 0));
+		if (CollectionUtils.isNotEmpty(modifyList)) {
+			vo.setOrderFreightList(orderFreightList);
+		}
 		return R.data(vo);
 	}
 
@@ -435,7 +459,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Override
 	public R<OrderVO> submit(Order order)
 	{
-		return null;
+		order.setOrderStatus("已确认");
+		order.setUpdateUser(SecureUtil.getUserId());
+		order.setUpdateTime(new Date());
+		baseMapper.updateById(order);
+		OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(order);
+		//保存明细数据
+		List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId())
+			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
+		if (CollectionUtils.isNotEmpty(list)){
+			list.stream().forEach(item ->{
+				OrderItems orderItems = new OrderItems();
+				orderItems.setId(item.getSrcId());
+				orderItems.setPurchaseAmount(item.getPurchaseAmount());
+				orderItemsService.updateById(orderItems);
+			});
+		}
+		vo.setItemsVOList(list.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		return R.data(vo);
 	}
 
 	@Override
@@ -444,6 +485,35 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return orderItemsMapper.listOrderItem(iPage,tradeType,orderNo,corpId,startDate,endDate);
 	}
 
+	@Override
+	public R<OrderSubmitDto> savePurchase(OrderSubmitDto submitDto) {
+		if (submitDto.getId()== null){
+			submitDto.setCreateUser(SecureUtil.getUserId());
+			submitDto.setCreateTime(new Date());
+			baseMapper.insert(submitDto);
+		}else {
+			submitDto.setUpdateUser(SecureUtil.getUserId());
+			submitDto.setUpdateTime(new Date());
+			baseMapper.updateById(submitDto);
+		}
+		if (CollectionUtils.isNotEmpty(submitDto.getOrderItemsList())){
+			submitDto.getOrderItemsList().stream().forEach(item ->{
+				item.setTenantId(SecureUtil.getTenantId());
+				if (item.getId() == null){
+					item.setPid(submitDto.getId());
+					item.setCreateUser(SecureUtil.getUserId());
+					item.setCreateTime(new Date());
+					orderItemsService.save(item);
+				}else {
+					item.setUpdateUser(SecureUtil.getUserId());
+					item.setUpdateTime(new Date());
+					orderItemsService.updateById(item);
+				}
+			});
+		}
+		return R.data(submitDto);
+	}
+
 	/**
 	 * 获取订单明细数据
 	 *