Kaynağa Gözat

轮胎商城:1.采购售后-出库完成,撤销出库融资逻辑修改
2.商品excel导入bug修改

纪新园 7 ay önce
ebeveyn
işleme
6a9b3e8347

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

@@ -74,6 +74,7 @@ public class PjpfFundingController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入pjpfFunding")
 	public R<IPage<PjpfFunding>> list(PjpfFunding pjpfFunding, Query query) {
+		pjpfFunding.setTenantId(AuthUtil.getTenantId());
 		IPage<PjpfFunding> pages = pjpfFundingService.page(Condition.getPage(query), Condition.getQueryWrapper(pjpfFunding));
 		List<Long> idList = pages.getRecords().stream().map(PjpfFunding::getId).collect(Collectors.toList());
 		List<PjpfFundingItem> fundingItemList = pjpfFundingItemService.list(new LambdaQueryWrapper<PjpfFundingItem>()

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

@@ -275,6 +275,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		LambdaQueryWrapper<PjGoodsDesc> goodsDescLambdaQueryWrapper = new LambdaQueryWrapper<PjGoodsDesc>()
 			.eq(PjGoodsDesc::getIsDeleted, 0)
 			.eq(PjGoodsDesc::getEnableOrNot, 1)
+			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.in(PjGoodsDesc::getCname, goodsNames);
 		if ("1".equals(whetherIntegral)) {
 			goodsDescLambdaQueryWrapper.eq(PjGoodsDesc::getWhetherIntegral, whetherIntegral);

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

@@ -1029,7 +1029,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 							}
 							BigDecimal number = shipItems.getSendNumFinancing();
 							//获取出库明细商品对应融资采购商品明细
-							if (new BigDecimal("0").compareTo(shipItems.getSendNumFinancing()) == 0){
+							if (new BigDecimal("0").compareTo(shipItems.getSendNumFinancing()) == 0) {
 								continue;
 							}
 							List<PjOrderItems> orderItemList = orderItemsList.stream().filter(e -> e.getGoodsId().equals(shipItems.getGoodsId())).collect(Collectors.toList());
@@ -3865,6 +3865,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		BigDecimal goodsNum = pjOrderItemsList.stream().map(PjOrderItems::getReturnsNumber).reduce(BigDecimal.ZERO, BigDecimal::add);
 		//发货数量和
 		BigDecimal sendNum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum).reduce(BigDecimal.ZERO, BigDecimal::add);
+		BigDecimal amount = pjOrderItemsList.stream().map(PjOrderItems::getSubTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
 		PjOrder order = orderMapper.selectById(ship.getOrdId());
 		if (ObjectUtil.isNotEmpty(order)) {
 			order.setShipType(ship.getShipType());
@@ -3899,254 +3900,53 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		}
 		if (ObjectUtils.isNotNull(status) && "1".equals(status) && "1".equals(storageDesc.getWhetherFinancing())) {
 			String firstProportion = sysClient.getParamService("first.month.proportion");
-			String secondProportion = sysClient.getParamService("second.month.proportion");
-			String financingDays = sysClient.getParamService("financing.days");
-			int days = -90;
-			if (ObjectUtils.isNotNull(financingDays) && !"获取数据失败".equals(financingDays)) {
-				days = -Integer.parseInt(financingDays);
-			}
 			PjpfFunding pjpfFunding = pjpfFundingService.getOne(new LambdaQueryWrapper<PjpfFunding>()
 				.eq(PjpfFunding::getTenantId, AuthUtil.getTenantId())
 				.eq(PjpfFunding::getIsDeleted, 0));
 			if (pjpfFunding == null) {
 				throw new RuntimeException("未找到融资总账");
 			}
-			Date date = new Date();
-			Calendar calendarDate = Calendar.getInstance();
-			calendarDate.setTime(date);
-			calendarDate.add(Calendar.DAY_OF_MONTH, days);
-			Date dateTime = calendarDate.getTime();
-			//获取融资采购单主表数据
-			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")
-				.ge(PjOrder::getBusinesDate, dateTime)
-				.apply("goods_total_ship_num > out_goods_total_ship_num")
-				.orderByAsc(PjOrder::getBusinesDate)
-			);
-			List<Long> ordIds = orderList.stream().map(PjOrder::getId).collect(Collectors.toList());
-			List<Long> goodsList = shipItemsList.stream().map(PjShipItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-			//获取融资采购单明细数据
-			List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-				.eq(PjOrderItems::getIsDeleted, 0)
-				.eq(PjOrderItems::getBizType, "RZCG")
-				.in(PjOrderItems::getGoodsId, goodsList)
-				.in(PjOrderItems::getPid, ordIds)
-				.apply("send_num > out_goods_total_ship_num")
-				.orderByAsc(PjOrderItems::getCreateTime)
-			);
-			BigDecimal amountSum = new BigDecimal("0.00");
-			if (!orderItemsList.isEmpty()) {
-				List<PjOrder> orders = orderList.stream().filter(e -> e.getWhetherRedeem().equals("0")).distinct().collect(Collectors.toList());
-				if (!orders.isEmpty()) {
-					/*if (pjpfFunding.getBondAmount().compareTo(pjpfFunding.getPaidAlreadyBondAmount()) > 0) {
-						throw new RuntimeException("已缴保证金不足,出库失败");
-					}*/
-					BigDecimal amount = shipItemsList.stream().map(PjShipItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-					if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amount) < 0) {
-						throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()) + "小于本次出库金额:" + amount + ",出库失败");
-					}
-					amountSum = amount;
-					pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(amount));
-//					pjpfFunding.setFundingAmount(pjpfFunding.getFundingAmount().add(amount));
-				}
-			}
-			List<FinancingShipItemDto> allList = new ArrayList<>();
-			List<ShipItemsRecord> recordList = new ArrayList<>();
-			//本次发货对应采购明细
-			List<PjOrderItems> orderItemList1 = new ArrayList<>();
-			//出库明细循环
-			for (PjShipItems shipItems : shipItemsList) {
-				if (ObjectUtils.isNull(shipItems.getCostprie()) || shipItems.getCostprie().compareTo(new BigDecimal("0.00")) == 0) {
-					throw new RuntimeException("获取数据失败,请重新生成出库工单");
-				}
-				BigDecimal number = shipItems.getSendNum();
-				//获取出库明细商品对应融资采购商品明细
-				List<PjOrderItems> orderItemList = orderItemsList.stream().filter(e -> e.getGoodsId().equals(shipItems.getGoodsId())).collect(Collectors.toList());
-				List<FinancingShipItemDto> mapList = new ArrayList<>();
-				if (number.compareTo(new BigDecimal("0.00")) > 0) {
-					//采购商品明细循环
-					for (PjOrderItems orderItems1 : orderItemList) {
-						if (orderItems1.getGoodsId().equals(shipItems.getGoodsId())) {
-							//记录出库明细对应融资采购单据
-							ShipItemsRecord shipItemsRecord = new ShipItemsRecord();
-							shipItemsRecord.setBillNo(ship.getBillno());
-							shipItemsRecord.setPid(shipItems.getPid());
-							shipItemsRecord.setItemId(shipItems.getId());
-							shipItemsRecord.setSrcId(orderItems1.getPid());
-							shipItemsRecord.setSrcItemId(orderItems1.getId());
-							shipItemsRecord.setSrcOrd(orderItems1.getBillNo());
-							shipItemsRecord.setCreateUser(AuthUtil.getUserId());
-							shipItemsRecord.setCreateUserName(AuthUtil.getUserName());
-							shipItemsRecord.setCreateTime(new Date());
-							//记录具体出库数量,来源融资采购明细
-							FinancingShipItemDto financingShipItemDto = new FinancingShipItemDto();
-							financingShipItemDto.setId(orderItems1.getId());
-							financingShipItemDto.setPid(orderItems1.getPid());
-							financingShipItemDto.setItemId(shipItems.getId());
-							BigDecimal subNum = orderItems1.getSendNum().subtract(orderItems1.getOutGoodsTotalShipNum());
-							//剩余数量 = 入库数量-已出数量
-							//修改明细出库数量
-							if (new BigDecimal("0.00").compareTo(subNum) != 0) {
-								if (number.compareTo(subNum) > 0) {
-									financingShipItemDto.setNum(subNum);
-									financingShipItemDto.setAmount(subNum.multiply(orderItems1.getPrice()));
-									shipItemsRecord.setNum(subNum);
-									shipItemsRecord.setAmount(subNum.multiply(orderItems1.getPrice()));
-									//本次出库数量大于剩余数量  融资采购明细出库数量=入库数量
-									orderItems1.setOutGoodsTotalShipNum(orderItems1.getSendNum());
-									orderItems1.setThisOutGoodsTotalShipNum(subNum);
-									orderItems1.setOutGoodsTotalShipAmount(orderItems1.getOutGoodsTotalShipNum().multiply(orderItems1.getPrice()));
-									orderItems1.setThisOutGoodsTotalShipAmount(subNum.multiply(orderItems1.getPrice()));
-									number = number.subtract(subNum);
-								} else if (number.compareTo(subNum) == 0) {
-									financingShipItemDto.setNum(subNum);
-									financingShipItemDto.setAmount(subNum.multiply(orderItems1.getPrice()));
-									shipItemsRecord.setNum(subNum);
-									shipItemsRecord.setAmount(subNum.multiply(orderItems1.getPrice()));
-									//本次出库数量等于剩余数量  融资采购明细出库数量=入库数量
-									orderItems1.setOutGoodsTotalShipNum(orderItems1.getSendNum());
-									orderItems1.setThisOutGoodsTotalShipNum(subNum);
-									orderItems1.setOutGoodsTotalShipAmount(orderItems1.getOutGoodsTotalShipNum().multiply(orderItems1.getPrice()));
-									orderItems1.setThisOutGoodsTotalShipAmount(subNum.multiply(orderItems1.getPrice()));
-									number = new BigDecimal("0.00");
-								} else {
-									financingShipItemDto.setNum(number);
-									financingShipItemDto.setAmount(number.multiply(orderItems1.getPrice()));
-									shipItemsRecord.setNum(number);
-									shipItemsRecord.setAmount(number.multiply(orderItems1.getPrice()));
-									//本次出库数量小于剩余数量  融资采购明细出库数量=入库数量-本次出库数量
-									orderItems1.setOutGoodsTotalShipNum(orderItems1.getOutGoodsTotalShipNum().add(number));
-									orderItems1.setThisOutGoodsTotalShipNum(number);
-									orderItems1.setOutGoodsTotalShipAmount(orderItems1.getOutGoodsTotalShipNum().multiply(orderItems1.getPrice()));
-									orderItems1.setThisOutGoodsTotalShipAmount(number.multiply(orderItems1.getPrice()));
-									number = new BigDecimal("0.00");
-								}
-								mapList.add(financingShipItemDto);
-								recordList.add(shipItemsRecord);
-							}
-						}
-						orderItemList1.add(orderItems1);
-					}
-				}
-				if (!mapList.isEmpty()) {
-					ObjectMapper mapper = new ObjectMapper();
-					try {
-						String jsonString = mapper.writeValueAsString(mapList);
-						shipItems.setSrcFinancing(jsonString);
-					} catch (Exception e) {
-						System.err.println(e.getMessage());
-						throw new RuntimeException(e);
-					}
-					allList.addAll(mapList);
-				}
-			}
-			if (!recordList.isEmpty()) {
-				shipItemsRecordService.saveBatch(recordList);
-			}
-			orderItemsService.updateBatchById(orderItemList1);
-			if (!orderItemList1.isEmpty()) {
-				//本次保证金
-				BigDecimal bondAmountSum = new BigDecimal("0.00");
-				//本次融资金额
-				BigDecimal fundingAmountSum = new BigDecimal("0.00");
-				//保证金释放金额
-				BigDecimal availableAmountSum = new BigDecimal("0.00");
-				for (PjOrder items : orderList) {
-					List<PjOrderItems> pjOrderItems = orderItemList1.stream().filter(e -> items.getId().equals(e.getPid()))
-						.collect(Collectors.toList());
-					//重新合计融资采购已出数量,金额
-					if (!pjOrderItems.isEmpty()) {
-						//本次发货数量
-						BigDecimal thisSendSum = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipNum)
-							.reduce(BigDecimal.ZERO, BigDecimal::add);
-						//本次发货金额
-						BigDecimal thisSendAmount = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipAmount)
-							.reduce(BigDecimal.ZERO, BigDecimal::add);
-						items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().add(thisSendSum));
-						items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().add(thisSendAmount));
-						if (ObjectUtils.isNotNull(items.getSalesAmount()) && new BigDecimal("0.00").compareTo(items.getSalesAmount()) != 0) {
-							//重新计算所有未赎回融资采购,保证金,融资金额
-							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();
-								//判断本融资采购单据是否超过两个月 未超过按第一个比例计算,否则按第二个比例计算
-								if (currentDate.compareTo(thirtyDayAgo) > 0) {
-									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().subtract(bondAmount));
-									items.setFundingAmount(items.getFundingAmount().subtract(fundingAmount));
-									bondAmountSum = bondAmountSum.add(bondAmount);
-									fundingAmountSum = fundingAmountSum.add(fundingAmount);
-								} else {
-									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().subtract(bondAmount));
-									items.setFundingAmount(items.getFundingAmount().subtract(fundingAmount));
-									bondAmountSum = bondAmountSum.add(bondAmount);
-									fundingAmountSum = fundingAmountSum.add(fundingAmount);
-								}
-							}
-						}
-						orderMapper.updateById(items);
-					}
-				}
-				//可用金额 = 原可用金额 + 本次释放金额
-				pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().add(availableAmountSum));
-				pjpfFunding.setSurplusFundingAmount(pjpfFunding.getSurplusFundingAmount().subtract(fundingAmountSum));
-				pjpfFunding.setPaidAlreadyBondAmount(pjpfFunding.getPaidAlreadyBondAmount().subtract(bondAmountSum));
-				pjpfFunding.setBondAmount(pjpfFunding.getBondAmount().subtract(bondAmountSum));
-				//总金额 = 保证金 + 在库融资金额
-				pjpfFunding.setAmount(pjpfFunding.getAmount().subtract(amountSum));
-				//融资金额 = 原融资金额 + (本次出库金额-本次释放金额)
-				pjpfFunding.setFundingAmount(pjpfFunding.getFundingAmount().add(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(amountSum);
-				item.setFundingAmount(fundingAmountSum);
-				item.setBondAmount(bondAmountSum);
-				pjpfFundingItemService.save(item);
-				for (PjShipItems shipItems : shipItemsList) {
-					List<PjOrderItems> orderItems = pjOrderItemsList.stream().filter(e -> e.getId().equals(shipItems.getSrcItemId())).collect(Collectors.toList());
-					for (PjOrderItems items : orderItems) {
-						items.setProportion(shipItems.getProportion());
-						items.setSrcFinancing(shipItems.getSrcFinancing());
-					}
-				}
-			}
+			//本次保证金
+			BigDecimal bondAmountSum = new BigDecimal("0.00");
+			//本次融资金额
+			BigDecimal fundingAmountSum = new BigDecimal("0.00");
+			String[] arr = firstProportion.split(":");
+			//计算本次金额的保证金
+			BigDecimal bondAmount = amount.multiply(
+				(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+					.setScale(2, RoundingMode.HALF_UP)));
+			//计算本次金额的融资金额
+			BigDecimal fundingAmount = amount.multiply(
+				(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+					.setScale(2, RoundingMode.HALF_UP)));
+			bondAmountSum = bondAmountSum.add(bondAmount);
+			fundingAmountSum = fundingAmountSum.add(fundingAmount);
+			pjpfFunding.setSurplusFundingAmount(pjpfFunding.getSurplusFundingAmount().subtract(fundingAmountSum));
+			pjpfFunding.setPaidAlreadyBondAmount(pjpfFunding.getPaidAlreadyBondAmount().subtract(bondAmountSum));
+			pjpfFunding.setBondAmount(pjpfFunding.getBondAmount().subtract(bondAmountSum));
+			//总金额 = 保证金 + 在库融资金额
+			pjpfFunding.setAmount(pjpfFunding.getAmount().subtract(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);
 		}
 		orderMapper.updateById(order);
 		return R.data(ship);
@@ -4329,133 +4129,46 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		//生成出库工单历史记录
 		saveHistory(ship.getId(), OrderTypeEnum.TOBESHIPPEDOUT.getType());
 		String status = sysClient.getParamService("whether.financing");
+		//融资流程
 		PjStorageDesc storageDesc = storageDescMapper.selectById(ship.getStorageId());
 		if (storageDesc == null) {
 			throw new RuntimeException("未找到仓库信息");
 		}
 		if (ObjectUtils.isNotNull(status) && "1".equals(status) && "1".equals(storageDesc.getWhetherFinancing())) {
-			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);
-				}
-			}
-			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 = 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, financingShipItemDtoList.stream().map(FinancingShipItemDto::getId).filter(Objects::nonNull)
-					.distinct().collect(Collectors.toList()))
-				.orderByAsc(PjOrderItems::getCreateTime)
-			);
-			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);
-			BigDecimal amount = itemsList.stream().map(PjShipItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().add(amount));
+			BigDecimal amount = pjOrderItemsList.stream().map(PjOrderItems::getSubTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+			//本次保证金
 			BigDecimal bondAmountSum = new BigDecimal("0.00");
+			//本次融资金额
 			BigDecimal fundingAmountSum = new BigDecimal("0.00");
-			BigDecimal availableAmountSum = new BigDecimal("0.00");
-			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)
-						.reduce(BigDecimal.ZERO, BigDecimal::add);
-					BigDecimal thisSendAmount = pjOrderItems.stream().map(PjOrderItems::getThisOutGoodsTotalShipAmount)
-						.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 (!"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();
-							if (currentDate.compareTo(thirtyDayAgo) > 0) {
-								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);
-							} else {
-								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);
-							}
-						}
-					}
-					orderMapper.updateById(items);
-				}
-			}
-			//可用金额 = 原可用金额 + 本次释放金额
-			pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().subtract(availableAmountSum));
+			String[] arr = firstProportion.split(":");
+			//计算本次金额的保证金
+			BigDecimal bondAmount = amount.multiply(
+				(new BigDecimal(arr[0]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+					.setScale(2, RoundingMode.HALF_UP)));
+			//计算本次金额的融资金额
+			BigDecimal fundingAmount = amount.multiply(
+				(new BigDecimal(arr[1]).divide(new BigDecimal("10"), MathContext.DECIMAL32)
+					.setScale(2, RoundingMode.HALF_UP)));
+			bondAmountSum = bondAmountSum.add(bondAmount);
+			fundingAmountSum = fundingAmountSum.add(fundingAmount);
 			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.setFundingAmount(pjpfFunding.getFundingAmount().add(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());