| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- package com.ydtech.modules.inv.controller;
- import cn.afterturn.easypoi.excel.ExcelExportUtil;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.bean.copier.CopyOptions;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.core.page.PageRequest;
- import com.ydtech.core.page.PageResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.base.model.dto.PageDto;
- import com.ydtech.modules.base.model.dto.TestDto;
- import com.ydtech.modules.base.model.vo.PageVo;
- import com.ydtech.modules.esm.model.EsmInsCompany;
- import com.ydtech.modules.esm.service.EsmInsCompanyService;
- import com.ydtech.modules.fnc.vo.FncVoucherVo;
- import com.ydtech.modules.ins.utils.ExcelStyleUtil;
- import com.ydtech.modules.inv.model.InvBaseExternalBillsDetails;
- import com.ydtech.modules.inv.model.InvChannelsExternalBillsDetails;
- import com.ydtech.modules.inv.model.InvExternalBills;
- import com.ydtech.modules.inv.model.InvInsExternalBillsDetails;
- import com.ydtech.modules.inv.model.dto.InvInsCompanyDto;
- import com.ydtech.modules.inv.model.dto.InvInsImportDto;
- import com.ydtech.modules.inv.model.vo.InsChannelMatchVo;
- import com.ydtech.modules.inv.model.vo.InvInsCompanyExportVo;
- import com.ydtech.modules.inv.model.vo.InvInsCompanyVo;
- import com.ydtech.modules.inv.model.vo.req.InvChannelExternalBillsDetailsReqVO;
- import com.ydtech.modules.inv.model.vo.req.InvInsExternalBillsReqVO;
- import com.ydtech.modules.inv.model.vo.res.InvBaseChannelMatchInsResVO;
- import com.ydtech.modules.inv.service.InvChannelsExternalBillsDetailsService;
- import com.ydtech.modules.inv.service.InvExternalBillsService;
- import com.ydtech.modules.inv.service.InvInsExternalBillsDetailsService;
- import com.ydtech.utils.StringUtils;
- import com.ydtech.utils.excel.ExcelEasypoiUtils;
- import com.ydtech.utils.excel.ExcelUtils2;
- import io.swagger.annotations.*;
- import org.apache.commons.lang3.ObjectUtils;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * 外部单据控制层
- *
- * @author: lig
- * @date: 2023-05-31
- */
- @Api(tags = "财务 - 外部票据控制层")
- @RestController
- @RequestMapping("api/inv/insExternalBills")
- public class InvExternalBillsController extends BaseController {
- @Autowired
- private InvExternalBillsService invExternalBillsService;
- @Autowired
- private InvInsExternalBillsDetailsService invInsExternalBillsDetailsService;
- @Autowired
- private InvChannelsExternalBillsDetailsService invChannelsExternalBillsDetailsService;
- @Autowired
- private EsmInsCompanyService esmInsCompanyService;
- /**
- * 分页查询
- *
- * @param reqVo
- * @return
- */
- @ApiOperation(value = "分页查询")
- @PostMapping(value = "/queryPage")
- public HttpResult<PageResult<InvExternalBills>> queryPage(@RequestBody InvInsExternalBillsReqVO reqVo) {
- LambdaQueryWrapper<InvExternalBills> lqw = new LambdaQueryWrapper();
- lqw.eq(StringUtils.isNotEmpty(reqVo.getImportStatus()), InvExternalBills::getImportStatus, reqVo.getImportStatus());
- lqw.between(StringUtils.isNotEmpty(reqVo.getImportStartTime()) && StringUtils.isNotEmpty(reqVo.getImportEndTime()), InvExternalBills::getCreateTime, reqVo.getImportStartTime(), reqVo.getImportEndTime());
- lqw.eq(InvExternalBills::getFlag, reqVo.getFlag());
- lqw.eq(StringUtils.isNotEmpty(reqVo.getInsCompanyId()), InvExternalBills::getInsCompanyId, reqVo.getInsCompanyId());
- lqw.eq(StringUtils.isNotEmpty(reqVo.getId()), InvExternalBills::getId, reqVo.getId());
- Page p = PageRequest.buildPageRequestByVo(reqVo);
- IPage<InvExternalBills> pResult = invExternalBillsService.page(p, lqw);
- //传入查询条件
- PageResult<InvExternalBills> pageResult = PageResult.buildPageResult(pResult);
- return HttpResult.ok(pageResult);
- }
- @PostMapping("/importData")
- @ApiOperation(value = "excel导入数据")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
- })
- // public HttpResult importData( InvInsImportDto importDto) {
- public HttpResult importData(@RequestPart MultipartFile file, InvInsImportDto importDto) {
- // public HttpResult importData(@RequestBody InvInsImportDto importDto) {
- if (importDto.getFlag().equals("1") && StringUtils.isEmpty(importDto.getInsCompanyId()))
- return HttpResult.error("保险公司导入模式下,保险公司ID为必填。");
- InvExternalBills iieb = null;
- if (StringUtils.isNotEmpty(importDto.getBatchNum())) {
- iieb = invExternalBillsService.getById(importDto.getBatchNum());
- //删除详细数据
- invInsExternalBillsDetailsService.deleteByBatchNum(iieb.getId());
- } else {
- iieb = new InvExternalBills();
- iieb.setCreateTime(new Date());
- iieb.setCreateBy(getUserId());
- iieb.setImportStatus("1");
- iieb.setFlag(importDto.getFlag());
- // //渠道
- // iieb.setBusinessChannels(importDto.getBusinessChannels());
- invExternalBillsService.save(iieb);
- }
- //数据导入
- invExternalBillsService.importData(importDto, iieb, file);
- return HttpResult.ok("导入成功");
- }
- @ApiOperation(value = "修改")
- @ApiResponses({
- @ApiResponse(code = 500, message = "出现异常"),
- @ApiResponse(code = 200, message = "请求成功")
- })
- @PostMapping(value = "/edit")
- public HttpResult edit(@RequestBody InvExternalBills invExternalBills, HttpServletRequest request) {
- return HttpResult.ok(invExternalBillsService.updateById(invExternalBills));
- }
- @ApiOperation(value = "单条删除通过批次号")
- @ApiResponses({
- @ApiResponse(code = 500, message = "出现异常"),
- @ApiResponse(code = 200, message = "请求成功")
- })
- @ApiImplicitParams({
- @ApiImplicitParam(name = "batchNum", value = "批次号", required = true)
- , @ApiImplicitParam(name = "flag", value = "标识(1 保险公司模板导入 2 渠道模板导入)", required = true)})
- @DeleteMapping(value = "/deleteByBatchNum")
- public HttpResult deleteByBatchNum(String batchNum, String flag) {
- if (flag.equals("1")) {
- invInsExternalBillsDetailsService.deleteByBatchNum(batchNum);
- }
- if (flag.equals("2")) {
- invChannelsExternalBillsDetailsService.deleteByBatchNum(batchNum);
- }
- return HttpResult.ok(invExternalBillsService.removeById(batchNum));
- }
- @PostMapping("/channelMatchingIns")
- @ApiOperation(value = "渠道匹配保险公司数据(分页)")
- public HttpResult<PageVo<InvBaseChannelMatchInsResVO>> channelMatchIns(@RequestBody PageDto<InvChannelExternalBillsDetailsReqVO> pageDto) {
- return HttpResult.ok(invChannelsExternalBillsDetailsService.gainChannelMatchIns(pageDto));
- }
- // @PostMapping("/channelMatchingIns")
- // @ApiOperation(value = "渠道匹配保险公司数据(分页)")
- // public HttpResult<PageResult<InvBaseChannelMatchInsResVO>> channelMatchIns(@RequestBody InvChannelExternalBillsDetailsReqVO reqVo) {
- //
- // return HttpResult.ok(invChannelsExternalBillsDetailsService.gainChannelMatchIns(reqVo));
- //
- // }
- @GetMapping(value = "/export/{batchNum}")
- @ApiOperation(value = "保司数据导出(包含费用)")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "batchNum", value = "批次号", required = true, dataType = "String")
- })
- public HttpResult export(@PathVariable String batchNum, HttpServletRequest request, HttpServletResponse response) {
- LambdaQueryWrapper<InvInsExternalBillsDetails> lqw = new LambdaQueryWrapper();
- lqw.eq(InvInsExternalBillsDetails::getBatchNum, batchNum);
- List<InvInsExternalBillsDetails> list = invInsExternalBillsDetailsService.list(lqw);
- List<InvInsCompanyExportVo> listVo = new ArrayList<>();
- list.stream().forEach(a -> {
- InvInsCompanyExportVo vo = new InvInsCompanyExportVo();
- vo.setMliftaPolicyNum(a.getMliftaPolicyNum());
- vo.setCipPolicyNum(a.getCipPolicyNum());
- vo.setApplicant(a.getApplicant());
- vo.setPlateNum(a.getPlateNum());
- vo.setPayDate(a.getPayDate());
- vo.setMlifta(a.getMlifta());
- vo.setVavt(a.getVavt());
- vo.setCip(a.getCip());
- vo.setOther(a.getOther());
- vo.setMliftaCost(a.getMliftaCost());
- vo.setVavtCost(a.getVavtCost());
- vo.setCipCost(a.getCipCost());
- vo.setInsCompany(a.getInsCompany());
- listVo.add(vo);
- });
- String fileName = batchNum + "-保司数据导出";
- try {
- ExcelEasypoiUtils.exportExcel(listVo, InvInsCompanyExportVo.class, fileName, response);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return HttpResult.ok();
- }
- @PostMapping(value = "/synthesize")
- @ApiOperation(value = "综合查询")
- public HttpResult<PageVo<InvInsCompanyVo>> synthesize(@RequestBody PageDto<InvInsCompanyDto> pageDto) {
- return HttpResult.ok(invExternalBillsService.gainSynthesizePage(pageDto));
- }
- }
|