liyg 2 yıl önce
ebeveyn
işleme
d2db5ba079

+ 144 - 4
src/main/java/com/steerinfo/dil/controller/RMScontroller.java

@@ -1,9 +1,11 @@
 package com.steerinfo.dil.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.annotaion.LogAround;
 import com.steerinfo.dil.annotaion.RequestLimit;
 import com.steerinfo.dil.feign.RmsFeign;
 import com.steerinfo.dil.util.BaseRESTfulController;
+import com.steerinfo.dil.util.ExcelToolUtils;
 import com.steerinfo.dil.util.PageListAdd;
 import com.steerinfo.framework.controller.BaseController;
 import com.steerinfo.framework.controller.RESTfulResult;
@@ -17,13 +19,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RestController
 @RequestMapping("${api.version}/rms")
@@ -96,6 +97,38 @@ public class RMScontroller extends BaseRESTfulController {
         return rmsFeign.insertMaterialType(map);
     }
 
+    @ApiOperation("导入物资类型")
+    @PostMapping("/importMaterialType")
+    public RESTfulResult insertMaterialTypeExcel(@RequestBody MultipartFile file,
+                                                 String remark,
+                                                 String userId,
+                                                 String userName) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        //获取Excel中包含的对象数组
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
+        map.put("list", list);
+        Set<String> materialTypeSet = new HashSet<>();
+        for (Map<String, Object> item : list) {
+            //校验行
+            if(
+                    item.get("名称")==null || item.get("名称").equals("")
+            ){
+                throw new Exception("单元格数据异常(名称),请检查模板或数据是否正确!");
+            }
+            materialTypeSet.add(item.get("名称").toString());
+        }
+        //去重
+        String[] materialTypes = materialTypeSet.toArray(new String[0]);
+        if (materialTypes.length != list.size()) {
+            throw new Exception("名称不允许重复!");
+        }
+        map.put("materialTypes",materialTypes);
+        map.put("userId",userId);
+        map.put("userName",userName);
+        map.put("remark",remark);
+        return rmsFeign.importMaterialType(map);
+    }
+
     @ApiOperation(value = "删除物资类型")
     @ApiImplicitParam(name = "rmsMaterialType", value = "rmsMaterialType", required = true, dataType = "rmsMaterialType")
     @PostMapping(value = "/deleteMaterialType")
@@ -227,6 +260,43 @@ public class RMScontroller extends BaseRESTfulController {
         return rmsFeign.updateOperationPoint(map);
     }
 
+    @ApiOperation("导入作业点")
+    @PostMapping("/importOperationPoint")
+    public RESTfulResult importOperationPoint(@RequestBody MultipartFile file,
+                                         String userId,
+                                         String userName) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        //获取Excel中包含的对象数组
+        List<Map<String, Object>> excelList = ExcelToolUtils.getExcelList(file, 0);
+        map.put("list", excelList);
+        Set<String> set = new HashSet<>();
+        for (Map<String, Object> item : excelList) {
+            //校验行
+            if(
+                    item.get("作业点名称")==null || item.get("作业点名称").equals("")
+                            || item.get("作业点类型")==null || item.get("作业点类型").equals("")
+                            || item.get("作业点状态")==null || item.get("作业点状态").equals("")
+                            || item.get("环保标准")==null || item.get("环保标准").equals("")
+                            || item.get("所属单位")==null || item.get("所属单位").equals("")
+            ){
+                throw new Exception("单元格数据异常(作业点名称/作业点类型/作业点状态/环保标准/所属单位),请检查模板或数据是否正确!");
+            }
+            //隔开用于查询是否数据库存在
+            set.add(item.get("作业点名称").toString());
+            //key-value结构方便数据库去重后获取值
+            map.put(item.get("作业点名称").toString(),item);
+        }
+        //去重
+        String[] list = set.toArray(new String[0]);
+        if (list.length != excelList.size()) {
+            throw new Exception("手机号不允许重复!");
+        }
+        map.put("list",list);
+        map.put("userId",userId);
+        map.put("userName",userName);
+        return rmsFeign.importOperationPoint(map);
+    }
+
     @ApiOperation(value = "根据id查询原料信息", notes = "根据rmsCarrier对象创建")
     @ApiImplicitParam(name = "rmsOperationPoint", value = "详细实体rmsOperationPoint", required = true, dataType = "rmsOperationPoint")
     @PostMapping(value = "/getOperationPointById/{id}")
