Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

fenghao 4 anni fa
parent
commit
8028944566

+ 44 - 0
railway-business/src/main/java/com/railway/business/catenary/enums/JcebOrderEnum.java

@@ -0,0 +1,44 @@
+package com.railway.business.catenary.enums;
+
+/**
+ * 排序字段名
+ *
+ * @author railway
+ */
+public enum JcebOrderEnum {
+  /** 排序字段名 */
+  CHECK_DATE("checkDate", "check_date", "检查日期"),
+  OPERATION_DATE("operationDate", "operation_date", "操作日期"),
+  ;
+
+  private final String attribute;
+  private final String field;
+  private final String notes;
+
+  JcebOrderEnum(String attribute, String field, String notes) {
+    this.attribute = attribute;
+    this.field = field;
+    this.notes = notes;
+  }
+
+  public String getAttribute() {
+    return attribute;
+  }
+
+  public String getField() {
+    return field;
+  }
+
+  public String getNotes() {
+    return notes;
+  }
+
+  public static JcebOrderEnum ofValue(String attribute) {
+    for (JcebOrderEnum investor : JcebOrderEnum.values()) {
+      if (investor.getAttribute().equals(attribute)) {
+        return investor;
+      }
+    }
+    return null;
+  }
+}

+ 21 - 4
railway-business/src/main/java/com/railway/business/catenary/service/impl/BusJcabServiceImpl.java

@@ -4,13 +4,19 @@ import com.railway.business.baseinfo.domain.BaseDeptStation;
 import com.railway.business.baseinfo.service.IBaseStationService;
 import com.railway.business.catenary.domain.BusJcab;
 import com.railway.business.catenary.domain.vo.JcebQueryVo;
+import com.railway.business.catenary.enums.JcebOrderEnum;
 import com.railway.business.catenary.enums.JcebStatusEnum;
 import com.railway.business.catenary.util.JcebQueryUtil;
 import com.railway.common.enums.DelFlagEnum;
 import com.railway.common.utils.SecurityUtils;
 import com.railway.common.utils.StringUtils;
 import com.railway.common.utils.sql.SqlUtil;
+import java.lang.reflect.Field;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 /**
@@ -19,6 +25,7 @@ import org.springframework.stereotype.Service;
  * @author ZhaoMn
  * @date 2021/12/10
  */
+@Slf4j
 @Service
 public abstract class BusJcabServiceImpl {
 
@@ -38,22 +45,32 @@ public abstract class BusJcabServiceImpl {
    * 列表
    */
   protected void setList(BusJcab jcab) {
-    // 设置查询参数
+    // 设置查询权限
     JcebQueryUtil.setBusJcab(jcab);
+    // 设置查询参数
     if (StringUtils.isNotEmpty(jcab.getOperator()) && StringUtils.isEmpty(jcab.getCheckUser())) {
       jcab.setCheckUser(jcab.getOperator());
     }
     if (StringUtils.isNotNull(jcab.getOperationDate()) && StringUtils.isNull(jcab.getCheckDate())) {
       jcab.setCheckDate(jcab.getOperationDate());
     }
-    // 设置查询权限
-    if (StringUtils.isNotEmpty(jcab.getOrderBy())) {
+    // 设置查询排序字段
+    // 取BusJcab类的所有属性
+    Field[] fields = BusJcab.class.getDeclaredFields();
+    List<String> fieldList = Arrays.stream(fields).map(Field::getName).collect(Collectors.toList());
+    // 如果排序字段不是BusJcab类的属性时,取默认排序字段
+    log.info("前端指定的排序字段 - {}", jcab.getOrderBy());
+    if (StringUtils.isNotEmpty(jcab.getOrderBy()) && fieldList.contains(jcab.getOrderBy())) {
       jcab.setOrderBy(SqlUtil.humpToLine(jcab.getOrderBy()));
+      if (JcebOrderEnum.OPERATION_DATE.getField().equals(jcab.getOrderBy())) {
+        jcab.setOrderBy(JcebOrderEnum.CHECK_DATE.getField());
+      }
     } else {
       // 默认倒序排列
-      jcab.setOrderBy("check_date");
+      jcab.setOrderBy(JcebOrderEnum.CHECK_DATE.getField());
       jcab.setIsAsc("0");
     }
+    log.info("最终使用的排序字段 - {}", jcab.getOrderBy());
   }
 
   /**

+ 16 - 2
railway-business/src/main/java/com/railway/business/catenary/service/impl/BusJcebServiceImpl.java

@@ -6,6 +6,7 @@ import com.railway.business.baseinfo.service.IBaseStationService;
 import com.railway.business.catenary.domain.BusJceb;
 import com.railway.business.catenary.domain.vo.JcebQueryVo;
 import com.railway.business.catenary.domain.vo.JcebRecordVo;
+import com.railway.business.catenary.enums.JcebOrderEnum;
 import com.railway.business.catenary.enums.JcebStatusEnum;
 import com.railway.business.catenary.mapper.BusJcebMapper;
 import com.railway.business.catenary.service.IBusJcebService;
@@ -14,7 +15,12 @@ import com.railway.common.enums.DelFlagEnum;
 import com.railway.common.utils.SecurityUtils;
 import com.railway.common.utils.StringUtils;
 import com.railway.common.utils.sql.SqlUtil;
+import java.lang.reflect.Field;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
  *
  * @author zhaomn
  */
+@Slf4j
 @Service
 public abstract class BusJcebServiceImpl<T extends BusJceb> implements IBusJcebService<T> {
 
@@ -74,13 +81,20 @@ public abstract class BusJcebServiceImpl<T extends BusJceb> implements IBusJcebS
   protected void setList(BusJceb jceb) {
     // 设置查询权限
     JcebQueryUtil.setBusJceb(jceb);
-    if (StringUtils.isNotEmpty(jceb.getOrderBy())) {
+    // 设置查询排序字段
+    // 取BusJcab类的所有属性
+    Field[] fields = BusJceb.class.getDeclaredFields();
+    List<String> fieldList = Arrays.stream(fields).map(Field::getName).collect(Collectors.toList());
+    // 如果排序字段不是BusJcab类的属性时,取默认排序字段
+    log.info("前端指定的排序字段 - {}", jceb.getOrderBy());
+    if (StringUtils.isNotEmpty(jceb.getOrderBy()) && fieldList.contains(jceb.getOrderBy())) {
       jceb.setOrderBy(SqlUtil.humpToLine(jceb.getOrderBy()));
     } else {
       // 默认倒序排列
-      jceb.setOrderBy("operation_date");
+      jceb.setOrderBy(JcebOrderEnum.OPERATION_DATE.getField());
       jceb.setIsAsc("0");
     }
+    log.info("最终使用的排序字段 - {}", jceb.getOrderBy());
   }
 
   /**