Browse Source

修改变更记录编辑接口

fengyanjie 4 years ago
parent
commit
af3a75c8f4

+ 4 - 0
dmp-rwd-edit/pom.xml

@@ -83,6 +83,10 @@
             <artifactId>shiro-spring</artifactId>
             <version>1.4.0</version>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 5 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/ChangeRecordController.java

@@ -40,4 +40,9 @@ public class ChangeRecordController {
         return service.delete(idList);
     }
 
+    @PostMapping("/download")
+    public MapResponse download(@RequestBody List<Integer> idList) {
+        return service.download(idList);
+    }
+
 }

+ 54 - 8
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ChangeRecordService.java

@@ -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;
     }
 
 }