Browse Source

2023年7月10日18:28:53

纪新园 2 years ago
parent
commit
ec23d87977
37 changed files with 962 additions and 266 deletions
  1. 174 156
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java
  2. 8 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjProductLaunch.java
  3. 10 1
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjSettlementItems.java
  4. 16 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShip.java
  5. 6 6
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsExcel.java
  6. 84 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjCorpsDescExportExcel.java
  7. 72 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjCorpsDescGYSExportExcel.java
  8. 7 1
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjShipStockDetails.java
  9. 17 17
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java
  10. 3 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/accountManagement/controller/AccountManagementController.java
  11. 1 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/accountManagement/service/impl/AccountManagementServiceImpl.java
  12. 1 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/service/impl/BrandDescServiceImpl.java
  13. 29 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/config/CustomInterceptor.java
  14. 17 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/config/MyBatisPlusConfig.java
  15. 5 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsDescController.java
  16. 56 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsStatisticsController.java
  17. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.java
  18. 48 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml
  19. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/ICorpsDescService.java
  20. 30 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java
  21. 11 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java
  22. 12 5
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  23. 120 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderStatisticsController.java
  24. 6 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java
  25. 46 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml
  26. 8 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java
  27. 74 7
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  28. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.xml
  29. 10 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java
  30. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/controller/SettlementController.java
  31. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/mapper/SettlementItemsMapper.xml
  32. 10 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  33. 6 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipMapper.xml
  34. 2 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/IShipService.java
  35. 47 6
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  36. 16 40
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java
  37. 3 0
      blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

+ 174 - 156
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java

@@ -16,23 +16,21 @@
  */
 package org.springblade.salesPart.entity;
 
-import java.math.BigDecimal;
-
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.pay.tonglianPayment.entity.WechatMark;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
 /**
  * 配件销售采购表实体类
  *
@@ -47,30 +45,31 @@ public class PjOrder implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	* 主键
-	*/
-		@ApiModelProperty(value = "主键")
-		private Long id;
+	 * 主键
+	 */
+	@ApiModelProperty(value = "主键")
+	private Long id;
 	/**
 	 * 租户id
 	 */
 	@ApiModelProperty(value = "租户id")
-	private String tenantId = AuthUtil.getTenantId();;
+	private String tenantId = AuthUtil.getTenantId();
+	;
 	/**
-	* 订单编号
-	*/
-		@ApiModelProperty(value = "订单编号")
-		private String ordNo;
+	 * 订单编号
+	 */
+	@ApiModelProperty(value = "订单编号")
+	private String ordNo;
 	/**
-	* 源单编号
-	*/
-		@ApiModelProperty(value = "源单编号")
-		private String srcOrdNo;
+	 * 源单编号
+	 */
+	@ApiModelProperty(value = "源单编号")
+	private String srcOrdNo;
 	/**
-	* 创建人
-	*/
-		@ApiModelProperty(value = "创建人")
-		private Long createUser;
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
 
 	/**
 	 * 创建人名称
@@ -79,22 +78,22 @@ public class PjOrder implements Serializable {
 	private String createUserName;
 
 	/**
-	* 创建部门
-	*/
-		@ApiModelProperty(value = "创建部门")
-		private Long createDept;
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
 	/**
-	* 创建时间
-	*/
-		@ApiModelProperty(value = "创建时间")
-		@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-		private Date createTime;
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
 	/**
-	* 修改人
-	*/
-		@ApiModelProperty(value = "修改人")
-		private Long updateUser;
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private Long updateUser;
 
 	/**
 	 * 修改人名称
@@ -103,27 +102,27 @@ public class PjOrder implements Serializable {
 	private String updateUserName;
 
 	/**
-	* 修改时间
-	*/
-		@ApiModelProperty(value = "修改时间")
-		@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-		private Date updateTime;
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
 	/**
-	* 是否已删除(0 否 1是)
-	*/
-		@ApiModelProperty(value = "是否已删除(0 否 1是)")
-		private Integer isDeleted;
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
 	/**
-	* 备注
-	*/
-		@ApiModelProperty(value = "备注")
-		private String remarks;
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remarks;
 	/**
-	* 订单状态
-	*/
-		@ApiModelProperty(value = "订单状态")
-		private String status;
+	 * 订单状态
+	 */
+	@ApiModelProperty(value = "订单状态")
+	private String status;
 
 	/**
 	 * 小程序订单状态
@@ -132,110 +131,110 @@ public class PjOrder implements Serializable {
 	private String xcxStatus;
 
 	/**
-	* 业务类型(XS,CG)
-	*/
-		@ApiModelProperty(value = "业务类型")
-		private String bsType;
-	/**
-	* 支付方式
-	*/
-		@ApiModelProperty(value = "支付方式")
-		private String chargeType;
-	/**
-	* 总金额
-	*/
-		@ApiModelProperty(value = "总金额")
-		private BigDecimal totalMoney;
-	/**
-	* 总利润
-	*/
-		@ApiModelProperty(value = "总利润")
-		private BigDecimal totalProfit;
-	/**
-	* 数量
-	*/
-		@ApiModelProperty(value = "数量")
-		private BigDecimal goodsTotalNum;
-	/**
-	* 客户id
-	*/
-		@ApiModelProperty(value = "客户id")
-		private Long customerId;
-	/**
-	* 客户名称
-	*/
-		@ApiModelProperty(value = "客户名称")
-		private String customerName;
-	/**
-	* 业务员id
-	*/
-		@ApiModelProperty(value = "业务员id")
-		private Long salerId;
-	/**
-	* 业务员名称
-	*/
-		@ApiModelProperty(value = "业务员名称")
-		private String salerName;
-	/**
-	* 收货地址
-	*/
-		@ApiModelProperty(value = "收货地址")
-		private String recAddress;
-	/**
-	* 收货电话
-	*/
-		@ApiModelProperty(value = "收货电话")
-		private String phone;
-	/**
-	* 联系人
-	*/
-		@ApiModelProperty(value = "联系人")
-		private String contacts;
-	/**
-	* 发货仓库id
-	*/
-		@ApiModelProperty(value = "发货仓库id")
-		private Long storageId;
-	/**
-	* 发货仓库名称
-	*/
-		@ApiModelProperty(value = "发货仓库名称")
-		private String storageName;
-	/**
-	* 配送方式
-	*/
-		@ApiModelProperty(value = "配送方式")
-		private String shipType;
-	/**
-	* 物流公司id
-	*/
-		@ApiModelProperty(value = "物流公司id")
-		private Long logisticsCorpId;
-	/**
-	* 物流公司名称
-	*/
-		@ApiModelProperty(value = "物流公司名称")
-		private String logisticsCorpName;
-	/**
-	* 快递单号
-	*/
-		@ApiModelProperty(value = "快递单号")
-		private String expressNo;
-	/**
-	* 经手人
-	*/
-		@ApiModelProperty(value = "经手人")
-		private String handerName;
+	 * 业务类型(XS,CG)
+	 */
+	@ApiModelProperty(value = "业务类型")
+	private String bsType;
+	/**
+	 * 支付方式
+	 */
+	@ApiModelProperty(value = "支付方式")
+	private String chargeType;
+	/**
+	 * 总金额
+	 */
+	@ApiModelProperty(value = "总金额")
+	private BigDecimal totalMoney;
+	/**
+	 * 总利润
+	 */
+	@ApiModelProperty(value = "总利润")
+	private BigDecimal totalProfit;
+	/**
+	 * 数量
+	 */
+	@ApiModelProperty(value = "数量")
+	private BigDecimal goodsTotalNum;
+	/**
+	 * 客户id
+	 */
+	@ApiModelProperty(value = "客户id")
+	private Long customerId;
+	/**
+	 * 客户名称
+	 */
+	@ApiModelProperty(value = "客户名称")
+	private String customerName;
+	/**
+	 * 业务员id
+	 */
+	@ApiModelProperty(value = "业务员id")
+	private Long salerId;
+	/**
+	 * 业务员名称
+	 */
+	@ApiModelProperty(value = "业务员名称")
+	private String salerName;
+	/**
+	 * 收货地址
+	 */
+	@ApiModelProperty(value = "收货地址")
+	private String recAddress;
+	/**
+	 * 收货电话
+	 */
+	@ApiModelProperty(value = "收货电话")
+	private String phone;
+	/**
+	 * 联系人
+	 */
+	@ApiModelProperty(value = "联系人")
+	private String contacts;
+	/**
+	 * 发货仓库id
+	 */
+	@ApiModelProperty(value = "发货仓库id")
+	private Long storageId;
+	/**
+	 * 发货仓库名称
+	 */
+	@ApiModelProperty(value = "发货仓库名称")
+	private String storageName;
+	/**
+	 * 配送方式
+	 */
+	@ApiModelProperty(value = "配送方式")
+	private String shipType;
+	/**
+	 * 物流公司id
+	 */
+	@ApiModelProperty(value = "物流公司id")
+	private Long logisticsCorpId;
+	/**
+	 * 物流公司名称
+	 */
+	@ApiModelProperty(value = "物流公司名称")
+	private String logisticsCorpName;
+	/**
+	 * 快递单号
+	 */
+	@ApiModelProperty(value = "快递单号")
+	private String expressNo;
+	/**
+	 * 经手人
+	 */
+	@ApiModelProperty(value = "经手人")
+	private String handerName;
 	/**
 	 * 行数
 	 */
