shiqian пре 4 година
родитељ
комит
8c432355ff

+ 13 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/dto/FormDataDto.java

@@ -71,6 +71,11 @@ public class FormDataDto implements Serializable {
     @JSONField(name = "status")
     @JSONField(name = "status")
     private String status;
     private String status;
 
 
+    /**
+     * username
+     */
+    private String username;
+
     /**
     /**
      * 跳转新增或者编辑页面显示的类型带不带折叠,如果isUi=true, 带折叠
      * 跳转新增或者编辑页面显示的类型带不带折叠,如果isUi=true, 带折叠
      */
      */
@@ -195,6 +200,14 @@ public class FormDataDto implements Serializable {
     public void setIsUi(Boolean ui) {
     public void setIsUi(Boolean ui) {
         isUi = ui;
         isUi = ui;
     }
     }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
 }
 }
 
 
 
 

+ 13 - 0
boman-common/boman-common-core/src/main/java/com/boman/common/core/utils/JSONArrayUtils.java

@@ -3,6 +3,9 @@ package com.boman.common.core.utils;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
 /**
  * @author shiqian
  * @author shiqian
  * @date 2021年03月26日 11:07
  * @date 2021年03月26日 11:07
@@ -19,4 +22,14 @@ public class JSONArrayUtils {
         return result;
         return result;
     }
     }
 
 
+    public static List<String> toList(JSONArray jsonArray){
+        ObjectUtils.requireNonNull(jsonArray, "toList jsonArray is empty");
+        List<String> result = new ArrayList<>(jsonArray.size());
+        for (Object obj : jsonArray) {
+            String obj1 = (String) obj;
+            result.add(obj1);
+        }
+        return result;
+    }
+
 }
 }


+ 2 - 2
boman-web-core/src/main/java/com/boman/web/core/controller/AttendanceController.java

@@ -31,14 +31,14 @@ public class AttendanceController {
     }
     }
 
 
     /**
     /**
-     * 功能描述: 根据tableName和userId查找当月考勤
+     * 功能描述: 根据tableName和userId查找迟到、早退等
      *
      *
      * @param tableName tableName
      * @param tableName tableName
      * @param userName  userName
      * @param userName  userName
      * @return com.boman.domain.dto.AjaxResult
      * @return com.boman.domain.dto.AjaxResult
      */
      */
     @GetMapping("/listByUserName/{tableName}/{userName}")
     @GetMapping("/listByUserName/{tableName}/{userName}")
-    public AjaxResult listByUserName(@PathVariable("tableName") String tableName, @PathVariable("userName") Long userName) {
+    public AjaxResult listByUserName(@PathVariable("tableName") String tableName, @PathVariable("userName") String userName) {
         return service.attendanceRecord(tableName, userName);
         return service.attendanceRecord(tableName, userName);
     }
     }
 
 

+ 4 - 4
boman-web-core/src/main/java/com/boman/web/core/mapper/StandardlyMapper.java

@@ -1,8 +1,8 @@
 package com.boman.web.core.mapper;
 package com.boman.web.core.mapper;
 
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.boman.web.core.utils.ColumnUtils;
 import com.boman.web.core.utils.ColumnUtils;
+import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -138,7 +138,7 @@ public interface StandardlyMapper {
     List<JSONObject> selectByCondition(@Param("tableName") String tableName
     List<JSONObject> selectByCondition(@Param("tableName") String tableName
             , @Param("condition") JSONObject condition
             , @Param("condition") JSONObject condition
             , @Param("packCondition") JSONObject packCondition
             , @Param("packCondition") JSONObject packCondition
-            , @Param("showData") JSONArray showData
+            , @Param("showData") List<String> showData
             , @Param("orderBy") String orderBy
             , @Param("orderBy") String orderBy
             , @Param("limit") int limit
             , @Param("limit") int limit
             , @Param("offset") int offset);
             , @Param("offset") int offset);
@@ -521,7 +521,7 @@ public interface StandardlyMapper {
             String orderBy = (String) para.get("orderBy");
             String orderBy = (String) para.get("orderBy");
             int limit = (int) para.get("limit");
             int limit = (int) para.get("limit");
             int offset = (int) para.get("offset");
             int offset = (int) para.get("offset");
-            JSONArray showData = (JSONArray) para.get("showData");
+            List<String> showData = (List<String>) para.get("showData");
 
 
             StringBuilder wholeSql = new StringBuilder();
             StringBuilder wholeSql = new StringBuilder();
             wholeSql.append("select ");
             wholeSql.append("select ");
@@ -682,7 +682,7 @@ public interface StandardlyMapper {
                     return " &lt;= " + value;
                     return " &lt;= " + value;
                 default:
                 default:
                     // in
                     // in
-                    List<Object> list = ((List<Object>) valueObj);
+                    List<Object> list = valueObj instanceof List ? ((List<Object>) valueObj) : Lists.newArrayList(valueObj);
                     return  " in (" + ColumnUtils.joinList(list) + ")";
                     return  " in (" + ColumnUtils.joinList(list) + ")";
             }
             }
         }
         }

