|
@@ -3,6 +3,9 @@ package com.persagy.dmp.rwd.edit.service;
|
|
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
|
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.google.gson.JsonSyntaxException;
|
|
|
+import com.google.gson.reflect.TypeToken;
|
|
|
import com.persagy.common.criteria.CriteriaUtils;
|
|
|
import com.persagy.common.criteria.JacksonCriteria;
|
|
|
import com.persagy.common.json.JacksonMapper;
|
|
@@ -143,18 +146,18 @@ public class ChangeRecordService {
|
|
|
if (param.getValue() != null) {
|
|
|
changeRecord.setValue(param.getValue());
|
|
|
}
|
|
|
- if (param.getState() == 2) {
|
|
|
+ if (param.getState() != null) {
|
|
|
changeRecord.setState(param.getState());
|
|
|
+ }
|
|
|
+ if (param.getState() == 2) {
|
|
|
changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
changeRecord.setConfirmTime(new Date());
|
|
|
}
|
|
|
if (param.getState() == 3) {
|
|
|
- changeRecord.setState(param.getState());
|
|
|
changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
changeRecord.setPublishTime(new Date());
|
|
|
}
|
|
|
if (param.getState() == 4) {
|
|
|
- changeRecord.setState(param.getState());
|
|
|
changeRecord.setFinishTime(new Date());
|
|
|
}
|
|
|
repository.save(changeRecord);
|
|
@@ -170,17 +173,60 @@ public class ChangeRecordService {
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
- public List<String> getSqlList(List<Integer> idList) {
|
|
|
+ public MapResponse download(List<Integer> idList) {
|
|
|
+ MapResponse response = new MapResponse();
|
|
|
+ List<String> sqlList = getSqlList(idList);
|
|
|
+ response.add("data", sqlList);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<String> getSqlList(List<Integer> idList) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
List<ChangeRecord> data = repository.findAllById(idList);
|
|
|
for (ChangeRecord changeRecord : data) {
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
- sql.append("update");
|
|
|
- changeRecord.getValue();
|
|
|
+ switch (changeRecord.getOperationType()) {
|
|
|
+ case create:
|
|
|
+ sql.append("insert into");
|
|
|
+ sql.append(" ");//表名
|
|
|
+ break;
|
|
|
+ case update:
|
|
|
+ sql.append("update");
|
|
|
+ sql.append(" ");//表名
|
|
|
+ sql.append(" set");
|
|
|
+ Map<String, Object> map = json2map(JacksonMapper.toSimpleJson(changeRecord.getValue()));
|
|
|
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
|
|
|
+ sql.append(" " + entry.getKey() + " = '" + entry.getValue() + "',");
|
|
|
+ }
|
|
|
+ sql.deleteCharAt(sql.length() - 1);
|
|
|
+ break;
|
|
|
+ case delete:
|
|
|
+ sql.append("delete from");
|
|
|
+ sql.append(" ");//表名
|
|
|
+ break;
|
|
|
+ }
|
|
|
sql.append(" where 1=1");
|
|
|
- sql.append(" and code = '" + changeRecord.getCode() + "'");
|
|
|
+ if (changeRecord.getInfoCode() == null) {
|
|
|
+ sql.append(" and code = '" + changeRecord.getCode() + "'");
|
|
|
+ } else {
|
|
|
+ sql.append(" and class_code = '" + changeRecord.getCode() + "'");
|
|
|
+ sql.append(" and code = '" + changeRecord.getInfoCode() + "'");
|
|
|
+ sql.append(";");
|
|
|
+ }
|
|
|
+ sqlList.add(sql.toString());
|
|
|
+ }
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
|
|
|
+ public static Map<String, Object> json2map(String str_json) {
|
|
|
+ Map<String, Object> res = null;
|
|
|
+ try {
|
|
|
+ Gson gson = new Gson();
|
|
|
+ res = gson.fromJson(str_json, new TypeToken<Map<String, Object>>() {
|
|
|
+ }.getType());
|
|
|
+ } catch (JsonSyntaxException e) {
|
|
|
}
|
|
|
- return null;
|
|
|
+ return res;
|
|
|
}
|
|
|
|
|
|
}
|