Commit 50ca4449 by jianan

删除入账记录 应收款管理还是有记录

parent 717a3a4b
......@@ -349,12 +349,8 @@ public class ApiCommissionController {
// if (!oldCommission.getUserId().equals(loginUserId) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// }
// 操作数据库
boolean result = commissionService.removeById(oldCommission.getId());
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(result);
return Result.success(commissionService.deleteCommission(oldCommission));
}
/**
......
......@@ -2,6 +2,7 @@ package com.yd.csf.service.dao;
import com.yd.csf.service.model.CommissionCompareRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author Zhang Jianan
......@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface CommissionCompareRecordMapper extends BaseMapper<CommissionCompareRecord> {
void removeByCommissionId(@Param("commissionId") String commissionId);
}
......
......@@ -22,6 +22,8 @@ public interface CommissionMapper extends BaseMapper<Commission> {
CommissionStatisticsVO getCommissionStatistics(@Param("commissionIdList") List<Long> commissionIdList);
int updateStatusBatchById(@Param("list") List<Commission> list);
int deleteByIdPhysical(Long id);
}
......
......@@ -13,4 +13,5 @@ import java.util.List;
*/
public interface CommissionCompareRecordService extends IService<CommissionCompareRecord> {
void removeByCommissionId(String commissionId);
}
......@@ -55,4 +55,8 @@ public interface CommissionService extends IService<Commission> {
Boolean addToExpected(AddToExpectedCommissionRequest addToExpectedCommissionRequest);
int updateStatusBatchById(List<Commission> existingCommissions);
boolean deleteByIdPhysical(Long id);
Boolean deleteCommission(Commission oldCommission);
}
......@@ -15,6 +15,10 @@ import org.springframework.stereotype.Service;
public class CommissionCompareRecordServiceImpl extends ServiceImpl<CommissionCompareRecordMapper, CommissionCompareRecord>
implements CommissionCompareRecordService{
@Override
public void removeByCommissionId(String commissionId) {
this.baseMapper.removeByCommissionId(commissionId);
}
}
......
......@@ -15,6 +15,7 @@ import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.component.CommissionAsyncService;
import com.yd.csf.service.component.ReceivableService;
import com.yd.csf.service.dto.*;
......@@ -1046,6 +1047,70 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return this.baseMapper.updateStatusBatchById(existingCommissions);
}
@Override
public boolean deleteByIdPhysical(Long id) {
return baseMapper.deleteByIdPhysical(id) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteCommission(Commission oldCommission) {
// 操作数据库
boolean result = this.deleteByIdPhysical(oldCommission.getId());
if (!result) {
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
String commissionBizId = oldCommission.getCommissionBizId();
// 删除关联来佣比对记录
commissionCompareRecordService.removeByCommissionId(commissionBizId);
// 更新预计来佣记录
String commissionExpectedBizId = oldCommission.getCommissionExpectedBizId();
if (StringUtils.isNotBlank(commissionExpectedBizId)) {
// 查询该预计来佣下的所有剩余来佣记录
List<Commission> remainingCommissions = this.lambdaQuery()
.eq(Commission::getCommissionExpectedBizId, commissionExpectedBizId)
.list();
// 计算新的 paidAmount 和 paidRatio
BigDecimal paidRatio = BigDecimal.ZERO;
BigDecimal paidAmount = BigDecimal.ZERO;
for (Commission item : remainingCommissions) {
paidRatio = paidRatio.add(item.getCurrentCommissionRatio());
paidAmount = paidAmount.add(item.getHkdAmount());
}
// 获取预计来佣记录
CommissionExpected commissionExpected = commissionExpectedService.lambdaQuery()
.eq(CommissionExpected::getCommissionExpectedBizId, commissionExpectedBizId)
.one();
if (commissionExpected != null) {
// 根据 paidRatio 与 commissionRatio 比较确定状态
String newStatus;
if (CollectionUtils.isEmpty(remainingCommissions)) {
// 没有剩余来佣时,恢复到初始状态
newStatus = CommissionExpectedStatusEnum.PENDING.getItemValue();
} else if (paidRatio.compareTo(commissionExpected.getCommissionRatio()) == 0) {
newStatus = CommissionExpectedStatusEnum.COMPARED.getItemValue();
} else {
newStatus = CommissionExpectedStatusEnum.PARTIAL.getItemValue();
}
// 更新预计来佣记录
commissionExpectedService.lambdaUpdate()
.set(CommissionExpected::getPaidAmount, paidAmount.setScale(4, RoundingMode.HALF_UP))
.set(CommissionExpected::getPaidRatio, paidRatio)
.set(CommissionExpected::getStatus, newStatus)
.eq(CommissionExpected::getCommissionExpectedBizId, commissionExpectedBizId)
.update();
}
}
return true;
}
/**
* 查询列表
*
......
......@@ -26,4 +26,8 @@
currency,create_time,exchange_rate,amount,current_commission_ratio,operator_name,remark,
is_deleted
</sql>
<delete id="removeByCommissionId">
delete from commission_compare_record where commission_biz_id = #{commissionId}
</delete>
</mapper>
......@@ -65,6 +65,10 @@
</foreach>
</update>
<delete id="deleteByIdPhysical">
DELETE FROM commission WHERE id = #{id}
</delete>
<select id="queryCommissionBindPolicyBrokerList"
resultType="com.yd.csf.service.dto.CommissionBindPolicyBrokerDto">
select c.*,p.*,pb.*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment