|
@@ -8,11 +8,14 @@ import com.persagy.common.json.JacksonMapper;
|
|
|
import com.persagy.common.web.MapResponse;
|
|
|
import com.persagy.common.web.PagedResponse;
|
|
|
import com.persagy.dmp.rwd.edit.config.web.UserUtils;
|
|
|
+import com.persagy.dmp.rwd.edit.entity.FuncidDef;
|
|
|
import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
|
|
|
import com.persagy.dmp.rwd.edit.entity.QFuncidDefChangeRecord;
|
|
|
import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
|
|
|
import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
|
|
|
+import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
|
|
|
import com.persagy.dmp.rwd.edit.repository.FuncidDefChangeRecordRepository;
|
|
|
+import com.persagy.dmp.rwd.edit.repository.FuncidDefRepository;
|
|
|
import com.persagy.dmp.rwd.enums.FuncidDataType;
|
|
|
import com.persagy.dmp.rwd.model.FuncidDefModel;
|
|
|
import com.querydsl.core.types.dsl.BooleanExpression;
|
|
@@ -39,6 +42,9 @@ public class FuncidDefChangeRecordService {
|
|
|
@Autowired
|
|
|
CriteriaUtils criteriaUtils;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ FuncidDefRepository funcidDefRepository;
|
|
|
+
|
|
|
private List<BooleanExpression> parse(ObjectNode object) {
|
|
|
List<BooleanExpression> list = new LinkedList<>();
|
|
|
QFuncidDefChangeRecord qt = QFuncidDefChangeRecord.funcidDefChangeRecord;
|
|
@@ -52,7 +58,7 @@ public class FuncidDefChangeRecordService {
|
|
|
list.addAll(CriteriaUtils.parse(qt.publishUser, object.get("publishUser")));
|
|
|
list.addAll(CriteriaUtils.parse(qt.publishTime, object.get("publishTime")));
|
|
|
list.addAll(CriteriaUtils.parse(qt.finishTime, object.get("finishTime")));
|
|
|
- list.addAll(CriteriaUtils.parse(qt.state, object.get("state")));
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.state, object.get("state"), EnumVersionState.class));
|
|
|
list.addAll(CriteriaUtils.parse(qt.version, object.get("version")));
|
|
|
return list;
|
|
|
}
|
|
@@ -75,18 +81,17 @@ public class FuncidDefChangeRecordService {
|
|
|
response.setFail("classCode is required");
|
|
|
return response;
|
|
|
}
|
|
|
- List<FuncidDefModel> funcidDefList = queryFuncidDef(code, classCode);
|
|
|
+ FuncidDefModel funcidDef = queryFuncidDef(code, classCode);
|
|
|
if (EnumOperationType.create.equals(param.getOperationType())) {
|
|
|
- if (funcidDefList.size() > 0) {
|
|
|
+ if (funcidDef != null) {
|
|
|
response.setFail("code is exists");
|
|
|
return response;
|
|
|
}
|
|
|
} else {
|
|
|
- if (funcidDefList.size() == 0) {
|
|
|
+ if (funcidDef == null) {
|
|
|
response.setFail("code not exists");
|
|
|
return response;
|
|
|
}
|
|
|
- FuncidDefModel funcidDef = funcidDefList.get(0);
|
|
|
param.setOrigCode(funcidDef.getOrigCode());
|
|
|
param.setName(funcidDef.getName());
|
|
|
if (param.getAliasCode() == null) {
|
|
@@ -122,7 +127,7 @@ public class FuncidDefChangeRecordService {
|
|
|
param.setWeakPoint(funcidDef.getWeakPoint());
|
|
|
}
|
|
|
QFuncidDefChangeRecord qt = QFuncidDefChangeRecord.funcidDefChangeRecord;
|
|
|
- BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1)).and(qt.version.isNull());
|
|
|
+ BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(EnumVersionState.INIT)).and(qt.version.isNull());
|
|
|
Iterable<FuncidDefChangeRecord> all = repository.findAll(ex);
|
|
|
List<FuncidDefChangeRecord> list = new ArrayList<>();
|
|
|
all.forEach(list::add);
|
|
@@ -132,22 +137,12 @@ public class FuncidDefChangeRecordService {
|
|
|
param.setOperationUser(UserUtils.currentUserId() + "");
|
|
|
param.setOperationTime(new Date());
|
|
|
param.setValid(true);
|
|
|
- param.setState(1);
|
|
|
+ param.setState(EnumVersionState.INIT);
|
|
|
repository.save(param);
|
|
|
response.add("id", param.getId());
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
- private List<FuncidDefModel> queryFuncidDef(String code, String classCode) {
|
|
|
- JacksonCriteria criteria = JacksonCriteria.newInstance();
|
|
|
- criteria.add("type", "common");
|
|
|
- criteria.add("code", code);
|
|
|
- criteria.add("classCode", classCode);
|
|
|
- PagedResponse<FuncidDefModel> query = funcidDefService.query(criteria);
|
|
|
- List<FuncidDefModel> data = query.getData();
|
|
|
- return data;
|
|
|
- }
|
|
|
-
|
|
|
@Transactional
|
|
|
public MapResponse update(FuncidDefChangeRecord param) {
|
|
|
MapResponse response = new MapResponse();
|
|
@@ -157,7 +152,7 @@ public class FuncidDefChangeRecordService {
|
|
|
return response;
|
|
|
}
|
|
|
FuncidDefChangeRecord changeRecord = optional.get();
|
|
|
- if (changeRecord.getState() == 1 && changeRecord.getVersion() == null) {
|
|
|
+ if (EnumVersionState.INIT.equals(changeRecord.getState()) && changeRecord.getVersion() == null) {
|
|
|
if (param.getAliasCode() != null) {
|
|
|
changeRecord.setAliasCode(param.getAliasCode());
|
|
|
}
|
|
@@ -173,26 +168,8 @@ public class FuncidDefChangeRecordService {
|
|
|
if (param.getNote() != null) {
|
|
|
changeRecord.setNote(param.getNote());
|
|
|
}
|
|
|
- }
|
|
|
- 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;
|
|
|
- }
|
|
|
+ if (param.getPriority() != null) {
|
|
|
+ changeRecord.setPriority(param.getPriority());
|
|
|
}
|
|
|
}
|
|
|
repository.save(changeRecord);
|
|
@@ -200,52 +177,8 @@ public class FuncidDefChangeRecordService {
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
- public void updateStateByVersion(Integer state, String version) {
|
|
|
- JacksonCriteria criteria = JacksonCriteria.newInstance();
|
|
|
- criteria.add("version", version);
|
|
|
- PagedResponse<FuncidDefChangeRecord> query = query(criteria);
|
|
|
- if (query.getCount() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- List<FuncidDefChangeRecord> data = query.getData();
|
|
|
- switch (state) {
|
|
|
- case 2: {
|
|
|
- for (FuncidDefChangeRecord changeRecord : data) {
|
|
|
- changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
- changeRecord.setConfirmTime(new Date());
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- case 3: {
|
|
|
- for (FuncidDefChangeRecord changeRecord : data) {
|
|
|
- changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
- changeRecord.setPublishTime(new Date());
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- case 4: {
|
|
|
- for (FuncidDefChangeRecord changeRecord : data) {
|
|
|
- changeRecord.setFinishTime(new Date());
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- default: {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- repository.saveAll(data);
|
|
|
- }
|
|
|
-
|
|
|
- @Transactional
|
|
|
public MapResponse addVersion(String version, List<Integer> idList) {
|
|
|
MapResponse response = new MapResponse();
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
Integer num = repository.addVersion(version, idList);
|
|
|
response.setMessage("update num: " + num);
|
|
|
return response;
|
|
@@ -257,7 +190,7 @@ public class FuncidDefChangeRecordService {
|
|
|
Optional<FuncidDefChangeRecord> optional = repository.findById(param.getId());
|
|
|
if (optional.isPresent()) {
|
|
|
FuncidDefChangeRecord changeRecord = optional.get();
|
|
|
- if (changeRecord.getState() != 1 || changeRecord.getVersion() != null) {
|
|
|
+ if (!EnumVersionState.INIT.equals(changeRecord.getState()) || changeRecord.getVersion() != null) {
|
|
|
response.setFail(changeRecord.getId() + " 不可删除!");
|
|
|
return response;
|
|
|
}
|
|
@@ -406,5 +339,111 @@ public class FuncidDefChangeRecordService {
|
|
|
}
|
|
|
return sqlList;
|
|
|
}
|
|
|
+
|
|
|
+ public void updateStateByVersion(EnumVersionState state, String version) {
|
|
|
+ JacksonCriteria criteria = JacksonCriteria.newInstance();
|
|
|
+ criteria.add("version", version);
|
|
|
+ PagedResponse<FuncidDefChangeRecord> query = query(criteria);
|
|
|
+ if (query.getCount() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<FuncidDefChangeRecord> data = query.getData();
|
|
|
+ for (FuncidDefChangeRecord changeRecord : data) {
|
|
|
+ switch (state) {
|
|
|
+ case CONFIRM: {
|
|
|
+ changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
+ changeRecord.setConfirmTime(new Date());
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case PUBLISH: {
|
|
|
+ changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
+ changeRecord.setPublishTime(new Date());
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case FINISH: {
|
|
|
+ changeRecord.setFinishTime(new Date());
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default: {
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (state == EnumVersionState.FINISH) {
|
|
|
+ updateFuncidDef(data, version);
|
|
|
+ }
|
|
|
+ repository.saveAll(data);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateFuncidDef(List<FuncidDefChangeRecord> data, String version) {
|
|
|
+ List<FuncidDef> funcidDefList = new ArrayList<>();
|
|
|
+ data.forEach(item -> {
|
|
|
+ String uuid = UUID.randomUUID().toString().replace("-", "");
|
|
|
+ FuncidDef funcidDef = new FuncidDef();
|
|
|
+ funcidDef.setId(uuid);
|
|
|
+ funcidDef.setCode(item.getCode());
|
|
|
+ funcidDef.setOrigCode(item.getOrigCode());
|
|
|
+ funcidDef.setName(item.getName());
|
|
|
+ funcidDef.setAliasCode(item.getAliasCode());
|
|
|
+ funcidDef.setAliasName(item.getAliasName());
|
|
|
+ funcidDef.setClassCode(item.getClassCode());
|
|
|
+ funcidDef.setCategory(item.getCategory());
|
|
|
+ funcidDef.setType(item.getType());
|
|
|
+ funcidDef.setGroupCode(item.getGroupCode());
|
|
|
+ funcidDef.setProjectId(item.getProjectId());
|
|
|
+ funcidDef.setFirstTag(item.getFirstTag());
|
|
|
+ funcidDef.setSecondTag(item.getSecondTag());
|
|
|
+ funcidDef.setPriority(item.getPriority());
|
|
|
+ funcidDef.setInputMode(item.getInputMode());
|
|
|
+ funcidDef.setUnit(item.getUnit());
|
|
|
+ funcidDef.setOrigDataType(item.getOrigDataType());
|
|
|
+ funcidDef.setIsMultiple(item.getIsMultiple());
|
|
|
+ funcidDef.setIsRegion(item.getIsRegion());
|
|
|
+ funcidDef.setFormater(item.getFormater());
|
|
|
+ funcidDef.setNote(item.getNote());
|
|
|
+ funcidDef.setSubFlag(item.getSubFlag());
|
|
|
+ funcidDef.setWeakPoint(item.getWeakPoint());
|
|
|
+ if (!FuncidDataType.REFENUM.equals(item.getDataType())) {
|
|
|
+ funcidDef.setDataType(item.getDataType());
|
|
|
+ funcidDef.setDataSource(item.getDataSource());
|
|
|
+ } else {
|
|
|
+ funcidDef.setDataType(FuncidDataType.ENUM);
|
|
|
+ ArrayNode dataSource = item.getDataSource();
|
|
|
+ String refKey = dataSource.get(0).get("refKey").asText();
|
|
|
+ JacksonCriteria queryRef = JacksonCriteria.newInstance();
|
|
|
+ queryRef.add("refKey", refKey);
|
|
|
+ List<RwdeditRefTypeInfos> refInfos = rwdeditRefTypeInfosService.query(queryRef).getData();
|
|
|
+ funcidDef.setDataSource(JacksonMapper.toObject(JacksonMapper.toSimpleJson(refInfos), ArrayNode.class));
|
|
|
+ }
|
|
|
+ funcidDef.setIsUsed(1);
|
|
|
+ funcidDef.setVersion(version);
|
|
|
+ funcidDef.setLastUpdateTime(new Date());
|
|
|
+ funcidDefList.add(funcidDef);
|
|
|
+ FuncidDefModel funcidDefModel = queryFuncidDef(item.getCode(), item.getClassCode());
|
|
|
+ if (funcidDefModel != null) {
|
|
|
+ funcidDefModel.setIsUsed(0);
|
|
|
+ funcidDefModel.setLastUpdateTime(new Date());
|
|
|
+ funcidDefList.add(FuncidDef.fromModel(funcidDefModel));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ funcidDefRepository.saveAll(funcidDefList);
|
|
|
+ }
|
|
|
+
|
|
|
+ private FuncidDefModel queryFuncidDef(String code, String classCode) {
|
|
|
+ JacksonCriteria criteria = JacksonCriteria.newInstance();
|
|
|
+ criteria.add("type", "common");
|
|
|
+ criteria.add("code", code);
|
|
|
+ criteria.add("classCode", classCode);
|
|
|
+ PagedResponse<FuncidDefModel> query = funcidDefService.query(criteria);
|
|
|
+ List<FuncidDefModel> data = query.getData();
|
|
|
+ if (data != null && data.size() != 0) {
|
|
|
+ return data.get(0);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|
|
|
|