From bc4ef1c9813433d33fb549f38790cbc96c2e6c87 Mon Sep 17 00:00:00 2001 From: Administrator <1923636941@qq.com> Date: Tue, 25 Apr 2023 18:15:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=B1=9F-=E5=AE=89=E5=85=A8=E7=8E=AF?= =?UTF-8?q?=E4=BF=9D=E8=B5=84=E6=96=99=E4=B8=AD=E5=BF=83=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/base/UploadFileDTO.java | 2 + .../QualityRectifyRecordController.java | 65 +++---- .../QualityInspectionRecordServiceImpl.java | 2 +- .../impl/QualityRectifyRecordServiceImpl.java | 4 +- .../SjSafeEnvironmentFileController.java | 50 ++++-- .../entity/SjSafeEnvironmentFile.java | 15 +- .../mapper/SjSafeEnvironmentFileMapper.java | 8 +- .../xml/SjSafeEnvironmentFileMapper.xml | 19 ++ .../ISjSafeEnvironmentFileService.java | 15 +- .../SjSafeEnvironmentFileServiceImpl.java | 170 ++++++++++++++++-- 10 files changed, 270 insertions(+), 80 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/base/UploadFileDTO.java b/src/main/java/com/zhgd/xmgl/base/UploadFileDTO.java index 492df08dd..c5e4a65bd 100644 --- a/src/main/java/com/zhgd/xmgl/base/UploadFileDTO.java +++ b/src/main/java/com/zhgd/xmgl/base/UploadFileDTO.java @@ -54,5 +54,7 @@ public class UploadFileDTO { private long currentChunkSize; @ApiModelProperty(value = "md5码") private String identifier; + @ApiModelProperty(value = "项目SN或企业sn") + private String sn; } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRectifyRecordController.java b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRectifyRecordController.java index ba1a7e270..a8a08dcd6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRectifyRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRectifyRecordController.java @@ -4,7 +4,6 @@ import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.quality.entity.QualityRectifyRecord; -import com.zhgd.xmgl.modules.quality.entity.vo.DepartmentRectifiedRankVo; import com.zhgd.xmgl.modules.quality.service.IQualityRectifyRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -19,50 +18,52 @@ import java.util.List; import java.util.Map; - /** +/** * @Title: Controller * @Description: 质量检查-整改记录 * @author: pds - * @date: 2021-06-17 + * @date: 2021-06-17 * @version: V1.0 */ @RestController @RequestMapping("/xmgl/qualityRectifyRecord") @Slf4j -@Api(tags="质量检查-整改记录") +@Api(tags = "质量检查-整改记录") public class QualityRectifyRecordController { - @Autowired - private IQualityRectifyRecordService qualityRectifyRecordService; + @Autowired + private IQualityRectifyRecordService qualityRectifyRecordService; - /** - * 分页列表查询 - * @return - */ - @ApiOperation(value = " 列表查询质量检查-整改/复查记录信息", notes = "列表查询质量检查-整改/复查记录信息", httpMethod="POST") + /** + * 分页列表查询 + * + * @return + */ + @ApiOperation(value = " 列表查询质量检查-整改/复查记录信息", notes = "列表查询质量检查-整改/复查记录信息", httpMethod = "POST") @ApiImplicitParam(name = "qualityId", value = "质量检查记录ID", paramType = "query", required = true, dataType = "Integer") @PostMapping(value = "/selectRectifyRecordList") - public Result> selectRectifyRecordList(@RequestBody Map map) { - return Result.success(qualityRectifyRecordService.selectRectifyRecordList(map)); - } + public Result> selectRectifyRecordList(@RequestBody Map map) { + return Result.success(qualityRectifyRecordService.selectRectifyRecordList(map)); + } - /** - * 添加 - * @param qualityRectifyRecord - * @return - */ - @OperLog(operModul = "质量管理", operType = "添加质量检查整改/复查记录信息", operDesc = "添加质量检查整改/复查记录信息") - @ApiOperation(value = " 添加质量检查-整改/复查记录信息", notes = "添加质量检查-整改/复查记录信息", httpMethod = "POST") - @PostMapping(value = "/add") - public Result add(@RequestBody QualityRectifyRecord qualityRectifyRecord) { - qualityRectifyRecordService.saveQualityRectifyRecord(qualityRectifyRecord); - return Result.ok(); - } + /** + * 添加 + * + * @param qualityRectifyRecord + * @return + */ + @OperLog(operModul = "质量管理", operType = "添加质量检查整改/复查记录信息", operDesc = "添加质量检查整改/复查记录信息") + @ApiOperation(value = " 添加质量检查-整改/复查记录信息", notes = "添加质量检查-整改/复查记录信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody QualityRectifyRecord qualityRectifyRecord) { + qualityRectifyRecordService.saveQualityRectifyRecord(qualityRectifyRecord); + return Result.ok(); + } - @ApiOperation(value = "导出质量问题和整改记录excel", notes = "导出质量问题和整改记录excel", httpMethod = "POST") - @PostMapping(value = "/recordRectify/excel/export") - public void qualityInspectionRecordRectifyExportExcel(@RequestBody Map map, HttpServletResponse response) throws IOException { - qualityRectifyRecordService.qualityInspectionRecordRectifyExportExcel(map, response); - } + @ApiOperation(value = "导出质量问题和整改记录excel", notes = "导出质量问题和整改记录excel", httpMethod = "GET") + @GetMapping(value = "/recordRectify/excel/export") + public void qualityInspectionRecordRectifyExportExcel(@RequestParam(required = false) Map map, HttpServletResponse response) throws IOException { + qualityRectifyRecordService.qualityInspectionRecordRectifyExportExcel(map, response); + } - } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java index bcc7968a2..3c83498a1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityInspectionRecordServiceImpl.java @@ -69,7 +69,7 @@ public class QualityInspectionRecordServiceImpl extends ServiceImpl regionIds = JSON.parseObject(map.get("regionId").toString(), new TypeReference>() { }); if (CollectionUtils.isNotEmpty(regionIds)) { - Long topId = regionIds.get(0); + Long topId = regionIds.get(regionIds.size() - 1); List qualityRegionList = qualityRegionMapper.selectList(new LambdaQueryWrapper().eq(QualityRegion::getProjectSn, MapUtils.getString(map, "projectSn"))); List idList = getChildrenByQualityRegionId(topId, qualityRegionList); idList.add(topId); diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRectifyRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRectifyRecordServiceImpl.java index 6ae839c56..91479dbd2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRectifyRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRectifyRecordServiceImpl.java @@ -109,7 +109,7 @@ public class QualityRectifyRecordServiceImpl extends ServiceImpl rtMap = new HashMap(); rtMap.put("createTime", DateUtil.format(new Date(), "yyyy年MM月dd日")); - rtMap.put("list", getRecordMapList(map, rtMap)); + rtMap.put("list", getRecordMapList(map)); Workbook workbook = ExcelExportUtil.exportExcel(params, rtMap); //准备将Excel的输出流通过response输出到页面下载 @@ -126,7 +126,7 @@ public class QualityRectifyRecordServiceImpl extends ServiceImpl> getRecordMapList(Map map, Map rtMap) { + private List> getRecordMapList(Map map) { map.put("pageSize", Integer.MAX_VALUE); Map recordPage = qualityInspectionRecordService.selectQualityInspectionRecordPage(map); Page page = (Page) recordPage.get("page"); diff --git a/src/main/java/com/zhgd/xmgl/modules/sanjiang/controller/SjSafeEnvironmentFileController.java b/src/main/java/com/zhgd/xmgl/modules/sanjiang/controller/SjSafeEnvironmentFileController.java index d5b15f61c..a199dc30c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sanjiang/controller/SjSafeEnvironmentFileController.java +++ b/src/main/java/com/zhgd/xmgl/modules/sanjiang/controller/SjSafeEnvironmentFileController.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.base.TreeNode; +import com.zhgd.xmgl.base.UploadFileDTO; +import com.zhgd.xmgl.base.UploadFileVo; import com.zhgd.xmgl.modules.sanjiang.entity.SjSafeEnvironmentFile; import com.zhgd.xmgl.modules.sanjiang.service.ISjSafeEnvironmentFileService; import io.swagger.annotations.Api; @@ -15,6 +17,7 @@ import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import java.util.*; @@ -28,32 +31,44 @@ import java.util.*; @RestController @RequestMapping("/xmgl/sjSafeEnvironmentFile") @Slf4j -@Api("ProjectFileController相关Api") +@Api("三江安全环保资料中心") public class SjSafeEnvironmentFileController { - @Autowired - private ISjSafeEnvironmentFileService sjSafeEnvironmentFileService; + @Autowired + private ISjSafeEnvironmentFileService sjSafeEnvironmentFileService; - /** + /** + * 分块上传文件 + * + * @param request + * @return + */ + @ApiOperation(value = "分块上传文件", notes = "分块上传文件", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "sn", value = "项目SN或企业sn", paramType = "query", required = true, dataType = "String") + }) + @RequestMapping(value = "/uploadfile", method = RequestMethod.POST) + public Result uploadFile(HttpServletRequest request, UploadFileDTO uploadFileDto) { + return sjSafeEnvironmentFileService.uploadFile(request, uploadFileDto); + } + + /** * 分页列表查询 + * * @return */ @ApiOperation(value = " 列表查询项目文件档案信息", notes = "列表查询项目文件档案信息", httpMethod = "POST") @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), + @ApiImplicitParam(name = "sn", value = "项目SN或企业sn", paramType = "query", required = true, dataType = "String"), @ApiImplicitParam(name = "filePath", value = "路径", paramType = "query", required = true, dataType = "Integer"), }) @PostMapping(value = "/list") public Result> getFileList(@RequestBody Map map) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, MapUtils.getString(map, "projectSn")) - .eq(SjSafeEnvironmentFile::getFilePath, MapUtils.getString(map, "filePath")); - queryWrapper.orderByAsc("is_dir"); - List list = sjSafeEnvironmentFileService.list(queryWrapper); - return Result.success(list); + return sjSafeEnvironmentFileService.getFileList(map); } /** - * 添加 + * 添加 + * * @param sjSafeEnvironmentFile * @return */ @@ -76,8 +91,7 @@ public class SjSafeEnvironmentFileController { @ApiOperation(value = "文件重命名", notes = "文件重命名", httpMethod = "POST") @PostMapping(value = "/renameFile") public Result edit(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) { - sjSafeEnvironmentFileService.renamefile(sjSafeEnvironmentFile); - return Result.ok(); + return sjSafeEnvironmentFileService.renamefile(sjSafeEnvironmentFile); } @@ -93,16 +107,14 @@ public class SjSafeEnvironmentFileController { @ApiOperation(value = "删除文件", notes = "可以删除文件或者目录", httpMethod = "POST") @RequestMapping(value = "/deleteFile", method = RequestMethod.POST) public Result deleteFile(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) { - sjSafeEnvironmentFileService.deleteFile(sjSafeEnvironmentFile); - return Result.ok(); + return sjSafeEnvironmentFileService.deleteFile(sjSafeEnvironmentFile); } @OperLog(operModul = "项目文件管理", operType = "文件移动", operDesc = "文件移动") @ApiOperation(value = "文件移动", notes = "可以移动文件或者目录", httpMethod = "POST") @RequestMapping(value = "/moveFile", method = RequestMethod.POST) - public Result moveFile(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) { - sjSafeEnvironmentFileService.moveFile(sjSafeEnvironmentFile); - return Result.ok(); + public Result moveFile(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) { + return sjSafeEnvironmentFileService.moveFile(sjSafeEnvironmentFile); } @OperLog(operModul = "项目文件管理", operType = "批量文件移动", operDesc = "批量文件移动") diff --git a/src/main/java/com/zhgd/xmgl/modules/sanjiang/entity/SjSafeEnvironmentFile.java b/src/main/java/com/zhgd/xmgl/modules/sanjiang/entity/SjSafeEnvironmentFile.java index e359b89c2..6cba17dad 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sanjiang/entity/SjSafeEnvironmentFile.java +++ b/src/main/java/com/zhgd/xmgl/modules/sanjiang/entity/SjSafeEnvironmentFile.java @@ -1,14 +1,16 @@ package com.zhgd.xmgl.modules.sanjiang.entity; -import java.io.Serializable; - import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; /** * @Description: 三江安全环保资料中心 @@ -74,4 +76,9 @@ public class SjSafeEnvironmentFile implements Serializable { @ApiModelProperty(value = "文件大小") private java.lang.String fileSize; + + @ApiModelProperty(value = "项目SN或企业sn") + @TableField(exist = false) + private java.lang.String sn; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/SjSafeEnvironmentFileMapper.java b/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/SjSafeEnvironmentFileMapper.java index 933e17b49..b4273e25e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/SjSafeEnvironmentFileMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/SjSafeEnvironmentFileMapper.java @@ -1,9 +1,11 @@ package com.zhgd.xmgl.modules.sanjiang.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zhgd.xmgl.modules.sanjiang.entity.SjSafeEnvironmentFile; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; /** * @Description: 三江安全环保资料中心 @@ -16,7 +18,11 @@ public interface SjSafeEnvironmentFileMapper extends BaseMapper projectSnList); + void updateFilepathByFilepath(@Param("oldfilePath") String oldfilePath, @Param("newfilePath") String newfilePath, @Param("projectSn") String projectSn); + void updateFilepathByFilepathAndProjectSnList(@Param("oldfilePath") String oldfilePath, @Param("newfilePath") String newfilePath, @Param("list") List projectSnList); + void updateFilepathByPathAndName(SjSafeEnvironmentFile sjSafeEnvironmentFile); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/xml/SjSafeEnvironmentFileMapper.xml b/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/xml/SjSafeEnvironmentFileMapper.xml index bdda18ddb..01bf6bb36 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/xml/SjSafeEnvironmentFileMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/sanjiang/mapper/xml/SjSafeEnvironmentFileMapper.xml @@ -6,10 +6,29 @@ WHERE file_path LIKE N'${oldFilePath}%' and project_sn = #{projectSn}; + + UPDATE sj_safe_environment_file SET file_path=REPLACE(file_path, #{oldFilePath}, #{filePath}) + WHERE file_path LIKE N'${oldFilePath}%' and + project_sn in + + #{item} + + + UPDATE sj_safe_environment_file SET file_path=REPLACE(file_path, #{oldfilePath}, #{newfilePath}) WHERE file_path like N'${oldfilePath}%' and project_sn = #{projectSn}; + + UPDATE sj_safe_environment_file SET file_path=REPLACE(file_path, #{oldfilePath}, #{newfilePath}) + WHERE file_path like N'${oldfilePath}%' and + project_sn in + + #{item} + + UPDATE sj_safe_environment_file SET file_path=#{filePath} WHERE file_id=#{fileId} diff --git a/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/ISjSafeEnvironmentFileService.java b/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/ISjSafeEnvironmentFileService.java index ae985c995..b6ee6f3b6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/ISjSafeEnvironmentFileService.java +++ b/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/ISjSafeEnvironmentFileService.java @@ -1,9 +1,14 @@ package com.zhgd.xmgl.modules.sanjiang.service; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.base.UploadFileDTO; +import com.zhgd.xmgl.base.UploadFileVo; import com.zhgd.xmgl.modules.sanjiang.entity.SjSafeEnvironmentFile; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletRequest; import java.util.List; +import java.util.Map; /** * @Description: 项目文件档案 @@ -15,11 +20,15 @@ public interface ISjSafeEnvironmentFileService extends IService renamefile(SjSafeEnvironmentFile sjSafeEnvironmentFile); void batchDeleteFile(List list); - void deleteFile(SjSafeEnvironmentFile sjSafeEnvironmentFile); + Result deleteFile(SjSafeEnvironmentFile sjSafeEnvironmentFile); - void moveFile(SjSafeEnvironmentFile sjSafeEnvironmentFile); + Result moveFile(SjSafeEnvironmentFile sjSafeEnvironmentFile); + + Result uploadFile(HttpServletRequest request, UploadFileDTO uploadFileDto); + + Result> getFileList(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/impl/SjSafeEnvironmentFileServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/impl/SjSafeEnvironmentFileServiceImpl.java index 2063b258e..2dc9df5bb 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/impl/SjSafeEnvironmentFileServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/sanjiang/service/impl/SjSafeEnvironmentFileServiceImpl.java @@ -1,19 +1,34 @@ package com.zhgd.xmgl.modules.sanjiang.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.jeecg.upload.Uploader; +import com.zhgd.jeecg.upload.domain.UploadFile; +import com.zhgd.jeecg.upload.factory.ChunkUploaderFactory; +import com.zhgd.jeecg.upload.util.DateUtil; +import com.zhgd.xmgl.base.UploadFileDTO; +import com.zhgd.xmgl.base.UploadFileVo; +import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.sanjiang.entity.SjSafeEnvironmentFile; import com.zhgd.xmgl.modules.sanjiang.mapper.SjSafeEnvironmentFileMapper; import com.zhgd.xmgl.modules.sanjiang.service.ISjSafeEnvironmentFileService; import com.zhgd.xmgl.util.MessageUtil; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang3.StringUtils; 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 javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 三江安全环保资料中心 @@ -24,8 +39,12 @@ import java.util.List; @Service @Transactional(rollbackFor = Exception.class) public class SjSafeEnvironmentFileServiceImpl extends ServiceImpl implements ISjSafeEnvironmentFileService { + @Autowired + IProjectService projectService; @Autowired private SjSafeEnvironmentFileMapper sjSafeEnvironmentFileMapper; + @Value("${basePath}") + private String basePath; @Override public void addProjectFile(SjSafeEnvironmentFile sjSafeEnvironmentFile) { @@ -48,7 +67,15 @@ public class SjSafeEnvironmentFileServiceImpl extends ServiceImpl projectSnList = getProjectSnList(sn); + if (CollectionUtil.isEmpty(projectSnList)) { + return Result.error("查询不到项目sn"); + } SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, oldSjSafeEnvironmentFile.getProjectSn()) @@ -67,19 +94,24 @@ public class SjSafeEnvironmentFileServiceImpl extends ServiceImpl() + .in(SjSafeEnvironmentFile::getProjectSn, projectSnList) + .eq(SjSafeEnvironmentFile::getFilePath, sjSafeEnvironmentFile.getFilePath()) + .eq(SjSafeEnvironmentFile::getFileName, sjSafeEnvironmentFile.getFileName()) + ); + sjSafeEnvironmentFileMapper.replaceProjectFilePathAndProjectSnList(oldSjSafeEnvironmentFile.getFilePath() + sjSafeEnvironmentFile.getFileName() + "/", + oldSjSafeEnvironmentFile.getFilePath() + oldSjSafeEnvironmentFile.getFileName() + "/", projectSnList); } else { SjSafeEnvironmentFile newSjSafeEnvironmentFile = new SjSafeEnvironmentFile(); - newSjSafeEnvironmentFile.setFileId(oldSjSafeEnvironmentFile.getFileId()); newSjSafeEnvironmentFile.setUploadTime(time); newSjSafeEnvironmentFile.setFileName(sjSafeEnvironmentFile.getFileName()); - sjSafeEnvironmentFileMapper.updateById(newSjSafeEnvironmentFile); + sjSafeEnvironmentFileMapper.update(newSjSafeEnvironmentFile, new LambdaQueryWrapper() + .in(SjSafeEnvironmentFile::getProjectSn, projectSnList) + .eq(SjSafeEnvironmentFile::getFileUrl, sjSafeEnvironmentFile.getFileUrl())); } + return Result.ok(); } @Override @@ -90,34 +122,136 @@ public class SjSafeEnvironmentFileServiceImpl extends ServiceImpl projectSnList = getProjectSnList(sn); + if (CollectionUtil.isEmpty(projectSnList)) { + return Result.error("查询不到项目sn"); + } SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId()); if (1 == oldSjSafeEnvironmentFile.getIsDir()) { String filePath = oldSjSafeEnvironmentFile.getFilePath() + oldSjSafeEnvironmentFile.getFileName() + "/"; QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, oldSjSafeEnvironmentFile.getProjectSn()) + queryWrapper.lambda().in(SjSafeEnvironmentFile::getProjectSn, projectSnList) .likeRight(SjSafeEnvironmentFile::getFilePath, filePath); sjSafeEnvironmentFileMapper.delete(queryWrapper); - sjSafeEnvironmentFileMapper.deleteById(sjSafeEnvironmentFile.getFileId()); } else { - sjSafeEnvironmentFileMapper.deleteById(sjSafeEnvironmentFile.getFileId()); + sjSafeEnvironmentFileMapper.delete(new LambdaQueryWrapper().in(SjSafeEnvironmentFile::getProjectSn, projectSnList) + .eq(SjSafeEnvironmentFile::getFileUrl, oldSjSafeEnvironmentFile.getFileUrl())); } + return Result.ok(); } @Override - public void moveFile(SjSafeEnvironmentFile sjSafeEnvironmentFile) { - SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId()); + public Result moveFile(SjSafeEnvironmentFile sjSafeEnvironmentFile) { + String sn = sjSafeEnvironmentFile.getSn(); + if (StringUtils.isBlank(sn)) { + return Result.error("sn不能为空"); + } + List projectSnList = getProjectSnList(sjSafeEnvironmentFile.getSn()); + if (CollectionUtil.isEmpty(projectSnList)) { + return Result.error("查询不到项目sn"); + } + //移动根目录 - sjSafeEnvironmentFileMapper.updateFilepathByPathAndName(sjSafeEnvironmentFile); + SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId()); + SjSafeEnvironmentFile s = new SjSafeEnvironmentFile(); + s.setFilePath(sjSafeEnvironmentFile.getFilePath()); + sjSafeEnvironmentFileMapper.update(s, new LambdaQueryWrapper() + .in(SjSafeEnvironmentFile::getProjectSn, projectSnList) + .eq(SjSafeEnvironmentFile::getFileUrl, oldSjSafeEnvironmentFile.getFileUrl())); + + //移动子目录 if (1 == oldSjSafeEnvironmentFile.getIsDir()) { - //移动子目录 String oldfilePath = oldSjSafeEnvironmentFile.getFilePath() + oldSjSafeEnvironmentFile.getFileName() + "/"; String newfilePath = sjSafeEnvironmentFile.getFilePath() + oldSjSafeEnvironmentFile.getFileName() + "/"; oldfilePath = oldfilePath.replace("\\", "\\\\\\\\"); oldfilePath = oldfilePath.replace("'", "\\'"); oldfilePath = oldfilePath.replace("%", "\\%"); oldfilePath = oldfilePath.replace("_", "\\_"); - sjSafeEnvironmentFileMapper.updateFilepathByFilepath(oldfilePath, newfilePath, oldSjSafeEnvironmentFile.getProjectSn()); + sjSafeEnvironmentFileMapper.updateFilepathByFilepathAndProjectSnList(oldfilePath, newfilePath, projectSnList); } + + return Result.ok(); + } + + @Override + public Result uploadFile(HttpServletRequest request, UploadFileDTO uploadFileDto) { + String sn = request.getParameter("sn"); + if (StringUtils.isBlank(sn)) { + return Result.error("sn不能为空"); + } + Result restResult = new Result<>(); + uploadFileDto.setSn(sn); + doUploadFile(request, uploadFileDto); + UploadFileVo uploadFileVo = new UploadFileVo(); + restResult.data(uploadFileVo); + return restResult; + } + + @Override + public Result getFileList(Map map) { + List projectSnList = getProjectSnList(MapUtils.getString(map, "sn")); + if (CollectionUtil.isEmpty(projectSnList)) { + return Result.error("查询不到项目sn"); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda() + .in(SjSafeEnvironmentFile::getProjectSn, projectSnList) + .eq(SjSafeEnvironmentFile::getFilePath, MapUtils.getString(map, "filePath")); + queryWrapper.orderByAsc("is_dir"); + List list = list(queryWrapper); + return Result.success(list); + } + + /** + * 查找projectSn,sn(项目SN或企业sn) + * + * @return + */ + private List getProjectSnList(String sn) { + if (StringUtils.isBlank(sn)) { + return null; + } + HashMap map = new HashMap<>(); + map.put("sn", sn); + List entityMaps = projectService.selectAllProjectInfoList(map); + List projectSnList = entityMaps.stream().map(m -> MapUtils.getString(m, "projectSn")).collect(Collectors.toList()); + return projectSnList; + } + + private void doUploadFile(HttpServletRequest request, UploadFileDTO u) { + List projectSnList = getProjectSnList(u.getSn()); + ArrayList list = new ArrayList<>(); + UploadFile uploadFile = new UploadFile(); + uploadFile.setChunkNumber(u.getChunkNumber()); + uploadFile.setChunkSize(u.getChunkSize()); + uploadFile.setTotalChunks(u.getTotalChunks()); + uploadFile.setIdentifier(u.getIdentifier()); + uploadFile.setTotalSize(u.getTotalSize()); + uploadFile.setCurrentChunkSize(u.getCurrentChunkSize()); + Uploader uploader = new ChunkUploaderFactory().getUploader(uploadFile); + List uploadFileList = uploader.upload(request, basePath); + for (int i = 0; i < uploadFileList.size(); i++) { + uploadFile = uploadFileList.get(i); + if (uploadFile.getSuccess() == 1) { + for (String projectSn : projectSnList) { + SjSafeEnvironmentFile userFile = new SjSafeEnvironmentFile(); + userFile.setExtendName(uploadFile.getFileType()); + userFile.setFileName(uploadFile.getFileName()); + userFile.setFilePath(u.getFilePath()); + userFile.setProjectSn(projectSn); + userFile.setIsDir(0); + userFile.setFileUrl(uploadFile.getUrl()); + userFile.setFileSize(uploadFile.getFileSize() + ""); + userFile.setUploadTime(DateUtil.getCurrentTime()); + list.add(userFile); + } + } + } + saveBatch(list); } }