Bladeren bron

2025年2月5日17:24:14

纪新园 1 jaar geleden
bovenliggende
commit
8fb70c6301
14 gewijzigde bestanden met toevoegingen van 863 en 222 verwijderingen
  1. 5 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/SharePutOnShelvesImportExcel.java
  2. 92 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/ShareTheNextDayDataExcel.java
  3. 1 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/shopping/entity/ShoppingMallDetail.java
  4. 98 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  5. 11 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ShareSalesController.java
  6. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java
  7. 117 7
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  8. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java
  9. 64 5
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/controller/SharePutOnShelvesController.java
  10. 3 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/ISharePutOnShelvesService.java
  11. 246 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/impl/SharePutOnShelvesServiceImpl.java
  12. 208 204
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  13. 13 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shopping/controller/ShoppingMallDetailController.java
  14. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shopping/mapper/ShoppingMallDetailMapper.xml

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

@@ -30,5 +30,10 @@ public class SharePutOnShelvesImportExcel implements Serializable {
 	 */
 	@ExcelProperty(value = "*共享成本")
 	private BigDecimal shareCost;
+	/**
+	 * 共享公司(多个逗号拼接)
+	 */
+	@ExcelProperty(value = "共享公司(多个逗号“,”拼接)")
+	private String sharedCompany;
 
 }

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

@@ -0,0 +1,92 @@
+package org.springblade.salesPart.excel;
+
+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 lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 导入模板-次日达共享数据
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ShareTheNextDayDataExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 商品编码
+	 */
+	@ExcelProperty(value = "商品编码")
+	private String goodsCode;
+	/**
+	 * 名称
+	 */
+	@ExcelProperty(value = "名称")
+	private String goodsName;
+	/**
+	 * 规格型号
+	 */
+	@ExcelProperty(value = "规格型号")
+	private String specificationAndModel;
+	/**
+	 * 品牌名称
+	 */
+	@ExcelProperty(value = "品牌名称")
+	private String brandName;
+	/**
+	 * 花纹
+	 */
+	@ExcelProperty(value = "花纹")
+	private String brandItem;
+	/**
+	 * 共享成本
+	 */
+	@ExcelProperty(value = "共享成本")
+	private BigDecimal shareCost;
+	/**
+	 * 售价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;
+	/**
+	 * 来源公司名称
+	 */
+	@ExcelProperty(value = "来源共享公司名称")
+	private String srcSalesCompanyName;
+
+	/**
+	 * 来源共享公司主键
+	 */
+	@ExcelProperty(value = "来源共享公司主键(勿动)")
+	private String srcSalesCompanyId;
+
+	/**
+	 * 来源主键
+	 */
+	@ExcelProperty(value = "来源主键(勿动)")
+	private String srcId;
+
+
+}

+ 1 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/shopping/entity/ShoppingMallDetail.java

@@ -67,6 +67,7 @@ public class ShoppingMallDetail implements Serializable {
 	private BigDecimal shareCost;
 	private Long billType;
 	private String tenantId;
+	private String url;
 
 	/**
 	 * 附件明细集合

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

@@ -114,7 +114,7 @@ public class OrderController extends BladeController {
 				PjOrder::getGoodsTotalShipAmount, PjOrder::getOutGoodsTotalShipNum, PjOrder::getOutGoodsTotalShipAmount,
 				PjOrder::getGoodsTotalShipNum, PjOrder::getSalesAmount, PjOrder::getRefno, PjOrder::getPrimaryGoodsTotalNum,
 				PjOrder::getPrimaryFundingAmount, PjOrder::getUseAdvanceChargeAmount, PjOrder::getProduceAdvanceChargeAmount,
-				PjOrder::getDeliveryBusinesDate,PjOrder::getSalesCompanyId)
+				PjOrder::getDeliveryBusinesDate, PjOrder::getSalesCompanyId)
 			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
@@ -599,6 +599,103 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 小程序我的订单查询-共享版
+	 */
+	@GetMapping("/appStatusShareList")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "小程序我的订单查询", notes = "传入order")
+	public R<IPage<PjOrder>> appStatusShareList(PjOrder order, Query query) {
+		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.select(PjOrder::getSrcOrdNo);
+		lambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrder::getIsDeleted, 0)
+			.eq(PjOrder::getBsType, "XS")
+			.apply("find_in_set(bs_type,'XS,GX')")
+			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
+			.eq(ObjectUtils.isNotEmpty(order.getActualPaymentStatus()), PjOrder::getActualPaymentStatus, order.getActualPaymentStatus())//状态
+			.eq(ObjectUtils.isNotEmpty(order.getSalesCompanyName()), PjOrder::getSalesCompanyName, order.getSalesCompanyName())//所属公司
+			.and(ObjectUtils.isNotNull(order.getRetrieval()), i -> i.like(PjOrder::getGoodsNameJoin, order.getRetrieval())
+				.or().like(PjOrder::getShortcutJoin, order.getRetrieval()))
+			.apply(ObjectUtils.isNotEmpty(order.getXcxStatus()), "find_in_set(xcx_status,'" + order.getXcxStatus() + "')")
+			.orderByDesc(PjOrder::getCreateTime);
+		if (AuthUtil.getUserRole().contains("客户")) {
+			lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+		}
+		lambdaQueryWrapper.groupBy(PjOrder::getSrcOrdNo);
+		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (!pages.getRecords().isEmpty()) {
+			List<Long> ids = new ArrayList<>();
+			List<PjOrder> orderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
+				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrder::getIsDeleted, 0)
+				.eq(PjOrder::getBsType, "XS")
+				.in(PjOrder::getSrcOrdNo, pages.getRecords().stream().map(PjOrder::getSrcOrdNo)));
+			if (!orderList.isEmpty()) {
+				ids.addAll(orderList.stream().map(PjOrder::getId).collect(Collectors.toList()));
+			}
+			List<PjOrder> orderShareList = orderService.list(new LambdaQueryWrapper<PjOrder>()
+				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrder::getIsDeleted, 0)
+				.eq(PjOrder::getBsType, "GX")
+				.in(PjOrder::getSrcOrdNo, pages.getRecords().stream().map(PjOrder::getSrcOrdNo)));
+			if (!orderShareList.isEmpty()) {
+				ids.addAll(orderShareList.stream().map(PjOrder::getId).collect(Collectors.toList()));
+			}
+			//获得销售明细
+			LambdaQueryWrapper<PjOrderItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrderItems::getIsDeleted, 0)
+				.in(PjOrderItems::getPid, ids);
+			List<PjOrderItems> itemsList = orderItemsService.list(itemsLambdaQueryWrapper);
+			for (PjOrder e : pages.getRecords()) {
+				if (!orderList.isEmpty()) {
+					PjOrder item = orderList.stream().filter(i -> e.getSrcOrdNo().equals(i.getSrcOrdNo())).findFirst().orElse(null);
+					if (item != null) {
+						BeanUtil.copyProperties(item, e);
+						if (!orderShareList.isEmpty()) {
+							PjOrder itemShare = orderShareList.stream().filter(i -> e.getSrcOrdNo().equals(i.getSrcOrdNo())).findFirst().orElse(null);
+							if (itemShare != null) {
+								e.setGoodsTotalNum(e.getGoodsTotalShipNum().add(itemShare.getGoodsTotalNum()));
+								e.setTotalMoney(e.getTotalMoney().add(itemShare.getTotalMoney()));
+							}
+						}
+					} else {
+						if (!orderShareList.isEmpty()) {
+							PjOrder itemShare = orderShareList.stream().filter(i -> e.getSrcOrdNo().equals(i.getSrcOrdNo())).findFirst().orElse(null);
+							if (itemShare != null) {
+								BeanUtil.copyProperties(itemShare, e);
+							}
+						}
+					}
+				}else{
+					if (!orderShareList.isEmpty()) {
+						PjOrder itemShare = orderShareList.stream().filter(i -> e.getSrcOrdNo().equals(i.getSrcOrdNo())).findFirst().orElse(null);
+						if (itemShare != null) {
+							BeanUtil.copyProperties(itemShare, e);
+						}
+					}
+				}
+				if (!itemsList.isEmpty()) {
+					e.setGoodsNameJoin(itemsList.stream().filter(i -> i.getPid().equals(e.getId())).map(PjOrderItems::getGoodsName).collect(Collectors.joining(",")));
+				}
+			}
+		}
+		return R.data(pages);
+	}
+
+	/**
+	 * 小程序销售详情-共享版
+	 */
+	@GetMapping("/appShareDetail")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "小程序销售详情", notes = "传入order")
+	public R<PjOrder> appShareDetail(PjOrder order) {
+		order.setTenantId(AuthUtil.getTenantId());
+		PjOrder detail = orderService.appShareDetail(order);
+		return R.data(detail);
+	}
+
+	/**
 	 * 销售申请退款请核
 	 */
 	@PostMapping("/checkOrder")

+ 11 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ShareSalesController.java

@@ -297,6 +297,16 @@ public class ShareSalesController {
 	@PostMapping("/remove")
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrderItems::getIsDeleted, 0)
+			.apply("find_in_set(pid,'" + ids + "')"));
+		if (!orderItemsList.isEmpty()) {
+			BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).reduce(BigDecimal.ZERO, BigDecimal::add);
+			if (new BigDecimal("0").compareTo(sendNum) != 0) {
+				throw new RuntimeException("请先撤销派发,在删除");
+			}
+		}
 		return R.status(orderService.removeByIds(Func.toLongList(ids)));
 	}
 
@@ -321,7 +331,7 @@ public class ShareSalesController {
 		if (ObjectUtils.isNull(itemIds)) {
 			throw new RuntimeException("缺少必要参数");
 		}
-		
+
 		return orderService.revokeDistributeShareSales(itemIds);
 	}
 

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

@@ -271,4 +271,6 @@ public interface IOrderService extends IService<PjOrder> {
 	PjOrder getShareSalesById(PjOrder order);
 
 	R<List<PjOrderItems>> importItemFinancing(List<InventoryFinancingExcel> excelList);
+
+	PjOrder appShareDetail(PjOrder order);
 }

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

@@ -4303,7 +4303,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		//给角色为财务的人发送消息
 		R<String> clientDeptIds = sysClient.getRoleIds(dept.getTenantId(), "客服");
 		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), dept.getTenantId(), dept.getId()+"");
+			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), dept.getTenantId(), dept.getId() + "");
 			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 				for (User datum : userList.getData()) {
 					//循环发送消息
@@ -4607,6 +4607,111 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		return R.data(list);
 	}
 
+	@Override
+	public PjOrder appShareDetail(PjOrder order) {
+		PjOrder detail = baseMapper.selectById(order.getId());
+		List<Long> ids = new ArrayList<>();
+		if (detail != null) {
+			ids.add(detail.getId());
+			if ("XS".equals(detail.getBsType())) {
+				PjOrder detailShare = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
+					.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrder::getIsDeleted, 0)
+					.eq(PjOrder::getBsType, "GX")
+					.eq(PjOrder::getSrcOrdNo, detail.getSrcOrdNo()));
+				if (detailShare != null) {
+					ids.add(detailShare.getId());
+					detail.setGoodsTotalNum(detail.getGoodsTotalShipNum().add(detailShare.getGoodsTotalNum()));
+					detail.setTotalMoney(detail.getTotalMoney().add(detailShare.getTotalMoney()));
+				}
+			} else {
+				PjOrder detailShare = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
+					.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrder::getIsDeleted, 0)
+					.eq(PjOrder::getBsType, "XS")
+					.eq(PjOrder::getSrcOrdNo, detail.getSrcOrdNo()));
+				if (detailShare != null) {
+					ids.add(detailShare.getId());
+					detail.setGoodsTotalNum(detail.getGoodsTotalShipNum().add(detailShare.getGoodsTotalNum()));
+					detail.setTotalMoney(detail.getTotalMoney().add(detailShare.getTotalMoney()));
+				}
+			}
+			//获得销售明细
+			LambdaQueryWrapper<PjOrderItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrderItems::getIsDeleted, 0)
+				.in(PjOrderItems::getPid, ids);
+			List<PjOrderItems> orderItems = orderItemsService.list(itemsLambdaQueryWrapper);
+			List<PjGoodsFiles> goodsFilesList = new ArrayList<>();
+			List<PjBrandFiles> pjBrandFilesList = new ArrayList<>();
+			List<BrandFigure> brandFigureList = new ArrayList<>();
+			if (!orderItems.isEmpty()) {
+				List<Long> goodsId = orderItems.stream().map(PjOrderItems::getGoodsId).collect(Collectors.toList());
+				List<Long> brandIds = orderItems.stream().map(PjOrderItems::getBrandId).collect(Collectors.toList());
+				if (!goodsId.isEmpty()) {
+					goodsFilesList = goodsFilesService.list(new LambdaQueryWrapper<PjGoodsFiles>()
+						.eq(PjGoodsFiles::getMainImage, 0)
+						.in(PjGoodsFiles::getPid, goodsId)
+						.eq(PjGoodsFiles::getTenantId, AuthUtil.getTenantId())
+						.eq(PjGoodsFiles::getIsDeleted, 0));
+				}
+				if (!brandIds.isEmpty()) {
+					pjBrandFilesList = brandFilesService.list(new QueryWrapper<PjBrandFiles>()
+						.in("pid", brandIds).eq("is_deleted", 0));
+					brandFigureList = brandFigureService.list(new QueryWrapper<BrandFigure>()
+						.in("pid", brandIds).eq("is_deleted", 0));
+				}
+				for (PjOrderItems item : orderItems) {
+					if (!goodsFilesList.isEmpty()) {
+						item.setGoodsFilesList(goodsFilesList.stream()
+							.filter(e -> e.getPid().equals(item.getGoodsId()))
+							.collect(Collectors.toList()));
+					} else {
+						if (ObjectUtils.isNotNull(item.getBrandId())) {
+							if (!brandFigureList.isEmpty()) {
+								List<BrandFigure> brandFigureList1 = brandFigureList.stream()
+									.filter(e -> e.getPid().equals(item.getBrandId()) && e.getFigure().equals(item.getPattern()))
+									.collect(Collectors.toList());
+								if (!brandFigureList1.isEmpty()) {
+									item.setGoodsFilesList(BeanUtil.copy(brandFigureList1, PjGoodsFiles.class));
+								} else {
+									List<PjBrandFiles> pjBrandFilesList1 = pjBrandFilesList.stream()
+										.filter(e -> e.getPid().equals(item.getBrandId()))
+										.collect(Collectors.toList());
+									if (!pjBrandFilesList1.isEmpty()) {
+										item.setGoodsFilesList(BeanUtil.copy(pjBrandFilesList1, PjGoodsFiles.class));
+									}
+								}
+							} else {
+								List<PjBrandFiles> pjBrandFilesList1 = pjBrandFilesList.stream()
+									.filter(e -> e.getPid().equals(item.getBrandId()))
+									.collect(Collectors.toList());
+								if (!pjBrandFilesList1.isEmpty()) {
+									item.setGoodsFilesList(BeanUtil.copy(pjBrandFilesList1, PjGoodsFiles.class));
+								}
+							}
+						}
+					}
+				/*List<PjGoodsFiles> pjGoodsFiles = goodsFilesService.list(new LambdaQueryWrapper<PjGoodsFiles>()
+					.eq(PjGoodsFiles::getTenantId, AuthUtil.getTenantId())
+					.eq(PjGoodsFiles::getIsDeleted, 0)
+					.eq(PjGoodsFiles::getPid, item.getGoodsId())
+					.eq(PjGoodsFiles::getMainImage, 0));
+				item.setGoodsFilesList(pjGoodsFiles);
+				if (item.getGoodsFilesList().isEmpty() && ObjectUtils.isNotNull(item.getBrandId())) {
+					item.setGoodsFilesList(BeanUtil.copy(brandFilesService.list(new LambdaQueryWrapper<PjBrandFiles>()
+						.eq(PjBrandFiles::getMainImage, 0)
+						.eq(PjBrandFiles::getPid, item.getBrandId())
+						.eq(PjBrandFiles::getTenantId, AuthUtil.getTenantId())
+						.eq(PjBrandFiles::getIsDeleted, 0)), PjGoodsFiles.class));
+				}*/
+				}
+				detail.setOrderItemsList(orderItems);
+			}
+		}
+		return detail;
+	}
+
 	/**
 	 * 保存订单信息
 	 */
