package com.doumee.api.business; import com.doumee.api.BaseController; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; import com.doumee.dao.business.dto.CountCyclePriceDTO; import com.doumee.dao.business.dto.InsuranceApplyOptDTO; import com.doumee.dao.business.dto.InsuranceApplyQueryDTO; import com.doumee.dao.business.dto.SmsCheckDTO; import com.doumee.dao.business.model.InsuranceApply; import com.doumee.dao.business.vo.CountCyclePriceVO; import com.doumee.service.business.InsuranceApplyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * @author 江蹄蹄 * @date 2024/01/16 10:03 */ @Api(tags = "投保申请信息表") @RestController @RequestMapping("/business/insuranceApply") public class InsuranceApplyController extends BaseController { @Autowired private InsuranceApplyService insuranceApplyService; @PreventRepeat @ApiOperation("新建") @PostMapping("/create") @RequiresPermissions("business:insuranceapply:create") public ApiResponse create(@RequestBody InsuranceApply insuranceApply) { return ApiResponse.success(insuranceApplyService.create(insuranceApply)); } @PreventRepeat @ApiOperation("修改") @PostMapping("/updateData") @RequiresPermissions("business:insuranceapply:create") public ApiResponse updateData(@RequestBody InsuranceApply insuranceApply) { return ApiResponse.success(insuranceApplyService.updateData(insuranceApply)); } @ApiOperation("根据ID删除") @GetMapping("/delete/{id}") @RequiresPermissions("business:insuranceapply:delete") public ApiResponse deleteById(@PathVariable Integer id) { insuranceApplyService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("批量删除") @GetMapping("/delete/batch") @RequiresPermissions("business:insuranceapply:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids) { String [] idArray = ids.split(","); List idList = new ArrayList<>(); for (String id : idArray) { idList.add(Integer.valueOf(id)); } insuranceApplyService.deleteByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("根据ID修改") @PostMapping("/updateById") @RequiresPermissions("business:insuranceapply:update") public ApiResponse updateById(@RequestBody InsuranceApply insuranceApply) { insuranceApplyService.updateById(insuranceApply); return ApiResponse.success(null); } @ApiOperation("分页查询") @PostMapping("/page") @RequiresPermissions("business:insuranceapply:query") public ApiResponse> findPage (@RequestBody PageWrap pageWrap) { PageData pageData = insuranceApplyService.findPage(pageWrap); pageData.getRecords().forEach(i->{ if(i.getSolutionType().equals(Constants.ONE)&&!i.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){ i.setFee(null); } }); return ApiResponse.success(pageData); } @ApiOperation("列表") @PostMapping("/findListByDTO") @RequiresPermissions("business:insuranceapply:query") public ApiResponse> findListByDTO (@RequestBody InsuranceApplyQueryDTO insuranceApplyQueryDTO) { return ApiResponse.success(insuranceApplyService.findListByDTO(insuranceApplyQueryDTO)); } @ApiOperation("导出Excel") @PostMapping("/exportExcel") @RequiresPermissions("business:insuranceapply:exportExcel") public void exportExcel (@RequestBody PageWrap pageWrap, HttpServletResponse response) { ExcelExporter.build(InsuranceApply.class).export(insuranceApplyService.findPage(pageWrap).getRecords(), "投保申请信息表", response); } @ApiOperation("导出投保详情单") @PostMapping("/exportDetailExcel") @RequiresPermissions("business:insuranceapply:exportExcel") public void exportDetailExcel (@RequestBody InsuranceApply model, HttpServletResponse response) { InsuranceApply insuranceApply = insuranceApplyService.findDetailForExport(model); if(Objects.nonNull(insuranceApply)&&insuranceApply.getSolutionType().equals(Constants.ONE) &&!insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){ insuranceApply.setFee(null); } ExcelExporter.build(InsuranceApply.class).exportApplyDetail(insuranceApply, response); } @ApiOperation("根据ID查询") @GetMapping("/{id}") @RequiresPermissions("business:insuranceapply:query") public ApiResponse findById(@PathVariable Integer id) { InsuranceApply insuranceApply = insuranceApplyService.findDetail(id); if(Objects.nonNull(insuranceApply)&&insuranceApply.getSolutionType().equals(Constants.ONE)&&!insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){ insuranceApply.setFee(null); } return ApiResponse.success(insuranceApply); } @ApiOperation("企业签署保单") @GetMapping("/getSignLink/{id}") @RequiresPermissions("business:insuranceapply:query") public ApiResponse getSignLink(@PathVariable Integer id) { return ApiResponse.success(insuranceApplyService.getSignLink(id)); } @ApiOperation("申请记录状态处理") @PostMapping("/applyOpt") public ApiResponse applyOpt (@RequestBody InsuranceApplyOptDTO insuranceApplyOptDTO) { insuranceApplyService.applyOpt(insuranceApplyOptDTO); return ApiResponse.success("操作成功"); } @ApiOperation("获取保单止期与初始金额") @PostMapping("/getCountCyclePriceVO") public ApiResponse getCountCyclePriceVO (@RequestBody CountCyclePriceDTO countCyclePriceDTO) { return ApiResponse.success("操作成功",insuranceApplyService.getCountCyclePriceVO(countCyclePriceDTO)); } @ApiOperation("获取保障中人数") @GetMapping("/guaranteeNum") public ApiResponse guaranteeNum() { return ApiResponse.success(insuranceApplyService.guaranteeNum()); } @ApiOperation("测试实际金额") @GetMapping("/testFee") public ApiResponse testFee(Integer id) { insuranceApplyService.updateApplyCurrentFee(id); return ApiResponse.success(null); } @ApiOperation("测试生成待续保通知") @GetMapping("/generateNotice") public ApiResponse generateNotice() { insuranceApplyService.generateNotice(); return ApiResponse.success(null); } @ApiOperation("方案确认书签章业务") @PostMapping("/signTBQRSLink") @RequiresPermissions("business:insuranceapply:query") public ApiResponse getSignTBQRSLink(@RequestBody SmsCheckDTO smsCheckDTO) { return ApiResponse.success(insuranceApplyService.getSignTBQRSLink(smsCheckDTO)); } @ApiOperation("人员名单签章") @PostMapping("/getMemberListOnlineSignLink") @RequiresPermissions("business:insuranceapply:query") public ApiResponse getMemberListOnlineSignLink(@RequestBody SmsCheckDTO smsCheckDTO) { return ApiResponse.success(insuranceApplyService.getMemberListOnlineSignLink(smsCheckDTO)); } @ApiOperation("投保申请单签章业务") @PostMapping("/getSignWTBTBDLink") @RequiresPermissions("business:insuranceapply:query") public ApiResponse getSignWTBTBDLink(@RequestBody SmsCheckDTO smsCheckDTO) { return ApiResponse.success(insuranceApplyService.getSignWTBTBDLink(smsCheckDTO)); } }