|
@@ -8,11 +8,13 @@ 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.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 +41,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;
|
|
@@ -75,18 +80,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) {
|
|
@@ -138,16 +142,6 @@ public class FuncidDefChangeRecordService {
|
|
|
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();
|
|
@@ -173,26 +167,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 +176,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();
|
|
|
-// 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;
|
|
@@ -406,5 +338,111 @@ public class FuncidDefChangeRecordService {
|
|
|
}
|
|
|
return sqlList;
|
|
|
}
|
|
|
+
|
|
|
+ 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();
|
|
|
+ for (FuncidDefChangeRecord changeRecord : data) {
|
|
|
+ switch (state) {
|
|
|
+ case 2: {
|
|
|
+ changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
+ changeRecord.setConfirmTime(new Date());
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 3: {
|
|
|
+ changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
+ changeRecord.setPublishTime(new Date());
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 4: {
|
|
|
+ changeRecord.setFinishTime(new Date());
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default: {
|
|
|
+ changeRecord.setState(state);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (state == 4) {
|
|
|
+ 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.setState(1);//状态 0.历史版本 1.使用中
|
|
|
+ funcidDef.setVersion(version);//版本
|
|
|
+ funcidDef.setLastUpdateTime(new Date());//发布时间
|
|
|
+ funcidDefList.add(funcidDef);
|
|
|
+ FuncidDefModel funcidDefModel = queryFuncidDef(item.getCode(), item.getClassCode());
|
|
|
+ if (funcidDefModel != null) {
|
|
|
+ funcidDefModel.setState(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;
|
|
|
+ }
|
|
|
}
|
|
|
|