Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 4 years ago
parent
commit
a78b9dca81
22 changed files with 875 additions and 421 deletions
  1. 1 1
      blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
  2. 14 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java
  3. 23 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/goods/dto/GoodsDescDto.java
  4. 373 372
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  5. 6 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/dto/OrderSubmitDto.java
  6. 25 16
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  7. 21 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/enums/OrderTypeEnum.java
  8. 24 1
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderVO.java
  9. 24 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java
  10. 4 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  11. 1 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  12. 1 1
      blade-service/blade-purchase-sales/src/main/resources/application-dev.yml
  13. 15 2
      blade-service/trade-purchase/pom.xml
  14. 1 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/PurchaseApplication.java
  15. 4 5
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/assemble/mapstruct/OrderMapstructMapper.java
  16. 2 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderCodeMaker.java
  17. 5 3
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderSaveImpl.java
  18. 128 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/DomesticOrderController.java
  19. 13 6
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/ExportOrderController.java
  20. 128 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/ImportOrderController.java
  21. 5 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml
  22. 57 10
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 1 - 1
blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java

@@ -78,7 +78,7 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService {
 		// TODO 2.8.3版本将增加:1.参数管理读取配置 2.用户管理增加解封按钮
 		int count = getFailCount(tenantId, username);
 		if (count >= FAIL_COUNT) {
-			throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_TOO_MANY_FAILS);
+//			throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_TOO_MANY_FAILS);
 		}
 
 		// 获取租户信息

+ 14 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java

@@ -1,6 +1,7 @@
 package org.springblade.client.feign;
 
 import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.mp.support.BladePage;
 import org.springblade.core.tool.api.R;
@@ -8,6 +9,8 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 @FeignClient(
 	value = LauncherConstant.APPLICATION_CLIENT_NAME
 )
@@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 public interface ICorpsDescClient {
 	String API_PREFIX = "/client";
 	String TOP = API_PREFIX + "/top";
+	String CORP_DETAILS = API_PREFIX + "/corpDetails";
 	String getMessage = API_PREFIX + "/getMessage";
 
 	/**
@@ -31,10 +35,20 @@ public interface ICorpsDescClient {
 
 	/**
 	 * 根据id获取客户信息
+	 *
 	 * @param Id
 	 * @return
 	 */
 	@GetMapping(getMessage)
 	R<CorpsDesc> getCorpMessage(@RequestParam("Id") Long Id);
 
+	/**
+	 * 根据租户id查询所有客户详情
+	 *
+	 * @param tenantId 租户id
+	 * @return 客户集合
+	 */
+	@GetMapping(CORP_DETAILS)
+	R<List<CorpsDescVO>> selCorpsDetails(@RequestParam("tenantId") String tenantId);
+
 }

+ 23 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/goods/dto/GoodsDescDto.java

@@ -0,0 +1,23 @@
+package org.springblade.client.goods.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import org.springblade.client.entity.GoodsDesc;
+
+/**
+ *
+ *
+ * @author  caifc
+ * @date 2021-10-21 15:41
+*/
+@Data
+@AllArgsConstructor
+public class GoodsDescDto extends GoodsDesc {
+	private static final long serialVersionUID = 1L;
+
+
+	@ApiModelProperty("商品类型")
+	private String goodsTypeId;
+
+}

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

@@ -16,20 +16,17 @@
  */
 package org.springblade.purchase.sales.entity;
 
-import java.math.BigDecimal;
-
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
 /**
  * 销售或采购订单表实体类
  *
@@ -44,414 +41,418 @@ public class Order implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	* 主键
-	*/
-		@ApiModelProperty(value = "主键")
-		private Long id;
-	/**
-	* 系统编号
-	*/
-		@ApiModelProperty(value = "系统编号")
-		private String sysNo;
-	/**
-	* 订单号
-	*/
-		@ApiModelProperty(value = "订单号")
-		private String orderNo;
-	/**
-	* 主订单号
-	*/
-		@ApiModelProperty(value = "主订单号")
-		private String morderNo;
-	/**
-	* 原始订单号
-	*/
-		@ApiModelProperty(value = "原始订单号")
-		private String orgOrderNo;
-	/**
-	* 来源订单号
-	*/
-		@ApiModelProperty(value = "来源订单号")
-		private String srcOrderNo;
-	/**
-	* 来源id
-	*/
-		@ApiModelProperty(value = "来源id")
-		private Long srcId;
-	/**
-	* 订单类型 销售订单 XS 采购订单 CG
-	*/
-		@ApiModelProperty(value = "订单类型 销售订单 XS 采购订单 CG")
-		private String billType;
-	/**
-	* 合同类型
-	*/
-		@ApiModelProperty(value = "合同类型")
-		private String orderType;
-	/**
-	* 订单日期
-	*/
-		@ApiModelProperty(value = "订单日期")
-		private Date businesDate;
-	/**
-	* 客户或供应商id(全称)
-	*/
-		@ApiModelProperty(value = "客户或供应商id(全称)")
-		private Long corpId;
-	/**
-	* 采购商id
-	*/
-		@ApiModelProperty(value = "采购商id")
-		private Long purchaserId;
-	/**
-	* 仓库id
-	*/
-		@ApiModelProperty(value = "仓库id")
-		private Long storageId;
-	/**
-	* 发货地址
-	*/
-		@ApiModelProperty(value = "发货地址")
-		private String shippingAddress;
-	/**
-	* 到货地址
-	*/
-		@ApiModelProperty(value = "到货地址")
-		private String arrivalAddress;
-	/**
-	* 包装要求
-	*/
-		@ApiModelProperty(value = "包装要求")
-		private String packageRemarks;
-	/**
-	* 运费要求
-	*/
-		@ApiModelProperty(value = "运费要求")
-		private String freightRemarks;
-	/**
-	* 银行信息
-	*/
-		@ApiModelProperty(value = "银行信息")
-		private String banks;
-	/**
-	* 公司户头
-	*/
-		@ApiModelProperty(value = "公司户头")
-		private String banksAccountName;
-	/**
-	* 要求发货日期
-	*/
-		@ApiModelProperty(value = "要求发货日期")
-		private Date requiredDeliveryDate;
-	/**
-	* 要求到货日期
-	*/
-		@ApiModelProperty(value = "要求到货日期")
-		private Date requiredArrivalDate;
-	/**
-	* 订单备注
-	*/
-		@ApiModelProperty(value = "订单备注")
-		private String orderRemark;
-	/**
-	* 订单金额(合同金额)
-	*/
-		@ApiModelProperty(value = "订单金额(合同金额)")
-		private BigDecimal orderAmount;
-	/**
-	* 其他费用
-	*/
-		@ApiModelProperty(value = "其他费用")
-		private BigDecimal otherAmount;
-	/**
-	* 应收账款
-	*/
-		@ApiModelProperty(value = "应收账款")
-		private BigDecimal debitAmount;
-	/**
-	* 已收账款
-	*/
-		@ApiModelProperty(value = "已收账款")
-		private BigDecimal settlmentAmount;
-	/**
-	* 未收账款
-	*/
-		@ApiModelProperty(value = "未收账款")
-		private BigDecimal balanceAmount;
-	/**
-	* 付款方式
-	*/
-		@ApiModelProperty(value = "付款方式")
-		private String paymentType;
-	/**
-	* 信用证到期日(付款方式开证,必须输入)
-	*/
-		@ApiModelProperty(value = "信用证到期日(付款方式开证,必须输入)")
-		private Date creditDate;
-	/**
-	* 预(收)付款
-	*/
-		@ApiModelProperty(value = "预(收)付款")
-		private BigDecimal advancePayment;
-	/**
-	* 溢付款
-	*/
-		@ApiModelProperty(value = "溢付款")
-		private BigDecimal overPayment;
-	/**
-	* 保证金
-	*/
-		@ApiModelProperty(value = "保证金")
-		private BigDecimal deposit;
-	/**
-	* 逾期款
-	*/
-		@ApiModelProperty(value = "逾期款")
-		private BigDecimal overDueAccounts;
-	/**
-	* 预收款日期
-	*/
-		@ApiModelProperty(value = "预收款日期")
-		private Date advanceCollectionDate;
-	/**
-	* 应收(付)款日期
-	*/
-		@ApiModelProperty(value = "应收(付)款日期")
-		private Date accountsCollectionDate;
-	/**
-	* 毛利率
-	*/
-		@ApiModelProperty(value = "毛利率")
-		private BigDecimal grossProfitRate;
-	/**
-	* 毛利润
-	*/
-		@ApiModelProperty(value = "毛利润")
-		private BigDecimal grossProfit;
-	/**
-	* 所属公司id(全称)销售公司
-	*/
-		@ApiModelProperty(value = "所属公司id(全称)销售公司")
-		private Long belongToCorpId;
-	/**
-	* 历史平均运费
-	*/
-		@ApiModelProperty(value = "历史平均运费")
-		private BigDecimal freightAmountHistory;
-	/**
-	* 实际发货日期
-	*/
-		@ApiModelProperty(value = "实际发货日期")
-		private Date actualDeliveryDate;
-	/**
-	* 实际到货日期
-	*/
-		@ApiModelProperty(value = "实际到货日期")
-		private Date arrivalDate;
-	/**
-	* 采购方式
-	*/
-		@ApiModelProperty(value = "采购方式")
-		private String procurementMethod;
-	/**
-	* 入库金额
-	*/
-		@ApiModelProperty(value = "入库金额")
-		private BigDecimal storageAmount;
-	/**
-	* 采购金额
-	*/
-		@ApiModelProperty(value = "采购金额")
-		private BigDecimal purchaseAmount;
-	/**
-	* 入库数量
-	*/
-		@ApiModelProperty(value = "入库数量")
-		private BigDecimal storageQuantity;
-	/**
-	* 采购数量
-	*/
-		@ApiModelProperty(value = "采购数量")
-		private BigDecimal purchaseQuantity;
-	/**
-	* 积分倍数
-	*/
-		@ApiModelProperty(value = "积分倍数")
-		private BigDecimal pointMutiple;
-	/**
-	* 特别提醒
-	*/
-		@ApiModelProperty(value = "特别提醒")
-		private String specialRemarks;
-	/**
-	* 业务员
-	*/
-		@ApiModelProperty(value = "业务员")
-		private String salesName;
-	/**
-	* 提成标准
-	*/
-		@ApiModelProperty(value = "提成标准")
-		private String commissionRate;
-	/**
-	* 销售单价
-	*/
-		@ApiModelProperty(value = "销售单价")
-		private BigDecimal salesPrice;
-	/**
-	* 发票重量
-	*/
-		@ApiModelProperty(value = "发票重量")
-		private BigDecimal invoiceWeight;
-	/**
-	* 码单重量
-	*/
-		@ApiModelProperty(value = "码单重量")
-		private BigDecimal billWeight;
-	/**
-	* 币别
-	*/
-		@ApiModelProperty(value = "币别")
-		private String currency;
-	/**
-	* 汇率
-	*/
-		@ApiModelProperty(value = "汇率")
-		private BigDecimal exchangeRate;
-	/**
-	* 计划交货日期
-	*/
-		@ApiModelProperty(value = "计划交货日期")
-		private Date plannedDeliveryDate;
-	/**
-	* 形式发票
-	*/
-		@ApiModelProperty(value = "形式发票")
-		private String proformInvoice;
-	/**
-	* 装货港
-	*/
-		@ApiModelProperty(value = "装货港")
-		private String portOfLoad;
-	/**
-	* 目的港
-	*/
-		@ApiModelProperty(value = "目的港")
-		private String portOfDestination;
-	/**
-	* 海运费
-	*/
-		@ApiModelProperty(value = "海运费")
-		private BigDecimal oceanFreight;
-	/**
-	* 版本
-	*/
-		@ApiModelProperty(value = "版本")
-		private String version;
+	 * 主键
+	 */
+	@ApiModelProperty(value = "主键")
+	private Long id;
+	/**
+	 * 系统编号
+	 */
+	@ApiModelProperty(value = "系统编号")
+	private String sysNo;
+	/**
+	 * 订单号
+	 */
+	@ApiModelProperty(value = "订单号")
+	private String orderNo;
+	/**
+	 * 主订单号
+	 */
+	@ApiModelProperty(value = "主订单号")
+	private String morderNo;
+	/**
+	 * 原始订单号
+	 */
+	@ApiModelProperty(value = "原始订单号")
+	private String orgOrderNo;
+	/**
+	 * 来源订单号
+	 */
+	@ApiModelProperty(value = "来源订单号")
+	private String srcOrderNo;
+	/**
+	 * 来源id
+	 */
+	@ApiModelProperty(value = "来源id")
+	private Long srcId;
+	/**
+	 * 订单类型 销售订单 XS 采购订单 CG
+	 */
+	@ApiModelProperty(value = "订单类型 销售订单 XS 采购订单 CG")
+	private String billType;
+	/**
+	 * 贸易类型(枚举:国内、进口、出口)
+	 */
+	@ApiModelProperty(value = "贸易类型(枚举:国内、进口、出口)")
+	private String tradeType;
+	/**
+	 * 合同类型
+	 */
+	@ApiModelProperty(value = "合同类型")
+	private String orderType;
+	/**
+	 * 订单日期
+	 */
+	@ApiModelProperty(value = "订单日期")
+	private Date businesDate;
+	/**
+	 * 客户或供应商id(全称)
+	 */
+	@ApiModelProperty(value = "客户或供应商id(全称)")
+	private Long corpId;
+	/**
+	 * 采购商id
+	 */
+	@ApiModelProperty(value = "采购商id")
+	private Long purchaserId;
+	/**
+	 * 仓库id
+	 */
+	@ApiModelProperty(value = "仓库id")
+	private Long storageId;
+	/**
+	 * 发货地址
+	 */
+	@ApiModelProperty(value = "发货地址")
+	private String shippingAddress;
+	/**
+	 * 到货地址
+	 */
+	@ApiModelProperty(value = "到货地址")
+	private String arrivalAddress;
+	/**
+	 * 包装要求
+	 */
+	@ApiModelProperty(value = "包装要求")
+	private String packageRemarks;
+	/**
+	 * 运费要求
+	 */
+	@ApiModelProperty(value = "运费要求")
+	private String freightRemarks;
+	/**
+	 * 银行信息
+	 */
+	@ApiModelProperty(value = "银行信息")
+	private String banks;
+	/**
+	 * 公司户头
+	 */
+	@ApiModelProperty(value = "公司户头")
+	private String banksAccountName;
+	/**
+	 * 要求发货日期
+	 */
+	@ApiModelProperty(value = "要求发货日期")
+	private Date requiredDeliveryDate;
+	/**
+	 * 要求到货日期
+	 */
+	@ApiModelProperty(value = "要求到货日期")
+	private Date requiredArrivalDate;
+	/**
+	 * 订单备注
+	 */
+	@ApiModelProperty(value = "订单备注")
+	private String orderRemark;
+	/**
+	 * 订单金额(合同金额)
+	 */
+	@ApiModelProperty(value = "订单金额(合同金额)")
+	private BigDecimal orderAmount;
+	/**
+	 * 其他费用
+	 */
+	@ApiModelProperty(value = "其他费用")
+	private BigDecimal otherAmount;
+	/**
+	 * 应收账款
+	 */
+	@ApiModelProperty(value = "应收账款")
+	private BigDecimal debitAmount;
+	/**
+	 * 已收账款
+	 */
+	@ApiModelProperty(value = "已收账款")
+	private BigDecimal settlmentAmount;
+	/**
+	 * 未收账款
+	 */
+	@ApiModelProperty(value = "未收账款")
+	private BigDecimal balanceAmount;
+	/**
+	 * 付款方式
+	 */
+	@ApiModelProperty(value = "付款方式")
+	private String paymentType;
+	/**
+	 * 信用证到期日(付款方式开证,必须输入)
+	 */
+	@ApiModelProperty(value = "信用证到期日(付款方式开证,必须输入)")
+	private Date creditDate;
+	/**
+	 * 预(收)付款
+	 */
+	@ApiModelProperty(value = "预(收)付款")
+	private BigDecimal advancePayment;
+	/**
+	 * 溢付款
+	 */
+	@ApiModelProperty(value = "溢付款")
+	private BigDecimal overPayment;
+	/**
+	 * 保证金
+	 */
+	@ApiModelProperty(value = "保证金")
+	private BigDecimal deposit;
+	/**
+	 * 逾期款
+	 */
+	@ApiModelProperty(value = "逾期款")
+	private BigDecimal overDueAccounts;
+	/**
+	 * 预收款日期
+	 */
+	@ApiModelProperty(value = "预收款日期")
+	private Date advanceCollectionDate;
+	/**
+	 * 应收(付)款日期
+	 */
+	@ApiModelProperty(value = "应收(付)款日期")
+	private Date accountsCollectionDate;
+	/**
+	 * 毛利率
+	 */
+	@ApiModelProperty(value = "毛利率")
+	private BigDecimal grossProfitRate;
+	/**
+	 * 毛利润
+	 */
+	@ApiModelProperty(value = "毛利润")
+	private BigDecimal grossProfit;
+	/**
+	 * 所属公司id(全称)销售公司
+	 */
+	@ApiModelProperty(value = "所属公司id(全称)销售公司")
+	private Long belongToCorpId;
+	/**
+	 * 历史平均运费
+	 */
+	@ApiModelProperty(value = "历史平均运费")
+	private BigDecimal freightAmountHistory;
+	/**
+	 * 实际发货日期
+	 */
+	@ApiModelProperty(value = "实际发货日期")
+	private Date actualDeliveryDate;
+	/**
+	 * 实际到货日期
+	 */
+	@ApiModelProperty(value = "实际到货日期")
+	private Date arrivalDate;
+	/**
+	 * 采购方式
+	 */
+	@ApiModelProperty(value = "采购方式")
+	private String procurementMethod;
+	/**
+	 * 入库金额
+	 */
+	@ApiModelProperty(value = "入库金额")
+	private BigDecimal storageAmount;
+	/**
+	 * 采购金额
+	 */
+	@ApiModelProperty(value = "采购金额")
+	private BigDecimal purchaseAmount;
+	/**
+	 * 入库数量
+	 */
+	@ApiModelProperty(value = "入库数量")
+	private BigDecimal storageQuantity;
+	/**
+	 * 采购数量
+	 */
+	@ApiModelProperty(value = "采购数量")
+	private BigDecimal purchaseQuantity;
+	/**
+	 * 积分倍数
+	 */
+	@ApiModelProperty(value = "积分倍数")
+	private BigDecimal pointMutiple;
+	/**
+	 * 特别提醒
+	 */
+	@ApiModelProperty(value = "特别提醒")
+	private String specialRemarks;
+	/**
+	 * 业务员
+	 */
+	@ApiModelProperty(value = "业务员")
+	private String salesName;
+	/**
+	 * 提成标准
+	 */
+	@ApiModelProperty(value = "提成标准")
+	private String commissionRate;
+	/**
+	 * 销售单价
+	 */
+	@ApiModelProperty(value = "销售单价")
+	private BigDecimal salesPrice;
+	/**
+	 * 发票重量
+	 */
+	@ApiModelProperty(value = "发票重量")
+	private BigDecimal invoiceWeight;
+	/**
+	 * 码单重量
+	 */
+	@ApiModelProperty(value = "码单重量")
+	private BigDecimal billWeight;
+	/**
+	 * 币别
+	 */
+	@ApiModelProperty(value = "币别")
+	private String currency;
+	/**
+	 * 汇率
+	 */
+	@ApiModelProperty(value = "汇率")
+	private BigDecimal exchangeRate;
+	/**
+	 * 计划交货日期
+	 */
+	@ApiModelProperty(value = "计划交货日期")
+	private Date plannedDeliveryDate;
+	/**
+	 * 形式发票
+	 */
+	@ApiModelProperty(value = "形式发票")
+	private String proformInvoice;
+	/**
+	 * 装货港
+	 */
+	@ApiModelProperty(value = "装货港")
+	private String portOfLoad;
+	/**
+	 * 目的港
+	 */
+	@ApiModelProperty(value = "目的港")
+	private String portOfDestination;
+	/**
+	 * 海运费
+	 */
+	@ApiModelProperty(value = "海运费")
+	private BigDecimal oceanFreight;
+	/**
+	 * 版本
+	 */
+	@ApiModelProperty(value = "版本")
+	private String version;
 	/**
 	 * 租户id
 	 */