@@ -300,6 +370,44 @@ public class RMScontroller extends BaseRESTfulController {
         return rmsFeign.syncPersonnel(map);
     }
 
+    @ApiOperation("导入人员信息")
+    @PostMapping("/importPersonnel")
+    public RESTfulResult importPersonnel(@RequestBody MultipartFile file,
+                                          String userId,
+                                          String userName) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        //获取Excel中包含的对象数组
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
+        map.put("list", list);
+        Set<String> set = new HashSet<>();
+        for (Map<String, Object> item : list) {
+            //校验行
+            if(
+                    item.get("姓名")==null || item.get("姓名").equals("")
+                            || item.get("岗位")==null || item.get("岗位").equals("")
+                            || item.get("联系电话")==null || item.get("联系电话").equals("")
+                            || item.get("身份证号码")==null || item.get("身份证号码").equals("")
+                            || item.get("所属单位")==null || item.get("所属单位").equals("")
+                            || item.get("授权角色")==null || item.get("授权角色").equals("")
+            ){
+                throw new Exception("单元格数据异常(姓名/岗位/联系电话/身份证号码/所属单位/授权角色),请检查模板或数据是否正确!");
+            }
+            //隔开用于查询是否数据库存在
+            set.add(item.get("联系电话").toString());
+            //key-value结构方便数据库去重后获取值
+            map.put(item.get("联系电话").toString(),item);
+        }
+        //去重
+        String[] phones = set.toArray(new String[0]);
+        if (phones.length != list.size()) {
+            throw new Exception("手机号不允许重复!");
+        }
+        map.put("list",phones);
+        map.put("userId",userId);
+        map.put("userName",userName);
+        return rmsFeign.importPersonnel(map);
+    }
+
 
     //================公司
     @ApiOperation(value = "展示公司信息")
@@ -781,6 +889,38 @@ public class RMScontroller extends BaseRESTfulController {
         return rmsFeign.deleteTransRange(map);
     }
 
+    @ApiOperation("导入运输范围")
+    @PostMapping("/importTransRange")
+    public RESTfulResult importTransRange(@RequestBody MultipartFile file,
+                                                 String userId,
+                                                 String userName) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        //获取Excel中包含的对象数组
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
+        map.put("list", list);
+        Set<String> set = new HashSet<>();
+        for (Map<String, Object> item : list) {
+            //校验行
+            if(
+                    item.get("起点")==null || item.get("起点").equals("")
+                    || item.get("终点")==null || item.get("终点").equals("")
+            ){
+                throw new Exception("单元格数据异常(起点/终点),请检查模板或数据是否正确!");
+            }
+            //隔开用于查询是否数据库存在
+            set.add(item.get("起点").toString() + "," + item.get("终点").toString());
+        }
+        //去重
+        String[] transRanges = set.toArray(new String[0]);
+        if (transRanges.length != list.size()) {
+            throw new Exception("不允许重复!");
+        }
+        map.put("list",transRanges);
+        map.put("userId",userId);
+        map.put("userName",userName);
+        return rmsFeign.importTransRange(map);
+    }
+
 
 
     @ApiOperation(value = "新增集装箱数据")

+ 3 - 30
src/main/java/com/steerinfo/dil/controller/TMSController.java

