Browse Source

代码提交

lazhaoqian 4 years ago
parent
commit
78335c1cce
57 changed files with 643 additions and 56 deletions
  1. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsAttn.java
  2. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsBank.java
  3. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java
  4. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsFiles.java
  5. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsItem.java
  6. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsType.java
  7. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/FeesDesc.java
  8. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/FeesType.java
  9. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsDesc.java
  10. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsType.java
  11. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/Serial.java
  12. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/StorageDesc.java
  13. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/StorageType.java
  14. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/TableMessage.java
  15. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java
  16. 7 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/FeesDescVO.java
  17. 7 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/GoodsDescVO.java
  18. 7 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/StorageDescVO.java
  19. 78 2
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  20. 1 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderFees.java
  21. 1 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderFiles.java
  22. 31 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  23. 1 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderModify.java
  24. 75 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  25. 30 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java
  26. 4 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/enums/OrderTypeEnum.java
  27. 0 3
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsTypeController.java
  28. 2 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAttnMapper.java
  29. 2 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAttnMapper.xml
  30. 5 2
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml
  31. 2 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsItemMapper.java
  32. 2 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsItemMapper.xml
  33. 2 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsTypeMapper.xml
  34. 2 2
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAttnServiceImpl.java
  35. 9 4
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  36. 2 2
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsItemServiceImpl.java
  37. 22 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java
  38. 0 3
      blade-service/blade-client/src/main/java/org/springblade/client/fees/controller/FeesTypeController.java
  39. 5 2
      blade-service/blade-client/src/main/java/org/springblade/client/fees/mapper/FeesDescMapper.xml
  40. 2 1
      blade-service/blade-client/src/main/java/org/springblade/client/fees/mapper/FeesTypeMapper.xml
  41. 6 0
      blade-service/blade-client/src/main/java/org/springblade/client/fees/service/impl/FeesDescServiceImpl.java
  42. 36 0
      blade-service/blade-client/src/main/java/org/springblade/client/fees/service/impl/FeesTypeServiceImpl.java
  43. 2 5
      blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsTypeController.java
  44. 5 2
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml
  45. 2 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsTypeMapper.xml
  46. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  47. 35 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsTypeServiceImpl.java
  48. 5 2
      blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/StorageDescMapper.xml
  49. 3 2
      blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/StorageTypeMapper.xml
  50. 9 1
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/StorageDescServiceImpl.java
  51. 38 0
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/StorageTypeServiceImpl.java
  52. 136 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java
  53. 6 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml
  54. 15 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  55. 3 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  56. 6 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.xml
  57. 15 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsAttn.java

@@ -129,7 +129,7 @@ public class CorpsAttn implements Serializable {
 	/**
 	 * 是否已删除
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsBank.java

@@ -119,7 +119,7 @@ public class CorpsBank implements Serializable {
 	/**
 	 * 是否已删除
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -228,7 +228,7 @@ public class CorpsDesc implements Serializable {
 	/**
 	 * 是否已删除
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsFiles.java

@@ -114,7 +114,7 @@ public class CorpsFiles implements Serializable {
 	/**
 	 * 是否已删除
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsItem.java

@@ -120,7 +120,7 @@ public class CorpsItem implements Serializable {
 	/**
 	 * 是否已删除
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsType.java

@@ -117,7 +117,7 @@ public class CorpsType implements Serializable {
 	/**
 	 * 是否已删除
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/FeesDesc.java

@@ -117,7 +117,7 @@ public class FeesDesc implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/FeesType.java

@@ -118,7 +118,7 @@ public class FeesType implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsDesc.java

@@ -153,7 +153,7 @@ public class GoodsDesc implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsType.java

@@ -124,7 +124,7 @@ public class GoodsType implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/Serial.java

@@ -109,7 +109,7 @@ public class Serial implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/StorageDesc.java

@@ -128,7 +128,7 @@ public class StorageDesc implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/StorageType.java

@@ -138,7 +138,7 @@ public class StorageType implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/TableMessage.java

@@ -102,7 +102,7 @@ public class TableMessage implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

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

@@ -58,7 +58,7 @@ public interface ICorpsDescClient {
 	 * @param corpIds
 	 * @return
 	 */
-	@GetMapping("GET_CORPS_MESSAGE")
+	@GetMapping(GET_CORPS_MESSAGE)
 	R<List<Map<String,Object>>> getCorpsMessage(@RequestParam("corpIds") String corpIds);
 
 }

+ 7 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/FeesDescVO.java

@@ -6,6 +6,8 @@ import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import org.springblade.client.entity.FeesDesc;
 
+import java.util.List;
+
 /**
  * 费用详情视图实体类
  *
@@ -24,5 +26,10 @@ public class FeesDescVO extends FeesDesc {
 	 */
 	@ApiModelProperty(value = "费用类别")
 	private String feesTypeId;
+	/**
+	 * 费用类别list
+	 */
+	@ApiModelProperty(value = "费用类别及子类别")
+	private List<Long> typeIdList;
 
 }

+ 7 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/GoodsDescVO.java

@@ -7,6 +7,8 @@ import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import org.springblade.client.entity.GoodsDesc;
 
+import java.util.List;
+
 /**
  * 商品详情表视图实体类
  *
@@ -34,5 +36,10 @@ public class GoodsDescVO extends GoodsDesc {
 	 */
 	@ApiModelProperty(value = "规格型号")
 	private String specificationAndModel;
+	/**
+	 *商品类别及子类别
+	 */
+	@ApiModelProperty(value = "商品类别及子类别")
+	private List<Long> goodsTypeIdList;
 
 }

+ 7 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/StorageDescVO.java

@@ -6,6 +6,8 @@ import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import org.springblade.client.entity.StorageDesc;
 
+import java.util.List;
+
 /**
  * 库区表视图实体类
  *
@@ -23,5 +25,10 @@ public class StorageDescVO extends StorageDesc {
 	 */
 	@TableField(exist = false)
 	private Long storageTypeId;
