mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 11:35:12 +08:00
生成运营商日报表
This commit is contained in:
@@ -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;
|
||||
|
||||
/**
|
||||
* 应收金额
|
||||
*/
|
||||
|
||||
@@ -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<ClearingBillInfo> list);
|
||||
|
||||
int updateBatchSelective(List<ClearingBillInfo> list);
|
||||
|
||||
int batchInsert(@Param("list") List<ClearingBillInfo> list);
|
||||
|
||||
int insertOrUpdate(ClearingBillInfo record);
|
||||
|
||||
int insertOrUpdateSelective(ClearingBillInfo record);
|
||||
|
||||
List<ClearingBillInfo> selectByMerchantId(@Param("merchantId") String merchantId, @Param("billStatus") String billStatus, @Param("tradeDate") String tradeDate);
|
||||
|
||||
void updateStatus(@Param("clearingBillIds") List<Integer> clearingBillIds, @Param("billStatus") String billStatus, @Param("withdrawCode") String withdrawCode);
|
||||
|
||||
@@ -59,6 +59,11 @@ public interface AdapayMemberAccountService {
|
||||
*/
|
||||
int deleteAdapayMemberAccountByIds(List<String> 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);
|
||||
}
|
||||
|
||||
@@ -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<ClearingBillInfo> selectByMerchantId(String merchantId, String billStatus);
|
||||
|
||||
void updateStatus(List<Integer> clearingBillIds, String billStatus, String withdrawCode);
|
||||
@@ -37,8 +33,6 @@ public interface ClearingBillInfoService {
|
||||
|
||||
int insertOrUpdateSelective(ClearingBillInfo record);
|
||||
|
||||
int updateBatch(List<ClearingBillInfo> list);
|
||||
|
||||
int updateBatchSelective(List<ClearingBillInfo> list);
|
||||
|
||||
int batchInsert(List<ClearingBillInfo> list);
|
||||
|
||||
@@ -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<ClearingBillInfo> 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<ClearingBillInfo> list) {
|
||||
return clearingBillInfoMapper.updateBatch(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateBatchSelective(List<ClearingBillInfo> list) {
|
||||
return clearingBillInfoMapper.updateBatchSelective(list);
|
||||
|
||||
@@ -1435,6 +1435,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询运营商的汇付id
|
||||
String adapayMemberId = adapayMemberAccountService.selectAdapayMemberIdByMerchantId(merchantId);
|
||||
|
||||
// 从stationReportList中去除orderCodes并根据逗号切割组成List<String> orderCodeList
|
||||
List<String> 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<ClearingBillDetail> billDetailList = Lists.newArrayList();
|
||||
|
||||
// 统计订单数据
|
||||
for (String orderCode : orderCodeList) {
|
||||
for (Map.Entry<String, List<OrderSplitRecord>> entry : orderSplitRecordMap.entrySet()) {
|
||||
List<OrderSplitRecord> value = entry.getValue();
|
||||
if (CollectionUtils.isNotEmpty(value)) {
|
||||
|
||||
List<OrderSplitRecord> 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();
|
||||
|
||||
Reference in New Issue
Block a user