|
|
@@ -1606,6 +1606,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
BigDecimal costprie = item.getCostprie().divide(item.getGoodsNum(), 2, RoundingMode.HALF_UP);
|
|
|
item.setCostprie(item.getReturnsNumber().multiply(costprie));
|
|
|
item.setGrossProfit(item.getReturnsAmount().subtract(item.getCostprie()));
|
|
|
+ BigDecimal rebateCostprie = item.getRebateCostprie().divide(item.getGoodsNum(), 2, RoundingMode.HALF_UP);
|
|
|
+ item.setRebateCostprie(item.getReturnsNumber().multiply(rebateCostprie));
|
|
|
+ item.setRebateProfit(item.getReturnsAmount().subtract(item.getRebateCostprie()));
|
|
|
orderItemsService.saveOrUpdate(item);
|
|
|
}
|
|
|
if (goodsName.length() > 0) {
|
|
|
@@ -1622,7 +1625,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setGoodsTotalNum(order.getOrderItemsList().stream().map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setTotalMoney(order.getOrderItemsList().stream().map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setCost(order.getOrderItemsList().stream().map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ order.setRebateCost(order.getOrderItemsList().stream().map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getGrossProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ order.setRebateGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getRebateProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
/*if (order.getGoodsTotalNum().compareTo(new BigDecimal(1)) == 0) {//只有一条轮胎加5元运费
|
|
|
order.setTotalMoney(order.getReturnsAmount().add(new BigDecimal(5)));
|
|
|
order.setFreight(new BigDecimal(5));
|
|
|
@@ -1701,7 +1706,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
goodsName.append(goodsDesc.getCname()).append(",");
|
|
|
retrieval.append(goodsDesc.getCnameInt()).append(",");
|
|
|
item.setCostprie(item.getReturnsNumber().multiply(item.getPrice()));
|
|
|
+ item.setRebateCostprie(item.getReturnsNumber().multiply(item.getRebatePrice()));
|
|
|
item.setGrossProfit(item.getReturnsAmount().subtract(item.getCostprie()));
|
|
|
+ item.setRebateProfit(item.getReturnsAmount().subtract(item.getRebateCostprie()));
|
|
|
item.setBrandName(goodsDesc.getBrandName());
|
|
|
});
|
|
|
if (goodsName.length() > 0) {
|
|
|
@@ -1718,7 +1725,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setGoodsTotalNum(order.getOrderItemsList().stream().map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setTotalMoney(order.getOrderItemsList().stream().map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setCost(order.getOrderItemsList().stream().map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ order.setRebateCost(order.getOrderItemsList().stream().map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getGrossProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ order.setRebateGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getRebateProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
} else {
|
|
|
order.setNumberRows(0);//行数
|
|
|
//总数量
|
|
|
@@ -2872,7 +2881,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
detail.setOutOverpaymen(new BigDecimal("0.00"));
|
|
|
detail.setAdvancePaymentBalance(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
- detail.setId(advanceCharge.getId());
|
|
|
+ BeanUtil.copyProperties(advanceCharge, detail);
|
|
|
detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
detail.setUpdateTime(new Date());
|
|
|
@@ -2893,7 +2902,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
item.setCreateUserName(AuthUtil.getUserName());
|
|
|
item.setCreateDept(pjpfFunding.getCreateDept());
|
|
|
item.setCreateDeptName(pjpfFunding.getCreateDeptName());
|
|
|
- item.setType("融资采购-融资入库");
|
|
|
+ item.setType("融资采购-确认到货");
|
|
|
item.setSrcId(order.getId());
|
|
|
item.setSrcNo(order.getOrdNo());
|
|
|
if (ObjectUtils.isNull(proportion)) {
|
|
|
@@ -3036,7 +3045,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
item.setCreateUserName(AuthUtil.getUserName());
|
|
|
item.setCreateDept(pjpfFunding.getCreateDept());
|
|
|
item.setCreateDeptName(pjpfFunding.getCreateDeptName());
|
|
|
- item.setType("融资采购-撤销融资入库");
|
|
|
+ item.setType("融资采购-撤销确认到货");
|
|
|
item.setSrcId(order.getId());
|
|
|
item.setSrcNo(order.getOrdNo());
|
|
|
if (ObjectUtils.isNull(proportion)) {
|
|
|
@@ -3129,7 +3138,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
String financingBrand = sysClient.getParamService("financing.brand");
|
|
|
if (ObjectUtils.isNotNull(status) && "1".equals(status)) {
|
|
|
PjOrder pjOrder = baseMapper.selectById(order.getId());
|
|
|
- if (ObjectUtils.isNull(pjOrder.getStorageId())){
|
|
|
+ if (ObjectUtils.isNull(pjOrder.getStorageId())) {
|
|
|
throw new RuntimeException("请先维护发货仓库");
|
|
|
}
|
|
|
if (OrderTypeEnum.SCRW.getType().equals(pjOrder.getGenerateTask())) {
|
|
|
@@ -3576,6 +3585,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
String statu = sysClient.getParamService("whether.financing");
|
|
|
String financingBrand = sysClient.getParamService("financing.brand");
|
|
|
if (order.getBsType().equals(OrderTypeEnum.SALES.getType())) {//销售
|
|
|
+ if (ObjectUtils.isNotNull(statu) && "1".equals(statu)) {
|
|
|
+ if (ObjectUtils.isNull(order.getStorageId())) {
|
|
|
+ throw new RuntimeException("请先维护仓库");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (order.getId() == null) {
|
|
|
if (ObjectUtils.isNull(order.getBillType())) {
|
|
|
if (ObjectUtils.isNotNull(order.getStorageId())) {
|
|
|
@@ -3683,6 +3697,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
for (PjOrderItems item : order.getOrderItemsList()) {
|
|
|
BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
BigDecimal inventoryAmount = new BigDecimal("0.00");
|
|
|
+ BigDecimal rebateInventoryAmount = new BigDecimal("0.00");
|
|
|
item.setSendNum(new BigDecimal("0.00"));
|
|
|
/*if (new BigDecimal("0.00").compareTo(item.getPrice()) == 0) {
|
|
|
throw new RuntimeException("商品:" + item.getGoodsName() + "单价为零");
|
|
|
@@ -3692,14 +3707,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
inventoryAmount = pjStockDescList.stream().filter(e -> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getInventoryAmount).filter(Objects::nonNull)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ rebateInventoryAmount = pjStockDescList.stream().filter(e -> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getRebateInventoryAmount).filter(Objects::nonNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
}
|
|
|
BigDecimal inventoryCostPrice = new BigDecimal("0.00");
|
|
|
+ BigDecimal rebateInventoryCostPrice = new BigDecimal("0.00");
|
|
|
if (balanceQuantity.compareTo(new BigDecimal("0.00")) == 0 ||
|
|
|
inventoryAmount.compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
inventoryCostPrice = new BigDecimal("0.00");
|
|
|
} else {
|
|
|
inventoryCostPrice = inventoryAmount.divide(balanceQuantity, 2, RoundingMode.HALF_UP);
|
|
|
}
|
|
|
+ if (balanceQuantity.compareTo(new BigDecimal("0.00")) == 0 ||
|
|
|
+ rebateInventoryAmount.compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
+ rebateInventoryCostPrice = new BigDecimal("0.00");
|
|
|
+ } else {
|
|
|
+ rebateInventoryCostPrice = rebateInventoryAmount.divide(balanceQuantity, 2, RoundingMode.HALF_UP);
|
|
|
+ item.setRebatePrice(rebateInventoryCostPrice);
|
|
|
+ }
|
|
|
item.setBizType(order.getBsType());
|
|
|
item.setBillNo(order.getOrdNo());
|
|
|
if (item.getId() == null) {
|
|
|
@@ -3730,6 +3755,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
goodsName.append(goodsDesc.getCname()).append(",");
|
|
|
retrieval.append(goodsDesc.getCnameInt()).append(",");
|
|
|
item.setCostprie(item.getGoodsNum().multiply(inventoryCostPrice));
|
|
|
+ item.setRebateCostprie(item.getGoodsNum().multiply(rebateInventoryCostPrice));
|
|
|
} else {//共享仓取共享上架的共享成本
|
|
|
LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -3742,12 +3768,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
PjProductLaunch productLaunch = productLaunchService.getOne(lambdaQueryWrapper);
|
|
|
if (ObjectUtils.isNotNull(productLaunch)) {
|
|
|
item.setCostprie(item.getGoodsNum().multiply(productLaunch.getShareCost()));
|
|
|
+ item.setRebateCostprie(item.getGoodsNum().multiply(productLaunch.getShareCost()));
|
|
|
} else {
|
|
|
throw new RuntimeException("请维护共享商品成本价格");
|
|
|
}
|
|
|
}
|
|
|
//计算毛利
|
|
|
item.setGrossProfit(item.getSubTotalMoney().subtract(item.getCostprie()));
|
|
|
+ item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
orderItemsService.saveOrUpdate(item);
|
|
|
|
|
|
}
|
|
|
@@ -3780,11 +3808,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setTotalMoney(totalMoney.add(new BigDecimal(5)));
|
|
|
order.setFreight(new BigDecimal(5));
|
|
|
}
|
|
|
-
|
|
|
//毛利
|
|
|
order.setGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getGrossProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
//成本
|
|
|
order.setCost(order.getOrderItemsList().stream().map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ order.setRebateGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getRebateProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ //成本
|
|
|
+ order.setRebateCost(order.getOrderItemsList().stream().map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
} else {
|
|
|
order.setNumberRows(0);//行数
|
|
|
//总数量
|
|
|
@@ -3863,6 +3893,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
//计算小计
|
|
|
item.setSubTotalMoney(item.getGoodsNum().multiply(item.getPrice()));
|
|
|
item.setGoodsTotalShipAmount((ObjectUtils.isNotNull(item.getSendNum()) ? item.getSendNum() : new BigDecimal("0.00")).multiply(item.getPrice()));
|
|
|
+ if (ObjectUtils.isNotNull(item.getRebatePrice()) && new BigDecimal("0.00").compareTo(item.getRebatePrice()) != 0) {
|
|
|
+ item.setRebateCostprie(item.getGoodsNum().multiply(item.getRebatePrice()));
|
|
|
+ item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
+ } else {
|
|
|
+ item.setRebatePrice(item.getPrice());
|
|
|
+ item.setRebateCostprie(item.getGoodsNum().multiply(item.getRebatePrice()));
|
|
|
+ item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
+ }
|
|
|
if (ObjectUtils.isNull(order.getStatus()) || "录入".equals(order.getStatus())) {
|
|
|
item.setPrimaryGoodsTotalNum(item.getGoodsNum());
|
|
|
}
|
|
|
@@ -3899,6 +3937,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setOutGoodsTotalShipAmount(order.getOrderItemsList().stream().map(PjOrderItems::getOutGoodsTotalShipAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setSalesAmount(totalMoney);
|
|
|
order.setTotalMoney(totalMoney);
|
|
|
+ order.setRebateGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getRebateProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ //成本
|
|
|
+ order.setRebateCost(order.getOrderItemsList().stream().map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+
|
|
|
if (goodsName.length() > 0) {
|
|
|
order.setGoodsNameJoin(goodsName.substring(0, goodsName.length() - 1));
|
|
|
}
|
|
|
@@ -3980,6 +4022,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
//计算小计
|
|
|
item.setSubTotalMoney(item.getGoodsNum().multiply(item.getPrice()));
|
|
|
item.setGoodsTotalShipAmount((ObjectUtils.isNotNull(item.getSendNum()) ? item.getSendNum() : new BigDecimal("0")).multiply(item.getPrice()));
|
|
|
+ if (ObjectUtils.isNotNull(item.getRebatePrice()) && new BigDecimal("0.00").compareTo(item.getRebatePrice()) != 0) {
|
|
|
+ item.setRebateCostprie(item.getGoodsNum().multiply(item.getRebatePrice()));
|
|
|
+ item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
+ } else {
|
|
|
+ item.setRebatePrice(item.getPrice());
|
|
|
+ item.setRebateCostprie(item.getGoodsNum().multiply(item.getRebatePrice()));
|
|
|
+ item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
+ }
|
|
|
if (ObjectUtils.isNull(order.getStatus()) || "录入".equals(order.getStatus())) {
|
|
|
item.setPrimaryGoodsTotalNum(item.getGoodsNum());
|
|
|
}
|
|
|
@@ -4016,6 +4066,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
order.setOutGoodsTotalShipAmount(order.getOrderItemsList().stream().map(PjOrderItems::getOutGoodsTotalShipAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
order.setSalesAmount(totalMoney);
|
|
|
order.setTotalMoney(totalMoney);
|
|
|
+ order.setRebateGrossProfit(order.getOrderItemsList().stream().map(PjOrderItems::getRebateProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ //成本
|
|
|
+ order.setRebateCost(order.getOrderItemsList().stream().map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+
|
|
|
if (goodsName.length() > 0) {
|
|
|
order.setGoodsNameJoin(goodsName.substring(0, goodsName.length() - 1));
|
|
|
}
|