|
@@ -18,6 +18,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -30,6 +32,9 @@ public class ClassDefChangeRecordService {
|
|
|
ClassDefService classDefService;
|
|
|
|
|
|
@Autowired
|
|
|
+ RwdeditVersionService rwdeditVersionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
CriteriaUtils criteriaUtils;
|
|
|
|
|
|
private List<BooleanExpression> parse(ObjectNode object) {
|
|
@@ -91,7 +96,7 @@ public class ClassDefChangeRecordService {
|
|
|
param.setParentCode(classDef.getParentCode());
|
|
|
}
|
|
|
QClassDefChangeRecord qt = QClassDefChangeRecord.classDefChangeRecord;
|
|
|
- BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1));
|
|
|
+ BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1)).and(qt.version.isNull());
|
|
|
Iterable<ClassDefChangeRecord> all = repository.findAll(ex);
|
|
|
List<ClassDefChangeRecord> list = new ArrayList<>();
|
|
|
all.forEach(list::add);
|
|
@@ -117,59 +122,72 @@ public class ClassDefChangeRecordService {
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
- public MapResponse update(ClassDefChangeRecord param) {
|
|
|
+ public MapResponse update(List<ClassDefChangeRecord> list) {
|
|
|
MapResponse response = new MapResponse();
|
|
|
- if (param.getId() == null) {
|
|
|
- response.setFail("id is required");
|
|
|
- return response;
|
|
|
- }
|
|
|
- if (param.getState() == null) {
|
|
|
- response.setFail("state is required");
|
|
|
- return response;
|
|
|
- }
|
|
|
- List<ClassDefChangeRecord> data = repository.findAllById(Arrays.asList(param.getId()));
|
|
|
- if (data.size() == 0) {
|
|
|
- response.setFail("id not exists");
|
|
|
- return response;
|
|
|
- }
|
|
|
- ClassDefChangeRecord changeRecord = data.get(0);
|
|
|
- changeRecord.setState(param.getState());
|
|
|
- if (param.getState() == 2) {
|
|
|
- changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
- changeRecord.setConfirmTime(new Date());
|
|
|
- }
|
|
|
- if (param.getState() == 3) {
|
|
|
- changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
- changeRecord.setPublishTime(new Date());
|
|
|
- }
|
|
|
- if (param.getState() == 4) {
|
|
|
- changeRecord.setFinishTime(new Date());
|
|
|
+ List<Integer> idList = list.stream().map(ClassDefChangeRecord::getId).collect(Collectors.toList());
|
|
|
+ List<ClassDefChangeRecord> data = repository.findAllById(idList);
|
|
|
+ Map<Integer, ClassDefChangeRecord> dataMap = data.stream().collect(Collectors.toMap(ClassDefChangeRecord::getId, Function.identity()));
|
|
|
+ for (ClassDefChangeRecord param : list) {
|
|
|
+ ClassDefChangeRecord changeRecord = dataMap.get(param.getId());
|
|
|
+ if (changeRecord.getState() == 1) {
|
|
|
+ if (param.getAliasCode() != null) {
|
|
|
+ changeRecord.setAliasCode(param.getAliasCode());
|
|
|
+ }
|
|
|
+ if (param.getAliasName() != null) {
|
|
|
+ changeRecord.setAliasName(param.getAliasName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (param.getState() != null) {
|
|
|
+ switch (param.getState()) {
|
|
|
+ case 2: {
|
|
|
+ changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
+ changeRecord.setConfirmTime(new Date());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 3: {
|
|
|
+ changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
+ changeRecord.setPublishTime(new Date());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 4: {
|
|
|
+ changeRecord.setFinishTime(new Date());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default: {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- repository.save(changeRecord);
|
|
|
- response.add("id", param.getId());
|
|
|
+ repository.saveAll(data);
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
public MapResponse addVersion(String version, List<Integer> idList) {
|
|
|
MapResponse response = new MapResponse();
|
|
|
+ JacksonCriteria criteria = JacksonCriteria.newInstance();
|
|
|
+ criteria.add("version", version);
|
|
|
+ Long count = rwdeditVersionService.query(criteria).getCount();
|
|
|
+ if (count == 0) {
|
|
|
+ response.setFail("version not exists");
|
|
|
+ return response;
|
|
|
+ }
|
|
|
Integer num = repository.addVersion(version, idList);
|
|
|
response.setMessage("update num: " + num);
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
- public MapResponse batchUpdateState(String version, Integer state) {
|
|
|
- MapResponse response = new MapResponse();
|
|
|
- Integer num = repository.batchUpdateStateByVersion(version, state);
|
|
|
- response.setMessage("update num: " + num);
|
|
|
- return response;
|
|
|
- }
|
|
|
-
|
|
|
- @Transactional
|
|
|
public MapResponse delete(List<Integer> param) {
|
|
|
MapResponse response = new MapResponse();
|
|
|
List<ClassDefChangeRecord> list = repository.findAllById(param);
|
|
|
+ for (ClassDefChangeRecord changeRecord : list) {
|
|
|
+ if (changeRecord.getState() != 1 || changeRecord.getVersion() != null) {
|
|
|
+ response.setFail(changeRecord.getId() + " 不可删除!");
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ }
|
|
|
repository.deleteAll(list);
|
|
|
return response;
|
|
|
}
|