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.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.dao.business.dto.SCSupplementDTO; import com.doumee.dao.business.model.SettleClaims; import com.doumee.service.business.SettleClaimsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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; /** * @author 江蹄蹄 * @date 2024/01/16 10:03 */ @Api(tags = "理赔申请表") @RestController @RequestMapping("/business/settleClaims") public class SettleClaimsController extends BaseController { @Autowired private SettleClaimsService settleClaimsService; @PreventRepeat @ApiOperation("新建") @PostMapping("/create") @RequiresPermissions("business:settleclaims:create") public ApiResponse create(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.create(settleClaims)); } @ApiOperation("添加报案号") @PostMapping("/addCode") @RequiresPermissions("business:settleclaims:addCode") public ApiResponse addCode(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.addCode(settleClaims)); } @ApiOperation("理赔处理") @PostMapping("/dealBiz") @RequiresPermissions("business:settleclaims:dealBiz") public ApiResponse dealBiz(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.dealBiz(settleClaims)); } @ApiOperation("结案提交") @PostMapping("/doneCommit") @RequiresPermissions("business:settleclaims:doneCommit") public ApiResponse doneCommit(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.doneCommit(settleClaims)); } @ApiOperation("撤销申请") @PostMapping("/back") @RequiresPermissions("business:settleclaims:back") public ApiResponse back(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.back(settleClaims)); } @ApiOperation("附件上传") @PostMapping("/claimsUploadFile") @RequiresPermissions("business:settleclaims:update") public ApiResponse claimsUploadFile(@RequestBody SCSupplementDTO scSupplementDTO) { settleClaimsService.claimsUploadFile(scSupplementDTO); return ApiResponse.success(null); } @ApiOperation("备注标签") @PostMapping("/remark") @RequiresPermissions("business:settleclaims:remark") public ApiResponse remark(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.remark(settleClaims)); } @ApiOperation("资料确认") @PostMapping("/confirm") @RequiresPermissions("business:settleclaims:confirm") public ApiResponse confirm(@RequestBody SettleClaims settleClaims) { return ApiResponse.success(settleClaimsService.confirm(settleClaims)); } @ApiOperation("资料下载") @PostMapping("/exportFiles") @RequiresPermissions("business:settleclaims:exportExcel") public void exportFiles(@RequestBody SettleClaims model,HttpServletResponse response) { if(model.getId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } settleClaimsService.exportFiles(model.getId(),response); } @ApiOperation("根据ID删除") @GetMapping("/delete/{id}") @RequiresPermissions("business:settleclaims:delete") public ApiResponse deleteById(@PathVariable Integer id) { settleClaimsService.deleteById(id); return ApiResponse.success(null); } @ApiOperation("批量删除") @GetMapping("/delete/batch") @RequiresPermissions("business:settleclaims:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids) { String [] idArray = ids.split(","); List idList = new ArrayList<>(); for (String id : idArray) { idList.add(Integer.valueOf(id)); } settleClaimsService.deleteByIdInBatch(idList); return ApiResponse.success(null); } @ApiOperation("根据ID修改") @PostMapping("/updateById") @RequiresPermissions("business:settleclaims:update") public ApiResponse updateById(@RequestBody SettleClaims settleClaims) { settleClaimsService.updateById(settleClaims); return ApiResponse.success(null); } @ApiOperation("分页查询") @PostMapping("/page") @RequiresPermissions("business:settleclaims:query") public ApiResponse> findPage (@RequestBody PageWrap pageWrap) { return ApiResponse.success(settleClaimsService.findPage(pageWrap)); } @ApiOperation("导出Excel") @PostMapping("/exportExcel") @RequiresPermissions("business:settleclaims:exportExcel") public void exportExcel (@RequestBody PageWrap pageWrap, HttpServletResponse response) { ExcelExporter.build(SettleClaims.class).export(settleClaimsService.findPage(pageWrap).getRecords(), "理赔申请表", response); } @ApiOperation("根据ID查询") @GetMapping("/{id}") @RequiresPermissions("business:settleclaims:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(settleClaimsService.getSettleClaimsDetail(id)); } @ApiOperation("删除附件") @GetMapping("/delFile/{id}/{fileId}") @RequiresPermissions("business:settleclaims:query") public ApiResponse delFile(@PathVariable(name = "id") Integer id,@PathVariable(name = "fileId") Integer fileId) { return ApiResponse.success(settleClaimsService.delFile(id,fileId)); } }