package com.ydtech.modules.fnc.controller;
import com.ydtech.core.page.HttpResult;
import com.ydtech.modules.base.controller.BaseController;
import com.ydtech.modules.fnc.entity.InsPlyIncome;
import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
import com.ydtech.modules.fnc.service.ImportAsyncService;
import com.ydtech.modules.fnc.service.InsPlyIncomeService;
import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
import com.ydtech.modules.inv.model.dto.InsBxNoPlyIncomeExcelDto;
import com.ydtech.modules.inv.model.dto.InsBxOtherExcelDto;
import com.ydtech.modules.inv.model.dto.InsBxPlyIncomeExcelDto;
import com.ydtech.modules.inv.model.dto.InsNoBxOtherExcelDto;
import com.ydtech.modules.order.entity.BasePageResult;
import com.ydtech.utils.SnowFlakeUtil;
import com.ydtech.utils.StringUtils;
import com.ydtech.utils.excel.ExcelEasypoiUtils;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.Period;
import java.util.HashMap;
import java.util.List;
/**
*
* 保司结算手续费 前端控制器
*
*
* @author gws
* @since 2024-01-05
*/
@RestController
@Api(tags = "保司费用")
@RequestMapping("/fnc/plyFee")
public class InsPlyIncomeController extends BaseController {
@Autowired
private InsPlyIncomeService insPlyIncomeService;
@Autowired
private ImportAsyncService importAsyncService;
/**
* @return
*/
@PostMapping("/queryPage")
@ApiOperation(value = "[1]保司费用查询")
public HttpResult> queryPage(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
if (StringUtils.isNullOrEmpty(insPlyIncomeVo.getCompanyId())
&& StringUtils.isNullOrEmpty(insPlyIncomeVo.getStartDate())
&& StringUtils.isNullOrEmpty(insPlyIncomeVo.getEndDate())
&& StringUtils.isNullOrEmpty(insPlyIncomeVo.getLicenseno())
) {
return HttpResult.error("查询条件不能全为空!");
}
if (!StringUtils.isNullOrEmpty(insPlyIncomeVo.getStartDate())
&& !StringUtils.isNullOrEmpty(insPlyIncomeVo.getEndDate())
&& Period.between(insPlyIncomeVo.getStartDate(), insPlyIncomeVo.getEndDate()).getDays() > 100
) {
return HttpResult.error("查询时间区间不能超过3个月!");
}
if (StringUtils.isNullOrEmpty(insPlyIncomeVo.getDeptId())) {
insPlyIncomeVo.setDeptId(getDeptId());
}
HttpResult> result = insPlyIncomeService.queryplyIncome(insPlyIncomeVo);
return result;
}
@PostMapping("/query")
@ApiOperation(value = "[1]保司费用查询new")
public HttpResult> query(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
HttpResult> result = insPlyIncomeService.queryNew(insPlyIncomeVo);
return result;
}
@PostMapping("/totalAmount")
@ApiModelProperty(value = "平台手续费合计金额")
public HttpResult> totalAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
if (!CollectionUtils.isEmpty(insPlyIncomeVo.getSelectIds())) {
HashMap result = insPlyIncomeService.totalAmount(insPlyIncomeVo.getSelectIds());
return HttpResult.ok(result);
} else {
return HttpResult.ok();
}
}
@PostMapping("/totalPinAmount")
@ApiModelProperty(value = "平台结算未结算接口")
public HttpResult> totalPinAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
List result = insPlyIncomeService.totalPinAmount(insPlyIncomeVo);
return HttpResult.ok(result);
}
@PostMapping("/bxTotalAmount")
@ApiModelProperty(value = "保险手续费合计")
public HttpResult bxTotalPinAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
InsPlyIncome result = insPlyIncomeService.bxTotalAmount(insPlyIncomeVo);
return HttpResult.ok(result);
}
@PostMapping("/ptTotalAmount")
@ApiModelProperty(value = "平台手续费合计")
public HttpResult ptTotalAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
InsPlyIncome result = insPlyIncomeService.ptTotalAmount(insPlyIncomeVo);
return HttpResult.ok(result);
}
@PutMapping("/balance")
@ApiModelProperty(value = "结算手续费")
public HttpResult