@@ -384,18 +384,9 @@ public class TMSController extends BaseRESTfulController {
                                                  String businessType,
                                                  String userId,
                                                  String userName) throws Exception {
-        File excel = ExcelToolUtils.multipartFileToFile(file);
-        FileInputStream is = null;
-        String fileName = excel.getName();
-        // 解决fileName兼容性问题
-        int lastindex = fileName.lastIndexOf("\\");
-        fileName = fileName.substring(lastindex + 1);
-        if (fileName != null && fileName.length() > 0) {
-            is = new FileInputStream(excel);
-        }
         Map<String, Object> map = new HashMap<>();
         //获取Excel中包含的对象数组
-        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(is, fileName, 0);
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
         map.put("list", list);
         //统计通知单的重量车数和车牌号
         Set<String> capacitySet = new HashSet<>();//车牌号
@@ -485,18 +476,9 @@ public class TMSController extends BaseRESTfulController {
                                                  String businessType,
                                                  String userId,
                                                  String userName) throws Exception {
-        File excel = ExcelToolUtils.multipartFileToFile(file);
-        FileInputStream is = null;
-        String fileName = excel.getName();
-        // 解决fileName兼容性问题
-        int lastindex = fileName.lastIndexOf("\\");
-        fileName = fileName.substring(lastindex + 1);
-        if (fileName != null && fileName.length() > 0) {
-            is = new FileInputStream(excel);
-        }
         Map<String, Object> map = new HashMap<>();
         //获取Excel中包含的对象数组
-        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(is, fileName, 0);
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
         map.put("list", list);
         Set<String> capacitySet = new HashSet<>();//车牌号
         for (Map<String, Object> item : list) {
@@ -563,18 +545,9 @@ public class TMSController extends BaseRESTfulController {
                                                    String businessType,
                                                    String userId,
                                                    String userName) throws Exception {
-        File excel = ExcelToolUtils.multipartFileToFile(file);
-        FileInputStream is = null;
-        String fileName = excel.getName();
-        // 解决fileName兼容性问题
-        int lastindex = fileName.lastIndexOf("\\");
-        fileName = fileName.substring(lastindex + 1);
-        if (fileName != null && fileName.length() > 0) {
-            is = new FileInputStream(excel);
-        }
         Map<String, Object> map = new HashMap<>();
         //获取Excel中包含的对象数组
-        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(is, fileName, 0);
+        List<Map<String, Object>> list = ExcelToolUtils.getExcelList(file, 0);
         map.put("list", list);
         Set<String> capacitySet = new HashSet<>();//车牌号
         for (Map<String, Object> item : list) {

+ 14 - 0
src/main/java/com/steerinfo/dil/controller/UniversalController.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.config.ImageFileUtils;
 import com.steerinfo.dil.mapper.UniversalMapper;
 import com.steerinfo.dil.service.impl.UniversalServiceImpl;
@@ -68,6 +69,11 @@ public class UniversalController extends BaseRESTfulController {
     @PostMapping("/getCapacityTypeByLike")
     public RESTfulResult getCapacityTypeByLike(@RequestBody(required = false) Map<String,Object> map) {
         List<Map<String, Object>> list = universalMapper.getCapacityTypeByLike(map);
+        //处理多ID
+        for(Map<String,Object>  item : list){
+            List<Object>  fuelTypeIds = JSONObject.parseObject(item.get("fuelTypeIds").toString(),ArrayList.class);
+            item.put("fuelTypeIds",fuelTypeIds);
+        }
         return success(list);
     }
 
@@ -189,6 +195,13 @@ public class UniversalController extends BaseRESTfulController {
         return success(list);
     }
 
+    @ApiModelProperty(value = "边输边查燃料类型")
+    @PostMapping("/getFuelTypeByLike")
+    public RESTfulResult getFuelTypeByLike(@RequestBody(required = false) Map<String,Object> map) {
+        List<Map<String, Object>> list = universalMapper.getFuelTypeByLike(map);
+        return success(list);
+    }
+
     @ApiOperation(value = "查询是否有正在执行的运单")
     @PostMapping("/getReceivedTransOrder")
     public RESTfulResult getReceivedTransOrder(@RequestBody(required = false)Map<String,Object> map) {
@@ -196,4 +209,5 @@ public class UniversalController extends BaseRESTfulController {
         return success(orderIds);
     }
 
+
 }

+ 12 - 0
src/main/java/com/steerinfo/dil/feign/RmsFeign.java

@@ -77,6 +77,9 @@ public interface RmsFeign {
     @PostMapping("api/v1/rms/rmsmaterialtype/insertMaterialType")
     RESTfulResult insertMaterialType(@RequestBody(required = false) Map<String, Object> map);
 
+    @PostMapping("api/v1/rms/rmsmaterialtype/importMaterialType")
+    RESTfulResult importMaterialType(@RequestBody(required = false) Map<String, Object> map);
+
     //删除物资种类
     @PostMapping(value = "api/v1/rms/rmsmaterialtype/deleteMaterialType")
     RESTfulResult deleteMaterialType(@RequestBody(required = false) Map<String, Object> map);
@@ -139,6 +142,9 @@ public interface RmsFeign {
     @PostMapping(value = "api/v1/rms/rmsoperationpoint/updateOperationPoint")
     Map<String, Object> updateOperationPoint(@RequestBody(required = false) Map<String, Object> map);
 
+    @PostMapping(value = "api/v1/rms/rmsoperationpoint/importOperationPoint")
+    RESTfulResult importOperationPoint(@RequestBody(required = false) Map<String, Object> map);
+
     //同步作业点信息
     @PostMapping(value = "api/v1/rms/rmsoperationpoint/syncOperationPoint")
     Map<String, Object> syncOperationPoint(@RequestBody(required = false) Map<String, Object> map);
@@ -170,6 +176,9 @@ public interface RmsFeign {
     @PostMapping(value = "api/v1/rms/rmspersonnel/syncPersonnel")
     Map<String, Object> syncPersonnel(@RequestBody(required = false) Map<String, Object> map);
 
+    @PostMapping(value = "api/v1/rms/rmspersonnel/importPersonnel")
+    RESTfulResult importPersonnel(@RequestBody(required = false)Map<String, Object> map);
+
     //============公司
     //展示公司列表
     @PostMapping(value = "api/v1/rms/rmscompany/getCompanyList")
@@ -538,6 +547,9 @@ public interface RmsFeign {
 
     @PostMapping(value = "api/v1/rms/rmstransrange/deleteTransRange")
     Map<String, Object> deleteTransRange(@RequestBody(required = false) Map<String, Object> map);
+
+    @PostMapping("api/v1/rms/rmstransrange/importTransRange")
+    RESTfulResult importTransRange(@RequestBody(required = false) Map<String, Object> map);
     /**
      * 集装箱的相关方法
      *

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/UniversalMapper.java

@@ -63,6 +63,8 @@ public interface UniversalMapper {
 
     List<Map<String, Object>> getBusinessTypeLike(Map<String, Object> map);
 
+    List<Map<String, Object>> getFuelTypeByLike(Map<String, Object> map);
+
     List<Map<String, Object>> getOrderIds(Map<String, Object> map);
 
 }

+ 16 - 5
src/main/java/com/steerinfo/dil/util/ExcelToolUtils.java

@@ -429,14 +429,22 @@ public class ExcelToolUtils {
 
     /**
      * 获取Excel中的对象数组
-     * @param inputStream
-     * @param fileName
+     * @param file
      * @param startRow 默认0
      * @return
      * @throws Exception
      */
-    public static List<Map<String,Object>> getExcelList(InputStream inputStream, String fileName, int startRow)
+    public static List<Map<String,Object>> getExcelList(MultipartFile file, int startRow)
             throws Exception {
+        File excel = multipartFileToFile(file);
+        FileInputStream inputStream = null;
+        String fileName = excel.getName();
+        // 解决fileName兼容性问题
+        int lastindex = fileName.lastIndexOf("\\");
+        fileName = fileName.substring(lastindex + 1);
+        if (fileName != null && fileName.length() > 0) {
+            inputStream = new FileInputStream(excel);
+        }
         //构建返回数组
         List<Map<String,Object>> list = new ArrayList<>();
         // 1. 创建工作簿
@@ -491,11 +499,14 @@ public class ExcelToolUtils {
                     for (int cellNum = firstCellNum; cellNum < lastCellNum; cellNum++) {
                         cell = row.getCell(cellNum);
                         //获取表头对应数据
-                        if (titles[cellNum] != null && !titles[cellNum].equals("")) {
+                        if (titles[cellNum] != null && !titles[cellNum].equals("")
+                                && cell !=null && !cell.toString().equals("")) {
                             item.put(titles[cellNum],parseCell(cell));
                         }
                     }
-                    list.add(item);
+                    if(item.keySet().toArray().length >0 ){
+                        list.add(item);
+                    }
                 }
             } catch (Exception e) {
                 e.printStackTrace();

+ 108 - 58
src/main/resources/com/steerinfo/dil/mapper/UniversalMapper.xml

@@ -12,28 +12,6 @@
 
 
     <!--   查询所有的汽车衡  -->
-    <select id="getAllCalculateMes" resultType="java.util.Map">
-        select RTC.TRUCK_CALCULATE_ID     "id",
-               RTC.TRUCK_CALCULATE_ID     "value",
-               RTC.TRUCK_CALCULATE_NUMBER "label",
-               RTC.TRUCK_CALCULATE_NUMBER "text"
-        from RMS_TRUCK_CALCULATE RTC
-    </select>
-
-    <select id="getAllGatepost" resultType="java.util.Map">
-        select GATEPOST_ID   "id",
-               GATEPOST_ID   "value",
-               GATEPOST_NAME "label",
-               GATEPOST_NAME "text"
-        from RMS_GATEPOST
-    </select>
-    <select id="getAllWareHouse" resultType="java.util.Map">
-        select WAREHOUSE_ID   "id",
-               WAREHOUSE_ID   "value",
-               WAREHOUSE_NAME "label",
-               WAREHOUSE_NAME "text"
-        from RMS_WAREHOUSE
-    </select>
     <select id="getColumnNoRoutList" resultType="java.lang.String" parameterType="map">
         select DTCR.COLUMN_NAME from DIL_TABLE_COLUMN_ROLE DTCR
         left join DIL_ROLE_ORGCODE_TABLE DROT
@@ -131,17 +109,18 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getMaterialTypeByLike" resultType="java.util.Map">
         select * from(
         select
         MATERIAL_TYPE_ID "materialTypeId",
-            MATERIAL_TYPE_NAME "materialTypeName",
+        MATERIAL_TYPE_NAME "materialTypeName",
         MATERIAL_TYPE_ID "id",
         MATERIAL_TYPE_ID "value",
         MATERIAL_TYPE_NAME "label",
-        MATERIAL_TYPE_NAME "text"
+        MATERIAL_TYPE_NAME "text",
+        REMARK "remark"
         from RMS_MATERIAL_TYPE
         where DELETED = 0
         )
@@ -149,6 +128,9 @@
             <if test="index!=null and index!=''">
                 AND REGEXP_LIKE("label", #{index})
             </if>
+            <if test="remark!=null and remark!=''">
+                AND REGEXP_LIKE("remark", #{remark})
+            </if>
            <if test="id!=null and id.size>0 and !(index!=null and index!='')">
                 AND "id" in
                 <foreach collection="id" item="item"  open="(" close=")" separator="," >
@@ -156,7 +138,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getEmissionStandardByLike" resultType="java.util.Map">
         select * from (
@@ -181,9 +163,10 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getOperationPointByLike" resultType="java.util.Map">
+    SELECT * FROM (
         select * from (
         select
         OPERATION_POINT_ID "operationPointId",
@@ -203,14 +186,24 @@
             <if test="index!=null and index!=''">
                 AND REGEXP_LIKE("label", #{index})
             </if>
-            <if test="id!=null and id.size>0 and !(index!=null and index!='')">
-                AND "id" in
-                <foreach collection="id" item="item"  open="(" close=")" separator="," >
-                    #{item}
-                </foreach>
-            </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
+    )
+    <if test="id!=null and id.size>0">
+        UNION select
+        OPERATION_POINT_ID "operationPointId",
+        OPERATION_POINT_NAME "operationPointName",
+        OPERATION_POINT_TYPE "operationPointType",
+        OPERATION_POINT_ID "id",
+        OPERATION_POINT_ID "value",
+        OPERATION_POINT_NAME "label",
+        OPERATION_POINT_NAME "text"
+        from RMS_OPERATION_POINT
+        where  OPERATION_POINT_ID in
+        <foreach collection="id" item="item"  open="(" close=")" separator="," >
+            #{item}
+        </foreach>
+    </if>
     </select>
     <select id="getPersonnelByLike" resultType="java.util.Map">
         select * from (
@@ -240,7 +233,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getCapacityByLike" resultType="java.util.Map">
         select * from (
@@ -276,7 +269,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getrmsrmsjobinfosBylike" resultType="java.util.Map">
         select * from(
@@ -301,7 +294,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getTransRangeByLike" resultType="java.util.Map">
         select * from(
@@ -326,7 +319,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getCategoryCodeByLike" resultType="java.util.Map">
         select * from(
@@ -351,32 +344,55 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getCapacityTypeByLike" resultType="java.util.Map">
-        select * from(
+        select  DISTINCT * from(
         select
-        RC.CAPACITY_TYPE_ID "capacityTypeId",
-        RC.CAPACITY_TYPE_NAME "capacityTypeName",
-        RC.CAPACITY_TYPE_ID "id",
-        RC.CAPACITY_TYPE_ID "value",
-        RC.CAPACITY_TYPE_NAME "label",
-        RC.CAPACITY_TYPE_NAME "text"
-        from RMS_CAPACITY_TYPE RC
-        where DELETED = 0
+        RCT.CAPACITY_TYPE_ID "capacityTypeId",
+        RCT.CAPACITY_TYPE_NAME "capacityTypeName",
+        RCT.CAPACITY_TYPE_ID "id",
+        RCT.CAPACITY_TYPE_ID "value",
+        RCT.CAPACITY_TYPE_NAME "label",
+        RCT.CAPACITY_TYPE_NAME "text"
+        RCT .CAPACITY_MAX_LOAD "capacityMaxLoad",
+        '[' || listagg (RCFT .FUEL_TYPE_ID, ',') WITHIN GROUP (ORDER BY RCT .CAPACITY_TYPE_ID) || ']'  "fuelTypeIds",
+        listagg (RFT .FUEL_TYPE_NAME, '/') WITHIN GROUP (ORDER BY RCT .CAPACITY_TYPE_ID)  "fuelTypes"
+        from RMS_CAPACITY_TYPE RCT
+        LEFT JOIN RMS_CAPACITY_FUEL_TYPE RCFT ON RCFT.CAPACITY_TYPE_ID = RCT .CAPACITY_TYPE_ID
+        LEFT JOIN RMS_FUEL_TYPE RFT ON RFT .FUEL_TYPE_ID = RCFT.FUEL_TYPE_ID
+        where RCT.DELETED=0
+        GROUP BY RCT .CAPACITY_TYPE_ID,RCT.CAPACITY_TYPE_NAME,RCT .CAPACITY_MAX_LOAD
+
+        <if test="id!=null and id.size>0 and !(index!=null and index!='')">
+        UNION
+            select
+            RCT.CAPACITY_TYPE_ID "capacityTypeId",
+            RCT.CAPACITY_TYPE_NAME "capacityTypeName",
+            RCT.CAPACITY_TYPE_ID "id",
+            RCT.CAPACITY_TYPE_ID "value",
+            RCT.CAPACITY_TYPE_NAME "label",
+            RCT.CAPACITY_TYPE_NAME "text"
+            RCT .CAPACITY_MAX_LOAD "capacityMaxLoad",
+            '[' || listagg (RCFT .FUEL_TYPE_ID, ',') WITHIN GROUP (ORDER BY RCT .CAPACITY_TYPE_ID) || ']'  "fuelTypeIds",
+            listagg (RFT .FUEL_TYPE_NAME, '/') WITHIN GROUP (ORDER BY RCT .CAPACITY_TYPE_ID)  "fuelTypes"
+            from RMS_CAPACITY_TYPE RCT
+            LEFT JOIN RMS_CAPACITY_FUEL_TYPE RCFT ON RCFT.CAPACITY_TYPE_ID = RCT .CAPACITY_TYPE_ID
+            LEFT JOIN RMS_FUEL_TYPE RFT ON RFT .FUEL_TYPE_ID = RCFT.FUEL_TYPE_ID
+            where RCT.DELETED=0
+            GROUP BY RCT .CAPACITY_TYPE_ID,RCT.CAPACITY_TYPE_NAME,RCT .CAPACITY_MAX_LOAD
+            WHERE "id" in
+            <foreach collection="id" item="item"  open="(" close=")" separator="," >
+                #{item}
+            </foreach>
+        </if>
         )
         <where>
             <if test="index!=null and index!=''">
                 AND REGEXP_LIKE("label", #{index})
             </if>
-            <if test="id!=null and id.size>0 and !(index!=null and index!='')">
-                AND "id" in
-                <foreach collection="id" item="item"  open="(" close=")" separator="," >
-                    #{item}
-                </foreach>
-            </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
 
     </select>
     <select id="getLineByLike" resultType="java.util.Map">
@@ -416,7 +432,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="getMaterialByLike" resultType="java.util.Map">
         select * from(
@@ -441,7 +457,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="countTrainLoad" resultType="java.lang.Integer">
         SELECT COUNT(*)
@@ -498,7 +514,7 @@
                 </foreach>
             </if>
         </where>
-        FETCH NEXT 100 ROWS ONLY
+        FETCH NEXT 10 ROWS ONLY
     </select>
     <select id="findTrainWeight" resultType="java.util.Map">
         <foreach collection="list" item="item"  separator=" UNION " >
@@ -552,5 +568,39 @@
         or rp2.PERSONNEL_JOB_NUMBER =  #{jobNumber})
         and oto.deleted = 5
     </select>
+    <select id="getFuelTypeByLike" resultType="java.util.Map">
+        select * from(
+        SELECT
+        FUEL_TYPE_ID "fuelTypeId",
+        FUEL_TYPE_NAME "fuelTypeName",
+        FUEL_TYPE_ID  "id",
+        FUEL_TYPE_ID "value",
+        FUEL_TYPE_NAME "text",
+        FUEL_TYPE_NAME "label"
+        FROM RMS_FUEL_TYPE
+        WHERE DELETED = 0
+        <if test="id!=null and id.size > 0 and !(index!=null and index!='')">
+          UNION
+        SELECT
+        FUEL_TYPE_ID "fuelTypeId",
+        FUEL_TYPE_NAME "fuelTypeName",
+        FUEL_TYPE_ID  "id",
+        FUEL_TYPE_ID "value",
+        FUEL_TYPE_NAME "text",
+        FUEL_TYPE_NAME "label"
+        FROM RMS_FUEL_TYPE
+        WHERE FUEL_TYPE_ID in
+            <foreach collection="id" item="item"  open="(" close=")" separator="," >
+                #{item}
+            </foreach>
+        </if>
+        )
+        <where>
+            <if test="index!=null and index!=''">
+                AND REGEXP_LIKE("label", #{index})
+            </if>
+        </where>
+        FETCH NEXT 10 ROWS ONLY
+    </select>
 
 </mapper>