+ 2 - 1
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -3,6 +3,7 @@ package com.boman.web.core.service;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.boman.common.core.utils.JSONArrayUtils;
 import com.boman.domain.constant.CacheConstants;
 import com.boman.domain.constant.CacheConstants;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.StringUtils;
 import com.boman.common.core.utils.StringUtils;
@@ -261,7 +262,7 @@ public class TableServiceCmdService {
             return AjaxResult.success(rows);
             return AjaxResult.success(rows);
         }
         }
 
 
-        List<JSONObject> result = selectService.selectByCondition(tableName, condition, packCondition, showData, dto);
+        List<JSONObject> result = selectService.selectByCondition(tableName, condition, packCondition, JSONArrayUtils.toList(showData), dto);
         result = filter(result, ObjectUtils::isNotEmpty);
         result = filter(result, ObjectUtils::isNotEmpty);
 
 
         // 查询时为null的列不显示的处理
         // 查询时为null的列不显示的处理

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/attendance/AttendanceService.java

@@ -20,7 +20,7 @@ public interface AttendanceService {
      * @param userName  userName
      * @param userName  userName
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      */
      */
-    AjaxResult attendanceRecord(String tableName, Long userName);
+    AjaxResult attendanceRecord(String tableName, String userName);
 
 
 
 
     /**
     /**

+ 59 - 26
boman-web-core/src/main/java/com/boman/web/core/service/attendance/AttendanceServiceImpl.java

@@ -4,13 +4,19 @@ import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
+import com.boman.common.redis.RedisKey;
+import com.boman.domain.GenTable;
+import com.boman.domain.GenTableColumn;
+import com.boman.domain.constant.FormDataConstant;
 import com.boman.domain.dto.AjaxResult;
 import com.boman.domain.dto.AjaxResult;
 import com.boman.domain.dto.ClockOnDto;
 import com.boman.domain.dto.ClockOnDto;
 import com.boman.domain.dto.FormDataDto;
 import com.boman.domain.dto.FormDataDto;
 import com.boman.web.core.service.TableServiceCmdService;
 import com.boman.web.core.service.TableServiceCmdService;
 import com.boman.web.core.service.attendance.rules.AttendanceRulesService;
 import com.boman.web.core.service.attendance.rules.AttendanceRulesService;
 import com.boman.web.core.service.common.ICommonService;
 import com.boman.web.core.service.common.ICommonService;
+import com.boman.web.core.service.select.IBaseSelectService;
 import com.boman.web.core.utils.AuthUtils;
 import com.boman.web.core.utils.AuthUtils;
+import com.google.common.collect.Lists;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -27,6 +33,9 @@ import static com.boman.domain.constant.AttendanceConst.*;
 import static com.boman.domain.constant.AttendanceRulesConst.ATTENDANCE_RULES_END_TIME;
 import static com.boman.domain.constant.AttendanceRulesConst.ATTENDANCE_RULES_END_TIME;
 import static com.boman.domain.constant.AttendanceRulesConst.ATTENDANCE_RULES_START_TIME;
 import static com.boman.domain.constant.AttendanceRulesConst.ATTENDANCE_RULES_START_TIME;
 import static com.boman.domain.constant.FormDataConstant.CONDITION;
 import static com.boman.domain.constant.FormDataConstant.CONDITION;
+import static com.boman.domain.constant.FormDataConstant.PAGE_ROWS;
+import static com.boman.web.core.utils.ColumnUtils.withoutHrReturnColumnNames;
+import static com.boman.web.core.utils.HandlerFormDataUtils.handleNullColumnValue;
 
 
 /**
 /**
  * @author shiqian
  * @author shiqian
@@ -43,6 +52,8 @@ public class AttendanceServiceImpl implements AttendanceService {
     private AttendanceRulesService rulesService;
     private AttendanceRulesService rulesService;
     @Resource
     @Resource
     private TableServiceCmdService cmdService;
     private TableServiceCmdService cmdService;
+    @Resource
+    private IBaseSelectService selectService;
 
 
     /**
     /**
      * 功能描述: 根据tableName和userId查找当月考勤
      * 功能描述: 根据tableName和userId查找当月考勤
@@ -51,7 +62,7 @@ public class AttendanceServiceImpl implements AttendanceService {
      * @param userName  userName
      * @param userName  userName
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      */
      */
-    private List<JSONObject> listByUserName(String tableName, Long userName) {
+    private List<JSONObject> listByUserName(String tableName, String userName) {
         requireNonNull(tableName, "tableName is empty");
         requireNonNull(tableName, "tableName is empty");
         requireNonNull(userName, "userName is empty");
         requireNonNull(userName, "userName is empty");
 
 
@@ -71,14 +82,14 @@ public class AttendanceServiceImpl implements AttendanceService {
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      */
      */
     @Override
     @Override
-    public AjaxResult attendanceRecord(String tableName, Long userName) {
+    public AjaxResult attendanceRecord(String tableName, String userName) {
         Map<String, Object> mapObj = new HashMap<>(4);
         Map<String, Object> mapObj = new HashMap<>(4);
         List<JSONObject> byMap = listByUserName(tableName, userName);
         List<JSONObject> byMap = listByUserName(tableName, userName);
         if (isEmpty(byMap)) {
         if (isEmpty(byMap)) {
             mapObj.put("leave", 0);
             mapObj.put("leave", 0);
             mapObj.put("late", 0);
             mapObj.put("late", 0);
             mapObj.put("leaveOr", 0);
             mapObj.put("leaveOr", 0);
-            mapObj.put("dateList", 0);
+            mapObj.put("dateList", new ArrayList<>(0));
             return AjaxResult.success(mapObj);
             return AjaxResult.success(mapObj);
         }
         }
 
 
@@ -115,7 +126,8 @@ public class AttendanceServiceImpl implements AttendanceService {
 
 
 
 
     /**
     /**
-     *根据tableName和userId查找当月考勤详细记录
+     * 根据tableName和userId查找当月考勤详细记录
+     *
      * @param dto
      * @param dto
      * @return
      * @return
      */
      */
@@ -123,26 +135,47 @@ public class AttendanceServiceImpl implements AttendanceService {
     public AjaxResult detailedRecord(FormDataDto dto) {
     public AjaxResult detailedRecord(FormDataDto dto) {
         // 查询条件
         // 查询条件
         JSONObject condition = ifNullSetEmpty(dto.getFixedData().getJSONObject(CONDITION));
         JSONObject condition = ifNullSetEmpty(dto.getFixedData().getJSONObject(CONDITION));
-        List<JSONObject> byMap = commonService.getByMap(dto.getTable(), condition);
-        List<Map<String,Object>> detailedRecordList = new ArrayList<>();
-        if (ObjectUtils.isNotEmpty(byMap)){
-            for (JSONObject jsonObject : byMap) {
-                Map<String,Object> map = new HashMap<>();
-                Object attendanceTableWork = jsonObject.get("attendance_table_work");
-                Object attendanceTableOffWork = jsonObject.get("attendance_table_offwork");
-                map.put("attendanceTableWork","未打卡");
-                map.put("attendanceTableOffWork","未打卡");
-                if (ObjectUtils.isNotEmpty(attendanceTableWork)){
-                    map.put("attendanceTableWork",attendanceTableWork+"已打卡");
-                }
-                if (ObjectUtils.isNotEmpty(attendanceTableOffWork)) {
-                    map.put("attendanceTableWork", attendanceTableOffWork + "已打卡");
-                }
-                map.put("dateTime",jsonObject.get("attendance_table_week") + " " + jsonObject.get("attendance_table_todaytime"));
-                detailedRecordList.add(map);
+        String tableName = dto.getTable();
+        GenTable genTable = cmdService.getTableFromRedisByTableName(RedisKey.TABLE_INFO, dto.getTable());
+        List<GenTableColumn> columns = genTable.getColumns();
+        JSONObject packCondition = ifNullSetEmpty(selectService.packColCondition(columns, condition));
+        int total = selectService.countByCondition(tableName, condition, packCondition);
+        JSONObject result = new JSONObject();
+        result.put(FormDataConstant.PAGE_TOTAL, total);
+        if (total <= 0) {
+            result.put(FormDataConstant.PAGE_ROWS, null);
+            return AjaxResult.success(result);
+        }
+        List<String> showData = withoutHrReturnColumnNames(columns);
+        List<JSONObject> rows = selectService.selectByCondition(tableName, condition, packCondition, showData, dto);
+        // 查询时为null的列不显示的处理
+        handleNullColumnValue(rows, showData);
+
+        List<Map<String, Object>> detailedRecordList = new ArrayList<>();
+        if (isEmpty(rows)) {
+            result.put(FormDataConstant.PAGE_ROWS, rows);
+            return AjaxResult.success(result);
+        }
+
+        for (JSONObject jsonObject : rows) {
+            Map<String, Object> map = new HashMap<>(5);
+            Object attendanceTableWork = jsonObject.get("attendance_table_work");
+            Object attendanceTableOffWork = jsonObject.get("attendance_table_offwork");
+            map.put("attendanceTableWork", "未打卡");
+            map.put("attendanceTableOffWork", "未打卡");
+            if (isNotEmpty(attendanceTableWork)) {
+                map.put("attendanceTableWork", attendanceTableWork + "已打卡");
+            }
+            if (isNotEmpty(attendanceTableOffWork)) {
+                map.put("attendanceTableWork", attendanceTableOffWork + "已打卡");
             }
             }
+
+            map.put("dateTime", jsonObject.get("attendance_table_week") + " " + jsonObject.get("attendance_table_todaytime"));
+            detailedRecordList.add(map);
         }
         }
-        return AjaxResult.success(detailedRecordList);
+
+        result.put(PAGE_ROWS, detailedRecordList);
+        return AjaxResult.success(result);
     }
     }
 
 
     /**
     /**
@@ -162,10 +195,10 @@ public class AttendanceServiceImpl implements AttendanceService {
         JSONObject condition = new JSONObject();
         JSONObject condition = new JSONObject();
         condition.put("attendance_table_username", userName);
         condition.put("attendance_table_username", userName);
         // in
         // in
-        condition.put(ATTENDANCE_TABLE_TODAYTIME, DateUtils.getDate());
+        condition.put(ATTENDANCE_TABLE_TODAYTIME, Lists.newArrayList(DateUtils.getDate()));
         dto.setFixedData(condition);
         dto.setFixedData(condition);
         int count = commonService.count(dto);
         int count = commonService.count(dto);
-        return count > 0 ? "下班打卡" : "上班打卡";
+        return count > 0 ? GO_OFF_WORK : GO_TO_WORK;
     }
     }
 
 
     @Override
     @Override
@@ -238,7 +271,7 @@ public class AttendanceServiceImpl implements AttendanceService {
 
 
         JSONObject commitData = new JSONObject();
         JSONObject commitData = new JSONObject();
         commitData.put(ATTENDANCE_USER_NAME, SecurityUtils.getUsername());
         commitData.put(ATTENDANCE_USER_NAME, SecurityUtils.getUsername());
-        commitData.put(ATTENDANCE_TABLE_TODAYTIME, DateUtils.getDate());
+        commitData.put(ATTENDANCE_TABLE_TODAYTIME, Lists.newArrayList(DateUtils.getDate()));
         commitData.put(ATTENDANCE_TABLE_LONGITUDE, dto.getLongitude());
         commitData.put(ATTENDANCE_TABLE_LONGITUDE, dto.getLongitude());
         commitData.put(ATTENDANCE_TABLE_LATITUDE, dto.getLatitude());
         commitData.put(ATTENDANCE_TABLE_LATITUDE, dto.getLatitude());
         Timestamp currentTime = new Timestamp(System.currentTimeMillis());
         Timestamp currentTime = new Timestamp(System.currentTimeMillis());
@@ -323,7 +356,7 @@ public class AttendanceServiceImpl implements AttendanceService {
     private List<JSONObject> listByUserNameAndTime(String tableName, String userName, String time) {
     private List<JSONObject> listByUserNameAndTime(String tableName, String userName, String time) {
         JSONObject condition = new JSONObject(2);
         JSONObject condition = new JSONObject(2);
         condition.put(ATTENDANCE_USER_NAME, userName);
         condition.put(ATTENDANCE_USER_NAME, userName);
-        condition.put(ATTENDANCE_TABLE_TODAYTIME, time);
+        condition.put(ATTENDANCE_TABLE_TODAYTIME, Lists.newArrayList(time));
         return commonService.getByMap(tableName, condition);
         return commonService.getByMap(tableName, condition);
     }
     }
 
 

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/select/BaseSelectServiceImpl.java

@@ -48,7 +48,7 @@ public class BaseSelectServiceImpl implements IBaseSelectService {
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      */
      */
     @Override
     @Override
-    public List<JSONObject> selectByCondition(String tableName, JSONObject condition, JSONObject packCondition, JSONArray showData, FormDataDto dto) {
+    public List<JSONObject> selectByCondition(String tableName, JSONObject condition, JSONObject packCondition, List<String> showData, FormDataDto dto) {
         requireNonNull(tableName, "表名为空");
         requireNonNull(tableName, "表名为空");
         requireNonNull(showData, "表: [" + tableName + "] , 过滤了可展示字段,一个展示字段都没有,还查个鬼啊");
         requireNonNull(showData, "表: [" + tableName + "] , 过滤了可展示字段,一个展示字段都没有,还查个鬼啊");
         String orderBy = requireNonNull(dto.getOrderBy(), "order by is empty");
         String orderBy = requireNonNull(dto.getOrderBy(), "order by is empty");

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/select/IBaseSelectService.java

@@ -41,7 +41,7 @@ public interface IBaseSelectService {
      * @param dto       dto.orderBy dto.limit dto.offset
      * @param dto       dto.orderBy dto.limit dto.offset
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      */
      */
-    List<JSONObject> selectByCondition(String tableName, JSONObject condition, JSONObject packCondition, JSONArray showData, FormDataDto dto);
+    List<JSONObject> selectByCondition(String tableName, JSONObject condition, JSONObject packCondition, List<String> showData, FormDataDto dto);
 
 
     /**
     /**
      * 功能描述: 根据条件查询
      * 功能描述: 根据条件查询

+ 26 - 8
boman-web-core/src/main/java/com/boman/web/core/utils/ColumnUtils.java

@@ -13,22 +13,19 @@ import com.boman.domain.GenTableColumn;
 import com.boman.domain.constant.MysqlDataTypeConst;
 import com.boman.domain.constant.MysqlDataTypeConst;
 import com.boman.domain.exception.UnknownColumnException;
 import com.boman.domain.exception.UnknownColumnException;
 import com.boman.web.core.domain.TableContext;
 import com.boman.web.core.domain.TableContext;
-import com.google.common.base.Joiner;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.client.RestTemplate;
 
 
 import java.sql.Timestamp;
 import java.sql.Timestamp;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.function.Predicate;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
-import static com.boman.domain.constant.GenConstants.COLUMNTYPE_NUMBER;
 import static com.boman.common.core.utils.obj.ObjectUtils.*;
 import static com.boman.common.core.utils.obj.ObjectUtils.*;
 import static com.boman.domain.constant.FormDataConstant.*;
 import static com.boman.domain.constant.FormDataConstant.*;
+import static com.boman.domain.constant.GenConstants.COLUMNTYPE_NUMBER;
 
 
 /**
 /**
  * @author shiqian
  * @author shiqian
@@ -348,6 +345,19 @@ public class ColumnUtils {
         return filter(columns, col -> !HR.equals(col.getHtmlType()));
         return filter(columns, col -> !HR.equals(col.getHtmlType()));
     }
     }
 
 
+    public static List<String> withoutHrReturnColumnNames(List<GenTableColumn> columns) {
+        List<String> result = new ArrayList<>(requireNonNull(columns, "columns is null").size());
+        for (GenTableColumn column : columns) {
+            if (HR.equals(column.getHtmlType())) {
+                continue;
+            }
+
+            result.add(column.getColumnName());
+        }
+
+        return result;
+    }
+
     /**
     /**
      * varchar(20) => varchar
      * varchar(20) => varchar
      *
      *
@@ -364,14 +374,22 @@ public class ColumnUtils {
 
 
     /**
     /**
      * 连接字符串数组集合
      * 连接字符串数组集合
-     * eg: System.out.println(joinList(Lists.newArrayList(1, 3, 2, 5))); 输出 1, 3, 2, 5
+     * eg: System.out.println(joinList(Lists.newArrayList(1, 3, 2, 5))); 输出 "'1', '3', '2', '5'"
      *
      *
      * @param iterable 集合
      * @param iterable 集合
      * @return 连接结果
      * @return 连接结果
      */
      */
     public static <T> String joinList(Iterable<T> iterable) {
     public static <T> String joinList(Iterable<T> iterable) {
-        Joiner joiner = Joiner.on(", ").skipNulls();
-        return joiner.join(iterable);
+        Iterator<T> iterator = iterable.iterator();
+        StringBuilder stringBuilder = new StringBuilder();
+        while (iterator.hasNext()) {
+            T next = iterator.next();
+            String s = "'" + next + "', ";
+            stringBuilder.append(s);
+        }
+
+        String result = stringBuilder.toString();
+        return result.substring(0, result.length() - 2);
     }
     }
 
 
     public static String getColumnTypeByColumnName(List<GenTableColumn> columns, String columnName){
     public static String getColumnTypeByColumnName(List<GenTableColumn> columns, String columnName){