package com.hssx.cloudmodel.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.hssx.cloudmodel.constant.Constant; import com.hssx.cloudmodel.entity.MouldFile; import com.hssx.cloudmodel.entity.ProjectFile; import com.hssx.cloudmodel.entity.ProjectOperationDynamics; import com.hssx.cloudmodel.entity.User; import com.hssx.cloudmodel.entity.vo.UserVO; import com.hssx.cloudmodel.mapper.MouldFileMapper; import com.hssx.cloudmodel.mapper.ProjectFileMapper; import com.hssx.cloudmodel.mapper.ProjectOperationDynamicsMapper; import com.hssx.cloudmodel.mapper.UserMapper; 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 org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.util.List; import java.util.UUID; /** *

* 服务实现类 *

* * @author 吴涛涛 * @since 2019-08-07 */ @Service public class MouldFileServiceImpl extends ServiceImpl implements MouldFileService { @Resource UserMapper userMapper; @Resource MouldFileMapper mouldFileMapper; @Resource ProjectOperationDynamicsMapper projectOperationDynamicsMapper; @Override public HttpRespMsg addFile(UserVO userVO, MultipartFile file, String path) { HttpRespMsg msg = new HttpRespMsg(); User user = userMapper.selectOne(new QueryWrapper().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(0); 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); mouldFileMapper.insert(projectFile); try { saveFile.createNewFile(); file.transferTo(saveFile); } catch (IOException e) { e.printStackTrace(); projectFile = null; } catch (Exception e) { e.printStackTrace(); projectFile = null; } //添加上传记录 // ProjectOperationDynamics dynamics = new ProjectOperationDynamics(); // dynamics.setContent(Constant.UPLOAD); // dynamics.setFileName(file.getOriginalFilename()); // dynamics.setOperatorId(user.getId()); // dynamics.setOperator(user.getUsername()); // dynamics.setProjectId(userVO.getProjectId()); // projectOperationDynamicsMapper.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().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().eq("head_imgurl", token)); return null; } @Override public HttpRespMsg getFileList(int mouldId, UserVO userVO) { HttpRespMsg msg = new HttpRespMsg(); User user = userMapper.selectOne(new QueryWrapper().eq("head_imgurl", userVO.getToken())); List list = mouldFileMapper.selectList(new QueryWrapper().eq("model_id", mouldId).orderByDesc("id")); msg.data = list; return msg; } }