@@ -6192,15 +6297,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 							shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 							List<PjOrderItems> orderItemsList1 = list.stream().filter(i -> i.getGoodsNo().equals(e.getGoodsNo())).collect(Collectors.toList());
 							if (!orderItemsList1.isEmpty()) {
-								shipItems.setSendNum(orderItemsList1.stream().map(PjOrderItems::getSendNum).reduce(BigDecimal.ZERO,BigDecimal::add));
-								shipItems.setGoodsNum(orderItemsList1.stream().map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO,BigDecimal::add));
-								shipItems.setCostprie(orderItemsList1.stream().map(PjOrderItems::getCostprie).reduce(BigDecimal.ZERO,BigDecimal::add));
+								shipItems.setSendNum(orderItemsList1.stream().map(PjOrderItems::getSendNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+								shipItems.setGoodsNum(orderItemsList1.stream().map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add));
+								shipItems.setCostprie(orderItemsList1.stream().map(PjOrderItems::getCostprie).reduce(BigDecimal.ZERO, BigDecimal::add));
 								if (shipItems.getCostprie().compareTo(new BigDecimal("0.00")) != 0 &&
-									shipItems.getGoodsNum().compareTo(new BigDecimal("0.00")) != 0){
-									shipItems.setPrice(shipItems.getCostprie().divide(shipItems.getGoodsNum(),2,RoundingMode.HALF_UP));
+									shipItems.getGoodsNum().compareTo(new BigDecimal("0.00")) != 0) {
+									shipItems.setPrice(shipItems.getCostprie().divide(shipItems.getGoodsNum(), 2, RoundingMode.HALF_UP));
 									shipItems.setSubTotalMoney(shipItems.getGoodsNum().multiply(shipItems.getPrice()));
 								}
-							}else{
+							} else {
 								throw new SecurityException("未找到对应商品明细信息,请联系管理员");
 							}
 							shipItems.setTenantId(AuthUtil.getTenantId());
@@ -6441,6 +6546,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			}
 			for (PjOrder item : pjOrderShareList) {
 				item.setStatus(order.getOriginalStatus());
+				if ("已发货".equals(order.getOriginalStatus())) {
+					item.setXcxStatus(order.getOriginalStatus());
+				} else {
+					item.setXcxStatus("待发货");
+				}
 				item.setCheckStatus("审批驳回");
 			}
 			this.updateBatchById(pjOrderShareList);

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

@@ -821,9 +821,9 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 							throw new RuntimeException("商品" + productLaunch.getCname() + "库存为零,请处理后重新导入");
 						}
 						productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
-					} else {
+					} /*else {
 						throw new RuntimeException("商品" + productLaunch.getCname() + "库存为零,请处理后重新导入");
-					}
+					}*/
 				}
 			} else {
 				throw new RuntimeException("商品" + productLaunch.getCname() + "名称错误或商品不存在");

+ 64 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/controller/SharePutOnShelvesController.java

@@ -36,6 +36,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.salesPart.entity.PjProductLaunch;
 import org.springblade.salesPart.excel.SharePutOnShelvesDataExcel;
 import org.springblade.salesPart.excel.SharePutOnShelvesImportExcel;
+import org.springblade.salesPart.excel.ShareTheNextDayDataExcel;
 import org.springblade.salesPart.share.entity.SharePutOnShelves;
 import org.springblade.salesPart.share.service.ISharePutOnShelvesService;
 import org.springblade.salesPart.share.vo.SharePutOnShelvesVO;
@@ -131,10 +132,10 @@ public class SharePutOnShelvesController extends BladeController {
 			.like(ObjectUtils.isNotNull(sharePutOnShelves.getPlaceProduction()), SharePutOnShelves::getPlaceProduction, sharePutOnShelves.getPlaceProduction())
 			.like(ObjectUtils.isNotNull(sharePutOnShelves.getBrandName()), SharePutOnShelves::getBrandName, sharePutOnShelves.getBrandName())
 			.like(ObjectUtils.isNotNull(sharePutOnShelves.getBrandId()), SharePutOnShelves::getBrandId, sharePutOnShelves.getBrandId())
-			.eq( SharePutOnShelves::getBillType,1)
-			.eq( SharePutOnShelves::getShareStatus, "已确认")
+			.eq(SharePutOnShelves::getBillType, 1)
+			.eq(SharePutOnShelves::getShareStatus, "已确认")
 		;
-		IPage<SharePutOnShelves> list = sharePutOnShelvesService.page(Condition.getPage(query),lambdaQueryWrapper);
+		IPage<SharePutOnShelves> list = sharePutOnShelvesService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(list);
 	}
 
@@ -148,8 +149,8 @@ public class SharePutOnShelvesController extends BladeController {
 			.eq(SharePutOnShelves::getIsDeleted, 0)
 			.eq(ObjectUtils.isNotNull(sharePutOnShelves.getGoodsId()), SharePutOnShelves::getGoodsId, sharePutOnShelves.getGoodsId())
 			.eq(ObjectUtils.isNotNull(sharePutOnShelves.getGoodsCode()), SharePutOnShelves::getGoodsCode, sharePutOnShelves.getGoodsCode())
-			.eq( SharePutOnShelves::getBillType,1)
-			.eq( SharePutOnShelves::getShareStatus, "已确认");
+			.eq(SharePutOnShelves::getBillType, 1)
+			.eq(SharePutOnShelves::getShareStatus, "已确认");
 		List<SharePutOnShelves> list = sharePutOnShelvesService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -273,6 +274,64 @@ public class SharePutOnShelvesController extends BladeController {
 	}
 
 	/**
+	 * 导出次日达共享数据
+	 */
+	@GetMapping("/exportShareTheNextDayData")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "导出模板")
+	public void exportShareTheNextDayData(HttpServletResponse response, SharePutOnShelves sharePutOnShelves) {
+		LambdaQueryWrapper<SharePutOnShelves> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(SharePutOnShelves::getTenantId, AuthUtil.getTenantId())
+			.eq(SharePutOnShelves::getIsDeleted, 0)
+			.eq(SharePutOnShelves::getSalesCompanyId, AuthUtil.getDeptId())
+			.and(ObjectUtils.isNotNull(sharePutOnShelves.getGoodsName()), i -> i.like(SharePutOnShelves::getGoodsName, sharePutOnShelves.getGoodsName())
+				.or().like(SharePutOnShelves::getGoodsInt, sharePutOnShelves.getGoodsName())
+				.or().like(SharePutOnShelves::getBrandItem, sharePutOnShelves.getGoodsName())
+				.or().like(SharePutOnShelves::getSpecificationAndModel, sharePutOnShelves.getGoodsName())
+				.or().like(SharePutOnShelves::getGoodsSize, sharePutOnShelves.getGoodsName())
+				.or().like(SharePutOnShelves::getGoodsCode, sharePutOnShelves.getGoodsName())
+			)
+			.like(ObjectUtils.isNotNull(sharePutOnShelves.getBrandName()), SharePutOnShelves::getBrandName, sharePutOnShelves.getBrandName())
+			.like(ObjectUtils.isNotNull(sharePutOnShelves.getBrandId()), SharePutOnShelves::getBrandId, sharePutOnShelves.getBrandId())
+			.eq(ObjectUtils.isNotNull(sharePutOnShelves.getBillType()), SharePutOnShelves::getBillType, sharePutOnShelves.getBillType())
+			.eq(ObjectUtils.isNotNull(sharePutOnShelves.getShareStatus()), SharePutOnShelves::getShareStatus, sharePutOnShelves.getShareStatus())
+		;
+		List<SharePutOnShelves> sharePutOnShelvesList = sharePutOnShelvesService.list(lambdaQueryWrapper);
+		List<ShareTheNextDayDataExcel> shareTheNextDayDataExcelList = new ArrayList<>();
+		for (SharePutOnShelves item : sharePutOnShelvesList) {
+			ShareTheNextDayDataExcel shareTheNextDayDataExcel = new ShareTheNextDayDataExcel();
+			shareTheNextDayDataExcel.setGoodsCode(item.getGoodsCode());
+			shareTheNextDayDataExcel.setGoodsName(item.getGoodsName());
+			shareTheNextDayDataExcel.setSpecificationAndModel(item.getSpecificationAndModel());
+			shareTheNextDayDataExcel.setBrandName(item.getBrandName());
+			shareTheNextDayDataExcel.setBrandItem(item.getBrandItem());
+			shareTheNextDayDataExcel.setShareCost(item.getShareCost());
+			shareTheNextDayDataExcel.setPriceOne(item.getPriceOne());
+			shareTheNextDayDataExcel.setPriceTwo(item.getPriceTwo());
+			shareTheNextDayDataExcel.setPriceThree(item.getPriceThree());
+			shareTheNextDayDataExcel.setPriceFour(item.getPriceFour());
+			shareTheNextDayDataExcel.setSrcSalesCompanyName(item.getSrcSalesCompanyName());
+			shareTheNextDayDataExcel.setSrcId(item.getId() + "");
+			shareTheNextDayDataExcelList.add(shareTheNextDayDataExcel);
+		}
+		ExcelUtil.export(response, "次日达共享数据", "数据表", shareTheNextDayDataExcelList, ShareTheNextDayDataExcel.class);
+	}
+
+	/**
+	 * 导入次日达共享数据
+	 */
+	@PostMapping("/importShareTheNextDay")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导入共享上架信息", notes = "传入list")
+	public R importShareTheNextDay(@RequestBody MultipartFile file) {
+		List<ShareTheNextDayDataExcel> excelList = ExcelUtil.read(file, ShareTheNextDayDataExcel.class);
+		if (CollectionUtils.isEmpty(excelList)) {
+			throw new SecurityException("数据不能为空");
+		}
+		return sharePutOnShelvesService.importShareTheNextDay(excelList);
+	}
+
+	/**
 	 * 批量确认共享接口
 	 */
 	@GetMapping("/batchConfirmSharing")

+ 3 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/ISharePutOnShelvesService.java

@@ -19,6 +19,7 @@ package org.springblade.salesPart.share.service;
 import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.entity.PjProductLaunch;
 import org.springblade.salesPart.excel.SharePutOnShelvesImportExcel;
+import org.springblade.salesPart.excel.ShareTheNextDayDataExcel;
 import org.springblade.salesPart.share.entity.SharePutOnShelves;
 import org.springblade.salesPart.share.vo.SharePutOnShelvesVO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -60,4 +61,6 @@ public interface ISharePutOnShelvesService extends IService<SharePutOnShelves> {
     List<SharePutOnShelves> selectSharePutOnShelvesList(String goodsNo, String salesCompanyName, String tenantId);
 
 	int updateSharePutOnShelves(SharePutOnShelves item);
+
+	R importShareTheNextDay(List<ShareTheNextDayDataExcel> excelList);
 }

+ 246 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/impl/SharePutOnShelvesServiceImpl.java

@@ -30,6 +30,7 @@ import org.springblade.salesPart.brand.service.IBrandFigureService;
 import org.springblade.salesPart.brand.service.IBrandFilesService;
 import org.springblade.salesPart.entity.*;
 import org.springblade.salesPart.excel.SharePutOnShelvesImportExcel;
+import org.springblade.salesPart.excel.ShareTheNextDayDataExcel;
 import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchFilesService;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
@@ -563,6 +564,7 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 
 		List<SharePutOnShelves> sharePutOnShelvesList = new ArrayList<>();
 		List<PjProductLaunch> pjProductLaunchListNew = new ArrayList<>();
+		List<String> sharedCompanyList = new ArrayList<>();
 		for (SharePutOnShelvesImportExcel excel : excelList) {
 			PjProductLaunch item = pjProductLaunchList.stream().filter(e -> e.getCname().equals(excel.getGoodsName())).findFirst().orElse(null);
 			if (item != null) {
@@ -631,6 +633,8 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 						}
 					}
 				}
+				String[] arr = excel.getSharedCompany().split(",");
+                sharedCompanyList.addAll(Arrays.asList(arr));
 				SharePutOnShelves sharePutOnShelves = new SharePutOnShelves();
 				sharePutOnShelves.setCreateUser(AuthUtil.getUserId());
 				sharePutOnShelves.setCreateTime(new Date());
@@ -677,7 +681,84 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 			}
 		}
 		productLaunchService.updateBatchById(pjProductLaunchListNew);
-		this.saveOrUpdateBatch(sharePutOnShelvesList);
+		this.saveBatch(sharePutOnShelvesList);
+		String sharedCompany = "";
+		if (!sharedCompanyList.isEmpty()) {
+			sharedCompany = sharedCompanyList.stream().distinct().collect(Collectors.joining(","));
+		}
+		List<Dept> deptList = iSysClient.getDeptListByNames(sharedCompany);
+		if (deptList.isEmpty()) {
+			throw new RuntimeException("请选择共享公司");
+		}
+		List<SharePutOnShelves> sharePutOnShelves = new ArrayList<>();
+		for (Dept deptItem : deptList) {
+			for (SharePutOnShelves item : sharePutOnShelvesList) {
+				if (0 != item.getBillType()) {
+					throw new RuntimeException(item.getGoodsName() + "商品为被共享商品,共享失败");
+				}
+				item.setShareStatus("已共享");
+				if (ObjectUtils.isNotNull(item.getSharedCompanyId()) && ObjectUtils.isNotNull(item.getSharedCompany())) {
+					List<String> sharedCompanyId = Arrays.asList(item.getSharedCompanyId().split(","));
+					sharedCompanyId.add(deptItem.getId() + "");
+					item.setSharedCompanyId(sharedCompanyId.stream().distinct().collect(Collectors.joining(",")));
+					List<String> sharedCompanyName = Arrays.asList(item.getSharedCompany().split(","));
+					sharedCompanyName.add(deptItem.getDeptName());
+					item.setSharedCompany(sharedCompanyName.stream().distinct().collect(Collectors.joining(",")));
+				} else {
+					item.setSharedCompanyId(deptItem.getId() + "");
+					item.setSharedCompany(deptItem.getDeptName());
+				}
+				List<SharePutOnShelves> sharePutOnShelvesList1 = baseMapper.selectSharePutOnShelvesList(item.getGoodsCode(), deptItem.getDeptName(), deptItem.getTenantId());
+				if (!sharePutOnShelvesList1.isEmpty()) {
+					for (SharePutOnShelves shelves : sharePutOnShelvesList1) {
+						shelves.setInventory(item.getInventory());
+						shelves.setShareCost(item.getShareCost());
+						sharePutOnShelves.add(shelves);
+					}
+				} else {
+					SharePutOnShelves shelves = new SharePutOnShelves();
+					shelves.setShareStatus("暂存");
+					shelves.setTenantId(deptItem.getTenantId());
+					shelves.setGoodsCode(item.getGoodsCode());
+					shelves.setGoodsName(item.getGoodsName());
+					shelves.setGoodsInt(item.getGoodsInt());
+					shelves.setSpecificationAndModel(item.getSpecificationAndModel());
+					shelves.setGoodsSize(item.getGoodsSize());
+					shelves.setBrandName(item.getBrandName());
+					shelves.setGoodsDescription(item.getGoodsDescription());
+					shelves.setBrandItem(item.getBrandItem());
+					shelves.setPlaceProduction(item.getPlaceProduction());
+					shelves.setExplosionProof(item.getExplosionProof());
+					shelves.setOriginalFactory(item.getOriginalFactory());
+					shelves.setSelfRecovery(item.getSelfRecovery());
+					shelves.setSalesCompanyId(deptItem.getId());
+					shelves.setSalesCompanyName(deptItem.getDeptName());
+					shelves.setInventory(item.getInventory());
+					shelves.setShareCost(item.getShareCost());
+					/*shelves.setPriceOne(item.getPriceOne());
+					shelves.setPriceTwo(item.getPriceTwo());
+					shelves.setPriceThree(item.getPriceThree());
+					shelves.setPriceFour(item.getPriceFour());*/
+					shelves.setProductLaunchId(item.getProductLaunchId());
+					shelves.setSrcTenantId(item.getSrcTenantId());
+					shelves.setSrcSalesCompanyId(item.getSrcSalesCompanyId());
+					shelves.setSrcSalesCompanyName(item.getSrcSalesCompanyName());
+					shelves.setSrcGoodsId(item.getGoodsId());
+					shelves.setSrcGoodsCode(item.getGoodsCode());
+					shelves.setSrcGoodsName(item.getGoodsName());
+					shelves.setSrcBrandId(item.getBrandId());
+					shelves.setSrcBrandName(item.getBrandName());
+					shelves.setBillType(1);
+					shelves.setSrcSharedId(item.getId());
+					shelves.setUrl(item.getUrl());
+					sharePutOnShelves.add(shelves);
+				}
+			}
+		}
+		this.updateBatchById(sharePutOnShelvesList);
+		if (!sharePutOnShelves.isEmpty()) {
+			this.saveOrUpdateBatch(sharePutOnShelves);
+		}
 		return R.data(sharePutOnShelvesList);
 	}
 
@@ -691,4 +772,168 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 		return baseMapper.updateSharePutOnShelves(item);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R importShareTheNextDay(List<ShareTheNextDayDataExcel> excelList) {
+		List<SharePutOnShelves> sharePutOnShelvesList = new ArrayList<>();
+		for (ShareTheNextDayDataExcel item : excelList) {
+			if (ObjectUtils.isNotNull(item.getSrcId())) {
+				SharePutOnShelves shelves = new SharePutOnShelves();
+				shelves.setPriceOne(item.getPriceOne());
+				shelves.setPriceTwo(item.getPriceTwo());
+				shelves.setPriceThree(item.getPriceThree());
+				shelves.setPriceFour(item.getPriceFour());
+				shelves.setId(Long.parseLong(item.getSrcId()));
+				shelves.setShareStatus("已确认");
+				sharePutOnShelvesList.add(shelves);
+			} else {
+				throw new RuntimeException("商品:" + item.getGoodsName() + "未查到上架数据");
+			}
+		}
+		String goodsCode = excelList.stream().map(ShareTheNextDayDataExcel::getGoodsCode).distinct().collect(Collectors.joining(","));
+		String brandName = excelList.stream().map(ShareTheNextDayDataExcel::getGoodsName).distinct().collect(Collectors.joining(","));
+		String ids = excelList.stream().map(ShareTheNextDayDataExcel::getSrcId).distinct().collect(Collectors.joining(","));
+		List<SharePutOnShelves> sharePutOnShelvesListOld = baseMapper.selectList(new LambdaQueryWrapper<SharePutOnShelves>()
+			.eq(SharePutOnShelves::getTenantId, AuthUtil.getTenantId())
+			.eq(SharePutOnShelves::getIsDeleted, 0)
+			.apply("find_in_set(id,'" + ids + "')"));
+		List<PjGoodsDesc> goodsDescList = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
+			.eq(PjGoodsDesc::getIsDeleted, 0)
+			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+			.apply("find_in_set(code,'" + goodsCode + "')"));
+		List<PjBrandDesc> brandDescList = brandDescService.list(new LambdaQueryWrapper<PjBrandDesc>()
+			.eq(PjBrandDesc::getIsDeleted, 0)
+			.eq(PjBrandDesc::getTenantId, AuthUtil.getTenantId())
+			.apply("find_in_set(cname,'" + brandName + "')"));
+
+		List<PjBrandDesc> brandDescListNew = new ArrayList<>();
+		for (ShareTheNextDayDataExcel item : excelList) {
+			//品牌
+			PjBrandDesc brandDescSave = new PjBrandDesc();
+			brandDescSave.setCreateUser(AuthUtil.getUserId());
+			brandDescSave.setCreateDept(Long.parseLong(AuthUtil.getDeptId()));
+			brandDescSave.setCreateTime(new Date());
+			brandDescSave.setEnableOrNot(1);
+			brandDescSave.setCname(item.getBrandName());
+			brandDescSave.setSalesCompanyId(Long.parseLong(item.getSrcSalesCompanyId()));
+			brandDescSave.setSalesCompanyName(item.getSrcSalesCompanyName());
+			brandDescSave.setType("PP");
+			brandDescSave.setSort(1);
+			brandDescSave.setWhetherIntegral("0");
+			if (!brandDescList.isEmpty()) {
+				PjBrandDesc brandDesc = brandDescList.stream().filter(e -> e.getCname().equals(item.getBrandName())).findFirst().orElse(null);
+				if (brandDesc == null) {
+					if (brandDescListNew.isEmpty()) {
+						brandDescListNew.add(brandDescSave);
+					} else {
+						if (!brandDescListNew.stream().map(PjBrandDesc::getCname).collect(Collectors.toList()).contains(item.getBrandName())) {
+							brandDescListNew.add(brandDescSave);
+						}
+					}
+				}
+			} else {
+				brandDescListNew.add(brandDescSave);
+			}
+		}
+		if (!brandDescListNew.isEmpty()) {
+			brandDescService.saveBatch(brandDescListNew);
+			if (!brandDescList.isEmpty()) {
+				brandDescList.addAll(brandDescListNew);
+			} else {
+				brandDescList = brandDescListNew;
+			}
+		}
+		List<PjGoodsDesc> goodsDescListNew = new ArrayList<>();
+		for (ShareTheNextDayDataExcel item : excelList) {
+			//商品
+			PjGoodsDesc goodsDesc = new PjGoodsDesc();
+			goodsDesc.setCreateUser(AuthUtil.getUserId());
+			goodsDesc.setCreateDept(Long.parseLong(AuthUtil.getDeptId()));
+			goodsDesc.setCreateTime(new Date());
+			goodsDesc.setCode(item.getGoodsCode());
+			goodsDesc.setCname(item.getGoodsName());
+			PjBrandDesc brandDesc = brandDescList.stream().filter(e -> e.getCname().equals(item.getBrandName())).findFirst().orElse(null);
+			if (brandDesc != null) {
+				goodsDesc.setBrandId(brandDesc.getId());
+				goodsDesc.setBrandName(brandDesc.getCname());
+			}
+			SharePutOnShelves shelves = sharePutOnShelvesListOld.stream().filter(e -> e.getBrandName().equals(item.getBrandName()) &&
+				e.getGoodsName().equals(item.getGoodsName()) &&
+				(e.getSrcSalesCompanyId() + "").equals(item.getSrcSalesCompanyId())).findFirst().orElse(null);
+			if (shelves != null) {
+				goodsDesc.setPlaceProduction(shelves.getPlaceProduction());
+				goodsDesc.setCnameInt(shelves.getGoodsInt());
+				goodsDesc.setGoodsDescription(shelves.getGoodsDescription());
+				goodsDesc.setExplosionProof(shelves.getExplosionProof());
+				goodsDesc.setOriginalFactory(shelves.getOriginalFactory());
+				goodsDesc.setSelfRecovery(shelves.getSelfRecovery());
+				goodsDesc.setGoodsSize(shelves.getGoodsSize());
+			} else {
+				throw new RuntimeException("商品:" + item.getGoodsName() + "未查到上架数据");
+			}
+			goodsDesc.setSpecificationAndModel(item.getSpecificationAndModel());
+			goodsDesc.setBrandItem(item.getBrandItem());
+			goodsDesc.setEnableOrNot(1);
+			goodsDesc.setSalesCompanyId(Long.parseLong(item.getSrcSalesCompanyId()));
+			goodsDesc.setSalesCompanyName(item.getSrcSalesCompanyName());
+			goodsDesc.setWhetherIntegral("0");
+			if (!goodsDescList.isEmpty()) {
+				PjGoodsDesc goodsDetail = goodsDescList.stream().filter(e -> e.getCode().equals(item.getGoodsName())).findFirst().orElse(null);
+				if (goodsDetail == null) {
+					goodsDescListNew.add(goodsDesc);
+				}
+			} else {
+				goodsDescListNew.add(goodsDesc);
+			}
+		}
+		if (!goodsDescListNew.isEmpty()) {
+			goodsDescService.saveBatch(goodsDescListNew);
+			if (!goodsDescList.isEmpty()) {
+				goodsDescList.addAll(goodsDescListNew);
+			} else {
+				goodsDescList = goodsDescListNew;
+			}
+		}
+		for (SharePutOnShelves item : sharePutOnShelvesList) {
+			item.setShareStatus("已确认");
+			item.setUpdateTime(new Date());
+			item.setUpdateUser(AuthUtil.getUserId());
+			if (!brandDescList.isEmpty()) {
+				PjBrandDesc brandDesc = brandDescList.stream().filter(e -> e.getCname().equals(item.getSrcBrandName())).findFirst().orElse(null);
+				if (brandDesc != null) {
+					item.setBrandId(brandDesc.getId());
+					item.setBrandName(brandDesc.getCname());
+				} else {
+					throw new RuntimeException("品牌:" + item.getSrcBrandName() + "数据错误,请联系管理员");
+				}
+			} else {
+				throw new RuntimeException("品牌:" + item.getSrcBrandName() + "数据错误,请联系管理员");
+			}
+			if (!goodsDescList.isEmpty()) {
+				PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getCode().equals(item.getSrcGoodsCode())).findFirst().orElse(null);
+				if (goodsDesc != null) {
+					item.setGoodsId(goodsDesc.getId());
+					item.setGoodsCode(goodsDesc.getCode());
+					item.setGoodsName(goodsDesc.getCname());
+					item.setGoodsInt(goodsDesc.getCnameInt());
+					item.setSpecificationAndModel(goodsDesc.getSpecificationAndModel());
+					item.setGoodsSize(goodsDesc.getGoodsSize());
+					item.setGoodsDescription(goodsDesc.getGoodsDescription());
+					item.setBrandItem(goodsDesc.getBrandItem());
+					item.setPlaceProduction(goodsDesc.getPlaceProduction());
+					item.setExplosionProof(goodsDesc.getExplosionProof());
+					item.setOriginalFactory(goodsDesc.getOriginalFactory());
+				} else {
+					throw new RuntimeException("商品编码:" + item.getSrcGoodsCode() + "数据错误,请联系管理员");
+				}
+			} else {
+				throw new RuntimeException("商品编码:" + item.getSrcGoodsCode() + "数据错误,请联系管理员");
+			}
+		}
+		if (!sharePutOnShelvesList.isEmpty()) {
+			this.updateBatchById(sharePutOnShelvesList);
+		}
+		return R.success("操作成功");
+	}
+
 }

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

