|
|
@@ -839,6 +839,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
if (!res.isSuccess()) {
|
|
|
@@ -1383,61 +1384,63 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().add(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().add(thisSendAmount));
|
|
|
- //重新计算所有未赎回融资采购,保证金,融资金额
|
|
|
- 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 (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();
|
|
|
+ //计算本融资采购剩余金额
|
|
|
// BigDecimal subAmount = items.getGoodsTotalShipAmount().subtract(items.getOutGoodsTotalShipAmount());
|
|
|
- List<Long> itemIdList = allList.stream().filter(e -> e.getPid().equals(items.getId())).map(FinancingShipItemDto::getItemId).collect(Collectors.toList());
|
|
|
- //判断本融资采购单据是否超过两个月 未超过按第一个比例计算,否则按第二个比例计算
|
|
|
- if (currentDate.compareTo(thirtyDayAgo) > 0) {
|
|
|
- if (!shipItemsList.isEmpty()) {
|
|
|
- for (PjShipItems shipItems1 : shipItemsList) {
|
|
|
- if (ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(shipItems1.getBrandName())) {
|
|
|
- if (!itemIdList.isEmpty() && itemIdList.contains(shipItems1.getId())) {
|
|
|
- shipItems1.setProportion(firstProportion);
|
|
|
+ List<Long> itemIdList = allList.stream().filter(e -> e.getPid().equals(items.getId())).map(FinancingShipItemDto::getItemId).collect(Collectors.toList());
|
|
|
+ //判断本融资采购单据是否超过两个月 未超过按第一个比例计算,否则按第二个比例计算
|
|
|
+ if (currentDate.compareTo(thirtyDayAgo) > 0) {
|
|
|
+ if (!shipItemsList.isEmpty()) {
|
|
|
+ for (PjShipItems shipItems1 : shipItemsList) {
|
|
|
+ if (ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(shipItems1.getBrandName())) {
|
|
|
+ if (!itemIdList.isEmpty() && itemIdList.contains(shipItems1.getId())) {
|
|
|
+ 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().subtract(bondAmount));
|
|
|
- items.setFundingAmount(items.getFundingAmount().subtract(fundingAmount));
|
|
|
- bondAmountSum = bondAmountSum.add(bondAmount);
|
|
|
- fundingAmountSum = fundingAmountSum.add(fundingAmount);
|
|
|
- } else {
|
|
|
- if (!shipItemsList.isEmpty()) {
|
|
|
- for (PjShipItems shipItems1 : shipItemsList) {
|
|
|
- if (!itemIdList.isEmpty() && itemIdList.contains(shipItems1.getId())) {
|
|
|
- shipItems1.setProportion(secondProportion);
|
|
|
+ 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 {
|
|
|
+ if (!shipItemsList.isEmpty()) {
|
|
|
+ for (PjShipItems shipItems1 : shipItemsList) {
|
|
|
+ if (!itemIdList.isEmpty() && itemIdList.contains(shipItems1.getId())) {
|
|
|
+ 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().subtract(bondAmount));
|
|
|
+ items.setFundingAmount(items.getFundingAmount().subtract(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().subtract(bondAmount));
|
|
|
- items.setFundingAmount(items.getFundingAmount().subtract(fundingAmount));
|
|
|
- bondAmountSum = bondAmountSum.add(bondAmount);
|
|
|
- fundingAmountSum = fundingAmountSum.add(fundingAmount);
|
|
|
}
|
|
|
}
|
|
|
orderMapper.updateById(items);
|
|
|
@@ -1602,6 +1605,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
@@ -1976,110 +1980,112 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(thisSendAmount));
|
|
|
- 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 (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) {
|
|
|
- if (ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(shipItems1.getBrandName())) {
|
|
|
- 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());
|
|
|
+ }
|
|
|
+ if (currentDate.compareTo(thirtyDayAgo) > 0) {
|
|
|
+ if (!shipItems.isEmpty()) {
|
|
|
+ for (PjShipItems shipItems1 : itemsList) {
|
|
|
+ if (ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(shipItems1.getBrandName())) {
|
|
|
+ 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) {
|
|
|
- if (ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(shipItems1.getBrandName())) {
|
|
|
- shipItems1.setProportion(secondProportion);
|
|
|
+ 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) {
|
|
|
+ if (ObjectUtils.isNotNull(financingBrand) && financingBrand.contains(shipItems1.getBrandName())) {
|
|
|
+ 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);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -2474,8 +2480,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDesc.setStoreInventory(stockDesc.getBalanceQuantity());
|
|
|
stockDesc.setInventoryAmount(item.getSendNum().multiply(item.getPrice()));
|
|
|
stockDesc.setInventoryAmount(stockDesc.getInventoryAmount().add(stockOne.getInventoryAmount()));
|
|
|
+ stockDesc.setRebateInventoryAmount(item.getSendNum().multiply(item.getRebatePrice()));
|
|
|
+ stockDesc.setRebateInventoryAmount(stockDesc.getRebateInventoryAmount().add(stockOne.getRebateInventoryAmount()));
|
|
|
if (stockDesc.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
stockDesc.setInventoryCostPrice(stockDesc.getInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ stockDesc.setRebatePrice(stockDesc.getRebateInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
stockDesc.setVersion(stockOne.getVersion());
|
|
|
pjStockDescArrayListUpdate.add(stockDesc);
|
|
|
@@ -2643,79 +2652,80 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(thisSendAmount));
|
|
|
- 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();
|
|
|
- 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);
|
|
|
+ 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();
|
|
|
+ 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);
|
|
|
- } 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();
|
|
|
- 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().add(bondAmount));
|
|
|
- items.setFundingAmount(items.getFundingAmount().add(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().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();
|
|
|
+ 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().add(bondAmount));
|
|
|
+ items.setFundingAmount(items.getFundingAmount().add(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().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));
|
|
|
@@ -3322,42 +3332,44 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().add(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().add(thisSendAmount));
|
|
|
- //重新计算所有未赎回融资采购,保证金,融资金额
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
@@ -4088,9 +4100,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
if (stockOne.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
if (!res.isSuccess()) {
|
|
|
@@ -4360,42 +4374,44 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().add(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().add(thisSendAmount));
|
|
|
- //重新计算所有未赎回融资采购,保证金,融资金额
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
@@ -4516,9 +4532,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
if (stockOne.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
@@ -4679,38 +4697,40 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(thisSendAmount));
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
@@ -5067,12 +5087,15 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDesc.setBalanceQuantity(item.getSendNum());
|
|
|
stockDesc.setStoreInventory(item.getSendNum());
|
|
|
stockDesc.setInventoryAmount(item.getSendNum().multiply(item.getPrice()));
|
|
|
+ stockDesc.setRebateInventoryAmount(item.getSendNum().multiply(item.getRebatePrice()));
|
|
|
if (stockDesc.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
// BigDecimal amount = ObjectUtils.isNotNull(orderItems.getCostprie()) ? orderItems.getCostprie() : stockDesc.getInventoryAmount();
|
|
|
stockDesc.setInventoryCostPrice(stockDesc.getInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ stockDesc.setRebatePrice(stockDesc.getRebateInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
// stockDesc.setInventoryCostPrice(amount.divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
} else {
|
|
|
stockDesc.setInventoryCostPrice(item.getPrice());
|
|
|
+ stockDesc.setRebatePrice(item.getRebatePrice());
|
|
|
}
|
|
|
pjStockDescArrayListSave.add(stockDesc);
|
|
|
} else {
|
|
|
@@ -5252,39 +5275,40 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().subtract(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().subtract(thisSendAmount));
|
|
|
-
|
|
|
- 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().add(bondAmount));
|
|
|
- items.setFundingAmount(items.getFundingAmount().add(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().add(bondAmount));
|
|
|
- items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
|
|
|
- bondAmountSum = bondAmountSum.add(bondAmount);
|
|
|
- fundingAmountSum = fundingAmountSum.add(fundingAmount);
|
|
|
+ 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().add(bondAmount));
|
|
|
+ items.setFundingAmount(items.getFundingAmount().add(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().add(bondAmount));
|
|
|
+ items.setFundingAmount(items.getFundingAmount().add(fundingAmount));
|
|
|
+ bondAmountSum = bondAmountSum.add(bondAmount);
|
|
|
+ fundingAmountSum = fundingAmountSum.add(fundingAmount);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
orderMapper.updateById(items);
|
|
|
@@ -5387,11 +5411,17 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(item.getPrice())));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(item.getRebatePrice())));
|
|
|
if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0 && new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0) {
|
|
|
stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
+ if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0 && new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0) {
|
|
|
+ stockOne.setRebatePrice(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
if (!res.isSuccess()) {
|
|
|
@@ -5654,42 +5684,44 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
items.setOutGoodsTotalShipNum(items.getOutGoodsTotalShipNum().add(thisSendSum));
|
|
|
items.setOutGoodsTotalShipAmount(items.getOutGoodsTotalShipAmount().add(thisSendAmount));
|
|
|
- //重新计算所有未赎回融资采购,保证金,融资金额
|
|
|
- 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);
|
|
|
+ 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);
|