-		@ApiModelProperty(value = "租户id")
-		private String tenantId;
+	@ApiModelProperty(value = "租户id")
+	private String tenantId;
 	/**
-	* 创建人
-	*/
-		@ApiModelProperty(value = "创建人")
-		private Long createUser;
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
 	/**
-	* 创建部门
-	*/
-		@ApiModelProperty(value = "创建部门")
-		private Long createDept;
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
 	/**
-	* 创建时间
-	*/
-		@ApiModelProperty(value = "创建时间")
-		private Date createTime;
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
 	/**
-	* 修改人
-	*/
-		@ApiModelProperty(value = "修改人")
-		private Long updateUser;
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private Long updateUser;
 	/**
-	* 修改时间
-	*/
-		@ApiModelProperty(value = "修改时间")
-		private Date updateTime;
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
 	/**
-	* 状态(0 正常 1停用)
-	*/
-		@ApiModelProperty(value = "状态(0 正常 1停用)")
-		private Integer status;
+	 * 状态(0 正常 1停用)
+	 */
+	@ApiModelProperty(value = "状态(0 正常 1停用)")
+	private Integer status;
 	/**
-	* 是否已删除(0 否 1是)
-	*/
-		@ApiModelProperty(value = "是否已删除(0 否 1是)")
-		private Integer isDeleted;
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
 	/**
 	 * 到港日期
 	 */
-		@ApiModelProperty(value = "到港日期")
-		private LocalDateTime dateOfArrival;
+	@ApiModelProperty(value = "到港日期")
+	private Date dateOfArrival;
 	/**
 	 * 是否到货
 	 */
-		@ApiModelProperty(value = "是否到货")
-		private Integer arrival;
+	@ApiModelProperty(value = "是否到货")
+	private Integer arrival;
 	/**
 	 * 首付比列
 	 */
-		@ApiModelProperty(value = "首付比列")
-		private BigDecimal downPayment;
+	@ApiModelProperty(value = "首付比列")
+	private BigDecimal downPayment;
 	/**
 	 * 人民币金额
 	 */
-		@ApiModelProperty(value = "人民币金额")
-		private BigDecimal rmbAmount;
+	@ApiModelProperty(value = "人民币金额")
+	private BigDecimal rmbAmount;
 
 	/**
 	 * 订单费用信息
 	 */
-		@ApiModelProperty(value = "订单费用信息")
-		@TableField(exist = false)
-		private List<OrderFees> orderFeesList;
+	@ApiModelProperty(value = "订单费用信息")
+	@TableField(exist = false)
+	private List<OrderFees> orderFeesList;
 	/**
 	 * 订单文件
 	 */
-		@ApiModelProperty(value = "订单文件")
-		@TableField(exist = false)
-		private List<OrderFiles> orderFilesList;
+	@ApiModelProperty(value = "订单文件")
+	@TableField(exist = false)
+	private List<OrderFiles> orderFilesList;
 	/**
 	 * 订单明细
 	 */
