| | |
| | | |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.config.MyProps; |
| | | import com.whyc.config.ServerConfig; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.pojo.ProjectArchiveManage; |
| | | import com.whyc.pojo.ProjectManage; |
| | |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import java.io.*; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | |
| | | private MyProps myProps; |
| | | |
| | | @Autowired |
| | | private ServerConfig serverConfig; |
| | | |
| | | @Autowired |
| | | private ProjectProcessManageService service; |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | @PostMapping("add") |
| | | @ApiOperation(value = "新建项目",notes = "fileList 存文件地址 {\n" + |
| | | @ApiOperation(value = "项目过程管理-新建项目",notes = "fileList 存文件地址 {\n" + |
| | | " \"fileList\": [\n" + |
| | | " \n" + |
| | | " ],\n" + |
| | |
| | | " \"proState\": 0,\n" + |
| | | " \"proProgress\": 0\n" + |
| | | "}") |
| | | public Response add(@RequestBody ProjectManage projectManage) { |
| | | public Response add(@RequestBody @Valid ProjectManage projectManage) { |
| | | Response response = service.add(projectManage); |
| | | return response; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 文件存储后地址更新到对应项目编号的地址,一个项目对应多个文件 db_experiment.tb_project_archive_manage |
| | |
| | | * @param file |
| | | * @return |
| | | */ |
| | | @PostMapping("upload") |
| | | @ApiOperation(notes = "返回文件地址,确认时提交保存到字段", value = "文档材料添加(选择文件)") |
| | | public Response upload(@RequestParam("file") MultipartFile file) { |
| | | // 获取原始名字 |
| | | String originalFilename = file.getOriginalFilename(); |
| | | // 获取后缀名 |
| | | // String suffixName = fileName.substring(fileName.lastIndexOf(".")); |
| | | // 文件保存路径、后期考虑按日期或者月份建dir |
| | | String filePath = myProps.getFilePath(); |
| | | // 文件重命名,防止重复,预览时需要显示原文件名 _ 切割 |
| | | String fileName = filePath + UUID.randomUUID() + "_" + originalFilename; |
| | | // 文件对象 |
| | | File dest = new File(fileName); |
| | | // 判断路径是否存在,如果不存在则创建 |
| | | if (!dest.getParentFile().exists()) { |
| | | dest.getParentFile().mkdirs(); |
| | | } |
| | | Response<Object> response = new Response<>(); |
| | | HashMap<Object, Object> map = new HashMap<>(); |
| | | try { |
| | | // 保存到服务器中 |
| | | file.transferTo(dest); |
| | | map.put("文件类型:", file.getContentType()); |
| | | map.put("原文件名:", originalFilename); |
| | | map.put("是否为空:", file.isEmpty()); |
| | | Double size = file.getSize() * 0.01 / 1024 / 1024 * 100; |
| | | String douStr = String.format("%.2f", size); |
| | | map.put("文件大小:", douStr+" M"); |
| | | map.put("文件地址:",fileName); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return response.setMsg(0, "上传失败"); |
| | | } |
| | | response.setCode(1); |
| | | response.setData(map); |
| | | return response; |
| | | } |
| | | |
| | | |
| | | |
| | | @PostMapping("/uploads") |
| | | @ApiOperation(notes = "返回文件地址,确认时提交保存到字段", value = "文档材料添加(多选)") |
| | | public Response uploads(MultipartFile[] files) throws IOException { |
| | | @ApiOperation(notes = "返回文件地址,确认时提交保存到字段", value = "项目过程管理-文档材料添加(多选)") |
| | | public Response uploads(MultipartFile[] file) throws IOException { |
| | | Response<Object> response = new Response<>(); |
| | | if (files.length == 0) { |
| | | if (file.length == 0) { |
| | | return response.setMsg(0, "请选择要上传的文件"); |
| | | } |
| | | |
| | | ArrayList<Object> list = new ArrayList<>(); |
| | | for (MultipartFile multipartFile : files) { |
| | | // String filePath = myProps.getFilePath(); |
| | | String uploadPath = FileUtils.getProjectPath(); |
| | | // System.out.println("uploadPath = " + uploadPath); |
| | | for (MultipartFile multipartFile : file) { |
| | | if (multipartFile.isEmpty()) { |
| | | return response.setMsg(0, "请选择要上传的文件"); |
| | | } |
| | | byte[] fileBytes = multipartFile.getBytes(); |
| | | String filePath = myProps.getFilePath(); |
| | | //取得当前上传文件的文件名称 |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | | //生成文件名 |
| | | String fileName = UUID.randomUUID() + "_" + originalFilename; |
| | | |
| | | HashMap<Object, Object> map = new HashMap<>(); |
| | | map.put("name", originalFilename); |
| | | String url = serverConfig.getUrl(); |
| | | map.put("url", url + "/uploadFile/" + fileName); |
| | | try { |
| | | FileUtils.uploadFile(fileBytes, filePath, fileName); |
| | | FileUtils.uploadFile(fileBytes, uploadPath, fileName); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | return response.setMsg(0, "上传失败"); |
| | | } |
| | | map.put("原文件名:", originalFilename); |
| | | map.put("文件地址:", filePath + fileName); |
| | | list.add(map); |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | @GetMapping("/download") |
| | | @ApiOperation(notes = "需要在地址栏测试",value = "文档材料下载") |
| | | public Object download(HttpServletResponse response, @RequestParam String filePath,@RequestParam String fileName) { |
| | | Response<Object> result = new Response<>(); |
| | | File file = new File( filePath); |
| | | @ApiOperation(notes = "需要在地址栏测试 http://localhost:8090/projectManage/download?fileName=申请书.pdf",value = "项目过程管理-文档材料下载") |
| | | public String download(HttpServletResponse response, @ApiParam(value = "文件路径",required = true)@RequestParam String filePath) { |
| | | String fileName = ""; |
| | | if (filePath.length() > 10&&filePath.contains("/")) { //IP地址+文件名 |
| | | int lastIndexOf = filePath.lastIndexOf("/"); |
| | | fileName = filePath.substring(lastIndexOf); |
| | | } else { |
| | | return "filePath is Error"; |
| | | } |
| | | |
| | | String projectPath = FileUtils.getProjectPath(); |
| | | File file = new File( projectPath+fileName); |
| | | if (file.exists()) { |
| | | try { |
| | | fileName= new String(fileName.getBytes("gbk"), "ISO8859-1"); |
| | |
| | | outputStream.write(buffer, 0, i); |
| | | i = bis.read(buffer); |
| | | } |
| | | return result.setMsg(1,"下载成功"); |
| | | // return result.setMsg(1,"下载成功"); |
| | | return "downloadSuccessful"; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return result.setMsg(0,"下载失败"); |
| | | // return result.setMsg(0,"下载失败"); |
| | | return "downloadFailed"; |
| | | } finally { |
| | | if (bis != null) { |
| | | try { |
| | |
| | | } |
| | | } |
| | | } |
| | | }else{ |
| | | return "fileDoesNotExist"; |
| | | } |
| | | return result.setMsg(0,"文件不存在"); |
| | | } |
| | | |
| | | |
| | | |
| | | @GetMapping("managesState") |
| | | @ApiOperation(notes = "", value = "项目管理-己确认/未确认阶段查询") |
| | | @ApiOperation(notes = "", value = "项目过程管理-己确认/未确认阶段查询") |
| | | public Response<Object> searchManageStateByCondition(@ApiParam(value = "项目编号", required = true) @RequestParam String proNum, |
| | | @ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode) { |
| | | ProjectManage projectManage = new ProjectManage(); |
| | |
| | | * @return |
| | | */ |
| | | @PutMapping("updateManageState") |
| | | @ApiOperation(notes = "项目进度确认1-6 对应 立项-审批-研究-结题-验收-归档",value = "项目管理-未确认阶段更新") |
| | | public Response updateManageState(@ApiParam(value = "项目编号", required = true) @RequestParam String proNum, |
| | | @ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode, |
| | | @ApiParam(value = "项目进度确认1-6",required = true)@RequestParam int proProgress, |
| | | @ApiParam(value = "文档上传保存地址(如果无传空字符串)",required = true)@RequestParam String proFilePath) { |
| | | ProjectManage projectManage = new ProjectManage(); |
| | | projectManage.setProNum(proNum); |
| | | projectManage.setProNameCode(proNameCode); |
| | | projectManage.setProProgress(proProgress); |
| | | projectManage.setNote(proFilePath); |
| | | @ApiOperation(notes = "项目进度确认1-6 对应 立项-审批-研究-结题-验收-归档",value = "项目过程管理-未确认阶段更新") |
| | | public Response updateManageState(@RequestBody ProjectManage projectManage) { |
| | | |
| | | return service.updateManageState(projectManage); |
| | | } |
| | | |
| | | @PutMapping("updateArchive") |
| | | @ApiOperation(notes = "",value = "项目过程管理-归档") |
| | | public Response updateArchive(@ApiParam(value = "项目编号", required = true) @RequestParam String proNum, |
| | | @ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode) { |
| | | ProjectManage projectManage = new ProjectManage(); |
| | | projectManage.setProNum(proNum); |
| | | projectManage.setProNameCode(proNameCode); |
| | | projectManage.setProProgress(6); |
| | | return service.updateProjectProgress(projectManage); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @GetMapping("searchDoc") |
| | | @ApiOperation(notes = "项目过程管理-项目管理",value = "文档材料查询") |
| | | @ApiOperation(notes = "项目过程管理-项目管理",value = "项目过程管理-文档材料查询") |
| | | public Response searchDocumentation(@ApiParam(value = "项目编号", required = true) @RequestParam String proNum, |
| | | @ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode){ |
| | | ProjectArchiveManage projectArchiveManage = new ProjectArchiveManage(); |
| | |
| | | } |
| | | |
| | | @DeleteMapping("delDoc") |
| | | @ApiOperation(notes = "项目过程管理-项目管理",value = "文档材料删除") |
| | | @ApiOperation(notes = "项目过程管理-项目管理",value = "项目过程管理-文档材料删除") |
| | | public Response delDocumentation(@ApiParam(value = "项目编号", required = true) @RequestParam String proNum, |
| | | @ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode, |
| | | @ApiParam(value = "文档路径", required = true) @RequestParam String proFilePath){ |
| | |
| | | |
| | | /** |
| | | * @param proNameCode |
| | | * @param proNum |
| | | * @return 实验名称、上传日期、归档日期 (操作TODO) |
| | | * @return 实验名称、试验日期、结论字段 etc |
| | | */ |
| | | @GetMapping("archiveExperimentData") |
| | | @ApiOperation(notes = "(操作TODO)",value = "项目归档管理-试验数据") |
| | | public Response searchArchiveExperimentData(@ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode, |
| | | @ApiParam(value = "项目编号", required = true) @RequestParam String proNum) { |
| | | ProjectArchiveManage pam = new ProjectArchiveManage(); |
| | | pam.setProNum(proNum); |
| | | pam.setProNameCode(proNameCode); |
| | | return archiveManageService.searchArchiveExperimentData(pam); |
| | | @ApiOperation(notes = "TODO 文件格式和下载地址", value = "项目归档管理-试验数据") |
| | | public Response searchArchiveExperimentData(@ApiParam(value = "项目名称代码", required = true) @RequestParam String proNameCode) { |
| | | //TODO fileName file |
| | | return archiveManageService.searchArchiveExperimentData(proNameCode); |
| | | } |
| | | |
| | | @GetMapping("archiveTechnologicalAchievements") |