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 balance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { insPlyIncomeService.uodateBalance(insPlyIncomeVo); return HttpResult.ok("手续费结算成功"); } @PostMapping("/totalQuery") @ApiOperation(value = "跟单费总数") public HttpResult> totalQuery(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) { HttpResult> result = insPlyIncomeService.totalQuery(insPlyIncomeVo); return result; } @PutMapping("/batchInvoic") @ApiModelProperty(value = "开票跟单费") public HttpResult batchInvoic(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.batchInvoic(insPlyIncomeVo); } @PutMapping("/singleInvoic") @ApiModelProperty(value = "批量开票跟单费") public HttpResult singleInvoic(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.singleInvoic(insPlyIncomeVo); } @PutMapping("/batchBalance") @ApiModelProperty(value = "批量结算跟单费") public HttpResult batchBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.batchBalance(insPlyIncomeVo); } @PutMapping("/batchPinBalance") @ApiModelProperty(value = "平台批量结算") public HttpResult batchPinBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.batchPinBalance(insPlyIncomeVo); } @PutMapping("/reconciliation") @ApiModelProperty(value = "对账") public HttpResult reconciliation(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.reconciliation(insPlyIncomeVo); } @PostMapping("/NonSettlementQuery") @ApiOperation(value = "非跟单查询") public HttpResult> NonSettlementQuery(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) { HttpResult> result = insPlyIncomeService.nonSettlementQuery(insPlyIncomeVo); return result; } @PostMapping("/NonSettldetail") @ApiOperation(value = "非跟单明细查询") public HttpResult> NonSettldetail(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.nonSettldetail(insPlyIncomeVo); } @PostMapping("/importData") @ApiOperation(value = "手续费导入(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult importData(@RequestParam MultipartFile multipartFile) { HashMap result = insPlyIncomeService.importData(multipartFile); return HttpResult.ok(result); } @PostMapping("/bxImportData") @ApiOperation(value = "保险手续费导入(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult bxImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) { try { List dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1); if (CollectionUtils.isEmpty(dtoList)) { return HttpResult.error("导入数据为空"); } String taskId = String.valueOf(new SnowFlakeUtil().nextId()); importAsyncService.importasync(dtoList, isNotCar, taskId); return HttpResult.ok(taskId); } catch (IOException e) { throw new RuntimeException(e); } } @PostMapping("/bxImportNoData") @ApiOperation(value = "保险非车手续费导入(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult bxImportNoData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) { try { List dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxNoPlyIncomeExcelDto.class, 0, 1, 1); String taskId = String.valueOf(new SnowFlakeUtil().nextId()); importAsyncService.bxImportNoData(dtoList, multipartFile, taskId); return HttpResult.ok(taskId); } catch (IOException e) { throw new RuntimeException(e); } } @PostMapping("/bxImportOther") @ApiOperation(value = "批量修改比例(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult> bxImportOther(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) { HashMap result = insPlyIncomeService.bxImportOther(multipartFile, isNotCar); return HttpResult.ok(result); } @PostMapping("/noBxImportOther") @ApiOperation(value = "非车批量修改比例(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult> noBxImportOther(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) { HashMap result = insPlyIncomeService.noBxImportOther(multipartFile, isNotCar); return HttpResult.ok(result); } @PostMapping("/bxOtherImportData") @ApiOperation(value = "跟单对账导入(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult bxOtherImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) { try { List dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxOtherExcelDto.class, 0, 1, 1); String taskId = String.valueOf(new SnowFlakeUtil().nextId()); importAsyncService.bxOtherImportData(dtoList, isNotCar, taskId); return HttpResult.ok(taskId); } catch (IOException e) { throw new RuntimeException(e); } } @PostMapping("/bxNoOtherImportData") @ApiOperation(value = "非车跟单对账导入(excel)") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file") }) public HttpResult bxNoOtherImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) { try { List dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsNoBxOtherExcelDto.class, 0, 1, 1); String taskId = String.valueOf(new SnowFlakeUtil().nextId()); importAsyncService.bxNoOtherImportData(dtoList, isNotCar, taskId); return HttpResult.ok(taskId); } catch (IOException e) { throw new RuntimeException(e); } } @PutMapping("/update") @ApiModelProperty(value = "修改") public HttpResult updateByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { insPlyIncomeService.updateByEntity(insPlyIncomeVo); return HttpResult.ok("修改成功"); } @PutMapping("/batchUpdate") @ApiModelProperty(value = "批量修改") public HttpResult batchUpdate(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { insPlyIncomeService.batchUpdate(insPlyIncomeVo); return HttpResult.ok("批量修改成功"); } @PutMapping("/batchUpdateVoucher") @ApiModelProperty(value = "批量修改上传凭证") public HttpResult batchUpdateVoucher(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { insPlyIncomeService.batchUpdateVoucher(insPlyIncomeVo); return HttpResult.ok("上传凭证成功"); } @PostMapping("/insert") @ApiModelProperty(value = "新增") public HttpResult insertByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.insertByEntity(insPlyIncomeVo); } @DeleteMapping("/delete") @ApiModelProperty(value = "删除") public HttpResult deleteById(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.deleteById(insPlyIncomeVo); } @GetMapping("/getById/{id}") @ApiModelProperty(value = "回显") public HttpResult getById(@PathVariable("id") String id) { InsPlyIncome item = insPlyIncomeService.getEntityById(id); return HttpResult.ok(item); } @PostMapping("/totalBxAmount") @ApiModelProperty(value = "保险未开票金额") public HttpResult> totalBxAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) { List result = insPlyIncomeService.totalBxAmount(insPlyIncomeVo); return HttpResult.ok(result); } @PutMapping("/batchInvoicing") @ApiModelProperty(value = "保险手续费批量开票") public HttpResult batchInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.batchInvoicing(insPlyIncomeVo); } @PostMapping("/queryInvoicing") @ApiModelProperty(value = "查询开票金额") public HttpResult queryInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.queryInvoicing(insPlyIncomeVo); } @PostMapping("/querySettInvoicing") @ApiModelProperty(value = "查询已开票已结算") public HttpResult querySettInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.querySettInvoicing(insPlyIncomeVo); } @PutMapping("/batchBxBalance") @ApiModelProperty(value = "保险批量结算") public HttpResult batchBxBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.batchBxBalance(insPlyIncomeVo); } @PostMapping("/allOtherAmount") @ApiModelProperty(value = "保险跟单总表") public HttpResult> allOtherAmount(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.allOtherAmount(insPlyIncomeVo); } @ApiModelProperty("平台手续费导出") @PostMapping("pinHandlingExcel") public HttpResult pinHandlingexcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) { return insPlyIncomeService.pinHandlingexcel(insPlyIncomeVo, request, response); } @ApiModelProperty("保险手续费导出") @PostMapping("bxHandlingExcel") public HttpResult bxHandlingexcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) throws IOException { return insPlyIncomeService.bxHandlingexcel(insPlyIncomeVo, request, response); } @ApiModelProperty("保险跟单导出") @PostMapping("bxOtherExcel") public HttpResult bxOtherExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) { return insPlyIncomeService.bxOtherExcel(insPlyIncomeVo, request, response); } @ApiModelProperty("保险跟单明细导出") @PostMapping("/bxOtherDetailsExcel") public HttpResult bxOtherDetailsExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) { return insPlyIncomeService.bxOtherDetailsExcel(insPlyIncomeVo, request, response); } @PostMapping("/invicdetail") @ApiOperation(value = "开票未结算详情查询") public HttpResult> invicdetail(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.invicdetail(insPlyIncomeVo); } @ApiModelProperty("保险非车跟单明细导出") @PostMapping("/bxNoOtherDetailsExcel") public HttpResult bxNoOtherDetailsExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) { return insPlyIncomeService.bxOtherDetailsExcel(insPlyIncomeVo, request, response); } @PostMapping("/otherSettldetail") @ApiOperation(value = "非跟单明细查询") public HttpResult>> otherSettldetail(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.otherSettldetail(insPlyIncomeVo); } @PostMapping("/otherTimeDetail") @ApiOperation(value = "非跟单明细查询") public HttpResult>> otherTimeDetail(@RequestBody InsPlyIncomeVo insPlyIncomeVo) { return insPlyIncomeService.otherTimeDetail(insPlyIncomeVo); } }