Răsfoiți Sursa

feat:客户端表格数据按照指定日期格式解析

侯茂昌 1 an în urmă
părinte
comite
c01c4d205d

+ 1 - 0
zkqy-business/pom.xml

@@ -35,6 +35,7 @@
             <artifactId>zkqy-process-execution</artifactId>
             <version>3.8.5</version>
         </dependency>
+
     </dependencies>
 
     <properties>

+ 2 - 1
zkqy-business/src/main/java/com/zkqy/business/controller/CommonController.java

@@ -88,8 +88,9 @@ public class CommonController extends BaseController {
     @GetMapping("/getTableList")
     public TableDataInfo queryTableList(CommonEntity commonEntity) throws TenantDataSource {
         TableSql tableSql = iTableSqlService.selectTableSqlByTSqlKey(commonEntity.getQueryMap().get("sqlkey").toString());
+        String tableFormat = dragTableService.getTableFormatBySqlKey(tableSql.getSqlKey());
         startPage();  // 校验是否sqlserver 否执行 是执行另一种方式的分页
-        return getDataTable(commonService.queryGroupTableList(commonEntity, tableSql));
+        return getDataTable(commonService.queryGroupTableList(commonEntity, tableSql,tableFormat));
     }
 
     /**

+ 6 - 0
zkqy-business/src/main/java/com/zkqy/business/service/IDragTableService.java

@@ -50,4 +50,10 @@ public interface IDragTableService
      * 根据tableKey查询sqlKey
      */
     DragTable selectSqlKeyByTableKey(String tableKey);
+
+
+    /**
+     * 根据sqlKey查询Table的日期格式信息
+     */
+    String getTableFormatBySqlKey(String sqlKey);
 }

+ 7 - 0
zkqy-business/src/main/java/com/zkqy/business/service/impl/DragTableServiceImpl.java

@@ -4,6 +4,7 @@ import com.zkqy.business.entity.*;
 import com.zkqy.business.entity.vo.DragTableVo;
 import com.zkqy.business.mapper.*;
 import com.zkqy.business.service.IDragTableService;
+import com.zkqy.common.utils.PageUtils;
 import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
 import com.zkqy.execution.produce.dispersed.mapper.CommonMapper;
 import com.zkqy.execution.produce.dispersed.mapper.TableSqlMapper;
@@ -158,6 +159,12 @@ public class DragTableServiceImpl implements IDragTableService {
         return dragTableMapper.selectDragTableByTableKey(tableKey);
     }
 
+    @Override
+    public String getTableFormatBySqlKey(String sqlKey) {
+        DragTable dragTable = dragTableMapper.selectDragTableBySqlKey(sqlKey);
+        return dragTable.getTimeFormat();
+    }
+
     /**
      * 表格按钮过滤子级
      * @param root

+ 12 - 0
zkqy-common/src/main/java/com/zkqy/common/utils/StringUtils.java

@@ -6,6 +6,9 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.springframework.util.AntPathMatcher;
 import com.zkqy.common.constant.Constants;
 import com.zkqy.common.core.text.StrFormatter;
@@ -23,6 +26,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
     /** 下划线 */
     private static final char SEPARATOR = '_';
 
+    private static final String DATE_TIME_PATTERN = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}";
+
+
+    public static boolean isValidDateTimeFormat(String input) {
+        Pattern pattern = Pattern.compile(DATE_TIME_PATTERN);
+        Matcher matcher = pattern.matcher(input);
+        return matcher.matches();
+    }
+
     /**
      * 获取参数不为空值
      * 

+ 1 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/entity/runbpm/BpmRunNodeFormFilterConditionsVo.java

@@ -50,7 +50,7 @@ public class BpmRunNodeFormFilterConditionsVo {
 
     public BpmRunNodeFormFilterConditionsVo() {
         this.isNodeOnlyData = true;
-        this.isTableNameKey=true;
+        this.isTableNameKey= true;
     }
 
 

+ 1 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/ICommonService.java

@@ -78,7 +78,7 @@ public interface ICommonService {
      * @param tableSql
      * @return
      */
-    List<CommonEntity> queryGroupTableList(CommonEntity commonEntity, TableSql tableSql);
+    List<CommonEntity> queryGroupTableList(CommonEntity commonEntity, TableSql tableSql,String tableFormat);
 
 
 

+ 24 - 2
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/CommonServiceImpl.java

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.SecurityUtils;
+import com.zkqy.common.utils.StringUtils;
 import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
 import com.zkqy.execution.produce.dispersed.entity.TableSql;
 import com.zkqy.execution.produce.dispersed.mapper.CommonMapper;
@@ -21,6 +22,9 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -36,6 +40,7 @@ public class CommonServiceImpl implements ICommonService {
     @Resource
     private TableSqlMapper tableSqlMapper;
 
+
     @Override
     public List<CommonEntity> selectList(CommonEntity commonEntity) {
         String tableName = (String) commonEntity.getBasicMap().get("tableName");
@@ -241,7 +246,7 @@ public class CommonServiceImpl implements ICommonService {
     }
 
     @Override
-    public List<CommonEntity> queryGroupTableList(CommonEntity commonEntity, TableSql tableSql) {
+    public List<CommonEntity> queryGroupTableList(CommonEntity commonEntity, TableSql tableSql,String tableFormat) {
         //前端传递过来的参数
         Map<String, Object> queryMap = commonEntity.getQueryMap();
         //是否存在
@@ -274,7 +279,24 @@ public class CommonServiceImpl implements ICommonService {
                         ? conditions.get("queryCriteriaValue").toString() : "";
         String endSQL = replaceSql.get().replace("#{val}", queryCriteriaValue);
         String sqlString = tableSql.getTableSql() + " where " + endSQL;
-        return commonMapper.queryTableList(sqlString);
+        List<CommonEntity> commonEntities = commonMapper.queryTableList(sqlString);
+        //根据sqlKey查询表格数据
+        commonEntities.forEach(item->{
+            Map<String, Object> resultMap = item.getResultMap();
+            resultMap.forEach((k,v) -> {
+                if(StringUtils.isNotNull(v)&&!v.toString().isEmpty()){
+                    //正则匹配成功
+                    boolean validDateTimeFormat = isValidDateTimeFormat(v.toString());
+                    if(validDateTimeFormat){
+                        LocalDateTime localDateTime = DateUtils.toLocalDateTime(v.toString(), "yyyy-MM-dd HH:mm:ss");
+                        DateTimeFormatter fmt = DateTimeFormatter.ofPattern(tableFormat);
+                        String dateStr = localDateTime.format(fmt);
+                        resultMap.put(k,dateStr);
+                    }
+                }
+            });
+        });
+        return commonEntities;
     }
 
     @Override