+	/**
+	 * 仓库及其下属仓库
+	 */
+	@TableField(exist = false)
+	private List<Long> storageTypeIdList;
 
 }

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

@@ -27,6 +27,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 销售或采购订单表实体类
@@ -389,7 +390,7 @@ public class Order implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**
@@ -454,7 +455,7 @@ public class Order implements Serializable {
 	 */
 	@ApiModelProperty(value = "客户中文名")
 	@TableField(exist = false)
-	private String corpName;
+	private List<Map<String,Object>> corpName;
 	/**
 	 * 生成发货单的订单明细ids
 	 */
@@ -467,6 +468,81 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "所属公司中文名")
 	@TableField(exist = false)
 	private String belongToCorpName;
+	/**
+	 * 客户联系人
+	 */
+	@ApiModelProperty(value = "客户联系人")
+	private String corpAttn;
+	/**
+	 * 其他联系人
+	 */
+	@ApiModelProperty(value = "其他联系人")
+	private String otherCorpAttn;
+	/**
+	 * 联系人电话
+	 */
+	@ApiModelProperty(value = "联系人电话")
+	private String corpTel;
+	/**
+	 * 合同重量
+	 */
+	@ApiModelProperty(value = "合同重量")
+	private BigDecimal contractWeight;
+	/**
+	 * 贸易条款
+	 */
+	@ApiModelProperty(value = "贸易条款")
+	private String tradeTerms;
+	/**
+	 * 贸易条款描述
+	 */
+	@ApiModelProperty(value = "贸易条款描述")
+	private String tradeTermsDescription;
+	/**
+	 * 价格条款
+	 */
+	@ApiModelProperty(value = "价格条款")
+	private String priceTerms;
+	/**
+	 * 价格条款描述
+	 */
+	@ApiModelProperty(value = "价格条款描述")
+	private String priceTermsDescription;
+	/**
+	 * 运输方式
+	 */
+	@ApiModelProperty(value = "运输方式")
+	private String transport;
+	/**
+	 * 有效期
+	 */
+	@ApiModelProperty(value = "有效期")
+	private Date dateValidity;
+	/**
+	 * 收付款方式描述
+	 */
+	@ApiModelProperty(value = "收付款方式描述")
+	private String paymentTypeDescription;
+	/**
+	 * 保险
+	 */
+	@ApiModelProperty(value = "保险")
+	private String insuranceRemarks;
+	/**
+	 * 唛头
+	 */
+	@ApiModelProperty(value = "唛头")
+	private String marks;
+	/**
+	 * 信用证编号
+	 */
+	@ApiModelProperty(value = "信用证编号")
+	private String creditNumber;
+	/**
+	 * 信用证金额
+	 */
+	@ApiModelProperty(value = "信用证金额")
+	private BigDecimal creditAmount;
 
 
 }

+ 1 - 1
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderFees.java

@@ -153,7 +153,7 @@ public class OrderFees implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 1 - 1
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderFiles.java

@@ -111,7 +111,7 @@ public class OrderFiles implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 

+ 31 - 1
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java

@@ -239,7 +239,7 @@ public class OrderItems implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**
@@ -271,4 +271,34 @@ public class OrderItems implements Serializable {
 	 */
 	@ApiModelProperty(value = "备注")
 	private String remarks;
+	/**
+	 * 贸易条款
+	 */
+	@ApiModelProperty(value = "贸易条款")
+	private String tradeTerms;
+	/**
+	 * 货物照片
+	 */
+	@ApiModelProperty(value = "货物照片")
+	private String itemUrl;
+	/**
+	 * 产品型号
+	 */
+	@ApiModelProperty(value = "产品型号")
+	private String itemType;
+	/**
+	 * 产品属性
+	 */
+	@ApiModelProperty(value = "产品属性")
+	private String itemProp;
+	/**
+	 * 是否含税
+	 */
+	@ApiModelProperty(value = "是否含税")
+	private Integer ifTax;
+	/**
+	 * 商品描述
+	 */
+	@ApiModelProperty(value = "商品描述")
+	private String itemDescription;
 }

+ 1 - 1
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderModify.java

@@ -111,7 +111,7 @@ public class OrderModify implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	@TableLogic
+	//@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 

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

@@ -394,5 +394,80 @@ public class Order implements Serializable {
 	@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
+	/**
+	 * 客户联系人
+	 */
+	@ApiModelProperty(value = "客户联系人")
+	private String corpAttn;
+	/**
+	 * 其他联系人
+	 */
+	@ApiModelProperty(value = "其他联系人")
+	private String otherCorpAttn;
+	/**
+	 * 联系人电话
+	 */
+	@ApiModelProperty(value = "联系人电话")
+	private String corpTel;
+	/**
+	 * 合同重量
+	 */
+	@ApiModelProperty(value = "合同重量")
+	private BigDecimal contractWeight;
+	/**
+	 * 贸易条款
+	 */
+	@ApiModelProperty(value = "贸易条款")
+	private String tradeTerms;
+	/**
+	 * 贸易条款描述
+	 */
+	@ApiModelProperty(value = "贸易条款描述")
+	private String tradeTermsDescription;
+	/**
+	 * 价格条款
+	 */
+	@ApiModelProperty(value = "价格条款")
+	private String priceTerms;
+	/**
+	 * 价格条款描述
+	 */
+	@ApiModelProperty(value = "价格条款描述")
+	private String priceTermsDescription;
+	/**
+	 * 运输方式
+	 */
+	@ApiModelProperty(value = "运输方式")
+	private String transport;
+	/**
+	 * 有效期
+	 */
+	@ApiModelProperty(value = "有效期")
+	private Date dateValidity;
+	/**
+	 * 收付款方式描述
+	 */
+	@ApiModelProperty(value = "收付款方式描述")
+	private String paymentTypeDescription;
+	/**
+	 * 保险
+	 */
+	@ApiModelProperty(value = "保险")
+	private String insuranceRemarks;
+	/**
+	 * 唛头
+	 */
+	@ApiModelProperty(value = "唛头")
+	private String marks;
+	/**
+	 * 信用证编号
+	 */
+	@ApiModelProperty(value = "信用证编号")
+	private String creditNumber;
+	/**
+	 * 信用证金额
+	 */
+	@ApiModelProperty(value = "信用证金额")
+	private BigDecimal creditAmount;
 
 }

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

@@ -249,4 +249,34 @@ public class OrderItems implements Serializable {
 	@ApiModelProperty(value = "规格型号")
 	@TableField(exist = false)
 	private String specificationAndModel;
+	/**
+	 * 贸易条款
+	 */
+	@ApiModelProperty(value = "贸易条款")
+	private String tradeTerms;
+	/**
+	 * 货物照片
+	 */
+	@ApiModelProperty(value = "货物照片")
+	private String itemUrl;
+	/**
+	 * 产品型号
+	 */
+	@ApiModelProperty(value = "产品型号")
+	private String itemType;
+	/**
+	 * 产品属性
+	 */
+	@ApiModelProperty(value = "产品属性")
+	private String itemProp;
+	/**
+	 * 是否含税
+	 */
+	@ApiModelProperty(value = "是否含税")
+	private Integer ifTax;
+	/**
+	 * 商品描述
+	 */
+	@ApiModelProperty(value = "商品描述")
+	private String itemDescription;
 }

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

@@ -32,6 +32,10 @@ public enum OrderTypeEnum {
 	 * 收货
 	 */
 	RECEIPT("SH"),
+	/**
+	 * 询价
+	 */
+	ENQUIRY("XJ"),
 
 
 

+ 0 - 3
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsTypeController.java

@@ -127,9 +127,6 @@ public class CorpsTypeController extends BladeController {
 		if (StringUtils.isBlank(corpsType.getTenantId())){
 			corpsType.setTenantId(SecureUtil.getTenantId());
 		}
-		if (corpsType.getSort() == null){
-			return R.fail(500,"顺序不能为空");
-		}
 		if (StringUtils.isBlank(corpsType.getCname())){
 			return R.fail(500,"名称不能为空");
 		}

+ 2 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAttnMapper.java

@@ -32,6 +32,7 @@ public interface CorpsAttnMapper extends BaseMapper<CorpsAttn> {
 	 * @return
 	 */
 	CorpsAttn selectCorpsAttnCode(@Param("code") String code,
+								  @Param("pid")Long pid,
 								  @Param("tenantId") String tenantId);
 
 	/**
@@ -41,6 +42,7 @@ public interface CorpsAttnMapper extends BaseMapper<CorpsAttn> {
 	 * @return
 	 */
 	CorpsAttn selectCorpsAttnCname(@Param("cname") String cname,
+								   @Param("pid")Long pid,
 								   @Param("tenantId") String tenantId);
 
 }

+ 2 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAttnMapper.xml

@@ -35,6 +35,7 @@
         from basic_corps_attn
         where is_deleted = 0
           and code = #{code}
+          and pid = #{pid}
           and tenant_id = #{tenantId}
     </select>
     <select id="selectCorpsAttnCname" resultMap="corpsAttnResultMap">
@@ -42,6 +43,7 @@
         from basic_corps_attn
         where is_deleted = 0
           and cname = #{cname}
+          and pid = #{pid}
           and tenant_id = #{tenantId}
     </select>
 

+ 5 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml

@@ -154,7 +154,7 @@
         <if test="CorpsDesc.status!=null">
             and status = #{CorpsDesc.status}
         </if>
-        <if test='CorpsDesc.corpsTypeId !=null and CorpsDesc.corpsTypeId != ""'>
+        <if test='CorpsDesc.typeList !=null and CorpsDesc.typeList.size>0'>
             and id in (
             SELECT
             DISTINCT
@@ -163,7 +163,10 @@
             basic_corps_type_desc
             WHERE
             status = 0
-            AND corp_type_id = #{CorpsDesc.corpsTypeId}
+            AND corp_type_id in
+            <foreach collection="CorpsDesc.typeList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
             )
         </if>
     </select>

+ 2 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsItemMapper.java

@@ -31,6 +31,7 @@ public interface CorpsItemMapper extends BaseMapper<CorpsItem> {
 	 * @return
 	 */
 	CorpsItem selectCorpsItemCode(@Param("code") String code,
+								  @Param("pid")Long pid,
 								  @Param("tenantId") String tenantId);
 
 	/**
@@ -39,6 +40,7 @@ public interface CorpsItemMapper extends BaseMapper<CorpsItem> {
 	 * @return
 	 */
 	CorpsItem selectCorpsItemCname(@Param("cname") String cname,
+								   @Param("pid")Long pid,
 								   @Param("tenantId") String tenantId);
 
 }

+ 2 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsItemMapper.xml

@@ -33,6 +33,7 @@
         from basic_corps_item
         where is_deleted = 0
           and code = #{code}
+          and pid = #{pid}
           and tenant_id = #{tenantId}
     </select>
     <select id="selectCorpsItemCname" resultMap="corpsItemResultMap">
@@ -40,6 +41,7 @@
         from basic_corps_item
         where is_deleted = 0
           and cname = #{cname}
+          and pid = #{pid}
           and tenant_id = #{tenantId}
     </select>
 </mapper>

+ 2 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsTypeMapper.xml

@@ -134,12 +134,13 @@
         FROM
         basic_corps_type
         WHERE
-        parent_id = dept.id and is_deleted = 0
+        parent_id = dept.id and is_deleted = 0 and status = 0
         ) AS "has_children"
         FROM
         basic_corps_type dept
         WHERE
         dept.parent_id = #{param2} AND dept.is_deleted = 0
+        and dept.status = 0
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
         </if>

+ 2 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAttnServiceImpl.java

@@ -26,7 +26,7 @@ public class CorpsAttnServiceImpl extends ServiceImpl<CorpsAttnMapper, CorpsAttn
 
 	@Override
 	public String selectCorpsAttnCode(CorpsAttn corpsAttn) {
-		CorpsAttn attn = baseMapper.selectCorpsAttnCode(corpsAttn.getCode(), corpsAttn.getTenantId());
+		CorpsAttn attn = baseMapper.selectCorpsAttnCode(corpsAttn.getCode(),corpsAttn.getPid(), corpsAttn.getTenantId());
 		if (attn != null && corpsAttn.getId() == null) {
 			return "NotUNIQUE";
 		} else if (attn != null && !corpsAttn.getId().equals(attn.getId())) {
@@ -38,7 +38,7 @@ public class CorpsAttnServiceImpl extends ServiceImpl<CorpsAttnMapper, CorpsAttn
 
 	@Override
 	public String selectCorpsAttnCname(CorpsAttn corpsAttn) {
-		CorpsAttn attn = baseMapper.selectCorpsAttnCname(corpsAttn.getCname(), corpsAttn.getTenantId());
+		CorpsAttn attn = baseMapper.selectCorpsAttnCname(corpsAttn.getCname(),corpsAttn.getPid(), corpsAttn.getTenantId());
 		if (attn != null && corpsAttn.getId() == null) {
 			return "NotUNIQUE";
 		} else if (attn != null && !corpsAttn.getId().equals(attn.getId())) {

+ 9 - 4
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.client.corps.mapper.CorpsDescMapper;
 import org.springblade.client.corps.mapper.CorpsTypeDescMapper;
+import org.springblade.client.corps.mapper.CorpsTypeMapper;
 import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.*;
 import org.springblade.client.vo.CorpsDescVO;
@@ -41,9 +42,15 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	private CorpsItemServiceImpl corpsItemService;//客户优势项目
 	private CorpsTypeDescServiceImpl corpsTypeDescService;//客户与客户类别对应表
 	private CorpsTypeDescMapper corpsTypeDescMapper;
+	private CorpsTypeServiceImpl corpsTypeService;
 
 	@Override
 	public IPage<CorpsDescVO> selectCorpsDescPage(IPage<CorpsDescVO> page, CorpsDescVO corpsDesc) {
+		//获取客户子类别
+		if (StringUtils.isNotBlank(corpsDesc.getCorpsTypeId())){
+			List<Long> longList = corpsTypeService.getCorpTypeIds(corpsDesc.getCorpsTypeId());
+			corpsDesc.setTypeList(longList);
+		}
 		return page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
 	}
 
@@ -158,6 +165,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	public R saveOrUpdateAttn(CorpsDesc corpsDesc, Long userId, Long pId, String tenantId, Date date) {
 		if (CollectionUtils.isNotEmpty(corpsDesc.getCorpsAttnList())) {
 			for (CorpsAttn corpsAttn : corpsDesc.getCorpsAttnList()) {
+				corpsAttn.setPid(pId);
 				if (StringUtils.isBlank(corpsAttn.getCode())) {
 					return R.data(200, "error", "客户联系人编码不能为空");
 				}
@@ -171,13 +179,11 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 					return R.data(200, "error", "客户联系人名称已存在");
 				}
 				if (corpsAttn.getId() == null) {
-					corpsAttn.setPid(pId);
 					corpsAttn.setTenantId(tenantId);
 					corpsAttn.setCreateTime(date);
 					corpsAttn.setCreateUser(userId);
 					corpsAttnService.save(corpsAttn);
 				} else {
-					corpsAttn.setPid(pId);
 					corpsAttn.setTenantId(tenantId);
 					corpsAttn.setUpdateTime(date);
 					corpsAttn.setUpdateUser(userId);
@@ -257,6 +263,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	public R saveOrUpdateItems(CorpsDesc corpsDesc, Long userId, Long pId, String tenantId, Date date) {
 		if (CollectionUtils.isNotEmpty(corpsDesc.getCorpsItems())) {
 			for (CorpsItem corpsItem : corpsDesc.getCorpsItems()) {
+				corpsItem.setPid(pId);
 				if (StringUtils.isBlank(corpsItem.getCode())) {
 					return R.data(200, "error", "客户优势项目编码不能为空");
 				}
@@ -270,13 +277,11 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 					return R.data(200, "error", "客户优势项目名称已存在");
 				}
 				if (corpsItem.getId() == null) {
-					corpsItem.setPid(pId);
 					corpsItem.setTenantId(tenantId);
 					corpsItem.setCreateTime(date);
 					corpsItem.setCreateUser(userId);
 					corpsItemService.save(corpsItem);
 				} else {
-					corpsItem.setPid(pId);
 					corpsItem.setTenantId(tenantId);
 					corpsItem.setUpdateTime(date);
 					corpsItem.setUpdateUser(userId);

+ 2 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsItemServiceImpl.java

@@ -40,7 +40,7 @@ public class CorpsItemServiceImpl extends ServiceImpl<CorpsItemMapper, CorpsItem
 
 	@Override
 	public String selectCorpsItemCode(CorpsItem corpsItem) {
-		CorpsItem itemCode = baseMapper.selectCorpsItemCode(corpsItem.getCode(),corpsItem.getTenantId());
+		CorpsItem itemCode = baseMapper.selectCorpsItemCode(corpsItem.getCode(),corpsItem.getPid(),corpsItem.getTenantId());
 		if (itemCode != null && corpsItem.getId() == null){
 			return "NotUNIQUE";
 		}else if (itemCode != null && !corpsItem.getId().equals(itemCode.getId())){
@@ -52,7 +52,7 @@ public class CorpsItemServiceImpl extends ServiceImpl<CorpsItemMapper, CorpsItem
 
 	@Override
 	public String selectCorpsItemCname(CorpsItem corpsItem) {
-		CorpsItem itemCode = baseMapper.selectCorpsItemCname(corpsItem.getCname(),corpsItem.getTenantId());
+		CorpsItem itemCode = baseMapper.selectCorpsItemCname(corpsItem.getCname(),corpsItem.getPid(),corpsItem.getTenantId());
 		if (itemCode != null && corpsItem.getId() == null){
 			return "NotUNIQUE";
 		}else if (itemCode != null && !corpsItem.getId().equals(itemCode.getId())){

+ 22 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java

@@ -18,6 +18,7 @@ package org.springblade.client.corps.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.client.entity.CorpsType;
 import org.springblade.client.vo.CorpsTypeVO;
 import org.springblade.client.corps.mapper.CorpsTypeMapper;
@@ -35,8 +36,11 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.sql.Wrapper;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 客户类别表 服务实现类
@@ -148,4 +152,22 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 		}
 	}
 
+	/**
+	 * 获取客户类别及他的子类别
+	 * @param corpTypeId
+	 * @return
+	 */
+	public List<Long> getCorpTypeIds(String corpTypeId){
+		if (StringUtils.isBlank(corpTypeId)){
+			return null;
+		}
+		List<Long> corpTypeList = new ArrayList<>();
+		List<CorpsType> corpsTypes = baseMapper.selectList(Wrappers.<CorpsType>query().lambda().like(CorpsType::getAncestors, corpTypeId));
+		if (CollectionUtils.isNotEmpty(corpsTypes)){
+			List<Long> collect = corpsTypes.stream().map(CorpsType::getId).collect(Collectors.toList());
+			corpTypeList.addAll(collect);
+		}
+		corpTypeList.add(Long.valueOf(corpTypeId));
+		return corpTypeList;
+	}
 }

+ 0 - 3
blade-service/blade-client/src/main/java/org/springblade/client/fees/controller/FeesTypeController.java

@@ -126,9 +126,6 @@ public class FeesTypeController extends BladeController {
 		if (StringUtils.isBlank(feesType.getTenantId())){
 			feesType.setTenantId(SecureUtil.getTenantId());
 		}
-		if (feesType.getSort() == null){
-			return R.fail(500,"顺序不能为空");
-		}
 		if (StringUtils.isBlank(feesType.getCname())){
 			return R.fail(500,"名称不能为空");
 		}

+ 5 - 2
blade-service/blade-client/src/main/java/org/springblade/client/fees/mapper/FeesDescMapper.xml

@@ -65,7 +65,7 @@
         <if test="FeesDesc.status!=null">
             and status = #{FeesDesc.status}
         </if>
-        <if test='FeesDesc.feesTypeId!=null and FeesDesc.feesTypeId!= ""'>
+        <if test='FeesDesc.typeIdList!=null and FeesDesc.typeIdList.size>0'>
             and id in (
             SELECT
             DISTINCT
@@ -74,7 +74,10 @@
             basic_fees_type_desc
             WHERE
             status = 0
-            AND fees_type_id  = #{FeesDesc.feesTypeId}
+            AND fees_type_id  in
+            <foreach collection="FeesDesc.typeIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
             )
         </if>
     </select>

+ 2 - 1
blade-service/blade-client/src/main/java/org/springblade/client/fees/mapper/FeesTypeMapper.xml

@@ -135,12 +135,13 @@ WHERE
         FROM
         basic_fees_type
         WHERE
-        parent_id = dept.id and is_deleted = 0
+        parent_id = dept.id and is_deleted = 0 and status = 0
         ) AS "has_children"
         FROM
         basic_fees_type dept
         WHERE
         dept.parent_id = #{param2} AND dept.is_deleted = 0
+        and dept.status = 0
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
         </if>

+ 6 - 0
blade-service/blade-client/src/main/java/org/springblade/client/fees/service/impl/FeesDescServiceImpl.java

@@ -45,8 +45,14 @@ import java.util.List;
 public class FeesDescServiceImpl extends ServiceImpl<FeesDescMapper, FeesDesc> implements IFeesDescService {
 
 	private FeesTypeDescServiceImpl feesTypeDescService;//费用-费用类别对应表
+	private FeesTypeServiceImpl feesTypeService;//费用类别
 	@Override
 	public IPage<FeesDescVO> selectFeesDescPage(IPage<FeesDescVO> page, FeesDescVO feesDesc) {
+		//获取类别子类别
+		if (StringUtils.isNotBlank(feesDesc.getFeesTypeId())){
+			List<Long> feesTypeIds = feesTypeService.feesTypeIds(feesDesc.getFeesTypeId());
+			feesDesc.setTypeIdList(feesTypeIds);
+		}
 		return page.setRecords(baseMapper.selectFeesDescPage(page, feesDesc));
 	}
 

+ 36 - 0
blade-service/blade-client/src/main/java/org/springblade/client/fees/service/impl/FeesTypeServiceImpl.java

@@ -18,21 +18,28 @@ package org.springblade.client.fees.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.client.entity.CorpsType;
 import org.springblade.client.entity.FeesType;
 import org.springblade.client.vo.FeesTypeVO;
 import org.springblade.client.fees.mapper.FeesTypeMapper;
 import org.springblade.client.fees.service.IFeesTypeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 费用类别表 服务实现类
@@ -85,6 +92,16 @@ public class FeesTypeServiceImpl extends ServiceImpl<FeesTypeMapper, FeesType> i
 
 	@Override
 	public FeesType saveMessage(FeesType feesType) {
+		if (feesType.getParentId() != null){
+			FeesType type = getById(feesType.getParentId());
+			if (type != null && feesType.getId() != null && Func.toLong(feesType.getParentId()) == Func.toLong(feesType.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			if (type != null){
+				String ancestors = type.getAncestors() + StringPool.COMMA + feesType.getParentId();
+				feesType.setAncestors(ancestors);
+			}
+		}
 		if (StringUtils.isBlank(feesType.getTenantId())){
 			feesType.setTenantId(SecureUtil.getTenantId());
 		}
@@ -130,4 +147,23 @@ public class FeesTypeServiceImpl extends ServiceImpl<FeesTypeMapper, FeesType> i
 		}
 	}
 
+	/**
+	 * 根据费用类别获取费用的子类别
+	 * @param feeTypeId
+	 * @return
+	 */
+	public List<Long> feesTypeIds(String feeTypeId){
+		if (StringUtils.isBlank(feeTypeId)){
+			return null;
+		}
+		List<Long> feesTypeIdList = new ArrayList<>();
+		List<FeesType> corpsTypes = baseMapper.selectList(Wrappers.<FeesType>query().lambda().like(FeesType::getAncestors, feeTypeId));
+		if (CollectionUtils.isNotEmpty(corpsTypes)){
+			List<Long> collect = corpsTypes.stream().map(FeesType::getId).collect(Collectors.toList());
+			feesTypeIdList.addAll(collect);
+		}
+		feesTypeIdList.add(Long.valueOf(feeTypeId));
+		return feesTypeIdList;
+	}
+
 }

+ 2 - 5
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsTypeController.java

@@ -133,9 +133,6 @@ public class GoodsTypeController extends BladeController {
 		if (StringUtils.isBlank(goodsType.getTenantId())) {
 			goodsType.setTenantId(AuthUtil.getTenantId());
 		}
-		if (goodsType.getSort() == null) {
-			return R.fail(500, "顺序不能为空");
-		}
 		if (StringUtils.isBlank(goodsType.getCname())) {
 			return R.fail(500, "名称不能为空");
 		}
@@ -164,7 +161,7 @@ public class GoodsTypeController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "树形结构", notes = "树形结构")
 	public R<List<GoodsTypeVO>> tree(String tenantId, BladeUser bladeUser) {
-		List<GoodsTypeVO> tree = goodsTypeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), GoodsTypeEnum.AFFAIRS.getType());
+		List<GoodsTypeVO> tree = goodsTypeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), GoodsTypeEnum.GOODS.getType());
 		return R.data(tree);
 	}
 
@@ -175,7 +172,7 @@ public class GoodsTypeController extends BladeController {
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "懒加载树形结构", notes = "树形结构")
 	public R<List<GoodsTypeVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
-		List<GoodsTypeVO> tree = goodsTypeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId, GoodsTypeEnum.AFFAIRS.getType());
+		List<GoodsTypeVO> tree = goodsTypeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId, GoodsTypeEnum.GOODS.getType());
 		return R.data(tree);
 	}
 

+ 5 - 2
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml

@@ -93,7 +93,7 @@
         <if test="GoodsDesc.type!=null">
             and type = #{GoodsDesc.type}
         </if>
-        <if test='GoodsDesc.goodsTypeId!=null and GoodsDesc.goodsTypeId != ""'>
+        <if test='GoodsDesc.goodsTypeIdList!=null and GoodsDesc.goodsTypeIdList.size>0'>
             and id in (
             SELECT
             DISTINCT
@@ -102,7 +102,10 @@
             basic_goods_type_desc
             WHERE
             status = 0
-            AND goods_type_id  = #{GoodsDesc.goodsTypeId}
+            AND goods_type_id  in
+            <foreach collection="GoodsDesc.goodsTypeIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
             )
         </if>
     </select>

+ 2 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsTypeMapper.xml

@@ -141,12 +141,13 @@ WHERE
         FROM
         basic_goods_type
         WHERE
-        parent_id = dept.id and is_deleted = 0
+        parent_id = dept.id and is_deleted = 0 and status = 0
         ) AS "has_children"
         FROM
         basic_goods_type dept
         WHERE
         dept.parent_id = #{param2} AND dept.is_deleted = 0
+        and dept.status = 0
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
         </if>

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -53,6 +53,11 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 
 	@Override
 	public IPage<GoodsDescVO> selectGoodsDescPage(IPage<GoodsDescVO> page, GoodsDescVO goodsDesc) {
+		//获取类别及子类别
+		if (StringUtils.isNotBlank(goodsDesc.getGoodsTypeId())){
+			List<Long> longList = goodsTypeService.goodTypeIdList(goodsDesc.getGoodsTypeId());
+			goodsDesc.setGoodsTypeIdList(longList);
+		}
 		return page.setRecords(baseMapper.selectGoodsDescPage(page, goodsDesc));
 	}
 
@@ -121,6 +126,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 			.eq(GoodsDesc::getType, goodsDesc.getType())
 			.eq(GoodsDesc::getCode, goodsDesc.getCode())
 			.eq(GoodsDesc::getTenantId, goodsDesc.getTenantId())
+			.eq(GoodsDesc::getIsDeleted,0)
 		);
 		if (count > 0) {
 			throw new ServiceException("名称已存在");
@@ -139,6 +145,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 			.eq(GoodsDesc::getType, goodsDesc.getType())
 			.eq(GoodsDesc::getCname, goodsDesc.getCname())
 			.eq(GoodsDesc::getTenantId, goodsDesc.getTenantId())
+			.eq(GoodsDesc::getIsDeleted,0)
 		);
 		if (count > 0) {
 			throw new ServiceException("名称已存在");

+ 35 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsTypeServiceImpl.java

@@ -19,6 +19,8 @@ package org.springblade.client.goods.service.impl;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.client.entity.CorpsType;
+import org.springblade.client.entity.FeesType;
 import org.springblade.client.entity.GoodsType;
 import org.springblade.client.vo.GoodsTypeVO;
 import org.springblade.client.goods.mapper.GoodsTypeMapper;
@@ -29,14 +31,18 @@ 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.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 商品类别表 服务实现类
@@ -87,6 +93,16 @@ public class GoodsTypeServiceImpl extends ServiceImpl<GoodsTypeMapper, GoodsType
 
 	@Override
 	public GoodsType saveMessage(GoodsType goodsType) {
+		if (goodsType.getParentId() != null){
+			GoodsType type = getById(goodsType.getParentId());
+			if (type != null && goodsType.getId() != null && Func.toLong(goodsType.getParentId()) == Func.toLong(goodsType.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			if (type != null){
+				String ancestors = type.getAncestors() + StringPool.COMMA + goodsType.getParentId();
+				goodsType.setAncestors(ancestors);
+			}
+		}
 		goodsType.setTenantId(AuthUtil.getTenantId());
 		if (goodsType.getId() == null) {
 			goodsType.setTenantId(AuthUtil.getTenantId());
@@ -138,4 +154,23 @@ public class GoodsTypeServiceImpl extends ServiceImpl<GoodsTypeMapper, GoodsType
 		}
 	}
 
+	/**
+	 * 根据商品类别获取商品的子类别
+	 * @param goodTypeId
+	 * @return
+	 */
+	public List<Long> goodTypeIdList(String goodTypeId){
+		if (StringUtils.isBlank(goodTypeId)){
+			return null;
+		}
+		List<Long> goodTypeList = new ArrayList<>();
+		List<GoodsType> corpsTypes = baseMapper.selectList(Wrappers.<GoodsType>query().lambda().like(GoodsType::getAncestors, goodTypeId));
+		if (CollectionUtils.isNotEmpty(corpsTypes)){
+			List<Long> collect = corpsTypes.stream().map(GoodsType::getId).collect(Collectors.toList());
+			goodTypeList.addAll(collect);
+		}
+		goodTypeList.add(Long.valueOf(goodTypeId));
+		return goodTypeList;
+	}
+
 }

+ 5 - 2
blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/StorageDescMapper.xml

@@ -73,7 +73,7 @@
         <if test="StorageDesc.updateUser!=null">
             and update_user = #{StorageDesc.updateUser}
         </if>
-        <if test='StorageDesc.storageTypeId!=null and StorageDesc.storageTypeId != ""'>
+        <if test='StorageDesc.storageTypeIdList!=null and StorageDesc.storageTypeIdList.size>0'>
             and id in (
             SELECT
             DISTINCT
@@ -82,7 +82,10 @@
             basic_storage_type_desc
             WHERE
             status = 0
-            AND storage_type_id = #{StorageDesc.storageTypeId}
+            AND storage_type_id in
+            <foreach collection="StorageDesc.storageTypeIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
             )
         </if>
     </select>

+ 3 - 2
blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/StorageTypeMapper.xml

@@ -65,7 +65,7 @@
                 FROM
                     basic_storage_type
                 WHERE
-                    parent_id = dept.id and is_deleted = 0
+                    parent_id = dept.id and is_deleted = 0 and status = 0
             ) AS hasChildren
 FROM
 	basic_storage_type dept
@@ -140,12 +140,13 @@ WHERE
         FROM
         basic_storage_type
         WHERE
-        parent_id = dept.id and is_deleted = 0
+        parent_id = dept.id and is_deleted = 0 and status = 0
         ) AS "has_children"
         FROM
         basic_storage_type dept
         WHERE
         dept.parent_id = #{param2} AND dept.is_deleted = 0
+        and dept.status = 0
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
         </if>

+ 9 - 1
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/StorageDescServiceImpl.java

@@ -17,6 +17,7 @@
 package org.springblade.client.serial.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.StorageDesc;
 import org.springblade.client.entity.StorageType;
@@ -31,6 +32,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 库区表 服务实现类
@@ -45,6 +47,11 @@ public class StorageDescServiceImpl extends ServiceImpl<StorageDescMapper, Stora
 	private StorageTypeServiceImpl storageTypeService;//仓库表
 	@Override
 	public IPage<StorageDescVO> selectStorageDescPage(IPage<StorageDescVO> page, StorageDescVO storageDesc) {
+		//获取仓库及下属仓库
+		if (storageDesc.getStorageTypeId() != null){
+			List<Long> longList = storageTypeService.storageTypeList(storageDesc.getStorageTypeId());
+			storageDesc.setStorageTypeIdList(longList);
+		}
 		return page.setRecords(baseMapper.selectStorageDescPage(page, storageDesc));
 	}
 
@@ -72,7 +79,8 @@ public class StorageDescServiceImpl extends ServiceImpl<StorageDescMapper, Stora
 	public StorageDesc getMessage(StorageDesc storageDesc) {
 		StorageDesc desc = baseMapper.selectById(storageDesc.getId());
 		//获取库区和仓库对应表
-		StorageTypeDesc storageId = storageTypeDescService.getOne(new QueryWrapper<StorageTypeDesc>().eq("storage_id", desc.getId()));
+		StorageTypeDesc storageId = storageTypeDescService.getOne(new QueryWrapper<StorageTypeDesc>().eq("storage_id", desc.getId())
+		.eq("status",0));
 		if (storageId != null){
 			desc.setStorageTypeId(storageId.getStorageTypeId());
 			StorageType storageType = storageTypeService.getById(storageId.getStorageTypeId());

+ 38 - 0
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/StorageTypeServiceImpl.java

@@ -3,20 +3,28 @@ package org.springblade.client.serial.service.impl;
 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;
+import org.springblade.client.entity.CorpsType;
+import org.springblade.client.entity.GoodsType;
 import org.springblade.client.entity.StorageType;
 import org.springblade.client.serial.mapper.StorageTypeMapper;
 import org.springblade.client.serial.service.IStorageTypeService;
 import org.springblade.client.vo.StorageTypeVO;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 仓库 服务实现类
@@ -59,6 +67,16 @@ public class StorageTypeServiceImpl extends ServiceImpl<StorageTypeMapper, Stora
 
 	@Override
 	public StorageType saveMessage(StorageType storageType) {
+		if (storageType.getParentId() != null){
+			StorageType storage = getById(storageType.getParentId());
+			if (storage != null && storageType.getId() != null && Func.toLong(storageType.getParentId()) == Func.toLong(storageType.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			if (storage != null){
+				String ancestors = storage.getAncestors() + StringPool.COMMA + storageType.getParentId();
+				storageType.setAncestors(ancestors);
+			}
+		}
 		if (StringUtils.isBlank(storageType.getTenantId())) {
 			storageType.setTenantId(SecureUtil.getTenantId());
 		}
@@ -125,4 +143,24 @@ public class StorageTypeServiceImpl extends ServiceImpl<StorageTypeMapper, Stora
 		}
 	}
 
+	/**
+	 * 获取仓库及其下属仓库
+	 * @param storageTypeId
+	 * @return
+	 */
+	public List<Long> storageTypeList(Long storageTypeId){
+		if (storageTypeId == null){
+			return null;
+		}
+		List<Long> storageTypeList = new ArrayList<>();
+		List<StorageType> corpsTypes = baseMapper.selectList(Wrappers.<StorageType>query().lambda().like(StorageType::getAncestors, storageTypeId));
+		if (CollectionUtils.isNotEmpty(corpsTypes)){
+			List<Long> collect = corpsTypes.stream().map(StorageType::getId).collect(Collectors.toList());
+			storageTypeList.addAll(collect);
+		}
+		storageTypeList.add(Long.valueOf(storageTypeId));
+		return storageTypeList;
+
+	}
+
 }

+ 136 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -0,0 +1,136 @@
+package org.springblade.purchase.sales.export;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.order.enums.OrderTypeEnum;
+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.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.IOrderService;
+import org.springblade.purchase.sales.vo.OrderVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 出口询价单控制器
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/exportEnquiry")
+@Api(value = "出口询价", tags = "出口询价")
+public class ExportEnquiryController extends BladeController {
+
+	private final IOrderService orderService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入order")
+	public R<Order> detail(Order order) {
+		order.setIsDeleted(0);
+		order.setTenantId(SecureUtil.getTenantId());
+		Order detail = orderService.getOrderMessage(order);
+		return R.data(detail);
+	}
+	/**
+	 * 出口询价
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入order")
+	public R<IPage<Order>> entranceList(Order order, Query query) {
+		order.setIsDeleted(0);
+		order.setTenantId(SecureUtil.getTenantId());
+		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.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(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);
+	}
+	/**
+	 * 新增 出口询价
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入order")
+	public R save(@Valid @RequestBody Order order) {
+		return R.status(orderService.save(order));
+	}
+	/**
+	 * 修改 出口询价
+	 */
+	@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 submit(@Valid @RequestBody Order order) {
+		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
+		return orderService.saveOrderMessage(order);
+	}
+	/**
+	 * 删除 出口询价
+	 */
+	@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)));
+	}
+	/**
+	 * 出口询价生成销售单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/deliverGoods")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "出口销售单生成发货单", notes = "传入主订单id,明细ids")
+	public R deliverGoods(@Valid @RequestBody Order order) {
+		if (order.getId() == null){
+			return R.fail(500,"参数缺失");
+		}
+		if (CollectionUtils.isEmpty(order.getOrderItemIds())){
+			return R.fail(500,"请选择要发货的商品明细");
+		}
+		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
+		return R.data(orderService.deliverGoods(order));
+	}
+}

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

@@ -43,6 +43,12 @@
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
         <result column="remarks" property="remarks"/>
+        <result column="trade_terms" property="tradeTerms"/>
+        <result column="item_url" property="itemUrl"/>
+        <result column="item_type" property="itemType"/>
+        <result column="item_prop" property="itemProp"/>
+        <result column="if_tax" property="ifTax"/>
+        <result column="item_description" property="itemDescription"/>
     </resultMap>
 
 

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

@@ -77,6 +77,21 @@
         <result column="down_payment" property="downPayment"/>
         <result column="rmb_amount" property="rmbAmount"/>
         <result column="trade_type" property="tradeType"/>
+        <result column="corp_attn" property="corpAttn"/>
+        <result column="other_corp_attn" property="otherCorpAttn"/>
+        <result column="corp_tel" property="corpTel"/>
+        <result column="contract_weight" property="contractWeight"/>
+        <result column="trade_terms" property="tradeTerms"/>
+        <result column="trade_terms_description" property="tradeTermsDescription"/>
+        <result column="price_terms" property="priceTerms"/>
+        <result column="price_terms_description" property="priceTermsDescription"/>
+        <result column="transport" property="transport"/>
+        <result column="date_validity" property="dateValidity"/>
+        <result column="payment_type_description" property="paymentTypeDescription"/>
+        <result column="insurance_remarks" property="insuranceRemarks"/>
+        <result column="marks" property="marks"/>
+        <result column="credit_number" property="creditNumber"/>
+        <result column="credit_amount" property="creditAmount"/>
     </resultMap>
 
 

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

@@ -44,6 +44,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.rmi.ServerException;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -128,9 +129,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		//获取客户中文名
 		if (orderMessage.getCorpId() != null){
-			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderMessage.getCorpId());
+			R<List<Map<String,Object>>> corpMessage = corpsDescClient.getCorpsMessage(orderMessage.getCorpId().toString());
 			if (corpMessage.isSuccess() && corpMessage.getData() != null){
-				orderMessage.setCorpName(corpMessage.getData().getCname());
+				orderMessage.setCorpName(corpMessage.getData());
 			}
 		}
 		//获取销售公司中文名

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

@@ -42,6 +42,12 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="trade_terms" property="tradeTerms"/>
+        <result column="item_url" property="itemUrl"/>
+        <result column="item_type" property="itemType"/>
+        <result column="item_prop" property="itemProp"/>
+        <result column="if_tax" property="ifTax"/>
+        <result column="item_description" property="itemDescription"/>
     </resultMap>
 
 

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

@@ -77,6 +77,21 @@
         <result column="down_payment" property="downPayment"/>
         <result column="rmb_amount" property="rmbAmount"/>
         <result column="trade_type" property="tradeType"/>
+        <result column="corp_attn" property="corpAttn"/>
+        <result column="other_corp_attn" property="otherCorpAttn"/>
+        <result column="corp_tel" property="corpTel"/>
+        <result column="contract_weight" property="contractWeight"/>
+        <result column="trade_terms" property="tradeTerms"/>
+        <result column="trade_terms_description" property="tradeTermsDescription"/>
+        <result column="price_terms" property="priceTerms"/>
+        <result column="price_terms_description" property="priceTermsDescription"/>
+        <result column="transport" property="transport"/>
+        <result column="date_validity" property="dateValidity"/>
+        <result column="payment_type_description" property="paymentTypeDescription"/>
+        <result column="insurance_remarks" property="insuranceRemarks"/>
+        <result column="marks" property="marks"/>
+        <result column="credit_number" property="creditNumber"/>
+        <result column="credit_amount" property="creditAmount"/>
     </resultMap>