From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 27 五月 2020 09:59:29 +0800
Subject: [PATCH] merage

---
 src/main/java/com/highdatas/mdm/service/impl/SysViewServiceImpl.java |  446 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 324 insertions(+), 122 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/SysViewServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/SysViewServiceImpl.java
index 1f3e728..1a3420d 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/SysViewServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/SysViewServiceImpl.java
@@ -14,6 +14,7 @@
 import com.highdatas.mdm.util.pool.MqEntity;
 import com.highdatas.mdm.util.pool.MqMessage;
 import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -36,6 +37,7 @@
  * @since 2020-04-15
  */
 @Service
+@Slf4j
 public class SysViewServiceImpl extends ServiceImpl<SysViewMapper, SysView> implements ISysViewService {
     @Autowired
     ISysViewJoinService joinService;
@@ -61,10 +63,32 @@
     DispenseService dispenseService;
     @Autowired
     RuleClient ruleClient;
+    @Autowired
+    AntianaphylaxisClient antianaphylaxisClient;
+    @Autowired
+    RedisClient redisClient;
+    /**
+     *
+     * @description:  閫氳繃id鑾峰彇瑙嗗浘鍒嗗彂鐨勫垎椤电殑鍥炰俊
+     * @param viewId 瑙嗗浘id
+     * @return: 鍒嗛〉瀵硅薄
+     *
+     */
     @Override
     public Page getInitPageInfo(String viewId) {
-        Page page = new Page(0);
+
+
         SysView sysView = selectById(viewId);
+        String userId = sysView.getUserId();
+        String realRedisKey = RedisClient.getRealRedisKey(userId + "-" + sysView.getId());
+        Object redisValObj = redisClient.getRedisValObj(realRedisKey);
+        if (redisValObj != null) {
+            JSONObject object = (JSONObject) redisValObj;
+            Page page = JSONObject.parseObject(object.toJSONString(), Page.class);
+            return page;
+        }
+
+        Page page = new Page(0);
         String viewTableName = sysView.getViewTableName();
         List<TableSchemaResult> tableField = tableInfoMapper.getTableField(viewTableName);
         int totalLength = 0;
@@ -76,8 +100,10 @@
         page.setPageSize(pageSize);
         Long viewCount = getViewCount(sysView);
         if (viewCount == 0) {
-            return null;
+            redisClient.putRedisValObj(realRedisKey, page);
+            return page;
         }
+        page.setRecordCount(viewCount.intValue());
         int pages;
         if (viewCount % pageSize == 0) {
             pages = Long.valueOf(viewCount/pageSize).intValue();
@@ -85,75 +111,115 @@
             pages =  (Long.valueOf(viewCount/pageSize).intValue())  + 1;
         }
         page.setPages(pages);
+
+        redisClient.putRedisValObj(realRedisKey, page);
         return page;
     }
+    /**
+     *
+     * @description:  鍒涘缓瑙嗗浘
+     * @param viewId 瑙嗗浘id
+     * @return: 鍒涘缓鏄惁鎴愬姛
+     *
+     */
     @Override
     public boolean createView(String viewId) {
-        SysView sysView = selectById(viewId);
-        if (sysView == null) {
-            return false;
+        try {
+            SysView sysView = selectById(viewId);
+
+            if (sysView == null) {
+                log.error("view not found");
+                return false;
+            }
+            String userId = sysView.getUserId();
+            TUser user = DbUtils.getUserById(userId);
+            if (user == null) {
+                log.error("user not found");
+                return false;
+            }
+
+            Maintain baseMaintain = getBaseMaintain(sysView);
+            if (baseMaintain == null) {
+                log.error("baseMaintain not found");
+                return false;
+            }
+            String baseTableName = baseMaintain.getTableName();
+            sysView.setBaseTableName(baseTableName);
+
+            List<String> totalFieldList = getTotalFieldList(sysView);
+
+            //
+            String tableName = getViewTableName(sysView);
+            log.info("View TABLE name:" + tableName);
+            totalFieldList.add(Constant.ID);
+            boolean created = dropCreateViewTable(totalFieldList, tableName);
+
+            //TODO 涓婚敭
+            if (!created) {
+                log.info("un create view table:" + tableName);
+                return false;
+            }
+            totalFieldList.remove(Constant.ID);
+            List<String> baseFieldList = getBaseFieldList(sysView);
+            //trans first
+            if (baseFieldList == null && baseFieldList.isEmpty()) {
+                log.error("base field not found:");
+                return false;
+            }
+            baseFieldList.add(Constant.ID);
+            String baseFields = baseFieldList.stream()
+                    .map(s -> Constant.ID.equalsIgnoreCase(s) ? Constant.MYSQL_UUID : s)
+                    .collect(Collectors.joining(Constant.COMMA));
+            String fixBaseFields = baseFieldList.stream()
+                    .map(s -> Constant.ID.equalsIgnoreCase(s) ? Constant.ID : changeFieldName(baseTableName, s))
+                    .collect(Collectors.joining(Constant.COMMA));
+
+            baseFieldList.remove(Constant.ID);
+
+            String filter = masterAuthorService.getFilter(user, baseMaintain.getId());
+            if (StringUtils.isEmpty(filter)) {
+                filter = Constant.WHERE_DEFAULT;
+            }
+
+            log.info("View base filter:" + filter);
+            String s = masterDataService.selectByVersionSql(null, baseTableName, baseFieldList, filter, baseMaintain.getVersion(), false);
+            log.info("View base select sql:" + s);
+            //base INSERT
+            tableInfoMapper.insertOneSelect(tableName, fixBaseFields, baseFields, s);
+
+            log.info("insert select");
+            // left insert
+            InsertJoin(sysView);
+            log.info("insert left join");
+            // change val common
+            changeValCommon(sysView);
+            log.info("changeValCommon");
+            //change logic
+
+
+            boolean checked = checkTempData(sysView);
+            if (!checked) {
+                sysView.setStatus(ViewStatus.unChecked).updateById();
+            } else {
+                sysView.setStatus(ViewStatus.working).updateById();
+            }
+
+            //
+            return true;
         }
-        String userId = sysView.getUserId();
-        TUser user = DbUtils.getUserById(userId);
-        if (user == null) {
+        catch (Exception e) {
+            e.printStackTrace();
             return false;
         }
 
-        Maintain baseMaintain = getBaseMaintain(sysView);
-        if (baseMaintain == null) {
-            return false;
-        }
-        String baseTableName = baseMaintain.getTableName();
-        sysView.setBaseTableName(baseTableName);
-
-        List<String> totalFieldList = getTotalFieldList(sysView);
-
-        //
-        String tableName = getViewTableName(sysView);
-        totalFieldList.add(Constant.ID);
-        boolean created = dropCreateViewTable(totalFieldList, tableName);
-        //TODO 涓婚敭
-        if (!created) {
-            return false;
-        }
-        totalFieldList.remove(Constant.ID);
-        List<String> baseFieldList = getBaseFieldList(sysView);
-        //trans first
-        baseFieldList.add(Constant.ID);
-        String baseFields = baseFieldList.stream()
-                .map(s -> Constant.ID.equalsIgnoreCase(s) ? Constant.MYSQL_UUID : s)
-                .collect(Collectors.joining(Constant.COMMA));
-        String fixBaseFields = baseFieldList.stream()
-                .map(s -> Constant.ID.equalsIgnoreCase(s) ? Constant.ID : changeFieldName(baseTableName, s))
-                .collect(Collectors.joining(Constant.COMMA));
-
-        baseFieldList.remove(Constant.ID);
-
-        String filter = masterAuthorService.getFilter(user, baseMaintain.getId());
-
-        String s = masterDataService.selectByVersionSql(null, baseTableName, baseFieldList, filter, baseMaintain.getVersion(), false);
-
-        //base INSERT
-        tableInfoMapper.insertOneSelect(tableName, fixBaseFields, baseFields, s);
-
-        // left insert
-        InsertJoin(sysView);
-
-        // change val common
-        changeValCommon(sysView);
-
-
-        boolean checked = checkTempData(sysView);
-        if (!checked) {
-            sysView.setStatus(ViewStatus.unChecked).updateById();
-        } else {
-            sysView.setStatus(ViewStatus.working).updateById();
-        }
-
-        //
-        return true;
     }
-
+    /**
+     *
+     * @description:  瑙嗗浘璐ㄩ噺妫�楠�
+     * @param sysView 瑙嗗浘
+     * @return: 鏄惁閫氳繃妫�楠�
+     *
+     */
     private boolean checkTempData(SysView sysView) {
         SysAssembleCheckType checkType = sysView.getCheckType();
         if (checkType == null) {
@@ -185,7 +251,13 @@
         }
         return true;
     }
-
+    /**
+     *
+     * @description:  鎻掑叆鍏宠仈琛ㄦ暟鎹�
+     * @param sysView 瑙嗗浘
+     * @return:
+     *
+     */
     private void InsertJoin(SysView sysView) {
         String userId = sysView.getUserId();
         TUser user = DbUtils.getUserById(userId);
@@ -196,10 +268,9 @@
         List<SysViewJoin> viewJoinList = sysView.getViewJoinList();
 
         for (SysViewJoin sysViewJoin : viewJoinList) {
-            sysViewJoin.setBaseField(changeFieldName(baseTableName, sysViewJoin.getBaseField()));
+            sysViewJoin.setBaseField(changeFieldName(sysView.getBaseTableName(), sysViewJoin.getBaseField()));
             Maintain joinMaintain = getJoinMaintain(sysViewJoin);
             String joinTableName = joinMaintain.getTableName();
-
             sysViewJoin.setBaseTableName(sysView.getViewTableName());
             String joinStr = sysViewJoin.createJoinStr();
             if (StringUtils.isEmpty(joinStr)) {
@@ -218,16 +289,26 @@
         // JOIN
         String joinSql = joinBuilder.toString();
         if (StringUtils.isEmpty(joinSql)) {
+            log.info("sysViewJoin sql is null");
             return;
         }
         tableInfoMapper.updateJoin(tableName, joinSql, updateFieldBuilder.toString(), Constant.WHERE_DEFAULT);
     }
-
+    /**
+     *
+     * @description:  1瀵�1 鏁版嵁杞崲
+     * @param sysView 瑙嗗浘
+     * @return:
+     *
+     */
     private void changeValCommon(SysView sysView) {
         String mappingField = sysView.getMappingField();
         String tableName = sysView.getViewTableName();
         String mappingTable = sysView.getMappingTable();
-
+        mappingTable = tableInfoMapper.selectTableByName(mappingTable);
+        if (StringUtils.isEmpty(mappingTable)) {
+            return;
+        }
         List<String> split = DbUtils.split(mappingField);
         for (String oneMapField : split) {
             String base = MessageFormat.format(Constant.Alias, tableName, oneMapField);
@@ -243,7 +324,14 @@
             tableInfoMapper.updateJoin(tableName, changeJoinStr, updateSegment.toRawString(), filterSegment.toString());
         }
     }
-
+    /**
+     *
+     * @description:  浠庢柊鐢熸垚瑙嗗浘琛�
+     * @param tableName 琛ㄥ悕
+     * @param totalFieldList 瀛楁鍒楄〃
+     * @return: 鐢熸垚鏄惁鎴愬姛
+     *
+     */
     private boolean dropCreateViewTable(List<String> totalFieldList, String tableName) {
         boolean created = unBigDataDataSourceInfo.dropData(tableName);
         if (!created) {
@@ -258,6 +346,13 @@
         return true;
     }
 
+    /**
+     *
+     * @description:  鑾峰彇瑙嗗浘鐨勭墿鐞嗚〃鍚�
+     * @param view 瑙嗗浘瀵硅薄
+     * @return: 鐗╃悊琛ㄥ悕
+     *
+     */
     @Override
     public String getViewTableName(SysView view) {
         String viewTableName = view.getViewTableName();
@@ -268,7 +363,13 @@
         }
         return viewTableName;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇瑙嗗浘 mapping鐨勭墿鐞嗚〃鍚�
+     * @param view 瑙嗗浘瀵硅薄
+     * @return: mapping鐨勭墿鐞嗚〃鍚�
+     *
+     */
     @Override
     public String getMappingTableName(SysView view) {
         String id = view.getId();
@@ -277,6 +378,15 @@
         view.setMappingTable(mappingTableName).updateById();
         return mappingTableName;
     }
+    /**
+     *
+     * @description:  鑾峰彇鍏宠仈涓婚鐨勬湁鏉冮檺鐨勫瓧娈�
+     * @param user 鐢ㄦ埛
+     * @param join 鍏宠仈涓婚瀵硅薄
+     * @return: 鍏宠仈涓婚鐨勬湁鏉冮檺鐨勫瓧娈�
+     *
+     */
+
     @Override
     public List<String> getSubFieldList(SysViewJoin join, TUser user) {
         String fieldsStr = join.getFields();
@@ -284,14 +394,22 @@
         if (Constant.All.equalsIgnoreCase(fieldsStr)) {
             Maintain joinMaintain = getJoinMaintain(join);
             List<SysField> fieldList = masterAuthorService.getField(user, joinMaintain.getId());
-            baseFieldList = fieldList.stream().map(sysField -> sysField.getField()).collect(Collectors.toList());
+            if (fieldList != null) {
+                baseFieldList = fieldList.stream().map(sysField -> sysField.getField()).collect(Collectors.toList());
+            }
         }else {
             baseFieldList = DbUtils.split(fieldsStr);
         }
 
         return baseFieldList;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇鍩哄噯涓婚鐨勬湁鏉冮檺鐨勫瓧娈�
+     * @param sysView 涓婚
+     * @return: 鍩哄噯涓婚鐨勬湁鏉冮檺鐨勫瓧娈�
+     *
+     */
     private List<String> getBaseFieldList(SysView sysView) {
         String fieldsStr = sysView.getFields();
         List<String> baseFieldList = new ArrayList<>();
@@ -307,6 +425,13 @@
 
         return baseFieldList;
     }
+    /**
+     *
+     * @description:  鑾峰彇1瀵�1杞崲鐨勫瓧娈�
+     * @param sysView 瑙嗗浘
+     * @return: 1瀵�1杞崲鐨勫瓧娈靛垪琛�
+     *
+     */
     @Override
     public List<ViewMapFieldItem> getMapField(SysView sysView) {
         List<ViewMapFieldItem> result = new ArrayList<>();
@@ -357,14 +482,26 @@
         }
         return result;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇鍏宠仈涓婚瀵硅薄
+     * @param sysView 瑙嗗浘
+     * @return: 鑾峰彇鍏宠仈涓婚瀵硅薄
+     *
+     */
     private List<SysViewJoin> getJoinList(SysView sysView) {
         String id = sysView.getId();
         Wrapper<SysViewJoin> eq = new EntityWrapper<SysViewJoin>().eq(Constant.PARENT_ID, id);
         List<SysViewJoin> joinList = joinService.selectList(eq);
         return joinList;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇鍏ㄩ儴瀛楁鍒楄〃
+     * @param sysView 瑙嗗浘
+     * @return: 鍏ㄩ儴瀛楁鍒楄〃
+     *
+     */
     public List<String> getTotalFieldList(SysView sysView) {
         String userId = sysView.getUserId();
         TUser user = DbUtils.getUserById(userId);
@@ -388,7 +525,13 @@
         sysView.setViewJoinList(sysViewJoins);
         return totalFieldList;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇鍩哄噯涓婚瀵硅薄
+     * @param sysView 瑙嗗浘
+     * @return: 鑾峰彇鍩哄噯涓婚瀵硅薄
+     *
+     */
     @Override
     public Maintain getBaseMaintain(SysView sysView) {
 
@@ -404,7 +547,13 @@
     }
     return baseMaintain;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇鍏宠仈涓婚瀵硅薄
+     * @param viewJoin 瑙嗗浘鍏宠仈涓婚
+     * @return: 鑾峰彇鍏宠仈涓婚瀵硅薄
+     *
+     */
     @Override
     public Maintain getJoinMaintain(SysViewJoin viewJoin) {
 
@@ -420,46 +569,66 @@
         }
         return baseMaintain;
     }
-
+    /**
+     *
+     * @description:  鑾峰彇瑙嗗浘瀹為檯浣跨敤鐨勫瓧娈�
+     * @param field 涓婚瀛楁
+     * @param baseTableName 琛ㄥ悕
+     * @return: 瑙嗗浘瀹為檯浣跨敤鐨勫瓧娈�
+     *
+     */
     @Override
     public String changeFieldName(String baseTableName, String field) {
         return DbUtils.StrJoinLink(Constant.EMPTY_Str, baseTableName, Constant.UnderLine, field);
     }
-
+    /**
+     *
+     * @description:  瀹℃壒缁撴潫鍚庢牴鎹潯浠堕噸鏂扮敓鎴愯鍥惧苟鍒嗗彂
+     * @param maintainId 鐗堟湰id
+     * @param status 瀹℃壒鐘舵��
+     * @return:
+     *
+     */
     @Override
     public void dealFlow(String maintainId, ActivitiStatus status) {
-        if (!ActivitiStatus.open.equals(status)) {
+        try {
+            if (!ActivitiStatus.open.equals(status)) {
+                return;
+            }
+            Maintain maintain = maintainService.selectById(maintainId);
+            String maintainTableName = maintain.getTableName();
+
+            Wrapper<SysView> eq = new EntityWrapper<SysView>()
+                    .eq("need_update", true)
+                    .eq("base_maintain", maintainTableName);
+            List<SysView> sysViews = selectList(eq);
+            for (SysView sysView : sysViews) {
+                ViewStatus viewStatus = sysView.getStatus();
+                if (!ViewStatus.working.equals(viewStatus)) {
+                    continue;
+                }
+                createView(sysView.getId());
+
+                Boolean subscribe = sysView.getSubscribe();
+                if (!subscribe) {
+                    continue;
+                }
+                MqEntity mqEntity = new MqEntity();
+                mqEntity.setUserId(sysView.getUserId());
+                mqEntity.setMsgTopicName(Constant.View);
+                mqEntity.setType(Constant.View);
+                mqEntity.setDataId(sysView.getId());
+                mqEntity.setMsgTagName(sysView.getId());
+                mqEntity.setMsgKey(DbUtils.getUUID(16));
+                MqMessage mqMessage = new MqMessage(mqEntity);
+                dispenseService.pushActiveMq(mqMessage);
+            }
             return;
         }
-        Maintain maintain = maintainService.selectById(maintainId);
-        String maintainTableName = maintain.getTableName();
-
-        Wrapper<SysView> eq = new EntityWrapper<SysView>()
-                .eq("need_update", true)
-                .eq("base_maintain", maintainTableName);
-        List<SysView> sysViews = selectList(eq);
-        for (SysView sysView : sysViews) {
-            ViewStatus viewStatus = sysView.getStatus();
-            if (!ViewStatus.working.equals(viewStatus)) {
-                continue;
-            }
-            createView(sysView.getId());
-
-            Boolean subscribe = sysView.getSubscribe();
-            if (!subscribe) {
-                continue;
-            }
-            MqEntity mqEntity = new MqEntity();
-            mqEntity.setUserId(sysView.getUserId());
-            mqEntity.setMsgTopicName(Constant.View);
-            mqEntity.setType(Constant.View);
-            mqEntity.setDataId(sysView.getId());
-            mqEntity.setMsgTagName(sysView.getId());
-            mqEntity.setMsgKey(DbUtils.getUUID(16));
-            MqMessage mqMessage = new MqMessage(mqEntity);
-            dispenseService.pushActiveMq(mqMessage);
+        catch (Exception e) {
+            e.printStackTrace();
         }
-        return;
+
     }
 
     @Override
@@ -538,8 +707,9 @@
     @Override
     public Result getMapData(SysView sysView, String changedField, Integer pageNo, int pageSize) {
         String mappingTable = sysView.getMappingTable();
-        if (StringUtils.isEmpty(mappingTable)) {
-            return  null;
+
+        if (StringUtils.isEmpty(mappingTable) && !StringUtils.isEmpty(sysView.getMappingField())) {
+            return  Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
         }
         boolean exists = unBigDataDataSourceInfo.checkTableExists(mappingTable);
         if (!exists) {
@@ -572,39 +742,66 @@
     public long getViewCount(SysView sysView) {
         String viewTableName = sysView.getViewTableName();
         if (StringUtils.isEmpty(viewTableName)) {
+            log.info(" view table is null");
             return  0;
         }
         boolean exists = unBigDataDataSourceInfo.checkTableExists(viewTableName);
         if (!exists) {
+            log.info(" view table is not exist" + viewTableName);
             return 0;
         }
 
         Long count = tableInfoMapper.getCount(viewTableName, Constant.WHERE_DEFAULT);
+        log.info(" view table count" + count);
         if (count == null) {
             return 0L;
         }
         return count;
     }
-
     @Override
     public Result getViewData(SysView sysView, Integer pageNo, int pageSize) {
+        return getViewData(sysView, pageNo, pageSize,null);
+    }
+
+    @Override
+    public Result getViewData(SysView sysView, Integer pageNo, int pageSize, Page page) {
         String viewTableName = sysView.getViewTableName();
-        long count = getViewCount(sysView);
+        long count = 0;
+
+        if (page == null) {
+            count = getViewCount(sysView);
+            page = new Page(count);
+            page.setPageSize(pageSize);
+            page.setPageNo(pageNo);
+        }else {
+            count = page.getRecordCount();
+        }
+
+        log.info(" view count "+count);
         if (count == 0) {
             return null;
         }
-        Page page = new Page(count);
-        page.setPageSize(pageSize);
-        page.setPageNo(pageNo);
+
         List<TableSchemaResult> tableField = tableInfoMapper.getTableField(viewTableName);
         String fields = tableField.stream().map(tableSchemaResult -> tableSchemaResult.getFieldName()).collect(Collectors.joining(Constant.COMMA));
+        log.info(" view field" + fields);
+
         List<Map<String, Object>> maps = tableInfoMapper.selectByPage(viewTableName, fields, Constant.WHERE_DEFAULT, page.getLimitSQL());
+        if (maps == null || maps.isEmpty()) {
+            log.info(" view data is null");
+        }
+        Map<String, AntianaphylaxisResult> helpfulField = antianaphylaxisClient.getHelpfulField(fields, viewTableName);
+        antianaphylaxisClient.fixMasterData(maps,helpfulField);
+
         JSONObject object = new JSONObject();
         object.fluentPut("records", maps);
-        object.fluentPut("pages", page.getPageCount());
-        object.fluentPut("current", pageNo);
-        object.fluentPut("total", count);
-        object.fluentPut("pageSize", page.getPageSize());
+        if (page == null) {
+            object.fluentPut("pages", page.getPageCount());
+            object.fluentPut("current", pageNo);
+            object.fluentPut("total", count);
+            object.fluentPut("pageSize", page.getPageSize());
+        }
+
 
         //fields
         ArrayList<ViewField> sysFields = new ArrayList<>();
@@ -620,7 +817,7 @@
             ViewField viewField = new ViewField();
             viewField.setChangedField(changeFieldName);
             viewField.setField(field);
-            viewField.setFieldName(oneFieldByMaintain.getAlias());
+            viewField.setAlias(oneFieldByMaintain.getAlias());
             viewField.setMenuId(sysView.getId());
             viewField.setMenuName(sysView.getName());
             sysFields.add(viewField);
@@ -641,7 +838,7 @@
                 ViewField viewField = new ViewField();
                 viewField.setChangedField(changeFieldName);
                 viewField.setField(subField);
-                viewField.setFieldName(oneFieldByMaintain.getAlias());
+                viewField.setAlias(oneFieldByMaintain.getAlias());
                 viewField.setMenuId(sysView.getId());
                 viewField.setMenuName(sysView.getName());
                 sysFields.add(viewField);
@@ -663,6 +860,9 @@
         fields.add(field);
         fields.add(Constant.ID);
         String filter = masterAuthorService.getFilter(user, maintain.getId());
+        if (StringUtils.isEmpty(filter)) {
+            filter = Constant.WHERE_DEFAULT;
+        }
         String sql = masterDataService.selectByVersionSql(user, maintain.getTableName(), fields, filter, maintain.getVersion(), false);
         String tableName = MessageFormat.format(Constant.asTempSql, sql, Constant.H);
         String mappingTable = sysView.getMappingTable();
@@ -676,8 +876,6 @@
             maps = tableInfoMapper.selectDistinct(tableName, MessageFormat.format(Constant.FieldAsAlias, field, Constant.Pre), Constant.WHERE_DEFAULT);
 
         }
-
-
         //todo 澶ф暟鎹噺浼樺寲
         fields.remove(Constant.ID);
         ArrayList<SysField> sysFields = new ArrayList<>();
@@ -715,7 +913,11 @@
             if (StringUtils.isEmpty(mappingTable) || StringUtils.isEmpty(mappingfield)) {
                 return true;
             }
-            tableInfoMapper.delete(mappingTable, segment.toString());
+            mappingTable = tableInfoMapper.selectTableByName(mappingTable);
+            if (!StringUtils.isEmpty(mappingTable)){
+                tableInfoMapper.delete(mappingTable, segment.toString());
+            }
+
             String mappingField = sysView.getMappingField();
             List<String> split = DbUtils.split(mappingField);
             String collect = split.stream().filter(s -> !s.equalsIgnoreCase(changedField)).collect(Collectors.joining(Constant.SEMICOLON));

--
Gitblit v1.8.0