9 changed files with 366 additions and 33 deletions
-
4src/main/java/com/heai/modules/oss/dao/SysOssDao.java
-
3src/main/java/com/heai/modules/oss/entity/SysOssEntity.java
-
10src/main/java/com/heai/modules/pms/controller/QcController.java
-
54src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java
-
2src/main/java/com/heai/modules/pms/service/QcService.java
-
64src/main/java/com/heai/modules/sys/controller/SysFileController.java
-
35src/main/java/com/heai/modules/sys/service/SysFileService.java
-
170src/main/java/com/heai/modules/sys/service/impl/SysFileServiceImpl.java
-
57src/main/resources/mapper/oss/SysOssDao.xml
@ -0,0 +1,64 @@ |
|||
|
|||
package com.heai.modules.sys.controller; |
|||
|
|||
|
|||
import com.heai.common.utils.R; |
|||
import com.heai.modules.oss.entity.SysOssEntity; |
|||
import com.heai.modules.pms.data.GetParamInData; |
|||
import com.heai.modules.sys.service.SysFileService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 文件管理的功能 |
|||
* |
|||
* |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("/sys/file") |
|||
public class SysFileController extends AbstractController { |
|||
@Autowired |
|||
private SysFileService sysFileService; |
|||
|
|||
/** |
|||
* @description: 文件上传 |
|||
* @author LR |
|||
* @date 2023/3/1 15:27 |
|||
* @version 1.0 |
|||
*/ |
|||
@PostMapping("/upload") |
|||
public R upload(@RequestParam("file") MultipartFile[] list, @ModelAttribute GetParamInData inData){ |
|||
List<SysOssEntity> ossEntity = sysFileService.upload(list, inData); |
|||
return R.ok().put("ossEntity", ossEntity); |
|||
} |
|||
|
|||
/** |
|||
* @description: 按照orderRef1的查询 |
|||
* @author LR |
|||
* @date 2023/3/3 10:48 |
|||
* @version 1.0 |
|||
*/ |
|||
@PostMapping("/getSysFileByOrderRef2") |
|||
public R getSysFileByOrderRef2(@RequestBody SysOssEntity inData){ |
|||
List<SysOssEntity> resultList = sysFileService.getSysFileByOrderRef2(inData); |
|||
return R.ok() |
|||
.put("code", 200) |
|||
.put("rows", resultList) |
|||
.put("total", resultList.size()) |
|||
.put("msg", "操作成功!"); |
|||
} |
|||
|
|||
/** |
|||
* 获取检验单文件 |
|||
* @param inData |
|||
* @return |
|||
*/ |
|||
@PostMapping("/getInspectionFile") |
|||
public R getInspectionFile(@RequestBody SysOssEntity inData){ |
|||
List<SysOssEntity> resultList = sysFileService.getInspectionFile(inData); |
|||
return R.ok().put("rows", resultList); |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
package com.heai.modules.sys.service; |
|||
|
|||
|
|||
import com.heai.modules.oss.entity.SysOssEntity; |
|||
import com.heai.modules.pms.data.GetParamInData; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: 文件上传接口 |
|||
* @author LR |
|||
* @date 2023/3/1 15:53 |
|||
* @version 1.0 |
|||
*/ |
|||
public interface SysFileService { |
|||
|
|||
/** |
|||
* @description: 系统文件上传 |
|||
* @author LR |
|||
* @date 2023/3/1 15:57 |
|||
* @version 1.0 |
|||
*/ |
|||
List<SysOssEntity> upload(MultipartFile[] list, GetParamInData inData); |
|||
|
|||
/** |
|||
* @description: 按照orderRef1查询文件文件参数 |
|||
* @author LR |
|||
* @date 2023/3/3 10:50 |
|||
* @version 1.0 |
|||
*/ |
|||
List<SysOssEntity> getSysFileByOrderRef2(SysOssEntity inData); |
|||
|
|||
List<SysOssEntity> getInspectionFile(SysOssEntity inData); |
|||
} |
|||
@ -0,0 +1,170 @@ |
|||
package com.heai.modules.sys.service.impl; |
|||
|
|||
|
|||
import com.heai.common.exception.XJException; |
|||
import com.heai.common.utils.DateUtils; |
|||
import com.heai.common.utils.RandomUtil; |
|||
import com.heai.modules.oss.dao.SysOssDao; |
|||
import com.heai.modules.oss.entity.SysOssEntity; |
|||
import com.heai.modules.oss.service.SysOssService; |
|||
import com.heai.modules.pms.data.GetParamInData; |
|||
import com.heai.modules.sys.entity.SysUserEntity; |
|||
import com.heai.modules.sys.service.SysFileService; |
|||
import org.apache.shiro.SecurityUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import java.io.File; |
|||
import java.io.FileOutputStream; |
|||
import java.io.InputStream; |
|||
import java.io.OutputStream; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Objects; |
|||
|
|||
/** |
|||
* @description: 处理文件上传接口实现 |
|||
* @author LR |
|||
* @date 2023/3/1 15:54 |
|||
* @version 1.0 |
|||
*/ |
|||
@Service |
|||
public class SysFileServiceImpl implements SysFileService { |
|||
|
|||
@Autowired |
|||
private SysOssService sysOssService; |
|||
|
|||
@Autowired |
|||
private SysOssDao sysOssDao; |
|||
|
|||
@Value("${sys-file.file-path}") |
|||
private String filePath; |
|||
|
|||
@Override |
|||
@Transactional |
|||
public List<SysOssEntity> upload(MultipartFile[] list, GetParamInData inData) { |
|||
if (Objects.isNull(list) || list.length == 0) { |
|||
throw new XJException("上传文件不能为空"); |
|||
} |
|||
List<SysOssEntity> ossEntityList = new ArrayList<>(); |
|||
for (MultipartFile file : list) { |
|||
//保存文件信息 |
|||
SysOssEntity ossEntity = new SysOssEntity(); |
|||
SysUserEntity user = getUser(); |
|||
//处理文件后缀 |
|||
int chartIndex = file.getOriginalFilename().lastIndexOf("."); |
|||
String suffix = ""; |
|||
String fileName = ""; |
|||
//判断是否存在 |
|||
if(chartIndex > 0){ |
|||
suffix = file.getOriginalFilename().substring(chartIndex); |
|||
fileName = file.getOriginalFilename().substring(0, chartIndex); |
|||
} |
|||
String newFileName = RandomUtil.getOrderNoByAtomic1("file") + suffix; |
|||
String basePath = filePath; |
|||
String baseDatePath = DateUtils.format(new Date()); |
|||
File baseFilePath = new File(basePath + "\\" + baseDatePath + "\\" + inData.getFolder()); |
|||
if (!baseFilePath.exists()) { |
|||
baseFilePath.mkdirs(); |
|||
} |
|||
// 最终的目录 |
|||
String finalFileName = baseFilePath.getPath()+"\\" + newFileName; |
|||
try { |
|||
baseFilePath = multipartFileToFile(file, finalFileName); |
|||
}catch (Exception e){ |
|||
throw new XJException(e.getMessage()); |
|||
} |
|||
ossEntity.setUrl(baseFilePath.getPath()); |
|||
ossEntity.setCreatedBy(user.getUsername()); |
|||
ossEntity.setFileType(suffix.substring(1)); |
|||
ossEntity.setFileName(fileName+suffix); |
|||
ossEntity.setNewFileName(newFileName); |
|||
ossEntity.setCreateDate(new Date()); |
|||
ossEntity.setOrderRef1(inData.getSite()); |
|||
ossEntity.setOrderRef2(inData.getObjectID()); |
|||
if ("reportFault".equals(inData.getFolder()) || "reportSparPart".equals(inData.getFolder())) { |
|||
ossEntity.setOrderRef3(inData.getFolder()); |
|||
} else if ("DJItemImageFile".equals(inData.getFolder()) || "WBItemImageFile".equals(inData.getFolder()) || "IQCItemImageFile".equals(inData.getFolder()) || "IPQCItemImageFile".equals(inData.getFolder()) || "FAIItemImageFile".equals(inData.getFolder()) || "FQCItemImageFile".equals(inData.getFolder())) { // 点检和维保的项目图片上传 |
|||
ossEntity.setOrderRef3(inData.getOrderRef1()); |
|||
} else if ("eamObject".equals(inData.getFolder())) { |
|||
ossEntity.setOrderRef3(inData.getOrderRef3()); |
|||
} else { |
|||
ossEntity.setOrderRef3(inData.getRemark()); |
|||
} |
|||
ossEntity.setOrderRef4(inData.getOrderRef4()); |
|||
sysOssService.save(ossEntity); |
|||
ossEntityList.add(ossEntity); |
|||
} |
|||
return ossEntityList; |
|||
} |
|||
|
|||
@Override |
|||
public List<SysOssEntity> getSysFileByOrderRef2(SysOssEntity inData) { |
|||
return sysOssDao.getSysFileByOrderRef2(inData); |
|||
} |
|||
|
|||
@Override |
|||
public List<SysOssEntity> getInspectionFile(SysOssEntity inData) { |
|||
List<SysOssEntity> files1 = sysOssDao.getSysFileByOrderRef2(inData); |
|||
// mes文件 |
|||
// List<SysOssEntity> list = sysOssDao.searchPartSopListFather(inData); |
|||
// for (SysOssEntity p : list) { |
|||
// if (p.getSopType().equals("SOP-ST")) { |
|||
// p.setSopType("物料SOP"); |
|||
// } |
|||
// // 正斜杠改为反斜杠 |
|||
// p.setUrl(p.getUrl().replaceAll("/", "\\\\")); |
|||
// // 获取文件类型 |
|||
// int lastDotIndex = p.getUrl().lastIndexOf('.'); |
|||
// String fileType = p.getUrl().substring(lastDotIndex + 1); |
|||
// p.setFileName(p.getFileName() + "." + fileType); |
|||
// p.setFileType(fileType); |
|||
// } |
|||
// files1.addAll(list); |
|||
return files1; |
|||
} |
|||
|
|||
|
|||
protected SysUserEntity getUser() { |
|||
return (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); |
|||
} |
|||
|
|||
public static File multipartFileToFile(MultipartFile file ,String fileName) throws Exception { |
|||
File toFile = null; |
|||
if (file.equals("") || file.getSize() <= 0) { |
|||
file = null; |
|||
} else { |
|||
InputStream ins = null; |
|||
ins = file.getInputStream(); |
|||
if(fileName != null && !"".equals(fileName)){ |
|||
toFile = new File(fileName); |
|||
}else{ |
|||
toFile = new File(file.getOriginalFilename()); |
|||
} |
|||
inputStreamToFile(ins, toFile); |
|||
ins.close(); |
|||
} |
|||
return toFile; |
|||
} |
|||
|
|||
//获取流文件 |
|||
private static void inputStreamToFile(InputStream ins, File file) { |
|||
try { |
|||
OutputStream os = new FileOutputStream(file); |
|||
int bytesRead = 0; |
|||
byte[] buffer = new byte[8192]; |
|||
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { |
|||
os.write(buffer, 0, bytesRead); |
|||
} |
|||
os.close(); |
|||
ins.close(); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue