Commit e6c3561e by zhangxingmin

Merge remote-tracking branch 'origin/test' into test

parents b454e824 7c011202
......@@ -37,4 +37,11 @@ public interface ExpectedFortuneMapper extends BaseMapper<ExpectedFortune> {
*/
IPage<PayableReportVO> payableReportPage(@Param("page") Page<PayableReportVO> page,
@Param("expectedFortuneIds") List<Long> expectedFortuneIds);
/**
* 更新预计发佣记录的出账状态
* @param expectedFortuneBizIdList 预计发佣记录ID列表
* @param status 出账状态
*/
void updateBatchByBizId(@Param("expectedFortuneBizIdList") List<String> expectedFortuneBizIdList, @Param("status") String status);
}
......@@ -43,4 +43,6 @@ public interface IExpectedFortuneService extends IService<ExpectedFortune> {
* @return 应付款报表VO分页列表
*/
IPage<PayableReportVO> payableReportPage(Page<PayableReportVO> page, List<Long> expectedFortuneIds);
void updateBatchByBizId(List<String> expectedFortuneBizIdList, String status);
}
......@@ -159,4 +159,9 @@ public class ExpectedFortuneServiceImpl extends ServiceImpl<ExpectedFortuneMappe
public IPage<PayableReportVO> payableReportPage(Page<PayableReportVO> page, List<Long> expectedFortuneIds) {
return baseMapper.payableReportPage(page, expectedFortuneIds);
}
@Override
public void updateBatchByBizId(List<String> expectedFortuneBizIdList, String status) {
baseMapper.updateBatchByBizId(expectedFortuneBizIdList, status);
}
}
......@@ -155,6 +155,8 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
// 处理关联发佣记录
List<Fortune> updateFortuneList = new ArrayList<>();
// 处理关联预计发佣记录
List<String> expectedFortuneBizIdList = new ArrayList<>();
for (FortuneAccount fortuneAccount : fortuneAccountList) {
String fortuneAccountBizId = fortuneAccount.getFortuneAccountBizId();
List<Fortune> fortuneList = fortuneAccount.getFortuneList();
......@@ -172,6 +174,8 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
}
updateFortune.setReconciliationOperator(currentLoginUser.getUsername());
updateFortuneList.add(updateFortune);
// 处理关联预计发佣记录
expectedFortuneBizIdList.add(item.getExpectedFortuneBizId());
}
}
}
......@@ -180,6 +184,10 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
if (CollectionUtils.isNotEmpty(updateFortuneList)) {
fortuneService.updateBatchById(updateFortuneList);
}
// 更新预计发佣记录的出账状态
if (CollectionUtils.isNotEmpty(expectedFortuneBizIdList)) {
expectedFortuneService.updateBatchByBizId(expectedFortuneBizIdList, FortuneStatusEnum.CHECKED.getItemValue());
}
}
......
......@@ -204,6 +204,24 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
// 如果未传入金额,全额发放,出账状态为已出帐
totalFortune(fortune, expectedFortune, loginUserId, fortuneUpdateRequest);
}
// 同步 expected_fortune
// 统一使用港币金额
BigDecimal newPaid = calculateExpectedFortunePaidAmount(expectedFortune);
BigDecimal newUnpaid = expectedFortune.getHkdAmount().subtract(newPaid);
String newStatus = newUnpaid.compareTo(BigDecimal.ZERO) == 0 ? "6" : "3";
expectedFortuneService.lambdaUpdate()
.set(ExpectedFortune::getPaidAmount, newPaid)
.set(ExpectedFortune::getUnpaidAmount, newUnpaid)
.set(ExpectedFortune::getPaidRatio,
newPaid.divide(expectedFortune.getHkdAmount(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)))
.set(ExpectedFortune::getUnpaidRatio,
newUnpaid.divide(expectedFortune.getHkdAmount(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)))
.set(ExpectedFortune::getStatus, newStatus)
.eq(ExpectedFortune::getId, expectedFortune.getId())
.update();
return true;
}
......@@ -224,17 +242,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
fortune.setActualPayoutDate(actualPayoutDate);
this.updateById(fortune);
// 2. 更新expected_fortune记录为已全额发放状态
// 统一使用港币金额
// expectedFortune.setPaidAmount(expectedFortune.getHkdAmount());
// expectedFortune.setUnpaidAmount(BigDecimal.ZERO);
// expectedFortune.setPaidRatio(BigDecimal.valueOf(100));
// expectedFortune.setUnpaidRatio(BigDecimal.ZERO);
// expectedFortune.setStatus("6"); // 全额发放完成状态
// expectedFortune.setActualPayoutDate(LocalDate.now());
//
// expectedFortuneService.updateById(expectedFortune);
}
/**
......@@ -301,23 +308,18 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
part.setCreateTime(new Date());
this.save(part);
}
}
// 3. 同步 expected_fortune
// 统一使用港币金额
// BigDecimal newPaid = expectedFortune.getPaidAmount() == null ? BigDecimal.ZERO : expectedFortune.getPaidAmount().add(currentPaymentHkdAmount);
// BigDecimal newUnpaid = expectedFortune.getHkdAmount().subtract(newPaid);
// String newStatus = newUnpaid.compareTo(BigDecimal.ZERO) == 0 ? "6" : "3";
//
// expectedFortuneService.lambdaUpdate()
// .set(ExpectedFortune::getPaidAmount, newPaid)
// .set(ExpectedFortune::getUnpaidAmount, newUnpaid)
// .set(ExpectedFortune::getPaidRatio,
// newPaid.divide(expectedFortune.getHkdAmount(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)))
// .set(ExpectedFortune::getUnpaidRatio,
// newUnpaid.divide(expectedFortune.getHkdAmount(), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)))
// .set(ExpectedFortune::getStatus, newStatus)
// .eq(ExpectedFortune::getId, expectedFortune.getId())
// .update();
private BigDecimal calculateExpectedFortunePaidAmount(ExpectedFortune expectedFortune) {
// 查询所有已出账的记录
List<Fortune> paidList = this.list(new QueryWrapper<Fortune>()
.eq("expected_fortune_biz_id", expectedFortune.getExpectedFortuneBizId())
.eq("fortune_period", expectedFortune.getFortunePeriod())
.eq("status", FortuneStatusEnum.CHECKED.getItemValue()));
// 计算已出账金额
return paidList.stream()
.map(Fortune::getCurrentPaymentHkdAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
@Override
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.ExpectedFortuneMapper">
<update id="updateBatchByBizId">
update expected_fortune ef
set ef.status = #{status}
where ef.id in
<foreach collection="expectedFortuneBizIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<select id="page" resultType="com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse">
select * from expected_fortune ef
......
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