Commit 84bbb631 by jianan

来佣接口31

parent 1d5871eb
...@@ -4,6 +4,8 @@ import com.alibaba.excel.EasyExcel; ...@@ -4,6 +4,8 @@ import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.csf.api.dto.CommissionExcelDTO; import com.yd.csf.api.dto.CommissionExcelDTO;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
...@@ -28,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -28,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -53,6 +56,7 @@ public class ApiCommissionController { ...@@ -53,6 +56,7 @@ public class ApiCommissionController {
@PostMapping("/upload/excel") @PostMapping("/upload/excel")
@Operation(summary = "上传保单来佣Excel文件")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result<Boolean> uploadExcel(@RequestParam("file") MultipartFile file) throws IOException { public Result<Boolean> uploadExcel(@RequestParam("file") MultipartFile file) throws IOException {
List<CommissionExcelDTO> dataList = new ArrayList<>(); List<CommissionExcelDTO> dataList = new ArrayList<>();
...@@ -66,17 +70,49 @@ public class ApiCommissionController { ...@@ -66,17 +70,49 @@ public class ApiCommissionController {
throw new RuntimeException("Excel读取失败", e); throw new RuntimeException("Excel读取失败", e);
} }
// 数据校验
validateCommissionUpload(dataList);
// 获取当前登录用户的ID // 获取当前登录用户的ID
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser(); AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
String loginUserId = currentLoginUser.getId().toString(); String loginUserId = currentLoginUser.getId().toString();
// 数据验证和处理 // 数据处理
processData(dataList, loginUserId); processData(dataList, loginUserId);
return Result.success(true); return Result.success(true);
} }
/** /**
* 校验导入的来佣数据是否符合要求,返回行号和错误信息
*/
private void validateCommissionUpload(List<CommissionExcelDTO> dataList) {
// 校验数据是否为空
if (CollectionUtils.isEmpty(dataList)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "导入数据不能为空");
}
StringBuilder errorMsg = new StringBuilder();
for (CommissionExcelDTO excelDTO : dataList) {
// 校验必填字段是否为空
if (StringUtils.isBlank(excelDTO.getPolicyNo()) ||
StringUtils.isBlank(excelDTO.getReconciliationCompany()) ||
StringUtils.isBlank(excelDTO.getCommissionName()) ||
excelDTO.getAmount() == null ||
StringUtils.isBlank(excelDTO.getCurrency()) ||
excelDTO.getCommissionDate() == null) {
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行存在空字段");
}
// 校验来佣金额是否为正数
if (excelDTO.getAmount().compareTo(BigDecimal.ZERO) <= 0) {
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行来佣金额必须为正数");
}
}
if (errorMsg.length() > 0) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), errorMsg.toString());
}
}
/**
* 1.处理导入的数据 2.比对预计来佣 3.保存到数据库 * 1.处理导入的数据 2.比对预计来佣 3.保存到数据库
*/ */
private void processData(List<CommissionExcelDTO> dataList, String loginUserId) { private void processData(List<CommissionExcelDTO> dataList, String loginUserId) {
......
...@@ -58,6 +58,7 @@ public class ApiFortuneController { ...@@ -58,6 +58,7 @@ public class ApiFortuneController {
@PostMapping("/upload/excel") @PostMapping("/upload/excel")
@Operation(summary = "上传保单发佣Excel文件")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result<Boolean> uploadExcel(@RequestParam("file") MultipartFile file) throws IOException { public Result<Boolean> uploadExcel(@RequestParam("file") MultipartFile file) throws IOException {
try { try {
......
...@@ -35,9 +35,9 @@ public class FortuneAccountAddRequest implements Serializable { ...@@ -35,9 +35,9 @@ public class FortuneAccountAddRequest implements Serializable {
private BigDecimal amount; private BigDecimal amount;
/** /**
* 出账状态 0-可出账、1-待出账、2-已出账 * 出账状态 1-可出账、2-已出账
*/ */
@Schema(description = "出账状态 0-可出账、1-待出账、2-已出账", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "出账状态 1-可出账、2-已出账 字典值:csf_fortune_account_status", requiredMode = Schema.RequiredMode.REQUIRED)
private String status; private String status;
/** /**
......
...@@ -46,7 +46,7 @@ public class FortuneAccountVO { ...@@ -46,7 +46,7 @@ public class FortuneAccountVO {
/** /**
* 出账状态 * 出账状态
*/ */
@Schema(description = "出账状态 0=可出账 1=待出账 2=已出账") @Schema(description = "出账状态 1=可出账 2=已出账")
private String status; private String status;
/** /**
......
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