Commit 6f858d6a by zhangxingmin

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

# Conflicts:
#	yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
#	yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
#	yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
parents ce9d5a0f 9f77c477
...@@ -431,6 +431,36 @@ public class ApiFortuneController { ...@@ -431,6 +431,36 @@ public class ApiFortuneController {
} }
/** /**
* 修改设置出账年月(实)),设置完成后,更新到应付款管理明细中
*
* @param editActualPayoutDateRequest
* @return
*/
@PostMapping("/edit_actual_payout_date")
@Operation(summary = "修改设置出账年月(实),设置完成后,更新到应付款管理明细中")
public Result<Boolean> editActualPayoutDate(@RequestBody EditActualPayoutDateRequest editActualPayoutDateRequest) {
if (editActualPayoutDateRequest == null || StringUtils.isBlank(editActualPayoutDateRequest.getFortuneBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(fortuneService.editActualPayoutDate(editActualPayoutDateRequest));
}
/**
* 修改结算汇率,设置完成后,更新到应付款管理明细中
*
* @param editExchangeRateRequest
* @return
*/
@PostMapping("/edit_exchange_rate")
@Operation(summary = "修改结算汇率,设置完成后,更新到应付款管理明细中")
public Result<Boolean> editExchangeRate(@RequestBody EditExchangeRateRequest editExchangeRateRequest) {
if (editExchangeRateRequest == null || StringUtils.isBlank(editExchangeRateRequest.getFortuneBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(fortuneService.editExchangeRate(editExchangeRateRequest));
}
/**
* 修改出账状态 * 修改出账状态
* *
* @param fortuneStatusUpdateRequest * @param fortuneStatusUpdateRequest
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class EditActualPayoutDateRequest {
@Schema(description = "出账业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String fortuneBizId;
@Schema(description = "实际出账年月(实)", requiredMode = Schema.RequiredMode.REQUIRED)
private String actualPayoutDate;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EditExchangeRateRequest {
@Schema(description = "fortuneBizId", requiredMode = Schema.RequiredMode.REQUIRED)
private String fortuneBizId;
@Schema(description = "结算汇率", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal exchangeRate;
}
...@@ -43,6 +43,12 @@ public class ExpectedFortune implements Serializable { ...@@ -43,6 +43,12 @@ public class ExpectedFortune implements Serializable {
private String fortuneBizType; private String fortuneBizType;
/** /**
* 是否拆分出来的出账 1-是 0-否 2-拆分的原纪录
*/
@TableField("is_part")
private Integer isPart;
/**
* 应付款编号 * 应付款编号
*/ */
@TableField("payable_no") @TableField("payable_no")
......
...@@ -42,4 +42,8 @@ public interface FortuneService extends IService<Fortune> { ...@@ -42,4 +42,8 @@ public interface FortuneService extends IService<Fortune> {
Boolean addFortuneBatch(List<FortuneAddRequest> fortuneAddRequestList); Boolean addFortuneBatch(List<FortuneAddRequest> fortuneAddRequestList);
Boolean splitFortune(FortuneSplitRequest fortuneSplitRequest); Boolean splitFortune(FortuneSplitRequest fortuneSplitRequest);
Boolean editActualPayoutDate(EditActualPayoutDateRequest editActualPayoutDateRequest);
Boolean editExchangeRate(EditExchangeRateRequest editExchangeRateRequest);
} }
...@@ -798,8 +798,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -798,8 +798,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
List<FortuneSplitDto> splitList = fortuneSplitRequest.getFortuneSplitDtoList(); List<FortuneSplitDto> splitList = fortuneSplitRequest.getFortuneSplitDtoList();
// 3. 金额验证 // 3. 金额验证
BigDecimal totalSplitHkdAmount = splitList.stream() BigDecimal totalSplitOriginalAmount = splitList.stream()
.map(FortuneSplitDto::getHkdAmount) .map(FortuneSplitDto::getOriginalAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add); .reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal totalSplitRatio = splitList.stream() BigDecimal totalSplitRatio = splitList.stream()
...@@ -808,10 +808,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -808,10 +808,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
.reduce(BigDecimal.ZERO, BigDecimal::add); .reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal tolerance = new BigDecimal("0.01"); BigDecimal tolerance = new BigDecimal("0.01");
BigDecimal hkdDifference = originalFortune.getHkdAmount().subtract(totalSplitHkdAmount).abs(); BigDecimal originalDifference = originalFortune.getAmount().subtract(totalSplitOriginalAmount).abs();
if (hkdDifference.compareTo(tolerance) > 0) { if (originalDifference.compareTo(tolerance) > 0) {
throw new BusinessException(ResultCode.PARAM_CHECK_ERROR.getCode(), throw new BusinessException(ResultCode.PARAM_CHECK_ERROR.getCode(),
String.format("分期港币金额总和(%s)与原记录港币金额(%s)不匹配", totalSplitHkdAmount, originalFortune.getHkdAmount())); String.format("分期原始金额总和(%s)与原记录原始金额(%s)不匹配", totalSplitOriginalAmount, originalFortune.getAmount()));
} }
if (totalSplitRatio.compareTo(BigDecimal.ZERO) > 0) { if (totalSplitRatio.compareTo(BigDecimal.ZERO) > 0) {
...@@ -922,9 +922,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -922,9 +922,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
newFortuneList.add(newFortune); newFortuneList.add(newFortune);
} }
// 5. 处理原始记录 // 5.1 设置原始 fortune记录 is_part 为 2,表示该记录已被分期
this.removeById(originalFortune.getId()); this.lambdaUpdate()
expectedFortuneService.removeById(originalExpectedFortune.getId()); .set(Fortune::getIsPart, 2)
.eq(Fortune::getId, originalFortune.getId())
.update();
// 5.2 设置原始 expected fortune记录 is_part 为 2,表示该记录已被分期
expectedFortuneService.lambdaUpdate()
.set(ExpectedFortune::getIsPart, 2)
.eq(ExpectedFortune::getId, originalExpectedFortune.getId())
.update();
// 6. 批量保存新记录 // 6. 批量保存新记录
boolean expectedSaveSuccess = expectedFortuneService.saveBatch(newExpectedFortuneList); boolean expectedSaveSuccess = expectedFortuneService.saveBatch(newExpectedFortuneList);
...@@ -941,6 +949,16 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -941,6 +949,16 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return true; return true;
} }
@Override
public Boolean editActualPayoutDate(EditActualPayoutDateRequest editActualPayoutDateRequest) {
return null;
}
@Override
public Boolean editExchangeRate(EditExchangeRateRequest editExchangeRateRequest) {
return null;
}
private void validSplitFortune(FortuneSplitRequest fortuneSplitRequest) { private void validSplitFortune(FortuneSplitRequest fortuneSplitRequest) {
if (fortuneSplitRequest == null) { if (fortuneSplitRequest == null) {
throw new BusinessException(ResultCode.PARAM_CHECK_ERROR.getCode(), "分期出账请求不能为空"); throw new BusinessException(ResultCode.PARAM_CHECK_ERROR.getCode(), "分期出账请求不能为空");
......
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