瀏覽代碼

修改变更记录存储类型

fengyanjie 4 年之前
父節點
當前提交
c67f25879a

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

@@ -3,8 +3,8 @@ package com.persagy.dmp.rwd.edit.controller;
 import com.persagy.common.criteria.JacksonCriteria;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
-import com.persagy.dmp.rwd.edit.entity.ChangeRecord;
-import com.persagy.dmp.rwd.edit.service.ChangeRecordService;
+import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.service.ClassDefChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -15,24 +15,24 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 @RestController
-@RequestMapping("/rwdedit/rwdChangeRecord")
-public class ChangeRecordController {
+@RequestMapping("/rwdedit/classDef/changeRecord")
+public class ClassDefChangeRecordController {
 
     @Autowired
-    private ChangeRecordService service;
+    private ClassDefChangeRecordService service;
 
     @PostMapping("/query")
-    public PagedResponse<ChangeRecord> query(@RequestBody JacksonCriteria criteria) {
+    public PagedResponse<ClassDefChangeRecord> query(@RequestBody JacksonCriteria criteria) {
         return service.query(criteria);
     }
 
     @PostMapping("/create")
-    public MapResponse create(@RequestBody ChangeRecord param) {
+    public MapResponse create(@RequestBody ClassDefChangeRecord param) {
         return service.create(param);
     }
 
     @PostMapping("/update")
-    public MapResponse update(@RequestBody ChangeRecord param) {
+    public MapResponse update(@RequestBody ClassDefChangeRecord param) {
         return service.update(param);
     }
 

+ 49 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/FuncidDefChangeRecordController.java

@@ -0,0 +1,49 @@
+package com.persagy.dmp.rwd.edit.controller;
+
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
+import com.persagy.dmp.rwd.edit.service.FuncidDefChangeRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@RestController
+@RequestMapping("/rwdedit/funcidDef/changeRecord")
+public class FuncidDefChangeRecordController {
+
+    @Autowired
+    private FuncidDefChangeRecordService service;
+
+    @PostMapping("/query")
+    public PagedResponse<FuncidDefChangeRecord> query(@RequestBody JacksonCriteria criteria) {
+        return service.query(criteria);
+    }
+
+    @PostMapping("/create")
+    public MapResponse create(@RequestBody FuncidDefChangeRecord param) {
+        return service.create(param);
+    }
+
+    @PostMapping("/update")
+    public MapResponse update(@RequestBody FuncidDefChangeRecord param) {
+        return service.update(param);
+    }
+
+    @PostMapping("/delete")
+    public MapResponse delete(@RequestBody List<Integer> idList) {
+        return service.delete(idList);
+    }
+
+    @PostMapping("/download")
+    public void download(@RequestBody List<Integer> idList, HttpServletResponse response) {
+        service.download(response, idList);
+    }
+
+}

+ 0 - 83
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/ChangeRecord.java

@@ -1,83 +0,0 @@
-package com.persagy.dmp.rwd.edit.entity;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
-import com.persagy.dmp.rwd.edit.model.ChangeRecordModel;
-import com.vladmihalcea.hibernate.type.json.JsonStringType;
-import lombok.Getter;
-import lombok.Setter;
-import org.hibernate.annotations.SQLDelete;
-import org.hibernate.annotations.Type;
-import org.hibernate.annotations.TypeDef;
-import org.hibernate.annotations.Where;
-
-import javax.persistence.*;
-import java.util.Date;
-
-@Setter
-@Getter
-@Entity
-@Table(name = "rwd_change_record")
-@TypeDef(name = "json", typeClass = JsonStringType.class)
-@Where(clause = "valid = 1")
-@SQLDelete(sql = "update rwd_change_record set valid = 0 where id = ?")
-public class ChangeRecord {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Integer id;
-    private String code;
-    private String infoCode;
-    @Type(type = "json")
-    private ObjectNode value;
-    @Enumerated(EnumType.STRING)
-    private EnumOperationType operationType;//操作类型
-    private String operationUser;//操作人
-    private Date operationTime;//操作时间
-    private String confirmUser;//确认人
-    private Date confirmTime;//确认时间
-    private String publishUser;//发布人
-    private Date publishTime;//发布时间
-    private Date finishTime;//完成时间
-    private Boolean valid;//true 正常 false 失效
-    private Integer state;//状态 0.取消 1.初始化 2.确认 3.发布 4.完成
-
-    public static ChangeRecord fromModel(ChangeRecordModel model) {
-        ChangeRecord entity = new ChangeRecord();
-        entity.setId(model.getId());
-        entity.setCode(model.getCode());
-        entity.setInfoCode(model.getInfoCode());
-        entity.setValue(model.getValue());
-        entity.setOperationType(model.getOperationType());
-        entity.setOperationUser(model.getOperationUser());
-        entity.setOperationTime(model.getOperationTime());
-        entity.setConfirmUser(model.getConfirmUser());
-        entity.setConfirmTime(model.getConfirmTime());
-        entity.setPublishUser(model.getPublishUser());
-        entity.setPublishTime(model.getPublishTime());
-        entity.setFinishTime(model.getFinishTime());
-        entity.setValid(model.getValid());
-        entity.setState(model.getState());
-        return entity;
-    }
-
-    public ChangeRecordModel toModel() {
-        ChangeRecordModel model = new ChangeRecordModel();
-        model.setId(this.id);
-        model.setCode(this.code);
-        model.setInfoCode(this.infoCode);
-        model.setValue(this.value);
-        model.setOperationType(this.operationType);
-        model.setOperationUser(this.operationUser);
-        model.setOperationTime(this.operationTime);
-        model.setConfirmUser(this.confirmUser);
-        model.setConfirmTime(this.confirmTime);
-        model.setPublishUser(this.publishUser);
-        model.setPublishTime(this.publishTime);
-        model.setFinishTime(this.finishTime);
-        model.setValid(this.valid);
-        model.setState(this.state);
-        return model;
-    }
-
-}

+ 51 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/ClassDefChangeRecord.java

@@ -0,0 +1,51 @@
+package com.persagy.dmp.rwd.edit.entity;
+
+import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
+import com.persagy.dmp.rwd.enums.ObjType;
+import com.vladmihalcea.hibernate.type.json.JsonStringType;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.SQLDelete;
+import org.hibernate.annotations.TypeDef;
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Setter
+@Getter
+@Entity
+@Table(name = "rwd_def_class_change_record")
+@TypeDef(name = "json", typeClass = JsonStringType.class)
+@Where(clause = "valid = 1")
+@SQLDelete(sql = "update rwd_def_class_change_record set valid = 0 where id = ?")
+public class ClassDefChangeRecord {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+    private String code;
+    private String groupCode;
+    @Enumerated(value = EnumType.STRING)
+    private ObjType objType;
+    private String name;
+    private String aliasCode;
+    private String aliasName;
+    private String type;
+    private String projectId;
+    private String majorCode;
+    private String systemCode;
+    private String equipmentCode;
+    private String parentCode;
+    @Enumerated(EnumType.STRING)
+    private EnumOperationType operationType;//操作类型
+    private String operationUser;//操作人
+    private Date operationTime;//操作时间
+    private String confirmUser;//确认人
+    private Date confirmTime;//确认时间
+    private String publishUser;//发布人
+    private Date publishTime;//发布时间
+    private Date finishTime;//完成时间
+    private Boolean valid;//true 正常 false 失效
+    private Integer state;//状态 0.取消 1.初始化 2.确认 3.发布 4.完成
+}

+ 70 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/FuncidDefChangeRecord.java

@@ -0,0 +1,70 @@
+package com.persagy.dmp.rwd.edit.entity;
+
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
+import com.persagy.dmp.rwd.enums.FuncidCategory;
+import com.persagy.dmp.rwd.enums.FuncidDataType;
+import com.vladmihalcea.hibernate.type.json.JsonStringType;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.SQLDelete;
+import org.hibernate.annotations.Type;
+import org.hibernate.annotations.TypeDef;
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Setter
+@Getter
+@Entity
+@Table(name = "rwd_def_funcid_change_record")
+@TypeDef(name = "json", typeClass = JsonStringType.class)
+@Where(clause = "valid = 1")
+@SQLDelete(sql = "update rwd_def_funcid_change_record set valid = 0 where id = ?")
+public class FuncidDefChangeRecord {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+    private String code;
+    private String groupCode;
+    @Column(updatable = false)
+    private String projectId;
+    private String origCode;
+    private String name;
+    private String aliasCode;
+    private String aliasName;
+    @Column(updatable = false)
+    private String classCode;
+    @Enumerated(EnumType.STRING)
+    private FuncidCategory category;
+    private String type;
+    private String firstTag;
+    private String secondTag;
+    private String priority;
+    private String inputMode;
+    private String unit;
+    @Enumerated(EnumType.STRING)
+    private FuncidDataType dataType;
+    private String origDataType;
+    private Boolean isMultiple = false;
+    private Boolean isRegion = false;
+    private String formater;
+    @Type(type = "json")
+    private ArrayNode dataSource;
+    private String note;
+    private Boolean subFlag;
+    private Boolean weakPoint;
+    @Enumerated(EnumType.STRING)
+    private EnumOperationType operationType;//操作类型
+    private String operationUser;//操作人
+    private Date operationTime;//操作时间
+    private String confirmUser;//确认人
+    private Date confirmTime;//确认时间
+    private String publishUser;//发布人
+    private Date publishTime;//发布时间
+    private Date finishTime;//完成时间
+    private Boolean valid;//true 正常 false 失效
+    private Integer state;//状态 0.取消 1.初始化 2.确认 3.发布 4.完成
+}

+ 0 - 9
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/ChangeRecordRepository.java

@@ -1,9 +0,0 @@
-package com.persagy.dmp.rwd.edit.repository;
-
-import com.persagy.dmp.rwd.edit.entity.ChangeRecord;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.querydsl.QuerydslPredicateExecutor;
-
-public interface ChangeRecordRepository extends JpaRepository<ChangeRecord, Integer>, QuerydslPredicateExecutor<ChangeRecord> {
-}
-

+ 9 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/ClassDefChangeRecordRepository.java

@@ -0,0 +1,9 @@
+package com.persagy.dmp.rwd.edit.repository;
+
+import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
+
+public interface ClassDefChangeRecordRepository extends JpaRepository<ClassDefChangeRecord, Integer>, QuerydslPredicateExecutor<ClassDefChangeRecord> {
+}
+

+ 9 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/FuncidDefChangeRecordRepository.java

@@ -0,0 +1,9 @@
+package com.persagy.dmp.rwd.edit.repository;
+
+import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
+
+public interface FuncidDefChangeRecordRepository extends JpaRepository<FuncidDefChangeRecord, Integer>, QuerydslPredicateExecutor<FuncidDefChangeRecord> {
+}
+

+ 0 - 332
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ChangeRecordService.java

@@ -1,332 +0,0 @@
-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.date.DateUtils;
-import com.persagy.common.json.JacksonMapper;
-import com.persagy.common.web.MapResponse;
-import com.persagy.common.web.PagedResponse;
-import com.persagy.dmp.common.http.HttpUtils;
-import com.persagy.dmp.rwd.edit.config.web.UserUtils;
-import com.persagy.dmp.rwd.edit.entity.ChangeRecord;
-import com.persagy.dmp.rwd.edit.entity.QChangeRecord;
-import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
-import com.persagy.dmp.rwd.edit.repository.ChangeRecordRepository;
-import com.querydsl.core.types.dsl.BooleanExpression;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.transaction.Transactional;
-import java.io.*;
-import java.net.URLEncoder;
-import java.util.*;
-
-@Slf4j
-@Service
-public class ChangeRecordService {
-
-    @Value("${persagy.dmp.server}")
-    private String dmpServer;
-
-    @Autowired
-    ChangeRecordRepository repository;
-
-    @Autowired
-    CriteriaUtils criteriaUtils;
-
-    @Autowired
-    HttpUtils httpUtils;
-
-    private List<BooleanExpression> parse(ObjectNode object) {
-        List<BooleanExpression> list = new LinkedList<>();
-        QChangeRecord qt = QChangeRecord.changeRecord;
-        list.addAll(CriteriaUtils.parse(qt.id, object.get("id")));
-        list.addAll(CriteriaUtils.parse(qt.code, object.get("code")));
-        list.addAll(CriteriaUtils.parse(qt.infoCode, object.get("infoCode")));
-        list.addAll(CriteriaUtils.parse(qt.operationType, object.get("operationType"), EnumOperationType.class));
-        list.addAll(CriteriaUtils.parse(qt.operationUser, object.get("operationUser")));
-        list.addAll(CriteriaUtils.parse(qt.operationTime, object.get("operationTime")));
-        list.addAll(CriteriaUtils.parse(qt.confirmUser, object.get("confirmUser")));
-        list.addAll(CriteriaUtils.parse(qt.confirmTime, object.get("confirmTime")));
-        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")));
-        return list;
-    }
-
-    public PagedResponse<ChangeRecord> query(JacksonCriteria criteria) {
-        PagedResponse<ChangeRecord> result = criteriaUtils.query(QChangeRecord.changeRecord, this::parse, criteria);
-        return result;
-    }
-
-    @Transactional
-    public MapResponse create(ChangeRecord param) {
-        MapResponse response = new MapResponse();
-        String code = param.getCode();
-        String infoCode = param.getInfoCode();
-        if (code == null) {
-            response.setFail("code is required");
-            return response;
-        }
-        if (EnumOperationType.create.equals(param.getOperationType())) {
-            Boolean isExists = isExists(code, infoCode);
-            if (!isExists) {
-                response.setFail("code is exists");
-                return response;
-            }
-        }
-        QChangeRecord qt = QChangeRecord.changeRecord;
-        BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1));
-        if (infoCode != null) {
-            ex.and(qt.infoCode.eq(infoCode));
-        }
-        Iterable<ChangeRecord> all = repository.findAll(ex);
-        List<ChangeRecord> list = new ArrayList<>();
-        all.forEach(list::add);
-        if (list.size() > 0) {
-            repository.deleteAll(list);
-        }
-        param.setOperationUser(UserUtils.currentUserId() + "");
-        param.setOperationTime(new Date());
-        param.setValid(true);
-        param.setState(1);
-        repository.save(param);
-        response.add("id", param.getId());
-        return response;
-    }
-
-    private Boolean isExists(String code, String infoCode) {
-        JacksonCriteria criteria = JacksonCriteria.newInstance();
-        HttpUtils.HttpResult result;
-        if (infoCode != null) {
-            criteria.add("type", "common");
-            criteria.add("classCode", code);
-            criteria.add("code", infoCode);
-            StringBuilder url = new StringBuilder(dmpServer);
-            url.append("/rwd/def/funcid");
-            url.append("?groupCode=0");
-            result = httpUtils.post(url.toString(), JacksonMapper.toSimpleJson(criteria), 300000);
-        } else {
-            criteria.add("type", "common");
-            criteria.add("code", code);
-            StringBuilder url = new StringBuilder(dmpServer);
-            url.append("/rwd/def/funcid");
-            url.append("?groupCode=0");
-            result = httpUtils.post(url.toString(), JacksonMapper.toSimpleJson(criteria), 300000);
-        }
-        if (result.success()) {
-            String content = result.getContent();
-            ObjectNode object = JacksonMapper.toObject(content, ObjectNode.class);
-            ArrayNode data = JacksonMapper.getArray(object, "data", JsonNodeFactory.instance.arrayNode());
-            if (data.size() > 0) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    @Transactional
-    public MapResponse update(ChangeRecord param) {
-        MapResponse response = new MapResponse();
-        if (param.getId() == null) {
-            response.setFail("id is required");
-            return response;
-        }
-        List<ChangeRecord> data = repository.findAllById(Arrays.asList(param.getId()));
-        if (data.size() == 0) {
-            response.setFail("id not exists");
-            return response;
-        }
-        ChangeRecord changeRecord = data.get(0);
-        if (param.getValue() != null) {
-            changeRecord.setValue(param.getValue());
-        }
-        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.setPublishUser(UserUtils.currentUserId() + "");
-            changeRecord.setPublishTime(new Date());
-        }
-        if (param.getState() == 4) {
-            changeRecord.setFinishTime(new Date());
-        }
-        repository.save(changeRecord);
-        response.add("id", param.getId());
-        return response;
-    }
-
-    @Transactional
-    public MapResponse delete(List<Integer> param) {
-        MapResponse response = new MapResponse();
-        List<ChangeRecord> list = repository.findAllById(param);
-        repository.deleteAll(list);
-        return response;
-    }
-
-    @Transactional
-    public void download(HttpServletResponse resp, List<Integer> idList) {
-        List<ChangeRecord> data = repository.findAllById(idList);
-        data.forEach(item -> {
-            item.setState(3);
-            item.setPublishUser(UserUtils.currentUserId() + "");
-            item.setPublishTime(new Date());
-        });
-        repository.saveAll(data);
-
-        String fileName = DateUtils.format(new Date()) + ".sql";
-        List<String> sqlList = getSqlList(idList);
-
-        OutputStream out = null;
-        try {
-            InputStream stream = getStream(sqlList);
-            resp.reset();// 清空输出流
-            String resultFileName = URLEncoder.encode(fileName, "UTF-8");
-            resp.setCharacterEncoding("UTF-8");
-            resp.setHeader("Content-disposition", "attachment; filename=" + resultFileName);// 设定输出文件头
-            resp.setContentType("application/txt");// 定义输出类型
-            out = resp.getOutputStream();
-            byte[] buff = new byte[4096];
-            int size = 0;
-            while ((size = stream.read(buff)) != -1) {
-                out.write(buff, 0, size);
-            }
-            out.flush();
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            try {
-                if (out != null) {
-                    out.close();
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    public InputStream getStream(List<String> list) throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        DataOutputStream out = new DataOutputStream(baos);
-        for (String sql : list) {
-            out.writeBytes(sql + "\r\n");
-        }
-        byte[] bytes = baos.toByteArray();
-        ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(bytes);
-        baos.close();
-        out.close();
-        return tInputStringStream;
-    }
-
-    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();
-            Map<String, Object> map = json2map(JacksonMapper.toSimpleJson(changeRecord.getValue()));
-            switch (changeRecord.getOperationType()) {
-                case create:
-                    sql.append("insert into");
-                    if (changeRecord.getInfoCode() == null) {
-                        sql.append(" RWD_DEF_CLASS");
-                    } else {
-                        sql.append(" RWD_DEF_FUNCID");
-                    }
-                    sql.append(" (");//表名
-                    map.keySet().forEach(item -> {
-                        sql.append(humpToUnderline(item) + ",");
-                    });
-                    sql.deleteCharAt(sql.length() - 1);
-                    sql.append(") values (");
-                    map.values().forEach(item -> {
-                        sql.append("'" + item + "',");
-                    });
-                    sql.deleteCharAt(sql.length() - 1);
-                    sql.append(")");
-                    break;
-                case update:
-                    sql.append("update");
-                    if (changeRecord.getInfoCode() == null) {
-                        sql.append(" RWD_DEF_CLASS");
-                    } else {
-                        sql.append(" RWD_DEF_FUNCID");
-                    }
-                    sql.append(" set");
-                    for (Map.Entry<String, Object> entry : map.entrySet()) {
-                        sql.append(" " + humpToUnderline(entry.getKey()) + " = '" + entry.getValue() + "',");
-                    }
-                    sql.deleteCharAt(sql.length() - 1);
-                    break;
-                case delete:
-                    sql.append("delete from");
-                    if (changeRecord.getInfoCode() == null) {
-                        sql.append(" RWD_DEF_CLASS");
-                    } else {
-                        sql.append(" RWD_DEF_FUNCID");
-                    }
-                    break;
-            }
-            if (!EnumOperationType.create.equals(changeRecord.getOperationType())) {
-                sql.append(" where 1=1");
-                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 void main(String[] args) {
-        String uuid = UUID.randomUUID().toString().replace("-", "");
-        System.err.println(uuid);
-    }
-
-    private 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 res;
-    }
-
-    /***
-     * 驼峰命名转为下划线命名
-     */
-    private String humpToUnderline(String para) {
-        StringBuilder sb = new StringBuilder(para);
-        int temp = 0;//定位
-        if (!para.contains("_")) {
-            for (int i = 0; i < para.length(); i++) {
-                if (Character.isUpperCase(para.charAt(i))) {
-                    sb.insert(i + temp, "_");
-                    temp += 1;
-                }
-            }
-        }
-        return sb.toString().toUpperCase();
-    }
-
-}
-

+ 309 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ClassDefChangeRecordService.java

@@ -0,0 +1,309 @@
+package com.persagy.dmp.rwd.edit.service;
+
+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.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.config.web.UserUtils;
+import com.persagy.dmp.rwd.edit.entity.ClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.QChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.QClassDefChangeRecord;
+import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
+import com.persagy.dmp.rwd.edit.repository.ClassDefChangeRecordRepository;
+import com.persagy.dmp.rwd.model.ClassDefModel;
+import com.querydsl.core.types.dsl.BooleanExpression;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.transaction.Transactional;
+import java.io.*;
+import java.util.*;
+
+@Slf4j
+@Service
+public class ClassDefChangeRecordService {
+
+    @Autowired
+    ClassDefChangeRecordRepository repository;
+
+    @Autowired
+    ClassDefService classDefService;
+
+    @Autowired
+    CriteriaUtils criteriaUtils;
+
+    private List<BooleanExpression> parse(ObjectNode object) {
+        List<BooleanExpression> list = new LinkedList<>();
+        QChangeRecord qt = QChangeRecord.changeRecord;
+        list.addAll(CriteriaUtils.parse(qt.id, object.get("id")));
+        list.addAll(CriteriaUtils.parse(qt.code, object.get("code")));
+        list.addAll(CriteriaUtils.parse(qt.operationType, object.get("operationType"), EnumOperationType.class));
+        list.addAll(CriteriaUtils.parse(qt.operationUser, object.get("operationUser")));
+        list.addAll(CriteriaUtils.parse(qt.operationTime, object.get("operationTime")));
+        list.addAll(CriteriaUtils.parse(qt.confirmUser, object.get("confirmUser")));
+        list.addAll(CriteriaUtils.parse(qt.confirmTime, object.get("confirmTime")));
+        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")));
+        return list;
+    }
+
+    public PagedResponse<ClassDefChangeRecord> query(JacksonCriteria criteria) {
+        PagedResponse<ClassDefChangeRecord> result = criteriaUtils.query(QClassDefChangeRecord.classDefChangeRecord, this::parse, criteria);
+        return result;
+    }
+
+    @Transactional
+    public MapResponse create(ClassDefChangeRecord param) {
+        MapResponse response = new MapResponse();
+        String code = param.getCode();
+        if (code == null) {
+            response.setFail("code is required");
+            return response;
+        }
+        if (EnumOperationType.create.equals(param.getOperationType())) {
+            Boolean isExists = isExists(code);
+            if (!isExists) {
+                response.setFail("code is exists");
+                return response;
+            }
+        }
+        QChangeRecord qt = QChangeRecord.changeRecord;
+        BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1));
+        Iterable<ClassDefChangeRecord> all = repository.findAll(ex);
+        List<ClassDefChangeRecord> list = new ArrayList<>();
+        all.forEach(list::add);
+        if (list.size() > 0) {
+            repository.deleteAll(list);
+        }
+        param.setOperationUser(UserUtils.currentUserId() + "");
+        param.setOperationTime(new Date());
+        param.setValid(true);
+        param.setState(1);
+        repository.save(param);
+        response.add("id", param.getId());
+        return response;
+    }
+
+    private Boolean isExists(String code) {
+        JacksonCriteria criteria = JacksonCriteria.newInstance();
+//        if (infoCode != null) {
+//            criteria.add("type", "common");
+//            criteria.add("classCode", code);
+//            criteria.add("code", infoCode);
+//            StringBuilder url = new StringBuilder(dmpServer);
+//            url.append("/rwd/def/funcid");
+//            url.append("?groupCode=0");
+//            result = httpUtils.post(url.toString(), JacksonMapper.toSimpleJson(criteria), 300000);
+//        } else {
+        criteria.add("type", "common");
+        criteria.add("code", code);
+        PagedResponse<ClassDefModel> query = classDefService.query(criteria);
+        List<ClassDefModel> data = query.getData();
+        if (data.size() > 0) {
+            return false;
+        }
+        return true;
+    }
+
+    @Transactional
+    public MapResponse update(ClassDefChangeRecord param) {
+        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);
+        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());
+        }
+        repository.save(changeRecord);
+        response.add("id", param.getId());
+        return response;
+    }
+
+    @Transactional
+    public MapResponse delete(List<Integer> param) {
+        MapResponse response = new MapResponse();
+        List<ClassDefChangeRecord> list = repository.findAllById(param);
+        repository.deleteAll(list);
+        return response;
+    }
+
+    @Transactional
+    public void download(HttpServletResponse resp, List<Integer> idList) {
+//        List<ChangeRecord> data = repository.findAllById(idList);
+//        data.forEach(item -> {
+//            item.setState(3);
+//            item.setPublishUser(UserUtils.currentUserId() + "");
+//            item.setPublishTime(new Date());
+//        });
+//        repository.saveAll(data);
+//
+//        String fileName = DateUtils.format(new Date()) + ".sql";
+//        List<String> sqlList = getSqlList(idList);
+//
+//        OutputStream out = null;
+//        try {
+//            InputStream stream = getStream(sqlList);
+//            resp.reset();// 清空输出流
+//            String resultFileName = URLEncoder.encode(fileName, "UTF-8");
+//            resp.setCharacterEncoding("UTF-8");
+//            resp.setHeader("Content-disposition", "attachment; filename=" + resultFileName);// 设定输出文件头
+//            resp.setContentType("application/txt");// 定义输出类型
+//            out = resp.getOutputStream();
+//            byte[] buff = new byte[4096];
+//            int size = 0;
+//            while ((size = stream.read(buff)) != -1) {
+//                out.write(buff, 0, size);
+//            }
+//            out.flush();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        } finally {
+//            try {
+//                if (out != null) {
+//                    out.close();
+//                }
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//        }
+    }
+
+    public InputStream getStream(List<String> list) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        DataOutputStream out = new DataOutputStream(baos);
+        for (String sql : list) {
+            out.writeBytes(sql + "\r\n");
+        }
+        byte[] bytes = baos.toByteArray();
+        ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(bytes);
+        baos.close();
+        out.close();
+        return tInputStringStream;
+    }
+
+    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();
+//            Map<String, Object> map = json2map(JacksonMapper.toSimpleJson(changeRecord.getValue()));
+//            switch (changeRecord.getOperationType()) {
+//                case create:
+//                    sql.append("insert into");
+//                    if (changeRecord.getInfoCode() == null) {
+//                        sql.append(" RWD_DEF_CLASS");
+//                    } else {
+//                        sql.append(" RWD_DEF_FUNCID");
+//                    }
+//                    sql.append(" (");//表名
+//                    map.keySet().forEach(item -> {
+//                        sql.append(humpToUnderline(item) + ",");
+//                    });
+//                    sql.deleteCharAt(sql.length() - 1);
+//                    sql.append(") values (");
+//                    map.values().forEach(item -> {
+//                        sql.append("'" + item + "',");
+//                    });
+//                    sql.deleteCharAt(sql.length() - 1);
+//                    sql.append(")");
+//                    break;
+//                case update:
+//                    sql.append("update");
+//                    if (changeRecord.getInfoCode() == null) {
+//                        sql.append(" RWD_DEF_CLASS");
+//                    } else {
+//                        sql.append(" RWD_DEF_FUNCID");
+//                    }
+//                    sql.append(" set");
+//                    for (Map.Entry<String, Object> entry : map.entrySet()) {
+//                        sql.append(" " + humpToUnderline(entry.getKey()) + " = '" + entry.getValue() + "',");
+//                    }
+//                    sql.deleteCharAt(sql.length() - 1);
+//                    break;
+//                case delete:
+//                    sql.append("delete from");
+//                    if (changeRecord.getInfoCode() == null) {
+//                        sql.append(" RWD_DEF_CLASS");
+//                    } else {
+//                        sql.append(" RWD_DEF_FUNCID");
+//                    }
+//                    break;
+//            }
+//            if (!EnumOperationType.create.equals(changeRecord.getOperationType())) {
+//                sql.append(" where 1=1");
+//                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;
+        return null;
+    }
+
+    public static void main(String[] args) {
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        System.err.println(uuid);
+    }
+
+    private 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 res;
+    }
+
+    /***
+     * 驼峰命名转为下划线命名
+     */
+    private String humpToUnderline(String para) {
+        StringBuilder sb = new StringBuilder(para);
+        int temp = 0;//定位
+        if (!para.contains("_")) {
+            for (int i = 0; i < para.length(); i++) {
+                if (Character.isUpperCase(para.charAt(i))) {
+                    sb.insert(i + temp, "_");
+                    temp += 1;
+                }
+            }
+        }
+        return sb.toString().toUpperCase();
+    }
+
+}
+

