From 04bd04186c835bbf5467469c874bff2b3abad9b5 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Thu, 20 Feb 2025 15:31:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=BF=90=E8=90=A5=E5=95=86?= =?UTF-8?q?=E6=97=A5=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/domain/ClearingBillInfo.java | 17 +++- .../pile/mapper/ClearingBillInfoMapper.java | 48 +--------- .../service/AdapayMemberAccountService.java | 10 ++ .../pile/service/ClearingBillInfoService.java | 6 -- .../impl/ClearingBillInfoServiceImpl.java | 15 --- .../impl/OrderBasicInfoServiceImpl.java | 66 +++++++++---- .../mapper/pile/ClearingBillInfoMapper.xml | 95 +++++++++---------- 7 files changed, 122 insertions(+), 135 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ClearingBillInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ClearingBillInfo.java index 627367973..cfe8dc483 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ClearingBillInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ClearingBillInfo.java @@ -1,6 +1,11 @@ package com.jsowell.pile.domain; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import lombok.experimental.SuperBuilder; import java.math.BigDecimal; import java.util.Date; @@ -8,8 +13,9 @@ import java.util.Date; /** * 清分账单表 */ -@Getter -@Setter +@Data +@Accessors(chain = true) +@SuperBuilder @Builder @AllArgsConstructor @NoArgsConstructor @@ -49,6 +55,11 @@ public class ClearingBillInfo { */ private String orderSource; + /** + * 订单结算金额(当天汇总) + */ + private BigDecimal settleAmount; + /** * 应收金额 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java index a4263cdd9..a4a00d43f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillInfoMapper.java @@ -8,64 +8,24 @@ import org.apache.ibatis.annotations.Param; import java.util.List; public interface ClearingBillInfoMapper { - /** - * delete by primary key - * - * @param id primaryKey - * @return deleteCount - */ int deleteByPrimaryKey(Integer id); - /** - * insert record to table - * - * @param record the record - * @return insert count - */ - int insert(ClearingBillInfo record); - - int insertOrUpdate(ClearingBillInfo record); - - int insertOrUpdateSelective(ClearingBillInfo record); - - /** - * insert record to table selective - * - * @param record the record - * @return insert count - */ int insertSelective(ClearingBillInfo record); - /** - * select by primary key - * - * @param id primary key - * @return object by primary key - */ ClearingBillInfo selectByPrimaryKey(Integer id); - /** - * update record selective - * - * @param record the updated record - * @return update count - */ int updateByPrimaryKeySelective(ClearingBillInfo record); - /** - * update record - * - * @param record the updated record - * @return update count - */ - int updateByPrimaryKey(ClearingBillInfo record); - int updateBatch(List list); int updateBatchSelective(List list); int batchInsert(@Param("list") List list); + int insertOrUpdate(ClearingBillInfo record); + + int insertOrUpdateSelective(ClearingBillInfo record); + List selectByMerchantId(@Param("merchantId") String merchantId, @Param("billStatus") String billStatus, @Param("tradeDate") String tradeDate); void updateStatus(@Param("clearingBillIds") List clearingBillIds, @Param("billStatus") String billStatus, @Param("withdrawCode") String withdrawCode); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/AdapayMemberAccountService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/AdapayMemberAccountService.java index 90d08ee6e..ed756b9ab 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/AdapayMemberAccountService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/AdapayMemberAccountService.java @@ -59,6 +59,11 @@ public interface AdapayMemberAccountService { */ int deleteAdapayMemberAccountByIds(List ids); + /** + * 根据商户id查询汇付会员id + * @param merchantId + * @return + */ String selectAdapayMemberIdByMerchantId(String merchantId); /** @@ -98,5 +103,10 @@ public interface AdapayMemberAccountService { */ int deleteAuditFailed(String merchantId); + /** + * 根据汇付会员id查询运营商名称 + * @param adapayMemberId + * @return + */ String selectMerchantNameByAdapayMemberId(String adapayMemberId); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java index 323843819..0951d8ef5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillInfoService.java @@ -11,16 +11,12 @@ public interface ClearingBillInfoService { int deleteByPrimaryKey(Integer id); - int insert(ClearingBillInfo record); - int insertSelective(ClearingBillInfo record); ClearingBillInfo selectByPrimaryKey(Integer id); int updateByPrimaryKeySelective(ClearingBillInfo record); - int updateByPrimaryKey(ClearingBillInfo record); - List selectByMerchantId(String merchantId, String billStatus); void updateStatus(List clearingBillIds, String billStatus, String withdrawCode); @@ -37,8 +33,6 @@ public interface ClearingBillInfoService { int insertOrUpdateSelective(ClearingBillInfo record); - int updateBatch(List list); - int updateBatchSelective(List list); int batchInsert(List list); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java index b6f479e64..a345d9ad9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillInfoServiceImpl.java @@ -27,11 +27,6 @@ public class ClearingBillInfoServiceImpl implements ClearingBillInfoService { return clearingBillInfoMapper.deleteByPrimaryKey(id); } - @Override - public int insert(ClearingBillInfo record) { - return clearingBillInfoMapper.insert(record); - } - @Override public int insertSelective(ClearingBillInfo record) { return clearingBillInfoMapper.insertSelective(record); @@ -47,11 +42,6 @@ public class ClearingBillInfoServiceImpl implements ClearingBillInfoService { return clearingBillInfoMapper.updateByPrimaryKeySelective(record); } - @Override - public int updateByPrimaryKey(ClearingBillInfo record) { - return clearingBillInfoMapper.updateByPrimaryKey(record); - } - @Override public List selectByMerchantId(String merchantId, String billStatus) { return clearingBillInfoMapper.selectByMerchantId(merchantId, billStatus, null); @@ -91,11 +81,6 @@ public class ClearingBillInfoServiceImpl implements ClearingBillInfoService { return clearingBillInfoMapper.insertOrUpdateSelective(record); } - @Override - public int updateBatch(List list) { - return clearingBillInfoMapper.updateBatch(list); - } - @Override public int updateBatchSelective(List list) { return clearingBillInfoMapper.updateBatchSelective(list); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index fcf778fa6..1b73f6e2a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1435,6 +1435,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return; } + // 查询运营商的汇付id + String adapayMemberId = adapayMemberAccountService.selectAdapayMemberIdByMerchantId(merchantId); + // 从stationReportList中去除orderCodes并根据逗号切割组成List orderCodeList List orderCodeList = stationReportList.stream() .map(SettleOrderReport::getOrderCodes) @@ -1449,19 +1452,24 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { ClearingBillInfo clearingBillInfo = new ClearingBillInfo(); String clearingBillCode = "CLE" + IdUtils.getOrderCode(); if (queryBillInfo != null) { + // 清分账单则更新清分账单信息 clearingBillInfo.setId(queryBillInfo.getId()); clearingBillCode = queryBillInfo.getClearingBillCode(); } - clearingBillInfo.setBillStatus("1"); + clearingBillInfo.setBillStatus("2"); + clearingBillInfo.setTradeDate(tradeDate); clearingBillInfo.setClearingBillCode(clearingBillCode); clearingBillInfo.setClearingTime(DateUtils.getNowDate()); clearingBillInfo.setMerchantId(merchantId); - clearingBillInfo.setOrderSource("1"); + clearingBillInfo.setOrderSource(Constants.ONE); // 订单来源(1-有电充平台) + clearingBillInfo.setDelFlag(DelFlagEnum.NORMAL.getValue()); - // 应收金额 - BigDecimal receivableAmount = BigDecimal.ZERO; + // 结算金额 + BigDecimal settleAmount = BigDecimal.ZERO; // 应清分金额 BigDecimal shouldClearingAmount = BigDecimal.ZERO; + // 应收金额 + BigDecimal receivableAmount = BigDecimal.ZERO; // 实际清分金额 BigDecimal actualClearingAmount = BigDecimal.ZERO; // 手续费金额 @@ -1471,25 +1479,47 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 清分账单详情列表 List billDetailList = Lists.newArrayList(); - // 统计订单数据 for (String orderCode : orderCodeList) { - for (Map.Entry> entry : orderSplitRecordMap.entrySet()) { - List value = entry.getValue(); - if (CollectionUtils.isNotEmpty(value)) { - + List value = orderSplitRecordMap.get(orderCode); // 该订单的分账记录 + if (CollectionUtils.isEmpty(value)) { + logger.info("订单号:{},未查询到订单分账信息continue", orderCode); + continue; + } + for (int i = 0; i < value.size(); i++) { + OrderSplitRecord orderSplitRecord = value.get(i); + if (i == 0) { + // 结算金额只统计一次 + settleAmount = settleAmount.add(orderSplitRecord.getSettleAmount()); + shouldClearingAmount = shouldClearingAmount.add(orderSplitRecord.getSettleAmount()); } + if (StringUtils.equals(adapayMemberId, orderSplitRecord.getAdapayMemberId())) { + // 应收 = 电费 + 服务费 + BigDecimal receivable = orderSplitRecord.getElectricitySplitAmount().add(orderSplitRecord.getServiceSplitAmount()); + receivableAmount = receivableAmount.add(receivable); + // 手续费 + BigDecimal fee = orderSplitRecord.getFeeAmount(); + feeAmount = feeAmount.add(fee); + // 实际清分金额 + BigDecimal actualClearing = receivable.subtract(fee); + actualClearingAmount = actualClearingAmount.add(actualClearing); + withdrawableAmount = withdrawableAmount.add(actualClearing); + } + // 记录详情 + ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder() + .clearingBillCode(clearingBillCode) + .orderCode(orderCode) + .createTime(DateUtils.getNowDate()) + .delFlag(DelFlagEnum.NORMAL.getValue()) + .build(); } } - - clearingBillInfo.setBillStatus("2"); - clearingBillInfo.setTradeDate(tradeDate); - clearingBillInfo.setReceivableAmount(receivableAmount); - clearingBillInfo.setShouldClearingAmount(shouldClearingAmount); - clearingBillInfo.setFeeAmount(feeAmount); - clearingBillInfo.setWithdrawableAmount(withdrawableAmount); - clearingBillInfo.setActualClearingAmount(actualClearingAmount); - clearingBillInfo.setDelFlag(DelFlagEnum.NORMAL.getValue()); + clearingBillInfo.setSettleAmount(settleAmount); + clearingBillInfo.setShouldClearingAmount(shouldClearingAmount); // 应清分金额 + clearingBillInfo.setReceivableAmount(receivableAmount); // 应收金额 + clearingBillInfo.setFeeAmount(feeAmount); // 手续费 + clearingBillInfo.setActualClearingAmount(actualClearingAmount); // 实际清分金额 + clearingBillInfo.setWithdrawableAmount(withdrawableAmount); // 可提现金额 // 保存清分账单 ClearingBillTransactionDTO dto = new ClearingBillTransactionDTO(); diff --git a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml index e19a8cbed..b9dd7c082 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillInfoMapper.xml @@ -11,6 +11,7 @@ + @@ -26,8 +27,9 @@ id, bill_status, trade_date, clearing_bill_code, clearing_time, merchant_id, order_source, - receivable_amount, should_clearing_amount, actual_clearing_amount, fee_amount, withdrawable_amount, - withdraw_code, create_by, create_time, update_by, update_time, del_flag + settle_amount, receivable_amount, should_clearing_amount, actual_clearing_amount, + fee_amount, withdrawable_amount, withdraw_code, create_by, create_time, update_by, + update_time, del_flag