| | |
| | | package com.yuanchu.mom.controller; |
| | | |
| | | import cn.hutool.core.io.FileUtil; |
| | | import cn.hutool.http.HttpUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.yuanchu.mom.annotation.ValueAuth; |
| | | import com.yuanchu.mom.annotation.ValueClassify; |
| | | import com.yuanchu.mom.dto.InsReportDto; |
| | | import com.yuanchu.mom.dto.ReportPageDto; |
| | | import com.yuanchu.mom.exception.ErrorException; |
| | | import com.yuanchu.mom.service.InsReportService; |
| | |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.Scanner; |
| | | |
| | | @RestController |
| | | @RequestMapping("/insReport") |
| | | @Api("检验报告") |
| | | @Api(tags = "检验报告") |
| | | public class InsReportController { |
| | | |
| | | @Resource |
| | |
| | | @Value("${wordUrl}") |
| | | private String wordUrl; |
| | | |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "查询检验报告数据") |
| | | @PostMapping("/pageInsReport") |
| | | public Result pageInsReport(@RequestBody Map<String, Object> data) throws Exception { |
| | |
| | | return Result.success(insReportService.pageInsReport(page, reportPageDto)); |
| | | } |
| | | |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "报告上传") |
| | | @PostMapping("/inReport") |
| | | public Result inReport(MultipartFile file, Integer id) { |
| | |
| | | pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); |
| | | urlString = realpath + "/" + pathName; |
| | | file.transferTo(new File(urlString)); |
| | | return Result.success(insReportService.inReport("/word/"+pathName, id)); |
| | | return Result.success(insReportService.inReport("/word/" + pathName, id)); |
| | | } catch (Exception e) { |
| | | throw new ErrorException("文件上传失败"); |
| | | } |
| | | } |
| | | |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "报告还原") |
| | | @PostMapping("/upReportUrl") |
| | | public Result upReportUrl(Integer id) { |
| | | return Result.success(insReportService.upReportUrl(id)); |
| | | } |
| | | |
| | | /*@ValueClassify("报告编制") |
| | | @ApiOperation(value = "报告在线编制") |
| | | @GetMapping("/upReportFile") |
| | | public Result upReportFile() { |
| | | return Result.success(); |
| | | } |
| | | }*/ |
| | | |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "提交") |
| | | @PostMapping("/writeReport") |
| | | public Result writeReport(Integer id) { |
| | | return Result.success(insReportService.writeReport(id)); |
| | | } |
| | | |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "审核") |
| | | @PostMapping("/examineReport") |
| | | public Result examineReport(Integer id, Integer isExamine, String examineTell) { |
| | | return Result.success(insReportService.examineReport(id, isExamine, examineTell)); |
| | | } |
| | | |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "批准") |
| | | @PostMapping("/ratifyReport") |
| | | public Result ratifyReport(Integer id, Integer isRatify, String ratifyTell) { |
| | | return Result.success(insReportService.ratifyReport(id, isRatify, ratifyTell)); |
| | | public Result ratifyReport(Integer id, Integer isRatify, String ratifyTell,String sealUrl) { |
| | | return Result.success(insReportService.ratifyReport(id, isRatify, ratifyTell,sealUrl)); |
| | | } |
| | | |
| | | @RequestMapping("/onlyOffice/save") |
| | | @ValueAuth |
| | | public void saveFile(@RequestParam String fileName, HttpServletRequest request, HttpServletResponse response) { |
| | | PrintWriter writer = null; |
| | | try { |
| | | writer = response.getWriter(); |
| | | // 获取传输的json数据 |
| | | Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A"); |
| | | String body = scanner.hasNext() ? scanner.next() : ""; |
| | | JSONObject jsonObject = JSONObject.parseObject(body); |
| | | |
| | | if (jsonObject.containsKey("url")) { |
| | | String jsonArray = jsonObject.get("lastsave").toString(); // 更新时间 |
| | | String fileUrl = jsonObject.get("url").toString(); // 更新文件url |
| | | HttpUtil.downloadFile(fileUrl, FileUtil.file(wordUrl + "/" + fileName)); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | writer.write("{\"error\":-1}"); |
| | | return; |
| | | } |
| | | /* |
| | | * status = 1,我们给onlyOffice的服务返回{"error":"0"}的信息。 |
| | | * 这样onlyOffice会认为回调接口是没问题的,这样就可以在线编辑文档了,否则的话会弹出窗口说明 |
| | | */ |
| | | if (Objects.nonNull(writer)) { |
| | | writer.write("{\"error\":0}"); |
| | | } |
| | | } |
| | | |
| | | @ValueAuth |
| | | @ApiOperation(value = "报告批量下载") |
| | | @GetMapping("/downAll") |
| | | public Result downAll(String ids) { |
| | | return Result.success(insReportService.downAll(ids)); |
| | | } |
| | | |
| | | @ValueAuth |
| | | @ApiOperation(value = "报告批量上传") |
| | | @PostMapping("/upAll") |
| | | public Result upAll(MultipartFile file) throws IOException { |
| | | return Result.success(insReportService.upAll(file)); |
| | | } |
| | | |
| | | @ValueAuth |
| | | @ApiOperation(value = "查出该订单下每个样品下每个站点的检验次数") |
| | | @GetMapping("/getInsOrderStateCount") |
| | | public Result getInsOrderStateCount(Integer id,Integer sampleId){ |
| | | return Result.success(insReportService.getInsOrderStateCount(id,sampleId)); |
| | | } |
| | | |
| | | //取消2.26 |
| | | @ValueClassify("报告编制") |
| | | @ApiOperation(value = "判断是否生成总报告") |
| | | @PostMapping("/isReport") |
| | | public Result isReport(@RequestBody InsReportDto insReportDto) { |
| | | return Result.success(insReportService.isReport(insReportDto)); |
| | | } |
| | | } |