Jelajahi Sumber

新增/修改信息点增加排序

linhuili 3 tahun lalu
induk
melakukan
ccf9b04b3a

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

@@ -61,6 +61,10 @@ public class FuncidDefChangeRecord {
     private String note;
     private Boolean subFlag;
     private Boolean weakPoint;
+    /**通用信息点标记,1-通用信息点,2-个性化信息点*/
+    private String shareType;
+    /**逻辑排序序号*/
+    private Integer orderSeq;
     @Enumerated(EnumType.STRING)
     private EnumOperationType operationType;//操作类型
     private String operationUser;//操作人

+ 54 - 1
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefChangeRecordService.java

@@ -1,5 +1,6 @@
 package com.persagy.dmp.rwd.edit.service;
 
+import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -574,18 +575,55 @@ public class FuncidDefChangeRecordService {
             funcidDef.setIsUsed(1);//状态 0.历史版本 1.使用中
             funcidDef.setVersion(version);//版本
             funcidDef.setLastUpdateTime(new Date());//发布时间
-            funcidDefList.add(funcidDef);
+            funcidDef.setOrderSeq(item.getOrderSeq());
             List<FuncidDefModel> funcidDefModelList = queryFuncidDef(item.getCode(), item.getClassCode(), null);
             if (funcidDefModelList != null) {
                 FuncidDefModel funcidDefModel = funcidDefModelList.get(0);
                 funcidDefModel.setIsUsed(0);
                 funcidDefModel.setLastUpdateTime(new Date());
                 funcidDefList.add(FuncidDef.fromModel(funcidDefModel));
+
+                funcidDef.setShareType(funcidDefModel.getShareType());
+                funcidDef.setOrderSeq(funcidDefModel.getOrderSeq());
+            }else{
+                //修改信息点位置
+                updateFuncidOrderSeq(funcidDef);
             }
+            if(StringUtils.isEmpty(funcidDef.getShareType())){
+                //默认自定义信息点
+                funcidDef.setShareType("2");
+            }else{
+                funcidDef.setShareType(funcidDef.getShareType());
+            }
+            funcidDef.setOrderSeq(funcidDef.getOrderSeq()+1);
+            funcidDefList.add(funcidDef);
         });
         funcidDefRepository.saveAll(funcidDefList);
     }
 
+    /**
+     * 修改信息点位置
+     * @param funcidDef
+     */
+    public void updateFuncidOrderSeq(FuncidDef funcidDef){
+        int minSeq = 1;
+        boolean flag = false;
+        List<FuncidDef> funcidDefList = new ArrayList<>();
+        List<FuncidDefModel> funcidDefModelList = queryFuncidDef(funcidDef.getClassCode());
+        for(FuncidDefModel funcidDefModel:funcidDefModelList){
+            Integer orderSeq = funcidDefModel.getOrderSeq();
+            Integer nowOrderSeq = funcidDef.getOrderSeq();
+            if(orderSeq == nowOrderSeq+1){
+                flag = true;
+            }
+            if(flag){
+                funcidDefModel.setOrderSeq(funcidDefModel.getOrderSeq()+1);
+                funcidDefList.add(FuncidDef.fromModel(funcidDefModel));
+            }
+        }
+        funcidDefRepository.saveAll(funcidDefList);
+    }
+
     private List<FuncidDefModel> queryFuncidDef(String code, String classCode, String neVersion) {
         List<FuncidDefModel> data = null;
         JacksonCriteria criteria = JacksonCriteria.newInstance();
@@ -620,6 +658,21 @@ public class FuncidDefChangeRecordService {
         return null;
     }
 
+    private List<FuncidDefModel> queryFuncidDef(String classCode) {
+        List<FuncidDefModel> data = null;
+        JacksonCriteria criteria = JacksonCriteria.newInstance();
+        criteria.add("type", "common");
+
+        if (classCode != null) {
+            criteria.add("classCode", classCode);
+        }
+        ListResponse<FuncidDefModel> queryFuncid = funcidDefService.query(criteria);
+        data = queryFuncid.getData();
+        if (data != null && data.size() != 0) {
+            return data;
+        }
+        return null;
+    }
     /**
      * 添加变更记录
      * @param funcidDef

+ 4 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefService.java

@@ -108,6 +108,10 @@ public class FuncidDefService {
                 FuncidDefModel model = entity.toModel();
                 return model;
             }).collect(Collectors.toList());
+            //排序
+            if (CollUtil.isNotEmpty(collect)){
+                sortFuncidForEdit(collect);
+            }
             result.setData(collect);
         }
         return result;