9878f474 by 荆蔚杰

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

补录归档
1 parent 4d529b37
1 package com.pashanhoo.archive.entity;
2
3 public enum ArchiveStatus {
4 //档案状态(1:正在接收;2:正在补录;3:正在修改;4:在库;5:正在销毁;6:已销毁;7:正在借阅;8:已借阅)
5 /**
6 * 正在接收
7 */
8 RECEIVING("1","正在接收"),
9 /**
10 * 正在补录
11 */
12 REPLENISHING("2","正在补录"),
13 /**
14 * 正在修改
15 */
16 MODIFYING("3","正在修改"),
17 /**
18 * 在库
19 */
20 STORED("4","在库"),
21 /**
22 * 正在销毁
23 */
24 DESTROYING("5","正在销毁"),
25 /**
26 * 已销毁
27 */
28 DESTROYED("6","已销毁"),
29 /**
30 * 正在借阅
31 */
32 LENDING("7","正在借阅"),
33 /**
34 * 已借阅
35 */
36 LENDED("8","已借阅");
37
38 private String code;
39 private String description;
40
41 ArchiveStatus(String code,String description) {
42 this.code = code;
43 this.description = description;
44 }
45
46 public String getCode() {
47 return this.code;
48 }
49 }
...@@ -2,7 +2,9 @@ package com.pashanhoo.common.util.fileupload; ...@@ -2,7 +2,9 @@ package com.pashanhoo.common.util.fileupload;
2 2
3 import com.pashanhoo.file.entity.vo.FileAttribute; 3 import com.pashanhoo.file.entity.vo.FileAttribute;
4 import io.minio.MinioClient; 4 import io.minio.MinioClient;
5 import io.minio.Result;
5 import io.minio.errors.*; 6 import io.minio.errors.*;
7 import io.minio.messages.DeleteError;
6 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Component; 9 import org.springframework.stereotype.Component;
8 import org.springframework.util.Assert; 10 import org.springframework.util.Assert;
...@@ -93,8 +95,8 @@ public class MinioUtil { ...@@ -93,8 +95,8 @@ public class MinioUtil {
93 /** 95 /**
94 * 删除附件 96 * 删除附件
95 * 97 *
96 * @param bucketName 98 * @param bucketName 存储桶名称
97 * @param objectName 99 * @param objectName 附件存储路径
98 * @throws Exception 100 * @throws Exception
99 */ 101 */
100 public void removeObject(String bucketName, String objectName) throws Exception { 102 public void removeObject(String bucketName, String objectName) throws Exception {
...@@ -102,6 +104,15 @@ public class MinioUtil { ...@@ -102,6 +104,15 @@ public class MinioUtil {
102 } 104 }
103 105
104 /** 106 /**
107 * 批量删除附件
108 * @param bucketName 存储桶名称
109 * @param objectNames 附件存储路径集合
110 */
111 public Iterable batchRemove(String bucketName,Iterable<String> objectNames){
112 return minioClient.removeObjects(bucketName, objectNames);
113 }
114
115 /**
105 * 通过输入流上传到minio 116 * 通过输入流上传到minio
106 * @param inputStream 文件输入流 117 * @param inputStream 文件输入流
107 * @param fileName 文件名,去除后缀名 118 * @param fileName 文件名,去除后缀名
......
...@@ -42,11 +42,15 @@ public class DgArchivesReplenishController { ...@@ -42,11 +42,15 @@ public class DgArchivesReplenishController {
42 42
43 @DeleteMapping("deleteDgArchivesReplenishByIds") 43 @DeleteMapping("deleteDgArchivesReplenishByIds")
44 @ApiOperation(value = "批量删除档案补录信息") 44 @ApiOperation(value = "批量删除档案补录信息")
45 public Result deleteDgArchivesReplenishByIds(@ApiParam("档案补录信息ID列表") @RequestParam(value = "idList") List<String> idList) { 45 public Result deleteDgArchivesReplenishByIds(@ApiParam("档案标识码") @RequestParam(value = "bsmArchives") List<String> bsmArchives) {
46 if(dgarchivesreplenishService.removeByIds(idList)) { 46 try {
47 return Result.ok("删除成功"); 47 if(dgarchivesreplenishService.delete(bsmArchives)) {
48 return Result.ok("删除成功");
49 }
50 } catch (Exception e) {
51 return Result.exception(e.getMessage());
48 } 52 }
49 return Result.error("删除失败"); 53 return Result.ok("删除失败");
50 } 54 }
51 55
52 @PutMapping("updateDgArchivesReplenish") 56 @PutMapping("updateDgArchivesReplenish")
...@@ -70,4 +74,10 @@ public class DgArchivesReplenishController { ...@@ -70,4 +74,10 @@ public class DgArchivesReplenishController {
70 74
71 return Result.ok(dgarchivesreplenishService.searchDgArchivesReplenishList(request)); 75 return Result.ok(dgarchivesreplenishService.searchDgArchivesReplenishList(request));
72 } 76 }
77
78 @GetMapping("doReplenishArchive")
79 @ApiOperation(value = "归档")
80 public Result doReplenishArchive(@ApiParam("归档id") @RequestParam String bsmModify,@ApiParam("档案标识码") @RequestParam String bsmArchive){
81 return Result.ok(dgarchivesreplenishService.doReplenishArchive(bsmModify,bsmArchive));
82 }
73 } 83 }
......
...@@ -8,6 +8,8 @@ import com.pashanhoo.common.Result; ...@@ -8,6 +8,8 @@ import com.pashanhoo.common.Result;
8 import com.pashanhoo.replenish.entity.*; 8 import com.pashanhoo.replenish.entity.*;
9 import com.pashanhoo.replenish.entity.vo.*; 9 import com.pashanhoo.replenish.entity.vo.*;
10 10
11 import java.util.List;
12
11 /** 13 /**
12 * <p> 14 * <p>
13 * 档案补录信息 服务类 15 * 档案补录信息 服务类
...@@ -17,8 +19,9 @@ import com.pashanhoo.replenish.entity.vo.*; ...@@ -17,8 +19,9 @@ import com.pashanhoo.replenish.entity.vo.*;
17 * @since 2021-11-05 19 * @since 2021-11-05
18 */ 20 */
19 public interface DgArchivesReplenishService extends IService<DgArchivesReplenishDO> { 21 public interface DgArchivesReplenishService extends IService<DgArchivesReplenishDO> {
20 /** 22 /**
21 * 新增记录 23 * 新增记录
24 *
22 * @param request 25 * @param request
23 * @return 26 * @return
24 */ 27 */
...@@ -26,6 +29,7 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish ...@@ -26,6 +29,7 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish
26 29
27 /** 30 /**
28 * 根据主键查询记录详情 31 * 根据主键查询记录详情
32 *
29 * @param id 33 * @param id
30 * @return 34 * @return
31 */ 35 */
...@@ -33,6 +37,7 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish ...@@ -33,6 +37,7 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish
33 37
34 /** 38 /**
35 * 修改单条记录 39 * 修改单条记录
40 *
36 * @param request 41 * @param request
37 * @return 42 * @return
38 */ 43 */
...@@ -40,8 +45,27 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish ...@@ -40,8 +45,27 @@ public interface DgArchivesReplenishService extends IService<DgArchivesReplenish
40 45
41 /** 46 /**
42 * 根据条件进行列表查询 47 * 根据条件进行列表查询
48 *
43 * @param request 49 * @param request
44 * @return 50 * @return
45 */ 51 */
46 IPage<DgArchivesReplenishListVO> searchDgArchivesReplenishList(DgArchivesReplenishSearchRequest request); 52 IPage<DgArchivesReplenishListVO> searchDgArchivesReplenishList(DgArchivesReplenishSearchRequest request);
53
54 /**
55 * 删除补录信息
56 *
57 * @param bsmArchives 档案标识码
58 * @return
59 */
60 boolean delete(List<String> bsmArchives) throws Exception;
61
62 /**
63 * 补录归档
64 * 补录记录的状态为已归档和归档日期,一并修改档案记录的状态为在库
65 *
66 * @param bsmModify 补录标识码
67 * @param bsmArchive 档案标识码
68 * @return
69 */
70 boolean doReplenishArchive(String bsmModify,String bsmArchive);
47 } 71 }
......
...@@ -4,12 +4,11 @@ package com.pashanhoo.replenish.service.impl; ...@@ -4,12 +4,11 @@ package com.pashanhoo.replenish.service.impl;
4 import cn.hutool.core.date.DateTime; 4 import cn.hutool.core.date.DateTime;
5 import cn.hutool.core.date.DateUtil; 5 import cn.hutool.core.date.DateUtil;
6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
7 import com.baomidou.mybatisplus.core.metadata.IPage; 8 import com.baomidou.mybatisplus.core.metadata.IPage;
8 import com.baomidou.mybatisplus.core.toolkit.IdWorker; 9 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
9 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 10 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
10 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 11 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
11 import com.github.pagehelper.PageHelper;
12 import com.github.pagehelper.PageInfo;
13 import com.pashanhoo.archive.entity.DgArchivesConverter; 12 import com.pashanhoo.archive.entity.DgArchivesConverter;
14 import com.pashanhoo.archive.entity.DgArchivesDO; 13 import com.pashanhoo.archive.entity.DgArchivesDO;
15 import com.pashanhoo.archive.entity.vo.AddDgArchivesRequest; 14 import com.pashanhoo.archive.entity.vo.AddDgArchivesRequest;
...@@ -25,9 +24,15 @@ import com.pashanhoo.business.entity.DgBusinessDO; ...@@ -25,9 +24,15 @@ import com.pashanhoo.business.entity.DgBusinessDO;
25 import com.pashanhoo.business.entity.vo.AddDgBusinessRequest; 24 import com.pashanhoo.business.entity.vo.AddDgBusinessRequest;
26 import com.pashanhoo.business.entity.vo.UpdateDgBusinessRequest; 25 import com.pashanhoo.business.entity.vo.UpdateDgBusinessRequest;
27 import com.pashanhoo.business.service.DgBusinessService; 26 import com.pashanhoo.business.service.DgBusinessService;
28 import com.pashanhoo.common.Result; 27 import com.pashanhoo.catalog.entity.DgArchivesCatalogDO;
28 import com.pashanhoo.catalog.service.DgArchivesCatalogService;
29 import com.pashanhoo.common.util.SysCode.SysCodeUtil; 29 import com.pashanhoo.common.util.SysCode.SysCodeUtil;
30 import com.pashanhoo.common.util.SysCode.SysCodeVO; 30 import com.pashanhoo.common.util.SysCode.SysCodeVO;
31 import com.pashanhoo.common.util.fileupload.MinioConfig;
32 import com.pashanhoo.common.util.fileupload.MinioUtil;
33 import com.pashanhoo.file.entity.DgFileDO;
34 import com.pashanhoo.file.service.DgFileService;
35 import com.pashanhoo.archive.entity.ArchiveStatus;
31 import com.pashanhoo.replenish.entity.DgArchivesReplenishConverter; 36 import com.pashanhoo.replenish.entity.DgArchivesReplenishConverter;
32 import com.pashanhoo.replenish.entity.DgArchivesReplenishDO; 37 import com.pashanhoo.replenish.entity.DgArchivesReplenishDO;
33 import com.pashanhoo.replenish.entity.vo.*; 38 import com.pashanhoo.replenish.entity.vo.*;
...@@ -37,8 +42,9 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -37,8 +42,9 @@ import org.springframework.beans.factory.annotation.Autowired;
37 import org.springframework.stereotype.Service; 42 import org.springframework.stereotype.Service;
38 import org.springframework.transaction.annotation.Transactional; 43 import org.springframework.transaction.annotation.Transactional;
39 44
40 import java.util.Date; 45 import java.util.ArrayList;
41 import java.util.List; 46 import java.util.List;
47 import java.util.stream.Collectors;
42 48
43 /** 49 /**
44 * <p> 50 * <p>
...@@ -78,10 +84,18 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen ...@@ -78,10 +84,18 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
78 @Autowired 84 @Autowired
79 SysCodeUtil sysCodeUtil; 85 SysCodeUtil sysCodeUtil;
80 86
81 /** 87 @Autowired
82 * 案卷基本信息状态补录中 88 DgArchivesCatalogService dgArchivesCatalogService;
83 */ 89
84 private final Integer REPLENISHING = 2; 90 @Autowired
91 DgFileService dgFileService;
92
93 @Autowired
94 MinioUtil minioUtil;
95
96 @Autowired
97 MinioConfig minioConfig;
98
85 99
86 /** 100 /**
87 * 新增记录 101 * 新增记录
...@@ -99,7 +113,7 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen ...@@ -99,7 +113,7 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
99 //案卷基本信息 113 //案卷基本信息
100 AddDgArchivesRequest addDgArchivesRequest = request.getAddDgArchivesRequest(); 114 AddDgArchivesRequest addDgArchivesRequest = request.getAddDgArchivesRequest();
101 addDgArchivesRequest.setBsmArchives(bsmArchive); 115 addDgArchivesRequest.setBsmArchives(bsmArchive);
102 addDgArchivesRequest.setDazt(REPLENISHING); 116 addDgArchivesRequest.setDazt(Integer.valueOf(ArchiveStatus.REPLENISHING.getCode()));
103 DgArchivesDO dgArchivesDO = dgArchivesConverter.addRequest2DO(addDgArchivesRequest); 117 DgArchivesDO dgArchivesDO = dgArchivesConverter.addRequest2DO(addDgArchivesRequest);
104 dgArchivesService.save(dgArchivesDO); 118 dgArchivesService.save(dgArchivesDO);
105 119
...@@ -180,7 +194,7 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen ...@@ -180,7 +194,7 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
180 DgBusinessDO dgBusinessDO = dgBusinessConverter.updateRequest2DO(updateDgBusinessRequest); 194 DgBusinessDO dgBusinessDO = dgBusinessConverter.updateRequest2DO(updateDgBusinessRequest);
181 QueryWrapper<DgBusinessDO> queryWrapper = new QueryWrapper<>(); 195 QueryWrapper<DgBusinessDO> queryWrapper = new QueryWrapper<>();
182 queryWrapper.lambda().eq(DgBusinessDO::getBsmArchives, bsmArchives); 196 queryWrapper.lambda().eq(DgBusinessDO::getBsmArchives, bsmArchives);
183 return dgBusinessService.update(dgBusinessDO,queryWrapper); 197 return dgBusinessService.update(dgBusinessDO, queryWrapper);
184 198
185 } 199 }
186 200
...@@ -197,4 +211,89 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen ...@@ -197,4 +211,89 @@ public class DgArchivesReplenishServiceImpl extends ServiceImpl<DgArchivesReplen
197 return dgarchivesreplenishMapper.search(pageParam, request); 211 return dgarchivesreplenishMapper.search(pageParam, request);
198 } 212 }
199 213
214 /**
215 * 删除补录信息和对应档案资料
216 *
217 * @param bsmArchives 档案标识码
218 * @return
219 */
220 @Override
221 @Transactional(rollbackFor = Exception.class)
222 public boolean delete(List<String> bsmArchives) throws Exception {
223 //删除补录记录
224 QueryWrapper<DgArchivesReplenishDO> replenishWrapper = new QueryWrapper<>();
225 replenishWrapper.lambda().in(DgArchivesReplenishDO::getBsmArchives, bsmArchives);
226 this.remove(replenishWrapper);
227
228 //删除不动产信息
229 QueryWrapper<DgBdcdyDO> bdcdyWrapper = new QueryWrapper<>();
230 bdcdyWrapper.lambda().in(DgBdcdyDO::getBsmArchives, bsmArchives);
231 dgBdcdyService.remove(bdcdyWrapper);
232
233 //删除档案业务信息
234 QueryWrapper<DgBusinessDO> businessWrapper = new QueryWrapper<>();
235 businessWrapper.lambda().in(DgBusinessDO::getBsmArchives, bsmArchives);
236 dgBusinessService.remove(businessWrapper);
237
238 //删除卷内目录信息
239 QueryWrapper<DgArchivesCatalogDO> catalogWrapper = new QueryWrapper<>();
240 catalogWrapper.lambda().in(DgArchivesCatalogDO::getBsmArchives, bsmArchives);
241 List<DgArchivesCatalogDO> catalogList = dgArchivesCatalogService.list(catalogWrapper);
242 // TODO: 2021/11/16/0016 删除卷内目录操作移动到删除附件表之后
243
244 //删除附件表信息
245 List<String> bsmCatalogs = new ArrayList<>();
246 for (DgArchivesCatalogDO dgArchivesCatalogDO : catalogList) {
247 bsmCatalogs.add(dgArchivesCatalogDO.getBsmCatalog());
248 }
249 QueryWrapper<DgFileDO> fileWrapper = new QueryWrapper<>();
250 fileWrapper.lambda().select(DgFileDO::getFjurl).in(DgFileDO::getBsmCatalog, bsmCatalogs);
251 //获取文件存储路径
252 List<DgFileDO> files = dgFileService.list(fileWrapper);
253 QueryWrapper<DgFileDO> deleteWrapper = new QueryWrapper<>();
254 deleteWrapper.lambda().in(DgFileDO::getBsmCatalog, bsmCatalogs);
255 dgFileService.remove(deleteWrapper);
256 //删除卷内目录.测试环境主外键约束需要先删除附件表再删除卷内目录表.所以代码移动到这里
257 dgArchivesCatalogService.remove(catalogWrapper);
258
259
260 //删除档案信息表
261 QueryWrapper<DgArchivesDO> archivesWrapper = new QueryWrapper<>();
262 archivesWrapper.lambda().in(DgArchivesDO::getBsmArchives, bsmArchives);
263 boolean flag = dgArchivesService.remove(archivesWrapper);
264
265 //删除文件服务器附件
266 List<String> fileUrls = files.stream().map(DgFileDO::getFjurl).collect(Collectors.toList());
267 for (String fileUrl : fileUrls) {
268 minioUtil.removeObject(minioConfig.getBucket(), fileUrl);
269 }
270
271 return flag;
272 }
273
274 /**
275 * 补录归档
276 * 补录记录的状态为已归档和归档日期,一并修改档案记录的状态为在库
277 *
278 * @param bsmModify 补录标识码
279 * @param bsmArchive 档案标识码
280 * @return
281 */
282 @Override
283 public boolean doReplenishArchive(String bsmModify,String bsmArchive) {
284 //更新补录表归档信息
285 UpdateWrapper<DgArchivesReplenishDO> replenishUpdateWrapper = new UpdateWrapper<>();
286 DgArchivesReplenishDO replenishDO = new DgArchivesReplenishDO();
287 replenishDO.setBsmModify(bsmModify);
288 replenishUpdateWrapper.lambda().set(DgArchivesReplenishDO::getCreateTime, DateUtil.date()).set(DgArchivesReplenishDO::getState, "2").eq(DgArchivesReplenishDO::getBsmModify, bsmModify);
289 this.update(replenishDO,replenishUpdateWrapper);
290
291 //更新档案表状态
292 UpdateWrapper<DgArchivesDO> archiveUpdateWrapper = new UpdateWrapper<>();
293 DgArchivesDO archivesDO = new DgArchivesDO();
294 archivesDO.setBsmArchives(bsmArchive);
295 archiveUpdateWrapper.lambda().set(DgArchivesDO::getDazt, ArchiveStatus.STORED.getCode()).eq(DgArchivesDO::getBsmArchives, bsmArchive);
296 return dgArchivesService.update(archivesDO, archiveUpdateWrapper);
297 }
298
200 } 299 }
......