package io.hmit.modules.serviceOrder.controller; import io.hmit.common.annotation.LogOperation; import io.hmit.common.constant.Constant; import io.hmit.common.page.PageData; import io.hmit.common.utils.ExcelUtils; import io.hmit.common.utils.Result; import io.hmit.common.validator.AssertUtils; import io.hmit.common.validator.ValidatorUtils; import io.hmit.common.validator.group.AddGroup; import io.hmit.common.validator.group.DefaultGroup; import io.hmit.common.validator.group.UpdateGroup; import io.hmit.modules.serviceOrder.dto.PensionDocumentDTO; import io.hmit.modules.serviceOrder.entity.PensionDocumentEntity; import io.hmit.modules.serviceOrder.excel.PensionDocumentExcel; import io.hmit.modules.serviceOrder.service.PensionDocumentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 文件信息表 * * @author zsh 408538940@qq.com * @since 1.0.0 2021-01-27 */ @RestController @RequestMapping("serviceOrder/pensiondocument") @Api(tags="文件信息表") public class PensionDocumentController { @Autowired private PensionDocumentService pensionDocumentService; @Value("${QR.download-path}") private String QRPath; @GetMapping("page") @ApiOperation("分页") @ApiImplicitParams({ @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") , @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") , @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") , @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") }) @RequiresPermissions("serviceOrder:pensiondocument:page") public Result<PageData<PensionDocumentDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){ PageData<PensionDocumentDTO> page = pensionDocumentService.page(params); return new Result<PageData<PensionDocumentDTO>>().ok(page); } @GetMapping("{id}") @ApiOperation("信息") @RequiresPermissions("serviceOrder:pensiondocument:info") public Result<PensionDocumentDTO> get(@PathVariable("id") Long id){ PensionDocumentDTO data = pensionDocumentService.get(id); return new Result<PensionDocumentDTO>().ok(data); } @PostMapping @ApiOperation("保存") @LogOperation("保存") @RequiresPermissions("serviceOrder:pensiondocument:save") public Result save(@RequestBody PensionDocumentDTO dto){ //校验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); pensionDocumentService.save(dto); return new Result(); } @PutMapping @ApiOperation("修改") @LogOperation("修改") @RequiresPermissions("serviceOrder:pensiondocument:update") public Result update(@RequestBody PensionDocumentDTO dto){ //校验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); pensionDocumentService.update(dto); return new Result(); } @DeleteMapping @ApiOperation("删除") @LogOperation("删除") @RequiresPermissions("serviceOrder:pensiondocument:delete") public Result delete(@RequestBody Long[] ids){ //校验数据 AssertUtils.isArrayEmpty(ids, "id"); pensionDocumentService.delete(ids); return new Result(); } @GetMapping("export") @ApiOperation("导出") @LogOperation("导出") @RequiresPermissions("serviceOrder:pensiondocument:export") public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { List<PensionDocumentDTO> list = pensionDocumentService.list(params); ExcelUtils.exportExcelToTarget(response, null, list, PensionDocumentExcel.class); } /** * 上传文件 */ @PostMapping("/uploadFile") @ApiOperation("附件上传") public Result<Map<String, Object>> uploadFile(@RequestParam("file") MultipartFile file) throws Exception { if (file.isEmpty()) { throw new Exception("上传文件不能为空"); } //生成随机时间错 Long currenttime=System.currentTimeMillis(); //上传文件 String file_path = "/static/"+ currenttime +"-" + file.getOriginalFilename(); String file_path_act = QRPath + currenttime+"-"+file.getOriginalFilename(); System.out.println(file_path_act); File fileAct = new File(file_path_act); if (!fileAct.getParentFile().exists()) { fileAct.getParentFile().mkdirs(); } try { file.transferTo(fileAct); } catch (IllegalStateException | IOException e) { e.printStackTrace(); } //保存文件信息 PensionDocumentEntity pensionDocumentEntity = new PensionDocumentEntity(); pensionDocumentEntity.setFileName(fileAct.getName()); pensionDocumentEntity.setFilePath(file_path); pensionDocumentEntity.setFilePathAct(fileAct.getPath()); pensionDocumentEntity.setFileSize(Double.parseDouble(String.valueOf(file.getSize()))); pensionDocumentEntity.setFileType(file.getContentType()); pensionDocumentEntity.setStatus("1"); pensionDocumentService.insert(pensionDocumentEntity); Map<String, Object> result = new HashMap<>(); result.put("fileName",fileAct.getName()); result.put("filePath",file_path); result.put("docId", pensionDocumentEntity.getId()); return new Result<Map<String, Object>>().ok(result); } }