-		@ApiModelProperty(value = "行数")
-		private Integer numberRows;
+	@ApiModelProperty(value = "行数")
+	private Integer numberRows;
 	/**
 	 * 已发数量
 	 */
-		@ApiModelProperty(value = "已发数量")
-		private BigDecimal goodsTotalShipNum;
+	@ApiModelProperty(value = "已发数量")
+	private BigDecimal goodsTotalShipNum;
 	/**
 	 * 应结日期
 	 */
@@ -243,6 +242,19 @@ public class PjOrder implements Serializable {
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date dueDate;
+	/**
+	 * 业务日期
+	 */
+	@ApiModelProperty(value = "业务日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	private Date businesDate;
+
+	/**
+	 * 业务日期
+	 */
+	@TableField(exist = false)
+	private List<String> businesDateList;
 
 	/**
 	 * 应结日期
@@ -299,7 +311,7 @@ public class PjOrder implements Serializable {
 	private BigDecimal grossProfit;
 
 	/**
-	 *  销售金额
+	 * 销售金额
 	 */
 	@ApiModelProperty(value = "销售金额")
 	private BigDecimal salesAmount;
@@ -413,4 +425,10 @@ public class PjOrder implements Serializable {
 	 */
 	@TableField(exist = false)
 	private Integer actualPaymentType;
+
+	/**
+	 * 年
+	 */
+	@TableField(exist = false)
+	private Integer year;
 }

+ 8 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjProductLaunch.java

@@ -26,6 +26,7 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
+import com.baomidou.mybatisplus.annotation.Version;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
@@ -300,4 +301,11 @@ public class PjProductLaunch implements Serializable {
 	 */
 	@ApiModelProperty(value = "产品名称提取数字")
 	private String cnameInt;
+
+	/**
+	 * 版本
+	 */
+	@ApiModelProperty(value = "版本")
+	@Version
+	private int version;
 }

+ 10 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjSettlementItems.java

@@ -17,10 +17,12 @@
 package org.springblade.salesPart.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -136,6 +138,13 @@ public class PjSettlementItems implements Serializable {
 	 * 租户id
 	 */
 	@ApiModelProperty(value = "租户id")
-	private String tenantId = AuthUtil.getTenantId();;
+	private String tenantId = AuthUtil.getTenantId();
+	/**
+	 * 业务日期
+	 */
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@ApiModelProperty(value = "业务日期")
+	private Date businesDate;
 
 }

+ 16 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShip.java

@@ -25,12 +25,14 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.salesPart.vo.ShipVO;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 配件收发货表实体类
@@ -265,4 +267,18 @@ public class PjShip implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String item;
+
+	/**
+	 * 业务日期
+	 */
+	@ApiModelProperty(value = "应结日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	private Date businesDate;
+
+	/**
+	 * 业务日期
+	 */
+	@TableField(exist = false)
+	private List<String> businesDateList;
 }

+ 6 - 6
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsExcel.java

@@ -64,6 +64,12 @@ public class GoodsExcel implements Serializable {
 	private String brandItem;
 
 	/**
+	 * 所属公司名称
+	 */
+	@ExcelProperty(value = "*所属公司名称")
+	private String salesCompanyName;
+
+	/**
 	 * 是否管理批次号  0否1是
 	 */
 	@ExcelProperty(value = "*是否管理批次号 0否1是")
@@ -82,12 +88,6 @@ public class GoodsExcel implements Serializable {
 	private String corpName;
 
 	/**
-	 * 所属公司名称
-	 */
-	@ExcelProperty(value = "所属公司名称")
-	private String salesCompanyName;
-
-	/**
 	 * 快捷品名查询
 	 */
 	@ExcelProperty(value = "快捷品名查询")

+ 84 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjCorpsDescExportExcel.java

@@ -0,0 +1,84 @@
+/*
+ *      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 org.springblade.salesPart.excel;
+
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import org.springblade.common.execl.ExcelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 配件批发客户实体类
+ *
+ * @author BladeX
+ * @since 2023-04-21
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PjCorpsDescExportExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String cname;
+
+	/**
+	 * 合同金额
+	 */
+	@ExcelProperty(value = "合同金额")
+	private BigDecimal totalAmount;
+
+	/**
+	 * 数量
+	 */
+	@ExcelProperty(value = "数量")
+	private BigDecimal number;
+
+	/**
+	 * 未付款
+	 */
+	@ExcelProperty(value = "未付款")
+	private BigDecimal unpaidAmount;
+
+	/**
+	 * 已付款
+	 */
+	@ExcelProperty(value = "已付款")
+	private BigDecimal paidAmount;
+
+	/**
+	 * 信用额度余额
+	 */
+	@ExcelProperty(value = "信用额度余额")
+	private BigDecimal creditLimitBalance;
+
+	/**
+	 * 账期
+	 */
+	@ExcelProperty(value = "账期")
+	private Integer accountPeriod;
+
+}

+ 72 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjCorpsDescGYSExportExcel.java

@@ -0,0 +1,72 @@
+/*
+ *      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 org.springblade.salesPart.excel;
+
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 配件批发客户实体类
+ *
+ * @author BladeX
+ * @since 2023-04-21
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class PjCorpsDescGYSExportExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String cname;
+
+	/**
+	 * 合同金额
+	 */
+	@ExcelProperty(value = "合同金额")
+	private BigDecimal totalAmount;
+
+	/**
+	 * 数量
+	 */
+	@ExcelProperty(value = "数量")
+	private BigDecimal number;
+
+	/**
+	 * 未付款
+	 */
+	@ExcelProperty(value = "未付款")
+	private BigDecimal unpaidAmount;
+
+	/**
+	 * 已付款
+	 */
+	@ExcelProperty(value = "已付款")
+	private BigDecimal paidAmount;
+
+}

+ 7 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjShipStockDetails.java

@@ -35,6 +35,12 @@ public class PjShipStockDetails implements Serializable {
 
 	private static final long serialVersionUID = 1L;
 
+
+	/**
+	 * 业务编号
+	 */
+	private String id;
+
 	/**
 	 * 业务编号
 	 */
@@ -80,7 +86,7 @@ public class PjShipStockDetails implements Serializable {
 	 * 业务日期
 	 */
 	@ApiModelProperty(value = "业务日期")
-	private List<String> createTimeList;
+	private List<String> businesDateList;
 
 
 	/**

+ 17 - 17
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java

@@ -76,22 +76,24 @@ public class OrderDescClient implements IOrderDescClient {
 		}
 
 		if ("681169".equals(AuthUtil.getTenantId()) || "941197".equals(AuthUtil.getTenantId())) {
-			if (ObjectUtil.isNotEmpty(order.getDeliverQuantity())) {
-				if (order.getDeliverQuantity().compareTo(BigDecimal.ZERO) == 0) {
-					iOrderService.update(null, new LambdaUpdateWrapper<Order>()
-						.set(Order::getDeliverTime, null)
-						.set(Order::getActualDeliveryDate, null)
-						.eq(Order::getId, order.getId())
-					);
+			if ("待发货".equals(order.getOrderStatus()) || "未完成".equals(order.getOrderStatus())){
+				if (ObjectUtil.isNotEmpty(order.getDeliverQuantity())) {
+					if (order.getDeliverQuantity().compareTo(BigDecimal.ZERO) == 0) {
+						iOrderService.update(null, new LambdaUpdateWrapper<Order>()
+							.set(Order::getDeliverTime, null)
+							.set(Order::getActualDeliveryDate, null)
+							.eq(Order::getId, order.getId())
+						);
+					}
 				}
-			}
-			if (ObjectUtil.isNotEmpty(order.getReceiveQuantity())) {
-				if (order.getReceiveQuantity().compareTo(BigDecimal.ZERO) == 0) {
-					iOrderService.update(null, new LambdaUpdateWrapper<Order>()
-						.set(Order::getReceiveTime, null)
-						.set(Order::getActualDeliveryDate, null)
-						.eq(Order::getId, order.getId())
-					);
+				if (ObjectUtil.isNotEmpty(order.getReceiveQuantity())) {
+					if (order.getReceiveQuantity().compareTo(BigDecimal.ZERO) == 0) {
+						iOrderService.update(null, new LambdaUpdateWrapper<Order>()
+							.set(Order::getReceiveTime, null)
+							.set(Order::getActualDeliveryDate, null)
+							.eq(Order::getId, order.getId())
+						);
+					}
 				}
 			}
 			iOrderService.updateById(order);
@@ -103,7 +105,6 @@ public class OrderDescClient implements IOrderDescClient {
 						iOrderService.update(null, new LambdaUpdateWrapper<Order>()
 							.set(Order::getDeliverTime, null)
 							.set(Order::getActualDeliveryDate, null)
-							.set(Order::getActualDeliveryDate, null)
 							.eq(Order::getId, order.getId())
 						);
 					}
@@ -113,7 +114,6 @@ public class OrderDescClient implements IOrderDescClient {
 						iOrderService.update(null, new LambdaUpdateWrapper<Order>()
 							.set(Order::getReceiveTime, null)
 							.set(Order::getActualDeliveryDate, null)
-							.set(Order::getActualDeliveryDate, null)
 							.eq(Order::getId, order.getId())
 						);
 					}

+ 3 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/accountManagement/controller/AccountManagementController.java

@@ -75,6 +75,7 @@ public class AccountManagementController extends BladeController {
 		lambdaQueryWrapper.eq(PjAccountManagement::getTenantId, AuthUtil.getTenantId())
 			.eq(PjAccountManagement::getIsDeleted, 0)
 			.eq(PjAccountManagement::getSalesCompanyId, AuthUtil.getDeptId())//公司
+			.eq(PjAccountManagement::getCorporateName, AuthUtil.getDeptId())//公司
 			.like(StringUtils.isNotBlank(accountManagement.getCname()), PjAccountManagement::getCname, accountManagement.getCname())//客户名称
 			.eq(StringUtils.isNotBlank(accountManagement.getAccountType()), PjAccountManagement::getAccountType, accountManagement.getAccountType())//账户类型
 			.like(StringUtils.isNotBlank(accountManagement.getBankDeposit()), PjAccountManagement::getBankDeposit, accountManagement.getBankDeposit())//账户类型
@@ -128,9 +129,9 @@ public class AccountManagementController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入accountManagement")
 	public R submit(@Valid @RequestBody PjAccountManagement accountManagement) {
-		/*if (StringUtils.isNotBlank(accountManagement.getTenantId())){
+		if (StringUtils.isNotBlank(accountManagement.getTenantId())){
 			accountManagement.setTenantId(AuthUtil.getTenantId());
-		}*/
+		}
 		PjAccountManagement management = accountManagementService.saveMessage(accountManagement);
 		return R.data(management);
 	}

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/accountManagement/service/impl/AccountManagementServiceImpl.java

@@ -85,7 +85,7 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
 			accountManagement.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			accountManagement.setCreateTime(new Date());
 //			accountManagement.setTenantId(AuthUtil.getTenantId());
-			accountManagement.setEnableOrNot(0);
+			accountManagement.setEnableOrNot(1);
 			accountManagement.setAccountBalance(accountManagement.getOpeningAmount());
 			baseMapper.insert(accountManagement);
 		}else {

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/service/impl/BrandDescServiceImpl.java

@@ -97,7 +97,7 @@ public class BrandDescServiceImpl extends ServiceImpl<BrandDescMapper, PjBrandDe
 			brandDesc.setUpdateUser(AuthUtil.getUserId());
 			brandDesc.setUpdateTime(new Date());
 			brandDesc.setTenantId(AuthUtil.getTenantId());
-			brandDesc.setEnableOrNot(0);
+			brandDesc.setEnableOrNot(1);
 			baseMapper.updateById(brandDesc);
 		} else {
 			brandDesc.setCreateUser(AuthUtil.getUserId());

+ 29 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/config/CustomInterceptor.java

@@ -0,0 +1,29 @@
+package org.springblade.salesPart.config;
+
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Signature;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author :jixinyuan
+ * @date : 2023/7/10
+ */
+/*@Intercepts({
+	@Signature(type = MyBatisPlusConfig.class, method = "MybatisPlusInterceptor", args = {})
+})
+public class CustomInterceptor extends MybatisPlusInterceptor {
+
+	// 在构造函数中添加自定义的拦截器
+	public CustomInterceptor() {
+		this.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
+		this.addInnerInterceptor(new PaginationInnerInterceptor());
+		this.addInnerInterceptor(new BlockAttackInnerInterceptor());
+	}
+}*/

+ 17 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/config/MyBatisPulsConfig.java → blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/config/MyBatisPlusConfig.java

@@ -12,14 +12,29 @@ import org.springframework.context.annotation.Configuration;
  * @date : 2023/7/4
  */
 @Configuration
-public class MyBatisPulsConfig {
+public class MyBatisPlusConfig {
+
 
 	@Bean
-	public MybatisPlusInterceptor mybatisPlusInterceptor() {
+	public MybatisPlusInterceptor MybatisPlusInterceptor() {
 		MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
 		mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());//乐观锁插件
 		mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());//自动分页插件
 		mybatisPlusInterceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());//防止全表更新或删除
 		return mybatisPlusInterceptor;
+//		return new CustomInterceptor();
 	}
+
+	/*@Bean
+	public MybatisPlusInterceptor MybatisPlusInterceptor() {
+		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+
+		// 创建乐观锁插件
+		OptimisticLockerInnerInterceptor optimisticLockerInterceptor = new OptimisticLockerInnerInterceptor();
+
+		// 添加乐观锁插件到 Mybatis Plus 拦截器链中
+		interceptor.addInnerInterceptor(optimisticLockerInterceptor);
+
+		return interceptor;
+	}*/
 }

+ 5 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsDescController.java

@@ -40,6 +40,7 @@ import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.purchase.sales.entity.Order;
 import org.springblade.salesPart.corps.service.ICorpsAttnService;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.corps.service.ICorpsTypeDescService;
@@ -318,7 +319,11 @@ public class CorpsDescController extends BladeController {
 			.eq(PjCorpsDesc::getIsDeleted, 0)
 			.eq(PjCorpsDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(PjCorpsDesc::getCorpType, corpsDesc.getCorpType())
+			.eq(ObjectUtils.isNotNull(corpsDesc.getEnableOrNot()),PjCorpsDesc::getEnableOrNot, corpsDesc.getEnableOrNot())
 			.like(ObjectUtils.isNotNull(corpsDesc.getCname()), PjCorpsDesc::getCname, corpsDesc.getCname());
+		if (AuthUtil.getUserRole().contains("业务员")) {
+			lambdaQueryWrapper.eq(PjCorpsDesc::getSalesmanId, AuthUtil.getUserId());
+		}
 		List<PjCorpsDesc> list = corpsDescService.list(lambdaQueryWrapper);
 
 		return R.data(list);

+ 56 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsStatisticsController.java

@@ -6,18 +6,24 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springblade.core.excel.util.ExcelUtil;
 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.BeanUtil;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.entity.PjCorpsDesc;
 import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.excel.CorpsDescExportExcel;
+import org.springblade.salesPart.excel.PjCorpsDescExportExcel;
+import org.springblade.salesPart.excel.PjCorpsDescGYSExportExcel;
 import org.springblade.salesPart.order.service.IOrderService;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
@@ -53,6 +59,7 @@ public class CorpsStatisticsController {
 			lambdaQueryWrapper.eq(PjOrder::getCustomerId, corpsDescDto1.getId());
 			if (corpsDescDto1.getCorpType().equals("KH")) {
 				lambdaQueryWrapper.eq(PjOrder::getBsType, "XS");
+				lambdaQueryWrapper.apply("find_in_set(status,'待确认,待发货,已发货')");
 			} else {
 				lambdaQueryWrapper.eq(PjOrder::getBsType, "CG");
 			}
@@ -102,6 +109,7 @@ public class CorpsStatisticsController {
 			lambdaQueryWrapper.eq(PjOrder::getCustomerId, corpsDescDto1.getId());
 			if (corpsDescDto1.getCorpType().equals("KH")) {
 				lambdaQueryWrapper.eq(PjOrder::getBsType, "XS");
+				lambdaQueryWrapper.apply("find_in_set(status,'待确认,待发货,已发货')");
 			} else {
 				lambdaQueryWrapper.eq(PjOrder::getBsType, "CG");
 			}
@@ -124,4 +132,52 @@ public class CorpsStatisticsController {
 		return R.data(map);
 	}
 
+	/**
+	 * 导出
+	 */
+	@GetMapping("/export")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入corpsDesc")
+	public void export(PjCorpsDesc corpsDescDto, HttpServletResponse response) {
+		corpsDescDto.setIsDeleted(0);//默认查有效的
+		corpsDescDto.setTenantId(SecureUtil.getTenantId());
+		List<PjCorpsDesc> list = corpsDescService.selectPartsCorpsDesc(corpsDescDto);
+		for (PjCorpsDesc corpsDescDto1 : list) {
+			LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(PjOrder::getCustomerId, corpsDescDto1.getId());
+			if (corpsDescDto1.getCorpType().equals("KH")) {
+				lambdaQueryWrapper.eq(PjOrder::getBsType, "XS");
+				lambdaQueryWrapper.apply("find_in_set(status,'待确认,待发货,已发货')");
+			} else {
+				lambdaQueryWrapper.eq(PjOrder::getBsType, "CG");
+			}
+			if (ObjectUtils.isNotNull(corpsDescDto1.getCreditLimit()) && ObjectUtils.isNotNull(corpsDescDto1.getUseCreditLimit())) {
+				corpsDescDto1.setCreditLimitBalance(corpsDescDto1.getCreditLimit().subtract(corpsDescDto1.getUseCreditLimit()));
+			}
+			List<PjOrder> orderList = orderService.list(lambdaQueryWrapper);
+			if (ObjectUtils.isNotNull(orderList)) {
+				BigDecimal totalAmount = orderList.stream().map(PjOrder::getTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+				//已付
+				corpsDescDto1.setPaidAmount(orderList.stream().map(PjOrder::getPaymentAmountTl).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				//未付
+				corpsDescDto1.setUnpaidAmount(totalAmount.subtract(corpsDescDto1.getPaidAmount()));
+				corpsDescDto1.setTotalAmount(totalAmount);
+				corpsDescDto1.setNumber(orderList.stream().map(PjOrder::getGoodsTotalShipNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			} else {
+				//已付
+				corpsDescDto1.setPaidAmount(new BigDecimal("0.00"));
+				//未付
+				corpsDescDto1.setUnpaidAmount(new BigDecimal("0.00"));
+				corpsDescDto1.setTotalAmount(new BigDecimal("0.00"));
+				corpsDescDto1.setNumber(new BigDecimal("0.00"));
+			}
+		}
+		if ("KH".equals(corpsDescDto.getCorpType())){
+			ExcelUtil.export(response, "客户信息", "客户信息", BeanUtil.copy(list, PjCorpsDescExportExcel.class), PjCorpsDescExportExcel.class);
+
+		}else{
+			ExcelUtil.export(response, "供应商信息", "供应商信息", BeanUtil.copy(list, PjCorpsDescGYSExportExcel.class), PjCorpsDescGYSExportExcel.class);
+		}
+	}
+
 }

+ 2 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.java

@@ -63,4 +63,6 @@ public interface CorpsDescMapper extends BaseMapper<PjCorpsDesc> {
 	List<PjCorpsDesc> selectPartsCorpsDescPage(IPage<PjCorpsDesc> page, @Param("CorpsDesc")PjCorpsDesc corpsDescDto);
 
 	List<PjCorpsDesc> selectPartsCorpsStatistics(@Param("CorpsDesc")PjCorpsDesc corpsDescDto);
+
+	List<PjCorpsDesc> selectPartsCorpsDesc(@Param("CorpsDesc") PjCorpsDesc corpsDescDto);
 }

+ 48 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml

@@ -216,4 +216,52 @@
         </if>
         ORDER BY cname ASC
     </select>
+    <select id="selectPartsCorpsDesc" resultType="org.springblade.salesPart.entity.PjCorpsDesc">
+        select
+        *
+        from
+        pjpf_corps_desc
+        where
+        1 = 1
+        <if test="CorpsDesc.id!=null">
+            and id = #{CorpsDesc.id}
+        </if>
+        <if test="CorpsDesc.isDeleted!=null">
+            and is_deleted = #{CorpsDesc.isDeleted}
+        </if>
+        <if test="CorpsDesc.corpType!=null and CorpsDesc.corpType != ''">
+            and corp_type like CONCAT(CONCAT('%', #{CorpsDesc.corpType}), '%')
+        </if>
+        <if test="CorpsDesc.cname!=null and CorpsDesc.cname != ''">
+            and cname like CONCAT(CONCAT('%', #{CorpsDesc.cname}), '%')
+        </if>
+        <if test="CorpsDesc.tel!=null and CorpsDesc.tel != ''">
+            and tel = #{CorpsDesc.tel}
+        </if>
+        <if test="CorpsDesc.tenantId!=null and CorpsDesc.tenantId != ''">
+            and tenant_id = #{CorpsDesc.tenantId}
+        </if>
+        <if test="CorpsDesc.status!=null">
+            and status = #{CorpsDesc.status}
+        </if>
+        <if test="CorpsDesc.enableOrNot != null">
+            and enable_or_not = #{CorpsDesc.enableOrNot}
+        </if>
+        <if test='CorpsDesc.typeList !=null and CorpsDesc.typeList.size>0'>
+            and id in (
+            SELECT
+            DISTINCT
+            corp_id
+            FROM
+            pjpf_corps_type_desc
+            WHERE
+            status = 0
+            AND corp_type_id in
+            <foreach collection="CorpsDesc.typeList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+        ORDER BY cname ASC
+    </select>
 </mapper>

+ 2 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/ICorpsDescService.java

@@ -114,4 +114,6 @@ public interface ICorpsDescService extends IService<PjCorpsDesc> {
     IPage<PjCorpsDesc> selectPartsCorpsDescPage(IPage<PjCorpsDesc> page, PjCorpsDesc corpsDescDto);
 
 	List<PjCorpsDesc> selectPartsCorpsStatistics(PjCorpsDesc corpsDescDto);
+
+	List<PjCorpsDesc> selectPartsCorpsDesc(PjCorpsDesc corpsDescDto);
 }

+ 30 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java

@@ -171,7 +171,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			corpsDesc.setCreateUser(userId);
 			corpsDesc.setSalesCompanyId(Long.valueOf(AuthUtil.getDeptId()));
 			corpsDesc.setSalesCompanyName(sysClient.getDept(Long.valueOf(AuthUtil.getDeptId())).getData().getFullName());
-			corpsDesc.setEnableOrNot(0);
+			corpsDesc.setEnableOrNot(1);
 			baseMapper.insert(corpsDesc);
 		} else {
 			corpsDesc.setTenantId(SecureUtil.getTenantId());
@@ -602,6 +602,35 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 		return baseMapper.selectPartsCorpsStatistics(corpsDescDto);
 	}
 
+	@Override
+	public List<PjCorpsDesc> selectPartsCorpsDesc(PjCorpsDesc corpsDescDto) {
+		//获取客户子类别
+		if (StringUtils.isNotBlank(corpsDescDto.getCorpsTypeId())) {
+			Long corpsTypeId = Long.parseLong(corpsDescDto.getCorpsTypeId());
+			List<Long> corpsTypeIdList = new ArrayList<>();
+			corpsTypeService.selectChildById(corpsTypeId, corpsTypeIdList);
+			corpsTypeIdList.add(corpsTypeId);
+			corpsDescDto.setTypeList(corpsTypeIdList);
+		} else if (StringUtils.isNotBlank(corpsDescDto.getCorpsTypeName())) {
+			LambdaQueryWrapper<PjCorpsType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(PjCorpsType::getCname, corpsDescDto.getCorpsTypeName());
+			lambdaQueryWrapper.eq(PjCorpsType::getIsDeleted, 0);
+			lambdaQueryWrapper.eq(PjCorpsType::getTenantId, SecureUtil.getTenantId());
+			List<PjCorpsType> corpsTypeList = corpsTypeMapper.selectList(lambdaQueryWrapper);
+			if (CollectionUtils.isNotEmpty(corpsTypeList)) {
+				List<Long> corpsTypeIdList = new ArrayList<>();
+				corpsTypeList.stream().forEach(item -> {
+					corpsTypeService.selectChildById(item.getId(), corpsTypeIdList);
+					corpsTypeIdList.add(item.getId());
+				});
+				corpsDescDto.setTypeList(corpsTypeIdList);
+			}
+		}
+		corpsDescDto.setTenantId(AuthUtil.getTenantId());
+		corpsDescDto.setId(corpsDescDto.getId());
+		return baseMapper.selectPartsCorpsDesc(corpsDescDto);
+	}
+
 	/**
 	 * 小程序新增或修改 客户详情
 	 * @param corpsDesc

+ 11 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java

@@ -138,14 +138,20 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 				throw new RuntimeException("品牌名称错误或品牌不存在");
 			}
 		}
-
+		if (ObjectUtils.isNull(goodsDesc.getCnameInt())){
+			goodsDesc.setCnameInt(getCnameInt(goodsDesc.getCname()));
+		}
 		if (goodsDesc.getId() == null) {
 			goodsDesc.setCreateUser(AuthUtil.getUserId());
 			goodsDesc.setCreateTime(new Date());
 			goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			goodsDesc.setTenantId(AuthUtil.getTenantId());
+			String[] deptId = AuthUtil.getDeptId().split(",");
+			if (deptId.length > 0) {
+				goodsDesc.setSalesCompanyId(Long.parseLong(deptId[0]));
+			}
 			goodsDesc.setSalesCompanyName(iSysClient.getDeptName(goodsDesc.getSalesCompanyId()).getData());
-			goodsDesc.setEnableOrNot(0);
+			goodsDesc.setEnableOrNot(1);
 			baseMapper.insert(goodsDesc);
 		} else {
 			goodsDesc.setUpdateUser(AuthUtil.getUserId());
@@ -285,6 +291,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 				goodsDesc.setGoodsTypeId(String.valueOf(goodsType.getId()));
 				goodsDesc.setGoodsTypeName(e.getGoodsTypeName());
 				goodsDesc.setUnit(e.getUnit());
+				goodsDesc.setEnableOrNot(1);
 
 				//获得品牌
 				if (ObjectUtils.isNotNull(e.getBrand())) {
@@ -324,6 +331,8 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 					} else {
 						throw new SecurityException("请输入正确的所属公司");
 					}
+				} else {
+					throw new SecurityException("请输入所属公司");
 				}
 
 				goodsDesc.setCnameInt(e.getCnameInt());

+ 12 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -99,6 +99,7 @@ public class OrderController extends BladeController {
 			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getGenerateTask()), PjOrder::getGenerateTask, order.getGenerateTask())//客户
+			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())//业务员
 			.like(ObjectUtils.isNotEmpty(order.getCustomerName()), PjOrder::getCustomerName, order.getCustomerName())
 			.like(ObjectUtils.isNotEmpty(order.getSrcOrdNo()), PjOrder::getSrcOrdNo, order.getSrcOrdNo())//来源单号
 			.like(ObjectUtils.isNotEmpty(order.getOrdNo()), PjOrder::getOrdNo, order.getOrdNo())//来源单号
@@ -113,13 +114,20 @@ public class OrderController extends BladeController {
 			lambdaQueryWrapper.ge(PjOrder::getDueDate, order.getDueDateList().get(0));
 			lambdaQueryWrapper.le(PjOrder::getDueDate, order.getDueDateList().get(1));
 		}
-		if (order.getCreateTimeList() != null && order.getCreateTimeList().size() > 1) {//创建日期
-			lambdaQueryWrapper.ge(PjOrder::getCreateTime, order.getCreateTimeList().get(0));
-			lambdaQueryWrapper.le(PjOrder::getCreateTime, order.getCreateTimeList().get(1));
+		if (order.getBusinesDateList() != null && order.getBusinesDateList().size() > 1) {//创建日期
+			lambdaQueryWrapper.ge(PjOrder::getBusinesDate, order.getBusinesDateList().get(0));
+			lambdaQueryWrapper.le(PjOrder::getBusinesDate, order.getBusinesDateList().get(1));
 		}
 		lambdaQueryWrapper.apply("(( business_source = '外部销售' AND actual_payment_status = 2 ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))");
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 
+		if (AuthUtil.getUserRole().contains("业务员")) {
+			lambdaQueryWrapper.eq(PjOrder::getSalerId, AuthUtil.getUserId());
+		}else if (AuthUtil.getUserRole().contains("客户")){
+			lambdaQueryWrapper.eq(PjOrder::getCustomerId, AuthUtil.getUserId());
+		}else if (AuthUtil.getUserRole().contains("销售")){
+			lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		String updateUserIds = "";//修改人id拼接
@@ -365,8 +373,7 @@ public class OrderController extends BladeController {
 		return R.data(declare);
 	}
 
-	/**
-	 * 退款审核通过
+	/**退款审核通过
 	 */
 	@PostMapping("/passCheck")
 	@ApiOperationSupport(order = 14)

+ 120 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderStatisticsController.java

@@ -0,0 +1,120 @@
+/*
+ *      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 org.springblade.salesPart.order.controller;
+
+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.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.ObjectUtil;
+import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 配件销售采购表 控制器
+ *
+ * @author BladeX
+ * @since 2023-04-21
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/orderStatistics")
+@Api(value = "首页统计", tags = "首页统计")
+public class OrderStatisticsController extends BladeController {
+
+	private final IOrderService orderService;
+
+	private IUserClient iUserClient;//获取用户信息
+
+	/**
+	 * 业务员统计
+	 */
+	@GetMapping("/salesman")
+	public R<List<PjOrder>> salesman(PjOrder order) {
+		order.setTenantId(AuthUtil.getTenantId());
+		List<PjOrder> pjOrderList = orderService.salesman(order);
+		return R.data(pjOrderList);
+	}
+
+	/**
+	 * 配件销售
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入order")
+	public R<IPage<PjOrder>> list(PjOrder order, Query query) {
+		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrder::getIsDeleted, 0)
+			.eq(PjOrder::getBsType, "XS")
+			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId());
+		if (order.getBusinesDateList() != null && order.getBusinesDateList().size() > 1) {
+			lambdaQueryWrapper.ge(PjOrder::getBusinesDate, order.getBusinesDateList().get(0));
+			lambdaQueryWrapper.le(PjOrder::getBusinesDate, order.getBusinesDateList().get(1));
+		}
+		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
+		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		String createUserIds = "";
+		for (PjOrder items : pages.getRecords()) {
+			if (ObjectUtil.isNotEmpty(items.getSalerId())) {
+				createUserIds = createUserIds + items.getSalerId() + ",";
+			}
+		}
+		//获得创建人信息
+		List<User> createUserList = iUserClient.selectUserIds(createUserIds);
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
+			pages.getRecords().forEach(item -> {
+				if (ObjectUtil.isNotEmpty(createUserList)) {
+					User user = createUserList.stream().anyMatch(e -> e.getId().equals(item.getSalerId())) ? createUserList.stream().filter(e -> e.getId().equals(item.getSalerId())).findFirst().get() : null;
+					if (ObjectUtils.isNotNull(user)) {
+						item.setSalerName(user.getName());
+					}
+				}
+			});
+		}
+
+		return R.data(pages);
+	}
+
+	/**
+	 * 柱状统计
+	 */
+	@GetMapping("/columnar")
+	public R<Map<String,List<BigDecimal>>> columnar(PjOrder order) {
+		Map<String,List<BigDecimal>> map = orderService.columnar(order);
+		return R.data(map);
+	}
+
+}

+ 6 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java

@@ -23,7 +23,10 @@ import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.vo.OrderStatistics;
 import org.springblade.salesPart.vo.OrderVO;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 配件销售采购表 Mapper 接口
@@ -50,4 +53,7 @@ public interface OrderMapper extends BaseMapper<PjOrder> {
 	 */
 	List<OrderStatistics> collectionStatistics(IPage page, @Param("order") OrderVO order);
 
+	List<PjOrder> salesman(@Param("order") PjOrder order);
+
+	Map<String, BigDecimal> columnar(LocalDate firstDay, LocalDate lastDay,String tenantId);
 }

+ 46 - 8
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml

@@ -40,6 +40,7 @@
         <result column="sales_company_id" property="salesCompanyId"/>
         <result column="sales_company_name" property="salesCompanyName"/>
         <result column="receivable_type" property="receivableType"/>
+        <result column="busines_date" property="businesDate"/>
     </resultMap>
 
 
@@ -79,11 +80,11 @@
         <if test="order.salesCompanyId!=null">
             and po.sales_company_id = #{order.salesCompanyId}
         </if>
-        <if test="order.createTimeList != null and order.createTimeList[0] != null and order.createTimeList[0]!= ''">
-            and po.create_time &gt;= #{order.createTimeList[0]}
+        <if test="order.businesDateList != null and order.businesDateList[0] != null and order.businesDateList[0]!= ''">
+            and po.busines_date &gt;= #{order.businesDateList[0]}
         </if>
-        <if test="order.createTimeList != null and order.createTimeList[1] != null and order.createTimeList[1]!= ''">
-            and po.create_time &lt;= #{order.createTimeList[1]}
+        <if test="order.createTimeList != null and order.businesDateList[1] != null and order.businesDateList[1]!= ''">
+            and po.busines_date &lt;= #{order.businesDateList[1]}
         </if>
         GROUP BY po.customer_id) as po1 on pcd.id = po1.customer_id
         LEFT JOIN (SELECT
@@ -101,11 +102,11 @@
         <if test="order.salesCompanyId!=null">
             and po.sales_company_id = #{order.salesCompanyId}
         </if>
-        <if test="order.createTimeList != null and order.createTimeList[0] != null and order.createTimeList[0]!= ''">
-            and po.create_time &gt;= #{order.createTimeList[0]}
+        <if test="order.businesDateList != null and order.businesDateList[0] != null and order.businesDateList[0]!= ''">
+            and po.busines_date &gt;= #{order.businesDateList[0]}
         </if>
-        <if test="order.createTimeList != null and order.createTimeList[1] != null and order.createTimeList[1]!= ''">
-            and po.create_time &lt;= #{order.createTimeList[1]}
+        <if test="order.businesDateList != null and order.businesDateList[1] != null and order.businesDateList[1]!= ''">
+            and po.busines_date &lt;= #{order.businesDateList[1]}
         </if>
         GROUP BY po.customer_id) as po2 on pcd.id = po2.customer_id
         where pcd.corp_type = 'KH'
@@ -119,5 +120,42 @@
             and pcd.salesman_id = #{order.salerId}
         </if>
     </select>
+    <select id="salesman" resultType="org.springblade.salesPart.entity.PjOrder">
+        SELECT
+            bu.account as salerName,
+            SUM(po.goods_total_num) as goodsTotalNum,
+            SUM(po.total_money) as totalMoney
+        FROM
+            pjpf_order po
+                LEFT JOIN blade_user bu ON po.saler_id = bu.id
+        WHERE
+            po.tenant_id = = #{order.tenantId}
+          AND po.is_deleted = 0
+        <if test="order.businesDateList != null and order.businesDateList[0] != null and order.businesDateList[0]!= ''">
+            and po.busines_date &gt;= #{order.businesDateList[0]}
+        </if>
+        <if test="order.businesDateList != null and order.businesDateList[1] != null and order.businesDateList[1]!= ''">
+            and po.busines_date &lt;= #{order.businesDateList[1]}
+        </if>
+        GROUP BY
+            po.saler_id
+    </select>
+    <select id="columnar" resultType="java.util.Map">
+        SELECT
+        IF(SUM( po.goods_total_num ),SUM( po.goods_total_num ),0) AS goodsTotalNum,
+        IF(SUM( po.total_money ),SUM( po.total_money ),0.00) AS totalMoney
+        FROM
+        pjpf_order po
+        LEFT JOIN blade_user bu ON po.saler_id = bu.id
+        WHERE
+        po.tenant_id = #{tenantId}
+        AND po.is_deleted = 0
+        <if test="firstDay != null">
+            and po.busines_date &gt;= #{firstDay}
+        </if>
+        <if test="lastDay != null">
+            and po.busines_date &lt;= #{lastDay}
+        </if>
+    </select>
 
 </mapper>

+ 8 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java

@@ -23,6 +23,10 @@ import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.vo.OrderStatistics;
 import org.springblade.salesPart.vo.OrderVO;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 配件销售采购表 服务类
  *
@@ -136,4 +140,8 @@ public interface IOrderService extends IService<PjOrder> {
 	 * @return
 	 */
 	IPage<OrderStatistics> collectionStatistics(IPage<OrderStatistics> page, OrderVO order);
+
+	List<PjOrder> salesman(PjOrder order);
+
+	Map<String, List<BigDecimal>> columnar(PjOrder order);
 }

+ 74 - 7
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -63,6 +63,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.math.BigDecimal;
 import java.math.MathContext;
+import java.time.LocalDate;
+import java.time.YearMonth;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -185,6 +187,41 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		return page.setRecords(baseMapper.collectionStatistics(page, order));
 	}
 
+	@Override
+	public List<PjOrder> salesman(PjOrder order) {
+		return baseMapper.salesman(order);
+	}
+
+	@Override
+	public Map<String, List<BigDecimal>> columnar(PjOrder order) {
+		Map<String, List<BigDecimal>> map = new HashMap<>();
+		List<BigDecimal> number = new ArrayList<>();
+		List<BigDecimal> amount = new ArrayList<>();
+		// 获取当前年份
+		int year = LocalDate.now().getYear();
+		if (ObjectUtils.isNotNull(order)) {
+			year = order.getYear();
+		} else {
+			year = LocalDate.now().getYear();
+		}
+
+		// 遍历每个月份
+		for (int month = 1; month <= 12; month++) {
+			// 构建对应年份和月份的日期
+			YearMonth yearMonth = YearMonth.of(year, month);
+
+			// 获取该月份的第一天和最后一天
+			LocalDate firstDay = yearMonth.atDay(1);
+			LocalDate lastDay = yearMonth.atEndOfMonth();
+			Map<String, BigDecimal> sum = baseMapper.columnar(firstDay, lastDay,AuthUtil.getTenantId());
+			number.add(sum.get("goodsTotalNum"));
+			amount.add(sum.get("totalMoney"));
+		}
+		map.put("number", number);
+		map.put("amount", amount);
+		return map;
+	}
+
 	/**
 	 * 保存订单信息
 	 *
@@ -229,8 +266,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				order.setBusinessSource(OrderTypeEnum.WEB.getType());
 
 				//根据客户账期计算应结日期
-				if (ObjectUtil.isNotEmpty(corpsDesc.getAccountPeriod())) {
-					Date now = new Date(); // 获取当前时间
+				if (ObjectUtil.isNotEmpty(corpsDesc.getAccountPeriod()) && ObjectUtils.isNotNull(order.getBusinesDate())) {
+					Date now = order.getBusinesDate();
 					long sevenDays = corpsDesc.getAccountPeriod() * 24 * 60 * 60 * 1000L;
 					Date afterSevenDays = new Date(now.getTime() + sevenDays);
 					order.setDueDate(afterSevenDays);
@@ -246,6 +283,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 			// 保存订单明细
 			if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
+				long goodsId = order.getOrderItemsList().stream().map(PjOrderItems::getGoodsId).distinct().count();
+				if (goodsId < order.getOrderItemsList().size()) {
+					throw new RuntimeException("明细中存在重复数据,保存失败");
+				}
 				//所属公司
 				R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
 				if (ObjectUtil.isNotEmpty(dept)) {
@@ -452,6 +493,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		BeanUtil.copyProperties(pjOrder, pjShip);
 		pjShip.setId(null);
 //		pjShip.setStockClerkName();
+		if (ObjectUtils.isNotNull(pjOrder.getStorageId())) {
+			//仓库名称
+			pjShip.setStorageName(storageDescMapper.selectById(pjOrder.getStorageId()).getCname());
+		}
+		pjShip.setBusinesDate(new Date());
 		pjShip.setBillno((String) billNo.getData());
 		pjShip.setOrdNo(pjOrder.getOrdNo());
 		pjShip.setOrdId(pjOrder.getId());
@@ -472,7 +518,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		//修改销售状态为待发货
 		pjOrder.setStatus(OrderTypeEnum.XSDFH.getType());
 		pjOrder.setGenerateTask(OrderTypeEnum.SCRW.getType());
-		pjOrder.setActualPaymentStatus(1);
+		if ("内部销售".equals(pjOrder.getBusinessSource())) {
+			pjOrder.setActualPaymentStatus(1);
+		}
 		baseMapper.updateById(pjOrder);
 		if ("挂账".equals(pjOrder.getReceivableType())) {
 			PjCorpsDesc pjCorpsDesc = corpsDescMapper.selectById(pjOrder.getCustomerId());
@@ -507,7 +555,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					if (ObjectUtil.isNotEmpty(launchList)) {
 						launchList.forEach(productLaunch -> {
 							productLaunch.setInventory(productLaunch.getInventory().subtract(e.getGoodsNum()));
-							productLaunchMapper.updateById(productLaunch);
+							productLaunch.setVersion(productLaunch.getVersion());
+							int count = productLaunchMapper.updateById(productLaunch);
+							if (count == 0) {
+								throw new RuntimeException(productLaunch.getCname() + "该产品上架库存正在操作,请稍后刷新在进行操作!");
+							}
 						});
 					}
 				});
@@ -546,7 +598,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			PjCorpsDesc pjCorpsDesc = corpsDescMapper.selectById(pjOrder.getCustomerId());
 			if (ObjectUtils.isNotNull(pjCorpsDesc)) {
 				if (ObjectUtils.isNotNull(pjCorpsDesc.getUseCreditLimit())) {
-						pjCorpsDesc.setUseCreditLimit(pjCorpsDesc.getUseCreditLimit().subtract(pjOrder.getTotalMoney()));
+					pjCorpsDesc.setUseCreditLimit(pjCorpsDesc.getUseCreditLimit().subtract(pjOrder.getTotalMoney()));
 				} else {
 					pjCorpsDesc.setUseCreditLimit(new BigDecimal("0.00"));
 				}
@@ -572,7 +624,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					if (ObjectUtil.isNotEmpty(launchList)) {
 						launchList.forEach(productLaunch -> {
 							productLaunch.setInventory(productLaunch.getInventory().add(e.getGoodsNum()));
-							productLaunchMapper.updateById(productLaunch);
+							productLaunch.setVersion(productLaunch.getVersion());
+							int count = productLaunchMapper.updateById(productLaunch);
+							if (count == 0) {
+								throw new RuntimeException(productLaunch.getCname() + "该产品上架库存正在操作,请稍后刷新在进行操作!");
+							}
 						});
 					}
 				});
@@ -602,6 +658,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		}
 		BeanUtil.copyProperties(pjOrder, pjShip);
 		pjShip.setId(null);
+		if (ObjectUtils.isNotNull(pjOrder.getStorageId())) {
+			//仓库名称
+			pjShip.setStorageName(storageDescMapper.selectById(pjOrder.getStorageId()).getCname());
+		}
+		pjShip.setBusinesDate(new Date());
 		pjShip.setBillno((String) billNo.getData());
 		pjShip.setOrdNo(pjOrder.getOrdNo());
 		pjShip.setOrdId(pjOrder.getId());
@@ -616,7 +677,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		shipMapper.insert(pjShip);
 
 		//修改采购状态
-		pjOrder.setStatus(OrderTypeEnum.XSDFH.getType());
+		pjOrder.setStatus(OrderTypeEnum.GOODSRECEIVED.getType());
 		pjOrder.setGenerateTask(OrderTypeEnum.SCRW.getType());
 		baseMapper.updateById(pjOrder);
 
@@ -677,6 +738,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				throw new SecurityException("开启审批失败:未查询到审批信息");
 			}
 
+			auditProecessDTO.setOrderQuantity(declare.getGoodsTotalNum());
+			auditProecessDTO.setAmount(declare.getTotalMoney());
 			// 绑定审核类型
 			auditProecessDTO.setCheckType("PJTK");//代理订单
 			// 追加跳转路由url
@@ -900,6 +963,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					}
 				}
 			}
+			order.setActualPaymentStatus(4);
 		} else {
 			order.setStatus("待确认");
 		}
@@ -999,6 +1063,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					}
 				} else if ("SUCCESS".equalsIgnoreCase(returnCode)) {
 					order.setPaymentAmountTl(new BigDecimal("0.00"));
+					order.setActualPaymentStatus(4);
 					baseMapper.updateById(order);
 					return R.data("退款成功");
 				}
@@ -1060,6 +1125,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				throw new SecurityException("开启审批失败:未查询到审批信息");
 			}
 
+			auditProecessDTO.setOrderQuantity(declare.getGoodsTotalNum());
+			auditProecessDTO.setAmount(declare.getTotalMoney());
 			// 绑定审核类型
 			auditProecessDTO.setCheckType("PJCG");//代理订单
 			// 追加跳转路由url

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.xml

@@ -23,6 +23,7 @@
         <result column="price_two" property="priceTwo"/>
         <result column="price_three" property="priceThree"/>
         <result column="price_four" property="priceFour"/>
+        <result column="version" property="version"/>
     </resultMap>
 
 

+ 10 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java

@@ -315,6 +315,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				productLaunch.setUpdateUser(AuthUtil.getUserId());
 				productLaunch.setUpdateTime(new Date());
 				productLaunch.setSharedCompany(one.getSharedCompany());
+				productLaunch.setVersion(one.getVersion());
 //				baseMapper.updateById(productLaunch);
 			}
 			//获得共享公司
@@ -350,6 +351,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 						launch.setSharedCompany(null);
 						launch.setSalesCompanyId(item.getId());
 						launch.setSalesCompanyName(item.getFullName());
+						launch.setVersion(0);
 //						baseMapper.insert(launch);
 						launchList.add(launch);
 					} else {
@@ -368,6 +370,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 						selOne.setWhetherShare(0);
 						selOne.setUpAndDownShelves(0);
 						selOne.setSharedCompany(null);
+						selOne.setVersion(selOne.getVersion());
 //						baseMapper.updateById(selOne);
 						launchList.add(selOne);
 					}
@@ -386,6 +389,11 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				if (ObjectUtil.isNotEmpty(list)) {
 					list.forEach(i -> {
 						i.setWhetherShare(1);
+						i.setPriceOne(productLaunch.getPriceOne());
+						i.setPriceTwo(productLaunch.getPriceTwo());
+						i.setPriceThree(productLaunch.getPriceThree());
+						i.setPriceFour(productLaunch.getPriceFour());
+						i.setVersion(i.getVersion());
 						pjProductLaunchList1.add(i);
 //						baseMapper.updateById(i);
 					});
@@ -393,9 +401,10 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 			}
 			pjProductLaunchList.add(productLaunch);
 		});
-		this.saveOrUpdateBatch(pjProductLaunchList);
 		this.saveOrUpdateBatch(launchList);
 		this.updateBatchById(pjProductLaunchList1);
+		this.saveOrUpdateBatch(pjProductLaunchList);
+
 		return R.success("ok");
 	}
 

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/controller/SettlementController.java

@@ -96,6 +96,7 @@ public class SettlementController extends BladeController {
 			lambdaQueryWrapper.ge(PjSettlement::getSettlementDate, settlement.getSettlementDateList().get(0));
 			lambdaQueryWrapper.le(PjSettlement::getSettlementDate, settlement.getSettlementDateList().get(1));
 		}
+		lambdaQueryWrapper.orderByDesc(PjSettlement::getCreateTime);
 		IPage<PjSettlement> pages = settlementService.page(Condition.getPage(query), lambdaQueryWrapper);
 		for (PjSettlement item : pages.getRecords()) {
 			R<Dept> res = sysClient.getDept(item.getSalesCompanyId());

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/mapper/SettlementItemsMapper.xml

@@ -22,6 +22,7 @@
         <result column="src_bill_no" property="srcBillNo"/>
         <result column="sales_company_id" property="salesCompanyId"/>
         <result column="sales_company_name" property="salesCompanyName"/>
+        <result column="busines_date" property="businesDate"/>
     </resultMap>
 
 

+ 10 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java

@@ -34,6 +34,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.enums.OrderTypeEnum;
@@ -110,12 +111,17 @@ public class ShipController extends BladeController {
 			//单据类型
 			.apply(ObjectUtil.isNotEmpty(ship.getBizTypeName()),"find_in_set(biz_type_name,'" + ship.getBizTypeName() + "')");
 
-		if (ship.getCreateTimeList() != null && ship.getCreateTimeList().size() > 1) {//业务日期
-			lambdaQueryWrapper.ge(PjShip::getCreateTime, ship.getCreateTimeList().get(0));
-			lambdaQueryWrapper.le(PjShip::getCreateTime, ship.getCreateTimeList().get(1));
+		if (ship.getBusinesDateList() != null && ship.getBusinesDateList().size() > 1) {//业务日期
+			lambdaQueryWrapper.ge(PjShip::getBusinesDate, ship.getBusinesDateList().get(0));
+			lambdaQueryWrapper.le(PjShip::getBusinesDate, ship.getBusinesDateList().get(1));
 		}
 		lambdaQueryWrapper.orderByDesc(PjShip::getCreateTime);
 
+		if (AuthUtil.getUserRole().contains("库管")) {
+			lambdaQueryWrapper.eq(PjShip::getStockClerkId, AuthUtil.getUserId());
+		}else if (AuthUtil.getUserRole().contains("客户")){
+			lambdaQueryWrapper.eq(PjShip::getCustomerId, AuthUtil.getUserId());
+		}
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		String updateUserIds = "";//修改人id拼接
@@ -312,7 +318,7 @@ public class ShipController extends BladeController {
 	@PostMapping("/import-item")
 	@ApiOperationSupport(order = 13)
 	@ApiOperation(value = "入库明细导入", notes = "传入excel")
-	public R<List<PjShipItems>> importItem(@RequestParam("file") MultipartFile file) {
+	public R<List<PjOrderItems>> importItem(@RequestParam("file") MultipartFile file) {
 		//导入数据
 		List<ShipItemImportExcel> excelList = ExcelUtil.read(file, ShipItemImportExcel.class);
 		if (CollectionUtils.isEmpty(excelList)) {

+ 6 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipMapper.xml

@@ -30,6 +30,7 @@
         <result column="sales_company_id" property="salesCompanyId"/>
         <result column="sales_company_name" property="salesCompanyName"/>
         <result column="task_id" property="taskId"/>
+        <result column="busines_date" property="businesDate"/>
     </resultMap>
     <delete id="deleteByTaskId">
         update pjpf_ship set is_deleted = 1 where task_id = #{taskId}
@@ -41,6 +42,7 @@
     </select>
     <select id="stockDataDetails" resultType="org.springblade.salesPart.excel.PjShipStockDetails">
         SELECT
+            ps.id as id,
             ps.billno AS billno,
             ps.customer_name AS corpName,
             ps.status_name,
@@ -94,11 +96,11 @@
         <if test="order.statusName!=null and order.statusName!=''">
             and ps.status_name = #{order.statusName}
         </if>
-        <if test="order.createTimeList != null and order.createTimeList[0] != null and order.createTimeList[0]!= ''">
-            and po.update_time &gt;= #{order.createTimeList[0]}
+        <if test="order.businesDateList != null and order.businesDateList[0] != null and order.businesDateList[0]!= ''">
+            and po.busines_date &gt;= #{order.businesDateList[0]}
         </if>
-        <if test="order.createTimeList != null and order.createTimeList[1] != null and order.createTimeList[1]!= ''">
-            and po.update_time &lt;= #{order.createTimeList[1]}
+        <if test="order.businesDateList != null and order.businesDateList[1] != null and order.businesDateList[1]!= ''">
+            and po.busines_date &lt;= #{order.businesDateList[1]}
         </if>
         GROUP BY
             ps.billno

+ 2 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/IShipService.java

@@ -18,6 +18,7 @@ package org.springblade.salesPart.ship.service;
 
 import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.excel.PjShipStockDetails;
@@ -105,7 +106,7 @@ public interface IShipService extends IService<PjShip> {
 	/**
 	 * 入库明细导入
 	 */
-	R<List<PjShipItems>> importItem(List<ShipItemImportExcel> excelList);
+	R<List<PjOrderItems>> importItem(List<ShipItemImportExcel> excelList);
 
 	/**
 	 * 退货入库完成

+ 47 - 6
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -205,6 +205,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			ship.setNumberRows(ship.getShipItemsList().size());
 
 			ship.setGoodsTotalNum(ship.getShipItemsList().stream().filter(e -> e.getGoodsNum() != null).map(PjShipItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+			ship.setSendTotalNum(ship.getShipItemsList().stream().filter(e -> e.getSendNum() != null).map(PjShipItems::getSendNum).reduce(BigDecimal.ZERO, BigDecimal::add));
 		}
 		baseMapper.updateById(ship);
 
@@ -405,6 +406,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				} else {
 					rwShip.setSendTotalNum(number);
 				}
+				if (rwShip.getSendTotalNum().compareTo(rwShip.getGoodsTotalNum()) == 0){
+					rwShip.setStatusName("已完成");
+				}else{
+					rwShip.setStatusName("未完成");
+				}
 				rwShip.setUpdateUser(AuthUtil.getUserId());
 				rwShip.setUpdateTime(new Date());
 				baseMapper.updateById(rwShip);
@@ -507,6 +513,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			PjShip rwShip = baseMapper.selectById(ship.getTaskId());
 			if (ObjectUtils.isNotNull(rwShip)) {
 				rwShip.setSendTotalNum(rwShip.getSendTotalNum().subtract(number));
+				if (rwShip.getSendTotalNum().compareTo(rwShip.getGoodsTotalNum()) == 0){
+					rwShip.setStatusName("已完成");
+				}else{
+					rwShip.setStatusName("未完成");
+				}
 				rwShip.setUpdateUser(AuthUtil.getUserId());
 				rwShip.setUpdateTime(new Date());
 				baseMapper.updateById(rwShip);
@@ -584,7 +595,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					shipItems.setCreateTime(new Date());
 					shipItems.setCreateUser(AuthUtil.getUserId());
 					shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-					shipItems.setSendNum(e.getGoodsNum());
+					shipItems.setSendNum(e.getGoodsNum().subtract(e.getSendNum()));
 					shipItemsList.add(shipItems);
 				});
 				shipItemsService.saveBatch(shipItemsList);
@@ -801,6 +812,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			} else {
 				rwShip.setSendTotalNum(number);
 			}
+			if (rwShip.getSendTotalNum().compareTo(rwShip.getGoodsTotalNum()) == 0){
+				rwShip.setStatusName("已完成");
+			}else{
+				rwShip.setStatusName("未完成");
+			}
 			rwShip.setUpdateUser(AuthUtil.getUserId());
 			rwShip.setUpdateTime(new Date());
 			baseMapper.updateById(rwShip);
@@ -836,11 +852,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
-	public R<List<PjShipItems>> importItem(List<ShipItemImportExcel> excelList) {
+	public R<List<PjOrderItems>> importItem(List<ShipItemImportExcel> excelList) {
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("导入数据不能为空");
 		}
-		List<PjShipItems> list = new ArrayList<>();
+		List<PjOrderItems> list = new ArrayList<>();
 		for (int i = 0; i < excelList.size(); i++) {
 			//判断必填项是否为空
 			ShipItemImportExcel itemExcel = excelList.get(i);
@@ -854,7 +870,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new SecurityException("第" + (i + 1) + "行,数量为空");
 			}
 
-			PjShipItems item = new PjShipItems();
+			PjOrderItems item = new PjOrderItems();
 			BeanUtil.copy(itemExcel, item);
 
 			//查询商品信息
@@ -1033,9 +1049,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R revokeWarehousing(PjShip ship) {
 		// 保存订单明细
+		BigDecimal number = new BigDecimal("0.00");
 		if (CollectionUtils.isNotEmpty(ship.getShipItemsList())) {
 			List<PjStockDesc> pjStockDescArrayList = new ArrayList<>();
-			ship.getShipItemsList().forEach(item -> {
+			for(PjShipItems item :ship.getShipItemsList()){
+				number = number.add(item.getSendNum());
 				//获得商品
 				PjGoodsDesc goodsDesc = goodsDescMapper.selectById(item.getGoodsId());
 				if (ObjectUtil.isEmpty(goodsDesc)) {
@@ -1076,9 +1094,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					}
 					pjStockDescArrayList.add(stockOne);
 				}
-			});
+			};
 //			iStockDescService.updateBatchById(pjStockDescArrayList);
 			List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
+			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			ship.getShipItemsList().forEach(item -> {
 				/** ----------------------修改上架库存---------------------- */
 
@@ -1090,6 +1109,14 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					.eq(PjStockDesc::getGoodsId, item.getGoodsId());
 				List<PjStockDesc> stockDescList = iStockDescService.list(lambdaQueryWrapperList);
 
+				PjOrderItems orderItems = orderItemsService.getById(item.getSrcItemId());
+				if (ObjectUtil.isNotEmpty(orderItems)) {
+					orderItems.setSendNum(orderItems.getSendNum().subtract(item.getSendNum()));
+					pjOrderItemsList.add(orderItems);
+				} else {
+					throw new RuntimeException("数据异常请联系管理员");
+				}
+
 				//库存总数量
 				BigDecimal balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 
@@ -1109,6 +1136,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 				/** ----------------------修改上架库存---------------------- */
 			});
+			orderItemsService.updateBatchById(pjOrderItemsList);
 			productLaunchService.updateBatchById(pjProductLaunchList);
 			ship.setShipItemsList(ship.getShipItemsList());
 			ship.setNumberRows(ship.getShipItemsList().size());
@@ -1118,6 +1146,19 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 		ship.setStatusName(OrderTypeEnum.REVOKE.getType());
 		baseMapper.updateById(ship);
+		//修改任务发货数量
+		PjShip rwShip = baseMapper.selectById(ship.getTaskId());
+		if (ObjectUtils.isNotNull(rwShip)) {
+			rwShip.setSendTotalNum(rwShip.getSendTotalNum().subtract(number));
+			if (rwShip.getSendTotalNum().compareTo(rwShip.getGoodsTotalNum()) == 0){
+				rwShip.setStatusName("已完成");
+			}else{
+				rwShip.setStatusName("未完成");
+			}
+			rwShip.setUpdateUser(AuthUtil.getUserId());
+			rwShip.setUpdateTime(new Date());
+			baseMapper.updateById(rwShip);
+		}
 		PjOrder order = orderMapper.selectById(ship.getOrdId());
 		if (ObjectUtil.isNotEmpty(order)) {
 			order.setStatus(OrderTypeEnum.GOODSRECEIVED.getType());

+ 16 - 40
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java

@@ -23,7 +23,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
-import org.springblade.client.feign.IMessageClient;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -41,7 +40,8 @@ import org.springblade.salesPart.shoppingCart.mapper.ShoppingCartMapper;
 import org.springblade.salesPart.shoppingCart.service.IShoppingCartService;
 import org.springblade.salesPart.vo.ShoppingCartVO;
 import org.springblade.system.feign.ISysClient;
-import org.springblade.system.user.feign.IUserClient;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserSearchClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -73,8 +73,8 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 	private final ProductLaunchMapper productLaunchMapper;
 	private final ISysClient sysClient;
 	private final PayService payService;
-	private IUserClient userClient;//获取用户信息
-	private final IMessageClient messageClient;//消息
+	private IUserSearchClient userSearchClient;
+
 
 	/**
 	 * 保存修改购物车信息
@@ -175,6 +175,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 					} else {
 						order.setOrdNo(SrcOrdNo.getData() + "-" + i);
 					}
+					order.setBusinesDate(new Date());
 					order.setSrcOrdNo((String) billNo.getData());
 					order.setCreateUser(AuthUtil.getUserId());
 
@@ -204,6 +205,16 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 					order.setXcxStatus(OrderTypeEnum.XSDFH.getType());
 					order.setCustomerId(finalCorpsDesc.getId());
 					order.setCustomerName(finalCorpsDesc.getCname());
+					if (ObjectUtils.isNotNull(finalCorpsDesc.getSalesmanId())) {
+						order.setSalerId(finalCorpsDesc.getSalesmanId());
+						order.setSalerName(finalCorpsDesc.getSalesmanName());
+					} else {
+						R<List<User>> res = userSearchClient.getWarehouseKeeper("业务员", AuthUtil.getDeptId());
+						if (res.isSuccess() && ObjectUtils.isNotNull(res.getData()) && res.getData().size() > 0) {
+							order.setSalerId(res.getData().get(0).getId());
+							order.setSalerName(res.getData().get(0).getAccount());
+						}
+					}
 					order.setSalesCompanyId(deptId);
 					order.setSalesCompanyName(sysClient.getDeptName(deptId).getData());
 					order.setRecAddress(address);
@@ -247,46 +258,11 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 							if (ObjectUtils.isNotNull(productLaunch)) {
 								pjProductLaunchList.add(productLaunch);
 							}
-							/*//修改上架管理库存
-							PjProductLaunch productLaunch = productLaunchMapper.selectById(e.getProductLaunchId());
-							if (ObjectUtil.isNotEmpty(productLaunch)) {
-								if (ObjectUtil.isNotEmpty(e.getGoodsNum())) {
-									if (e.getGoodsNum().compareTo(BigDecimal.ZERO) > 0) {
-										productLaunch.setInventory(productLaunch.getInventory().subtract(e.getGoodsNum()));
-										productLaunchMapper.updateById(productLaunch);
-									}
-								} else {
-									e.setGoodsNum(BigDecimal.ZERO);
-								}
-							}
-
-							//修改共享仓的上架管理库存
-							LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
-							queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
-								.eq(PjProductLaunch::getIsDeleted, 0)
-								.eq(PjProductLaunch::getGoodsId, e.getGoodsId());
-
-							if (productLaunch.getBillType() == 0) {
-								queryWrapper.eq(PjProductLaunch::getSourceCompanyId, e.getSharedCompanyId())
-									.eq(PjProductLaunch::getBillType, 1);
-							} else {
-								queryWrapper.eq(PjProductLaunch::getSalesCompanyId, e.getSharedCompanyId())
-									.eq(PjProductLaunch::getBillType, 0);
-							}
-
-							List<PjProductLaunch> launchList = productLaunchMapper.selectList(queryWrapper);
-
-							if (ObjectUtil.isNotEmpty(launchList)) {
-								launchList.forEach(launch -> {
-									launch.setInventory(launch.getInventory().subtract(e.getGoodsNum()));
-									productLaunchMapper.updateById(launch);
-								});
-							}*/
 						});
 						List<Integer> billType = pjProductLaunchList.stream().map(PjProductLaunch::getBillType).distinct().collect(Collectors.toList());
 						if (ObjectUtils.isNotNull(billType) && billType.size() > 1) {
 							throw new RuntimeException("请选择相同仓库的轮胎");
-						}else{
+						} else {
 							order.setBillType(billType.get(0));
 						}
 						BigDecimal totalMoney = BigDecimal.ZERO;

+ 3 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -210,6 +210,9 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 			stockGoods.setEnRouteQuantity(BigDecimal.ZERO);//在途数量
 			stockGoods.setTradeType("GN");
 			stockGoods.setTenantId(SecureUtil.getTenantId());
+			if ("681169".equals(AuthUtil.getTenantId())){
+				stockGoods.setWarehouseId(1510440001509326849L);
+			}
 			//获取商品id
 			R<GoodsDesc> goodsDesc = goodsDescClient.GoodsByCode(datum.getCode());
 			if (goodsDesc.isSuccess() && goodsDesc.getData() != null) {