Sfoglia il codice sorgente

1.禅道bug-3323-销售订单和出库工单的配送方式、货运公司货运单号未联动
2.禅道bug-3330-同一个仓库下库区名要判重
3.同一个经销商下仓库名要判断是否重复
4.禅道bug-3307-部分明细信息删除,未点击保存返回列表问题
5.禅道bug-3337- 首次打开上架管理模块,左侧品牌等待好久才显示

纪新园 2 mesi fa
parent
commit
018f414ff8
12 ha cambiato i file con 259 aggiunte e 178 eliminazioni
  1. 5 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/excel/PjShipStockDetails.java
  2. 40 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/excel/launchExportExcel.java
  3. 140 140
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/entity/BladeImageStoreApply.java
  4. 1 2
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/storage/entity/PjStorageDesc.java
  5. 5 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/storage/entity/Warehouse.java
  6. 0 8
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/goods/controller/BrandDescController.java
  7. 4 3
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/order/controller/OrderItemsController.java
  8. 4 1
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/ship/mapper/ShipMapper.xml
  9. 27 23
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/ship/service/impl/ShipServiceImpl.java
  10. 2 1
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/stock/controller/TireStockDescController.java
  11. 14 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/storage/service/impl/StorageDescServiceImpl.java
  12. 17 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/storage/service/impl/WarehouseServiceImpl.java

+ 5 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/excel/PjShipStockDetails.java

@@ -119,6 +119,11 @@ public class PjShipStockDetails implements Serializable {
 	private Long stockId;
 
 	/**
+	 * 库区id
+	 */
+	private Long reservoirAreaId;
+
+	/**
 	 * 调入仓库id
 	 */
 	private Long callInStorageId;

+ 40 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/excel/launchExportExcel.java

@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
 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 io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -48,6 +49,45 @@ public class launchExportExcel implements Serializable {
 	@ExcelProperty(value = "花纹")
 	private String brandItem;
 
+	/**
+	 * 售价1
+	 */
+	@ExcelProperty(value = "售价1")
+	private BigDecimal priceOne;
+	/**
+	 * 售价2
+	 */
+	@ExcelProperty(value = "售价2")
+	private BigDecimal priceTwo;
+	/**
+	 * 售价3
+	 */
+	@ExcelProperty(value = "售价3")
+	private BigDecimal priceThree;
+	/**
+	 * 售价4
+	 */
+	@ExcelProperty(value = "售价4")
+	private BigDecimal priceFour;
+
+	/**
+	 * 防爆(0否,1是)
+	 */
+	@ExcelProperty(value = "防爆(0否,1是)")
+	private Integer explosionProof;
+
+	/**
+	 * 静音棉
+	 */
+	@ExcelProperty(value = "静音棉(0否,1是)")
+	private String originalFactory;
+
+	/**
+	 * 自修补
+	 */
+	@ExcelProperty(value = "自修补(0否,1是)")
+	private String selfRecovery;
+
 
 
 	/**

+ 140 - 140
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/entity/BladeImageStoreApply.java

@@ -16,17 +16,17 @@
  */
 package com.gubersail.dealer.admin.api.imageStore.entity;
 
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 /**
  * 形象店申请主表实体类
@@ -42,157 +42,157 @@ public class BladeImageStoreApply implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	* 主键ID(系统继承)
-	*/
-		@ApiModelProperty(value = "主键ID(系统继承)")
-		@TableId(value = "id", type = IdType.AUTO)
+	 * 主键ID(系统继承)
+	 */
+	@ApiModelProperty(value = "主键ID(系统继承)")
+	@TableId(value = "id", type = IdType.AUTO)
 	private Long id;
 	/**
-	* 申请单号(业务唯一)
-	*/
-		@ApiModelProperty(value = "申请单号(业务唯一)")
-		private String applyNo;
+	 * 申请单号(业务唯一)
+	 */
+	@ApiModelProperty(value = "申请单号(业务唯一)")
+	private String applyNo;
 	/**
-	* 申请方类型 1经销商 2门店
-	*/
-		@ApiModelProperty(value = "申请方类型 1经销商 2门店")
-		private Integer applicantType;
+	 * 申请方类型 1经销商 2门店
+	 */
+	@ApiModelProperty(value = "申请方类型 1经销商 2门店")
+	private Integer applicantType;
 	/**
-	* 申请方客户ID
-	*/
-		@ApiModelProperty(value = "申请方客户ID")
-		@TableField("CUSTOMER_ID")
+	 * 申请方客户ID
+	 */
+	@ApiModelProperty(value = "申请方客户ID")
+	@TableField("CUSTOMER_ID")
 	private Long customerId;
 	/**
-	* 客户编码
-	*/
-		@ApiModelProperty(value = "客户编码")
-		@TableField("CUSTOMER_CODE")
+	 * 客户编码
+	 */
+	@ApiModelProperty(value = "客户编码")
+	@TableField("CUSTOMER_CODE")
 	private String customerCode;
 	/**
-	* 客户名称
-	*/
-		@ApiModelProperty(value = "客户名称")
-		@TableField("CUSTOMER_NAME")
+	 * 客户名称
+	 */
+	@ApiModelProperty(value = "客户名称")
+	@TableField("CUSTOMER_NAME")
 	private String customerName;
 	/**
-	* 联系人姓名
-	*/
-		@ApiModelProperty(value = "联系人姓名")
-		private String contactName;
+	 * 联系人姓名
+	 */
+	@ApiModelProperty(value = "联系人姓名")
+	private String contactName;
 	/**
-	* 联系电话
-	*/
-		@ApiModelProperty(value = "联系电话")
-		private String contactPhone;
+	 * 联系电话
+	 */
+	@ApiModelProperty(value = "联系电话")
+	private String contactPhone;
 	/**
-	* 品牌ID
-	*/
-		@ApiModelProperty(value = "品牌ID")
-		@TableField("BRAND_ID")
+	 * 品牌ID
+	 */
+	@ApiModelProperty(value = "品牌ID")
+	@TableField("BRAND_ID")
 	private Long brandId;
 	/**
-	* 品牌编码
-	*/
-		@ApiModelProperty(value = "品牌编码")
-		@TableField("BRAND_CODE")
+	 * 品牌编码
+	 */
+	@ApiModelProperty(value = "品牌编码")
+	@TableField("BRAND_CODE")
 	private String brandCode;
 	/**
-	* 品牌名称
-	*/
-		@ApiModelProperty(value = "品牌名称")
-		@TableField("BRAND_NAME")
+	 * 品牌名称
+	 */
+	@ApiModelProperty(value = "品牌名称")
+	@TableField("BRAND_NAME")
 	private String brandName;
 	/**
-	* 品牌方要求资质/认证 TEXT
-	*/
-		@ApiModelProperty(value = "品牌方要求资质/认证 TEXT")
-		private String qualificationInfo;
-	/**
-	* 申请费用
-	*/
-		@ApiModelProperty(value = "申请费用")
-		private BigDecimal applyAmount;
-	/**
-	* 是否需报销 0否 1是
-	*/
-		@ApiModelProperty(value = "是否需报销 0否 1是")
-		private Integer needReimburse;
-	/**
-	* 审核状态 0待提交 1待审核 2已通过 3已拒绝
-	*/
-		@ApiModelProperty(value = "审核状态 0待提交 1待审核 2已通过 3已拒绝")
-		private Integer auditStatus;
-	/**
-	* 核定费用
-	*/
-		@ApiModelProperty(value = "核定费用")
-		private BigDecimal auditAmount;
-	/**
-	* 审核意见
-	*/
-		@ApiModelProperty(value = "审核意见")
-		private String auditRemark;
-	/**
-	* 审核人ID
-	*/
-		@ApiModelProperty(value = "审核人ID")
-		private Long auditorId;
-	/**
-	* 审核人姓名
-	*/
-		@ApiModelProperty(value = "审核人姓名")
-		private String auditorName;
-	/**
-	* 审核时间
-	*/
-		@ApiModelProperty(value = "审核时间")
-		private LocalDateTime auditTime;
-	/**
-	* 提交时间
-	*/
-		@ApiModelProperty(value = "提交时间")
-		private LocalDateTime submitTime;
-	/**
-	* 备注
-	*/
-		@ApiModelProperty(value = "备注")
-		private String remark;
-	/**
-	* 创建人
-	*/
-		@ApiModelProperty(value = "创建人")
-		private Long createUser;
-	/**
-	* 创建部门
-	*/
-		@ApiModelProperty(value = "创建部门")
-		private Long createDept;
-	/**
-	* 创建时间
-	*/
-		@ApiModelProperty(value = "创建时间")
-		private LocalDateTime createTime;
-	/**
-	* 更新人
-	*/
-		@ApiModelProperty(value = "更新人")
-		private Long updateUser;
-	/**
-	* 更新时间
-	*/
-		@ApiModelProperty(value = "更新时间")
-		private LocalDateTime updateTime;
-	/**
-	* 状态 1正常
-	*/
-		@ApiModelProperty(value = "状态 1正常")
-		private Integer status;
-	/**
-	* 是否已删除
-	*/
-		@ApiModelProperty(value = "是否已删除")
-		private Integer isDeleted;
+	 * 品牌方要求资质/认证 TEXT
+	 */
+	@ApiModelProperty(value = "品牌方要求资质/认证 TEXT")
+	private String qualificationInfo;
+	/**
+	 * 申请费用
+	 */
+	@ApiModelProperty(value = "申请费用")
+	private BigDecimal applyAmount;
+	/**
+	 * 是否需报销 0否 1是
+	 */
+	@ApiModelProperty(value = "是否需报销 0否 1是")
+	private Integer needReimburse;
+	/**
+	 * 审核状态 0待提交 1待审核 2已通过 3已拒绝
+	 */
+	@ApiModelProperty(value = "审核状态 0待提交 1待审核 2已通过 3已拒绝")
+	private Integer auditStatus;
+	/**
+	 * 核定费用
+	 */
+	@ApiModelProperty(value = "核定费用")
+	private BigDecimal auditAmount;
+	/**
+	 * 审核意见
+	 */
+	@ApiModelProperty(value = "审核意见")
+	private String auditRemark;
+	/**
+	 * 审核人ID
+	 */
+	@ApiModelProperty(value = "审核人ID")
+	private Long auditorId;
+	/**
+	 * 审核人姓名
+	 */
+	@ApiModelProperty(value = "审核人姓名")
+	private String auditorName;
+	/**
+	 * 审核时间
+	 */
+	@ApiModelProperty(value = "审核时间")
+	private LocalDateTime auditTime;
+	/**
+	 * 提交时间
+	 */
+	@ApiModelProperty(value = "提交时间")
+	private LocalDateTime submitTime;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
+	/**
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private LocalDateTime createTime;
+	/**
+	 * 更新人
+	 */
+	@ApiModelProperty(value = "更新人")
+	private Long updateUser;
+	/**
+	 * 更新时间
+	 */
+	@ApiModelProperty(value = "更新时间")
+	private LocalDateTime updateTime;
+	/**
+	 * 状态 1正常
+	 */
+	@ApiModelProperty(value = "状态 1正常")
+	private Integer status;
+	/**
+	 * 是否已删除
+	 */
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
 
 
 }

+ 1 - 2
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/storage/entity/PjStorageDesc.java

@@ -48,8 +48,7 @@ public class PjStorageDesc implements Serializable {
 	 * 租户id
 	 */
 	@ApiModelProperty(value = "租户id")
-	private String tenantId = AuthUtil.getTenantId();
-	;
+	private String tenantId;
 	/**
 	 * 创建人
 	 */

+ 5 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/storage/entity/Warehouse.java

@@ -88,6 +88,11 @@ public class Warehouse implements Serializable {
 	 */
 	@ApiModelProperty(value = "仓库id")
 	private Long storageId;
+	/**
+	 * 租户id
+	 */
+	@ApiModelProperty(value = "租户id")
+	private String tenantId;
 
 
 }

+ 0 - 8
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/goods/controller/BrandDescController.java

@@ -254,14 +254,6 @@ public class BrandDescController extends BladeController {
 			.like(ObjectUtils.isNotEmpty(brandDesc.getCname()), PjBrandDesc::getCname, brandDesc.getCname())
 			.orderByDesc(PjBrandDesc::getSort);
 		List<PjBrandDesc> list = brandDescService.list(lambdaQueryWrapper);
-
-		if (ObjectUtil.isNotEmpty(list)) {
-			list.forEach(e -> {
-				//获取附件
-				e.setBrandFilesList(brandFilesService.list(new QueryWrapper<PjBrandFiles>().eq("pid", e.getId()).eq("is_deleted", 0)
-					.eq("version", 0)));
-			});
-		}
 		return R.data(list);
 	}
 

+ 4 - 3
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/order/controller/OrderItemsController.java

@@ -157,14 +157,15 @@ public class OrderItemsController extends BladeController {
 				order = orderMapper.selectById(orderItems.getPid());
 			}
 		}
-		if (order != null && ("TKCG".equals(order.getBsType()) || "TKXS".equals(order.getBsType()))) {
+		if (order != null) {
 			order.setNumberRows(pjOrderItemsList.size() - arr.size());//行数
 			//总退货金额
 			order.setReturnsAmount(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 			//总退货数量
 			order.setReturnsNumber(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-			order.setGoodsTotalNum(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-			order.setTotalMoney(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setGoodsTotalNum(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setTotalMoney(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setSalesAmount(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 			order.setCost(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 			order.setRebateCost(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 			order.setGrossProfit(pjOrderItemsList.stream().filter(e -> !arr.contains(e.getId())).map(PjOrderItems::getGrossProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));

+ 4 - 1
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/ship/mapper/ShipMapper.xml

@@ -111,7 +111,10 @@
             and psi.dot is null
         </if>
         <if test="order.stockId!=null">
-            and (ps.storage_id = #{order.stockId} or ps.call_in_storage_id = #{order.stockId})
+            and (psi.storage_id = #{order.stockId} or ps.call_in_storage_id = #{order.stockId})
+        </if>
+        <if test="order.reservoirAreaId!=null">
+            and psi.reservoir_area_id = #{order.reservoirAreaId}
         </if>
         <if test="order.goodsId!=null">
             and psi.goods_id = #{order.goodsId}

+ 27 - 23
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/ship/service/impl/ShipServiceImpl.java

@@ -252,9 +252,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		// 保存订单明细
 		List<TireStockDesc> pjStockDescArrayList = new ArrayList<>();
 		if (CollectionUtils.isNotEmpty(shipVO.getShipItemsList())) {
+			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if ("内部销售".equals(ship.getBsType())) {
 				// 保存订单明细
-				List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 				List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
 					.eq(PjOrderItems::getIsDeleted, 0)
@@ -355,28 +355,32 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				orderItemsService.updateBatchById(pjOrderItemsList);
 				shipItemsService.updateBatchById(shipVO.getShipItemsList());
 				ship.setNumberRows(shipVO.getShipItemsList().size());
-				PjOrder order = orderMapper.selectById(ship.getOrdId());
-				if (ObjectUtil.isNotEmpty(order)) {
-					if ("已收货".equals(order.getStatus()) || "申请退货".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
-						throw new RuntimeException("单据已收货或申请售后中,操作失败");
-					}
-					//数量和
-					BigDecimal goodsNum = order.getGoodsTotalNum();
-					//发货数量和
-					BigDecimal sendNum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
-						.reduce(BigDecimal.ZERO, BigDecimal::add);
-					order.setVersion(order.getVersion() + 1);
-					order.setOutGoodsTotalShipNum(order.getOutGoodsTotalShipNum().add(sendNum));
-					if (goodsNum.compareTo(order.getOutGoodsTotalShipNum()) == 0) {//数量等于发货数量修改销售订单状态
-						order.setDeliveryBusinesDate(new Date());
-						order.setStatus(OrderTypeEnum.SHIPED.getType());
-						order.setXcxStatus(OrderTypeEnum.SHIPED.getType());
-						orderMapper.updateById(order);
-					} else {
-						order.setStorageId(ship.getStorageId());
-						order.setStorageName(ship.getStorageName());
-						orderMapper.updateById(order);
-					}
+			}
+			PjOrder order = orderMapper.selectById(ship.getOrdId());
+			if (ObjectUtil.isNotEmpty(order)) {
+				if ("已收货".equals(order.getStatus()) || "申请退货".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
+					throw new RuntimeException("单据已收货或申请售后中,操作失败");
+				}
+				//数量和
+				BigDecimal goodsNum = order.getGoodsTotalNum();
+				//发货数量和
+				BigDecimal sendNum = shipVO.getShipItemsList().stream().map(PjShipItems::getSendNum).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				order.setVersion(order.getVersion() + 1);
+				order.setOutGoodsTotalShipNum(order.getOutGoodsTotalShipNum().add(sendNum));
+				order.setShipType(ship.getShipType());
+				order.setLogisticsCorpId(ship.getLogisticsCorpId());
+				order.setLogisticsCorpName(ship.getLogisticsCorpName());
+				order.setExpressNo(ship.getExpressNo());
+				if (goodsNum.compareTo(order.getOutGoodsTotalShipNum()) == 0) {//数量等于发货数量修改销售订单状态
+					order.setDeliveryBusinesDate(new Date());
+					order.setStatus(OrderTypeEnum.SHIPED.getType());
+					order.setXcxStatus(OrderTypeEnum.SHIPED.getType());
+					orderMapper.updateById(order);
+				} else {
+					order.setStorageId(ship.getStorageId());
+					order.setStorageName(ship.getStorageName());
+					orderMapper.updateById(order);
 				}
 			}
 		} else {

+ 2 - 1
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/stock/controller/TireStockDescController.java

@@ -30,6 +30,7 @@ import com.gubersail.admin.stock.service.ITireStockDescService;
 import com.gubersail.dealer.admin.api.excel.StockBrandExcel;
 import com.gubersail.dealer.admin.api.excel.StockExportExcel;
 import com.gubersail.dealer.admin.api.excel.TireStockDescImportExcel;
+import com.gubersail.dealer.admin.api.excel.launchExportExcel;
 import com.gubersail.dealer.admin.api.goods.entity.BrandFigure;
 import com.gubersail.dealer.admin.api.goods.entity.PjBrandFiles;
 import com.gubersail.dealer.admin.api.goods.entity.PjGoodsDesc;
@@ -289,7 +290,7 @@ public class TireStockDescController extends BladeController {
 		}
 		lambdaQueryWrapper.orderByDesc(TireStockDesc::getBalanceQuantity);
 		List<TireStockDesc> list = stockDescService.list(lambdaQueryWrapper);
-		ExcelUtil.export(response, "上架信息", "上架信息", BeanUtil.copy(list, StockExportExcel.class), StockExportExcel.class);
+		ExcelUtil.export(response, "上架信息", "上架信息", BeanUtil.copy(list, launchExportExcel.class), launchExportExcel.class);
 	}
 
 	/**

+ 14 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/storage/service/impl/StorageDescServiceImpl.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gubersail.admin.storage.mapper.StorageDescMapper;
 import com.gubersail.admin.storage.service.IStorageDescService;
+import com.gubersail.dealer.admin.api.corps.entity.PjCorpsDesc;
 import com.gubersail.dealer.admin.api.storage.entity.PjStorageDesc;
 import com.gubersail.dealer.admin.api.storage.vo.StorageDescVO;
 import lombok.AllArgsConstructor;
@@ -31,6 +32,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 配件批发仓库服务实现类
@@ -69,13 +71,25 @@ public class StorageDescServiceImpl extends ServiceImpl<StorageDescMapper, PjSto
 	 */
 	@Override
 	public PjStorageDesc saveMessage(PjStorageDesc storageDesc) {
+		List<PjStorageDesc> storageDescList = baseMapper.selectList(new LambdaQueryWrapper<PjStorageDesc>()
+			.eq(PjStorageDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(PjStorageDesc::getIsDeleted, 0)
+			.eq(PjStorageDesc::getCreateDept, Long.valueOf(AuthUtil.getDeptId()))
+			.eq(PjStorageDesc::getCname, storageDesc.getCname()));
 		if (storageDesc.getId() == null) {
+			if (!storageDescList.isEmpty()) {
+				throw new RuntimeException("仓库" + storageDesc.getCname() + "已存在,请勿重复添加!");
+			}
 			storageDesc.setCreateUser(AuthUtil.getUserId());
 			storageDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			storageDesc.setCreateTime(new Date());
 			storageDesc.setTenantId(AuthUtil.getTenantId());
 			baseMapper.insert(storageDesc);
 		} else {
+			List<Long> ids = storageDescList.stream().map(PjStorageDesc::getId).collect(Collectors.toList());
+			if (!storageDescList.isEmpty() && !ids.contains(storageDesc.getId())) {
+				throw new RuntimeException("仓库" + storageDesc.getCname() + "已存在,请勿重复添加!");
+			}
 			storageDesc.setUpdateUser(AuthUtil.getUserId());
 			storageDesc.setUpdateTime(new Date());
 			storageDesc.setTenantId(AuthUtil.getTenantId());

+ 17 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/storage/service/impl/WarehouseServiceImpl.java

@@ -16,9 +16,11 @@
  */
 package com.gubersail.admin.storage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.gubersail.admin.storage.mapper.WarehouseMapper;
 import com.gubersail.admin.storage.service.IWarehouseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gubersail.dealer.admin.api.storage.entity.PjStorageDesc;
 import com.gubersail.dealer.admin.api.storage.entity.Warehouse;
 import com.gubersail.dealer.admin.api.storage.vo.WarehouseVO;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -27,6 +29,8 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 库区表 服务实现类
@@ -44,12 +48,25 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse
 
 	@Override
 	public R submit(Warehouse warehouse) {
+		List<Warehouse> warehouseList = baseMapper.selectList(new LambdaQueryWrapper<Warehouse>()
+			.eq(Warehouse::getTenantId, AuthUtil.getTenantId())
+			.eq(Warehouse::getIsDeleted, 0)
+			.eq(Warehouse::getCreateDept, Long.valueOf(AuthUtil.getDeptId()))
+			.eq(Warehouse::getStorageId, warehouse.getStorageId())
+			.eq(Warehouse::getCname, warehouse.getCname()));
 		if (warehouse.getId() == null) {
+			if (!warehouseList.isEmpty()) {
+				throw new RuntimeException("库区" + warehouse.getCname() + "已存在,请勿重复添加!");
+			}
 			warehouse.setCreateUser(AuthUtil.getUserId());
 			warehouse.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			warehouse.setCreateTime(new Date());
 			baseMapper.insert(warehouse);
 		} else {
+			List<Long> ids = warehouseList.stream().map(Warehouse::getId).collect(Collectors.toList());
+			if (!warehouseList.isEmpty() && !ids.contains(warehouse.getId())) {
+				throw new RuntimeException("库区" + warehouse.getCname() + "已存在,请勿重复添加!");
+			}
 			warehouse.setUpdateUser(AuthUtil.getUserId());
 			warehouse.setUpdateTime(new Date());
 			baseMapper.updateById(warehouse);