9878f474 by 荆蔚杰

删除补录信息和对应档案资料

补录归档
1 parent 4d529b37
package com.pashanhoo.archive.entity;
public enum ArchiveStatus {
//档案状态(1:正在接收;2:正在补录;3:正在修改;4:在库;5:正在销毁;6:已销毁;7:正在借阅;8:已借阅)
/**
* 正在接收
*/
RECEIVING("1","正在接收"),
/**
* 正在补录
*/
REPLENISHING("2","正在补录"),
/**
* 正在修改
*/
MODIFYING("3","正在修改"),
/**
* 在库
*/
STORED("4","在库"),
/**
* 正在销毁
*/
DESTROYING("5","正在销毁"),
/**
* 已销毁
*/
DESTROYED("6","已销毁"),
/**
* 正在借阅
*/
LENDING("7","正在借阅"),
/**
* 已借阅
*/
LENDED("8","已借阅");
private String code;
private String description;
ArchiveStatus(String code,String description) {
this.code = code;
this.description = description;
}
public String getCode() {
return this.code;
}
}
......@@ -2,7 +2,9 @@ package com.pashanhoo.common.util.fileupload;
import com.pashanhoo.file.entity.vo.FileAttribute;
import io.minio.MinioClient;
import io.minio.Result;
import io.minio.errors.*;
import io.minio.messages.DeleteError;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
......@@ -93,8 +95,8 @@ public class MinioUtil {
/**
* 删除附件
*
* @param bucketName
* @param objectName
* @param bucketName 存储桶名称
* @param objectName 附件存储路径
* @throws Exception
*/
public void removeObject(String bucketName, String objectName) throws Exception {
......@@ -102,6 +104,15 @@ public class MinioUtil {
}
/**
* 批量删除附件
* @param bucketName 存储桶名称
* @param objectNames 附件存储路径集合
*/
public Iterable batchRemove(String bucketName,Iterable<String> objectNames){
return minioClient.removeObjects(bucketName, objectNames);
}
/**
* 通过输入流上传到minio
* @param inputStream 文件输入流
* @param fileName 文件名,去除后缀名
......
......@@ -42,11 +42,15 @@ public class DgArchivesReplenishController {
@DeleteMapping("deleteDgArchivesReplenishByIds")
@ApiOperation(value = "批量删除档案补录信息")
public Result deleteDgArchivesReplenishByIds(@ApiParam("档案补录信息ID列表") @RequestParam(value = "idList") List<String> idList) {
if(dgarchivesreplenishService.removeByIds(idList)) {
return Result.ok("删除成功");
public Result deleteDgArchivesReplenishByIds(@ApiParam("档案标识码") @RequestParam(value = "bsmArchives") List<String> bsmArchives) {
try {
if(dgarchivesreplenishService.delete(bsmArchives)) {
return Result.ok("删除成功");
}
} catch (Exception e) {
return Result.exception(e.getMessage());
}
return Result.error("删除失败");
return Result.ok("删除失败");
}
@PutMapping("updateDgArchivesReplenish")
......@@ -70,4 +74,10 @@ public class DgArchivesReplenishController {
return Result.ok(dgarchivesreplenishService.searchDgArchivesReplenishList(request));
}
@GetMapping("doReplenishArchive")
@ApiOperation(value = "归档")
public Result doReplenishArchive(@ApiParam("归档id") @RequestParam String bsmModify,@ApiParam("档案标识码") @RequestParam String bsmArchive){
return Result.ok(dgarchivesreplenishService.doReplenishArchive(bsmModify,bsmArchive));
}
}
......
......@@ -8,6 +8,8 @@ import com.pashanhoo.common.Result;
import com.pashanhoo.replenish.entity.*;
import com.pashanhoo.replenish.entity.vo.*;
import java.util.List;
/**
* <p>
* 档案补录信息 服务类
......@@ -17,8 +19,9 @@ import com.pashanhoo.replenish.entity.vo.*;
* @since 2021-11-05
*/
public interface DgArchivesReplenishService extends IService<DgArchivesReplenishDO> {
/**
/**
* 新增记录
*
* @param request
* @return
*/
......@@ -26,6 +29,7 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish
/**
* 根据主键查询记录详情
*
* @param id
* @return
*/
......@@ -33,6 +37,7 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish
/**
* 修改单条记录
*
* @param request
* @return
*/
......@@ -40,8 +45,27 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish
/**
* 根据条件进行列表查询
*
* @param request
* @return
*/
*/
IPage<DgArchivesReplenishListVO> searchDgArchivesReplenishList(DgArchivesReplenishSearchRequest request);
/**
* 删除补录信息
*
* @param bsmArchives 档案标识码
* @return
*/
boolean delete(List<String> bsmArchives) throws Exception;
/**
* 补录归档
* 补录记录的状态为已归档和归档日期,一并修改档案记录的状态为在库
*
* @param bsmModify 补录标识码
* @param bsmArchive 档案标识码
* @return
*/
boolean doReplenishArchive(String bsmModify,String bsmArchive);
}
......
......@@ -4,12 +4,11 @@ package com.pashanhoo.replenish.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pashanhoo.archive.entity.DgArchivesConverter;
import com.pashanhoo.archive.entity.DgArchivesDO;
import com.pashanhoo.archive.entity.vo.AddDgArchivesRequest;
......@@ -25,9 +24,15 @@ import com.pashanhoo.business.entity.DgBusinessDO;
import com.pashanhoo.business.entity.vo.AddDgBusinessRequest;
import com.pashanhoo.business.entity.vo.UpdateDgBusinessRequest;
import com.pashanhoo.business.service.DgBusinessService;
import com.pashanhoo.common.Result;
import com.pashanhoo.catalog.entity.DgArchivesCatalogDO;
import com.pashanhoo.catalog.service.DgArchivesCatalogService;
import com.pashanhoo.common.util.SysCode.SysCodeUtil;
import com.pashanhoo.common.util.SysCode.SysCodeVO;
import com.pashanhoo.common.util.fileupload.MinioConfig;
import com.pashanhoo.common.util.fileupload.MinioUtil;
import com.pashanhoo.file.entity.DgFileDO;
import com.pashanhoo.file.service.DgFileService;
import com.pashanhoo.archive.entity.ArchiveStatus;
import com.pashanhoo.replenish.entity.DgArchivesReplenishConverter;
import com.pashanhoo.replenish.entity.DgArchivesReplenishDO;
import com.pashanhoo.replenish.entity.vo.*;
......@@ -37,8 +42,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
......@@ -78,10 +84,18 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
@Autowired
SysCodeUtil sysCodeUtil;
/**
* 案卷基本信息状态补录中
*/
private final Integer REPLENISHING = 2;
@Autowired
DgArchivesCatalogService dgArchivesCatalogService;
@Autowired
DgFileService dgFileService;
@Autowired
MinioUtil minioUtil;
@Autowired
MinioConfig minioConfig;
/**
* 新增记录
......@@ -99,7 +113,7 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
//案卷基本信息
AddDgArchivesRequest addDgArchivesRequest = request.getAddDgArchivesRequest();
addDgArchivesRequest.setBsmArchives(bsmArchive);
addDgArchivesRequest.setDazt(REPLENISHING);
addDgArchivesRequest.setDazt(Integer.valueOf(ArchiveStatus.REPLENISHING.getCode()));
DgArchivesDO dgArchivesDO = dgArchivesConverter.addRequest2DO(addDgArchivesRequest);
dgArchivesService.save(dgArchivesDO);
......@@ -180,7 +194,7 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
DgBusinessDO dgBusinessDO = dgBusinessConverter.updateRequest2DO(updateDgBusinessRequest);
QueryWrapper<DgBusinessDO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DgBusinessDO::getBsmArchives, bsmArchives);
return dgBusinessService.update(dgBusinessDO,queryWrapper);
return dgBusinessService.update(dgBusinessDO, queryWrapper);
}
......@@ -197,4 +211,89 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
return dgarchivesreplenishMapper.search(pageParam, request);
}
/**
* 删除补录信息和对应档案资料
*
* @param bsmArchives 档案标识码
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delete(List<String> bsmArchives) throws Exception {
//删除补录记录
QueryWrapper<DgArchivesReplenishDO> replenishWrapper = new QueryWrapper<>();
replenishWrapper.lambda().in(DgArchivesReplenishDO::getBsmArchives, bsmArchives);
this.remove(replenishWrapper);
//删除不动产信息
QueryWrapper<DgBdcdyDO> bdcdyWrapper = new QueryWrapper<>();
bdcdyWrapper.lambda().in(DgBdcdyDO::getBsmArchives, bsmArchives);
dgBdcdyService.remove(bdcdyWrapper);
//删除档案业务信息
QueryWrapper<DgBusinessDO> businessWrapper = new QueryWrapper<>();
businessWrapper.lambda().in(DgBusinessDO::getBsmArchives, bsmArchives);
dgBusinessService.remove(businessWrapper);
//删除卷内目录信息
QueryWrapper<DgArchivesCatalogDO> catalogWrapper = new QueryWrapper<>();
catalogWrapper.lambda().in(DgArchivesCatalogDO::getBsmArchives, bsmArchives);
List<DgArchivesCatalogDO> catalogList = dgArchivesCatalogService.list(catalogWrapper);
// TODO: 2021/11/16/0016 删除卷内目录操作移动到删除附件表之后
//删除附件表信息
List<String> bsmCatalogs = new ArrayList<>();
for (DgArchivesCatalogDO dgArchivesCatalogDO : catalogList) {
bsmCatalogs.add(dgArchivesCatalogDO.getBsmCatalog());
}
QueryWrapper<DgFileDO> fileWrapper = new QueryWrapper<>();
fileWrapper.lambda().select(DgFileDO::getFjurl).in(DgFileDO::getBsmCatalog, bsmCatalogs);
//获取文件存储路径
List<DgFileDO> files = dgFileService.list(fileWrapper);
QueryWrapper<DgFileDO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().in(DgFileDO::getBsmCatalog, bsmCatalogs);
dgFileService.remove(deleteWrapper);
//删除卷内目录.测试环境主外键约束需要先删除附件表再删除卷内目录表.所以代码移动到这里
dgArchivesCatalogService.remove(catalogWrapper);
//删除档案信息表
QueryWrapper<DgArchivesDO> archivesWrapper = new QueryWrapper<>();
archivesWrapper.lambda().in(DgArchivesDO::getBsmArchives, bsmArchives);
boolean flag = dgArchivesService.remove(archivesWrapper);
//删除文件服务器附件
List<String> fileUrls = files.stream().map(DgFileDO::getFjurl).collect(Collectors.toList());
for (String fileUrl : fileUrls) {
minioUtil.removeObject(minioConfig.getBucket(), fileUrl);
}
return flag;
}
/**
* 补录归档
* 补录记录的状态为已归档和归档日期,一并修改档案记录的状态为在库
*
* @param bsmModify 补录标识码
* @param bsmArchive 档案标识码
* @return
*/
@Override
public boolean doReplenishArchive(String bsmModify,String bsmArchive) {
//更新补录表归档信息
UpdateWrapper<DgArchivesReplenishDO> replenishUpdateWrapper = new UpdateWrapper<>();
DgArchivesReplenishDO replenishDO = new DgArchivesReplenishDO();
replenishDO.setBsmModify(bsmModify);
replenishUpdateWrapper.lambda().set(DgArchivesReplenishDO::getCreateTime, DateUtil.date()).set(DgArchivesReplenishDO::getState, "2").eq(DgArchivesReplenishDO::getBsmModify, bsmModify);
this.update(replenishDO,replenishUpdateWrapper);
//更新档案表状态
UpdateWrapper<DgArchivesDO> archiveUpdateWrapper = new UpdateWrapper<>();
DgArchivesDO archivesDO = new DgArchivesDO();
archivesDO.setBsmArchives(bsmArchive);
archiveUpdateWrapper.lambda().set(DgArchivesDO::getDazt, ArchiveStatus.STORED.getCode()).eq(DgArchivesDO::getBsmArchives, bsmArchive);
return dgArchivesService.update(archivesDO, archiveUpdateWrapper);
}
}
......