| | |
| | | import com.whyc.dto.FileDirPath; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.SoftwareMapper; |
| | | import com.whyc.pojo.AttachLock; |
| | | import com.whyc.pojo.DocUser; |
| | | import com.whyc.pojo.Software; |
| | | import com.whyc.util.ActionUtil; |
| | |
| | | //取第一个sheet表 |
| | | Sheet sheet = workbook.getSheetAt(0); |
| | | int lastRowNum = sheet.getLastRowNum(); |
| | | //校准lastRowNum |
| | | for (int i = 8; i <= lastRowNum; i++) { |
| | | if(sheet.getRow(i).getCell(1).getStringCellValue().equals("发布说明")){ |
| | | lastRowNum = i; |
| | | break; |
| | | } |
| | | } |
| | | //固定5列 |
| | | short cellNum = 5; |
| | | //取固定部分值 |
| | |
| | | common.setBasedVersion(sheet.getRow(5).getCell(4).getStringCellValue()); |
| | | |
| | | common.setOwner(sheet.getRow(6).getCell(2).getStringCellValue()); |
| | | common.setFilingDate(sheet.getRow(6).getCell(4).getStringCellValue()); |
| | | Cell cellFilingDate = sheet.getRow(6).getCell(4); |
| | | if(cellFilingDate.getCellType() == Cell.CELL_TYPE_NUMERIC){ |
| | | Date dateCellValue = cellFilingDate.getDateCellValue(); |
| | | common.setFilingDate(DateUtil.YYYY_MM_DD.format(dateCellValue)); |
| | | System.out.println(dateCellValue); |
| | | }else { |
| | | cellFilingDate.setCellType(Cell.CELL_TYPE_STRING); |
| | | common.setFilingDate(cellFilingDate.getStringCellValue()); |
| | | } |
| | | //最后一行,取发布说明 |
| | | common.setReleaseNotes(sheet.getRow(lastRowNum).getCell(2).getStringCellValue()); |
| | | |
| | |
| | | //取第3列,第5列 |
| | | Cell cell = sheet.getRow(8 + i).getCell(2); |
| | | cell.setCellType(Cell.CELL_TYPE_STRING); |
| | | software.setApplyMaterialCode(cell.getStringCellValue()); |
| | | String stringCellValue = cell.getStringCellValue(); |
| | | if(!stringCellValue.equals("")) { |
| | | int length = stringCellValue.length(); |
| | | if (length == 9) { |
| | | stringCellValue = "0" + stringCellValue; |
| | | } else if (length < 9) { |
| | | int centerZeroNum = 10 - length - 1; |
| | | StringBuilder centerZeroStr = new StringBuilder(); |
| | | for (int j = 0; j < centerZeroNum; j++) { |
| | | centerZeroStr.append("0"); |
| | | } |
| | | String strFront = stringCellValue.substring(0, 3); |
| | | String strBehind = stringCellValue.substring(3); |
| | | stringCellValue = "0" + strFront + centerZeroStr + strBehind; |
| | | } |
| | | } |
| | | software.setApplyMaterialCode(stringCellValue); |
| | | software.setApplyModel(sheet.getRow(8+i).getCell(4).getStringCellValue()); |
| | | |
| | | softwareList.add(software); |
| | |
| | | logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail); |
| | | } |
| | | |
| | | public Response upload(MultipartFile file1, MultipartFile file2, List<Software> softwareList) throws IOException { |
| | | @Transactional |
| | | public Response upload(MultipartFile file1, MultipartFile file2, String fontUpdateTime, List<Software> softwareList) throws IOException { |
| | | String file1Name = file1.getOriginalFilename(); |
| | | String file2Name = file2.getOriginalFilename(); |
| | | Software software = softwareList.get(0); |
| | |
| | | file2.transferTo(new File(softwareDir+File.separator+file2Name)); |
| | | //设置路径 |
| | | for (Software software1:softwareList){ |
| | | software1.setFontUpdateTime(fontUpdateTime); |
| | | software1.setFileUrl(softwareHttpUrl+File.separator+file1Name); |
| | | software1.setExcelUrl(softwareHttpUrl+File.separator+file2Name); |
| | | software1.setCreateTime(date); |
| | | } |
| | | //锁定原来的所有版本:根据版号和软件类型 |
| | | lockByBoardNumberAndType(software.getBoardNumber(),software.getType()); |
| | | //写入数据库 |
| | | insertBatch(softwareList); |
| | | return new Response().set(1,true,"上传完成"); |
| | | } |
| | | |
| | | private void lockByBoardNumberAndType(String boardNumber, String type) { |
| | | UpdateWrapper<Software> update = Wrappers.update(); |
| | | update.set("lock_flag",1) |
| | | .set("lock_reason","软件版本升级") |
| | | .eq("board_number",boardNumber) |
| | | .eq("type",type); |
| | | mapper.update(null,update); |
| | | } |
| | | |
| | | private Software getByFilename(String fileName) { |
| | | QueryWrapper<Software> query = Wrappers.query(); |
| | | query.eq("file_name",fileName).last(" limit 1"); |