+ 1 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/ClassDefService.java

@@ -49,6 +49,7 @@ public class ClassDefService {
         List<BooleanExpression> list = new LinkedList<>();
         QClassDef qt = QClassDef.classDef;
         list.addAll(CriteriaUtils.parse(qt.objType, object.get("objType"), ObjType.class));
+        list.addAll(CriteriaUtils.parse(qt.code, object.get("code")));
         return list;
     }
 

+ 306 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -0,0 +1,306 @@
+package com.persagy.dmp.rwd.edit.service;
+
+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.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.config.web.UserUtils;
+import com.persagy.dmp.rwd.edit.entity.FuncidDefChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.QChangeRecord;
+import com.persagy.dmp.rwd.edit.entity.QFuncidDefChangeRecord;
+import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
+import com.persagy.dmp.rwd.edit.repository.FuncidDefChangeRecordRepository;
+import com.persagy.dmp.rwd.model.FuncidDefModel;
+import com.querydsl.core.types.dsl.BooleanExpression;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.transaction.Transactional;
+import java.io.*;
+import java.util.*;
+
+@Slf4j
+@Service
+public class FuncidDefChangeRecordService {
+
+    @Autowired
+    FuncidDefChangeRecordRepository repository;
+
+    @Autowired
+    FuncidDefService funcidDefService;
+
+    @Autowired
+    CriteriaUtils criteriaUtils;
+
+    private List<BooleanExpression> parse(ObjectNode object) {
+        List<BooleanExpression> list = new LinkedList<>();
+        QChangeRecord qt = QChangeRecord.changeRecord;
+        list.addAll(CriteriaUtils.parse(qt.id, object.get("id")));
+        list.addAll(CriteriaUtils.parse(qt.code, object.get("code")));
+        list.addAll(CriteriaUtils.parse(qt.operationType, object.get("operationType"), EnumOperationType.class));
+        list.addAll(CriteriaUtils.parse(qt.operationUser, object.get("operationUser")));
+        list.addAll(CriteriaUtils.parse(qt.operationTime, object.get("operationTime")));
+        list.addAll(CriteriaUtils.parse(qt.confirmUser, object.get("confirmUser")));
+        list.addAll(CriteriaUtils.parse(qt.confirmTime, object.get("confirmTime")));
+        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")));
+        return list;
+    }
+
+    public PagedResponse<FuncidDefChangeRecord> query(JacksonCriteria criteria) {
+        PagedResponse<FuncidDefChangeRecord> result = criteriaUtils.query(QFuncidDefChangeRecord.funcidDefChangeRecord, this::parse, criteria);
+        return result;
+    }
+
+    @Transactional
+    public MapResponse create(FuncidDefChangeRecord param) {
+        MapResponse response = new MapResponse();
+        String code = param.getCode();
+        String classCode = param.getClassCode();
+        if (code == null) {
+            response.setFail("code is required");
+            return response;
+        }
+        if (classCode == null) {
+            response.setFail("classCode is required");
+            return response;
+        }
+        if (EnumOperationType.create.equals(param.getOperationType())) {
+            Boolean isExists = isExists(code, classCode);
+            if (!isExists) {
+                response.setFail("code is exists");
+                return response;
+            }
+        }
+        QChangeRecord qt = QChangeRecord.changeRecord;
+        BooleanExpression ex = qt.code.eq(code).and(qt.state.eq(1));
+        Iterable<FuncidDefChangeRecord> all = repository.findAll(ex);
+        List<FuncidDefChangeRecord> list = new ArrayList<>();
+        all.forEach(list::add);
+        if (list.size() > 0) {
+            repository.deleteAll(list);
+        }
+        param.setOperationUser(UserUtils.currentUserId() + "");
+        param.setOperationTime(new Date());
+        param.setValid(true);
+        param.setState(1);
+        repository.save(param);
+        response.add("id", param.getId());
+        return response;
+    }
+
+    private Boolean isExists(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.size() > 0) {
+            return false;
+        }
+        return true;
+    }
+
+    @Transactional
+    public MapResponse update(FuncidDefChangeRecord param) {
+        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<FuncidDefChangeRecord> data = repository.findAllById(Arrays.asList(param.getId()));
+        if (data.size() == 0) {
+            response.setFail("id not exists");
+            return response;
+        }
+        FuncidDefChangeRecord changeRecord = data.get(0);
+        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());
+        }
+        repository.save(changeRecord);
+        response.add("id", param.getId());
+        return response;
+    }
+
+    @Transactional
+    public MapResponse delete(List<Integer> param) {
+        MapResponse response = new MapResponse();
+        List<FuncidDefChangeRecord> list = repository.findAllById(param);
+        repository.deleteAll(list);
+        return response;
+    }
+
+    @Transactional
+    public void download(HttpServletResponse resp, List<Integer> idList) {
+//        List<ChangeRecord> data = repository.findAllById(idList);
+//        data.forEach(item -> {
+//            item.setState(3);
+//            item.setPublishUser(UserUtils.currentUserId() + "");
+//            item.setPublishTime(new Date());
+//        });
+//        repository.saveAll(data);
+//
+//        String fileName = DateUtils.format(new Date()) + ".sql";
+//        List<String> sqlList = getSqlList(idList);
+//
+//        OutputStream out = null;
+//        try {
+//            InputStream stream = getStream(sqlList);
+//            resp.reset();// 清空输出流
+//            String resultFileName = URLEncoder.encode(fileName, "UTF-8");
+//            resp.setCharacterEncoding("UTF-8");
+//            resp.setHeader("Content-disposition", "attachment; filename=" + resultFileName);// 设定输出文件头
+//            resp.setContentType("application/txt");// 定义输出类型
+//            out = resp.getOutputStream();
+//            byte[] buff = new byte[4096];
+//            int size = 0;
+//            while ((size = stream.read(buff)) != -1) {
+//                out.write(buff, 0, size);
+//            }
+//            out.flush();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        } finally {
+//            try {
+//                if (out != null) {
+//                    out.close();
+//                }
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//        }
+    }
+
+    public InputStream getStream(List<String> list) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        DataOutputStream out = new DataOutputStream(baos);
+        for (String sql : list) {
+            out.writeBytes(sql + "\r\n");
+        }
+        byte[] bytes = baos.toByteArray();
+        ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(bytes);
+        baos.close();
+        out.close();
+        return tInputStringStream;
+    }
+
+    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();
+//            Map<String, Object> map = json2map(JacksonMapper.toSimpleJson(changeRecord.getValue()));
+//            switch (changeRecord.getOperationType()) {
+//                case create:
+//                    sql.append("insert into");
+//                    if (changeRecord.getInfoCode() == null) {
+//                        sql.append(" RWD_DEF_CLASS");
+//                    } else {
+//                        sql.append(" RWD_DEF_FUNCID");
+//                    }
+//                    sql.append(" (");//表名
+//                    map.keySet().forEach(item -> {
+//                        sql.append(humpToUnderline(item) + ",");
+//                    });
+//                    sql.deleteCharAt(sql.length() - 1);
+//                    sql.append(") values (");
+//                    map.values().forEach(item -> {
+//                        sql.append("'" + item + "',");
+//                    });
+//                    sql.deleteCharAt(sql.length() - 1);
+//                    sql.append(")");
+//                    break;
+//                case update:
+//                    sql.append("update");
+//                    if (changeRecord.getInfoCode() == null) {
+//                        sql.append(" RWD_DEF_CLASS");
+//                    } else {
+//                        sql.append(" RWD_DEF_FUNCID");
+//                    }
+//                    sql.append(" set");
+//                    for (Map.Entry<String, Object> entry : map.entrySet()) {
+//                        sql.append(" " + humpToUnderline(entry.getKey()) + " = '" + entry.getValue() + "',");
+//                    }
+//                    sql.deleteCharAt(sql.length() - 1);
+//                    break;
+//                case delete:
+//                    sql.append("delete from");
+//                    if (changeRecord.getInfoCode() == null) {
+//                        sql.append(" RWD_DEF_CLASS");
+//                    } else {
+//                        sql.append(" RWD_DEF_FUNCID");
+//                    }
+//                    break;
+//            }
+//            if (!EnumOperationType.create.equals(changeRecord.getOperationType())) {
+//                sql.append(" where 1=1");
+//                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;
+        return null;
+    }
+
+    public static void main(String[] args) {
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        System.err.println(uuid);
+    }
+
+    private 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 res;
+    }
+
+    /***
+     * 驼峰命名转为下划线命名
+     */
+    private String humpToUnderline(String para) {
+        StringBuilder sb = new StringBuilder(para);
+        int temp = 0;//定位
+        if (!para.contains("_")) {
+            for (int i = 0; i < para.length(); i++) {
+                if (Character.isUpperCase(para.charAt(i))) {
+                    sb.insert(i + temp, "_");
+                    temp += 1;
+                }
+            }
+        }
+        return sb.toString().toUpperCase();
+    }
+
+}
+