@@ -1654,229 +1654,233 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			pjpfFundingItemService.save(item);
 		}*/
 		if (ObjectUtils.isNotNull(status) && "1".equals(status)) {
-			List<ShipItemsRecord> recordList = shipItemsRecordService.list(new LambdaQueryWrapper<ShipItemsRecord>()
-				.eq(ShipItemsRecord::getIsDeleted, 0)
-				.eq(ShipItemsRecord::getTenantId, AuthUtil.getTenantId())
-				.eq(ShipItemsRecord::getPid, ship.getId()));
-			if (!recordList.isEmpty()) {
-				shipItemsRecordService.removeByIds(recordList.stream().map(ShipItemsRecord::getId).collect(Collectors.toList()));
-			}
-			String firstProportion = sysClient.getParamService("first.month.proportion");
-			String secondProportion = sysClient.getParamService("second.month.proportion");
-			PjpfFunding pjpfFunding = pjpfFundingService.getOne(new LambdaQueryWrapper<PjpfFunding>()
-				.eq(PjpfFunding::getTenantId, AuthUtil.getTenantId())
-				.eq(PjpfFunding::getIsDeleted, 0));
-			if (pjpfFunding == null) {
-				throw new RuntimeException("未找到融资总账");
-			}
-			List<String> srcFinancingList = itemsList.stream().map(PjShipItems::getSrcFinancing).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-			List<FinancingShipItemDto> financingShipItemDtoList = new ArrayList<>();
-			for (String item : srcFinancingList) {
-				ObjectMapper mapper = new ObjectMapper();
-				try {
-					List<FinancingShipItemDto> entities = mapper.readValue(item, new TypeReference<List<FinancingShipItemDto>>() {
-					});
-					if (!entities.isEmpty()) {
-						financingShipItemDtoList.addAll(entities);
+			BigDecimal sendNumFinancing = itemsList.stream().map(PjShipItems::getSendNumFinancing).reduce(BigDecimal.ZERO, BigDecimal::add);
+			if (new BigDecimal("0.00").compareTo(sendNumFinancing) != 0) {
+				List<ShipItemsRecord> recordList = shipItemsRecordService.list(new LambdaQueryWrapper<ShipItemsRecord>()
+					.eq(ShipItemsRecord::getIsDeleted, 0)
+					.eq(ShipItemsRecord::getTenantId, AuthUtil.getTenantId())
+					.eq(ShipItemsRecord::getPid, ship.getId()));
+				if (!recordList.isEmpty()) {
+					shipItemsRecordService.removeByIds(recordList.stream().map(ShipItemsRecord::getId).collect(Collectors.toList()));
+				}
+				String firstProportion = sysClient.getParamService("first.month.proportion");
+				String secondProportion = sysClient.getParamService("second.month.proportion");
+				PjpfFunding pjpfFunding = pjpfFundingService.getOne(new LambdaQueryWrapper<PjpfFunding>()
+					.eq(PjpfFunding::getTenantId, AuthUtil.getTenantId())
+					.eq(PjpfFunding::getIsDeleted, 0));
+				if (pjpfFunding == null) {
+					throw new RuntimeException("未找到融资总账");
+				}
+				List<String> srcFinancingList = itemsList.stream().map(PjShipItems::getSrcFinancing).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+				List<FinancingShipItemDto> financingShipItemDtoList = new ArrayList<>();
+				for (String item : srcFinancingList) {
+					ObjectMapper mapper = new ObjectMapper();
+					try {
+						List<FinancingShipItemDto> entities = mapper.readValue(item, new TypeReference<List<FinancingShipItemDto>>() {
+						});
+						if (!entities.isEmpty()) {
+							financingShipItemDtoList.addAll(entities);
+						}
+					} catch (JsonProcessingException e) {
+						throw new RuntimeException(e);
 					}
-				} catch (JsonProcessingException e) {
-					throw new RuntimeException(e);
-				}
-			}
-			List<PjOrder> orderList = orderMapper.selectList(new LambdaQueryWrapper<PjOrder>()
-				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
-				.eq(PjOrder::getIsDeleted, 0)
-				.eq(PjOrder::getWhetherFinancing, "1")
-				.eq(PjOrder::getBsType, "RZCG")
-				.orderByAsc(PjOrder::getBusinesDate)
-			);
-			List<Long> ordIds = orderList.stream().map(PjOrder::getId).collect(Collectors.toList());
-			List<PjOrderItems> orderItemsList = new ArrayList<>();
-			if (!ordIds.isEmpty()) {
-				List<Long> ids = financingShipItemDtoList.stream().map(FinancingShipItemDto::getId).filter(Objects::nonNull)
-					.distinct().collect(Collectors.toList());
-				if (!ids.isEmpty()) {
-					orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-						.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-						.eq(PjOrderItems::getIsDeleted, 0)
-						.eq(PjOrderItems::getBizType, "RZCG")
-						.in(PjOrderItems::getPid, ordIds)
-						.in(PjOrderItems::getId, ids)
-						.orderByAsc(PjOrderItems::getCreateTime)
-					);
 				}
-			}
-			BigDecimal amount = new BigDecimal("0.00");
-			for (PjShipItems item : itemsList) {
-				if (new BigDecimal("0").compareTo(item.getSendNumFinancing()) != 0) {
-					BigDecimal costprie = item.getSendNumFinancing().multiply(item.getCostpriePrice());
-					amount = amount.add(costprie);
+				List<PjOrder> orderList = orderMapper.selectList(new LambdaQueryWrapper<PjOrder>()
+					.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrder::getIsDeleted, 0)
+					.eq(PjOrder::getWhetherFinancing, "1")
+					.eq(PjOrder::getBsType, "RZCG")
+					.orderByAsc(PjOrder::getBusinesDate)
+				);
+				List<Long> ordIds = orderList.stream().map(PjOrder::getId).collect(Collectors.toList());
+				List<PjOrderItems> orderItemsList = new ArrayList<>();
+				if (!ordIds.isEmpty()) {
+					List<Long> ids = financingShipItemDtoList.stream().map(FinancingShipItemDto::getId).filter(Objects::nonNull)
+						.distinct().collect(Collectors.toList());
+					if (!ids.isEmpty()) {
+						orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+							.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+							.eq(PjOrderItems::getIsDeleted, 0)
+							.eq(PjOrderItems::getBizType, "RZCG")
+							.in(PjOrderItems::getPid, ordIds)
+							.in(PjOrderItems::getId, ids)
+							.orderByAsc(PjOrderItems::getCreateTime)
+						);
+					}
 				}
-			}
-			if (amount.compareTo(new BigDecimal("0.00")) != 0) {
-				for (PjOrderItems items : orderItemsList) {
-					FinancingShipItemDto pjOrderItems = financingShipItemDtoList.stream().filter(e -> e.getId().equals(items.getId())).findFirst().orElse(null);
-					if (pjOrderItems != null) {
-						items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(pjOrderItems.getNum()));
-						items.setThisOutGoodsTotalShipNum(pjOrderItems.getNum());
-						items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(pjOrderItems.getAmount()));
-						items.setThisOutGoodsTotalShipAmount(pjOrderItems.getAmount());
+				BigDecimal amount = new BigDecimal("0.00");
+				for (PjShipItems item : itemsList) {
+					if (new BigDecimal("0").compareTo(item.getSendNumFinancing()) != 0) {
+						BigDecimal costprie = item.getSendNumFinancing().multiply(item.getCostpriePrice());
+						amount = amount.add(costprie);
 					}
 				}
-				orderItemsService.updateBatchById(orderItemsList);
-				pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().add(amount));
-				BigDecimal bondAmountSum = new BigDecimal("0.00");
-				BigDecimal fundingAmountSum = new BigDecimal("0.00");
-				BigDecimal availableAmountSum = new BigDecimal("0.00");
-				List<Long> orderIdsList = financingShipItemDtoList.stream().map(FinancingShipItemDto::getPid).filter(Objects::nonNull)
-					.distinct().collect(Collectors.toList());
-				for (PjOrder items : orderList) {
-					List<PjOrderItems> pjOrderItems = orderItemsList.stream().filter(e -> items.getId().equals(e.getPid()))
-						.collect(Collectors.toList());
-					if (!pjOrderItems.isEmpty()) {
-						BigDecimal thisSendSum = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipNum)
-							.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal thisSendAmount = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipAmount)
-							.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(thisSendSum));
-						items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(thisSendAmount));
-						if (ObjectUtils.isNotNull(items.getSalesAmount()) && new BigDecimal("0.00").compareTo(items.getSalesAmount()) != 0) {
-							if (orderIdsList.contains(items.getId())) {
-								if (!"1".equals(items.getWhetherRedeem())) {
-									Date currentDate = new Date();
-									Calendar calendar = Calendar.getInstance();
-									calendar.setTime(currentDate);
-									calendar.add(Calendar.DAY_OF_MONTH, -60);
-									Date thirtyDayAgo = calendar.getTime();
-									List<Long> itemIdList = financingShipItemDtoList.stream().filter(e -> e.getPid().equals(items.getId())).map(FinancingShipItemDto::getItemId).collect(Collectors.toList());
-									List<PjShipItems> shipItems = new ArrayList<>();
-									if (!itemIdList.isEmpty()) {
-										shipItems = itemsList.stream().filter(e -> itemIdList.contains(e.getId())).collect(Collectors.toList());
-									}
-									if (currentDate.compareTo(thirtyDayAgo) > 0) {
-										String secondProportionOld = "";
-										if (!shipItems.isEmpty() && ObjectUtils.isNotNull(shipItems.get(0).getProportion())) {
-											secondProportionOld = shipItems.get(0).getProportion();
-										} else {
-											throw new RuntimeException("未找到出库融资比例");
+				if (amount.compareTo(new BigDecimal("0.00")) != 0) {
+					for (PjOrderItems items : orderItemsList) {
+						FinancingShipItemDto pjOrderItems = financingShipItemDtoList.stream().filter(e -> e.getId().equals(items.getId())).findFirst().orElse(null);
+						if (pjOrderItems != null) {
+							items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(pjOrderItems.getNum()));
+							items.setThisOutGoodsTotalShipNum(pjOrderItems.getNum());
+							items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(pjOrderItems.getAmount()));
+							items.setThisOutGoodsTotalShipAmount(pjOrderItems.getAmount());
+						}
+					}
+					orderItemsService.updateBatchById(orderItemsList);
+					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().add(amount));
+					BigDecimal bondAmountSum = new BigDecimal("0.00");
+					BigDecimal fundingAmountSum = new BigDecimal("0.00");
+					BigDecimal availableAmountSum = new BigDecimal("0.00");
+					List<Long> orderIdsList = financingShipItemDtoList.stream().map(FinancingShipItemDto::getPid).filter(Objects::nonNull)
+						.distinct().collect(Collectors.toList());
+					for (PjOrder items : orderList) {
+						List<PjOrderItems> pjOrderItems = orderItemsList.stream().filter(e -> items.getId().equals(e.getPid()))
+							.collect(Collectors.toList());
+						if (!pjOrderItems.isEmpty()) {
+							BigDecimal thisSendSum = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipNum)
+								.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+							BigDecimal thisSendAmount = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipAmount)
+								.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+							items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(thisSendSum));
+							items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(thisSendAmount));
+							if (ObjectUtils.isNotNull(items.getSalesAmount()) && new BigDecimal("0.00").compareTo(items.getSalesAmount()) != 0) {
+								if (orderIdsList.contains(items.getId())) {
+									if (!"1".equals(items.getWhetherRedeem())) {
+										Date currentDate = new Date();
+										Calendar calendar = Calendar.getInstance();
+										calendar.setTime(currentDate);
+										calendar.add(Calendar.DAY_OF_MONTH, -60);
+										Date thirtyDayAgo = calendar.getTime();
+										List<Long> itemIdList = financingShipItemDtoList.stream().filter(e -> e.getPid().equals(items.getId())).map(FinancingShipItemDto::getItemId).collect(Collectors.toList());
+										List<PjShipItems> shipItems = new ArrayList<>();
+										if (!itemIdList.isEmpty()) {
+											shipItems = itemsList.stream().filter(e -> itemIdList.contains(e.getId())).collect(Collectors.toList());
 										}
-										String[] arr = secondProportionOld.split(":");
-										BigDecimal bondAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										BigDecimal fundingAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										availableAmountSum = availableAmountSum.add(bondAmount);
-										items.setBondAmount(items.getBondAmount().add(bondAmount));
-										items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
-										bondAmountSum = bondAmountSum.add(bondAmount);
-										fundingAmountSum = fundingAmountSum.add(fundingAmount);
-									} else {
-										String firstProportionOld = "";
-										if (!shipItems.isEmpty() && ObjectUtils.isNotNull(shipItems.get(0).getProportion())) {
-											firstProportionOld = shipItems.get(0).getProportion();
+										if (currentDate.compareTo(thirtyDayAgo) > 0) {
+											String secondProportionOld = "";
+											if (!shipItems.isEmpty() && ObjectUtils.isNotNull(shipItems.get(0).getProportion())) {
+												secondProportionOld = shipItems.get(0).getProportion();
+											} else {
+												throw new RuntimeException("未找到出库融资比例");
+											}
+											String[] arr = secondProportionOld.split(":");
+											BigDecimal bondAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											BigDecimal fundingAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											availableAmountSum = availableAmountSum.add(bondAmount);
+											items.setBondAmount(items.getBondAmount().add(bondAmount));
+											items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
+											bondAmountSum = bondAmountSum.add(bondAmount);
+											fundingAmountSum = fundingAmountSum.add(fundingAmount);
 										} else {
-											throw new RuntimeException("未找到出库融资比例");
+											String firstProportionOld = "";
+											if (!shipItems.isEmpty() && ObjectUtils.isNotNull(shipItems.get(0).getProportion())) {
+												firstProportionOld = shipItems.get(0).getProportion();
+											} else {
+												throw new RuntimeException("未找到出库融资比例");
+											}
+											String[] arr = firstProportionOld.split(":");
+											BigDecimal bondAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											BigDecimal fundingAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											availableAmountSum = availableAmountSum.add(bondAmount);
+											items.setBondAmount(items.getBondAmount().add(bondAmount));
+											items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
+											bondAmountSum = bondAmountSum.add(bondAmount);
+											fundingAmountSum = fundingAmountSum.add(fundingAmount);
 										}
-										String[] arr = firstProportionOld.split(":");
-										BigDecimal bondAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										BigDecimal fundingAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										availableAmountSum = availableAmountSum.add(bondAmount);
-										items.setBondAmount(items.getBondAmount().add(bondAmount));
-										items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
-										bondAmountSum = bondAmountSum.add(bondAmount);
-										fundingAmountSum = fundingAmountSum.add(fundingAmount);
 									}
-								}
-							} else {
-								if (!"1".equals(items.getWhetherRedeem())) {
-									Date currentDate = new Date();
-									Calendar calendar = Calendar.getInstance();
-									calendar.setTime(currentDate);
-									calendar.add(Calendar.DAY_OF_MONTH, -60);
-									Date thirtyDayAgo = calendar.getTime();
-									List<Long> itemIdList = financingShipItemDtoList.stream().filter(e -> e.getPid().equals(items.getId())).map(FinancingShipItemDto::getId).collect(Collectors.toList());
-									List<PjShipItems> shipItems = new ArrayList<>();
-									if (!itemIdList.isEmpty()) {
-										shipItems = itemsList.stream().filter(e -> itemIdList.contains(e.getId())).collect(Collectors.toList());
-									}
-									if (currentDate.compareTo(thirtyDayAgo) > 0) {
-										if (!shipItems.isEmpty()) {
-											for (PjShipItems shipItems1 : itemsList) {
-												shipItems1.setProportion(firstProportion);
-											}
+								} else {
+									if (!"1".equals(items.getWhetherRedeem())) {
+										Date currentDate = new Date();
+										Calendar calendar = Calendar.getInstance();
+										calendar.setTime(currentDate);
+										calendar.add(Calendar.DAY_OF_MONTH, -60);
+										Date thirtyDayAgo = calendar.getTime();
+										List<Long> itemIdList = financingShipItemDtoList.stream().filter(e -> e.getPid().equals(items.getId())).map(FinancingShipItemDto::getId).collect(Collectors.toList());
+										List<PjShipItems> shipItems = new ArrayList<>();
+										if (!itemIdList.isEmpty()) {
+											shipItems = itemsList.stream().filter(e -> itemIdList.contains(e.getId())).collect(Collectors.toList());
 										}
-										String[] arr = firstProportion.split(":");
-										BigDecimal bondAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										BigDecimal fundingAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										availableAmountSum = availableAmountSum.add(bondAmount);
-										items.setBondAmount(items.getBondAmount().add(bondAmount));
-										items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
-										bondAmountSum = bondAmountSum.add(bondAmount);
-										fundingAmountSum = fundingAmountSum.add(fundingAmount);
-									} else {
-										if (!shipItems.isEmpty()) {
-											for (PjShipItems shipItems1 : shipItems) {
-												shipItems1.setProportion(secondProportion);
+										if (currentDate.compareTo(thirtyDayAgo) > 0) {
+											if (!shipItems.isEmpty()) {
+												for (PjShipItems shipItems1 : itemsList) {
+													shipItems1.setProportion(firstProportion);
+												}
+											}
+											String[] arr = firstProportion.split(":");
+											BigDecimal bondAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											BigDecimal fundingAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											availableAmountSum = availableAmountSum.add(bondAmount);
+											items.setBondAmount(items.getBondAmount().add(bondAmount));
+											items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
+											bondAmountSum = bondAmountSum.add(bondAmount);
+											fundingAmountSum = fundingAmountSum.add(fundingAmount);
+										} else {
+											if (!shipItems.isEmpty()) {
+												for (PjShipItems shipItems1 : shipItems) {
+													shipItems1.setProportion(secondProportion);
+												}
 											}
+											String[] arr = secondProportion.split(":");
+											BigDecimal bondAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											BigDecimal fundingAmount = thisSendAmount.multiply(
+												(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+													.setScale(2, RoundingMode.HALF_UP)));
+											availableAmountSum = availableAmountSum.add(bondAmount);
+											items.setBondAmount(items.getBondAmount().add(bondAmount));
+											items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
+											bondAmountSum = bondAmountSum.add(bondAmount);
+											fundingAmountSum = fundingAmountSum.add(fundingAmount);
 										}
-										String[] arr = secondProportion.split(":");
-										BigDecimal bondAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										BigDecimal fundingAmount = thisSendAmount.multiply(
-											(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
-												.setScale(2, RoundingMode.HALF_UP)));
-										availableAmountSum = availableAmountSum.add(bondAmount);
-										items.setBondAmount(items.getBondAmount().add(bondAmount));
-										items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
-										bondAmountSum = bondAmountSum.add(bondAmount);
-										fundingAmountSum = fundingAmountSum.add(fundingAmount);
 									}
 								}
 							}
+							orderMapper.updateById(items);
 						}
-						orderMapper.updateById(items);
-					}
 
+					}
+					//可用金额 = 原可用金额 + 本次释放金额
+					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(availableAmountSum));
+					pjpfFunding.setSurplusFundingAmount(pjpfFunding.getSurplusFundingAmount().add(fundingAmountSum));
+					pjpfFunding.setPaidAlreadyBondAmount(pjpfFunding.getPaidAlreadyBondAmount().add(bondAmountSum));
+					pjpfFunding.setBondAmount(pjpfFunding.getBondAmount().add(bondAmountSum));
+					//总金额 = 保证金 + 在库融资金额
+					pjpfFunding.setAmount(pjpfFunding.getAmount().add(amount));
+					//融资金额 = 原融资金额 + (本次出库金额-本次释放金额)
+					pjpfFunding.setFundingAmount(pjpfFunding.getFundingAmount().subtract(fundingAmountSum));
+					pjpfFunding.setProportion(pjpfFunding.getBondAmount().divide(pjpfFunding.getAmount(), MathContext.DECIMAL32)
+						.setScale(2, RoundingMode.HALF_UP));
+					pjpfFundingService.updateById(pjpfFunding);
+					PjpfFundingItem item = new PjpfFundingItem();
+					item.setPid(pjpfFunding.getId());
+					item.setTenantId(AuthUtil.getTenantId());
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					item.setCreateDept(pjpfFunding.getCreateDept());
+					item.setCreateDeptName(pjpfFunding.getCreateDeptName());
+					item.setType("撤销出库");
+					item.setSrcId(ship.getId());
+					item.setSrcNo(ship.getBillno());
+					item.setAmount(amount);
+					item.setFundingAmount(fundingAmountSum);
+					item.setBondAmount(bondAmountSum);
+					pjpfFundingItemService.save(item);
 				}
-				//可用金额 = 原可用金额 + 本次释放金额
-				pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(availableAmountSum));
-				pjpfFunding.setSurplusFundingAmount(pjpfFunding.getSurplusFundingAmount().add(fundingAmountSum));
-				pjpfFunding.setPaidAlreadyBondAmount(pjpfFunding.getPaidAlreadyBondAmount().add(bondAmountSum));
-				pjpfFunding.setBondAmount(pjpfFunding.getBondAmount().add(bondAmountSum));
-				//总金额 = 保证金 + 在库融资金额
-				pjpfFunding.setAmount(pjpfFunding.getAmount().add(amount));
-				//融资金额 = 原融资金额 + (本次出库金额-本次释放金额)
-				pjpfFunding.setFundingAmount(pjpfFunding.getFundingAmount().subtract(fundingAmountSum));
-				pjpfFunding.setProportion(pjpfFunding.getBondAmount().divide(pjpfFunding.getAmount(), MathContext.DECIMAL32)
-					.setScale(2, RoundingMode.HALF_UP));
-				pjpfFundingService.updateById(pjpfFunding);
-				PjpfFundingItem item = new PjpfFundingItem();
-				item.setPid(pjpfFunding.getId());
-				item.setTenantId(AuthUtil.getTenantId());
-				item.setCreateTime(new Date());
-				item.setCreateUser(AuthUtil.getUserId());
-				item.setCreateUserName(AuthUtil.getUserName());
-				item.setCreateDept(pjpfFunding.getCreateDept());
-				item.setCreateDeptName(pjpfFunding.getCreateDeptName());
-				item.setType("撤销出库");
-				item.setSrcId(ship.getId());
-				item.setSrcNo(ship.getBillno());
-				item.setAmount(amount);
-				item.setFundingAmount(fundingAmountSum);
-				item.setBondAmount(bondAmountSum);
-				pjpfFundingItemService.save(item);
 			}
