Browse Source

销售订单体保存提交时去掉根据仓库判断订单类型逻辑 、收款结算退款时退货金额加上运费一起计算

liyuan 8 months ago
parent
commit
6d60b1dbc3

+ 2 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java

@@ -298,6 +298,8 @@ public class PjOrder implements Serializable {
 	private String generateTask;
 	/**
 	 * 是否共享
+	 * 1 共享
+	 * 0 不共享
 	 */
 	@ApiModelProperty(value = "是否共享")
 	private Integer billType;

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

@@ -1307,16 +1307,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 		if (order.getBsType().equals(OrderTypeEnum.TKSALES.getType())) {//销售
 			if (order.getId() == null) {
-				if (ObjectUtils.isNull(order.getBillType())) {
-					if (ObjectUtils.isNotNull(order.getStorageId())) {
-						order.setBillType(0);
-						//仓库名称
-						order.setStorageName(storageDescMapper.selectById(order.getStorageId()).getCname());
-					} else {
-						order.setBillType(1);
-					}
-				}
-
 				order.setOrdNo(billNo);
 				order.setSrcOrdNo(billNo);
 				order.setCreateTime(new Date());
@@ -3888,15 +3878,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			throw new SecurityException("未维护所属公司");
 		}
 		if (order.getId() == null) {
-			if (ObjectUtils.isNull(order.getBillType())) {
-				if (ObjectUtils.isNotNull(order.getStorageId())) {
-					order.setBillType(0);
-					//仓库名称
-					order.setStorageName(storageDescMapper.selectById(order.getStorageId()).getCname());
-				} else {
-					order.setBillType(1);
-				}
-			}
 			order.setOrdNo(billNo);
 			order.setOrdNo(billNo);
 			order.setSrcOrdNo(billNo);
@@ -4806,24 +4787,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			return R.fail(500, "生成系统编号失败");
 		}
 		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.getBsType().equals(OrderTypeEnum.SALES.getType())) {
+			//销售
 			if (order.getId() == null) {
-				if (ObjectUtils.isNull(order.getBillType())) {
-					if (ObjectUtils.isNotNull(order.getStorageId())) {
-						order.setBillType(0);
-						//仓库名称
-						order.setStorageName(storageDescMapper.selectById(order.getStorageId()).getCname());
-					} else {
-						order.setBillType(1);
-					}
-				}
-
 				order.setOrdNo(billNo);
 				order.setSrcOrdNo(billNo);
 				order.setCreateTime(new Date());
@@ -4955,10 +4921,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					item.setBrandName(goodsDesc.getBrandName());
 					if (!"JF".equals(order.getBsType())) {
 						if (!pjStockDescList.isEmpty()) {
+							// 结余数量
 							balanceQuantity = pjStockDescList.stream().filter(e -> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull)
 								.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);
 						}
@@ -4968,13 +4937,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 							inventoryAmount.compareTo(new BigDecimal("0.00")) == 0) {
 							inventoryCostPrice = new BigDecimal("0.00");
 						} else {
-							inventoryCostPrice = inventoryAmount.divide(balanceQuantity, 2, RoundingMode.HALF_UP);
+							inventoryCostPrice = inventoryAmount.divide(balanceQuantity, 4, RoundingMode.DOWN);
 						}
 						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);
+							rebateInventoryCostPrice = rebateInventoryAmount.divide(balanceQuantity, 4, RoundingMode.DOWN);
 							item.setRebatePrice(rebateInventoryCostPrice);
 						}
 						//计算成本
@@ -5161,7 +5130,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				//明细总金额
 				totalMoney = order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
 					return x.add(y.getGoodsNum().multiply(y.getPrice()));
-				}, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+				}, BigDecimal::add).setScale(4, RoundingMode.DOWN);
 				//实际金额
 				order.setGoodsTotalShipAmount(order.getOrderItemsList().stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				//已出实际数量
@@ -5299,7 +5268,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				//明细总金额
 				totalMoney = order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
 					return x.add(y.getGoodsNum().multiply(y.getPrice()));
-				}, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+				}, BigDecimal::add).setScale(4, RoundingMode.DOWN);
 				if (ObjectUtils.isNull(order.getStatus()) || "录入".equals(order.getStatus())) {
 					order.setPrimaryGoodsTotalNum(order.getGoodsTotalNum());
 				}
@@ -5344,17 +5313,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			}
 			order.setActualPaymentStatus(3);
 			order.setPaymentAmountTl(order.getTotalMoney());
-		} else if (order.getBsType().equals(OrderTypeEnum.POINTS.getType())) {//积分
+		} else if (order.getBsType().equals(OrderTypeEnum.POINTS.getType())) {
+			//积分
 			if (order.getId() == null) {
-				if (ObjectUtils.isNull(order.getBillType())) {
-					if (ObjectUtils.isNotNull(order.getStorageId())) {
-						order.setBillType(0);
-						//仓库名称
-						order.setStorageName(storageDescMapper.selectById(order.getStorageId()).getCname());
-					} else {
-						order.setBillType(1);
-					}
-				}
 				order.setOrdNo(billNo);
 				order.setSrcOrdNo(billNo);
 				order.setCreateTime(new Date());
@@ -5453,7 +5414,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				//总金额
 				totalMoney = order.getOrderItemsList().stream().reduce(BigDecimal.ZERO, (x, y) -> {
 					return x.add(y.getGoodsNum().multiply(y.getPrice()));
-				}, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
+				}, BigDecimal::add).setScale(4, RoundingMode.DOWN);
 				order.setSalesAmount(totalMoney);
 				order.setTotalMoney(totalMoney);
 			} else {

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/service/impl/SettlementServiceImpl.java

@@ -233,7 +233,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, PjSettl
 							pjOrder.setPaymentAmountTl(item.getThisRefundAmount());
 						}
 						thisAmount = thisAmount.subtract(item.getThisRefundAmount());
-						if (pjOrder.getPaymentAmountTl().equals(pjOrder.getReturnsAmount())) {
+						if (pjOrder.getPaymentAmountTl().equals(pjOrder.getReturnsAmount().add(pjOrder.getFreight() == null ? new BigDecimal("0.00") : pjOrder.getFreight()))) {
 							pjOrder.setActualPaymentStatus(2);
 						} else {
 							pjOrder.setActualPaymentStatus(3);