src/main/java/com/whyc/controller/SoftcodeController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/SoftcodeMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/Softcode.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/SoftcodeService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/SoftwareService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/SoftcodeController.java
New file @@ -0,0 +1,46 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.Software; import com.whyc.service.SoftcodeService; import com.whyc.service.SoftwareService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @Api(tags = "源码管理") @RestController @RequestMapping("softcode") public class SoftcodeController { @Autowired private SoftcodeService service; @Autowired private SoftwareService wareService; @ApiOperation("源码上传") @PostMapping("uploadCode") public Response uploadCode(@RequestParam MultipartFile file, @RequestParam String softIds) throws IOException { return service.uploadCode(file,softIds); } @ApiOperation(value = "根据软件id实现源码下载") @GetMapping("downLoadCode") public void downLoadCode(HttpServletRequest req, HttpServletResponse resp, @RequestParam String softId){ service.downLoadCode(req,resp,softId); } @ApiOperation(value = "根据板号和物料编码查询软件记录") @GetMapping("getSoftwareByBoardAndMaterialCode") public Response getSoftwareByBoardAndMaterialCode(@RequestParam String board,@RequestParam String materialCode){ return wareService.getSoftwareByBoardAndMaterialCode(board,materialCode); } } src/main/java/com/whyc/mapper/SoftcodeMapper.java
New file @@ -0,0 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.Softcode; public interface SoftcodeMapper extends CustomMapper<Softcode>{ } src/main/java/com/whyc/pojo/Softcode.java
New file @@ -0,0 +1,43 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import org.apache.ibatis.type.Alias; @TableName(value = "tb_softcode") @Alias("Softcode") public class Softcode { private Integer num; @ApiModelProperty("软件id") private String softId; @ApiModelProperty("源码路径") private String codeUrl; public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } public String getSoftId() { return softId; } public void setSoftId(String softId) { this.softId = softId; } public String getCodeUrl() { return codeUrl; } public void setCodeUrl(String codeUrl) { this.codeUrl = codeUrl; } } src/main/java/com/whyc/service/SoftcodeService.java
New file @@ -0,0 +1,102 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.whyc.constant.UserOperation; import com.whyc.dto.FileDirPath; import com.whyc.dto.Response; import com.whyc.mapper.SoftcodeMapper; import com.whyc.mapper.SoftwareMapper; import com.whyc.pojo.Softcode; import com.whyc.pojo.Software; import com.whyc.util.ActionUtil; import com.whyc.util.CommonUtil; import com.whyc.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service public class SoftcodeService { @Autowired(required = false) private SoftcodeMapper mapper; @Autowired private DocLogService logService; //源码上传 public Response uploadCode(MultipartFile file, String softIds) throws IOException { String[] softList=softIds.split(","); String fileName = file.getOriginalFilename(); Date date = new Date(); String dateUnion = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(date); //存储路径 String rootFile = CommonUtil.getRootFile(); String softcodeDir = rootFile + "software" + File.separator +"code"+ File.separator + dateUnion; String softcodeHttpUrl = softcodeDir.substring(softcodeDir.lastIndexOf("doc_file"+ File.separator + "software")); File softwareDirFile = new File(softcodeDir); if(!softwareDirFile.exists()){ softwareDirFile.mkdirs(); } String codeUrl=softcodeDir+File.separator+fileName; file.transferTo(new File(codeUrl)); if(softList.length>0){ for(String softId:softList){ Softcode softcode=new Softcode(); softcode.setSoftId(softId); softcode.setCodeUrl(softcodeHttpUrl+File.separator+fileName); //判断是否存在源码,存在修改,不存在添加 if(mapper.selectOne(new QueryWrapper<Softcode>().eq("soft_id",softId))!=null){ mapper.update(softcode,new UpdateWrapper<Softcode>().eq("soft_id",softId)); }else{ mapper.insert(softcode); } } } return new Response().set(1,true,"源码上传"); } //根据软件id实现源码下载 public void downLoadCode(HttpServletRequest req, HttpServletResponse resp, String softId) { String fileDirName = FileDirPath.getFileDirName(); QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("soft_id",softId); wrapper.last("limit 1"); Softcode softcode=mapper.selectOne(wrapper); String filename=softcode.getCodeUrl().substring(softcode.getCodeUrl().lastIndexOf("\\")+1); try { // 转码防止乱码 //resp.addHeader("Content-Disposition", "attachment;filename=" + new String(softwareName.getBytes("UTF-8"), "ISO8859-1")); resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode (filename, "utf-8")); OutputStream out = resp.getOutputStream(); FileInputStream in = new FileInputStream(fileDirName+ File.separator+softcode.getCodeUrl()); int len=0; byte[] buffer =new byte[1024]; //7. 将缓冲区中的数据输出 while ((len=in.read(buffer))>0){ out.write(buffer,0,len); } in.close(); out.close(); } catch (FileNotFoundException | UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //记录日志 logService.recordOperationLogDownLoad(ActionUtil.getUser().getId(),ActionUtil.getUser().getName(), UserOperation.TYPE_DOWNLOAD_SOFWARE.getType(),new Date(),req.getRemoteAddr() ,filename,fileDirName+File.separator+softcode.getCodeUrl(),"",String.valueOf(softId),""); } } src/main/java/com/whyc/service/SoftwareService.java
@@ -330,4 +330,13 @@ int flag=mapper.delete(wrapper); return new Response().set(1,flag>0,"件id实现软件删除"); } //根据板号和物料编码查询软件记录 public Response getSoftwareByBoardAndMaterialCode(String board, String materialCode) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("board_number",board); wrapper.eq("apply_material_code",materialCode); List<Software> softwareList = mapper.selectList(wrapper); return new Response().setII(1,softwareList!=null,softwareList,"根据板号和物料编码查询软件记录"); } }