短驳入增加营收
parent
8110090154
commit
ce86bb5f95
|
|
@ -16,6 +16,7 @@ public enum MoneyChangeCategory implements DictStr {
|
||||||
DingDanTiaoZhang("DingDanTiaoZhang", "订单调账"),
|
DingDanTiaoZhang("DingDanTiaoZhang", "订单调账"),
|
||||||
DingDanKouKuan("DingDanKouKuan", "订单扣款"),
|
DingDanKouKuan("DingDanKouKuan", "订单扣款"),
|
||||||
DingDanTuiKuan("DingDanTuiKuan", "订单退款"),
|
DingDanTuiKuan("DingDanTuiKuan", "订单退款"),
|
||||||
|
DuanBoYingShou("DuanBoYingShou", "短驳营收"),
|
||||||
;
|
;
|
||||||
private final String val;
|
private final String val;
|
||||||
private final String txt;
|
private final String txt;
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,9 @@ import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ljw
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@ToString
|
@ToString
|
||||||
|
|
@ -20,6 +23,7 @@ public class PaymentContextResult {
|
||||||
private Long companyUserId;
|
private Long companyUserId;
|
||||||
private Long companyAccountId;
|
private Long companyAccountId;
|
||||||
private BigDecimal companyBalance;
|
private BigDecimal companyBalance;
|
||||||
|
private BigDecimal revenue;
|
||||||
|
|
||||||
private String settlementWay;
|
private String settlementWay;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -881,7 +881,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
OrderGoodsEntity entity = orderGoodsService.getById(orderInfo.getGoodsId());
|
OrderGoodsEntity entity = orderGoodsService.getById(orderInfo.getGoodsId());
|
||||||
Assert.notNull(entity, () -> Exceptions.clierr("产品不存在"));
|
Assert.notNull(entity, () -> Exceptions.clierr("产品不存在"));
|
||||||
|
|
||||||
if (MoneyWay.IN.getVal().equals(entity.getMoneyWay())) {
|
if (MoneyWay.IN.getVal().equals(entity.getMoneyWay()) && OrderCategory.PuTong.equals(orderInfo.getOrderCategory())) {
|
||||||
// 入场付费无称重,不需要更新付费项
|
// 入场付费无称重,不需要更新付费项
|
||||||
// 处理公司支付
|
// 处理公司支付
|
||||||
handleCompanyPay(orderInfo, Boolean.TRUE, new BigDecimal("0"), Boolean.FALSE);
|
handleCompanyPay(orderInfo, Boolean.TRUE, new BigDecimal("0"), Boolean.FALSE);
|
||||||
|
|
@ -937,6 +937,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
payMoney = changeMoney;
|
payMoney = changeMoney;
|
||||||
}
|
}
|
||||||
if (payMoney != null && payMoney.compareTo(BigDecimal.ZERO) > 0) {
|
if (payMoney != null && payMoney.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
if (OrderCategory.PuTong.equals(orderInfo.getOrderCategory())) {
|
||||||
if (!SettlementWay.CASH.getVal().equals(ctx.getSettlementWay())) {
|
if (!SettlementWay.CASH.getVal().equals(ctx.getSettlementWay())) {
|
||||||
String way = SettlementWay.BALANCE.getVal().equals(ctx.getSettlementWay()) ?
|
String way = SettlementWay.BALANCE.getVal().equals(ctx.getSettlementWay()) ?
|
||||||
SettlementWay.BALANCE.getTxt() : SettlementWay.MONTH.getTxt();
|
SettlementWay.BALANCE.getTxt() : SettlementWay.MONTH.getTxt();
|
||||||
|
|
@ -954,7 +955,8 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
.setOrderId(orderInfo.getId())
|
.setOrderId(orderInfo.getId())
|
||||||
.setMoneyAccountId(companyAccount.getId())
|
.setMoneyAccountId(companyAccount.getId())
|
||||||
.setOldMoney(oldBalance)
|
.setOldMoney(oldBalance)
|
||||||
.setDelta(payMoney.negate()) // 扣减为负数
|
// 扣减为负数
|
||||||
|
.setDelta(payMoney.negate())
|
||||||
.setNewMoney(newBalance)
|
.setNewMoney(newBalance)
|
||||||
.setMoneyChangeCategory(MoneyChangeCategory.DingDanKouKuan)
|
.setMoneyChangeCategory(MoneyChangeCategory.DingDanKouKuan)
|
||||||
.setMemo("订单支付扣款,订单号:" + orderInfo.getSn() + ",结算方式:" + way);
|
.setMemo("订单支付扣款,订单号:" + orderInfo.getSn() + ",结算方式:" + way);
|
||||||
|
|
@ -963,7 +965,34 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
|
|
||||||
log.info("公司账户扣减成功,用户ID:{},扣减金额:{},余额:{} -> {},结算方式:{}",
|
log.info("公司账户扣减成功,用户ID:{},扣减金额:{},余额:{} -> {},结算方式:{}",
|
||||||
ctx.getCompanyUserId(), payMoney, oldBalance, newBalance, ctx.getSettlementWay());
|
ctx.getCompanyUserId(), payMoney, oldBalance, newBalance, ctx.getSettlementWay());
|
||||||
|
}
|
||||||
|
} else if (OrderCategory.DuanBoRu.equals(orderInfo.getOrderCategory())) {
|
||||||
|
// 短驳入订单,增加营收
|
||||||
|
BigDecimal oldRevenue = ctx.getRevenue();
|
||||||
|
BigDecimal newRevenue = oldRevenue.add(payMoney);
|
||||||
|
// 更新账户营收
|
||||||
|
MoneyAccountEntity companyAccount = new MoneyAccountEntity()
|
||||||
|
.setId(ctx.getCompanyAccountId())
|
||||||
|
.setRevenue(newRevenue);
|
||||||
|
moneyAccountService.updateById(companyAccount);
|
||||||
|
|
||||||
|
// 记录资金变动明细
|
||||||
|
MoneyChangeDetailEntity changeDetail = new MoneyChangeDetailEntity()
|
||||||
|
.setCompanyId(ctx.getTransCompanyId())
|
||||||
|
.setOrderId(orderInfo.getId())
|
||||||
|
.setMoneyAccountId(companyAccount.getId())
|
||||||
|
.setOldMoney(oldRevenue)
|
||||||
|
// 扣减为负数
|
||||||
|
.setDelta(payMoney)
|
||||||
|
.setNewMoney(newRevenue)
|
||||||
|
.setMoneyChangeCategory(MoneyChangeCategory.DuanBoYingShou)
|
||||||
|
.setMemo("短驳营收,订单号:" + orderInfo.getSn());
|
||||||
|
|
||||||
|
moneyChangeDetailService.save(changeDetail);
|
||||||
|
|
||||||
|
log.info("公司营收增加成功,用户ID:{},扣减金额:{},余额:{} -> {}",
|
||||||
|
ctx.getCompanyUserId(), payMoney, oldRevenue, newRevenue);
|
||||||
|
}
|
||||||
// 更新订单支付状态为已支付
|
// 更新订单支付状态为已支付
|
||||||
OrderInfoEntity entity = new OrderInfoEntity();
|
OrderInfoEntity entity = new OrderInfoEntity();
|
||||||
entity.setId(orderInfo.getId());
|
entity.setId(orderInfo.getId());
|
||||||
|
|
@ -977,8 +1006,6 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
} else {
|
} else {
|
||||||
this.updateById(entity);
|
this.updateById(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// 如果支付金额为0,则直接改状态
|
// 如果支付金额为0,则直接改状态
|
||||||
// 更新订单支付状态为已支付
|
// 更新订单支付状态为已支付
|
||||||
|
|
@ -1250,11 +1277,6 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
.setOrderStatus(OrderStatus.QingYunZhong)
|
.setOrderStatus(OrderStatus.QingYunZhong)
|
||||||
.setTransTime(orderInfoEntity.getTransTime())
|
.setTransTime(orderInfoEntity.getTransTime())
|
||||||
);
|
);
|
||||||
if (MoneyWay.IN.getVal().equals(entity.getMoneyWay())) {
|
|
||||||
// 入场付费无称重,不需要更新付费项
|
|
||||||
// 处理公司支付
|
|
||||||
handleCompanyPay(this.getById(targetOrderId), Boolean.TRUE, new BigDecimal("0"), Boolean.FALSE);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
baseMapper.busyDriver(orderInfoEntity.getDriverId(), Boolean.FALSE);
|
baseMapper.busyDriver(orderInfoEntity.getDriverId(), Boolean.FALSE);
|
||||||
baseMapper.busyTruck(orderInfoEntity.getTruckId(), Boolean.FALSE);
|
baseMapper.busyTruck(orderInfoEntity.getTruckId(), Boolean.FALSE);
|
||||||
|
|
@ -1290,10 +1312,13 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
});
|
});
|
||||||
|
|
||||||
// 出厂付费
|
// 出厂付费
|
||||||
if (MoneyWay.OUT.getVal().equals(entity.getMoneyWay())) {
|
if (OrderCategory.PuTong.equals(orderInfoEntity.getOrderCategory()) && MoneyWay.OUT.getVal().equals(entity.getMoneyWay())) {
|
||||||
// 计算费用,出厂付费可能需要称重,需要更新付费项
|
// 计算费用,出厂付费可能需要称重,需要更新付费项
|
||||||
// updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE);
|
// updateOrderItems(orderInfoEntity.getId(), settleWeight, Boolean.FALSE);
|
||||||
|
|
||||||
|
// 扣费
|
||||||
|
return handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
|
||||||
|
} else if (OrderCategory.DuanBoRu.equals(orderInfoEntity.getOrderCategory())) {
|
||||||
// 扣费
|
// 扣费
|
||||||
return handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
|
return handleCompanyPay(orderInfoEntity, Boolean.FALSE, new BigDecimal("0"), Boolean.FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -321,6 +321,7 @@
|
||||||
bc.user_id AS companyUserId,
|
bc.user_id AS companyUserId,
|
||||||
ma1.id AS companyAccountId,
|
ma1.id AS companyAccountId,
|
||||||
ma1.money AS companyBalance,
|
ma1.money AS companyBalance,
|
||||||
|
ma1.revenue,
|
||||||
bc.settlement_way,
|
bc.settlement_way,
|
||||||
sua.wechat_openid,
|
sua.wechat_openid,
|
||||||
a.refund_money,
|
a.refund_money,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue