三江-安全环保资料中心接口编写

This commit is contained in:
Administrator 2023-04-25 10:42:43 +08:00
parent 72145d1e9b
commit a615c2b0d5
6 changed files with 314 additions and 257 deletions

View File

@ -1,276 +1,206 @@
package com.zhgd.xmgl.modules.sanjiang.controller;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.base.TreeNode;
import com.zhgd.xmgl.modules.sanjiang.entity.SjSafeEnvironmentFile;
import com.zhgd.xmgl.modules.sanjiang.service.ISjSafeEnvironmentFileService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import java.util.*;
/**
* @Title: Controller
* @Description: 三江安全环保资料中心
* @author pds
* @date 2023-04-20
* @date 2021-01-11
* @version V1.0
*/
@RestController
@RequestMapping("/xmgl/sjSafeEnvironmentFile")
@Slf4j
@Api(tags = "三江安全环保资料中心Controller")
@Api("ProjectFileController相关Api")
public class SjSafeEnvironmentFileController {
@Autowired
private ISjSafeEnvironmentFileService sjSafeEnvironmentFileService;
/**
* 分页列表查询
*
* @param sjSafeEnvironmentFile
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@ApiOperation(value = " 分页列表查询三江安全环保资料中心信息", notes = "分页列表查询三江安全环保资料中心信息", httpMethod = "GET")
@GetMapping(value = "/page")
public Result<IPage<SjSafeEnvironmentFile>> queryPageList(SjSafeEnvironmentFile sjSafeEnvironmentFile,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
Result<IPage<SjSafeEnvironmentFile>> result = new Result<IPage<SjSafeEnvironmentFile>>();
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = QueryGenerator.initQueryWrapper(sjSafeEnvironmentFile, req.getParameterMap());
Page<SjSafeEnvironmentFile> page = new Page<SjSafeEnvironmentFile>(pageNo, pageSize);
IPage<SjSafeEnvironmentFile> pageList = sjSafeEnvironmentFileService.page(page, queryWrapper);
result.setSuccess(true);
result.setResult(pageList);
return result;
}
* 分页列表查询
* @return
*/
@ApiOperation(value = " 列表查询项目文件档案信息", notes = "列表查询项目文件档案信息", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
@ApiImplicitParam(name = "filePath", value = "路径", paramType = "query", required = true, dataType = "Integer"),
})
@PostMapping(value = "/list")
public Result<List<SjSafeEnvironmentFile>> getFileList(@RequestBody Map<String, Object> map) {
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, MapUtils.getString(map, "projectSn"))
.eq(SjSafeEnvironmentFile::getFilePath, MapUtils.getString(map, "filePath"));
queryWrapper.orderByAsc("is_dir");
List<SjSafeEnvironmentFile> list = sjSafeEnvironmentFileService.list(queryWrapper);
return Result.success(list);
}
/**
* 列表查询
*
* @param sjSafeEnvironmentFile
* @param req
* @return
*/
@ApiOperation(value = " 列表查询三江安全环保资料中心信息", notes = "列表查询三江安全环保资料中心信息", httpMethod = "GET")
@GetMapping(value = "/list")
public Result<List<SjSafeEnvironmentFile>> queryList(SjSafeEnvironmentFile sjSafeEnvironmentFile,
HttpServletRequest req) {
/**
* 添加
* @param sjSafeEnvironmentFile
* @return
*/
@OperLog(operModul = "项目文件管理", operType = "添加项目文件档案", operDesc = "添加项目文件档案")
@ApiOperation(value = " 添加项目文件档案信息", notes = "添加项目文件档案信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<SjSafeEnvironmentFile> add(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) {
sjSafeEnvironmentFileService.addProjectFile(sjSafeEnvironmentFile);
return Result.ok();
}
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = QueryGenerator.initQueryWrapper(sjSafeEnvironmentFile, req.getParameterMap());
return Result.success(sjSafeEnvironmentFileService.list(queryWrapper));
}
/**
* 添加
*
* @param sjSafeEnvironmentFile
* @return
*/
@ApiOperation(value = " 添加三江安全环保资料中心信息", notes = "添加三江安全环保资料中心信息", httpMethod = "POST")
@PostMapping(value = "/add")
public Result<SjSafeEnvironmentFile> add(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) {
Result<SjSafeEnvironmentFile> result = new Result<SjSafeEnvironmentFile>();
try {
sjSafeEnvironmentFileService.save(sjSafeEnvironmentFile);
result.success("添加成功!");
} catch (Exception e) {
e.printStackTrace();
log.info(e.getMessage());
result.error500("操作失败");
}
return result;
}
/**
* 编辑
*
* @param sjSafeEnvironmentFile
* @return
*/
@OperLog(operModul = "项目文件管理", operType = "文件重命名", operDesc = "文件重命名")
@ApiOperation(value = "文件重命名", notes = "文件重命名", httpMethod = "POST")
@PostMapping(value = "/renameFile")
public Result<SjSafeEnvironmentFile> edit(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) {
sjSafeEnvironmentFileService.renamefile(sjSafeEnvironmentFile);
return Result.ok();
}
/**
* 编辑
*
* @param sjSafeEnvironmentFile
* @return
*/
@ApiOperation(value = "编辑三江安全环保资料中心信息", notes = "编辑三江安全环保资料中心信息", httpMethod = "POST")
@PostMapping(value = "/edit")
public Result<SjSafeEnvironmentFile> edit(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) {
Result<SjSafeEnvironmentFile> result = new Result<SjSafeEnvironmentFile>();
SjSafeEnvironmentFile sjSafeEnvironmentFileEntity = sjSafeEnvironmentFileService.getById(sjSafeEnvironmentFile.getId());
if (sjSafeEnvironmentFileEntity == null) {
result.error500("未找到对应实体");
} else {
sjSafeEnvironmentFileService.updateById(sjSafeEnvironmentFile);
result.success("修改成功!");
}
return result;
}
@OperLog(operModul = "项目文件管理", operType = "批量删除文件", operDesc = "批量删除文件")
@ApiOperation(value = "批量删除文件", notes = "批量删除文件", httpMethod = "POST")
@RequestMapping(value = "/batchDeleteFile", method = RequestMethod.POST)
public Result<String> batchDeleteFile(@RequestBody List<SjSafeEnvironmentFile> list) {
sjSafeEnvironmentFileService.batchDeleteFile(list);
return Result.ok();
}
/**
* 通过id删除
*
* @param id
* @return
*/
@ApiOperation(value = "删除三江安全环保资料中心信息", notes = "删除三江安全环保资料中心信息", httpMethod = "POST")
@PostMapping(value = "/delete")
public Result<SjSafeEnvironmentFile> delete(@RequestBody String id) {
JSONObject jsonObject = JSON.parseObject(id, JSONObject.class);
id = String.valueOf(jsonObject.get("id"));
Result<SjSafeEnvironmentFile> result = new Result<SjSafeEnvironmentFile>();
SjSafeEnvironmentFile sjSafeEnvironmentFile = sjSafeEnvironmentFileService.getById(id);
if (sjSafeEnvironmentFile == null) {
result.error500("未找到对应实体");
} else {
boolean ok = sjSafeEnvironmentFileService.removeById(id);
if (ok) {
result.success("删除成功!");
}
}
@OperLog(operModul = "项目文件管理", operType = "删除文件", operDesc = "删除文件")
@ApiOperation(value = "删除文件", notes = "可以删除文件或者目录", httpMethod = "POST")
@RequestMapping(value = "/deleteFile", method = RequestMethod.POST)
public Result<String> deleteFile(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) {
sjSafeEnvironmentFileService.deleteFile(sjSafeEnvironmentFile);
return Result.ok();
}
return result;
}
@OperLog(operModul = "项目文件管理", operType = "文件移动", operDesc = "文件移动")
@ApiOperation(value = "文件移动", notes = "可以移动文件或者目录", httpMethod = "POST")
@RequestMapping(value = "/moveFile", method = RequestMethod.POST)
public Result<String> moveFile(@RequestBody SjSafeEnvironmentFile sjSafeEnvironmentFile) {
sjSafeEnvironmentFileService.moveFile(sjSafeEnvironmentFile);
return Result.ok();
}
/**
* 批量删除
*
* @param ids
* @return
*/
@ApiOperation(value = "批量删除三江安全环保资料中心信息", notes = "批量删除三江安全环保资料中心信息", httpMethod = "POST")
@ApiImplicitParam(name = "id", value = "三江安全环保资料中心ID字符串", paramType = "query", required = true, dataType = "String")
@PostMapping(value = "/deleteBatch")
public Result<SjSafeEnvironmentFile> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
Result<SjSafeEnvironmentFile> result = new Result<SjSafeEnvironmentFile>();
if (ids == null || "".equals(ids.trim())) {
result.error500("参数不识别!");
} else {
this.sjSafeEnvironmentFileService.removeByIds(Arrays.asList(ids.split(",")));
result.success("删除成功!");
}
return result;
}
@OperLog(operModul = "项目文件管理", operType = "批量文件移动", operDesc = "批量文件移动")
@ApiOperation(value = "文件移动", notes = "可以移动文件或者目录", httpMethod = "POST")
@RequestMapping(value = "/batchmovefile", method = RequestMethod.POST)
public Result<String> batchMoveFile(@RequestBody List<SjSafeEnvironmentFile> list) {
for (SjSafeEnvironmentFile sjSafeEnvironmentFile : list) {
sjSafeEnvironmentFileService.moveFile(sjSafeEnvironmentFile);
}
return Result.ok();
}
/**
* 通过id查询
*
* @param id
* @return
*/
@ApiOperation(value = "通过id查询三江安全环保资料中心信息", notes = "通过id查询三江安全环保资料中心信息", httpMethod = "GET")
@ApiImplicitParam(name = "id", value = "三江安全环保资料中心ID", paramType = "query", required = true, dataType = "Integer")
@GetMapping(value = "/queryById")
public Result<SjSafeEnvironmentFile> queryById(@RequestParam(name = "id", required = true) String id) {
Result<SjSafeEnvironmentFile> result = new Result<SjSafeEnvironmentFile>();
SjSafeEnvironmentFile sjSafeEnvironmentFile = sjSafeEnvironmentFileService.getById(id);
if (sjSafeEnvironmentFile == null) {
result.error500("未找到对应实体");
} else {
result.setResult(sjSafeEnvironmentFile);
result.setSuccess(true);
}
return result;
}
@ApiOperation(value = " 获取文件树", notes = "文件移动的时候需要用到该接口,用来展示目录树,展示机制为饱汉模式", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
})
@PostMapping(value = "/getFileTree")
public Result<TreeNode> getFileTree(@RequestBody Map<String, Object> map) {
Result<TreeNode> result = new Result<TreeNode>();
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, MapUtils.getString(map, "projectSn"))
.eq(SjSafeEnvironmentFile::getIsDir, "1");
List<SjSafeEnvironmentFile> filePathList = sjSafeEnvironmentFileService.list(queryWrapper);
/**
* 导出excel
*
* @param request
* @param response
*/
@ApiOperation(value = "导出excel三江安全环保资料中心信息", notes = "导出excel三江安全环保资料中心信息", httpMethod = "POST")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
// Step.1 组装查询条件
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = null;
try {
String paramsStr = request.getParameter("paramsStr");
if (oConvertUtils.isNotEmpty(paramsStr)) {
String deString = URLDecoder.decode(paramsStr, "UTF-8");
SjSafeEnvironmentFile sjSafeEnvironmentFile = JSON.parseObject(deString, SjSafeEnvironmentFile.class);
queryWrapper = QueryGenerator.initQueryWrapper(sjSafeEnvironmentFile, request.getParameterMap());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
TreeNode resultTreeNode = new TreeNode();
resultTreeNode.setLabel("/");
long treeid = 0;
for (int i = 0; i < filePathList.size(); i++) {
String filePath = filePathList.get(i).getFilePath() + filePathList.get(i).getFileName() + "/";
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<SjSafeEnvironmentFile> pageList = sjSafeEnvironmentFileService.list(queryWrapper);
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "三江安全环保资料中心列表");
mv.addObject(NormalExcelConstants.CLASS, SjSafeEnvironmentFile.class);
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("三江安全环保资料中心列表数据", "导出人:Jeecg", "导出信息"));
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
Queue<String> queue = new LinkedList<>();
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@ApiOperation(value = "通过excel导入三江安全环保资料中心信息", notes = "通过excel导入三江安全环保资料中心信息", httpMethod = "POST")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<SjSafeEnvironmentFile> listSjSafeEnvironmentFiles = ExcelImportUtil.importExcel(file.getInputStream(), SjSafeEnvironmentFile.class, params);
for (SjSafeEnvironmentFile sjSafeEnvironmentFileExcel : listSjSafeEnvironmentFiles) {
sjSafeEnvironmentFileService.save(sjSafeEnvironmentFileExcel);
}
return Result.ok("文件导入成功!数据行数:" + listSjSafeEnvironmentFiles.size());
} catch (Exception e) {
log.error(e.getMessage());
return Result.error("文件导入失败!");
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.ok("文件导入失败!");
}
String[] strArr = filePath.split("/");
for (int j = 0; j < strArr.length; j++) {
if (!"".equals(strArr[j]) && strArr[j] != null) {
queue.add(strArr[j]);
}
}
if (queue.size() == 0) {
continue;
}
resultTreeNode = insertTreeNode(resultTreeNode, "/", queue, treeid);
}
result.setSuccess(true);
result.setResult(resultTreeNode);
return result;
}
public TreeNode insertTreeNode(TreeNode treeNode, String filePath, Queue<String> nodeNameQueue, long treeid) {
List<TreeNode> childrenTreeNodes = treeNode.getChildren();
String currentNodeName = nodeNameQueue.peek();
if (currentNodeName == null) {
return treeNode;
}
Map<String, String> map = new HashMap<>();
filePath = filePath + currentNodeName + "/";
map.put("filePath", filePath);
if (!isExistPath(childrenTreeNodes, currentNodeName)) { //1判断有没有该子节点如果没有则插入
//插入
TreeNode resultTreeNode = new TreeNode();
resultTreeNode.setAttributes(map);
resultTreeNode.setLabel(nodeNameQueue.poll());
resultTreeNode.setId(treeid++);
childrenTreeNodes.add(resultTreeNode);
} else { //2如果有则跳过
nodeNameQueue.poll();
}
if (nodeNameQueue.size() != 0) {
for (int i = 0; i < childrenTreeNodes.size(); i++) {
TreeNode childrenTreeNode = childrenTreeNodes.get(i);
if (currentNodeName.equals(childrenTreeNode.getLabel())) {
childrenTreeNode = insertTreeNode(childrenTreeNode, filePath, nodeNameQueue, treeid);
childrenTreeNodes.remove(i);
childrenTreeNodes.add(childrenTreeNode);
treeNode.setChildren(childrenTreeNodes);
}
}
} else {
treeNode.setChildren(childrenTreeNodes);
}
return treeNode;
}
public boolean isExistPath(List<TreeNode> childrenTreeNodes, String path) {
boolean isExistPath = false;
try {
for (int i = 0; i < childrenTreeNodes.size(); i++) {
if (path.equals(childrenTreeNodes.get(i).getLabel())) {
isExistPath = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return isExistPath;
}
}

View File

@ -2,6 +2,8 @@ package com.zhgd.xmgl.modules.sanjiang.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@ -11,7 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
/**
* @Description: 三江安全环保资料中心
* @author pds
* @date 2023-04-20
* @date 2021-01-11
* @version V1.0
*/
@Data
@ -24,8 +26,9 @@ public class SjSafeEnvironmentFile implements Serializable {
* fileId
*/
@Excel(name = "fileId", width = 15)
@ApiModelProperty(value = "id")
private java.lang.Long id;
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "fileId")
private java.lang.Long fileId;
/**
* 项目SN
*/
@ -68,16 +71,7 @@ public class SjSafeEnvironmentFile implements Serializable {
@Excel(name = "上传时间", width = 15)
@ApiModelProperty(value = "上传时间")
private java.lang.String uploadTime;
/**
* 父级ID
*/
@Excel(name = "父级ID", width = 15)
@ApiModelProperty(value = "父级ID")
private java.lang.Long parentId;
/**
* 文件大小
*/
@Excel(name = "文件大小", width = 15)
@ApiModelProperty(value = "文件大小")
private java.lang.String fileSize;
}

View File

@ -1,16 +1,22 @@
package com.zhgd.xmgl.modules.sanjiang.mapper;
import org.apache.ibatis.annotations.Mapper;
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;
/**
* @Description: 三江安全环保资料中心
* @author pds
* @date 2023-04-20
* @date 2021-01-11
* @version V1.0
*/
@Mapper
public interface SjSafeEnvironmentFileMapper extends BaseMapper<SjSafeEnvironmentFile> {
void replaceProjectFilePath(@Param("filePath") String filePath, @Param("oldFilePath") String oldFilePath, @Param("projectSn") String projectSn);
void updateFilepathByFilepath(@Param("oldfilePath") String oldfilePath, @Param("newfilePath") String newfilePath, @Param("projectSn") String projectSn);
void updateFilepathByPathAndName(SjSafeEnvironmentFile sjSafeEnvironmentFile);
}

View File

@ -1,5 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.sanjiang.mapper.SjSafeEnvironmentFileMapper">
<update id="replaceProjectFilePath">
UPDATE sj_safe_environment_file SET file_path=REPLACE(file_path, #{oldFilePath}, #{filePath})
WHERE file_path LIKE N'${oldFilePath}%' and project_sn = #{projectSn};
</update>
<update id="updateFilepathByFilepath">
UPDATE sj_safe_environment_file SET file_path=REPLACE(file_path, #{oldfilePath}, #{newfilePath})
WHERE file_path like N'${oldfilePath}%' and project_sn = #{projectSn};
</update>
<update id="updateFilepathByPathAndName">
UPDATE sj_safe_environment_file SET file_path=#{filePath}
WHERE file_id=#{fileId}
</update>
</mapper>

View File

@ -3,12 +3,23 @@ package com.zhgd.xmgl.modules.sanjiang.service;
import com.zhgd.xmgl.modules.sanjiang.entity.SjSafeEnvironmentFile;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 三江安全环保资料中心
* @Description: 项目文件档案
* @author pds
* @date 2023-04-20
* @date 2021-01-11
* @version V1.0
*/
public interface ISjSafeEnvironmentFileService extends IService<SjSafeEnvironmentFile> {
void addProjectFile(SjSafeEnvironmentFile sjSafeEnvironmentFile);
void renamefile(SjSafeEnvironmentFile sjSafeEnvironmentFile);
void batchDeleteFile(List<SjSafeEnvironmentFile> list);
void deleteFile(SjSafeEnvironmentFile sjSafeEnvironmentFile);
void moveFile(SjSafeEnvironmentFile sjSafeEnvironmentFile);
}

View File

@ -1,19 +1,123 @@
package com.zhgd.xmgl.modules.sanjiang.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @Description: 三江安全环保资料中心
* @author pds
* @date 2023-04-20
* @date 2021-01-11
* @version V1.0
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class SjSafeEnvironmentFileServiceImpl extends ServiceImpl<SjSafeEnvironmentFileMapper, SjSafeEnvironmentFile> implements ISjSafeEnvironmentFileService {
@Autowired
private SjSafeEnvironmentFileMapper sjSafeEnvironmentFileMapper;
@Override
public void addProjectFile(SjSafeEnvironmentFile sjSafeEnvironmentFile) {
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, sjSafeEnvironmentFile.getProjectSn())
.eq(SjSafeEnvironmentFile::getFileName, sjSafeEnvironmentFile.getFileName())
.eq(SjSafeEnvironmentFile::getFilePath, sjSafeEnvironmentFile.getFilePath())
.eq(SjSafeEnvironmentFile::getIsDir, sjSafeEnvironmentFile.getIsDir());
int count = sjSafeEnvironmentFileMapper.selectCount(queryWrapper);
if (count > 0) {
if (sjSafeEnvironmentFile.getIsDir() == 1) {
throw new OpenAlertException(MessageUtil.get("nameExistErr"));
} else {
sjSafeEnvironmentFile.setFileName(sjSafeEnvironmentFile.getFileName() + "(1)");
}
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sjSafeEnvironmentFile.setUploadTime(df.format(new Date()));
sjSafeEnvironmentFileMapper.insert(sjSafeEnvironmentFile);
}
@Override
public void renamefile(SjSafeEnvironmentFile sjSafeEnvironmentFile) {
SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId());
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, oldSjSafeEnvironmentFile.getProjectSn())
.eq(SjSafeEnvironmentFile::getFileName, sjSafeEnvironmentFile.getFileName())
.eq(SjSafeEnvironmentFile::getFilePath, oldSjSafeEnvironmentFile.getFilePath())
.eq(SjSafeEnvironmentFile::getIsDir, oldSjSafeEnvironmentFile.getIsDir());
int count = sjSafeEnvironmentFileMapper.selectCount(queryWrapper);
if (count > 0) {
if (sjSafeEnvironmentFile.getIsDir() == 1) {
throw new OpenAlertException(MessageUtil.get("nameExistErr"));
} else {
sjSafeEnvironmentFile.setFileName(sjSafeEnvironmentFile.getFileName() + "(1)");
}
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(new Date());
if (1 == oldSjSafeEnvironmentFile.getIsDir()) {
SjSafeEnvironmentFile newSjSafeEnvironmentFile = new SjSafeEnvironmentFile();
newSjSafeEnvironmentFile.setFileId(oldSjSafeEnvironmentFile.getFileId());
newSjSafeEnvironmentFile.setUploadTime(time);
newSjSafeEnvironmentFile.setFileName(sjSafeEnvironmentFile.getFileName());
sjSafeEnvironmentFileMapper.updateById(newSjSafeEnvironmentFile);
sjSafeEnvironmentFileMapper.replaceProjectFilePath(oldSjSafeEnvironmentFile.getFilePath() + sjSafeEnvironmentFile.getFileName() + "/",
oldSjSafeEnvironmentFile.getFilePath() + oldSjSafeEnvironmentFile.getFileName() + "/", oldSjSafeEnvironmentFile.getProjectSn());
} else {
SjSafeEnvironmentFile newSjSafeEnvironmentFile = new SjSafeEnvironmentFile();
newSjSafeEnvironmentFile.setFileId(oldSjSafeEnvironmentFile.getFileId());
newSjSafeEnvironmentFile.setUploadTime(time);
newSjSafeEnvironmentFile.setFileName(sjSafeEnvironmentFile.getFileName());
sjSafeEnvironmentFileMapper.updateById(newSjSafeEnvironmentFile);
}
}
@Override
public void batchDeleteFile(List<SjSafeEnvironmentFile> list) {
for (SjSafeEnvironmentFile sjSafeEnvironmentFile : list) {
deleteFile(sjSafeEnvironmentFile);
}
}
@Override
public void deleteFile(SjSafeEnvironmentFile sjSafeEnvironmentFile) {
SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId());
if (1 == oldSjSafeEnvironmentFile.getIsDir()) {
String filePath = oldSjSafeEnvironmentFile.getFilePath() + oldSjSafeEnvironmentFile.getFileName() + "/";
QueryWrapper<SjSafeEnvironmentFile> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SjSafeEnvironmentFile::getProjectSn, oldSjSafeEnvironmentFile.getProjectSn())
.likeRight(SjSafeEnvironmentFile::getFilePath, filePath);
sjSafeEnvironmentFileMapper.delete(queryWrapper);
sjSafeEnvironmentFileMapper.deleteById(sjSafeEnvironmentFile.getFileId());
} else {
sjSafeEnvironmentFileMapper.deleteById(sjSafeEnvironmentFile.getFileId());
}
}
@Override
public void moveFile(SjSafeEnvironmentFile sjSafeEnvironmentFile) {
SjSafeEnvironmentFile oldSjSafeEnvironmentFile = sjSafeEnvironmentFileMapper.selectById(sjSafeEnvironmentFile.getFileId());
//移动根目录
sjSafeEnvironmentFileMapper.updateFilepathByPathAndName(sjSafeEnvironmentFile);
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());
}
}
}