-		@ApiModelProperty(value = "订单明细")
-		@TableField(exist = false)
-		private List<OrderItems> orderItemsList;
+	@ApiModelProperty(value = "订单明细")
+	@TableField(exist = false)
+	private List<OrderItems> orderItemsList;
 	/**
 	 * 订单修改日志
 	 */
-		@ApiModelProperty(value = "订单修改日志")
-		@TableField(exist = false)
-		private List<OrderModify> orderModifyList;
+	@ApiModelProperty(value = "订单修改日志")
+	@TableField(exist = false)
+	private List<OrderModify> orderModifyList;
 	/**
 	 * 创建人中文名
 	 */
-		@ApiModelProperty(value = "创建人中文名")
-		@TableField(exist = false)
-		private String createUserName;
+	@ApiModelProperty(value = "创建人中文名")
+	@TableField(exist = false)
+	private String createUserName;
 	/**
 	 * 修改人中文名
 	 */
-		@ApiModelProperty(value = "修改人中文名")
-		@TableField(exist = false)
-		private String updateUserName;
+	@ApiModelProperty(value = "修改人中文名")
+	@TableField(exist = false)
+	private String updateUserName;
 	/**
 	 * 客户中文名
 	 */
-		@ApiModelProperty(value = "客户中文名")
-		@TableField(exist = false)
-		private String corpName;
-
+	@ApiModelProperty(value = "客户中文名")
+	@TableField(exist = false)
+	private String corpName;
 
 
 }

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

@@ -39,6 +39,12 @@ public class OrderSubmitDto extends Order {
 	private OrderTypeEnum orderTypeEnum;
 
 	/**
+	 * 贸易类型
+	 */
+	@ApiModelProperty(value = "贸易类型")
+	private OrderTypeEnum tradeTypeEnum;
+
+	/**
 	 * 删除的子订单id
 	 */
 	@ApiModelProperty(value = "删除的子订单id")

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

@@ -1,19 +1,3 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
 package com.trade.purchase.order.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -79,6 +63,11 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "订单类型 销售订单 XS 采购订单 CG")
 	private String billType;
 	/**
+	 * 贸易类型(枚举:国内、进口、出口)
+	 */
+	@ApiModelProperty(value = "贸易类型(枚举:国内、进口、出口)")
+	private String tradeType;
+	/**
 	 * 合同类型
 	 */
 	@ApiModelProperty(value = "合同类型")
@@ -144,6 +133,26 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "要求到货日期")
 	private Date requiredArrivalDate;
 	/**
+	 * 到港日期
+	 */
+	@ApiModelProperty(value = "到港日期")
+	private Date dateOfArrival;
+	/**
+	 * 是否到货
+	 */
+	@ApiModelProperty(value = "是否到货")
+	private Integer arrival;
+	/**
+	 * 首付比列
+	 */
+	@ApiModelProperty(value = "首付比列")
+	private BigDecimal downPayment;
+	/**
+	 * 人民币金额
+	 */
+	@ApiModelProperty(value = "人民币金额")
+	private BigDecimal rmbAmount;
+	/**
 	 * 订单备注
 	 */
 	@ApiModelProperty(value = "订单备注")

+ 21 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/enums/OrderTypeEnum.java

@@ -33,6 +33,27 @@ public enum OrderTypeEnum {
 	 */
 	RECEIPT("SH"),
 
+
+
+	// 贸易方式
+
+	/**
+	 *  国内
+	 */
+	DOMESTIC("GN"),
+
+	/**
+	 *  进口
+	 */
+	IMPORT("JK"),
+
+	/**
+	 *  出口
+	 */
+	EXPORT("CK"),
+
+
+
 	;
 
 	private final String type;

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

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.List;
 
@@ -17,7 +18,6 @@ import java.util.List;
  * @since 2021-09-26
  */
 @Data
-@Builder
 @EqualsAndHashCode(callSuper = true)
 @ApiModel(value = "OrderVO对象", description = "销售或采购订单表")
 public class OrderVO extends Order {
@@ -60,4 +60,27 @@ public class OrderVO extends Order {
 	@ApiModelProperty(value = "修改人中文名")
 	private String updateUserName;
 
+	/**
+	 * 要求到货日期
+	 */
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd"
+	)
+	@ApiModelProperty(value = "要求到货日期")
+	private String arrivalDateStart;
+
+	/**
+	 * 要求到货日期
+	 */
+	@ApiModelProperty(value = "要求到货日期")
+	private String arrivalDateEnd;
+
+	/**
+	 * 供应商名称
+	 */
+	@ApiModelProperty(value = "供应商名称")
+	private String corpName;
+
+
+
 }

+ 24 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java

@@ -1,10 +1,13 @@
 package org.springblade.client.corps.feign;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
+import org.springblade.client.corps.assemble.mapstruct.CorpsDescMapstructMapper;
 import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.core.mp.support.BladePage;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -14,6 +17,9 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 @NonDS
 @ApiIgnore()
 @RestController
@@ -21,6 +27,8 @@ import springfox.documentation.annotations.ApiIgnore;
 public class CorpsDescClient implements ICorpsDescClient {
 	private final ICorpsDescService service;
 
+	private final CorpsDescMapstructMapper corpsDescMapstructMapper;
+
 	@Override
 	public BladePage<CorpsDesc> top(Integer current, Integer size) {
 		Query query = new Query();
@@ -35,4 +43,20 @@ public class CorpsDescClient implements ICorpsDescClient {
 	public R<CorpsDesc> getCorpMessage(Long Id) {
 		return R.data(service.getById(Id));
 	}
+
+	/**
+	 * 根据租户id查询所有客户详情
+	 *
+	 * @param tenantId 租户id
+	 * @return 客户集合
+	 */
+	@Override
+	@GetMapping(CORP_DETAILS)
+	public R<List<CorpsDescVO>> selCorpsDetails(String tenantId) {
+
+		List<CorpsDesc> corpsDescList = service.list(Wrappers.<CorpsDesc>lambdaQuery().select(CorpsDesc::getId, CorpsDesc::getCname)
+			.eq(CorpsDesc::getTenantId, tenantId));
+		List<CorpsDescVO> corpsDescVOList = corpsDescList.stream().map(corpsDescMapstructMapper::toVo).collect(Collectors.toList());
+		return R.data(corpsDescVOList);
+	}
 }

+ 4 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -18,6 +18,7 @@ package org.springblade.client.goods.service.impl;
 
 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.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -102,7 +103,9 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 		GoodsDesc desc = baseMapper.selectById(goodsDesc.getId());
 		//获取商品类别
 		List<String> list = goodsTypeDescService.selectTypeId(goodsDesc.getId());
-		desc.setGoodsTypeId(String.join(",", list));
+		if (CollectionUtils.isNotEmpty(list)) {
+			desc.setGoodsTypeId(String.join(",", list));
+		}
 		return desc;
 	}
 

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

@@ -76,6 +76,7 @@
         <result column="arrival" property="arrival"/>
         <result column="down_payment" property="downPayment"/>
         <result column="rmb_amount" property="rmbAmount"/>
+        <result column="trade_type" property="tradeType"/>
     </resultMap>
 
 

+ 1 - 1
blade-service/blade-purchase-sales/src/main/resources/application-dev.yml

@@ -1,6 +1,6 @@
 #服务器端口
 server:
-  port: 10000
+  port: 9015
   profile: D:/ruoyi/uploadPath
 
 #数据源配置

+ 15 - 2
blade-service/trade-purchase/pom.xml

@@ -11,8 +11,7 @@
 
     <artifactId>trade-purchase</artifactId>
     <name>${project.artifactId}</name>
-    <version>${bladex.project.version}</version>
-    <packaging>jar</packaging>
+    <version>2.8.2.RELEASE</version>
 
     <properties>
         <maven.compiler.source>8</maven.compiler.source>
@@ -20,6 +19,20 @@
     </properties>
 
     <dependencies>
+
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mapstruct</groupId>
+            <artifactId>mapstruct-processor</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok-mapstruct-binding</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>trade-purchase-api</artifactId>

+ 1 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/PurchaseApplication.java

@@ -14,7 +14,7 @@ import org.springframework.context.annotation.ComponentScan;
  */
 @EnableBladeFeign
 @SpringCloudApplication
-@EnableFeignClients({"com.trade"})
+@EnableFeignClients({"org.springblade", "com.trade"})
 @ComponentScan(value = {"com.trade.purchase.*"})
 @MapperScan({"com.trade.purchase.**.mapper.**", "com.trade.purchase.**.assemble.mapstruct.**"})
 // @SeataCloudApplication

+ 4 - 5
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/assemble/mapstruct/OrderMapstructMapper.java

@@ -5,18 +5,17 @@ import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.Order;
 import com.trade.purchase.order.vo.OrderVO;
 import org.mapstruct.Mapper;
-
-import java.math.BigDecimal;
+import org.mapstruct.factory.Mappers;
 
 /**
  * @author caifc
  * @date 2021-10-20 15:06
  */
-@Mapper(componentModel = "spring", imports = {
-	BigDecimal.class
-})
+@Mapper
 public interface OrderMapstructMapper {
 
+	OrderMapstructMapper INSTANCE = Mappers.getMapper(OrderMapstructMapper.class);
+
 	/**
 	 * 实体转vo
 	 *

+ 2 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderCodeMaker.java

@@ -34,14 +34,14 @@ public class DefaultOrderCodeMaker implements IOrderCodeMaker {
 	@Override
 	public void generate(Order order) {
 		DateTime time = new DateTime(DateTime.now().toDate());
-		String timeFormat = time.toString("yyMMdd");
+		String timeFormat = time.toString("yyyyMM");
 		String key = String.format(ORDER_CODE_KEY, timeFormat);
 		Long id = redis.incr(key);
 		int i = 2;
 		if (id < i) {
 			redis.expireAt(key, time.plusMonths(1).toDate());
 		}
-		String newId = String.format("%05d", id);
+		String newId = String.format("%03d", id);
 		order.setSysNo(order.getBillType() + timeFormat + newId);
 	}
 

+ 5 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderSaveImpl.java

@@ -16,6 +16,7 @@ import com.trade.purchase.order.mapper.OrderMapper;
 import com.trade.purchase.order.vo.OrderItemsVO;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -69,13 +70,14 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 	private Order saveOrder(OrderSubmitDto order) {
 		order.setStatus(order.getOrderStatus().getStatus());
 		order.setBillType(order.getOrderTypeEnum().getType());
-		if (Objects.isNull(order.getSysNo())) {
+		order.setTradeType(order.getTradeTypeEnum().getType());
+		if (Func.isBlank(order.getSysNo())) {
 			orderCodeMaker.generate(order);
 		}
-		if (Objects.isNull(order.getTenantId())) {
+		if (Func.isBlank(order.getTenantId())) {
 			order.setTenantId(AuthUtil.getTenantId());
 		}
-		if (order.getBusinesDate() == null) {
+		if (Func.isEmpty(order.getBusinesDate())) {
 			order.setBusinesDate(new Date());
 		}
 		if (Objects.isNull(order.getId())) {

+ 128 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/DomesticOrderController.java

@@ -0,0 +1,128 @@
+package com.trade.purchase.order.controller;
+
+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.enums.OrderTypeEnum;
+import com.trade.purchase.order.service.IOrderService;
+import com.trade.purchase.order.vo.OrderVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+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.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 国内采购订单表 控制器
+ *
+ * @author BladeX
+ * @since 2021-09-26
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/domestic-order")
+@Api(value = "国内采购订单表", tags = "国内采购订单表接口")
+public class DomesticOrderController extends BladeController {
+
+	private final IOrderService orderService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/{id}")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入order")
+	public R<OrderVO> detail(@PathVariable(value = "id") String id) {
+		return orderService.getOrderMessage(id);
+	}
+
+	/**
+	 * 分页 销售或采购订单表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入order")
+	public R<IPage<Order>> list(Order order, Query query) {
+		order.setIsDeleted(0);
+		order.setTenantId(AuthUtil.getTenantId());
+		order.setBillType(OrderTypeEnum.PURCHASE.getType());
+		order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
+		IPage<Order> pages = orderService.page(Condition.getPage(query), Condition.getQueryWrapper(order));
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 销售或采购订单表
+	 */
+	@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.getType());
+		order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
+		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 销售或采购订单表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入order")
+	public R<String> save(@Valid @RequestBody OrderSubmitDto submitDto) {
+		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
+		submitDto.setTradeTypeEnum(OrderTypeEnum.DOMESTIC);
+		return orderService.saveOrderMessage(submitDto);
+	}
+
+	/**
+	 * 修改 销售或采购订单表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入order")
+	public R update(@Valid @RequestBody Order order) {
+		if (order.getId() == null) {
+			return R.fail(500, "请选择要删除的数据");
+		}
+		order.setIsDeleted(1);
+		return R.status(orderService.updateById(order));
+	}
+
+	/**
+	 * 新增或修改 销售或采购订单表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R<String> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
+		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
+		submitDto.setTradeTypeEnum(OrderTypeEnum.DOMESTIC);
+		return orderService.submitOrderMessage(submitDto);
+	}
+
+
+	/**
+	 * 删除 销售或采购订单表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(orderService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 13 - 6
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/OrderController.java → blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/ExportOrderController.java

@@ -4,7 +4,7 @@ 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.enums.OrderStatusEnum;
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.service.IOrderService;
 import com.trade.purchase.order.vo.OrderVO;
 import io.swagger.annotations.Api;
@@ -15,7 +15,6 @@ 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.springframework.web.bind.annotation.*;
@@ -23,16 +22,16 @@ import org.springframework.web.bind.annotation.*;
 import javax.validation.Valid;
 
 /**
- * 销售或采购订单表 控制器
+ * 出口采购订单表 控制器
  *
  * @author BladeX
  * @since 2021-09-26
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("/order")
-@Api(value = "采购订单表", tags = "销售或采购订单表接口")
-public class OrderController extends BladeController {
+@RequestMapping("/export-order")
+@Api(value = "出口采购订单表", tags = "出口采购订单表接口")
+public class ExportOrderController extends BladeController {
 
 	private final IOrderService orderService;
 
@@ -55,6 +54,8 @@ public class OrderController extends BladeController {
 	public R<IPage<Order>> list(Order order, Query query) {
 		order.setIsDeleted(0);
 		order.setTenantId(AuthUtil.getTenantId());
+		order.setBillType(OrderTypeEnum.PURCHASE.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
 		IPage<Order> pages = orderService.page(Condition.getPage(query), Condition.getQueryWrapper(order));
 		return R.data(pages);
 	}
@@ -68,6 +69,8 @@ public class OrderController extends BladeController {
 	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
 		order.setIsDeleted(0);
 		order.setTenantId(AuthUtil.getTenantId());
+		order.setBillType(OrderTypeEnum.PURCHASE.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
 		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
 		return R.data(pages);
 	}
@@ -79,6 +82,8 @@ public class OrderController extends BladeController {
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入order")
 	public R<String> save(@Valid @RequestBody OrderSubmitDto submitDto) {
+		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
+		submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT);
 		return orderService.saveOrderMessage(submitDto);
 	}
 
@@ -103,6 +108,8 @@ public class OrderController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入order")
 	public R<String> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
+		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
+		submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT);
 		return orderService.submitOrderMessage(submitDto);
 	}
 

+ 128 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/ImportOrderController.java

@@ -0,0 +1,128 @@
+package com.trade.purchase.order.controller;
+
+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.enums.OrderTypeEnum;
+import com.trade.purchase.order.service.IOrderService;
+import com.trade.purchase.order.vo.OrderVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+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.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 进口采购订单表 控制器
+ *
+ * @author BladeX
+ * @since 2021-09-26
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/import-order")
+@Api(value = "进口采购订单表", tags = "进口采购订单表接口")
+public class ImportOrderController extends BladeController {
+
+	private final IOrderService orderService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/{id}")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入order")
+	public R<OrderVO> detail(@PathVariable(value = "id") String id) {
+		return orderService.getOrderMessage(id);
+	}
+
+	/**
+	 * 分页 销售或采购订单表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入order")
+	public R<IPage<Order>> list(Order order, Query query) {
+		order.setIsDeleted(0);
+		order.setTenantId(AuthUtil.getTenantId());
+		order.setBillType(OrderTypeEnum.PURCHASE.getType());
+		order.setTradeType(OrderTypeEnum.IMPORT.getType());
+		IPage<Order> pages = orderService.page(Condition.getPage(query), Condition.getQueryWrapper(order));
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 销售或采购订单表
+	 */
+	@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.getType());
+		order.setTradeType(OrderTypeEnum.IMPORT.getType());
+		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 销售或采购订单表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入order")
+	public R<String> save(@Valid @RequestBody OrderSubmitDto submitDto) {
+		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
+		submitDto.setTradeTypeEnum(OrderTypeEnum.IMPORT);
+		return orderService.saveOrderMessage(submitDto);
+	}
+
+	/**
+	 * 修改 销售或采购订单表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入order")
+	public R update(@Valid @RequestBody Order order) {
+		if (order.getId() == null) {
+			return R.fail(500, "请选择要删除的数据");
+		}
+		order.setIsDeleted(1);
+		return R.status(orderService.updateById(order));
+	}
+
+	/**
+	 * 新增或修改 销售或采购订单表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R<String> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
+		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
+		submitDto.setTradeTypeEnum(OrderTypeEnum.IMPORT);
+		return orderService.submitOrderMessage(submitDto);
+	}
+
+
+	/**
+	 * 删除 销售或采购订单表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(orderService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 5 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

@@ -72,6 +72,11 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="date_of_arrival" property="dateOfArrival"/>
+        <result column="arrival" property="arrival"/>
+        <result column="down_payment" property="downPayment"/>
+        <result column="rmb_amount" property="rmbAmount"/>
+        <result column="trade_type" property="tradeType"/>
     </resultMap>
 
 

+ 57 - 10
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -1,23 +1,20 @@
 package com.trade.purchase.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.trade.purchase.exception.OrderException;
-import com.trade.purchase.order.assemble.mapstruct.OrderFeesMapstructMapper;
 import com.trade.purchase.order.assemble.mapstruct.OrderItemMapstructMapper;
 import com.trade.purchase.order.assemble.mapstruct.OrderMapstructMapper;
-import com.trade.purchase.order.component.IOrderCodeMaker;
 import com.trade.purchase.order.component.IOrderSave;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 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.mapper.OrderMapper;
 import com.trade.purchase.order.service.IOrderService;
-import com.trade.purchase.order.vo.OrderFeesVO;
-import com.trade.purchase.order.vo.OrderItemsVO;
 import com.trade.purchase.order.vo.OrderVO;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
@@ -26,14 +23,17 @@ import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
-import org.springblade.client.feign.ISerialClient;
+import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -65,12 +65,58 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	private final OrderItemMapstructMapper orderItemMapstructMapper;
 
 
-
 	@Override
 	public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
-		return page.setRecords(baseMapper.selectOrderPage(page, order));
+		LambdaQueryWrapper<Order> lambdaQuery = Wrappers.<Order>lambdaQuery();
+		// 组装查询条件
+		pageQueryWrapper(lambdaQuery, order);
+
+		Page<Order> orderPage = this.page(new Page<>(page.getCurrent(), page.getSize()), lambdaQuery);
+		if (CollectionUtils.isNotEmpty(orderPage.getRecords())) {
+			List<Order> records = orderPage.getRecords();
+			// 转VO
+			List<OrderVO> copy = BeanUtil.copy(records, OrderVO.class);
+			// 获取客户信息
+			/*R<List<CorpsDescVO>> listR = corpsDescClient.selCorpsDetails(AuthUtil.getTenantId());
+			if (!listR.isSuccess() || CollectionUtils.isEmpty(listR.getData())) {
+				throw new OrderException("找不到客户信息");
+			}
+			copy.forEach(li -> {
+				Optional<CorpsDescVO> first = listR.getData().stream().filter(corp -> Objects.equals(corp.getId(), li.getCorpId())).findFirst();
+				first.ifPresent(corpsDescVO -> li.setCorpName(corpsDescVO.getCname()));
+			});*/
+			// todo:: 整理好map 在改
+//			List<OrderVO> orderVOList = orderPage.getRecords().stream().map().collect(Collectors.toList());
+			page.setRecords(copy);
+		}
+		page.setTotal(orderPage.getTotal());
+		return page;
+	}
+
+	/**
+	 * 组装查询条件
+	 *
+	 * @param lambdaQuery 查询信息
+	 * @param order       查询条件
+	 */
+	private void pageQueryWrapper(LambdaQueryWrapper<Order> lambdaQuery, OrderVO order) {
+		lambdaQuery.select(Order::getId, Order::getSysNo, Order::getSrcOrderNo, Order::getCorpId, Order::getPaymentType, Order::getPackageRemarks);
+		lambdaQuery.eq(Func.notNull(order.getCorpId()), Order::getCorpId, order.getCorpId());
+		lambdaQuery.eq(Func.isNotBlank(order.getPaymentType()), Order::getPaymentType, order.getPaymentType());
+		lambdaQuery.eq(Func.isNotBlank(order.getPackageRemarks()), Order::getPackageRemarks, order.getPackageRemarks());
+		lambdaQuery.eq(Func.notNull(order.getOceanFreight()), Order::getOceanFreight, order.getOceanFreight());
+		lambdaQuery.eq(Order::getTenantId, AuthUtil.getTenantId());
+		lambdaQuery.eq(Order::getBillType, order.getBillType());
+		lambdaQuery.eq(Order::getTradeType, order.getTradeType());
+		lambdaQuery.like(Func.isNotBlank(order.getSysNo()), Order::getSysNo, order.getSysNo());
+		lambdaQuery.like(Func.isNotBlank(order.getBanks()), Order::getBanks, order.getBanks());
+		lambdaQuery.like(Func.isNotBlank(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());
+		lambdaQuery.like(Func.isNotBlank(order.getBanksAccountName()), Order::getBanksAccountName, order.getBanksAccountName());
+		lambdaQuery.between(Func.isNotBlank(order.getArrivalDateStart()), Order::getRequiredArrivalDate,
+			order.getArrivalDateStart(), order.getArrivalDateEnd());
 	}
 
+
 	/**
 	 * 提交采购订单
 	 *
@@ -82,7 +128,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public R<String> saveOrderMessage(OrderSubmitDto submitDto) {
 		// 落库
 		submitDto.setOrderStatus(OrderStatusEnum.PAUSE);
-		submitDto.setOrderTypeEnum(OrderTypeEnum.PURCHASE);
 		orderSave.save(submitDto);
 		// todo:: 是否需要加日志
 		return R.status(true);
@@ -92,7 +137,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 提交订单信息
 	 *
 	 * @param submitDto 提交信息
-	 * @return	结果
+	 * @return 结果
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -122,6 +167,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		OrderVO vo = orderMapstructMapper.toVo(orderMessage);
 		//获取创建人中文名
 		R<User> createUser = userClient.userInfoById(vo.getCreateUser());
+
+
 		if (createUser.isSuccess()) {
 			vo.setCreateUserName(createUser.getData().getName());
 		}