DgArchivesModifyServiceImpl.java
9.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
package com.pashanhoo.modify.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.lang.UUID;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil;
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.service.impl.ServiceImpl;
import com.pashanhoo.archive.entity.ArchiveStatus;
import com.pashanhoo.archive.entity.DgArchivesDO;
import com.pashanhoo.archive.service.DgArchivesService;
import com.pashanhoo.bdcdy.entity.DgBdcdyDO;
import com.pashanhoo.bdcdy.service.DgBdcdyService;
import com.pashanhoo.business.entity.DgBusinessDO;
import com.pashanhoo.business.service.DgBusinessService;
import com.pashanhoo.catalog.entity.DgArchivesCatalogDO;
import com.pashanhoo.catalog.service.DgArchivesCatalogService;
import com.pashanhoo.file.entity.DgFileDO;
import com.pashanhoo.file.service.DgFileService;
import com.pashanhoo.modify.entity.DgArchivesModifyConverter;
import com.pashanhoo.modify.entity.DgModifyDO;
import com.pashanhoo.modify.entity.vo.*;
import com.pashanhoo.modify.mapper.DgArchivesModifyMapper;
import com.pashanhoo.modify.service.DgArchivesModifyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 档案修改信息 服务实现类
* </p>
*
* @author
* @since 2021-11-05
*/
@Service
public class DgArchivesModifyServiceImpl extends ServiceImpl<DgArchivesModifyMapper, DgModifyDO> implements DgArchivesModifyService {
@Autowired
private DgArchivesModifyConverter dgarchivesmodifyConverter;
@Autowired
private DgArchivesModifyMapper dgarchivesmodifyMapper;
@Autowired
DgArchivesService archivesService;
@Autowired
DgBusinessService businessService;
@Autowired
DgBdcdyService bdcdyService;
@Autowired
DgArchivesCatalogService catalogService;
@Autowired
DgFileService fileService;
/**
* 新增记录
* 1.档案修改记录并把原有的档案信息存入clob字段
* 2.修改案卷基本信息状态为正在修改
*
* @param bsmArchive
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean insertDgArchivesModify(String bsmArchive) {
//获取案卷基本信息
DgArchivesDO archive = archivesService.getById(bsmArchive);
//获取业务信息
QueryWrapper<DgBusinessDO> businessWrapper = new QueryWrapper<>();
businessWrapper.lambda().eq(DgBusinessDO::getBsmArchives, bsmArchive);
DgBusinessDO business = businessService.getOne(businessWrapper);
//获取不动产信息
QueryWrapper<DgBdcdyDO> bdcdyWrapper = new QueryWrapper<>();
bdcdyWrapper.lambda().eq(DgBdcdyDO::getBsmArchives, bsmArchive);
List<DgBdcdyDO> bdcdyList = bdcdyService.list(bdcdyWrapper);
//获取卷内目录
QueryWrapper<DgArchivesCatalogDO> catalogWrapper = new QueryWrapper<>();
catalogWrapper.lambda().eq(DgArchivesCatalogDO::getBsmArchives, bsmArchive);
List<DgArchivesCatalogDO> catalogList = catalogService.list(catalogWrapper);
//获取案卷附件
List<String> catalogIdList = catalogList.stream().map(DgArchivesCatalogDO::getBsmCatalog).collect(Collectors.toList());
QueryWrapper<DgFileDO> fileWrapper = new QueryWrapper<>();
fileWrapper.lambda().in(DgFileDO::getBsmCatalog, catalogIdList);
List<DgFileDO> fileList = fileService.list(fileWrapper);
ModifyRecord modifyRecord = new ModifyRecord();
modifyRecord.setArchivesDO(archive);
modifyRecord.setDgBusinessDO(business);
modifyRecord.setDgBdcdyDOList(bdcdyList);
modifyRecord.setCatalogDOList(catalogList);
modifyRecord.setDgFileDOList(fileList);
JSONConfig jsonConfig = JSONConfig.create().setIgnoreNullValue(false).setOrder(true).setDateFormat("yyyy-MM-dd HH:mm:ss");
JSON modifyRecordJson = JSONUtil.parse(modifyRecord, jsonConfig);
String modifyRecordStr = JSONUtil.toJsonStr(modifyRecordJson);
DgModifyDO modifyDO = new DgModifyDO();
modifyDO.setBsmArchives(bsmArchive);
modifyDO.setXgbh(IdWorker.get32UUID());
modifyDO.setYdaxx(modifyRecordStr);
// TODO: 2021/11/23/0023 暂时填null
modifyDO.setXgnr(null);
modifyDO.setCreateTime(DateTime.now());
// TODO: 2021/11/23/0023 暂时填null
modifyDO.setCreater(null);
modifyDO.setState("1");
modifyDO.setGdsj(null);
//修改档案状态
UpdateWrapper<DgArchivesDO> archiveUpdateWrapper = new UpdateWrapper<>();
archiveUpdateWrapper.lambda().set(DgArchivesDO::getDazt, ArchiveStatus.MODIFYING.getCode()).eq(DgArchivesDO::getBsmArchives,bsmArchive);
archivesService.update(archiveUpdateWrapper);
return this.save(modifyDO);
}
/**
* 根据主键查询记录详情
*
* @param id
* @return
*/
@Override
public DgArchivesModifyDetailVO getDgArchivesModifyDetailById(String id) {
DgModifyDO dgarchivesmodifyDO = this.getById(id);
return dgarchivesmodifyConverter.do2DetailVO(dgarchivesmodifyDO);
}
/**
* 修改记录状态为已归档和归档日期,一并修改档案记录的状态为在库
*
* @param request
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateDgArchivesModify(UpdateDgArchivesModifyRequest request) {
DgModifyDO dgarchivesmodifyDO = dgarchivesmodifyConverter.updateRequest2DO(request);
UpdateWrapper<DgModifyDO> modifyWrapper = new UpdateWrapper<>();
modifyWrapper.lambda().set(DgModifyDO::getState, "2").set(DgModifyDO::getGdsj, DateTime.now());
this.update(dgarchivesmodifyDO, modifyWrapper);
//修改档案记录状态
UpdateWrapper<DgArchivesDO> archivesWrapper = new UpdateWrapper<>();
archivesWrapper.lambda().set(DgArchivesDO::getDazt, ArchiveStatus.STORED.getCode()).eq(DgArchivesDO::getBsmArchives, request.getBsmArchives());
return archivesService.update(archivesWrapper);
}
/**
* 根据条件进行列表查询
*
* @param request
* @return
*/
@Override
public IPage<DgArchivesModifyListVO> searchDgArchivesModifyList(DgArchivesModifySearchRequest request) {
IPage<DgArchivesModifyListVO> pageParam = new Page<>(request.getCurrentPage(), request.getPageSize());
IPage<DgArchivesModifyListVO> list = dgarchivesmodifyMapper.searchDgArchivesModifyList(pageParam, request);
return list;
}
/**
* 一个档案对应的修改列表查询
*
* @param bsmArchive
* @return
*/
@Override
public List<DgArchivesModifyDetailVO> getArchiveWithModify(String bsmArchive) {
QueryWrapper<DgModifyDO> modifyWrapper = new QueryWrapper<>();
modifyWrapper.lambda().eq(DgModifyDO::getBsmArchives, bsmArchive);
List<DgModifyDO> modifyDOS = this.list(modifyWrapper);
return dgarchivesmodifyConverter.doList2DetailVOList(modifyDOS);
}
/**
* 删除修改记录,并回滚档案信息和修改档案状态在库
* @param bsmModify
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delete(String bsmModify) {
//获取修改前信息
DgModifyDO modifyDO = this.getById(bsmModify);
String bsmArchives = modifyDO.getBsmArchives();
//获取原档案信息json字段
String ydaxxJson = modifyDO.getYdaxx();
ModifyRecord modifyRecord = JSONUtil.toBean(ydaxxJson, ModifyRecord.class);
//删除修改记录表数据
this.removeById(bsmModify);
//删除案卷附件
QueryWrapper<DgArchivesCatalogDO> catalogWrapper = new QueryWrapper<>();
catalogWrapper.lambda().eq(DgArchivesCatalogDO::getBsmArchives, bsmArchives);
List<DgArchivesCatalogDO> catalogDOList = catalogService.list(catalogWrapper);
List<String> bsmCatalogList = catalogDOList.stream().map(DgArchivesCatalogDO::getBsmCatalog).collect(Collectors.toList());
QueryWrapper<DgFileDO> fileWrapper = new QueryWrapper<>();
fileWrapper.lambda().in(DgFileDO::getBsmCatalog, bsmCatalogList);
fileService.remove(fileWrapper);
//插入原案卷附件
fileService.saveBatch(modifyRecord.getDgFileDOList());
//删除案卷目录
catalogService.removeByIds(bsmCatalogList);
//插入原案卷目录
catalogService.saveBatch(modifyRecord.getCatalogDOList());
//删除不动产信息
QueryWrapper<DgBdcdyDO> bdcdyWrapper = new QueryWrapper<>();
bdcdyWrapper.lambda().eq(DgBdcdyDO::getBsmArchives, bsmArchives);
bdcdyService.remove(bdcdyWrapper);
//插入原不动产信息
bdcdyService.saveBatch(modifyRecord.getDgBdcdyDOList());
//删除业务信息
QueryWrapper<DgBusinessDO> businessWrapper = new QueryWrapper<>();
businessWrapper.lambda().eq(DgBusinessDO::getBsmArchives, bsmArchives);
businessService.remove(businessWrapper);
//插入原业务信息
businessService.save(modifyRecord.getDgBusinessDO());
//更新档案信息
DgArchivesDO archivesDO = modifyRecord.getArchivesDO();
archivesDO.setDazt(ArchiveStatus.STORED.getCode());
return archivesService.updateById(archivesDO);
}
}