+
 		}
 		//生成出库工单历史记录
 		saveHistory(ship.getId(), OrderTypeEnum.TOBESHIPPEDOUT.getType());

+ 13 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shopping/controller/ShoppingMallDetailController.java

@@ -368,6 +368,12 @@ public class ShoppingMallDetailController extends BladeController {
 									if (!pjBarndFilesList1.isEmpty()) {
 										item.setFilesList(BeanUtil.copy(pjBarndFilesList1, PjProductLaunchFiles.class));
 									}
+								} else {
+									List<PjProductLaunchFiles> filesList = new ArrayList<>();
+									PjProductLaunchFiles files = new PjProductLaunchFiles();
+									files.setUrl(item.getUrl());
+									filesList.add(files);
+									item.setFilesList(filesList);
 								}
 							}
 						}
@@ -398,6 +404,12 @@ public class ShoppingMallDetailController extends BladeController {
 								if (!pjBarndFilesList1.isEmpty()) {
 									item.setFilesList(BeanUtil.copy(pjBarndFilesList1, PjProductLaunchFiles.class));
 								}
+							}else {
+								List<PjProductLaunchFiles> filesList = new ArrayList<>();
+								PjProductLaunchFiles files = new PjProductLaunchFiles();
+								files.setUrl(item.getUrl());
+								filesList.add(files);
+								item.setFilesList(filesList);
 							}
 						}
 					}
@@ -427,7 +439,7 @@ public class ShoppingMallDetailController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	public R<Map<String, Object>> listShareV1(PjStockDesc stockDesc) {
 		Map<String, Object> map = new HashMap<>();
-		if (ObjectUtils.isNull(stockDesc.getCode())){
+		if (ObjectUtils.isNull(stockDesc.getCode())) {
 			map.put("storeInventory", "0");
 			map.put("storeInventoryShare", "0");
 			return R.data(map);

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

@@ -28,6 +28,7 @@
         <result column="is_deleted" property="isDeleted"/>
         <result column="share_cost" property="shareCost"/>
         <result column="bill_type" property="billType"/>
+        <result column="url" property="url"/>
     </resultMap>