Browse Source

修复智能查询的BUG

wuhonghao 4 năm trước cách đây
mục cha
commit
061594101b
15 tập tin đã thay đổi với 230 bổ sung14 xóa
  1. 10 9
      railway-admin/src/main/java/com/railway/web/controller/business/baseinfo/BusPreventController.java
  2. 30 1
      railway-admin/src/main/java/com/railway/web/controller/business/baseinfo/BusSdtzController.java
  3. 10 0
      railway-admin/src/main/java/com/railway/web/controller/business/baseinfo/BusZzdzxxController.java
  4. 39 0
      railway-business/src/main/java/com/railway/business/baseinfo/domain/vo/BusSmartQueryVo.java
  5. 2 1
      railway-business/src/main/java/com/railway/business/baseinfo/mapper/BusPreventMapper.java
  6. 6 0
      railway-business/src/main/java/com/railway/business/baseinfo/mapper/BusSdtzMapper.java
  7. 6 0
      railway-business/src/main/java/com/railway/business/baseinfo/mapper/BusZzdzxxMapper.java
  8. 2 1
      railway-business/src/main/java/com/railway/business/baseinfo/service/IBusPreventService.java
  9. 7 0
      railway-business/src/main/java/com/railway/business/baseinfo/service/IBusSdtzService.java
  10. 7 0
      railway-business/src/main/java/com/railway/business/baseinfo/service/IBusZzdzxxService.java
  11. 3 2
      railway-business/src/main/java/com/railway/business/baseinfo/service/impl/BusPreventServiceImpl.java
  12. 7 0
      railway-business/src/main/java/com/railway/business/baseinfo/service/impl/BusSdtzServiceImpl.java
  13. 9 0
      railway-business/src/main/java/com/railway/business/baseinfo/service/impl/BusZzdzxxServiceImpl.java
  14. 46 0
      railway-business/src/main/resources/mapper/baseinfo/BusSdtzMapper.xml
  15. 46 0
      railway-business/src/main/resources/mapper/baseinfo/BusZzdzxxMapper.xml

+ 10 - 9
railway-admin/src/main/java/com/railway/web/controller/business/baseinfo/BusPreventController.java

@@ -4,6 +4,7 @@ package com.railway.web.controller.business.baseinfo;
 import com.railway.business.baseinfo.domain.BusPrevent;
 import com.railway.business.baseinfo.domain.BusZzdzxx;
 import com.railway.business.baseinfo.domain.vo.BusPreventQueryVo;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import com.railway.business.baseinfo.service.IBusPreventService;
 import com.railway.business.baseinfo.service.IBusZzdzxxService;
 import com.railway.common.core.controller.BaseController;
@@ -36,26 +37,26 @@ public class BusPreventController extends BaseController {
 
     @ApiOperation(value = "智能查询")
     @GetMapping(value = "smartQuery")
-    public TableDataInfo smartQuery(BusPreventQueryVo busPreventQueryVo) {
+    public TableDataInfo smartQuery(BusSmartQueryVo busSmartQueryVo) {
         //如果传入查询条件为支柱号则将支柱号转化为公里标
-        if(busPreventQueryVo.getPillarCode()!=null){
+        if(busSmartQueryVo.getPillarCode()!=null){
             BusZzdzxx busZzdzxx = new BusZzdzxx();
-            busZzdzxx.setPillarCode(busPreventQueryVo.getPillarCode());
-            busZzdzxx.setXingbie(busPreventQueryVo.getXingbie());
-            busZzdzxx.setStationId(busPreventQueryVo.getStationId());
+            busZzdzxx.setPillarCode(busSmartQueryVo.getPillarCode());
+            busZzdzxx.setXingbie(busSmartQueryVo.getXingbie());
+            busZzdzxx.setStationId(busSmartQueryVo.getStationId());
             List<BusZzdzxx> list = busZzdzxxService.getList(busZzdzxx);
             if(list!=null&&list.size()==1){
-                busPreventQueryVo.setMarker(list.get(0).getMarker());
+                busSmartQueryVo.setMarker(list.get(0).getMarker());
             }else{
                 return null;
             }
         }
-        if(busPreventQueryVo.getPillarArea()==null||busPreventQueryVo.getPillarArea().equals("")){
-            busPreventQueryVo.setPillarArea("500");
+        if(busSmartQueryVo.getPillarArea()==null||busSmartQueryVo.getPillarArea().equals("")){
+            busSmartQueryVo.setPillarArea("500");
         }
 
         startPage();
-        List<BusPrevent> list = busPreventService.smartQuery(busPreventQueryVo);
+        List<BusPrevent> list = busPreventService.smartQuery(busSmartQueryVo);
         return getDataTable(list);
     }
 

+ 30 - 1
railway-admin/src/main/java/com/railway/web/controller/business/baseinfo/BusSdtzController.java

@@ -2,8 +2,11 @@ package com.railway.web.controller.business.baseinfo;
 
 import com.railway.business.baseinfo.domain.BaseDeptStation;
 import com.railway.business.baseinfo.domain.BusSdtz;
+import com.railway.business.baseinfo.domain.BusZzdzxx;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import com.railway.business.baseinfo.service.IBaseStationService;
 import com.railway.business.baseinfo.service.IBusSdtzService;
+import com.railway.business.baseinfo.service.IBusZzdzxxService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.validation.annotation.Validated;
@@ -25,11 +28,13 @@ public class BusSdtzController extends BaseController {
 
   private final IBusSdtzService busSdtzService;
   private final IBaseStationService stationService;
+  private final IBusZzdzxxService busZzdzxxService;
 
   public BusSdtzController(IBusSdtzService busSdtzService,
-      IBaseStationService stationService) {
+      IBaseStationService stationService, IBusZzdzxxService busZzdzxxService) {
     this.busSdtzService = busSdtzService;
     this.stationService = stationService;
+    this.busZzdzxxService = busZzdzxxService;
   }
 
   @ApiOperation(value = "新增")
@@ -73,4 +78,28 @@ public class BusSdtzController extends BaseController {
     return getDataTable(list);
   }
 
+  @ApiOperation(value = "智能查询")
+  @GetMapping(value = "smartQuery")
+  public TableDataInfo smartQuery(BusSmartQueryVo busSmartQueryVo) {
+    //如果传入查询条件为支柱号则将支柱号转化为公里标
+    if(busSmartQueryVo.getPillarCode()!=null){
+      BusZzdzxx busZzdzxx = new BusZzdzxx();
+      busZzdzxx.setPillarCode(busSmartQueryVo.getPillarCode());
+      busZzdzxx.setXingbie(busSmartQueryVo.getXingbie());
+      busZzdzxx.setStationId(busSmartQueryVo.getStationId());
+      List<BusZzdzxx> list = busZzdzxxService.getList(busZzdzxx);
+      if(list!=null&&list.size()==1){
+        busSmartQueryVo.setMarker(list.get(0).getMarker());
+      }else{
+        return null;
+      }
+    }
+    if(busSmartQueryVo.getPillarArea()==null||busSmartQueryVo.getPillarArea().equals("")){
+      busSmartQueryVo.setPillarArea("500");
+    }
+    startPage();
+    List<BusSdtz> list = busSdtzService.smartQuery(busSmartQueryVo);
+    return getDataTable(list);
+  }
+
 }

+ 10 - 0
railway-admin/src/main/java/com/railway/web/controller/business/baseinfo/BusZzdzxxController.java

@@ -1,7 +1,9 @@
 package com.railway.web.controller.business.baseinfo;
 
 import com.railway.business.baseinfo.domain.BaseDeptStation;
+import com.railway.business.baseinfo.domain.BusBlq;
 import com.railway.business.baseinfo.domain.BusZzdzxx;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import com.railway.business.baseinfo.service.IBaseStationService;
 import com.railway.business.baseinfo.service.IBusZzdzxxService;
 import com.railway.common.core.controller.BaseController;
@@ -80,4 +82,12 @@ public class BusZzdzxxController extends BaseController {
     return getDataTable(list);
   }
 
+  @ApiOperation(value = "智能查询")
+  @GetMapping(value = "smartQuery")
+  public TableDataInfo smartQuery(BusSmartQueryVo busSmartQueryVo) {
+    startPage();
+    List<BusZzdzxx> list = busZzdzxxService.smartQuery(busSmartQueryVo);
+    return getDataTable(list);
+  }
+
 }

+ 39 - 0
railway-business/src/main/java/com/railway/business/baseinfo/domain/vo/BusSmartQueryVo.java

@@ -0,0 +1,39 @@
+package com.railway.business.baseinfo.domain.vo;
+
+import com.railway.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author wuhonghao
+ */
+@Data
+@ApiModel("智能查询")
+@EqualsAndHashCode(callSuper = true)
+public class BusSmartQueryVo extends BaseEntity {
+
+
+    @ApiModelProperty(value = "部门ID")
+    private Long deptId;
+
+    @ApiModelProperty(value = "线别ID")
+    private Long lineId;
+
+    @ApiModelProperty(value = "行别")
+    private String xingbie;
+
+    @ApiModelProperty(value = "场站ID")
+    private Long stationId;
+
+    @ApiModelProperty(value = "支柱号")
+    private String pillarCode;
+
+    @ApiModelProperty(value = "支柱范围")
+    private String pillarArea;
+
+    @ApiModelProperty(value = "公里标")
+    private String marker;
+
+}

+ 2 - 1
railway-business/src/main/java/com/railway/business/baseinfo/mapper/BusPreventMapper.java

@@ -3,6 +3,7 @@ package com.railway.business.baseinfo.mapper;
 import com.github.pagehelper.Page;
 import com.railway.business.baseinfo.domain.BusPrevent;
 import com.railway.business.baseinfo.domain.vo.BusPreventQueryVo;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
@@ -18,6 +19,6 @@ public interface BusPreventMapper {
     /**
     * 智能查询
     */
-    Page<BusPrevent> smartQuery(BusPreventQueryVo busPreventQueryVo);
+    Page<BusPrevent> smartQuery(BusSmartQueryVo busSmartQueryVo);
 
 }

+ 6 - 0
railway-business/src/main/java/com/railway/business/baseinfo/mapper/BusSdtzMapper.java

@@ -2,6 +2,7 @@ package com.railway.business.baseinfo.mapper;
 
 import com.github.pagehelper.Page;
 import com.railway.business.baseinfo.domain.BusSdtz;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -40,4 +41,9 @@ public interface BusSdtzMapper {
     */
     Page<BusSdtz> getList(BusSdtz busSdtz);
 
+    /**
+    * 查询列表
+    */
+    Page<BusSdtz> smartQuery(BusSmartQueryVo busSmartQueryVo);
+
 }

+ 6 - 0
railway-business/src/main/java/com/railway/business/baseinfo/mapper/BusZzdzxxMapper.java

@@ -2,6 +2,7 @@ package com.railway.business.baseinfo.mapper;
 
 import com.github.pagehelper.Page;
 import com.railway.business.baseinfo.domain.BusZzdzxx;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -40,4 +41,9 @@ public interface BusZzdzxxMapper {
     */
     Page<BusZzdzxx> getList(BusZzdzxx busZzdzxx);
 
+    /**
+    * 智能查询
+    */
+    Page<BusZzdzxx> smartQuery(BusSmartQueryVo busSmartQueryVo);
+
 }

+ 2 - 1
railway-business/src/main/java/com/railway/business/baseinfo/service/IBusPreventService.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
 import com.railway.business.baseinfo.domain.BusBlq;
 import com.railway.business.baseinfo.domain.BusPrevent;
 import com.railway.business.baseinfo.domain.vo.BusPreventQueryVo;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 
 import java.util.List;
 
@@ -18,6 +19,6 @@ public interface IBusPreventService {
     /**
     * 智能查询
     */
-    List<BusPrevent> smartQuery(BusPreventQueryVo busPreventQueryVo);
+    List<BusPrevent> smartQuery(BusSmartQueryVo busSmartQueryVo);
 
 }

+ 7 - 0
railway-business/src/main/java/com/railway/business/baseinfo/service/IBusSdtzService.java

@@ -1,6 +1,8 @@
 package com.railway.business.baseinfo.service;
 
 import com.railway.business.baseinfo.domain.BusSdtz;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
+
 import java.util.List;
 /**
 * 智能查询-隧道台账
@@ -34,4 +36,9 @@ public interface IBusSdtzService{
     */
     List<BusSdtz> getList(BusSdtz busSdtz);
 
+    /**
+    * 智能查询
+    */
+    List<BusSdtz> smartQuery(BusSmartQueryVo busSmartQueryVo);
+
 }

+ 7 - 0
railway-business/src/main/java/com/railway/business/baseinfo/service/IBusZzdzxxService.java

@@ -1,6 +1,8 @@
 package com.railway.business.baseinfo.service;
 
 import com.railway.business.baseinfo.domain.BusZzdzxx;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
+
 import java.util.List;
 /**
 * 支柱吊柱信息
@@ -34,4 +36,9 @@ public interface IBusZzdzxxService{
     */
     List<BusZzdzxx> getList(BusZzdzxx busZzdzxx);
 
+    /**
+    * 智能查询
+    */
+    List<BusZzdzxx> smartQuery(BusSmartQueryVo busSmartQueryVo);
+
 }

+ 3 - 2
railway-business/src/main/java/com/railway/business/baseinfo/service/impl/BusPreventServiceImpl.java

@@ -5,6 +5,7 @@ import com.railway.business.baseinfo.domain.BusBlq;
 import com.railway.business.baseinfo.domain.BusPrevent;
 import com.railway.business.baseinfo.domain.BusZzdzxx;
 import com.railway.business.baseinfo.domain.vo.BusPreventQueryVo;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import com.railway.business.baseinfo.mapper.BusBlqMapper;
 import com.railway.business.baseinfo.mapper.BusPreventMapper;
 import com.railway.business.baseinfo.mapper.BusZzdzxxMapper;
@@ -34,7 +35,7 @@ public class BusPreventServiceImpl implements IBusPreventService {
    * 查询列表
    */
   @Override
-  public List<BusPrevent> smartQuery(BusPreventQueryVo busPreventQueryVo) {
-    return busPreventMapper.smartQuery(busPreventQueryVo);
+  public List<BusPrevent> smartQuery(BusSmartQueryVo busSmartQueryVo) {
+    return busPreventMapper.smartQuery(busSmartQueryVo);
   }
 }

+ 7 - 0
railway-business/src/main/java/com/railway/business/baseinfo/service/impl/BusSdtzServiceImpl.java

@@ -1,5 +1,6 @@
 package com.railway.business.baseinfo.service.impl;
 
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import com.railway.business.baseinfo.mapper.BusSdtzMapper;
 import com.railway.business.baseinfo.domain.BusSdtz;
 import com.railway.business.baseinfo.service.IBusSdtzService;
@@ -76,4 +77,10 @@ public class BusSdtzServiceImpl implements IBusSdtzService {
   public List<BusSdtz> getList(BusSdtz busSdtz) {
     return busSdtzMapper.getList(busSdtz);
   }
+
+
+  @Override
+  public List<BusSdtz> smartQuery(BusSmartQueryVo busSmartQueryVo) {
+    return busSdtzMapper.smartQuery(busSmartQueryVo);
+  }
 }

+ 9 - 0
railway-business/src/main/java/com/railway/business/baseinfo/service/impl/BusZzdzxxServiceImpl.java

@@ -1,6 +1,7 @@
 package com.railway.business.baseinfo.service.impl;
 
 import com.railway.business.baseinfo.domain.BusZzdzxx;
+import com.railway.business.baseinfo.domain.vo.BusSmartQueryVo;
 import com.railway.business.baseinfo.mapper.BusZzdzxxMapper;
 import com.railway.business.baseinfo.service.IBusZzdzxxService;
 import java.util.List;
@@ -68,4 +69,12 @@ public class BusZzdzxxServiceImpl implements IBusZzdzxxService{
 	public List<BusZzdzxx> getList(BusZzdzxx busZzdzxx) {
 		return busZzdzxxMapper.getList(busZzdzxx);
 	}
+
+	/**
+	 * 智能查询
+	 */
+	@Override
+	public List<BusZzdzxx> smartQuery(BusSmartQueryVo busSmartQueryVo) {
+		return busZzdzxxMapper.smartQuery(busSmartQueryVo);
+	}
 }

+ 46 - 0
railway-business/src/main/resources/mapper/baseinfo/BusSdtzMapper.xml

@@ -189,4 +189,50 @@
     </where>
   </select>
 
+
+  <select id="smartQuery" resultMap="BaseResultMap">
+    SELECT
+    <include refid="Base_Column_List"/>
+    FROM (
+      select id,
+      station_id,
+      sdmc,
+      lcgh,
+      qzlc_zxlc,
+      sdcd,
+      del_flag,
+      create_by,
+      create_time,
+      update_by,
+      update_time,
+      replace(replace(right(qzlc_zxlc, length(qzlc_zxlc)- LOCATE('/',qzlc_zxlc)),'km',''),'m','')-(sdcd/2) beginMarker,
+      replace(replace(right(qzlc_zxlc, length(qzlc_zxlc)- LOCATE('/',qzlc_zxlc)),'km',''),'m','')+(sdcd/2) endMarker
+      from base_sdtz
+    ) t
+    LEFT JOIN v_station v on t.station_id = v.dept_station_id
+    <where>
+      t.del_flag='0'
+      <if test="deptId!=null and deptId!=''">
+        and v.dept_id=#{deptId}
+      </if>
+      <if test="lineId!=null and lineId!=''">
+        and v.line_id=#{lineId}
+      </if>
+      <if test="stationId!=null and stationId!=''">
+        and t.station_id=#{stationId}
+      </if>
+
+      <if test="marker!=null and marker!=''">
+        AND (
+        (t.beginMarker + 0.0) BETWEEN (#{marker} + 0.0) - (#{pillarArea} + 0.0) AND (#{marker} + 0.0) +
+        (#{pillarArea} + 0.0)
+        or
+        (t.endMarker + 0.0) BETWEEN (#{marker} + 0.0) - (#{pillarArea} + 0.0) AND (#{marker} + 0.0) +
+        (#{pillarArea} + 0.0)
+        )
+      </if>
+
+    </where>
+  </select>
+
 </mapper>

+ 46 - 0
railway-business/src/main/resources/mapper/baseinfo/BusZzdzxxMapper.xml

@@ -917,4 +917,50 @@
     </where>
   </select>
 
+
+  <select id="smartQuery" resultMap="BaseResultMap">
+    SELECT
+    <include refid="Base_Column_List"/>, dict.dict_label as xingbie_text
+    FROM base_pillar t
+    left join v_station v on t.station_id = v.dept_station_id
+    LEFT JOIN sys_dict_data dict ON (t.xingbie = dict.dict_value AND dict.dict_type = 'xingbie')
+    <where>
+      t.del_flag='0'
+      <if test="stationId!=null and stationId!=''">
+        and t.station_id=#{stationId}
+      </if>
+      <if test="deptId!=null and deptId!=''">
+        and v.dept_id=#{deptId}
+      </if>
+      <if test="lineId!=null and lineId!=''">
+        and v.line_id=#{lineId}
+      </if>
+      <if test="xingbie!=null and xingbie!=''">
+        and t.xingbie=#{xingbie}
+      </if>
+      <if test="pillarCode!=null and pillarCode!=''">
+        and t.pillar_code=#{pillarCode}
+      </if>
+      <if test="marker!=null and marker!=''">
+        and abs(t.marker - ${marker})= (
+        select min(abs(t.marker - ${marker})) FROM base_pillar t
+        left join v_station v on t.station_id = v.dept_station_id
+        where 1=1
+        <if test="stationId!=null and stationId!=''">
+          and t.station_id=#{stationId}
+        </if>
+        <if test="deptId!=null and deptId!=''">
+          and v.dept_id=#{deptId}
+        </if>
+        <if test="lineId!=null and lineId!=''">
+          and v.line_id=#{lineId}
+        </if>
+        <if test="xingbie!=null and xingbie!=''">
+          and t.xingbie=#{xingbie}
+        </if>
+        )
+      </if>
+    </where>
+  </select>
+
 </mapper>