123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- package com.hssx.cloudmodel.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.hssx.cloudmodel.constant.Constant;
- import com.hssx.cloudmodel.entity.*;
- import com.hssx.cloudmodel.entity.vo.MouldFileVO;
- import com.hssx.cloudmodel.entity.vo.UserVO;
- import com.hssx.cloudmodel.mapper.*;
- import com.hssx.cloudmodel.service.MouldFileService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.hssx.cloudmodel.util.FileUtil;
- import com.hssx.cloudmodel.util.HttpRespMsg;
- import com.hssx.cloudmodel.util.PageUtil;
- import org.springframework.stereotype.Service;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.multipart.MultipartFile;
- import javax.annotation.Resource;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.*;
- import java.util.zip.ZipOutputStream;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author 吴涛涛
- * @since 2019-08-07
- */
- @Service
- public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile> implements MouldFileService {
- @Resource
- UserMapper userMapper;
- @Resource
- MouldFileMapper mouldFileMapper;
- @Resource
- MouldOperationDynamicsMapper mouldOperationDynamicsMapper;
- @Resource
- ProjectMapper projectMapper;
- @Override
- public HttpRespMsg addFile(UserVO userVO, Integer blongType, MultipartFile file, MultipartFile file2, String path) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
- if (user != null) {
- if (file != null && !file.isEmpty()) {
- MouldFile projectFile = new MouldFile();
- projectFile.setUplodtorId(user.getId());
- projectFile.setUploadtor(user.getUsername());
- projectFile.setModelId(userVO.getMouldId());
- File dir = null;
- dir = new File(path);
- // D://cloud/upload 文件上传后所存储的位置,部署到服务器上时配置服务器地址即可
- if (!dir.exists()) {
- dir.mkdirs();
- }
- String fileName = "";
- if (file != null && !file.isEmpty()) {
- fileName = file.getOriginalFilename();
- projectFile.setFileName(fileName);
- projectFile.setFileSize(FileUtil.getReadableFileSize(file.getSize()));
- System.out.println("上传文件名称" + file.getName() + ", dir = " + dir.getAbsolutePath());
- int pos = fileName.lastIndexOf(".");
- String rand = UUID.randomUUID().toString().replaceAll("-", "");
- String sufix = fileName.substring(pos);
- fileName = rand + sufix;
- projectFile.setFileType(sufix);//文件后缀
- projectFile.setFileUrl("/upload/" + fileName);
- projectFile.setBlongType(blongType);
- if (user.getSubordinateType() == 0) {
- //上传人为资产方,自动审核通过
- projectFile.setState(1);
- } else if (user.getSubordinateType() == 1) {
- //上传人为生产方,自动审核通过
- projectFile.setState(2);
- } else {
- projectFile.setState(0);
- }
- File saveFile = new File(dir, fileName);
- try {
- saveFile.createNewFile();
- file.transferTo(saveFile);
- } catch (IOException e) {
- e.printStackTrace();
- projectFile = null;
- } catch (Exception e) {
- e.printStackTrace();
- projectFile = null;
- }
- //模具报废情况下,设置files2
- if (blongType == 5 && file2 != null && !file2.isEmpty()) {
- String fileName2 = file2.getOriginalFilename();
- projectFile.setFileName2(fileName2);
- projectFile.setFileSize2(FileUtil.getReadableFileSize(file2.getSize()));
- System.out.println("上传文件2名称" + file2.getName() + ", dir = " + dir.getAbsolutePath());
- pos = fileName2.lastIndexOf(".");
- rand = UUID.randomUUID().toString().replaceAll("-", "");
- sufix = fileName2.substring(pos);
- fileName2 = rand + sufix;
- projectFile.setFileType2(sufix);//文件后缀
- projectFile.setFileUrl2("/upload/" + fileName2);
- File saveFile2 = new File(dir, fileName2);
- try {
- saveFile2.createNewFile();
- file2.transferTo(saveFile2);
- } catch (IOException e) {
- e.printStackTrace();
- projectFile = null;
- } catch (Exception e) {
- e.printStackTrace();
- projectFile = null;
- }
- }
- //上传零件文档和上传模具文档的时候需要区分是否为2D或者3D
- if (userVO.getDwgType() != null) {
- projectFile.setDwgType(userVO.getDwgType());
- }
- mouldFileMapper.insert(projectFile);
- //添加上传记录
- MouldOperationDynamics dynamics = new MouldOperationDynamics();
- dynamics.setContent(Constant.UPLOAD);
- dynamics.setFileName(file.getOriginalFilename());
- dynamics.setOperatorId(user.getId());
- dynamics.setFileId(projectFile.getId());
- dynamics.setOperatorName(user.getUsername());
- dynamics.setMouldId(userVO.getMouldId());
- dynamics.setBelongType(blongType);
- mouldOperationDynamicsMapper.insert(dynamics);
- }
- msg.data = projectFile;
- }
- } else {
- msg.setError("当前用户不存在或者未登录");
- }
- return msg;
- }
- @Override
- public HttpRespMsg check(Integer mouldFileId, Integer isPass, UserVO userVO) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
- MouldFile mf = new MouldFile();
- mf.setId(mouldFileId);
- MouldFile oldData = mouldFileMapper.selectById(mouldFileId);
- if (user != null) {
- if (user.getSubordinateType() == 0) {
- //资产方
- if (isPass == 1) {
- if (oldData.getState() == 2) {//生产方也审核通过了
- mf.setState(3);
- } else {
- mf.setState(1);
- }
- } else {
- mf.setState(-1);
- }
- mouldFileMapper.updateById(mf);
- } else if (user.getSubordinateType() == 1) {
- //生产方
- if (isPass == 1) {
- if (oldData.getState() == 1) {//资产方也审核通过了
- mf.setState(3);
- } else {
- mf.setState(2);
- }
- } else {
- mf.setState(-2);
- }
- mouldFileMapper.updateById(mf);
- } else {
- msg.setError("只有生产方和资产方才能审核, subordinteType = " + user.getSubordinateType() + ", 无效!");
- }
- }
- return msg;
- }
- @Override
- public HttpRespMsg dowloadFile(MouldFile projectFile, String token) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", token));
- //添加上传记录
- MouldFile file = mouldFileMapper.selectById(projectFile.getId());
- MouldOperationDynamics dynamics = new MouldOperationDynamics();
- dynamics.setContent(Constant.DOWNLOAD);
- dynamics.setFileName(file.getFileName());
- dynamics.setOperatorId(user.getId());
- dynamics.setOperatorName(user.getUsername());
- dynamics.setMouldId(file.getModelId());
- dynamics.setFileId(file.getId());
- dynamics.setBelongType(file.getBlongType());
- mouldOperationDynamicsMapper.insert(dynamics);
- return msg;
- }
- @Override
- public HttpRespMsg getAllFileList(int mouldId, UserVO userVO) {
- List<HashMap> dataList = new ArrayList<HashMap>();
- int maxBlongType = 5;
- for (int i = 0; i <= maxBlongType; i++) {
- HashMap<String, Object> data = new HashMap<>();
- data.put("blongType", i);
- List<MouldFile> list = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", mouldId).eq("blong_type", i).orderByDesc("id"));
- data.put("list", list);
- dataList.add(data);
- }
- HttpRespMsg msg = new HttpRespMsg();
- msg.data = dataList;
- return msg;
- }
- @Override
- public HttpRespMsg getFileList(int mouldId, Integer blongType, UserVO userVO) {
- HttpRespMsg msg = new HttpRespMsg();
- User user = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
- List<MouldFile> list = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", mouldId).eq("blong_type", blongType).orderByDesc("id"));
- msg.data = list;
- return msg;
- }
- @Override
- public HttpRespMsg delFile(MouldFile mouldFile) {
- HttpRespMsg msg = new HttpRespMsg();
- msg.data = mouldFileMapper.deleteById(mouldFile.getId());
- return msg;
- }
- @Override
- public HttpRespMsg getListByUserAndProjectId(UserVO userVO, PageUtil page) {
- HttpRespMsg msg = new HttpRespMsg();
- User currentUser = userMapper.selectOne(new QueryWrapper<User>().eq("head_imgurl", userVO.getToken()));
- if (currentUser != null) {
- PageHelper.startPage(page.getPageNum(), page.getPageSize());
- List<MouldFileVO> list = mouldFileMapper.getFileListByProjectId(userVO);
- PageInfo<MouldFileVO> pageInfos = new PageInfo<>(list);
- msg.data = pageInfos;
- } else {
- msg.setError("用户不存在或者未登录");
- }
- return msg;
- }
- @Override
- public HttpRespMsg dowloadFileList(UserVO userVO) {
- byte[] buffer = new byte[1024];
- Date date=new Date();
- ////生成zip文件存放位置
- // String strZipPath = Constant.exportAddress +loginname+date.getTime()+".zip";
- // File file=new File(Constant.exportAddress);
- // if(!file.isDirectory() && !file.exists()){
- ////创建单层目录
- //// f.mkdir();
- //// 创建多层目录
- // file.mkdirs();
- // }
- // try {
- // ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipPath));
- //// 需要同时下载的多个文件
- // for (int i = 0; i < filepath.length; i++) {
- // File f=new File(filepath[i]);
- // FileInputStream fis = new FileInputStream(f);
- // System.out.println(documentname[i]);
- // out.putNextEntry(new ZipEntry(documentname[i]));
- ////设置压缩文件内的字符编码,不然会变成乱码
- // out.setEncoding("GBK");
- // int len;
- //// 读入需要下载的文件的内容,打包到zip文件
- // while ((len = fis.read(buffer)) > 0) {
- // out.write(buffer, 0, len);
- // }
- // out.closeEntry();
- // fis.close();
- // }
- // out.close();
- // PublicMethod.downLoadFile(request, response, strZipPath, filename+".zip");
- // File temp=new File(strZipPath);
- // if(temp.exists()){
- // temp.delete();
- // }
- // } catch (Exception e) {
- // System.out.println("文件下载错误");
- // }
- return null;
- }
- }
|